diff --git a/.babelrc b/.babelrc index 6311841..3edcd10 100644 --- a/.babelrc +++ b/.babelrc @@ -1,7 +1,5 @@ { "presets": [ - ["latest", { - "es2015": { "modules": false } - }] + ["@babel/env", { "modules": false }] ] } diff --git a/dist/build.js b/dist/build.js index 3fb1537..58ba309 100644 --- a/dist/build.js +++ b/dist/build.js @@ -1,7 +1,33 @@ -!function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=6)}([function(t,e){t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;en.parts.length&&(o.parts.length=n.parts.length)}else{for(var a=[],r=0;r-1)return t.splice(n,1)}}function h(t,e){return Ur.call(t,e)}function v(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}function m(t,e){function n(n){var o=arguments.length;return o?o>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function g(t,e){e=e||0;for(var n=t.length-e,o=new Array(n);n--;)o[n]=t[n+e];return o}function A(t,e){for(var n in e)t[n]=e[n];return t}function b(t){for(var e={},n=0;nOi&&Si[n].id>t.id;)n--;Si.splice(n+1,0,t)}else Si.push(t);Ti||(Ti=!0,fi(kt))}}function It(t){Fi.clear(),Tt(t,Fi)}function Tt(t,e){var n,o,r=Array.isArray(t);if((r||s(t))&&Object.isExtensible(t)){if(t.__ob__){var i=t.__ob__.dep.id;if(e.has(i))return;e.add(i)}if(r)for(n=t.length;n--;)Tt(t[n],e);else for(o=Object.keys(t),n=o.length;n--;)Tt(t[o[n]],e)}}function qt(t,e,n){Pi.get=function(){return this[e][n]},Pi.set=function(t){this[e][n]=t},Object.defineProperty(t,n,Pi)}function Ot(t){t._watchers=[];var e=t.$options;e.props&&Ut(t,e.props),e.methods&&Kt(t,e.methods),e.data?Rt(t):O(t._data={},!0),e.computed&&Pt(t,e.computed),e.watch&&Wt(t,e.watch)}function Ut(t,e){var n=t.$options.propsData||{},o=t._props={},r=t.$options._propKeys=[],i=!t.$parent;Ai.shouldConvert=i;for(var a in e)!function(i){r.push(i);var a=X(i,e,n,t);U(o,i,a),i in t||qt(t,"_props",i)}(a);Ai.shouldConvert=!0}function Rt(t){var e=t.$options.data;e=t._data="function"==typeof e?Ft(e,t):e||{},l(e)||(e={});for(var n=Object.keys(e),o=t.$options.props,r=n.length;r--;)o&&h(o,n[r])||_(n[r])||qt(t,"_data",n[r]);O(e,!0)}function Ft(t,e){try{return t.call(e)}catch(t){return E(t,e,"data()"),{}}}function Pt(t,e){var n=t._computedWatchers=Object.create(null);for(var o in e){var r=e[o],i="function"==typeof r?r:r.get;n[o]=new Ri(t,i,y,Mi),o in t||Mt(t,o,r)}}function Mt(t,e,n){"function"==typeof n?(Pi.get=Bt(e),Pi.set=y):(Pi.get=n.get?!1!==n.cache?Bt(e):n.get:y,Pi.set=n.set?n.set:y),Object.defineProperty(t,e,Pi)}function Bt(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),di.target&&e.depend(),e.value}}function Kt(t,e){t.$options.props;for(var n in e)t[n]=null==e[n]?y:m(e[n],t)}function Wt(t,e){for(var n in e){var o=e[n];if(Array.isArray(o))for(var r=0;r=0||n.indexOf(t[r])<0)&&o.push(t[r]);return o}return t}function me(t){this._init(t)}function ge(t){t.use=function(t){if(t.installed)return this;var e=g(arguments,1);return e.unshift(this),"function"==typeof t.install?t.install.apply(t,e):"function"==typeof t&&t.apply(null,e),t.installed=!0,this}}function Ae(t){t.mixin=function(t){return this.options=J(this.options,t),this}}function be(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,o=n.cid,r=t._Ctor||(t._Ctor={});if(r[o])return r[o];var i=t.name||n.options.name,a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=J(n.options,t),a.super=n,a.options.props&&ye(a),a.options.computed&&xe(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,Jr.forEach(function(t){a[t]=n[t]}),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=A({},a.options),r[o]=a,a}}function ye(t){var e=t.options.props;for(var n in e)qt(t.prototype,"_props",n)}function xe(t){var e=t.options.computed;for(var n in e)Mt(t.prototype,n,e[n])}function Ce(t){Jr.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&l(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}function we(t){return t&&(t.Ctor.options.name||t.tag)}function _e(t,e){return"string"==typeof t?t.split(",").indexOf(e)>-1:!!c(t)&&t.test(e)}function ke(t,e,n){for(var o in t){var r=t[o];if(r){var i=we(r.componentOptions);i&&!n(i)&&(r!==e&&Le(r),t[o]=null)}}}function Le(t){t&&t.componentInstance.$destroy()}function Ee(t){for(var e=t.data,n=t,r=t;o(r.componentInstance);)r=r.componentInstance._vnode,r.data&&(e=Se(r.data,e));for(;o(n=n.parent);)n.data&&(e=Se(e,n.data));return Ve(e)}function Se(t,e){return{staticClass:Ie(t.staticClass,e.staticClass),class:o(t.class)?[t.class,e.class]:e.class}}function Ve(t){var e=t.class,n=t.staticClass;return o(n)||o(e)?Ie(n,Te(e)):""}function Ie(t,e){return t?e?t+" "+e:t:e||""}function Te(t){if(n(t))return"";if("string"==typeof t)return t;var e="";if(Array.isArray(t)){for(var r,i=0,a=t.length;i-1?ma[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:ma[t]=/HTMLUnknownElement/.test(e.toString())}function Ue(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function Re(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function Fe(t,e){return document.createElementNS(fa[t],e)}function Pe(t){return document.createTextNode(t)}function Me(t){return document.createComment(t)}function Be(t,e,n){t.insertBefore(e,n)}function Ke(t,e){t.removeChild(e)}function We(t,e){t.appendChild(e)}function Ne(t){return t.parentNode}function Je(t){return t.nextSibling}function je(t){return t.tagName}function Xe(t,e){t.textContent=e}function ze(t,e,n){t.setAttribute(e,n)}function Ze(t,e){var n=t.data.ref;if(n){var o=t.context,r=t.componentInstance||t.elm,i=o.$refs;e?Array.isArray(i[n])?d(i[n],r):i[n]===r&&(i[n]=void 0):t.data.refInFor?Array.isArray(i[n])&&i[n].indexOf(r)<0?i[n].push(r):i[n]=[r]:i[n]=r}}function He(t,e){return t.key===e.key&&t.tag===e.tag&&t.isComment===e.isComment&&o(t.data)===o(e.data)&&Qe(t,e)}function Qe(t,e){if("input"!==t.tag)return!0;var n;return(o(n=t.data)&&o(n=n.attrs)&&n.type)===(o(n=e.data)&&o(n=n.attrs)&&n.type)}function Ye(t,e,n){var r,i,a={};for(r=e;r<=n;++r)i=t[r].key,o(i)&&(a[i]=r);return a}function De(t,e){(t.data.directives||e.data.directives)&&Ge(t,e)}function Ge(t,e){var n,o,r,i=t===ba,a=e===ba,s=$e(t.data.directives,t.context),l=$e(e.data.directives,e.context),c=[],u=[];for(n in l)o=s[n],r=l[n],o?(r.oldValue=o.value,en(r,"update",e,t),r.def&&r.def.componentUpdated&&u.push(r)):(en(r,"bind",e,t),r.def&&r.def.inserted&&c.push(r));if(c.length){var f=function(){for(var n=0;n=0&&" "===(m=t.charAt(v));v--);m&&La.test(m)||(u=!0)}}else void 0===i?(h=r+1,i=t.slice(0,r).trim()):e();if(void 0===i?i=t.slice(0,r).trim():0!==h&&e(),a)for(r=0;r=Zi}function xn(t){return 34===t||39===t}function Cn(t){var e=1;for(Di=Yi;!yn();)if(t=bn(),xn(t))wn(t);else if(91===t&&e++,93===t&&e--,0===e){Gi=Yi;break}}function wn(t){for(var e=t;!yn()&&(t=bn())!==e;);}function _n(t,e,n){$i=n;var o=e.value,r=e.modifiers,i=t.tag,a=t.attrsMap.type;if("select"===i)En(t,o,r);else if("input"===i&&"checkbox"===a)kn(t,o,r);else if("input"===i&&"radio"===a)Ln(t,o,r);else if("input"===i||"textarea"===i)Sn(t,o,r);else if(!Xr.isReservedTag(i))return mn(t,o,r),!1;return!0}function kn(t,e,n){var o=n&&n.number,r=hn(t,"value")||"null",i=hn(t,"true-value")||"true",a=hn(t,"false-value")||"false";un(t,"checked","Array.isArray("+e+")?_i("+e+","+r+")>-1"+("true"===i?":("+e+")":":_q("+e+","+i+")")),dn(t,Sa,"var $$a="+e+",$$el=$event.target,$$c=$$el.checked?("+i+"):("+a+");if(Array.isArray($$a)){var $$v="+(o?"_n("+r+")":r)+",$$i=_i($$a,$$v);if($$c){$$i<0&&("+e+"=$$a.concat($$v))}else{$$i>-1&&("+e+"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{"+gn(e,"$$c")+"}",null,!0)}function Ln(t,e,n){var o=n&&n.number,r=hn(t,"value")||"null";r=o?"_n("+r+")":r,un(t,"checked","_q("+e+","+r+")"),dn(t,Sa,gn(e,r),null,!0)}function En(t,e,n){var o=n&&n.number,r='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(o?"_n(val)":"val")+"})",i="var $$selectedVal = "+r+";";i=i+" "+gn(e,"$event.target.multiple ? $$selectedVal : $$selectedVal[0]"),dn(t,"change",i,null,!0)}function Sn(t,e,n){var o=t.attrsMap.type,r=n||{},i=r.lazy,a=r.number,s=r.trim,l=!i&&"range"!==o,c=i?"change":"range"===o?Ea:"input",u="$event.target.value";s&&(u="$event.target.value.trim()"),a&&(u="_n("+u+")");var f=gn(e,u);l&&(f="if($event.target.composing)return;"+f),un(t,"value","("+e+")"),dn(t,c,f,null,!0),(s||a||"number"===o)&&dn(t,"blur","$forceUpdate()")}function Vn(t){var e;o(t[Ea])&&(e=Gr?"change":"input",t[e]=[].concat(t[Ea],t[e]||[]),delete t[Ea]),o(t[Sa])&&(e=oi?"click":"change",t[e]=[].concat(t[Sa],t[e]||[]),delete t[Sa])}function In(t,e,n,o,r){if(n){var i=e,a=ta;e=function(n){null!==(1===arguments.length?i(n):i.apply(null,arguments))&&Tn(t,e,o,a)}}ta.addEventListener(t,e,ri?{capture:o,passive:r}:o)}function Tn(t,e,n,o){(o||ta).removeEventListener(t,e,n)}function qn(t,e){if(!n(t.data.on)||!n(e.data.on)){var o=e.data.on||{},r=t.data.on||{};ta=e.elm,Vn(o),$(o,r,In,Tn,e.context)}}function On(t,e){if(!n(t.data.domProps)||!n(e.data.domProps)){var r,i,a=e.elm,s=t.data.domProps||{},l=e.data.domProps||{};o(l.__ob__)&&(l=e.data.domProps=A({},l));for(r in s)n(l[r])&&(a[r]="");for(r in l)if(i=l[r],"textContent"!==r&&"innerHTML"!==r||(e.children&&(e.children.length=0),i!==s[r]))if("value"===r){a._value=i;var c=n(i)?"":String(i);Un(a,e,c)&&(a.value=c)}else a[r]=i}}function Un(t,e,n){return!t.composing&&("option"===e.tag||Rn(t,n)||Fn(t,n))}function Rn(t,e){return document.activeElement!==t&&t.value!==e}function Fn(t,e){var n=t.value,r=t._vModifiers;return o(r)&&r.number||"number"===t.type?f(n)!==f(e):o(r)&&r.trim?n.trim()!==e.trim():n!==e}function Pn(t){var e=Mn(t.style);return t.staticStyle?A(t.staticStyle,e):e}function Mn(t){return Array.isArray(t)?b(t):"string"==typeof t?Ta(t):t}function Bn(t,e){var n,o={};if(e)for(var r=t;r.componentInstance;)r=r.componentInstance._vnode,r.data&&(n=Pn(r.data))&&A(o,n);(n=Pn(t.data))&&A(o,n);for(var i=t;i=i.parent;)i.data&&(n=Pn(i.data))&&A(o,n);return o}function Kn(t,e){var r=e.data,i=t.data;if(!(n(r.staticStyle)&&n(r.style)&&n(i.staticStyle)&&n(i.style))){var a,s,l=e.elm,c=i.staticStyle,u=i.normalizedStyle||i.style||{},f=c||u,p=Mn(e.data.style)||{};e.data.normalizedStyle=o(p.__ob__)?A({},p):p;var d=Bn(e,!0);for(s in f)n(d[s])&&Ua(l,s,"");for(s in d)(a=d[s])!==f[s]&&Ua(l,s,null==a?"":a)}}function Wn(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Nn(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e);else{for(var n=" "+(t.getAttribute("class")||"")+" ",o=" "+e+" ";n.indexOf(o)>=0;)n=n.replace(o," ");t.setAttribute("class",n.trim())}}function Jn(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&A(e,Ma(t.name||"v")),A(e,t),e}return"string"==typeof t?Ma(t):void 0}}function jn(t){za(function(){za(t)})}function Xn(t,e){(t._transitionClasses||(t._transitionClasses=[])).push(e),Wn(t,e)}function zn(t,e){t._transitionClasses&&d(t._transitionClasses,e),Nn(t,e)}function Zn(t,e,n){var o=Hn(t,e),r=o.type,i=o.timeout,a=o.propCount;if(!r)return n();var s=r===Ka?Ja:Xa,l=0,c=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++l>=a&&c()};setTimeout(function(){l0&&(n=Ka,u=a,f=i.length):e===Wa?c>0&&(n=Wa,u=c,f=l.length):(u=Math.max(a,c),n=u>0?a>c?Ka:Wa:null,f=n?n===Ka?i.length:l.length:0),{type:n,timeout:u,propCount:f,hasTransform:n===Ka&&Za.test(o[Na+"Property"])}}function Qn(t,e){for(;t.length1}function eo(t,e){!0!==e.data.show&&Dn(e)}function no(t,e,n){var o=e.value,r=t.multiple;if(!r||Array.isArray(o)){for(var i,a,s=0,l=t.options.length;s-1,a.selected!==i&&(a.selected=i);else if(x(ro(a),o))return void(t.selectedIndex!==s&&(t.selectedIndex=s));r||(t.selectedIndex=-1)}}function oo(t,e){for(var n=0,o=e.length;n=0&&a[r].lowerCasedTag!==s;r--);else r=0;if(r>=0){for(var l=a.length-1;l>=r;l--)e.end&&e.end(a[l].tag,n,o);a.length=r,i=r&&a[r-1].tag}else"br"===s?e.start&&e.start(t,[],!0,n,o):"p"===s&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}for(var r,i,a=[],s=e.expectHTML,l=e.isUnaryTag||Kr,c=e.canBeLeftOpenTag||Kr,u=0;t;){if(r=t,i&&Ns(i)){var f=i.toLowerCase(),p=Js[f]||(Js[f]=new RegExp("([\\s\\S]*?)(]*>)","i")),d=0,h=t.replace(p,function(t,n,o){return d=o.length,Ns(f)||"noscript"===f||(n=n.replace(//g,"$1").replace(//g,"$1")),e.chars&&e.chars(n),""});u+=t.length-h.length,t=h,o(f,u-d,u)}else{var v=t.indexOf("<");if(0===v){if(xs.test(t)){var m=t.indexOf("--\x3e");if(m>=0){n(m+3);continue}}if(Cs.test(t)){var g=t.indexOf("]>");if(g>=0){n(g+2);continue}}var A=t.match(ys);if(A){n(A[0].length);continue}var b=t.match(bs);if(b){var y=u;n(b[0].length),o(b[1],y,u);continue}var x=function(){var e=t.match(gs);if(e){var o={tagName:e[1],attrs:[],start:u};n(e[0].length);for(var r,i;!(r=t.match(As))&&(i=t.match(hs));)n(i[0].length),o.attrs.push(i);if(r)return o.unarySlash=r[1],n(r[0].length),o.end=u,o}}();if(x){!function(t){var n=t.tagName,r=t.unarySlash;s&&("p"===i&&us(n)&&o(i),c(n)&&i===n&&o(n));for(var u=l(n)||"html"===n&&"head"===i||!!r,f=t.attrs.length,p=new Array(f),d=0;d=0){for(w=t.slice(v);!(bs.test(w)||gs.test(w)||xs.test(w)||Cs.test(w)||(_=w.indexOf("<",1))<0);)v+=_,w=t.slice(v);C=t.substring(0,v),n(v)}v<0&&(C=t,t=""),e.chars&&C&&e.chars(C)}if(t===r){e.chars&&e.chars(t);break}}o()}function xo(t,e){var n=e?Qs(e):Zs;if(n.test(t)){for(var o,r,i=[],a=n.lastIndex=0;o=n.exec(t);){r=o.index,r>a&&i.push(JSON.stringify(t.slice(a,r)));var s=an(o[1].trim());i.push("_s("+s+")"),a=r+o[0].length}return a0,ti=Dr&&Dr.indexOf("edge/")>0,ei=Dr&&Dr.indexOf("android")>0,ni=Dr&&/iphone|ipad|ipod|ios/.test(Dr),oi=Dr&&/chrome\/\d+/.test(Dr)&&!ti,ri=!1;if(Yr)try{var ii={};Object.defineProperty(ii,"passive",{get:function(){ri=!0}}),window.addEventListener("test-passive",null,ii)}catch(t){}var ai,si,li=function(){return void 0===ai&&(ai=!Yr&&void 0!==t&&"server"===t.process.env.VUE_ENV),ai},ci=Yr&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,ui="undefined"!=typeof Symbol&&S(Symbol)&&"undefined"!=typeof Reflect&&S(Reflect.ownKeys),fi=function(){function t(){o=!1;var t=n.slice(0);n.length=0;for(var e=0;e1?g(n):n;for(var o=g(arguments,1),r=0,i=n.length;r1&&(e[n[0].trim()]=n[1].trim())}}),e}),qa=/^--/,Oa=/\s*!important$/,Ua=function(t,e,n){if(qa.test(e))t.style.setProperty(e,n);else if(Oa.test(n))t.style.setProperty(e,n.replace(Oa,""),"important");else{var o=Fa(e);if(Array.isArray(n))for(var r=0,i=n.length;rh?(f=n(r[g+1])?null:r[g+1].elm,A(t,f,r,d,g,i)):d>g&&y(t,e,p,h)}function w(t,e,i,a){if(t!==e){if(r(e.isStatic)&&r(t.isStatic)&&e.key===t.key&&(r(e.isCloned)||r(e.isOnce)))return e.elm=t.elm,void(e.componentInstance=t.componentInstance);var s,l=e.data;o(l)&&o(s=l.hook)&&o(s=s.prepatch)&&s(t,e);var c=e.elm=t.elm,u=t.children,f=e.children;if(o(l)&&v(e)){for(s=0;s',n.innerHTML.indexOf(e)>0}("\n"," "),ls=p("area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr"),cs=p("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source"),us=p("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"),fs=/([^\s"'<>\/=]+)/,ps=/(?:=)/,ds=[/"([^"]*)"+/.source,/'([^']*)'+/.source,/([^\s"'=<>`]+)/.source],hs=new RegExp("^\\s*"+fs.source+"(?:\\s*("+ps.source+")\\s*(?:"+ds.join("|")+"))?"),vs="[a-zA-Z_][\\w\\-\\.]*",ms="((?:"+vs+"\\:)?"+vs+")",gs=new RegExp("^<"+ms),As=/^\s*(\/?)>/,bs=new RegExp("^<\\/"+ms+"[^>]*>"),ys=/^]+>/i,xs=/^/g,"$1").replace(//g,"$1")),Io(o,t)&&(t=t.slice(1)),d.chars&&d.chars(t),""});a+=i.length-n.length,i=n,E(o,a-r,a)}else{var s=i.indexOf("<");if(0===s){if(xo.test(i)){var l=i.indexOf("--\x3e");if(0<=l){d.shouldKeepComment&&d.comment(i.substring(4,l)),w(l+3);continue}}if(Co.test(i)){var c=i.indexOf("]>");if(0<=c){w(c+2);continue}}var u=i.match(yo);if(u){w(u[0].length);continue}var f=i.match(Ao);if(f){var p=a;w(f[0].length),E(f[1],p,a);continue}var A=k();if(A){S(A),Io(A.tagName,i)&&w(1);continue}}var y=void 0,x=void 0,C=void 0;if(0<=s){for(x=i.slice(s);!(Ao.test(x)||go.test(x)||xo.test(x)||Co.test(x)||(C=x.indexOf("<",1))<0);)s+=C,x=i.slice(s);y=i.substring(0,s),w(s)}s<0&&(y=i,i=""),d.chars&&y&&d.chars(y)}if(i===e){d.chars&&d.chars(i);break}}function w(e){a+=e,i=i.substring(e)}function k(){var e=i.match(go);if(e){var t,n,r={tagName:e[1],attrs:[],start:a};for(w(e[0].length);!(t=i.match(bo))&&(n=i.match(ho));)w(n[0].length),r.attrs.push(n);if(t)return r.unarySlash=t[1],w(t[0].length),r.end=a,r}}function S(e){var t=e.tagName,n=e.unarySlash;m&&("p"===h&&po(t)&&E(h),b(t)&&h===t&&E(t));for(var r,i,o,a=g(t)||!!n,s=e.attrs.length,l=new Array(s),c=0;c-1"+("true"===d?":("+c+")":":_q("+c+","+d+")")),Vr(l,"change","var $$a="+c+",$$el=$event.target,$$c=$$el.checked?("+d+"):("+h+");if(Array.isArray($$a)){var $$v="+(f?"_n("+p+")":p)+",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&("+Rr(c,"$$a.concat([$$v])")+")}else{$$i>-1&&("+Rr(c,"$$a.slice(0,$$i).concat($$a.slice($$i+1))")+")}}else{"+Rr(c,"$$c")+"}",null,!0);else if("input"===x&&"radio"===C)r=e,i=A,a=(o=y)&&o.number,s=Fr(r,"value")||"null",Tr(r,"checked","_q("+i+","+(s=a?"_n("+s+")":s)+")"),Vr(r,"change",Rr(i,s),null,!0);else if("input"===x||"textarea"===x)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,l=!o&&"range"!==r,c=o?"change":"range"===r?Wr:"input",u="$event.target.value";s&&(u="$event.target.value.trim()"),a&&(u="_n("+u+")");var f=Rr(t,u);l&&(f="if($event.target.composing)return;"+f),Tr(e,"value","("+t+")"),Vr(e,c,f,null,!0),(s||a)&&Vr(e,"blur","$forceUpdate()")}(e,A,y);else if(!q.isReservedTag(x))return qr(e,A,y),!1;return!0},text:function(e,t){t.value&&Tr(e,"textContent","_s("+t.value+")")},html:function(e,t){t.value&&Tr(e,"innerHTML","_s("+t.value+")")}},isPreTag:function(e){return"pre"===e},isUnaryTag:uo,mustUseProp:Un,canBeLeftOpenTag:fo,isReservedTag:Hn,getTagNamespace:Zn,staticKeys:(ra=na,ra.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(","))},sa=d(function(e){return s("type,tag,attrsList,attrsMap,plain,parent,children,attrs"+(e?","+e:""))});function la(e,t){e&&(ia=sa(t.staticKeys||""),oa=t.isReservedTag||L,function e(t){t.static=ca(t);if(1===t.type){if(!oa(t.tag)&&"slot"!==t.tag&&null==t.attrsMap["inline-template"])return;for(var n=0,r=t.children.length;n|^function\s*\(/,fa=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,pa={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},da={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"]},ha=function(e){return"if("+e+")return null;"},va={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:ha("$event.target !== $event.currentTarget"),ctrl:ha("!$event.ctrlKey"),shift:ha("!$event.shiftKey"),alt:ha("!$event.altKey"),meta:ha("!$event.metaKey"),left:ha("'button' in $event && $event.button !== 0"),middle:ha("'button' in $event && $event.button !== 1"),right:ha("'button' in $event && $event.button !== 2")};function ma(e,t){var n=t?"nativeOn:{":"on:{";for(var r in e)n+='"'+r+'":'+ga(r,e[r])+",";return n.slice(0,-1)+"}"}function ga(t,e){if(!e)return"function(){}";if(Array.isArray(e))return"["+e.map(function(e){return ga(t,e)}).join(",")+"]";var n=fa.test(e.value),r=ua.test(e.value);if(e.modifiers){var i="",o="",a=[];for(var s in e.modifiers)if(va[s])o+=va[s],pa[s]&&a.push(s);else if("exact"===s){var l=e.modifiers;o+=ha(["ctrl","shift","alt","meta"].filter(function(e){return!l[e]}).map(function(e){return"$event."+e+"Key"}).join("||"))}else a.push(s);return a.length&&(i+="if(!('button' in $event)&&"+a.map(ba).join("&&")+")return null;"),o&&(i+=o),"function($event){"+i+(n?"return "+e.value+"($event)":r?"return ("+e.value+")($event)":e.value)+"}"}return n||r?e.value:"function($event){"+e.value+"}"}function ba(e){var t=parseInt(e,10);if(t)return"$event.keyCode!=="+t;var n=pa[e],r=da[e];return"_k($event.keyCode,"+JSON.stringify(e)+","+JSON.stringify(n)+",$event.key,"+JSON.stringify(r)+")"}var Aa={on:function(e,t){e.wrapListeners=function(e){return"_g("+e+","+t.value+")"}},bind:function(t,n){t.wrapData=function(e){return"_b("+e+",'"+t.tag+"',"+n.value+","+(n.modifiers&&n.modifiers.prop?"true":"false")+(n.modifiers&&n.modifiers.sync?",true":"")+")"}},cloak:k},ya=function(e){this.options=e,this.warn=e.warn||Er,this.transforms=Lr(e.modules,"transformCode"),this.dataGenFns=Lr(e.modules,"genData"),this.directives=C(C({},Aa),e.directives);var t=e.isReservedTag||L;this.maybeComponent=function(e){return!(t(e.tag)&&!e.component)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function xa(e,t){var n=new ya(t);return{render:"with(this){return "+(e?Ca(e,n):'_c("div")')+"}",staticRenderFns:n.staticRenderFns}}function Ca(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return wa(e,t);if(e.once&&!e.onceProcessed)return ka(e,t);if(e.for&&!e.forProcessed)return function(e,t,n,r){var i=e.for,o=e.alias,a=e.iterator1?","+e.iterator1:"",s=e.iterator2?","+e.iterator2:"";0;return e.forProcessed=!0,(r||"_l")+"(("+i+"),function("+o+a+s+"){return "+(n||Ca)(e,t)+"})"}(e,t);if(e.if&&!e.ifProcessed)return Sa(e,t);if("template"!==e.tag||e.slotTarget||t.pre){if("slot"===e.tag)return function(e,t){var n=e.slotName||'"default"',r=Ta(e,t),i="_t("+n+(r?","+r:""),o=e.attrs&&"{"+e.attrs.map(function(e){return b(e.name)+":"+e.value}).join(",")+"}",a=e.attrsMap["v-bind"];!o&&!a||r||(i+=",null");o&&(i+=","+o);a&&(i+=(o?"":",null")+","+a);return i+")"}(e,t);var n;if(e.component)a=e.component,l=t,c=(s=e).inlineTemplate?null:Ta(s,l,!0),n="_c("+a+","+Ea(s,l)+(c?","+c:"")+")";else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Ea(e,t));var i=e.inlineTemplate?null:Ta(e,t,!0);n="_c('"+e.tag+"'"+(r?","+r:"")+(i?","+i:"")+")"}for(var o=0;o':'
',0=r.clientWidth&&n>=r.clientHeight}),u=0l[e]&&!r.escapeWithReference&&(n=Math.min(u[t],l[e]-("right"===e?u.width:u.height))),x({},t,n)}};return c.forEach(function(e){var t=-1!==["left","top"].indexOf(e)?"primary":"secondary";u=C({},u,f[t](e))}),e.offsets.popper=u,e},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,n=t.popper,r=t.reference,i=e.placement.split("-")[0],o=Math.floor,a=-1!==["top","bottom"].indexOf(i),s=a?"right":"bottom",l=a?"left":"top",c=a?"width":"height";return n[s]o(r[s])&&(e.offsets.popper[l]=o(r[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,t){var n;if(!W(e.instance.modifiers,"arrow","keepTogether"))return e;var r=t.element;if("string"==typeof r){if(!(r=e.instance.popper.querySelector(r)))return e}else if(!e.instance.popper.contains(r))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),e;var i=e.placement.split("-")[0],o=e.offsets,a=o.popper,s=o.reference,l=-1!==["left","right"].indexOf(i),c=l?"height":"width",u=l?"Top":"Left",f=u.toLowerCase(),p=l?"left":"top",d=l?"bottom":"right",h=O(r)[c];s[d]-ha[d]&&(e.offsets.popper[f]+=s[f]+h-a[d]),e.offsets.popper=w(e.offsets.popper);var v=s[f]+s[c]/2-h/2,m=y(e.instance.popper),g=parseFloat(m["margin"+u],10),b=parseFloat(m["border"+u+"Width"],10),A=v-e.offsets.popper[f]-g-b;return A=Math.max(Math.min(a[c]-h,A),0),e.arrowElement=r,e.offsets.arrow=(x(n={},f,Math.round(A)),x(n,p,""),n),e},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(h,v){if(R(h.instance.modifiers,"inner"))return h;if(h.flipped&&h.placement===h.originalPlacement)return h;var m=L(h.instance.popper,h.instance.reference,v.padding,v.boundariesElement,h.positionFixed),g=h.placement.split("-")[0],b=V(g),A=h.placement.split("-")[1]||"",y=[];switch(v.behavior){case X:y=[g,b];break;case H:y=J(g);break;case Z:y=J(g,!0);break;default:y=v.behavior}return y.forEach(function(e,t){if(g!==e||y.length===t+1)return h;g=h.placement.split("-")[0],b=V(g);var n,r=h.offsets.popper,i=h.offsets.reference,o=Math.floor,a="left"===g&&o(r.right)>o(i.left)||"right"===g&&o(r.left)o(i.top)||"bottom"===g&&o(r.top)o(m.right),c=o(r.top)o(m.bottom),f="left"===g&&s||"right"===g&&l||"top"===g&&c||"bottom"===g&&u,p=-1!==["top","bottom"].indexOf(g),d=!!v.flipVariations&&(p&&"start"===A&&s||p&&"end"===A&&l||!p&&"start"===A&&c||!p&&"end"===A&&u);(a||f||d)&&(h.flipped=!0,(a||f)&&(g=y[t+1]),d&&(A="end"===(n=A)?"start":"start"===n?"end":n),h.placement=g+(A?"-"+A:""),h.offsets.popper=C({},h.offsets.popper,F(h.instance.popper,h.offsets.reference,h.placement)),h=q(h.instance.modifiers,h,"flip"))}),h},behavior:"flip",padding:5,boundariesElement:"viewport"},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,n=t.split("-")[0],r=e.offsets,i=r.popper,o=r.reference,a=-1!==["left","right"].indexOf(n),s=-1===["top","left"].indexOf(n);return i[a?"left":"top"]=o[n]-(s?i[a?"width":"height"]:0),e.placement=V(t),e.offsets.popper=w(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!W(e.instance.modifiers,"hide","preventOverflow"))return e;var t=e.offsets.reference,n=U(e.instance.modifiers,function(e){return"preventOverflow"===e.name}).boundaries;if(t.bottomn.right||t.top>n.bottom||t.right
',trigger:"hover focus",offset:0},le=[],ce=function(){function n(e,t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),ue.call(this),t=ae({},se,t),e.jquery&&(e=e[0]),this.reference=e,this.options=t,this._isOpen=!1,this._init()}return oe(n,[{key:"setClasses",value:function(e){this._classes=e}},{key:"setContent",value:function(e){this.options.title=e,this._tooltipNode&&this._setContent(e,this.options)}},{key:"setOptions",value:function(e){var t=!1,n=e&&e.classes||Ae.options.defaultClass;this._classes!==n&&(this.setClasses(n),t=!0),e=he(e);var r=!1,i=!1;for(var o in this.options.offset===e.offset&&this.options.placement===e.placement||(r=!0),(this.options.template!==e.template||this.options.trigger!==e.trigger||this.options.container!==e.container||t)&&(i=!0),e)this.options[o]=e[o];if(this._tooltipNode)if(i){var a=this._isOpen;this.dispose(),this._init(),a&&this.show()}else r&&this.popperInstance.update()}},{key:"_init",value:function(){var e="string"==typeof this.options.trigger?this.options.trigger.split(" ").filter(function(e){return-1!==["click","hover","focus"].indexOf(e)}):[];this._isDisposed=!1,this._enableDocumentTouch=-1===e.indexOf("manual"),this._setEventListeners(this.reference,e,this.options)}},{key:"_create",value:function(e,t){var n=window.document.createElement("div");n.innerHTML=t.trim();var r=n.childNodes[0];return r.id="tooltip_"+Math.random().toString(36).substr(2,10),r.setAttribute("aria-hidden","true"),this.options.autoHide&&-1!==this.options.trigger.indexOf("hover")&&(r.addEventListener("mouseenter",this.hide),r.addEventListener("click",this.hide)),r}},{key:"_setContent",value:function(e,t){var n=this;this.asyncContent=!1,this._applyContent(e,t).then(function(){n.popperInstance.update()})}},{key:"_applyContent",value:function(a,s){var l=this;return new Promise(function(e,t){var n=s.html,r=l._tooltipNode;if(r){var i=r.querySelector(l.options.innerSelector);if(1===a.nodeType){if(n){for(;i.firstChild;)i.removeChild(i.firstChild);i.appendChild(a)}}else{if("function"==typeof a){var o=a();return void(o&&"function"==typeof o.then?(l.asyncContent=!0,s.loadingClass&&ee(r,s.loadingClass),s.loadingContent&&l._applyContent(s.loadingContent,s),o.then(function(e){return s.loadingClass&&te(r,s.loadingClass),l._applyContent(e,s)}).then(e).catch(t)):l._applyContent(o,s).then(e).catch(t))}n?i.innerHTML=a:i.innerText=a}e()}})}},{key:"_show",value:function(e,t){if(t&&"string"==typeof t.container&&!document.querySelector(t.container))return;clearTimeout(this._disposeTimer),delete(t=Object.assign({},t)).offset;var n=!0;this._tooltipNode&&(ee(this._tooltipNode,this._classes),n=!1);var r=this._ensureShown(e,t);return n&&this._tooltipNode&&ee(this._tooltipNode,this._classes),ee(e,["v-tooltip-open"]),r}},{key:"_ensureShown",value:function(e,t){var n=this;if(this._isOpen)return this;if(this._isOpen=!0,le.push(this),this._tooltipNode)return this._tooltipNode.style.display="",this._tooltipNode.setAttribute("aria-hidden","false"),this.popperInstance.enableEventListeners(),this.popperInstance.update(),this.asyncContent&&this._setContent(t.title,t),this;var r=e.getAttribute("title")||t.title;if(!r)return this;var i=this._create(e,t.template);this._tooltipNode=i,this._setContent(r,t),e.setAttribute("aria-describedby",i.id);var o=this._findContainer(t.container,e);this._append(i,o);var a=ae({},t.popperOptions,{placement:t.placement});return a.modifiers=ae({},a.modifiers,{arrow:{element:this.options.arrowSelector}}),t.boundariesElement&&(a.modifiers.preventOverflow={boundariesElement:t.boundariesElement}),this.popperInstance=new Y(e,i,a),requestAnimationFrame(function(){!n._isDisposed&&n.popperInstance?(n.popperInstance.update(),requestAnimationFrame(function(){n._isDisposed?n.dispose():n._isOpen&&i.setAttribute("aria-hidden","false")})):n.dispose()}),this}},{key:"_noLongerOpen",value:function(){var e=le.indexOf(this);-1!==e&&le.splice(e,1)}},{key:"_hide",value:function(){var e=this;if(!this._isOpen)return this;this._isOpen=!1,this._noLongerOpen(),this._tooltipNode.style.display="none",this._tooltipNode.setAttribute("aria-hidden","true"),this.popperInstance.disableEventListeners(),clearTimeout(this._disposeTimer);var t=Ae.options.disposeTimeout;return null!==t&&(this._disposeTimer=setTimeout(function(){e._tooltipNode&&(e._tooltipNode.removeEventListener("mouseenter",e.hide),e._tooltipNode.removeEventListener("click",e.hide),e._tooltipNode.parentNode.removeChild(e._tooltipNode),e._tooltipNode=null)},t)),te(this.reference,["v-tooltip-open"]),this}},{key:"_dispose",value:function(){var r=this;return this._isDisposed=!0,this._events.forEach(function(e){var t=e.func,n=e.event;r.reference.removeEventListener(n,t)}),this._events=[],this._tooltipNode?(this._hide(),this._tooltipNode.removeEventListener("mouseenter",this.hide),this._tooltipNode.removeEventListener("click",this.hide),this.popperInstance.destroy(),this.popperInstance.options.removeOnDestroy||(this._tooltipNode.parentNode.removeChild(this._tooltipNode),this._tooltipNode=null)):this._noLongerOpen(),this}},{key:"_findContainer",value:function(e,t){return"string"==typeof e?e=window.document.querySelector(e):!1===e&&(e=t.parentNode),e}},{key:"_append",value:function(e,t){t.appendChild(e)}},{key:"_setEventListeners",value:function(n,e,r){var i=this,t=[],o=[];e.forEach(function(e){switch(e){case"hover":t.push("mouseenter"),o.push("mouseleave"),i.options.hideOnTargetClick&&o.push("click");break;case"focus":t.push("focus"),o.push("blur"),i.options.hideOnTargetClick&&o.push("click");break;case"click":t.push("click"),o.push("click")}}),t.forEach(function(e){var t=function(e){!0!==i._isOpen&&(e.usedByTooltip=!0,i._scheduleShow(n,r.delay,r,e))};i._events.push({event:e,func:t}),n.addEventListener(e,t)}),o.forEach(function(e){var t=function(e){!0!==e.usedByTooltip&&i._scheduleHide(n,r.delay,r,e)};i._events.push({event:e,func:t}),n.addEventListener(e,t)})}},{key:"_onDocumentTouch",value:function(e){this._enableDocumentTouch&&this._scheduleHide(this.reference,this.options.delay,this.options,e)}},{key:"_scheduleShow",value:function(e,t,n){var r=this,i=t&&t.show||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){return r._show(e,n)},i)}},{key:"_scheduleHide",value:function(e,t,n,r){var i=this,o=t&&t.hide||t||0;clearTimeout(this._scheduleTimer),this._scheduleTimer=window.setTimeout(function(){if(!1!==i._isOpen&&document.body.contains(i._tooltipNode)){if("mouseleave"===r.type)if(i._setTooltipNodeEvent(r,e,t,n))return;i._hide(e,n)}},o)}}]),n}(),ue=function(){var a=this;this.show=function(){a._show(a.reference,a.options)},this.hide=function(){a._hide()},this.dispose=function(){a._dispose()},this.toggle=function(){return a._isOpen?a.hide():a.show()},this._events=[],this._setTooltipNodeEvent=function(r,i,e,o){var t=r.relatedreference||r.toElement||r.relatedTarget;return!!a._tooltipNode.contains(t)&&(a._tooltipNode.addEventListener(r.type,function e(t){var n=t.relatedreference||t.toElement||t.relatedTarget;a._tooltipNode.removeEventListener(r.type,e),i.contains(n)||a._scheduleHide(i,o.delay,o,t)}),!0)}};"undefined"!=typeof document&&document.addEventListener("touchstart",function(e){for(var t=0;t
',defaultArrowSelector:".tooltip-arrow, .tooltip__arrow",defaultInnerSelector:".tooltip-inner, .tooltip__inner",defaultDelay:0,defaultTrigger:"hover focus",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultLoadingClass:"tooltip-loading",defaultLoadingContent:"...",autoHide:!0,defaultHideOnTargetClick:!0,disposeTimeout:5e3,popover:{defaultPlacement:"bottom",defaultClass:"vue-popover-theme",defaultBaseClass:"tooltip popover",defaultWrapperClass:"wrapper",defaultInnerClass:"tooltip-inner popover-inner",defaultArrowClass:"tooltip-arrow popover-arrow",defaultDelay:0,defaultTrigger:"click",defaultOffset:0,defaultContainer:"body",defaultBoundariesElement:void 0,defaultPopperOptions:{},defaultAutoHide:!0,defaultHandleResize:!0}};function he(e){var t={placement:void 0!==e.placement?e.placement:Ae.options.defaultPlacement,delay:void 0!==e.delay?e.delay:Ae.options.defaultDelay,html:void 0!==e.html?e.html:Ae.options.defaultHtml,template:void 0!==e.template?e.template:Ae.options.defaultTemplate,arrowSelector:void 0!==e.arrowSelector?e.arrowSelector:Ae.options.defaultArrowSelector,innerSelector:void 0!==e.innerSelector?e.innerSelector:Ae.options.defaultInnerSelector,trigger:void 0!==e.trigger?e.trigger:Ae.options.defaultTrigger,offset:void 0!==e.offset?e.offset:Ae.options.defaultOffset,container:void 0!==e.container?e.container:Ae.options.defaultContainer,boundariesElement:void 0!==e.boundariesElement?e.boundariesElement:Ae.options.defaultBoundariesElement,autoHide:void 0!==e.autoHide?e.autoHide:Ae.options.autoHide,hideOnTargetClick:void 0!==e.hideOnTargetClick?e.hideOnTargetClick:Ae.options.defaultHideOnTargetClick,loadingClass:void 0!==e.loadingClass?e.loadingClass:Ae.options.defaultLoadingClass,loadingContent:void 0!==e.loadingContent?e.loadingContent:Ae.options.defaultLoadingContent,popperOptions:ae({},void 0!==e.popperOptions?e.popperOptions:Ae.options.defaultPopperOptions)};if(t.offset){var n=ie(t.offset),r=t.offset;("number"===n||"string"===n&&-1===r.indexOf(","))&&(r="0, "+r),t.popperOptions.modifiers||(t.popperOptions.modifiers={}),t.popperOptions.modifiers.offset={offset:r}}return t.trigger&&-1!==t.trigger.indexOf("click")&&(t.hideOnTargetClick=!1),t}function ve(e,t){for(var n=e.placement,r=0;rn.parts.length&&(r.parts.length=n.parts.length)}else{for(var o=[],i=0;ithis.max))return e;this.$refs.input.value=this.max}},labelId:function(){return"input__label__"+this.label+"__"+Math.random().toString().slice(2,5)},labelSpanText:function(){return this.labelText||this.label}},methods:{update:function(e){this.handleChange(e.target.value)},handleChange:function(e){var t={};t[this.label]=e,void 0===t.hex&&void 0===t["#"]?this.$emit("change",t):5>1)+720)%360;--t;)r.h=(r.h+i)%360,o.push(v(r));return o}function b(e,t){t=t||6;for(var n=v(e).toHsv(),r=n.h,i=n.s,o=n.v,a=[],s=1/t;t--;)a.push(v({h:r,s:i,v:o})),o=(o+s)%1;return a}function A(e){return e=parseFloat(e),(isNaN(e)||e<0||1l&&(l=r,s=v(t[c]));return v.isReadable(e,s,{level:o,size:a})||!i?s:(n.includeFallbackColors=!1,v.mostReadable(e,["#fff","#000"],n))};var R,P,M,B=v.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},N=v.hexNames=function(e){var t={};for(var n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}(B),j=(P="[\\s|\\(]+("+(R="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+R+")[,|\\s]+("+R+")\\s*\\)?",M="[\\s|\\(]+("+R+")[,|\\s]+("+R+")[,|\\s]+("+R+")[,|\\s]+("+R+")\\s*\\)?",{CSS_UNIT:new RegExp(R),rgb:new RegExp("rgb"+P),rgba:new RegExp("rgba"+M),hsl:new RegExp("hsl"+P),hsla:new RegExp("hsla"+M),hsv:new RegExp("hsv"+P),hsva:new RegExp("hsva"+M),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});void 0!==_&&_.exports?_.exports=v:void 0!==(z=function(){return v}.call(W,K,W,_))&&(_.exports=z)}(Math)},function(e,t,n){var r=n(29);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals),n(1)("0f73e73c",r,!1,{})},function(e,t,n){(e.exports=n(0)(!1)).push([e.i,"\n.vc-editable-input {\n position: relative;\n}\n.vc-input__input {\n padding: 0;\n border: 0;\n outline: none;\n}\n.vc-input__label {\n text-transform: capitalize;\n}\n",""])},function(e,t,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"vc-editable-input"},[n("input",{directives:[{name:"model",rawName:"v-model",value:t.val,expression:"val"}],ref:"input",staticClass:"vc-input__input",attrs:{"aria-labelledby":t.labelId},domProps:{value:t.val},on:{keydown:t.handleKeyDown,input:[function(e){e.target.composing||(t.val=e.target.value)},t.update]}}),t._v(" "),n("span",{staticClass:"vc-input__label",attrs:{for:t.label,id:t.labelId}},[t._v(t._s(t.labelSpanText))]),t._v(" "),n("span",{staticClass:"vc-input__desc"},[t._v(t._s(t.desc))])])};r._withStripped=!0;var i={render:r,staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var r=function(){var n=this,e=n.$createElement,r=n._self._c||e;return r("div",{staticClass:"vc-compact",attrs:{role:"application","aria-label":"Compact color picker"}},[r("ul",{staticClass:"vc-compact-colors",attrs:{role:"listbox"}},n._l(n.paletteUpperCase(n.palette),function(t){return r("li",{key:t,staticClass:"vc-compact-color-item",class:{"vc-compact-color-item--white":"#FFFFFF"===t},style:{background:t},attrs:{role:"option","aria-label":"color:"+t,"aria-selected":t===n.pick},on:{click:function(e){n.handlerClick(t)}}},[r("div",{directives:[{name:"show",rawName:"v-show",value:t===n.pick,expression:"c === pick"}],staticClass:"vc-compact-dot"})])}))])};r._withStripped=!0;var i={render:r,staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(11),i=n.n(r);for(var o in r)"default"!==o&&function(e){n.d(t,e,function(){return r[e]})}(o);var a=n(35),s=n(2),l=function(e){n(33)},c=s(i.a,a.a,!1,l,null,null);c.options.__file="src/components/Grayscale.vue",t.default=c.exports},function(e,t,n){var r=n(34);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals),n(1)("21ddbb74",r,!1,{})},function(e,t,n){(e.exports=n(0)(!1)).push([e.i,"\n.vc-grayscale {\n width: 125px;\n border-radius: 2px;\n box-shadow: 0 2px 15px rgba(0,0,0,.12), 0 2px 10px rgba(0,0,0,.16);\n background-color: #fff;\n}\n.vc-grayscale-colors {\n border-radius: 2px;\n overflow: hidden;\n padding: 0;\n margin: 0;\n}\n.vc-grayscale-color-item {\n list-style: none;\n width: 25px;\n height: 25px;\n float: left;\n position: relative;\n cursor: pointer;\n}\n.vc-grayscale-color-item--white .vc-grayscale-dot {\n background: #000;\n}\n.vc-grayscale-dot {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 6px;\n height: 6px;\n margin: -3px 0 0 -2px;\n border-radius: 50%;\n opacity: 1;\n background: #fff;\n}\n",""])},function(e,t,n){"use strict";var r=function(){var n=this,e=n.$createElement,r=n._self._c||e;return r("div",{staticClass:"vc-grayscale",attrs:{role:"application","aria-label":"Grayscale color picker"}},[r("ul",{staticClass:"vc-grayscale-colors",attrs:{role:"listbox"}},n._l(n.paletteUpperCase(n.palette),function(t){return r("li",{key:t,staticClass:"vc-grayscale-color-item",class:{"vc-grayscale-color-item--white":"#FFFFFF"==t},style:{background:t},attrs:{role:"option","aria-label":"Color:"+t,"aria-selected":t===n.pick},on:{click:function(e){n.handlerClick(t)}}},[r("div",{directives:[{name:"show",rawName:"v-show",value:t===n.pick,expression:"c === pick"}],staticClass:"vc-grayscale-dot"})])}))])};r._withStripped=!0;var i={render:r,staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(12),i=n.n(r);for(var o in r)"default"!==o&&function(e){n.d(t,e,function(){return r[e]})}(o);var a=n(39),s=n(2),l=function(e){n(37)},c=s(i.a,a.a,!1,l,null,null);c.options.__file="src/components/Material.vue",t.default=c.exports},function(e,t,n){var r=n(38);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals),n(1)("1ff3af73",r,!1,{})},function(e,t,n){(e.exports=n(0)(!1)).push([e.i,'\n.vc-material {\n width: 98px;\n height: 98px;\n padding: 16px;\n font-family: "Roboto";\n position: relative;\n border-radius: 2px;\n box-shadow: 0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16);\n background-color: #fff;\n}\n.vc-material .vc-input__input {\n width: 100%;\n margin-top: 12px;\n font-size: 15px;\n color: #333;\n height: 30px;\n}\n.vc-material .vc-input__label {\n position: absolute;\n top: 0;\n left: 0;\n font-size: 11px;\n color: #999;\n text-transform: capitalize;\n}\n.vc-material-hex {\n border-bottom-width: 2px;\n border-bottom-style: solid;\n}\n.vc-material-split {\n display: flex;\n margin-right: -10px;\n padding-top: 11px;\n}\n.vc-material-third {\n flex: 1;\n padding-right: 10px;\n}\n',""])},function(e,t,n){"use strict";var r=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"vc-material",attrs:{role:"application","aria-label":"Material color picker"}},[n("ed-in",{staticClass:"vc-material-hex",style:{borderColor:t.colors.hex},attrs:{label:"hex"},on:{change:t.onChange},model:{value:t.colors.hex,callback:function(e){t.$set(t.colors,"hex",e)},expression:"colors.hex"}}),t._v(" "),n("div",{staticClass:"vc-material-split"},[n("div",{staticClass:"vc-material-third"},[n("ed-in",{attrs:{label:"r"},on:{change:t.onChange},model:{value:t.colors.rgba.r,callback:function(e){t.$set(t.colors.rgba,"r",e)},expression:"colors.rgba.r"}})],1),t._v(" "),n("div",{staticClass:"vc-material-third"},[n("ed-in",{attrs:{label:"g"},on:{change:t.onChange},model:{value:t.colors.rgba.g,callback:function(e){t.$set(t.colors.rgba,"g",e)},expression:"colors.rgba.g"}})],1),t._v(" "),n("div",{staticClass:"vc-material-third"},[n("ed-in",{attrs:{label:"b"},on:{change:t.onChange},model:{value:t.colors.rgba.b,callback:function(e){t.$set(t.colors.rgba,"b",e)},expression:"colors.rgba.b"}})],1)])],1)};r._withStripped=!0;var i={render:r,staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(13),i=n.n(r);for(var o in r)"default"!==o&&function(e){n.d(t,e,function(){return r[e]})}(o);var a=n(46),s=n(2),l=function(e){n(41)},c=s(i.a,a.a,!1,l,null,null);c.options.__file="src/components/Slider.vue",t.default=c.exports},function(e,t,n){var r=n(42);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals),n(1)("7982aa43",r,!1,{})},function(e,t,n){(e.exports=n(0)(!1)).push([e.i,"\n.vc-slider {\n position: relative;\n width: 410px;\n}\n.vc-slider-hue-warp {\n height: 12px;\n position: relative;\n}\n.vc-slider-hue-warp .vc-hue-picker {\n width: 14px;\n height: 14px;\n border-radius: 6px;\n transform: translate(-7px, -2px);\n background-color: rgb(248, 248, 248);\n box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);\n}\n.vc-slider-swatches {\n display: flex;\n margin-top: 20px;\n}\n.vc-slider-swatch {\n margin-right: 1px;\n flex: 1;\n width: 20%;\n}\n.vc-slider-swatch:first-child {\n margin-right: 1px;\n}\n.vc-slider-swatch:first-child .vc-slider-swatch-picker {\n border-radius: 2px 0px 0px 2px;\n}\n.vc-slider-swatch:last-child {\n margin-right: 0;\n}\n.vc-slider-swatch:last-child .vc-slider-swatch-picker {\n border-radius: 0px 2px 2px 0px;\n}\n.vc-slider-swatch-picker {\n cursor: pointer;\n height: 12px;\n}\n.vc-slider-swatch-picker--active {\n transform: scaleY(1.8);\n border-radius: 3.6px/2px;\n}\n.vc-slider-swatch-picker--white {\n box-shadow: inset 0 0 0 1px #ddd;\n}\n.vc-slider-swatch-picker--active.vc-slider-swatch-picker--white {\n box-shadow: inset 0 0 0 0.6px #ddd;\n}\n",""])},function(e,t,n){var r=n(44);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals),n(1)("7c5f1a1c",r,!1,{})},function(e,t,n){(e.exports=n(0)(!1)).push([e.i,"\n.vc-hue {\n position: absolute;\n top: 0px;\n right: 0px;\n bottom: 0px;\n left: 0px;\n border-radius: 2px;\n}\n.vc-hue--horizontal {\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n}\n.vc-hue--vertical {\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n}\n.vc-hue-container {\n cursor: pointer;\n margin: 0 2px;\n position: relative;\n height: 100%;\n}\n.vc-hue-pointer {\n z-index: 2;\n position: absolute;\n}\n.vc-hue-picker {\n cursor: pointer;\n margin-top: 1px;\n width: 4px;\n border-radius: 1px;\n height: 8px;\n box-shadow: 0 0 2px rgba(0, 0, 0, .6);\n background: #fff;\n transform: translateX(-2px) ;\n}\n",""])},function(e,t,n){"use strict";var r=function(){var e=this.$createElement,t=this._self._c||e;return t("div",{class:["vc-hue",this.directionClass]},[t("div",{ref:"container",staticClass:"vc-hue-container",attrs:{role:"slider","aria-valuenow":this.colors.hsl.h,"aria-valuemin":"0","aria-valuemax":"360"},on:{mousedown:this.handleMouseDown,touchmove:this.handleChange,touchstart:this.handleChange}},[t("div",{staticClass:"vc-hue-pointer",style:{top:this.pointerTop,left:this.pointerLeft},attrs:{role:"presentation"}},[t("div",{staticClass:"vc-hue-picker"})])])])};r._withStripped=!0;var i={render:r,staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";var r=function(){var r=this,e=r.$createElement,i=r._self._c||e;return i("div",{staticClass:"vc-slider",attrs:{role:"application","aria-label":"Slider color picker"}},[i("div",{staticClass:"vc-slider-hue-warp"},[i("hue",{on:{change:r.hueChange},model:{value:r.colors,callback:function(e){r.colors=e},expression:"colors"}})],1),r._v(" "),i("div",{staticClass:"vc-slider-swatches",attrs:{role:"group"}},r._l(r.swatches,function(t,n){return i("div",{key:n,staticClass:"vc-slider-swatch",attrs:{"data-index":n,"aria-label":"color:"+r.colors.hex,role:"button"},on:{click:function(e){r.handleSwClick(n,t)}}},[i("div",{staticClass:"vc-slider-swatch-picker",class:{"vc-slider-swatch-picker--active":t==r.activeOffset,"vc-slider-swatch-picker--white":"1"===t},style:{background:"hsl("+r.colors.hsl.h+", 50%, "+100*t+"%)"}})])}))])};r._withStripped=!0;var i={render:r,staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(15),i=n.n(r);for(var o in r)"default"!==o&&function(e){n.d(t,e,function(){return r[e]})}(o);var a=n(51),s=n(2),l=function(e){n(48)},c=s(i.a,a.a,!1,l,null,null);c.options.__file="src/components/Swatches.vue",t.default=c.exports},function(e,t,n){var r=n(49);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals),n(1)("10f839a2",r,!1,{})},function(e,t,n){(e.exports=n(0)(!1)).push([e.i,"\n.vc-swatches {\n width: 320px;\n height: 240px;\n overflow-y: scroll;\n background-color: #fff;\n box-shadow: 0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16);\n}\n.vc-swatches-box {\n padding: 16px 0 6px 16px;\n overflow: hidden;\n}\n.vc-swatches-color-group {\n padding-bottom: 10px;\n width: 40px;\n float: left;\n margin-right: 10px;\n}\n.vc-swatches-color-it {\n box-sizing: border-box;\n width: 40px;\n height: 24px;\n cursor: pointer;\n background: #880e4f;\n margin-bottom: 1px;\n overflow: hidden;\n -ms-border-radius: 2px 2px 0 0;\n -moz-border-radius: 2px 2px 0 0;\n -o-border-radius: 2px 2px 0 0;\n -webkit-border-radius: 2px 2px 0 0;\n border-radius: 2px 2px 0 0;\n}\n.vc-swatches-color--white {\n border: 1px solid #DDD;\n}\n.vc-swatches-pick {\n fill: rgb(255, 255, 255);\n margin-left: 8px;\n display: block;\n}\n.vc-swatches-color--white .vc-swatches-pick {\n fill: rgb(51, 51, 51);\n}\n",""])},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),n.d(t,"red",function(){return r}),n.d(t,"pink",function(){return i}),n.d(t,"purple",function(){return o}),n.d(t,"deepPurple",function(){return a}),n.d(t,"indigo",function(){return s}),n.d(t,"blue",function(){return l}),n.d(t,"lightBlue",function(){return c}),n.d(t,"cyan",function(){return u}),n.d(t,"teal",function(){return f}),n.d(t,"green",function(){return p}),n.d(t,"lightGreen",function(){return d}),n.d(t,"lime",function(){return h}),n.d(t,"yellow",function(){return v}),n.d(t,"amber",function(){return m}),n.d(t,"orange",function(){return g}),n.d(t,"deepOrange",function(){return b}),n.d(t,"brown",function(){return A}),n.d(t,"grey",function(){return y}),n.d(t,"blueGrey",function(){return x}),n.d(t,"darkText",function(){return C}),n.d(t,"lightText",function(){return w}),n.d(t,"darkIcons",function(){return k}),n.d(t,"lightIcons",function(){return S}),n.d(t,"white",function(){return E}),n.d(t,"black",function(){return L});var r={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",a100:"#ff8a80",a200:"#ff5252",a400:"#ff1744",a700:"#d50000"},i={50:"#fce4ec",100:"#f8bbd0",200:"#f48fb1",300:"#f06292",400:"#ec407a",500:"#e91e63",600:"#d81b60",700:"#c2185b",800:"#ad1457",900:"#880e4f",a100:"#ff80ab",a200:"#ff4081",a400:"#f50057",a700:"#c51162"},o={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",a100:"#ea80fc",a200:"#e040fb",a400:"#d500f9",a700:"#aa00ff"},a={50:"#ede7f6",100:"#d1c4e9",200:"#b39ddb",300:"#9575cd",400:"#7e57c2",500:"#673ab7",600:"#5e35b1",700:"#512da8",800:"#4527a0",900:"#311b92",a100:"#b388ff",a200:"#7c4dff",a400:"#651fff",a700:"#6200ea"},s={50:"#e8eaf6",100:"#c5cae9",200:"#9fa8da",300:"#7986cb",400:"#5c6bc0",500:"#3f51b5",600:"#3949ab",700:"#303f9f",800:"#283593",900:"#1a237e",a100:"#8c9eff",a200:"#536dfe",a400:"#3d5afe",a700:"#304ffe"},l={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",a100:"#82b1ff",a200:"#448aff",a400:"#2979ff",a700:"#2962ff"},c={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",a100:"#80d8ff",a200:"#40c4ff",a400:"#00b0ff",a700:"#0091ea"},u={50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",a100:"#84ffff",a200:"#18ffff",a400:"#00e5ff",a700:"#00b8d4"},f={50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",a100:"#a7ffeb",a200:"#64ffda",a400:"#1de9b6",a700:"#00bfa5"},p={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",a100:"#b9f6ca",a200:"#69f0ae",a400:"#00e676",a700:"#00c853"},d={50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",a100:"#ccff90",a200:"#b2ff59",a400:"#76ff03",a700:"#64dd17"},h={50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",a100:"#f4ff81",a200:"#eeff41",a400:"#c6ff00",a700:"#aeea00"},v={50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",a100:"#ffff8d",a200:"#ffff00",a400:"#ffea00",a700:"#ffd600"},m={50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",a100:"#ffe57f",a200:"#ffd740",a400:"#ffc400",a700:"#ffab00"},g={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",a100:"#ffd180",a200:"#ffab40",a400:"#ff9100",a700:"#ff6d00"},b={50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",a100:"#ff9e80",a200:"#ff6e40",a400:"#ff3d00",a700:"#dd2c00"},A={50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723"},y={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121"},x={50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238"},C={primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.54)",disabled:"rgba(0, 0, 0, 0.38)",dividers:"rgba(0, 0, 0, 0.12)"},w={primary:"rgba(255, 255, 255, 1)",secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",dividers:"rgba(255, 255, 255, 0.12)"},k={active:"rgba(0, 0, 0, 0.54)",inactive:"rgba(0, 0, 0, 0.38)"},S={active:"rgba(255, 255, 255, 1)",inactive:"rgba(255, 255, 255, 0.5)"},E="#ffffff",L="#000000";t.default={red:r,pink:i,purple:o,deepPurple:a,indigo:s,blue:l,lightBlue:c,cyan:u,teal:f,green:p,lightGreen:d,lime:h,yellow:v,amber:m,orange:g,deepOrange:b,brown:A,grey:y,blueGrey:x,darkText:C,lightText:w,darkIcons:k,lightIcons:S,white:E,black:L}},function(e,t,n){"use strict";var r=function(){var n=this,e=n.$createElement,r=n._self._c||e;return r("div",{staticClass:"vc-swatches",attrs:{role:"application","aria-label":"Swatches color picker","data-pick":n.pick}},[r("div",{staticClass:"vc-swatches-box",attrs:{role:"listbox"}},n._l(n.palette,function(e,t){return r("div",{key:t,staticClass:"vc-swatches-color-group"},n._l(e,function(t){return r("div",{key:t,class:["vc-swatches-color-it",{"vc-swatches-color--white":"#FFFFFF"===t}],style:{background:t},attrs:{role:"option","aria-label":"Color:"+t,"aria-selected":n.equal(t),"data-color":t},on:{click:function(e){n.handlerClick(t)}}},[r("div",{directives:[{name:"show",rawName:"v-show",value:n.equal(t),expression:"equal(c)"}],staticClass:"vc-swatches-pick"},[r("svg",{staticStyle:{width:"24px",height:"24px"},attrs:{viewBox:"0 0 24 24"}},[r("path",{attrs:{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}})])])])}))}))])};r._withStripped=!0;var i={render:r,staticRenderFns:[]};t.a=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(16),i=n.n(r);for(var o in r)"default"!==o&&function(e){n.d(t,e,function(){return r[e]})}(o);var a=n(67),s=n(2),l=function(e){n(53)},c=s(i.a,a.a,!1,l,null,null);c.options.__file="src/components/Photoshop.vue",t.default=c.exports},function(e,t,n){var r=n(54);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals),n(1)("080365d4",r,!1,{})},function(e,t,n){(e.exports=n(0)(!1)).push([e.i,'\n.vc-photoshop {\n background: #DCDCDC;\n border-radius: 4px;\n box-shadow: 0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15);\n box-sizing: initial;\n width: 513px;\n font-family: Roboto;\n}\n.vc-photoshop__disable-fields {\n width: 390px;\n}\n.vc-ps-head {\n background-image: linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%);\n border-bottom: 1px solid #B1B1B1;\n box-shadow: inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02);\n height: 23px;\n line-height: 24px;\n border-radius: 4px 4px 0 0;\n font-size: 13px;\n color: #4D4D4D;\n text-align: center;\n}\n.vc-ps-body {\n padding: 15px;\n display: flex;\n}\n.vc-ps-saturation-wrap {\n width: 256px;\n height: 256px;\n position: relative;\n border: 2px solid #B3B3B3;\n border-bottom: 2px solid #F0F0F0;\n overflow: hidden;\n}\n.vc-ps-saturation-wrap .vc-saturation-circle {\n width: 12px;\n height: 12px;\n}\n.vc-ps-hue-wrap {\n position: relative;\n height: 256px;\n width: 19px;\n margin-left: 10px;\n border: 2px solid #B3B3B3;\n border-bottom: 2px solid #F0F0F0;\n}\n.vc-ps-hue-pointer {\n position: relative;\n}\n.vc-ps-hue-pointer--left,\n.vc-ps-hue-pointer--right {\n position: absolute;\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 5px 0 5px 8px;\n border-color: transparent transparent transparent #555;\n}\n.vc-ps-hue-pointer--left:after,\n.vc-ps-hue-pointer--right:after {\n content: "";\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 4px 0 4px 6px;\n border-color: transparent transparent transparent #fff;\n position: absolute;\n top: 1px;\n left: 1px;\n transform: translate(-8px, -5px);\n}\n.vc-ps-hue-pointer--left {\n transform: translate(-13px, -4px);\n}\n.vc-ps-hue-pointer--right {\n transform: translate(20px, -4px) rotate(180deg);\n}\n.vc-ps-controls {\n width: 180px;\n margin-left: 10px;\n display: flex;\n}\n.vc-ps-controls__disable-fields {\n width: auto;\n}\n.vc-ps-actions {\n margin-left: 20px;\n flex: 1;\n}\n.vc-ps-ac-btn {\n cursor: pointer;\n background-image: linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%);\n border: 1px solid #878787;\n border-radius: 2px;\n height: 20px;\n box-shadow: 0 1px 0 0 #EAEAEA;\n font-size: 14px;\n color: #000;\n line-height: 20px;\n text-align: center;\n margin-bottom: 10px;\n}\n.vc-ps-previews {\n width: 60px;\n}\n.vc-ps-previews__swatches {\n border: 1px solid #B3B3B3;\n border-bottom: 1px solid #F0F0F0;\n margin-bottom: 2px;\n margin-top: 1px;\n}\n.vc-ps-previews__pr-color {\n height: 34px;\n box-shadow: inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000;\n}\n.vc-ps-previews__label {\n font-size: 14px;\n color: #000;\n text-align: center;\n}\n.vc-ps-fields {\n padding-top: 5px;\n padding-bottom: 9px;\n width: 80px;\n position: relative;\n}\n.vc-ps-fields .vc-input__input {\n margin-left: 40%;\n width: 40%;\n height: 18px;\n border: 1px solid #888888;\n box-shadow: inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC;\n margin-bottom: 5px;\n font-size: 13px;\n padding-left: 3px;\n margin-right: 10px;\n}\n.vc-ps-fields .vc-input__label, .vc-ps-fields .vc-input__desc {\n top: 0;\n text-transform: uppercase;\n font-size: 13px;\n height: 18px;\n line-height: 22px;\n position: absolute;\n}\n.vc-ps-fields .vc-input__label {\n left: 0;\n width: 34px;\n}\n.vc-ps-fields .vc-input__desc {\n right: 0;\n width: 0;\n}\n.vc-ps-fields__divider {\n height: 5px;\n}\n.vc-ps-fields__hex .vc-input__input {\n margin-left: 20%;\n width: 80%;\n height: 18px;\n border: 1px solid #888888;\n box-shadow: inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC;\n margin-bottom: 6px;\n font-size: 13px;\n padding-left: 3px;\n}\n.vc-ps-fields__hex .vc-input__label {\n position: absolute;\n top: 0;\n left: 0;\n width: 14px;\n text-transform: uppercase;\n font-size: 13px;\n height: 18px;\n line-height: 22px;\n}\n',""])},function(e,t,n){var r=n(56);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals),n(1)("b5380e52",r,!1,{})},function(e,t,n){(e.exports=n(0)(!1)).push([e.i,"\n.vc-saturation,\n.vc-saturation--white,\n.vc-saturation--black {\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n.vc-saturation--white {\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\n}\n.vc-saturation--black {\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\n}\n.vc-saturation-pointer {\n cursor: pointer;\n position: absolute;\n}\n.vc-saturation-circle {\n cursor: head;\n width: 4px;\n height: 4px;\n box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3), 0 0 1px 2px rgba(0,0,0,.4);\n border-radius: 50%;\n transform: translate(-2px, -2px);\n}\n",""])},function(e,t){e.exports=function(e,t,n){return t\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of \n\n\n\n// WEBPACK FOOTER //\n// App.vue?00c64c79","\n\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// FAB.vue?1695a6b9","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".fab-tooltip.tooltip{display:block!important;padding:4px;z-index:10000}.fab-tooltip.tooltip .tooltip-inner{background:#333;color:#fff;border-radius:0;padding:5px 10px 4px}.fab-tooltip.tooltip tooltip-arrow{display:none}.fab-tooltip.tooltip[aria-hidden=true]{visibility:hidden;opacity:0;transition:opacity .15s,visibility .15s}.fab-tooltip.tooltip[aria-hidden=false]{visibility:visible;opacity:1;transition:opacity .15s}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-1073f3cf\",\"scoped\":false,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./src/FAB.vue\n// module id = 9\n// module chunks = 0","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".animated.quick[data-v-1073f3cf]{-webkit-animation-duration:.7s!important;animation-duration:.7s!important}.fab-wrapper[data-v-1073f3cf]{z-index:999}.fab-main[data-v-1073f3cf]{border-radius:100px;padding:30px;position:relative;overflow:hidden;display:flex;align-items:center;box-shadow:0 10px 10px rgba(0,0,0,.2),0 4px 4px rgba(0,0,0,.15);z-index:2;justify-content:center}.fab-main .material-icons[data-v-1073f3cf]{color:#fff;transition:all .4s;margin:0 auto}.fab-main .material-icons.main[data-v-1073f3cf]{opacity:1;position:absolute}.fab-main .material-icons.close[data-v-1073f3cf]{opacity:0;position:absolute}.fab-main .material-icons.main.rotate[data-v-1073f3cf]{-webkit-transform:rotate(315deg);transform:rotate(315deg);opacity:0;transition:opacity .3s ease-in,transform .4s}.fab-main .material-icons.close.rotate[data-v-1073f3cf]{-webkit-transform:rotate(315deg);transform:rotate(315deg);opacity:1;transition:opacity .3s ease-in,transform .4s}.fab-list[data-v-1073f3cf]{position:relative;z-index:1;margin:2vh 0;display:flex;flex-direction:column;align-items:center}.fab-list li[data-v-1073f3cf]{padding:10px;margin-top:2vh;display:flex;align-items:center;border-radius:100px;box-shadow:0 10px 10px rgba(0,0,0,.2),0 4px 4px rgba(0,0,0,.15)}.fab-list li .material-icons[data-v-1073f3cf]{color:#fff;margin:0 auto}.pointer[data-v-1073f3cf]{cursor:pointer}ul[data-v-1073f3cf]{list-style-type:none;padding:0!important}.fab-wrapper .actions-container[data-v-1073f3cf]{overflow:hidden;z-index:0;position:relative}.material-icons.md-18[data-v-1073f3cf]{font-size:18px}.material-icons.md-24[data-v-1073f3cf]{font-size:24px}.material-icons.md-36[data-v-1073f3cf]{font-size:36px}.material-icons.md-48[data-v-1073f3cf]{font-size:48px}.material-icons.md-dark[data-v-1073f3cf]{color:rgba(0,0,0,.54)}.material-icons.md-dark.md-inactive[data-v-1073f3cf]{color:rgba(0,0,0,.26)}.material-icons.md-light[data-v-1073f3cf]{color:#fff}.material-icons.md-light.md-inactive[data-v-1073f3cf]{color:hsla(0,0%,100%,.3)}@media screen and (max-width:768px){.fab-list[data-v-1073f3cf]{margin:2vh 0}}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-1073f3cf\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=1!./src/FAB.vue\n// module id = 10\n// module chunks = 0","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"#app[data-v-d877a75c]{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50}.pointer[data-v-d877a75c]{cursor:pointer}h1[data-v-d877a75c],h2[data-v-d877a75c]{font-weight:400}hr[data-v-d877a75c]{background-color:transparent;border:none;display:block;height:inherit;margin:1.5rem 0;border-top:1px dashed}li[data-v-d877a75c]{display:inline-block;margin:0 10px}a[data-v-d877a75c]{color:#0b99b9;text-decoration:underline}.text-medium-grey[data-v-d877a75c]{color:#333}.text-light-grey[data-v-d877a75c]{color:#888}.box.formated[data-v-d877a75c]{position:relative;padding:0}.box.formated .heading[data-v-d877a75c]{font-size:1rem;text-transform:capitalize;padding:.8rem 1.5rem;background-color:#fafafa}.box.formated .content[data-v-d877a75c]{padding:1rem 2rem}i.top-left[data-v-d877a75c]{position:absolute;left:1.5rem;top:.8rem}.vertical-separator[data-v-d877a75c]{display:flex;justify-content:space-around}.vertical-separator .line[data-v-d877a75c]{border-right:1px solid #ccc}\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/css-loader?minimize!./~/vue-loader/lib/style-compiler?{\"id\":\"data-v-d877a75c\",\"scoped\":true,\"hasInlineConfig\":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./demo/App.vue\n// module id = 11\n// module chunks = 0","module.exports = \"data:image/png;base64,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\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./demo/assets/logo.png\n// module id = 12\n// module chunks = 0","module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 4);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_tooltip_js__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils__ = __webpack_require__(1);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return defaultOptions; });\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _get = function get(object, property, receiver) { if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if (\"value\" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n\n\n\n\nvar positions = ['top', 'top-start', 'top-end', 'right', 'right-start', 'right-end', 'bottom', 'bottom-start', 'bottom-end', 'left', 'left-start', 'left-end'];\n\nvar defaultOptions = {\n defaultPlacement: 'top',\n defaultClass: 'vue-tooltip-theme',\n defaultTemplate: '
',\n defaultDelay: 0,\n defaultTrigger: 'hover focus',\n defaultOffset: 0,\n defaultContainer: 'body'\n};\n\nfunction getOptions(options) {\n return {\n placement: options.placement || directive.options.defaultPlacement,\n delay: options.delay || directive.options.defaultDelay,\n template: options.template || directive.options.defaultTemplate,\n trigger: options.trigger || directive.options.defaultTrigger,\n offset: options.offset || directive.options.defaultOffset,\n container: options.container || directive.options.defaultContainer\n };\n}\n\nfunction getPlacement(value, modifiers) {\n var placement = value.placement;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = positions[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var pos = _step.value;\n\n if (modifiers[pos]) {\n placement = pos;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return placement;\n}\n\nvar SuperTooltip = function (_Tooltip) {\n _inherits(SuperTooltip, _Tooltip);\n\n function SuperTooltip() {\n _classCallCheck(this, SuperTooltip);\n\n return _possibleConstructorReturn(this, (SuperTooltip.__proto__ || Object.getPrototypeOf(SuperTooltip)).apply(this, arguments));\n }\n\n _createClass(SuperTooltip, [{\n key: 'setClasses',\n value: function setClasses(classes) {\n var el = this._tooltipNode;\n\n if (el) {\n var oldClasses = this._oldClasses;\n if (classes) {\n if (oldClasses) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__[\"a\" /* replaceClasses */])(el, classes, oldClasses);\n } else {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__[\"b\" /* addClasses */])(el, classes);\n }\n } else if (oldClasses) {\n __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_1__utils__[\"c\" /* removeClasses */])(el, oldClasses);\n }\n this._oldClasses = classes;\n } else {\n this._pendingClasses = classes;\n }\n\n this._classes = classes;\n }\n }, {\n key: 'setContent',\n value: function setContent(content) {\n this.options.title = content;\n if (this._tooltipNode) {\n var el = this._tooltipNode.querySelector(this.innerSelector);\n\n if (el) {\n if (!content) {\n el.innerHTML = '';\n } else {\n el.innerHTML = content;\n }\n\n this.popperInstance.update();\n }\n }\n }\n }, {\n key: 'setOptions',\n value: function setOptions(options) {\n options = getOptions(options);\n\n var needPopperUpdate = false;\n var needRestart = false;\n\n if (this.options.offset !== options.offset || this.options.placement !== options.placement) {\n needPopperUpdate = true;\n }\n\n if (this.options.template !== options.template || this.options.trigger !== options.trigger || this.options.container !== options.container) {\n needRestart = true;\n }\n\n for (var key in options) {\n this.options[key] = options[key];\n }\n\n if (this._tooltipNode) {\n if (needRestart) {\n var isOpen = this._isOpen;\n\n this.dispose();\n\n var events = typeof this.options.trigger === 'string' ? options.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n this._setEventListeners(this.reference, events, this.options);\n\n this.setClasses(this._classes);\n\n if (isOpen) {\n this.show();\n }\n } else if (needPopperUpdate) {\n this.popperInstance.update();\n }\n }\n }\n }, {\n key: '_dispose',\n value: function _dispose() {\n var _this2 = this;\n\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this2.reference.removeEventListener(event, func);\n });\n this._events = [];\n _get(SuperTooltip.prototype.__proto__ || Object.getPrototypeOf(SuperTooltip.prototype), '_dispose', this).call(this);\n }\n }, {\n key: '_show',\n value: function _show() {\n var _get2,\n _this3 = this;\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n (_get2 = _get(SuperTooltip.prototype.__proto__ || Object.getPrototypeOf(SuperTooltip.prototype), '_show', this)).call.apply(_get2, [this].concat(args));\n\n if (this._pendingClasses) {\n this.setClasses(this._pendingClasses);\n this._pendingClasses = null;\n }\n\n // Fix position\n setTimeout(function () {\n _this3.popperInstance.update();\n }, 0);\n }\n }]);\n\n return SuperTooltip;\n}(__WEBPACK_IMPORTED_MODULE_0_tooltip_js__[\"a\" /* default */]);\n\nfunction createTooltip(el, value, modifiers) {\n var content = value.content || value;\n var classes = value.classes || directive.options.defaultClass;\n\n var tooltip = el._tooltip = new SuperTooltip(el, _extends({\n title: content,\n html: true\n }, getOptions(_extends({}, value, {\n placement: getPlacement(value, modifiers)\n }))));\n tooltip.setClasses(classes);\n}\n\nfunction destroyTooltip(el) {\n if (el._tooltip) {\n el._tooltip.dispose();\n delete el._tooltip;\n }\n}\n\nvar directive = {\n options: defaultOptions,\n bind: function bind(el, _ref2) {\n var value = _ref2.value,\n modifiers = _ref2.modifiers;\n\n var content = value && value.content || value;\n destroyTooltip(el);\n if (content) {\n createTooltip(el, value, modifiers);\n }\n },\n update: function update(el, _ref3) {\n var value = _ref3.value,\n oldValue = _ref3.oldValue,\n modifiers = _ref3.modifiers;\n\n var content = value && value.content || value;\n if (!content) {\n destroyTooltip(el);\n } else if (el._tooltip) {\n var tooltip = el._tooltip;\n // Content\n tooltip.setContent(content);\n // CSS Classes\n tooltip.setClasses(value && value.classes || directive.options.defaultClass);\n // Options\n tooltip.setOptions(_extends({}, value, {\n placement: getPlacement(value, modifiers)\n }));\n } else {\n createTooltip(el, value, modifiers);\n }\n },\n unbind: function unbind(el) {\n destroyTooltip(el);\n }\n};\n\n/* harmony default export */ __webpack_exports__[\"b\"] = directive;\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (immutable) */ __webpack_exports__[\"b\"] = addClasses;\n/* harmony export (immutable) */ __webpack_exports__[\"c\"] = removeClasses;\n/* harmony export (immutable) */ __webpack_exports__[\"a\"] = replaceClasses;\n\nfunction convertToArray(value) {\n if (typeof value === 'string') {\n value = value.split(' ');\n }\n return value;\n}\n\nfunction addClasses(el, classes) {\n classes = convertToArray(classes);\n classes.forEach(function (c) {\n el.classList.add(c);\n });\n}\n\nfunction removeClasses(el, classes) {\n classes = convertToArray(classes);\n classes.forEach(function (c) {\n el.classList.remove(c);\n });\n}\n\nfunction replaceClasses(el, newClasses, oldClasses) {\n removeClasses(el, oldClasses);\n addClasses(el, newClasses);\n}\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nvar nativeHints = ['native code', '[object MutationObserverConstructor]'];\n\n/**\n * Determine if a function is implemented natively (as opposed to a polyfill).\n * @method\n * @memberof Popper.Utils\n * @argument {Function | undefined} fn the function to check\n * @returns {Boolean}\n */\nvar isNative = function isNative(fn) {\n return nativeHints.some(function (hint) {\n return (fn || '').toString().indexOf(hint) > -1;\n });\n};\n\nvar isBrowser = typeof window !== 'undefined';\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var scheduled = false;\n var i = 0;\n var elem = document.createElement('span');\n\n // MutationObserver provides a mechanism for scheduling microtasks, which\n // are scheduled *before* the next task. This gives us a way to debounce\n // a function but ensure it's called *before* the next paint.\n var observer = new MutationObserver(function () {\n fn();\n scheduled = false;\n });\n\n observer.observe(elem, { attributes: true });\n\n return function () {\n if (!scheduled) {\n scheduled = true;\n elem.setAttribute('x-index', i);\n i = i + 1; // don't use compund (+=) because it doesn't get optimized in V8\n }\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\n// It's common for MutationObserver polyfills to be seen in the wild, however\n// these rely on Mutation Events which only occur when an element is connected\n// to the DOM. The algorithm used in this module does not use a connected element,\n// and so we must ensure that a *native* MutationObserver is available.\nvar supportsNativeMutationObserver = isBrowser && isNative(window.MutationObserver);\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsNativeMutationObserver ? microtaskDebounce : taskDebounce;\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element || ['HTML', 'BODY', '#document'].indexOf(element.nodeName) !== -1) {\n return window.document.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || element.firstElementChild.offsetParent === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n // NOTE: 1 DOM access here\n var offsetParent = element && element.offsetParent;\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return window.document.documentElement;\n }\n\n return offsetParent;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return window.document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = window.document.documentElement;\n var scrollingElement = window.document.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return +styles['border' + sideA + 'Width'].split('px')[0] + +styles['border' + sideB + 'Width'].split('px')[0];\n}\n\nfunction getWindowSizes() {\n var body = window.document.body;\n var html = window.document.documentElement;\n return {\n height: Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight),\n width: Math.max(body.scrollWidth, body.offsetWidth, html.clientWidth, html.scrollWidth, html.offsetWidth)\n };\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar defineProperty = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Tells if you are running Internet Explorer 10\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean} isIE10\n */\nvar isIE10 = undefined;\n\nvar isIE10$1 = function isIE10$1() {\n if (isIE10 === undefined) {\n isIE10 = navigator.appVersion.indexOf('MSIE 10') !== -1;\n }\n return isIE10;\n};\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n if (isIE10$1()) {\n try {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } catch (err) {}\n } else {\n rect = element.getBoundingClientRect();\n }\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var isIE10 = isIE10$1();\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top,\n left: childrenRect.left - parentRect.left,\n width: childrenRect.width,\n height: childrenRect.height\n });\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (isHTML || parent.nodeName === 'BODY') {\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = isIE10 && isHTML ? 0 : +styles.borderTopWidth.split('px')[0];\n var borderLeftWidth = isIE10 && isHTML ? 0 : +styles.borderLeftWidth.split('px')[0];\n var marginTop = isIE10 && isHTML ? 0 : +styles.marginTop.split('px')[0];\n var marginLeft = isIE10 && isHTML ? 0 : +styles.marginLeft.split('px')[0];\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (parent.contains(scrollParent) && (isIE10 || scrollParent.nodeName !== 'BODY')) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var html = window.document.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = getScroll(html);\n var scrollLeft = getScroll(html, 'left');\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n // NOTE: 1 DOM access here\n var boundaries = { top: 0, left: 0 };\n var offsetParent = findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(popper));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = window.document.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = window.document.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, 0, boundariesElement);\n\n var sides = {\n top: refRect.top - boundaries.top,\n right: boundaries.right - refRect.right,\n bottom: boundaries.bottom - refRect.bottom,\n left: refRect.left - boundaries.left\n };\n\n var computedPlacement = Object.keys(sides).sort(function (a, b) {\n return sides[b] - sides[a];\n })[0];\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var commonOffsetParent = findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier.function) {\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier.function || modifier.fn;\n if (modifier.enabled && isFunction(fn)) {\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'webkit', 'moz', 'o'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length - 1; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof window.document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.left = '';\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? window : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n window.addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n window.removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n window.cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data, options) {\n // apply the final offsets to the popper\n // NOTE: 1 DOM access here\n var styles = {\n position: data.offsets.popper.position\n };\n\n var attributes = {\n 'x-placement': data.placement\n };\n\n // round top and left to avoid blurry text\n var left = Math.round(data.offsets.popper.left);\n var top = Math.round(data.offsets.popper.top);\n\n // if gpuAcceleration is set to true and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n if (options.gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles.top = 0;\n styles.left = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `left` and `top` properties\n styles.left = left;\n styles.top = top;\n styles.willChange = 'top, left';\n }\n\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, _extends({}, styles, data.styles));\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, _extends({}, attributes, data.attributes));\n\n // if the arrow style has been computed, apply the arrow style\n if (data.offsets.arrow) {\n setStyles(data.arrowElement, data.offsets.arrow);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement);\n\n popper.setAttribute('x-placement', placement);\n return options;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var popper = getClientRect(data.offsets.popper);\n var reference = data.offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var side = isVertical ? 'top' : 'left';\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n var sideValue = center - getClientRect(data.offsets.popper)[side];\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {};\n data.offsets.arrow[side] = sideValue;\n data.offsets.arrow[altSide] = ''; // make sure to unset any eventual altSide value from the DOM node\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = getClientRect(data.offsets.popper);\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n data.offsets.popper = getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement);\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var popper = getClientRect(data.offsets.popper);\n var reference = data.offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement);\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = getClientRect(data.offsets.popper);\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var reference = data.offsets.reference;\n var popper = getClientRect(data.offsets.popper);\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var popper = getClientRect(data.offsets.popper);\n var reference = getClientRect(data.offsets.reference);\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[placement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} priority=['left', 'right', 'top', 'bottom']\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arro] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overriden using the `options` argument of Popper.js.
\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar DEFAULTS = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreateCallback}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdateCallback}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreateCallback\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdateCallback\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper =\n/**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [DEFAULTS](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\nfunction Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n this.update = update;\n this.destroy = destroy;\n this.enableEventListeners = enableEventListeners;\n this.disableEventListeners = disableEventListeners;\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference.jquery ? reference[0] : reference;\n this.popper = popper.jquery ? popper[0] : popper;\n\n // make sure to apply the popper position before any computation\n setStyles(this.popper, { position: 'absolute' });\n\n // refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(Popper.Defaults.modifiers).map(function (name) {\n return _extends({\n name: name\n }, Popper.Defaults.modifiers[name]);\n });\n\n // assign default values to modifiers, making sure to override them with\n // the ones defined by user\n this.modifiers = this.modifiers.map(function (defaultConfig) {\n var userConfig = options.modifiers && options.modifiers[defaultConfig.name] || {};\n return _extends({}, defaultConfig, userConfig);\n });\n\n // add custom modifiers to the modifiers list\n if (options.modifiers) {\n this.options.modifiers = _extends({}, Popper.Defaults.modifiers, options.modifiers);\n Object.keys(options.modifiers).forEach(function (name) {\n // take in account only custom modifiers\n if (Popper.Defaults.modifiers[name] === undefined) {\n var modifier = options.modifiers[name];\n modifier.name = name;\n _this.modifiers.push(modifier);\n }\n });\n }\n\n // sort the modifiers by order\n this.modifiers = this.modifiers.sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n};\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = DEFAULTS;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = Popper;\n//# sourceMappingURL=popper.js.map\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_popper_js__ = __webpack_require__(2);\n\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {*} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar DEFAULT_OPTIONS = {\n container: false,\n delay: 0,\n html: false,\n placement: 'top',\n title: '',\n template: '
',\n trigger: 'hover focus',\n offset: 0\n};\n\nvar Tooltip = function () {\n /**\n * Create a new Tooltip.js instance\n * @class Tooltip\n * @param {HTMLElement} reference - The reference element used to position the tooltip\n * @param {Object} options\n * @param {String} options.placement=bottom\n * Placement of the popper accepted values: `top(-start, -end), right(-start, -end), bottom(-start, -end),\n * left(-start, -end)`\n *\n * @param {HTMLElement} reference - The DOM node used as reference of the tooltip (it can be a jQuery element).\n * @param {Object} options - Configuration of the tooltip\n * @param {HTMLElement|String|false} options.container=false - Append the tooltip to a specific element.\n * @param {Number|Object} options.delay=0\n * Delay showing and hiding the tooltip (ms) - does not apply to manual trigger type.\n * If a number is supplied, delay is applied to both hide/show.\n * Object structure is: `{ show: 500, hide: 100 }`\n * @param {Boolean} options.html=false - Insert HTML into the tooltip. If false, the content will inserted with `innerText`.\n * @param {String|PlacementFunction} options.placement='top' - One of the allowed placements, or a function returning one of them.\n * @param {String} options.template='
'\n * Base HTML to used when creating the tooltip.\n * The tooltip's `title` will be injected into the `.tooltip-inner` or `.tooltip__inner`.\n * `.tooltip-arrow` or `.tooltip__arrow` will become the tooltip's arrow.\n * The outermost wrapper element should have the `.tooltip` class.\n * @param {String|HTMLElement|TitleFunction} options.title='' - Default title value if `title` attribute isn't present.\n * @param {String} options.trigger='hover focus'\n * How tooltip is triggered - click | hover | focus | manual.\n * You may pass multiple triggers; separate them with a space. `manual` cannot be combined with any other trigger.\n * @param {HTMLElement} options.boundariesElement\n * The element used as boundaries for the tooltip. For more information refer to Popper.js'\n * [boundariesElement docs](https://popper.js.org/popper-documentation.html)\n * @param {Number|String} options.offset=0 - Offset of the tooltip relative to its reference. For more information refer to Popper.js'\n * [offset docs](https://popper.js.org/popper-documentation.html)\n * @return {Object} instance - The generated tooltip instance\n */\n function Tooltip(reference, options) {\n classCallCheck(this, Tooltip);\n\n _initialiseProps.call(this);\n\n // apply user options over default ones\n options = _extends({}, DEFAULT_OPTIONS, options);\n\n reference.jquery && (reference = reference[0]);\n\n // cache reference and options\n this.reference = reference;\n this.options = options;\n\n // get events list\n var events = typeof options.trigger === 'string' ? options.trigger.split(' ').filter(function (trigger) {\n return ['click', 'hover', 'focus'].indexOf(trigger) !== -1;\n }) : [];\n\n // set initial state\n this._isOpen = false;\n\n // set event listeners\n this._setEventListeners(reference, events, options);\n }\n\n //\n // Public methods\n //\n\n /**\n * Reveals an element's tooltip. This is considered a \"manual\" triggering of the tooltip.\n * Tooltips with zero-length titles are never displayed.\n * @memberof Tooltip\n */\n\n /**\n * Hides an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @memberof Tooltip\n */\n\n /**\n * Hides and destroys an element’s tooltip.\n * @memberof Tooltip\n */\n\n /**\n * Toggles an element’s tooltip. This is considered a “manual” triggering of the tooltip.\n * @memberof Tooltip\n */\n\n //\n // Defaults\n //\n\n\n //\n // Private methods\n //\n\n createClass(Tooltip, [{\n key: '_create',\n\n /**\n * Creates a new tooltip node\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} reference\n * @param {String} template\n * @param {String|HTMLElement|TitleFunction} title\n * @param {Boolean} allowHtml\n * @return {HTMLelement} tooltipNode\n */\n value: function _create(reference, template, title, allowHtml) {\n // create tooltip element\n var tooltipGenerator = window.document.createElement('div');\n tooltipGenerator.innerHTML = template;\n var tooltipNode = tooltipGenerator.childNodes[0];\n\n // add unique ID to our tooltip (needed for accessibility reasons)\n tooltipNode.id = 'tooltip_' + Math.random().toString(36).substr(2, 10);\n\n // set initial `aria-hidden` state to `false` (it's visible!)\n tooltipNode.setAttribute('aria-hidden', 'false');\n\n // add title to tooltip\n var titleNode = tooltipGenerator.querySelector(this.innerSelector);\n if (title.nodeType === 1) {\n // if title is a node, append it only if allowHtml is true\n allowHtml && titleNode.appendChild(title);\n } else if (isFunction(title)) {\n // if title is a function, call it and set innerText or innerHtml depending by `allowHtml` value\n var titleText = title.call(reference);\n allowHtml ? titleNode.innerHTML = titleText : titleNode.innerText = titleText;\n } else {\n // if it's just a simple text, set innerText or innerHtml depending by `allowHtml` value\n allowHtml ? titleNode.innerHTML = title : titleNode.innerText = title;\n }\n\n // return the generated tooltip node\n return tooltipNode;\n }\n }, {\n key: '_show',\n value: function _show(reference, options) {\n // don't show if it's already visible\n if (this._isOpen) {\n return this;\n }\n this._isOpen = true;\n\n // if the tooltipNode already exists, just show it\n if (this._tooltipNode) {\n this._tooltipNode.style.display = '';\n this._tooltipNode.setAttribute('aria-hidden', 'false');\n this.popperInstance.update();\n return this;\n }\n\n // get title\n var title = reference.getAttribute('title') || options.title;\n\n // don't show tooltip if no title is defined\n if (!title) {\n return this;\n }\n\n // create tooltip node\n var tooltipNode = this._create(reference, options.template, title, options.html);\n\n // Add `aria-describedby` to our reference element for accessibility reasons\n tooltipNode.setAttribute('aria-describedby', tooltipNode.id);\n\n // append tooltip to container\n var container = this._findContainer(options.container, reference);\n\n this._append(tooltipNode, container);\n\n var popperOptions = {\n placement: options.placement,\n arrowElement: this.arrowSelector\n };\n\n if (options.boundariesElement) {\n popperOptions.boundariesElement = options.boundariesElement;\n }\n\n this.popperInstance = new __WEBPACK_IMPORTED_MODULE_0_popper_js__[\"a\" /* default */](reference, tooltipNode, popperOptions);\n\n this._tooltipNode = tooltipNode;\n\n return this;\n }\n }, {\n key: '_hide',\n value: function _hide() /*reference, options*/{\n // don't hide if it's already hidden\n if (!this._isOpen) {\n return this;\n }\n\n this._isOpen = false;\n\n // hide tooltipNode\n this._tooltipNode.style.display = 'none';\n this._tooltipNode.setAttribute('aria-hidden', 'true');\n\n return this;\n }\n }, {\n key: '_dispose',\n value: function _dispose() {\n var _this = this;\n\n if (this._tooltipNode) {\n this._hide();\n\n // destroy instance\n this.popperInstance.destroy();\n\n // remove event listeners\n this._events.forEach(function (_ref) {\n var func = _ref.func,\n event = _ref.event;\n\n _this._tooltipNode.removeEventListener(event, func);\n });\n this._events = [];\n\n // destroy tooltipNode\n this._tooltipNode.parentNode.removeChild(this._tooltipNode);\n this._tooltipNode = null;\n }\n return this;\n }\n }, {\n key: '_findContainer',\n value: function _findContainer(container, reference) {\n // if container is a query, get the relative element\n if (typeof container === 'string') {\n container = window.document.querySelector(container);\n } else if (container === false) {\n // if container is `false`, set it to reference parent\n container = reference.parentNode;\n }\n return container;\n }\n\n /**\n * Append tooltip to container\n * @memberof Tooltip\n * @private\n * @param {HTMLElement} tooltip\n * @param {HTMLElement|String|false} container\n */\n\n }, {\n key: '_append',\n value: function _append(tooltipNode, container) {\n container.appendChild(tooltipNode);\n }\n }, {\n key: '_setEventListeners',\n value: function _setEventListeners(reference, events, options) {\n var _this2 = this;\n\n var directEvents = [];\n var oppositeEvents = [];\n\n events.forEach(function (event) {\n switch (event) {\n case 'hover':\n directEvents.push('mouseenter');\n oppositeEvents.push('mouseleave');\n case 'focus':\n directEvents.push('focus');\n oppositeEvents.push('blur');\n case 'click':\n directEvents.push('click');\n oppositeEvents.push('click');\n }\n });\n\n // schedule show tooltip\n directEvents.forEach(function (event) {\n var func = function func(evt) {\n if (_this2._isOpen === true) {\n return;\n }\n evt.usedByTooltip = true;\n _this2._scheduleShow(reference, options.delay, options, evt);\n };\n _this2._events.push({ event: event, func: func });\n reference.addEventListener(event, func);\n });\n\n // schedule hide tooltip\n oppositeEvents.forEach(function (event) {\n var func = function func(evt) {\n if (evt.usedByTooltip === true) {\n return;\n }\n _this2._scheduleHide(reference, options.delay, options, evt);\n };\n _this2._events.push({ event: event, func: func });\n reference.addEventListener(event, func);\n });\n }\n }, {\n key: '_scheduleShow',\n value: function _scheduleShow(reference, delay, options /*, evt */) {\n var _this3 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.show || delay || 0;\n window.setTimeout(function () {\n return _this3._show(reference, options);\n }, computedDelay);\n }\n }, {\n key: '_scheduleHide',\n value: function _scheduleHide(reference, delay, options, evt) {\n var _this4 = this;\n\n // defaults to 0\n var computedDelay = delay && delay.hide || delay || 0;\n window.setTimeout(function () {\n if (_this4._isOpen === false) {\n return;\n }\n if (!document.body.contains(_this4._tooltipNode)) {\n return;\n }\n\n // if we are hiding because of a mouseleave, we must check that the new\n // reference isn't the tooltip, because in this case we don't want to hide it\n if (evt.type === 'mouseleave') {\n var isSet = _this4._setTooltipNodeEvent(evt, reference, delay, options);\n\n // if we set the new event, don't hide the tooltip yet\n // the new event will take care to hide it if necessary\n if (isSet) {\n return;\n }\n }\n\n _this4._hide(reference, options);\n }, computedDelay);\n }\n }]);\n return Tooltip;\n}();\n\n/**\n * Placement function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback PlacementFunction\n * @param {HTMLElement} tooltip - tooltip DOM node.\n * @param {HTMLElement} reference - reference DOM node.\n * @return {String} placement - One of the allowed placement options.\n */\n\n/**\n * Title function, its context is the Tooltip instance.\n * @memberof Tooltip\n * @callback TitleFunction\n * @return {String} placement - The desired title.\n */\n\nvar _initialiseProps = function _initialiseProps() {\n var _this5 = this;\n\n this.show = function () {\n return _this5._show(_this5.reference, _this5.options);\n };\n\n this.hide = function () {\n return _this5._hide();\n };\n\n this.dispose = function () {\n return _this5._dispose();\n };\n\n this.toggle = function () {\n if (_this5._isOpen) {\n return _this5.hide();\n } else {\n return _this5.show();\n }\n };\n\n this.arrowSelector = '.tooltip-arrow, .tooltip__arrow';\n this.innerSelector = '.tooltip-inner, .tooltip__inner';\n this._events = [];\n\n this._setTooltipNodeEvent = function (evt, reference, delay, options) {\n var relatedreference = evt.relatedreference || evt.toElement;\n\n var callback = function callback(evt2) {\n var relatedreference2 = evt2.relatedreference || evt2.toElement;\n\n // Remove event listener after call\n _this5._tooltipNode.removeEventListener(evt.type, callback);\n\n // If the new reference is not the reference element\n if (!reference.contains(relatedreference2)) {\n // Schedule to hide tooltip\n _this5._scheduleHide(reference, options.delay, options, evt2);\n }\n };\n\n if (_this5._tooltipNode.contains(relatedreference)) {\n // listen to mouseleave on the tooltip element to be able to hide the tooltip\n _this5._tooltipNode.addEventListener(evt.type, callback);\n return true;\n }\n\n return false;\n };\n};\n\n/* harmony default export */ __webpack_exports__[\"a\"] = Tooltip;\n//# sourceMappingURL=tooltip.js.map\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__v_tooltip__ = __webpack_require__(0);\n/* harmony export (immutable) */ __webpack_exports__[\"install\"] = install;\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"VTooltip\", function() { return VTooltip; });\n\n\nfunction install(Vue, options) {\n if (install.installed) return;\n install.installed = true;\n\n options = Object.assign({}, __WEBPACK_IMPORTED_MODULE_0__v_tooltip__[\"a\" /* defaultOptions */], options || {});\n __WEBPACK_IMPORTED_MODULE_0__v_tooltip__[\"b\" /* default */].options = options;\n Vue.directive('tooltip', __WEBPACK_IMPORTED_MODULE_0__v_tooltip__[\"b\" /* default */]);\n}\n\nvar VTooltip = __WEBPACK_IMPORTED_MODULE_0__v_tooltip__[\"b\" /* default */];\n\nvar plugin = {\n install: install\n};\n\n// Auto-install\nvar GlobalVue = null;\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\nif (GlobalVue) {\n GlobalVue.use(plugin);\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = plugin;\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAgMjk4OWMwOWU5Nzc4NGIyNWYzMGMiLCJ3ZWJwYWNrOi8vLy4vc3JjL3YtdG9vbHRpcC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvdXRpbHMuanMiLCJ3ZWJwYWNrOi8vLy4vfi9wb3BwZXIuanMvZGlzdC9lc20vcG9wcGVyLmpzIiwid2VicGFjazovLy8uL34vdG9vbHRpcC5qcy9kaXN0L2VzbS90b29sdGlwLmpzIiwid2VicGFjazovLy8uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJwb3NpdGlvbnMiLCJkZWZhdWx0T3B0aW9ucyIsImRlZmF1bHRQbGFjZW1lbnQiLCJkZWZhdWx0Q2xhc3MiLCJkZWZhdWx0VGVtcGxhdGUiLCJkZWZhdWx0RGVsYXkiLCJkZWZhdWx0VHJpZ2dlciIsImRlZmF1bHRPZmZzZXQiLCJkZWZhdWx0Q29udGFpbmVyIiwiZ2V0T3B0aW9ucyIsIm9wdGlvbnMiLCJwbGFjZW1lbnQiLCJkaXJlY3RpdmUiLCJkZWxheSIsInRlbXBsYXRlIiwidHJpZ2dlciIsIm9mZnNldCIsImNvbnRhaW5lciIsImdldFBsYWNlbWVudCIsInZhbHVlIiwibW9kaWZpZXJzIiwicG9zIiwiU3VwZXJUb29sdGlwIiwiY2xhc3NlcyIsImVsIiwiX3Rvb2x0aXBOb2RlIiwib2xkQ2xhc3NlcyIsIl9vbGRDbGFzc2VzIiwicmVwbGFjZUNsYXNzZXMiLCJhZGRDbGFzc2VzIiwicmVtb3ZlQ2xhc3NlcyIsIl9wZW5kaW5nQ2xhc3NlcyIsIl9jbGFzc2VzIiwiY29udGVudCIsInRpdGxlIiwicXVlcnlTZWxlY3RvciIsImlubmVyU2VsZWN0b3IiLCJpbm5lckhUTUwiLCJwb3BwZXJJbnN0YW5jZSIsInVwZGF0ZSIsIm5lZWRQb3BwZXJVcGRhdGUiLCJuZWVkUmVzdGFydCIsImtleSIsImlzT3BlbiIsIl9pc09wZW4iLCJkaXNwb3NlIiwiZXZlbnRzIiwic3BsaXQiLCJmaWx0ZXIiLCJpbmRleE9mIiwiX3NldEV2ZW50TGlzdGVuZXJzIiwicmVmZXJlbmNlIiwic2V0Q2xhc3NlcyIsInNob3ciLCJfZXZlbnRzIiwiZm9yRWFjaCIsImZ1bmMiLCJldmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJhcmdzIiwic2V0VGltZW91dCIsImNyZWF0ZVRvb2x0aXAiLCJ0b29sdGlwIiwiX3Rvb2x0aXAiLCJodG1sIiwiZGVzdHJveVRvb2x0aXAiLCJiaW5kIiwib2xkVmFsdWUiLCJzZXRDb250ZW50Iiwic2V0T3B0aW9ucyIsInVuYmluZCIsImNvbnZlcnRUb0FycmF5IiwiY2xhc3NMaXN0IiwiYWRkIiwiYyIsInJlbW92ZSIsIm5ld0NsYXNzZXMiLCJuYXRpdmVIaW50cyIsImlzTmF0aXZlIiwiZm4iLCJzb21lIiwiaGludCIsInRvU3RyaW5nIiwiaXNCcm93c2VyIiwid2luZG93IiwibG9uZ2VyVGltZW91dEJyb3dzZXJzIiwidGltZW91dER1cmF0aW9uIiwiaSIsImxlbmd0aCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsIm1pY3JvdGFza0RlYm91bmNlIiwic2NoZWR1bGVkIiwiZWxlbSIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsIm9ic2VydmVyIiwiTXV0YXRpb25PYnNlcnZlciIsIm9ic2VydmUiLCJhdHRyaWJ1dGVzIiwic2V0QXR0cmlidXRlIiwidGFza0RlYm91bmNlIiwic3VwcG9ydHNOYXRpdmVNdXRhdGlvbk9ic2VydmVyIiwiZGVib3VuY2UiLCJpc051bWVyaWMiLCJuIiwiaXNOYU4iLCJwYXJzZUZsb2F0IiwiaXNGaW5pdGUiLCJzZXRTdHlsZXMiLCJlbGVtZW50Iiwic3R5bGVzIiwiT2JqZWN0Iiwia2V5cyIsInByb3AiLCJ1bml0Iiwic3R5bGUiLCJpc0Z1bmN0aW9uIiwiZnVuY3Rpb25Ub0NoZWNrIiwiZ2V0VHlwZSIsImNhbGwiLCJnZXRTdHlsZUNvbXB1dGVkUHJvcGVydHkiLCJwcm9wZXJ0eSIsIm5vZGVUeXBlIiwiY3NzIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsImdldFBhcmVudE5vZGUiLCJub2RlTmFtZSIsInBhcmVudE5vZGUiLCJob3N0IiwiZ2V0U2Nyb2xsUGFyZW50IiwiYm9keSIsIl9nZXRTdHlsZUNvbXB1dGVkUHJvcCIsIm92ZXJmbG93Iiwib3ZlcmZsb3dYIiwib3ZlcmZsb3dZIiwidGVzdCIsImlzT2Zmc2V0Q29udGFpbmVyIiwiZmlyc3RFbGVtZW50Q2hpbGQiLCJvZmZzZXRQYXJlbnQiLCJnZXRSb290Iiwibm9kZSIsImdldE9mZnNldFBhcmVudCIsImRvY3VtZW50RWxlbWVudCIsImZpbmRDb21tb25PZmZzZXRQYXJlbnQiLCJlbGVtZW50MSIsImVsZW1lbnQyIiwib3JkZXIiLCJjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiIsIk5vZGUiLCJET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkciLCJzdGFydCIsImVuZCIsInJhbmdlIiwiY3JlYXRlUmFuZ2UiLCJzZXRTdGFydCIsInNldEVuZCIsImNvbW1vbkFuY2VzdG9yQ29udGFpbmVyIiwiY29udGFpbnMiLCJlbGVtZW50MXJvb3QiLCJnZXRTY3JvbGwiLCJzaWRlIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwidXBwZXJTaWRlIiwic2Nyb2xsaW5nRWxlbWVudCIsImluY2x1ZGVTY3JvbGwiLCJyZWN0Iiwic3VidHJhY3QiLCJzY3JvbGxUb3AiLCJzY3JvbGxMZWZ0IiwibW9kaWZpZXIiLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJnZXRCb3JkZXJzU2l6ZSIsImF4aXMiLCJzaWRlQSIsInNpZGVCIiwiZ2V0V2luZG93U2l6ZXMiLCJoZWlnaHQiLCJNYXRoIiwibWF4Iiwic2Nyb2xsSGVpZ2h0Iiwib2Zmc2V0SGVpZ2h0IiwiY2xpZW50SGVpZ2h0Iiwid2lkdGgiLCJzY3JvbGxXaWR0aCIsIm9mZnNldFdpZHRoIiwiY2xpZW50V2lkdGgiLCJjbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiQ29uc3RydWN0b3IiLCJUeXBlRXJyb3IiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9leHRlbmRzIiwiYXNzaWduIiwidGFyZ2V0Iiwic291cmNlIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJnZXRDbGllbnRSZWN0Iiwib2Zmc2V0cyIsImlzSUUxMCIsImlzSUUxMCQxIiwiYXBwVmVyc2lvbiIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImVyciIsInJlc3VsdCIsInNpemVzIiwiaG9yaXpTY3JvbGxiYXIiLCJ2ZXJ0U2Nyb2xsYmFyIiwiZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlIiwiY2hpbGRyZW4iLCJwYXJlbnQiLCJpc0hUTUwiLCJjaGlsZHJlblJlY3QiLCJwYXJlbnRSZWN0Iiwic2Nyb2xsUGFyZW50IiwiYm9yZGVyVG9wV2lkdGgiLCJib3JkZXJMZWZ0V2lkdGgiLCJtYXJnaW5Ub3AiLCJtYXJnaW5MZWZ0IiwiZ2V0Vmlld3BvcnRPZmZzZXRSZWN0UmVsYXRpdmVUb0FydGJpdHJhcnlOb2RlIiwicmVsYXRpdmVPZmZzZXQiLCJpbm5lcldpZHRoIiwiaW5uZXJIZWlnaHQiLCJpc0ZpeGVkIiwiZ2V0Qm91bmRhcmllcyIsInBvcHBlciIsInBhZGRpbmciLCJib3VuZGFyaWVzRWxlbWVudCIsImJvdW5kYXJpZXMiLCJib3VuZGFyaWVzTm9kZSIsIl9nZXRXaW5kb3dTaXplcyIsImNvbXB1dGVBdXRvUGxhY2VtZW50IiwicmVmUmVjdCIsInNpZGVzIiwiY29tcHV0ZWRQbGFjZW1lbnQiLCJzb3J0IiwiYSIsImIiLCJ2YXJpYXRpb24iLCJnZXRSZWZlcmVuY2VPZmZzZXRzIiwic3RhdGUiLCJjb21tb25PZmZzZXRQYXJlbnQiLCJnZXRPdXRlclNpemVzIiwieCIsIm1hcmdpbkJvdHRvbSIsInkiLCJtYXJnaW5SaWdodCIsImdldE9wcG9zaXRlUGxhY2VtZW50IiwiaGFzaCIsInJlcGxhY2UiLCJtYXRjaGVkIiwiZ2V0UG9wcGVyT2Zmc2V0cyIsInJlZmVyZW5jZU9mZnNldHMiLCJwb3BwZXJSZWN0IiwicG9wcGVyT2Zmc2V0cyIsImlzSG9yaXoiLCJtYWluU2lkZSIsInNlY29uZGFyeVNpZGUiLCJtZWFzdXJlbWVudCIsInNlY29uZGFyeU1lYXN1cmVtZW50IiwiZmluZCIsImFyciIsImNoZWNrIiwiQXJyYXkiLCJmaW5kSW5kZXgiLCJjdXIiLCJtYXRjaCIsInJ1bk1vZGlmaWVycyIsImRhdGEiLCJlbmRzIiwibW9kaWZpZXJzVG9SdW4iLCJzbGljZSIsImZ1bmN0aW9uIiwiY29uc29sZSIsIndhcm4iLCJlbmFibGVkIiwiaXNEZXN0cm95ZWQiLCJmbGlwcGVkIiwiZmxpcCIsIm9yaWdpbmFsUGxhY2VtZW50IiwicG9zaXRpb24iLCJpc0NyZWF0ZWQiLCJvbkNyZWF0ZSIsIm9uVXBkYXRlIiwiaXNNb2RpZmllckVuYWJsZWQiLCJtb2RpZmllck5hbWUiLCJfcmVmIiwibmFtZSIsImdldFN1cHBvcnRlZFByb3BlcnR5TmFtZSIsInByZWZpeGVzIiwidXBwZXJQcm9wIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJwcmVmaXgiLCJ0b0NoZWNrIiwiZGVzdHJveSIsInJlbW92ZUF0dHJpYnV0ZSIsImRpc2FibGVFdmVudExpc3RlbmVycyIsInJlbW92ZU9uRGVzdHJveSIsInJlbW92ZUNoaWxkIiwiYXR0YWNoVG9TY3JvbGxQYXJlbnRzIiwiY2FsbGJhY2siLCJzY3JvbGxQYXJlbnRzIiwiaXNCb2R5IiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJwdXNoIiwic2V0dXBFdmVudExpc3RlbmVycyIsInVwZGF0ZUJvdW5kIiwic2Nyb2xsRWxlbWVudCIsImV2ZW50c0VuYWJsZWQiLCJlbmFibGVFdmVudExpc3RlbmVycyIsInNjaGVkdWxlVXBkYXRlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lcnMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsInNldEF0dHJpYnV0ZXMiLCJhcHBseVN0eWxlIiwicm91bmQiLCJwcmVmaXhlZFByb3BlcnR5IiwiZ3B1QWNjZWxlcmF0aW9uIiwid2lsbENoYW5nZSIsImFycm93IiwiYXJyb3dFbGVtZW50IiwiYXBwbHlTdHlsZU9uTG9hZCIsIm1vZGlmaWVyT3B0aW9ucyIsImlzTW9kaWZpZXJSZXF1aXJlZCIsInJlcXVlc3RpbmdOYW1lIiwicmVxdWVzdGVkTmFtZSIsInJlcXVlc3RpbmciLCJpc1JlcXVpcmVkIiwiX3JlcXVlc3RpbmciLCJyZXF1ZXN0ZWQiLCJpc1ZlcnRpY2FsIiwibGVuIiwiYWx0U2lkZSIsIm9wU2lkZSIsImFycm93RWxlbWVudFNpemUiLCJjZW50ZXIiLCJzaWRlVmFsdWUiLCJtaW4iLCJnZXRPcHBvc2l0ZVZhcmlhdGlvbiIsInBsYWNlbWVudHMiLCJ2YWxpZFBsYWNlbWVudHMiLCJjbG9ja3dpc2UiLCJjb3VudGVyIiwiaW5kZXgiLCJjb25jYXQiLCJyZXZlcnNlIiwiQkVIQVZJT1JTIiwiRkxJUCIsIkNMT0NLV0lTRSIsIkNPVU5URVJDTE9DS1dJU0UiLCJwbGFjZW1lbnRPcHBvc2l0ZSIsImZsaXBPcmRlciIsImJlaGF2aW9yIiwic3RlcCIsInJlZk9mZnNldHMiLCJmbG9vciIsIm92ZXJsYXBzUmVmIiwib3ZlcmZsb3dzTGVmdCIsIm92ZXJmbG93c1JpZ2h0Iiwib3ZlcmZsb3dzVG9wIiwib3ZlcmZsb3dzQm90dG9tIiwib3ZlcmZsb3dzQm91bmRhcmllcyIsImZsaXBwZWRWYXJpYXRpb24iLCJmbGlwVmFyaWF0aW9ucyIsImtlZXBUb2dldGhlciIsInRvVmFsdWUiLCJzdHIiLCJzaXplIiwicGFyc2VPZmZzZXQiLCJiYXNlUGxhY2VtZW50IiwidXNlSGVpZ2h0IiwiZnJhZ21lbnRzIiwibWFwIiwiZnJhZyIsInRyaW0iLCJkaXZpZGVyIiwic2VhcmNoIiwic3BsaXRSZWdleCIsIm9wcyIsIm9wIiwibWVyZ2VXaXRoUHJldmlvdXMiLCJyZWR1Y2UiLCJpbmRleDIiLCJfZGF0YSRvZmZzZXRzIiwicHJldmVudE92ZXJmbG93IiwicHJpb3JpdHkiLCJwcmltYXJ5IiwiZXNjYXBlV2l0aFJlZmVyZW5jZSIsInNlY29uZGFyeSIsInNoaWZ0Iiwic2hpZnR2YXJpYXRpb24iLCJzaGlmdE9mZnNldHMiLCJoaWRlIiwiYm91bmQiLCJpbm5lciIsInN1YnRyYWN0TGVuZ3RoIiwib25Mb2FkIiwiREVGQVVMVFMiLCJQb3BwZXIiLCJfdGhpcyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIkRlZmF1bHRzIiwianF1ZXJ5IiwiZGVmYXVsdENvbmZpZyIsInVzZXJDb25maWciLCJVdGlscyIsImdsb2JhbCIsIlBvcHBlclV0aWxzIiwiY3JlYXRlQ2xhc3MiLCJkZWZpbmVQcm9wZXJ0aWVzIiwicHJvcHMiLCJkZXNjcmlwdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiREVGQVVMVF9PUFRJT05TIiwiVG9vbHRpcCIsIl9pbml0aWFsaXNlUHJvcHMiLCJfY3JlYXRlIiwiYWxsb3dIdG1sIiwidG9vbHRpcEdlbmVyYXRvciIsInRvb2x0aXBOb2RlIiwiY2hpbGROb2RlcyIsImlkIiwicmFuZG9tIiwic3Vic3RyIiwidGl0bGVOb2RlIiwiYXBwZW5kQ2hpbGQiLCJ0aXRsZVRleHQiLCJpbm5lclRleHQiLCJfc2hvdyIsImRpc3BsYXkiLCJnZXRBdHRyaWJ1dGUiLCJfZmluZENvbnRhaW5lciIsIl9hcHBlbmQiLCJwb3BwZXJPcHRpb25zIiwiYXJyb3dTZWxlY3RvciIsIl9oaWRlIiwiX2Rpc3Bvc2UiLCJfdGhpczIiLCJkaXJlY3RFdmVudHMiLCJvcHBvc2l0ZUV2ZW50cyIsImV2dCIsInVzZWRCeVRvb2x0aXAiLCJfc2NoZWR1bGVTaG93IiwiX3NjaGVkdWxlSGlkZSIsIl90aGlzMyIsImNvbXB1dGVkRGVsYXkiLCJfdGhpczQiLCJ0eXBlIiwiaXNTZXQiLCJfc2V0VG9vbHRpcE5vZGVFdmVudCIsIl90aGlzNSIsInRvZ2dsZSIsInJlbGF0ZWRyZWZlcmVuY2UiLCJ0b0VsZW1lbnQiLCJldnQyIiwicmVsYXRlZHJlZmVyZW5jZTIiLCJpbnN0YWxsIiwiVnVlIiwiaW5zdGFsbGVkIiwidnRvb2x0aXAiLCJWVG9vbHRpcCIsInBsdWdpbiIsIkdsb2JhbFZ1ZSIsInVzZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOzs7QUFHQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQSxtREFBMkMsY0FBYzs7QUFFekQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFLO0FBQ0w7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBMkIsMEJBQTBCLEVBQUU7QUFDdkQseUNBQWlDLGVBQWU7QUFDaEQ7QUFDQTtBQUNBOztBQUVBO0FBQ0EsOERBQXNELCtEQUErRDs7QUFFckg7QUFDQTs7QUFFQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ2hFQTs7QUFFQTs7QUFFQSxJQUFNQSxZQUFZLENBQ2hCLEtBRGdCLEVBRWhCLFdBRmdCLEVBR2hCLFNBSGdCLEVBSWhCLE9BSmdCLEVBS2hCLGFBTGdCLEVBTWhCLFdBTmdCLEVBT2hCLFFBUGdCLEVBUWhCLGNBUmdCLEVBU2hCLFlBVGdCLEVBVWhCLE1BVmdCLEVBV2hCLFlBWGdCLEVBWWhCLFVBWmdCLENBQWxCOztBQWVPLElBQU1DLGlCQUFpQjtBQUM1QkMsb0JBQWtCLEtBRFU7QUFFNUJDLGdCQUFjLG1CQUZjO0FBRzVCQyxtQkFBaUIsOEdBSFc7QUFJNUJDLGdCQUFjLENBSmM7QUFLNUJDLGtCQUFnQixhQUxZO0FBTTVCQyxpQkFBZSxDQU5hO0FBTzVCQyxvQkFBa0I7QUFQVSxDQUF2Qjs7QUFVUCxTQUFTQyxVQUFULENBQXFCQyxPQUFyQixFQUE4QjtBQUM1QixTQUFPO0FBQ0xDLGVBQVdELFFBQVFDLFNBQVIsSUFBcUJDLFVBQVVGLE9BQVYsQ0FBa0JSLGdCQUQ3QztBQUVMVyxXQUFPSCxRQUFRRyxLQUFSLElBQWlCRCxVQUFVRixPQUFWLENBQWtCTCxZQUZyQztBQUdMUyxjQUFVSixRQUFRSSxRQUFSLElBQW9CRixVQUFVRixPQUFWLENBQWtCTixlQUgzQztBQUlMVyxhQUFTTCxRQUFRSyxPQUFSLElBQW1CSCxVQUFVRixPQUFWLENBQWtCSixjQUp6QztBQUtMVSxZQUFRTixRQUFRTSxNQUFSLElBQWtCSixVQUFVRixPQUFWLENBQWtCSCxhQUx2QztBQU1MVSxlQUFXUCxRQUFRTyxTQUFSLElBQXFCTCxVQUFVRixPQUFWLENBQWtCRjtBQU43QyxHQUFQO0FBUUQ7O0FBRUQsU0FBU1UsWUFBVCxDQUF1QkMsS0FBdkIsRUFBOEJDLFNBQTlCLEVBQXlDO0FBQ3ZDLE1BQUlULFlBQVlRLE1BQU1SLFNBQXRCO0FBRHVDO0FBQUE7QUFBQTs7QUFBQTtBQUV2Qyx5QkFBa0JYLFNBQWxCLDhIQUE2QjtBQUFBLFVBQWxCcUIsR0FBa0I7O0FBQzNCLFVBQUlELFVBQVVDLEdBQVYsQ0FBSixFQUFvQjtBQUNsQlYsb0JBQVlVLEdBQVo7QUFDRDtBQUNGO0FBTnNDO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBT3ZDLFNBQU9WLFNBQVA7QUFDRDs7SUFFS1csWTs7Ozs7Ozs7Ozs7K0JBQ1FDLE8sRUFBUztBQUNuQixVQUFNQyxLQUFLLEtBQUtDLFlBQWhCOztBQUVBLFVBQUlELEVBQUosRUFBUTtBQUNOLFlBQU1FLGFBQWEsS0FBS0MsV0FBeEI7QUFDQSxZQUFJSixPQUFKLEVBQWE7QUFDWCxjQUFJRyxVQUFKLEVBQWdCO0FBQ2RFLFlBQUEscUZBQUFBLENBQWVKLEVBQWYsRUFBbUJELE9BQW5CLEVBQTRCRyxVQUE1QjtBQUNELFdBRkQsTUFFTztBQUNMRyxZQUFBLGlGQUFBQSxDQUFXTCxFQUFYLEVBQWVELE9BQWY7QUFDRDtBQUNGLFNBTkQsTUFNTyxJQUFJRyxVQUFKLEVBQWdCO0FBQ3JCSSxVQUFBLG9GQUFBQSxDQUFjTixFQUFkLEVBQWtCRSxVQUFsQjtBQUNEO0FBQ0QsYUFBS0MsV0FBTCxHQUFtQkosT0FBbkI7QUFDRCxPQVpELE1BWU87QUFDTCxhQUFLUSxlQUFMLEdBQXVCUixPQUF2QjtBQUNEOztBQUVELFdBQUtTLFFBQUwsR0FBZ0JULE9BQWhCO0FBQ0Q7OzsrQkFFV1UsTyxFQUFTO0FBQ25CLFdBQUt2QixPQUFMLENBQWF3QixLQUFiLEdBQXFCRCxPQUFyQjtBQUNBLFVBQUksS0FBS1IsWUFBVCxFQUF1QjtBQUNyQixZQUFNRCxLQUFLLEtBQUtDLFlBQUwsQ0FBa0JVLGFBQWxCLENBQWdDLEtBQUtDLGFBQXJDLENBQVg7O0FBRUEsWUFBSVosRUFBSixFQUFRO0FBQ04sY0FBSSxDQUFDUyxPQUFMLEVBQWM7QUFDWlQsZUFBR2EsU0FBSCxHQUFlLEVBQWY7QUFDRCxXQUZELE1BRU87QUFDTGIsZUFBR2EsU0FBSCxHQUFlSixPQUFmO0FBQ0Q7O0FBRUQsZUFBS0ssY0FBTCxDQUFvQkMsTUFBcEI7QUFDRDtBQUNGO0FBQ0Y7OzsrQkFFVzdCLE8sRUFBUztBQUNuQkEsZ0JBQVVELFdBQVdDLE9BQVgsQ0FBVjs7QUFFQSxVQUFJOEIsbUJBQW1CLEtBQXZCO0FBQ0EsVUFBSUMsY0FBYyxLQUFsQjs7QUFFQSxVQUNFLEtBQUsvQixPQUFMLENBQWFNLE1BQWIsS0FBd0JOLFFBQVFNLE1BQWhDLElBQ0EsS0FBS04sT0FBTCxDQUFhQyxTQUFiLEtBQTJCRCxRQUFRQyxTQUZyQyxFQUdFO0FBQ0E2QiwyQkFBbUIsSUFBbkI7QUFDRDs7QUFFRCxVQUNFLEtBQUs5QixPQUFMLENBQWFJLFFBQWIsS0FBMEJKLFFBQVFJLFFBQWxDLElBQ0EsS0FBS0osT0FBTCxDQUFhSyxPQUFiLEtBQXlCTCxRQUFRSyxPQURqQyxJQUVBLEtBQUtMLE9BQUwsQ0FBYU8sU0FBYixLQUEyQlAsUUFBUU8sU0FIckMsRUFJRTtBQUNBd0Isc0JBQWMsSUFBZDtBQUNEOztBQUVELFdBQUssSUFBTUMsR0FBWCxJQUFrQmhDLE9BQWxCLEVBQTJCO0FBQ3pCLGFBQUtBLE9BQUwsQ0FBYWdDLEdBQWIsSUFBb0JoQyxRQUFRZ0MsR0FBUixDQUFwQjtBQUNEOztBQUVELFVBQUksS0FBS2pCLFlBQVQsRUFBdUI7QUFDckIsWUFBSWdCLFdBQUosRUFBaUI7QUFDZixjQUFNRSxTQUFTLEtBQUtDLE9BQXBCOztBQUVBLGVBQUtDLE9BQUw7O0FBRUEsY0FBTUMsU0FBUyxPQUFPLEtBQUtwQyxPQUFMLENBQWFLLE9BQXBCLEtBQWdDLFFBQWhDLEdBQ1hMLFFBQVFLLE9BQVIsQ0FDQ2dDLEtBREQsQ0FDTyxHQURQLEVBRUNDLE1BRkQsQ0FHRTtBQUFBLG1CQUFXLENBQUMsT0FBRCxFQUFVLE9BQVYsRUFBbUIsT0FBbkIsRUFBNEJDLE9BQTVCLENBQW9DbEMsT0FBcEMsTUFBaUQsQ0FBQyxDQUE3RDtBQUFBLFdBSEYsQ0FEVyxHQU1YLEVBTko7QUFPQSxlQUFLbUMsa0JBQUwsQ0FBd0IsS0FBS0MsU0FBN0IsRUFBd0NMLE1BQXhDLEVBQWdELEtBQUtwQyxPQUFyRDs7QUFFQSxlQUFLMEMsVUFBTCxDQUFnQixLQUFLcEIsUUFBckI7O0FBRUEsY0FBSVcsTUFBSixFQUFZO0FBQ1YsaUJBQUtVLElBQUw7QUFDRDtBQUNGLFNBbkJELE1BbUJPLElBQUliLGdCQUFKLEVBQXNCO0FBQzNCLGVBQUtGLGNBQUwsQ0FBb0JDLE1BQXBCO0FBQ0Q7QUFDRjtBQUNGOzs7K0JBRVc7QUFBQTs7QUFDVixXQUFLZSxPQUFMLENBQWFDLE9BQWIsQ0FBcUIsZ0JBQXFCO0FBQUEsWUFBbEJDLElBQWtCLFFBQWxCQSxJQUFrQjtBQUFBLFlBQVpDLEtBQVksUUFBWkEsS0FBWTs7QUFDeEMsZUFBS04sU0FBTCxDQUFlTyxtQkFBZixDQUFtQ0QsS0FBbkMsRUFBMENELElBQTFDO0FBQ0QsT0FGRDtBQUdBLFdBQUtGLE9BQUwsR0FBZSxFQUFmO0FBQ0E7QUFDRDs7OzRCQUVlO0FBQUE7QUFBQTs7QUFBQSx3Q0FBTkssSUFBTTtBQUFOQSxZQUFNO0FBQUE7O0FBQ2QsdUpBQWVBLElBQWY7O0FBRUEsVUFBSSxLQUFLNUIsZUFBVCxFQUEwQjtBQUN4QixhQUFLcUIsVUFBTCxDQUFnQixLQUFLckIsZUFBckI7QUFDQSxhQUFLQSxlQUFMLEdBQXVCLElBQXZCO0FBQ0Q7O0FBRUQ7QUFDQTZCLGlCQUFXLFlBQU07QUFDZixlQUFLdEIsY0FBTCxDQUFvQkMsTUFBcEI7QUFDRCxPQUZELEVBRUcsQ0FGSDtBQUdEOzs7O0VBL0d3QiwyRDs7QUFrSDNCLFNBQVNzQixhQUFULENBQXdCckMsRUFBeEIsRUFBNEJMLEtBQTVCLEVBQW1DQyxTQUFuQyxFQUE4QztBQUM1QyxNQUFNYSxVQUFVZCxNQUFNYyxPQUFOLElBQWlCZCxLQUFqQztBQUNBLE1BQUlJLFVBQVVKLE1BQU1JLE9BQU4sSUFBaUJYLFVBQVVGLE9BQVYsQ0FBa0JQLFlBQWpEOztBQUVBLE1BQU0yRCxVQUFVdEMsR0FBR3VDLFFBQUgsR0FBYyxJQUFJekMsWUFBSixDQUFpQkUsRUFBakI7QUFDNUJVLFdBQU9ELE9BRHFCO0FBRTVCK0IsVUFBTTtBQUZzQixLQUd6QnZELHdCQUNFVSxLQURGO0FBRURSLGVBQVdPLGFBQWFDLEtBQWIsRUFBb0JDLFNBQXBCO0FBRlYsS0FIeUIsRUFBOUI7QUFRQTBDLFVBQVFWLFVBQVIsQ0FBbUI3QixPQUFuQjtBQUNEOztBQUVELFNBQVMwQyxjQUFULENBQXlCekMsRUFBekIsRUFBNkI7QUFDM0IsTUFBSUEsR0FBR3VDLFFBQVAsRUFBaUI7QUFDZnZDLE9BQUd1QyxRQUFILENBQVlsQixPQUFaO0FBQ0EsV0FBT3JCLEdBQUd1QyxRQUFWO0FBQ0Q7QUFDRjs7QUFFRCxJQUFNbkQsWUFBWTtBQUNoQkYsV0FBU1QsY0FETztBQUVoQmlFLE1BRmdCLGdCQUVWMUMsRUFGVSxTQUVnQjtBQUFBLFFBQXBCTCxLQUFvQixTQUFwQkEsS0FBb0I7QUFBQSxRQUFiQyxTQUFhLFNBQWJBLFNBQWE7O0FBQzlCLFFBQU1hLFVBQVVkLFNBQVNBLE1BQU1jLE9BQWYsSUFBMEJkLEtBQTFDO0FBQ0E4QyxtQkFBZXpDLEVBQWY7QUFDQSxRQUFJUyxPQUFKLEVBQWE7QUFDWDRCLG9CQUFjckMsRUFBZCxFQUFrQkwsS0FBbEIsRUFBeUJDLFNBQXpCO0FBQ0Q7QUFDRixHQVJlO0FBU2hCbUIsUUFUZ0Isa0JBU1JmLEVBVFEsU0FTNEI7QUFBQSxRQUE5QkwsS0FBOEIsU0FBOUJBLEtBQThCO0FBQUEsUUFBdkJnRCxRQUF1QixTQUF2QkEsUUFBdUI7QUFBQSxRQUFiL0MsU0FBYSxTQUFiQSxTQUFhOztBQUMxQyxRQUFNYSxVQUFVZCxTQUFTQSxNQUFNYyxPQUFmLElBQTBCZCxLQUExQztBQUNBLFFBQUksQ0FBQ2MsT0FBTCxFQUFjO0FBQ1pnQyxxQkFBZXpDLEVBQWY7QUFDRCxLQUZELE1BRU8sSUFBSUEsR0FBR3VDLFFBQVAsRUFBaUI7QUFDdEIsVUFBTUQsVUFBVXRDLEdBQUd1QyxRQUFuQjtBQUNBO0FBQ0FELGNBQVFNLFVBQVIsQ0FBbUJuQyxPQUFuQjtBQUNBO0FBQ0E2QixjQUFRVixVQUFSLENBQW9CakMsU0FBU0EsTUFBTUksT0FBaEIsSUFBNEJYLFVBQVVGLE9BQVYsQ0FBa0JQLFlBQWpFO0FBQ0E7QUFDQTJELGNBQVFPLFVBQVIsY0FDS2xELEtBREw7QUFFRVIsbUJBQVdPLGFBQWFDLEtBQWIsRUFBb0JDLFNBQXBCO0FBRmI7QUFJRCxLQVhNLE1BV0E7QUFDTHlDLG9CQUFjckMsRUFBZCxFQUFrQkwsS0FBbEIsRUFBeUJDLFNBQXpCO0FBQ0Q7QUFDRixHQTNCZTtBQTRCaEJrRCxRQTVCZ0Isa0JBNEJSOUMsRUE1QlEsRUE0Qko7QUFDVnlDLG1CQUFlekMsRUFBZjtBQUNEO0FBOUJlLENBQWxCOztBQWlDQSx3REFBZVosU0FBZixDOzs7Ozs7Ozs7OztBQzFOQSxTQUFTMkQsY0FBVCxDQUF5QnBELEtBQXpCLEVBQWdDO0FBQzlCLE1BQUksT0FBT0EsS0FBUCxLQUFpQixRQUFyQixFQUErQjtBQUM3QkEsWUFBUUEsTUFBTTRCLEtBQU4sQ0FBWSxHQUFaLENBQVI7QUFDRDtBQUNELFNBQU81QixLQUFQO0FBQ0Q7O0FBRU0sU0FBU1UsVUFBVCxDQUFxQkwsRUFBckIsRUFBeUJELE9BQXpCLEVBQWtDO0FBQ3ZDQSxZQUFVZ0QsZUFBZWhELE9BQWYsQ0FBVjtBQUNBQSxVQUFRZ0MsT0FBUixDQUFnQixhQUFLO0FBQ25CL0IsT0FBR2dELFNBQUgsQ0FBYUMsR0FBYixDQUFpQkMsQ0FBakI7QUFDRCxHQUZEO0FBR0Q7O0FBRU0sU0FBUzVDLGFBQVQsQ0FBd0JOLEVBQXhCLEVBQTRCRCxPQUE1QixFQUFxQztBQUMxQ0EsWUFBVWdELGVBQWVoRCxPQUFmLENBQVY7QUFDQUEsVUFBUWdDLE9BQVIsQ0FBZ0IsYUFBSztBQUNuQi9CLE9BQUdnRCxTQUFILENBQWFHLE1BQWIsQ0FBb0JELENBQXBCO0FBQ0QsR0FGRDtBQUdEOztBQUVNLFNBQVM5QyxjQUFULENBQXlCSixFQUF6QixFQUE2Qm9ELFVBQTdCLEVBQXlDbEQsVUFBekMsRUFBcUQ7QUFDMURJLGdCQUFjTixFQUFkLEVBQWtCRSxVQUFsQjtBQUNBRyxhQUFXTCxFQUFYLEVBQWVvRCxVQUFmO0FBQ0QsQzs7Ozs7OztBQ3pCRCxJQUFJQyxjQUFjLENBQUMsYUFBRCxFQUFnQixzQ0FBaEIsQ0FBbEI7O0FBRUE7Ozs7Ozs7QUFPQSxJQUFJQyxXQUFZLFNBQVpBLFFBQVksQ0FBVUMsRUFBVixFQUFjO0FBQzVCLFNBQU9GLFlBQVlHLElBQVosQ0FBaUIsVUFBVUMsSUFBVixFQUFnQjtBQUN0QyxXQUFPLENBQUNGLE1BQU0sRUFBUCxFQUFXRyxRQUFYLEdBQXNCakMsT0FBdEIsQ0FBOEJnQyxJQUE5QixJQUFzQyxDQUFDLENBQTlDO0FBQ0QsR0FGTSxDQUFQO0FBR0QsQ0FKRDs7QUFNQSxJQUFJRSxZQUFZLE9BQU9DLE1BQVAsS0FBa0IsV0FBbEM7QUFDQSxJQUFJQyx3QkFBd0IsQ0FBQyxNQUFELEVBQVMsU0FBVCxFQUFvQixTQUFwQixDQUE1QjtBQUNBLElBQUlDLGtCQUFrQixDQUF0QjtBQUNBLEtBQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRixzQkFBc0JHLE1BQTFDLEVBQWtERCxLQUFLLENBQXZELEVBQTBEO0FBQ3hELE1BQUlKLGFBQWFNLFVBQVVDLFNBQVYsQ0FBb0J6QyxPQUFwQixDQUE0Qm9DLHNCQUFzQkUsQ0FBdEIsQ0FBNUIsS0FBeUQsQ0FBMUUsRUFBNkU7QUFDM0VELHNCQUFrQixDQUFsQjtBQUNBO0FBQ0Q7QUFDRjs7QUFFRCxTQUFTSyxpQkFBVCxDQUEyQlosRUFBM0IsRUFBK0I7QUFDN0IsTUFBSWEsWUFBWSxLQUFoQjtBQUNBLE1BQUlMLElBQUksQ0FBUjtBQUNBLE1BQUlNLE9BQU9DLFNBQVNDLGFBQVQsQ0FBdUIsTUFBdkIsQ0FBWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFJQyxXQUFXLElBQUlDLGdCQUFKLENBQXFCLFlBQVk7QUFDOUNsQjtBQUNBYSxnQkFBWSxLQUFaO0FBQ0QsR0FIYyxDQUFmOztBQUtBSSxXQUFTRSxPQUFULENBQWlCTCxJQUFqQixFQUF1QixFQUFFTSxZQUFZLElBQWQsRUFBdkI7O0FBRUEsU0FBTyxZQUFZO0FBQ2pCLFFBQUksQ0FBQ1AsU0FBTCxFQUFnQjtBQUNkQSxrQkFBWSxJQUFaO0FBQ0FDLFdBQUtPLFlBQUwsQ0FBa0IsU0FBbEIsRUFBNkJiLENBQTdCO0FBQ0FBLFVBQUlBLElBQUksQ0FBUixDQUhjLENBR0g7QUFDWjtBQUNGLEdBTkQ7QUFPRDs7QUFFRCxTQUFTYyxZQUFULENBQXNCdEIsRUFBdEIsRUFBMEI7QUFDeEIsTUFBSWEsWUFBWSxLQUFoQjtBQUNBLFNBQU8sWUFBWTtBQUNqQixRQUFJLENBQUNBLFNBQUwsRUFBZ0I7QUFDZEEsa0JBQVksSUFBWjtBQUNBaEMsaUJBQVcsWUFBWTtBQUNyQmdDLG9CQUFZLEtBQVo7QUFDQWI7QUFDRCxPQUhELEVBR0dPLGVBSEg7QUFJRDtBQUNGLEdBUkQ7QUFTRDs7QUFFRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUlnQixpQ0FBaUNuQixhQUFhTCxTQUFTTSxPQUFPYSxnQkFBaEIsQ0FBbEQ7O0FBRUE7Ozs7Ozs7OztBQVNBLElBQUlNLFdBQVdELGlDQUFpQ1gsaUJBQWpDLEdBQXFEVSxZQUFwRTs7QUFFQTs7Ozs7OztBQU9BLFNBQVNHLFNBQVQsQ0FBbUJDLENBQW5CLEVBQXNCO0FBQ3BCLFNBQU9BLE1BQU0sRUFBTixJQUFZLENBQUNDLE1BQU1DLFdBQVdGLENBQVgsQ0FBTixDQUFiLElBQXFDRyxTQUFTSCxDQUFULENBQTVDO0FBQ0Q7O0FBRUQ7Ozs7Ozs7O0FBUUEsU0FBU0ksU0FBVCxDQUFtQkMsT0FBbkIsRUFBNEJDLE1BQTVCLEVBQW9DO0FBQ2xDQyxTQUFPQyxJQUFQLENBQVlGLE1BQVosRUFBb0J4RCxPQUFwQixDQUE0QixVQUFVMkQsSUFBVixFQUFnQjtBQUMxQyxRQUFJQyxPQUFPLEVBQVg7QUFDQTtBQUNBLFFBQUksQ0FBQyxPQUFELEVBQVUsUUFBVixFQUFvQixLQUFwQixFQUEyQixPQUEzQixFQUFvQyxRQUFwQyxFQUE4QyxNQUE5QyxFQUFzRGxFLE9BQXRELENBQThEaUUsSUFBOUQsTUFBd0UsQ0FBQyxDQUF6RSxJQUE4RVYsVUFBVU8sT0FBT0csSUFBUCxDQUFWLENBQWxGLEVBQTJHO0FBQ3pHQyxhQUFPLElBQVA7QUFDRDtBQUNETCxZQUFRTSxLQUFSLENBQWNGLElBQWQsSUFBc0JILE9BQU9HLElBQVAsSUFBZUMsSUFBckM7QUFDRCxHQVBEO0FBUUQ7O0FBRUQ7Ozs7Ozs7QUFPQSxTQUFTRSxVQUFULENBQW9CQyxlQUFwQixFQUFxQztBQUNuQyxNQUFJQyxVQUFVLEVBQWQ7QUFDQSxTQUFPRCxtQkFBbUJDLFFBQVFyQyxRQUFSLENBQWlCc0MsSUFBakIsQ0FBc0JGLGVBQXRCLE1BQTJDLG1CQUFyRTtBQUNEOztBQUVEOzs7Ozs7O0FBT0EsU0FBU0csd0JBQVQsQ0FBa0NYLE9BQWxDLEVBQTJDWSxRQUEzQyxFQUFxRDtBQUNuRCxNQUFJWixRQUFRYSxRQUFSLEtBQXFCLENBQXpCLEVBQTRCO0FBQzFCLFdBQU8sRUFBUDtBQUNEO0FBQ0Q7QUFDQSxNQUFJQyxNQUFNeEMsT0FBT3lDLGdCQUFQLENBQXdCZixPQUF4QixFQUFpQyxJQUFqQyxDQUFWO0FBQ0EsU0FBT1ksV0FBV0UsSUFBSUYsUUFBSixDQUFYLEdBQTJCRSxHQUFsQztBQUNEOztBQUVEOzs7Ozs7O0FBT0EsU0FBU0UsYUFBVCxDQUF1QmhCLE9BQXZCLEVBQWdDO0FBQzlCLE1BQUlBLFFBQVFpQixRQUFSLEtBQXFCLE1BQXpCLEVBQWlDO0FBQy9CLFdBQU9qQixPQUFQO0FBQ0Q7QUFDRCxTQUFPQSxRQUFRa0IsVUFBUixJQUFzQmxCLFFBQVFtQixJQUFyQztBQUNEOztBQUVEOzs7Ozs7O0FBT0EsU0FBU0MsZUFBVCxDQUF5QnBCLE9BQXpCLEVBQWtDO0FBQ2hDO0FBQ0EsTUFBSSxDQUFDQSxPQUFELElBQVksQ0FBQyxNQUFELEVBQVMsTUFBVCxFQUFpQixXQUFqQixFQUE4QjdELE9BQTlCLENBQXNDNkQsUUFBUWlCLFFBQTlDLE1BQTRELENBQUMsQ0FBN0UsRUFBZ0Y7QUFDOUUsV0FBTzNDLE9BQU9VLFFBQVAsQ0FBZ0JxQyxJQUF2QjtBQUNEOztBQUVEOztBQUVBLE1BQUlDLHdCQUF3QlgseUJBQXlCWCxPQUF6QixDQUE1QjtBQUFBLE1BQ0l1QixXQUFXRCxzQkFBc0JDLFFBRHJDO0FBQUEsTUFFSUMsWUFBWUYsc0JBQXNCRSxTQUZ0QztBQUFBLE1BR0lDLFlBQVlILHNCQUFzQkcsU0FIdEM7O0FBS0EsTUFBSSxnQkFBZ0JDLElBQWhCLENBQXFCSCxXQUFXRSxTQUFYLEdBQXVCRCxTQUE1QyxDQUFKLEVBQTREO0FBQzFELFdBQU94QixPQUFQO0FBQ0Q7O0FBRUQsU0FBT29CLGdCQUFnQkosY0FBY2hCLE9BQWQsQ0FBaEIsQ0FBUDtBQUNEOztBQUVELFNBQVMyQixpQkFBVCxDQUEyQjNCLE9BQTNCLEVBQW9DO0FBQ2xDLE1BQUlpQixXQUFXakIsUUFBUWlCLFFBQXZCOztBQUVBLE1BQUlBLGFBQWEsTUFBakIsRUFBeUI7QUFDdkIsV0FBTyxLQUFQO0FBQ0Q7QUFDRCxTQUFPQSxhQUFhLE1BQWIsSUFBdUJqQixRQUFRNEIsaUJBQVIsQ0FBMEJDLFlBQTFCLEtBQTJDN0IsT0FBekU7QUFDRDs7QUFFRDs7Ozs7OztBQU9BLFNBQVM4QixPQUFULENBQWlCQyxJQUFqQixFQUF1QjtBQUNyQixNQUFJQSxLQUFLYixVQUFMLEtBQW9CLElBQXhCLEVBQThCO0FBQzVCLFdBQU9ZLFFBQVFDLEtBQUtiLFVBQWIsQ0FBUDtBQUNEOztBQUVELFNBQU9hLElBQVA7QUFDRDs7QUFFRDs7Ozs7OztBQU9BLFNBQVNDLGVBQVQsQ0FBeUJoQyxPQUF6QixFQUFrQztBQUNoQztBQUNBLE1BQUk2QixlQUFlN0IsV0FBV0EsUUFBUTZCLFlBQXRDO0FBQ0EsTUFBSVosV0FBV1ksZ0JBQWdCQSxhQUFhWixRQUE1Qzs7QUFFQSxNQUFJLENBQUNBLFFBQUQsSUFBYUEsYUFBYSxNQUExQixJQUFvQ0EsYUFBYSxNQUFyRCxFQUE2RDtBQUMzRCxXQUFPM0MsT0FBT1UsUUFBUCxDQUFnQmlELGVBQXZCO0FBQ0Q7O0FBRUQsU0FBT0osWUFBUDtBQUNEOztBQUVEOzs7Ozs7OztBQVFBLFNBQVNLLHNCQUFULENBQWdDQyxRQUFoQyxFQUEwQ0MsUUFBMUMsRUFBb0Q7QUFDbEQ7QUFDQSxNQUFJLENBQUNELFFBQUQsSUFBYSxDQUFDQSxTQUFTdEIsUUFBdkIsSUFBbUMsQ0FBQ3VCLFFBQXBDLElBQWdELENBQUNBLFNBQVN2QixRQUE5RCxFQUF3RTtBQUN0RSxXQUFPdkMsT0FBT1UsUUFBUCxDQUFnQmlELGVBQXZCO0FBQ0Q7O0FBRUQ7QUFDQSxNQUFJSSxRQUFRRixTQUFTRyx1QkFBVCxDQUFpQ0YsUUFBakMsSUFBNkNHLEtBQUtDLDJCQUE5RDtBQUNBLE1BQUlDLFFBQVFKLFFBQVFGLFFBQVIsR0FBbUJDLFFBQS9CO0FBQ0EsTUFBSU0sTUFBTUwsUUFBUUQsUUFBUixHQUFtQkQsUUFBN0I7O0FBRUE7QUFDQSxNQUFJUSxRQUFRM0QsU0FBUzRELFdBQVQsRUFBWjtBQUNBRCxRQUFNRSxRQUFOLENBQWVKLEtBQWYsRUFBc0IsQ0FBdEI7QUFDQUUsUUFBTUcsTUFBTixDQUFhSixHQUFiLEVBQWtCLENBQWxCO0FBQ0EsTUFBSUssMEJBQTBCSixNQUFNSSx1QkFBcEM7O0FBRUE7O0FBRUEsTUFBSVosYUFBYVksdUJBQWIsSUFBd0NYLGFBQWFXLHVCQUFyRCxJQUFnRk4sTUFBTU8sUUFBTixDQUFlTixHQUFmLENBQXBGLEVBQXlHO0FBQ3ZHLFFBQUlmLGtCQUFrQm9CLHVCQUFsQixDQUFKLEVBQWdEO0FBQzlDLGFBQU9BLHVCQUFQO0FBQ0Q7O0FBRUQsV0FBT2YsZ0JBQWdCZSx1QkFBaEIsQ0FBUDtBQUNEOztBQUVEO0FBQ0EsTUFBSUUsZUFBZW5CLFFBQVFLLFFBQVIsQ0FBbkI7QUFDQSxNQUFJYyxhQUFhOUIsSUFBakIsRUFBdUI7QUFDckIsV0FBT2UsdUJBQXVCZSxhQUFhOUIsSUFBcEMsRUFBMENpQixRQUExQyxDQUFQO0FBQ0QsR0FGRCxNQUVPO0FBQ0wsV0FBT0YsdUJBQXVCQyxRQUF2QixFQUFpQ0wsUUFBUU0sUUFBUixFQUFrQmpCLElBQW5ELENBQVA7QUFDRDtBQUNGOztBQUVEOzs7Ozs7OztBQVFBLFNBQVMrQixTQUFULENBQW1CbEQsT0FBbkIsRUFBNEI7QUFDMUIsTUFBSW1ELE9BQU9DLFVBQVUxRSxNQUFWLEdBQW1CLENBQW5CLElBQXdCMEUsVUFBVSxDQUFWLE1BQWlCQyxTQUF6QyxHQUFxREQsVUFBVSxDQUFWLENBQXJELEdBQW9FLEtBQS9FOztBQUVBLE1BQUlFLFlBQVlILFNBQVMsS0FBVCxHQUFpQixXQUFqQixHQUErQixZQUEvQztBQUNBLE1BQUlsQyxXQUFXakIsUUFBUWlCLFFBQXZCOztBQUVBLE1BQUlBLGFBQWEsTUFBYixJQUF1QkEsYUFBYSxNQUF4QyxFQUFnRDtBQUM5QyxRQUFJL0QsT0FBT29CLE9BQU9VLFFBQVAsQ0FBZ0JpRCxlQUEzQjtBQUNBLFFBQUlzQixtQkFBbUJqRixPQUFPVSxRQUFQLENBQWdCdUUsZ0JBQWhCLElBQW9DckcsSUFBM0Q7QUFDQSxXQUFPcUcsaUJBQWlCRCxTQUFqQixDQUFQO0FBQ0Q7O0FBRUQsU0FBT3RELFFBQVFzRCxTQUFSLENBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7O0FBU0EsU0FBU0UsYUFBVCxDQUF1QkMsSUFBdkIsRUFBNkJ6RCxPQUE3QixFQUFzQztBQUNwQyxNQUFJMEQsV0FBV04sVUFBVTFFLE1BQVYsR0FBbUIsQ0FBbkIsSUFBd0IwRSxVQUFVLENBQVYsTUFBaUJDLFNBQXpDLEdBQXFERCxVQUFVLENBQVYsQ0FBckQsR0FBb0UsS0FBbkY7O0FBRUEsTUFBSU8sWUFBWVQsVUFBVWxELE9BQVYsRUFBbUIsS0FBbkIsQ0FBaEI7QUFDQSxNQUFJNEQsYUFBYVYsVUFBVWxELE9BQVYsRUFBbUIsTUFBbkIsQ0FBakI7QUFDQSxNQUFJNkQsV0FBV0gsV0FBVyxDQUFDLENBQVosR0FBZ0IsQ0FBL0I7QUFDQUQsT0FBS0ssR0FBTCxJQUFZSCxZQUFZRSxRQUF4QjtBQUNBSixPQUFLTSxNQUFMLElBQWVKLFlBQVlFLFFBQTNCO0FBQ0FKLE9BQUtPLElBQUwsSUFBYUosYUFBYUMsUUFBMUI7QUFDQUosT0FBS1EsS0FBTCxJQUFjTCxhQUFhQyxRQUEzQjtBQUNBLFNBQU9KLElBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7OztBQVVBLFNBQVNTLGNBQVQsQ0FBd0JqRSxNQUF4QixFQUFnQ2tFLElBQWhDLEVBQXNDO0FBQ3BDLE1BQUlDLFFBQVFELFNBQVMsR0FBVCxHQUFlLE1BQWYsR0FBd0IsS0FBcEM7QUFDQSxNQUFJRSxRQUFRRCxVQUFVLE1BQVYsR0FBbUIsT0FBbkIsR0FBNkIsUUFBekM7O0FBRUEsU0FBTyxDQUFDbkUsT0FBTyxXQUFXbUUsS0FBWCxHQUFtQixPQUExQixFQUFtQ25JLEtBQW5DLENBQXlDLElBQXpDLEVBQStDLENBQS9DLENBQUQsR0FBcUQsQ0FBQ2dFLE9BQU8sV0FBV29FLEtBQVgsR0FBbUIsT0FBMUIsRUFBbUNwSSxLQUFuQyxDQUF5QyxJQUF6QyxFQUErQyxDQUEvQyxDQUE3RDtBQUNEOztBQUVELFNBQVNxSSxjQUFULEdBQTBCO0FBQ3hCLE1BQUlqRCxPQUFPL0MsT0FBT1UsUUFBUCxDQUFnQnFDLElBQTNCO0FBQ0EsTUFBSW5FLE9BQU9vQixPQUFPVSxRQUFQLENBQWdCaUQsZUFBM0I7QUFDQSxTQUFPO0FBQ0xzQyxZQUFRQyxLQUFLQyxHQUFMLENBQVNwRCxLQUFLcUQsWUFBZCxFQUE0QnJELEtBQUtzRCxZQUFqQyxFQUErQ3pILEtBQUswSCxZQUFwRCxFQUFrRTFILEtBQUt3SCxZQUF2RSxFQUFxRnhILEtBQUt5SCxZQUExRixDQURIO0FBRUxFLFdBQU9MLEtBQUtDLEdBQUwsQ0FBU3BELEtBQUt5RCxXQUFkLEVBQTJCekQsS0FBSzBELFdBQWhDLEVBQTZDN0gsS0FBSzhILFdBQWxELEVBQStEOUgsS0FBSzRILFdBQXBFLEVBQWlGNUgsS0FBSzZILFdBQXRGO0FBRkYsR0FBUDtBQUlEOztBQUVELElBQUlFLGlCQUFpQixTQUFqQkEsY0FBaUIsQ0FBVUMsUUFBVixFQUFvQkMsV0FBcEIsRUFBaUM7QUFDcEQsTUFBSSxFQUFFRCxvQkFBb0JDLFdBQXRCLENBQUosRUFBd0M7QUFDdEMsVUFBTSxJQUFJQyxTQUFKLENBQWMsbUNBQWQsQ0FBTjtBQUNEO0FBQ0YsQ0FKRDs7QUFZQSxJQUFJQyxpQkFBaUIsU0FBakJBLGNBQWlCLENBQVVDLEdBQVYsRUFBZTFKLEdBQWYsRUFBb0J2QixLQUFwQixFQUEyQjtBQUM5QyxNQUFJdUIsT0FBTzBKLEdBQVgsRUFBZ0I7QUFDZHBGLFdBQU9tRixjQUFQLENBQXNCQyxHQUF0QixFQUEyQjFKLEdBQTNCLEVBQWdDO0FBQzlCdkIsYUFBT0EsS0FEdUI7QUFFOUJrTCxrQkFBWSxJQUZrQjtBQUc5QkMsb0JBQWMsSUFIZ0I7QUFJOUJDLGdCQUFVO0FBSm9CLEtBQWhDO0FBTUQsR0FQRCxNQU9PO0FBQ0xILFFBQUkxSixHQUFKLElBQVd2QixLQUFYO0FBQ0Q7O0FBRUQsU0FBT2lMLEdBQVA7QUFDRCxDQWJEOztBQWVBLElBQUlJLFdBQVd4RixPQUFPeUYsTUFBUCxJQUFpQixVQUFVQyxNQUFWLEVBQWtCO0FBQ2hELE9BQUssSUFBSW5ILElBQUksQ0FBYixFQUFnQkEsSUFBSTJFLFVBQVUxRSxNQUE5QixFQUFzQ0QsR0FBdEMsRUFBMkM7QUFDekMsUUFBSW9ILFNBQVN6QyxVQUFVM0UsQ0FBVixDQUFiOztBQUVBLFNBQUssSUFBSTdDLEdBQVQsSUFBZ0JpSyxNQUFoQixFQUF3QjtBQUN0QixVQUFJM0YsT0FBTzRGLFNBQVAsQ0FBaUJDLGNBQWpCLENBQWdDckYsSUFBaEMsQ0FBcUNtRixNQUFyQyxFQUE2Q2pLLEdBQTdDLENBQUosRUFBdUQ7QUFDckRnSyxlQUFPaEssR0FBUCxJQUFjaUssT0FBT2pLLEdBQVAsQ0FBZDtBQUNEO0FBQ0Y7QUFDRjs7QUFFRCxTQUFPZ0ssTUFBUDtBQUNELENBWkQ7O0FBY0E7Ozs7Ozs7QUFPQSxTQUFTSSxhQUFULENBQXVCQyxPQUF2QixFQUFnQztBQUM5QixTQUFPUCxTQUFTLEVBQVQsRUFBYU8sT0FBYixFQUFzQjtBQUMzQmhDLFdBQU9nQyxRQUFRakMsSUFBUixHQUFlaUMsUUFBUXBCLEtBREg7QUFFM0JkLFlBQVFrQyxRQUFRbkMsR0FBUixHQUFjbUMsUUFBUTFCO0FBRkgsR0FBdEIsQ0FBUDtBQUlEOztBQUVEOzs7Ozs7QUFNQSxJQUFJMkIsU0FBUzdDLFNBQWI7O0FBRUEsSUFBSThDLFdBQVcsU0FBWEEsUUFBVyxHQUFZO0FBQ3pCLE1BQUlELFdBQVc3QyxTQUFmLEVBQTBCO0FBQ3hCNkMsYUFBU3ZILFVBQVV5SCxVQUFWLENBQXFCakssT0FBckIsQ0FBNkIsU0FBN0IsTUFBNEMsQ0FBQyxDQUF0RDtBQUNEO0FBQ0QsU0FBTytKLE1BQVA7QUFDRCxDQUxEOztBQU9BOzs7Ozs7O0FBT0EsU0FBU0cscUJBQVQsQ0FBK0JyRyxPQUEvQixFQUF3QztBQUN0QyxNQUFJeUQsT0FBTyxFQUFYOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQUkwQyxVQUFKLEVBQWdCO0FBQ2QsUUFBSTtBQUNGMUMsYUFBT3pELFFBQVFxRyxxQkFBUixFQUFQO0FBQ0EsVUFBSTFDLFlBQVlULFVBQVVsRCxPQUFWLEVBQW1CLEtBQW5CLENBQWhCO0FBQ0EsVUFBSTRELGFBQWFWLFVBQVVsRCxPQUFWLEVBQW1CLE1BQW5CLENBQWpCO0FBQ0F5RCxXQUFLSyxHQUFMLElBQVlILFNBQVo7QUFDQUYsV0FBS08sSUFBTCxJQUFhSixVQUFiO0FBQ0FILFdBQUtNLE1BQUwsSUFBZUosU0FBZjtBQUNBRixXQUFLUSxLQUFMLElBQWNMLFVBQWQ7QUFDRCxLQVJELENBUUUsT0FBTzBDLEdBQVAsRUFBWSxDQUFFO0FBQ2pCLEdBVkQsTUFVTztBQUNMN0MsV0FBT3pELFFBQVFxRyxxQkFBUixFQUFQO0FBQ0Q7O0FBRUQsTUFBSUUsU0FBUztBQUNYdkMsVUFBTVAsS0FBS08sSUFEQTtBQUVYRixTQUFLTCxLQUFLSyxHQUZDO0FBR1hlLFdBQU9wQixLQUFLUSxLQUFMLEdBQWFSLEtBQUtPLElBSGQ7QUFJWE8sWUFBUWQsS0FBS00sTUFBTCxHQUFjTixLQUFLSztBQUpoQixHQUFiOztBQU9BO0FBQ0EsTUFBSTBDLFFBQVF4RyxRQUFRaUIsUUFBUixLQUFxQixNQUFyQixHQUE4QnFELGdCQUE5QixHQUFpRCxFQUE3RDtBQUNBLE1BQUlPLFFBQVEyQixNQUFNM0IsS0FBTixJQUFlN0UsUUFBUWdGLFdBQXZCLElBQXNDdUIsT0FBT3RDLEtBQVAsR0FBZXNDLE9BQU92QyxJQUF4RTtBQUNBLE1BQUlPLFNBQVNpQyxNQUFNakMsTUFBTixJQUFnQnZFLFFBQVE0RSxZQUF4QixJQUF3QzJCLE9BQU94QyxNQUFQLEdBQWdCd0MsT0FBT3pDLEdBQTVFOztBQUVBLE1BQUkyQyxpQkFBaUJ6RyxRQUFRK0UsV0FBUixHQUFzQkYsS0FBM0M7QUFDQSxNQUFJNkIsZ0JBQWdCMUcsUUFBUTJFLFlBQVIsR0FBdUJKLE1BQTNDOztBQUVBO0FBQ0E7QUFDQSxNQUFJa0Msa0JBQWtCQyxhQUF0QixFQUFxQztBQUNuQyxRQUFJekcsU0FBU1UseUJBQXlCWCxPQUF6QixDQUFiO0FBQ0F5RyxzQkFBa0J2QyxlQUFlakUsTUFBZixFQUF1QixHQUF2QixDQUFsQjtBQUNBeUcscUJBQWlCeEMsZUFBZWpFLE1BQWYsRUFBdUIsR0FBdkIsQ0FBakI7O0FBRUFzRyxXQUFPMUIsS0FBUCxJQUFnQjRCLGNBQWhCO0FBQ0FGLFdBQU9oQyxNQUFQLElBQWlCbUMsYUFBakI7QUFDRDs7QUFFRCxTQUFPVixjQUFjTyxNQUFkLENBQVA7QUFDRDs7QUFFRCxTQUFTSSxvQ0FBVCxDQUE4Q0MsUUFBOUMsRUFBd0RDLE1BQXhELEVBQWdFO0FBQzlELE1BQUlYLFNBQVNDLFVBQWI7QUFDQSxNQUFJVyxTQUFTRCxPQUFPNUYsUUFBUCxLQUFvQixNQUFqQztBQUNBLE1BQUk4RixlQUFlVixzQkFBc0JPLFFBQXRCLENBQW5CO0FBQ0EsTUFBSUksYUFBYVgsc0JBQXNCUSxNQUF0QixDQUFqQjtBQUNBLE1BQUlJLGVBQWU3RixnQkFBZ0J3RixRQUFoQixDQUFuQjtBQUNBLE1BQUlYLFVBQVVELGNBQWM7QUFDMUJsQyxTQUFLaUQsYUFBYWpELEdBQWIsR0FBbUJrRCxXQUFXbEQsR0FEVDtBQUUxQkUsVUFBTStDLGFBQWEvQyxJQUFiLEdBQW9CZ0QsV0FBV2hELElBRlg7QUFHMUJhLFdBQU9rQyxhQUFhbEMsS0FITTtBQUkxQk4sWUFBUXdDLGFBQWF4QztBQUpLLEdBQWQsQ0FBZDs7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQUl1QyxVQUFVRCxPQUFPNUYsUUFBUCxLQUFvQixNQUFsQyxFQUEwQztBQUN4QyxRQUFJaEIsU0FBU1UseUJBQXlCa0csTUFBekIsQ0FBYjtBQUNBLFFBQUlLLGlCQUFpQmhCLFVBQVVZLE1BQVYsR0FBbUIsQ0FBbkIsR0FBdUIsQ0FBQzdHLE9BQU9pSCxjQUFQLENBQXNCakwsS0FBdEIsQ0FBNEIsSUFBNUIsRUFBa0MsQ0FBbEMsQ0FBN0M7QUFDQSxRQUFJa0wsa0JBQWtCakIsVUFBVVksTUFBVixHQUFtQixDQUFuQixHQUF1QixDQUFDN0csT0FBT2tILGVBQVAsQ0FBdUJsTCxLQUF2QixDQUE2QixJQUE3QixFQUFtQyxDQUFuQyxDQUE5QztBQUNBLFFBQUltTCxZQUFZbEIsVUFBVVksTUFBVixHQUFtQixDQUFuQixHQUF1QixDQUFDN0csT0FBT21ILFNBQVAsQ0FBaUJuTCxLQUFqQixDQUF1QixJQUF2QixFQUE2QixDQUE3QixDQUF4QztBQUNBLFFBQUlvTCxhQUFhbkIsVUFBVVksTUFBVixHQUFtQixDQUFuQixHQUF1QixDQUFDN0csT0FBT29ILFVBQVAsQ0FBa0JwTCxLQUFsQixDQUF3QixJQUF4QixFQUE4QixDQUE5QixDQUF6Qzs7QUFFQWdLLFlBQVFuQyxHQUFSLElBQWVvRCxpQkFBaUJFLFNBQWhDO0FBQ0FuQixZQUFRbEMsTUFBUixJQUFrQm1ELGlCQUFpQkUsU0FBbkM7QUFDQW5CLFlBQVFqQyxJQUFSLElBQWdCbUQsa0JBQWtCRSxVQUFsQztBQUNBcEIsWUFBUWhDLEtBQVIsSUFBaUJrRCxrQkFBa0JFLFVBQW5DOztBQUVBO0FBQ0FwQixZQUFRbUIsU0FBUixHQUFvQkEsU0FBcEI7QUFDQW5CLFlBQVFvQixVQUFSLEdBQXFCQSxVQUFyQjtBQUNEOztBQUVELE1BQUlSLE9BQU83RCxRQUFQLENBQWdCaUUsWUFBaEIsTUFBa0NmLFVBQVVlLGFBQWFoRyxRQUFiLEtBQTBCLE1BQXRFLENBQUosRUFBbUY7QUFDakZnRixjQUFVekMsY0FBY3lDLE9BQWQsRUFBdUJZLE1BQXZCLENBQVY7QUFDRDs7QUFFRCxTQUFPWixPQUFQO0FBQ0Q7O0FBRUQsU0FBU3FCLDZDQUFULENBQXVEdEgsT0FBdkQsRUFBZ0U7QUFDOUQsTUFBSTlDLE9BQU9vQixPQUFPVSxRQUFQLENBQWdCaUQsZUFBM0I7QUFDQSxNQUFJc0YsaUJBQWlCWixxQ0FBcUMzRyxPQUFyQyxFQUE4QzlDLElBQTlDLENBQXJCO0FBQ0EsTUFBSTJILFFBQVFMLEtBQUtDLEdBQUwsQ0FBU3ZILEtBQUs4SCxXQUFkLEVBQTJCMUcsT0FBT2tKLFVBQVAsSUFBcUIsQ0FBaEQsQ0FBWjtBQUNBLE1BQUlqRCxTQUFTQyxLQUFLQyxHQUFMLENBQVN2SCxLQUFLMEgsWUFBZCxFQUE0QnRHLE9BQU9tSixXQUFQLElBQXNCLENBQWxELENBQWI7O0FBRUEsTUFBSTlELFlBQVlULFVBQVVoRyxJQUFWLENBQWhCO0FBQ0EsTUFBSTBHLGFBQWFWLFVBQVVoRyxJQUFWLEVBQWdCLE1BQWhCLENBQWpCOztBQUVBLE1BQUloRCxTQUFTO0FBQ1g0SixTQUFLSCxZQUFZNEQsZUFBZXpELEdBQTNCLEdBQWlDeUQsZUFBZUgsU0FEMUM7QUFFWHBELFVBQU1KLGFBQWEyRCxlQUFldkQsSUFBNUIsR0FBbUN1RCxlQUFlRixVQUY3QztBQUdYeEMsV0FBT0EsS0FISTtBQUlYTixZQUFRQTtBQUpHLEdBQWI7O0FBT0EsU0FBT3lCLGNBQWM5TCxNQUFkLENBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7QUFRQSxTQUFTd04sT0FBVCxDQUFpQjFILE9BQWpCLEVBQTBCO0FBQ3hCLE1BQUlpQixXQUFXakIsUUFBUWlCLFFBQXZCO0FBQ0EsTUFBSUEsYUFBYSxNQUFiLElBQXVCQSxhQUFhLE1BQXhDLEVBQWdEO0FBQzlDLFdBQU8sS0FBUDtBQUNEO0FBQ0QsTUFBSU4seUJBQXlCWCxPQUF6QixFQUFrQyxVQUFsQyxNQUFrRCxPQUF0RCxFQUErRDtBQUM3RCxXQUFPLElBQVA7QUFDRDtBQUNELFNBQU8wSCxRQUFRMUcsY0FBY2hCLE9BQWQsQ0FBUixDQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7QUFVQSxTQUFTMkgsYUFBVCxDQUF1QkMsTUFBdkIsRUFBK0J2TCxTQUEvQixFQUEwQ3dMLE9BQTFDLEVBQW1EQyxpQkFBbkQsRUFBc0U7QUFDcEU7QUFDQSxNQUFJQyxhQUFhLEVBQUVqRSxLQUFLLENBQVAsRUFBVUUsTUFBTSxDQUFoQixFQUFqQjtBQUNBLE1BQUluQyxlQUFlSyx1QkFBdUIwRixNQUF2QixFQUErQnZMLFNBQS9CLENBQW5COztBQUVBO0FBQ0EsTUFBSXlMLHNCQUFzQixVQUExQixFQUFzQztBQUNwQ0MsaUJBQWFULDhDQUE4Q3pGLFlBQTlDLENBQWI7QUFDRCxHQUZELE1BRU87QUFDTDtBQUNBLFFBQUltRyxpQkFBaUIsS0FBSyxDQUExQjtBQUNBLFFBQUlGLHNCQUFzQixjQUExQixFQUEwQztBQUN4Q0UsdUJBQWlCNUcsZ0JBQWdCSixjQUFjNEcsTUFBZCxDQUFoQixDQUFqQjtBQUNBLFVBQUlJLGVBQWUvRyxRQUFmLEtBQTRCLE1BQWhDLEVBQXdDO0FBQ3RDK0cseUJBQWlCMUosT0FBT1UsUUFBUCxDQUFnQmlELGVBQWpDO0FBQ0Q7QUFDRixLQUxELE1BS08sSUFBSTZGLHNCQUFzQixRQUExQixFQUFvQztBQUN6Q0UsdUJBQWlCMUosT0FBT1UsUUFBUCxDQUFnQmlELGVBQWpDO0FBQ0QsS0FGTSxNQUVBO0FBQ0wrRix1QkFBaUJGLGlCQUFqQjtBQUNEOztBQUVELFFBQUk3QixVQUFVVSxxQ0FBcUNxQixjQUFyQyxFQUFxRG5HLFlBQXJELENBQWQ7O0FBRUE7QUFDQSxRQUFJbUcsZUFBZS9HLFFBQWYsS0FBNEIsTUFBNUIsSUFBc0MsQ0FBQ3lHLFFBQVE3RixZQUFSLENBQTNDLEVBQWtFO0FBQ2hFLFVBQUlvRyxrQkFBa0IzRCxnQkFBdEI7QUFBQSxVQUNJQyxTQUFTMEQsZ0JBQWdCMUQsTUFEN0I7QUFBQSxVQUVJTSxRQUFRb0QsZ0JBQWdCcEQsS0FGNUI7O0FBSUFrRCxpQkFBV2pFLEdBQVgsSUFBa0JtQyxRQUFRbkMsR0FBUixHQUFjbUMsUUFBUW1CLFNBQXhDO0FBQ0FXLGlCQUFXaEUsTUFBWCxHQUFvQlEsU0FBUzBCLFFBQVFuQyxHQUFyQztBQUNBaUUsaUJBQVcvRCxJQUFYLElBQW1CaUMsUUFBUWpDLElBQVIsR0FBZWlDLFFBQVFvQixVQUExQztBQUNBVSxpQkFBVzlELEtBQVgsR0FBbUJZLFFBQVFvQixRQUFRakMsSUFBbkM7QUFDRCxLQVRELE1BU087QUFDTDtBQUNBK0QsbUJBQWE5QixPQUFiO0FBQ0Q7QUFDRjs7QUFFRDtBQUNBOEIsYUFBVy9ELElBQVgsSUFBbUI2RCxPQUFuQjtBQUNBRSxhQUFXakUsR0FBWCxJQUFrQitELE9BQWxCO0FBQ0FFLGFBQVc5RCxLQUFYLElBQW9CNEQsT0FBcEI7QUFDQUUsYUFBV2hFLE1BQVgsSUFBcUI4RCxPQUFyQjs7QUFFQSxTQUFPRSxVQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7OztBQVNBLFNBQVNHLG9CQUFULENBQThCck8sU0FBOUIsRUFBeUNzTyxPQUF6QyxFQUFrRFAsTUFBbEQsRUFBMER2TCxTQUExRCxFQUFxRXlMLGlCQUFyRSxFQUF3RjtBQUN0RixNQUFJak8sVUFBVXNDLE9BQVYsQ0FBa0IsTUFBbEIsTUFBOEIsQ0FBQyxDQUFuQyxFQUFzQztBQUNwQyxXQUFPdEMsU0FBUDtBQUNEOztBQUVELE1BQUlrTyxhQUFhSixjQUFjQyxNQUFkLEVBQXNCdkwsU0FBdEIsRUFBaUMsQ0FBakMsRUFBb0N5TCxpQkFBcEMsQ0FBakI7O0FBRUEsTUFBSU0sUUFBUTtBQUNWdEUsU0FBS3FFLFFBQVFyRSxHQUFSLEdBQWNpRSxXQUFXakUsR0FEcEI7QUFFVkcsV0FBTzhELFdBQVc5RCxLQUFYLEdBQW1Ca0UsUUFBUWxFLEtBRnhCO0FBR1ZGLFlBQVFnRSxXQUFXaEUsTUFBWCxHQUFvQm9FLFFBQVFwRSxNQUgxQjtBQUlWQyxVQUFNbUUsUUFBUW5FLElBQVIsR0FBZStELFdBQVcvRDtBQUp0QixHQUFaOztBQU9BLE1BQUlxRSxvQkFBb0JuSSxPQUFPQyxJQUFQLENBQVlpSSxLQUFaLEVBQW1CRSxJQUFuQixDQUF3QixVQUFVQyxDQUFWLEVBQWFDLENBQWIsRUFBZ0I7QUFDOUQsV0FBT0osTUFBTUksQ0FBTixJQUFXSixNQUFNRyxDQUFOLENBQWxCO0FBQ0QsR0FGdUIsRUFFckIsQ0FGcUIsQ0FBeEI7QUFHQSxNQUFJRSxZQUFZNU8sVUFBVW9DLEtBQVYsQ0FBZ0IsR0FBaEIsRUFBcUIsQ0FBckIsQ0FBaEI7O0FBRUEsU0FBT29NLHFCQUFxQkksWUFBWSxNQUFNQSxTQUFsQixHQUE4QixFQUFuRCxDQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7OztBQVNBLFNBQVNDLG1CQUFULENBQTZCQyxLQUE3QixFQUFvQ2YsTUFBcEMsRUFBNEN2TCxTQUE1QyxFQUF1RDtBQUNyRCxNQUFJdU0scUJBQXFCMUcsdUJBQXVCMEYsTUFBdkIsRUFBK0J2TCxTQUEvQixDQUF6QjtBQUNBLFNBQU9zSyxxQ0FBcUN0SyxTQUFyQyxFQUFnRHVNLGtCQUFoRCxDQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7QUFPQSxTQUFTQyxhQUFULENBQXVCN0ksT0FBdkIsRUFBZ0M7QUFDOUIsTUFBSUMsU0FBUzNCLE9BQU95QyxnQkFBUCxDQUF3QmYsT0FBeEIsQ0FBYjtBQUNBLE1BQUk4SSxJQUFJakosV0FBV0ksT0FBT21ILFNBQWxCLElBQStCdkgsV0FBV0ksT0FBTzhJLFlBQWxCLENBQXZDO0FBQ0EsTUFBSUMsSUFBSW5KLFdBQVdJLE9BQU9vSCxVQUFsQixJQUFnQ3hILFdBQVdJLE9BQU9nSixXQUFsQixDQUF4QztBQUNBLE1BQUkxQyxTQUFTO0FBQ1gxQixXQUFPN0UsUUFBUStFLFdBQVIsR0FBc0JpRSxDQURsQjtBQUVYekUsWUFBUXZFLFFBQVEyRSxZQUFSLEdBQXVCbUU7QUFGcEIsR0FBYjtBQUlBLFNBQU92QyxNQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7QUFPQSxTQUFTMkMsb0JBQVQsQ0FBOEJyUCxTQUE5QixFQUF5QztBQUN2QyxNQUFJc1AsT0FBTyxFQUFFbkYsTUFBTSxPQUFSLEVBQWlCQyxPQUFPLE1BQXhCLEVBQWdDRixRQUFRLEtBQXhDLEVBQStDRCxLQUFLLFFBQXBELEVBQVg7QUFDQSxTQUFPakssVUFBVXVQLE9BQVYsQ0FBa0Isd0JBQWxCLEVBQTRDLFVBQVVDLE9BQVYsRUFBbUI7QUFDcEUsV0FBT0YsS0FBS0UsT0FBTCxDQUFQO0FBQ0QsR0FGTSxDQUFQO0FBR0Q7O0FBRUQ7Ozs7Ozs7Ozs7QUFVQSxTQUFTQyxnQkFBVCxDQUEwQjFCLE1BQTFCLEVBQWtDMkIsZ0JBQWxDLEVBQW9EMVAsU0FBcEQsRUFBK0Q7QUFDN0RBLGNBQVlBLFVBQVVvQyxLQUFWLENBQWdCLEdBQWhCLEVBQXFCLENBQXJCLENBQVo7O0FBRUE7QUFDQSxNQUFJdU4sYUFBYVgsY0FBY2pCLE1BQWQsQ0FBakI7O0FBRUE7QUFDQSxNQUFJNkIsZ0JBQWdCO0FBQ2xCNUUsV0FBTzJFLFdBQVczRSxLQURBO0FBRWxCTixZQUFRaUYsV0FBV2pGO0FBRkQsR0FBcEI7O0FBS0E7QUFDQSxNQUFJbUYsVUFBVSxDQUFDLE9BQUQsRUFBVSxNQUFWLEVBQWtCdk4sT0FBbEIsQ0FBMEJ0QyxTQUExQixNQUF5QyxDQUFDLENBQXhEO0FBQ0EsTUFBSThQLFdBQVdELFVBQVUsS0FBVixHQUFrQixNQUFqQztBQUNBLE1BQUlFLGdCQUFnQkYsVUFBVSxNQUFWLEdBQW1CLEtBQXZDO0FBQ0EsTUFBSUcsY0FBY0gsVUFBVSxRQUFWLEdBQXFCLE9BQXZDO0FBQ0EsTUFBSUksdUJBQXVCLENBQUNKLE9BQUQsR0FBVyxRQUFYLEdBQXNCLE9BQWpEOztBQUVBRCxnQkFBY0UsUUFBZCxJQUEwQkosaUJBQWlCSSxRQUFqQixJQUE2QkosaUJBQWlCTSxXQUFqQixJQUFnQyxDQUE3RCxHQUFpRUwsV0FBV0ssV0FBWCxJQUEwQixDQUFySDtBQUNBLE1BQUloUSxjQUFjK1AsYUFBbEIsRUFBaUM7QUFDL0JILGtCQUFjRyxhQUFkLElBQStCTCxpQkFBaUJLLGFBQWpCLElBQWtDSixXQUFXTSxvQkFBWCxDQUFqRTtBQUNELEdBRkQsTUFFTztBQUNMTCxrQkFBY0csYUFBZCxJQUErQkwsaUJBQWlCTCxxQkFBcUJVLGFBQXJCLENBQWpCLENBQS9CO0FBQ0Q7O0FBRUQsU0FBT0gsYUFBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7QUFTQSxTQUFTTSxJQUFULENBQWNDLEdBQWQsRUFBbUJDLEtBQW5CLEVBQTBCO0FBQ3hCO0FBQ0EsTUFBSUMsTUFBTXBFLFNBQU4sQ0FBZ0JpRSxJQUFwQixFQUEwQjtBQUN4QixXQUFPQyxJQUFJRCxJQUFKLENBQVNFLEtBQVQsQ0FBUDtBQUNEOztBQUVEO0FBQ0EsU0FBT0QsSUFBSTlOLE1BQUosQ0FBVytOLEtBQVgsRUFBa0IsQ0FBbEIsQ0FBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7QUFTQSxTQUFTRSxTQUFULENBQW1CSCxHQUFuQixFQUF3QjVKLElBQXhCLEVBQThCL0YsS0FBOUIsRUFBcUM7QUFDbkM7QUFDQSxNQUFJNlAsTUFBTXBFLFNBQU4sQ0FBZ0JxRSxTQUFwQixFQUErQjtBQUM3QixXQUFPSCxJQUFJRyxTQUFKLENBQWMsVUFBVUMsR0FBVixFQUFlO0FBQ2xDLGFBQU9BLElBQUloSyxJQUFKLE1BQWMvRixLQUFyQjtBQUNELEtBRk0sQ0FBUDtBQUdEOztBQUVEO0FBQ0EsTUFBSWdRLFFBQVFOLEtBQUtDLEdBQUwsRUFBVSxVQUFVMUUsR0FBVixFQUFlO0FBQ25DLFdBQU9BLElBQUlsRixJQUFKLE1BQWMvRixLQUFyQjtBQUNELEdBRlcsQ0FBWjtBQUdBLFNBQU8yUCxJQUFJN04sT0FBSixDQUFZa08sS0FBWixDQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7QUFVQSxTQUFTQyxZQUFULENBQXNCaFEsU0FBdEIsRUFBaUNpUSxJQUFqQyxFQUF1Q0MsSUFBdkMsRUFBNkM7QUFDM0MsTUFBSUMsaUJBQWlCRCxTQUFTbkgsU0FBVCxHQUFxQi9JLFNBQXJCLEdBQWlDQSxVQUFVb1EsS0FBVixDQUFnQixDQUFoQixFQUFtQlAsVUFBVTdQLFNBQVYsRUFBcUIsTUFBckIsRUFBNkJrUSxJQUE3QixDQUFuQixDQUF0RDs7QUFFQUMsaUJBQWVoTyxPQUFmLENBQXVCLFVBQVVvSCxRQUFWLEVBQW9CO0FBQ3pDLFFBQUlBLFNBQVM4RyxRQUFiLEVBQXVCO0FBQ3JCQyxjQUFRQyxJQUFSLENBQWEsdURBQWI7QUFDRDtBQUNELFFBQUk1TSxLQUFLNEYsU0FBUzhHLFFBQVQsSUFBcUI5RyxTQUFTNUYsRUFBdkM7QUFDQSxRQUFJNEYsU0FBU2lILE9BQVQsSUFBb0J2SyxXQUFXdEMsRUFBWCxDQUF4QixFQUF3QztBQUN0Q3NNLGFBQU90TSxHQUFHc00sSUFBSCxFQUFTMUcsUUFBVCxDQUFQO0FBQ0Q7QUFDRixHQVJEOztBQVVBLFNBQU8wRyxJQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7QUFPQSxTQUFTOU8sTUFBVCxHQUFrQjtBQUNoQjtBQUNBLE1BQUksS0FBS2tOLEtBQUwsQ0FBV29DLFdBQWYsRUFBNEI7QUFDMUI7QUFDRDs7QUFFRCxNQUFJUixPQUFPO0FBQ1RyRixjQUFVLElBREQ7QUFFVGpGLFlBQVEsRUFGQztBQUdUWixnQkFBWSxFQUhIO0FBSVQyTCxhQUFTLEtBSkE7QUFLVC9FLGFBQVM7QUFMQSxHQUFYOztBQVFBO0FBQ0FzRSxPQUFLdEUsT0FBTCxDQUFhNUosU0FBYixHQUF5QnFNLG9CQUFvQixLQUFLQyxLQUF6QixFQUFnQyxLQUFLZixNQUFyQyxFQUE2QyxLQUFLdkwsU0FBbEQsQ0FBekI7O0FBRUE7QUFDQTtBQUNBO0FBQ0FrTyxPQUFLMVEsU0FBTCxHQUFpQnFPLHFCQUFxQixLQUFLdE8sT0FBTCxDQUFhQyxTQUFsQyxFQUE2QzBRLEtBQUt0RSxPQUFMLENBQWE1SixTQUExRCxFQUFxRSxLQUFLdUwsTUFBMUUsRUFBa0YsS0FBS3ZMLFNBQXZGLEVBQWtHLEtBQUt6QyxPQUFMLENBQWFVLFNBQWIsQ0FBdUIyUSxJQUF2QixDQUE0Qm5ELGlCQUE5SCxDQUFqQjs7QUFFQTtBQUNBeUMsT0FBS1csaUJBQUwsR0FBeUJYLEtBQUsxUSxTQUE5Qjs7QUFFQTtBQUNBMFEsT0FBS3RFLE9BQUwsQ0FBYTJCLE1BQWIsR0FBc0IwQixpQkFBaUIsS0FBSzFCLE1BQXRCLEVBQThCMkMsS0FBS3RFLE9BQUwsQ0FBYTVKLFNBQTNDLEVBQXNEa08sS0FBSzFRLFNBQTNELENBQXRCO0FBQ0EwUSxPQUFLdEUsT0FBTCxDQUFhMkIsTUFBYixDQUFvQnVELFFBQXBCLEdBQStCLFVBQS9COztBQUVBO0FBQ0FaLFNBQU9ELGFBQWEsS0FBS2hRLFNBQWxCLEVBQTZCaVEsSUFBN0IsQ0FBUDs7QUFFQTtBQUNBO0FBQ0EsTUFBSSxDQUFDLEtBQUs1QixLQUFMLENBQVd5QyxTQUFoQixFQUEyQjtBQUN6QixTQUFLekMsS0FBTCxDQUFXeUMsU0FBWCxHQUF1QixJQUF2QjtBQUNBLFNBQUt4UixPQUFMLENBQWF5UixRQUFiLENBQXNCZCxJQUF0QjtBQUNELEdBSEQsTUFHTztBQUNMLFNBQUszUSxPQUFMLENBQWEwUixRQUFiLENBQXNCZixJQUF0QjtBQUNEO0FBQ0Y7O0FBRUQ7Ozs7OztBQU1BLFNBQVNnQixpQkFBVCxDQUEyQmpSLFNBQTNCLEVBQXNDa1IsWUFBdEMsRUFBb0Q7QUFDbEQsU0FBT2xSLFVBQVU0RCxJQUFWLENBQWUsVUFBVXVOLElBQVYsRUFBZ0I7QUFDcEMsUUFBSUMsT0FBT0QsS0FBS0MsSUFBaEI7QUFBQSxRQUNJWixVQUFVVyxLQUFLWCxPQURuQjtBQUVBLFdBQU9BLFdBQVdZLFNBQVNGLFlBQTNCO0FBQ0QsR0FKTSxDQUFQO0FBS0Q7O0FBRUQ7Ozs7Ozs7QUFPQSxTQUFTRyx3QkFBVCxDQUFrQy9LLFFBQWxDLEVBQTRDO0FBQzFDLE1BQUlnTCxXQUFXLENBQUMsS0FBRCxFQUFRLElBQVIsRUFBYyxRQUFkLEVBQXdCLEtBQXhCLEVBQStCLEdBQS9CLENBQWY7QUFDQSxNQUFJQyxZQUFZakwsU0FBU2tMLE1BQVQsQ0FBZ0IsQ0FBaEIsRUFBbUJDLFdBQW5CLEtBQW1DbkwsU0FBUzhKLEtBQVQsQ0FBZSxDQUFmLENBQW5EOztBQUVBLE9BQUssSUFBSWpNLElBQUksQ0FBYixFQUFnQkEsSUFBSW1OLFNBQVNsTixNQUFULEdBQWtCLENBQXRDLEVBQXlDRCxHQUF6QyxFQUE4QztBQUM1QyxRQUFJdU4sU0FBU0osU0FBU25OLENBQVQsQ0FBYjtBQUNBLFFBQUl3TixVQUFVRCxTQUFTLEtBQUtBLE1BQUwsR0FBY0gsU0FBdkIsR0FBbUNqTCxRQUFqRDtBQUNBLFFBQUksT0FBT3RDLE9BQU9VLFFBQVAsQ0FBZ0JxQyxJQUFoQixDQUFxQmYsS0FBckIsQ0FBMkIyTCxPQUEzQixDQUFQLEtBQStDLFdBQW5ELEVBQWdFO0FBQzlELGFBQU9BLE9BQVA7QUFDRDtBQUNGO0FBQ0QsU0FBTyxJQUFQO0FBQ0Q7O0FBRUQ7Ozs7O0FBS0EsU0FBU0MsT0FBVCxHQUFtQjtBQUNqQixPQUFLdkQsS0FBTCxDQUFXb0MsV0FBWCxHQUF5QixJQUF6Qjs7QUFFQTtBQUNBLE1BQUlRLGtCQUFrQixLQUFLalIsU0FBdkIsRUFBa0MsWUFBbEMsQ0FBSixFQUFxRDtBQUNuRCxTQUFLc04sTUFBTCxDQUFZdUUsZUFBWixDQUE0QixhQUE1QjtBQUNBLFNBQUt2RSxNQUFMLENBQVl0SCxLQUFaLENBQWtCMEQsSUFBbEIsR0FBeUIsRUFBekI7QUFDQSxTQUFLNEQsTUFBTCxDQUFZdEgsS0FBWixDQUFrQjZLLFFBQWxCLEdBQTZCLEVBQTdCO0FBQ0EsU0FBS3ZELE1BQUwsQ0FBWXRILEtBQVosQ0FBa0J3RCxHQUFsQixHQUF3QixFQUF4QjtBQUNBLFNBQUs4RCxNQUFMLENBQVl0SCxLQUFaLENBQWtCcUwseUJBQXlCLFdBQXpCLENBQWxCLElBQTJELEVBQTNEO0FBQ0Q7O0FBRUQsT0FBS1MscUJBQUw7O0FBRUE7QUFDQTtBQUNBLE1BQUksS0FBS3hTLE9BQUwsQ0FBYXlTLGVBQWpCLEVBQWtDO0FBQ2hDLFNBQUt6RSxNQUFMLENBQVkxRyxVQUFaLENBQXVCb0wsV0FBdkIsQ0FBbUMsS0FBSzFFLE1BQXhDO0FBQ0Q7QUFDRCxTQUFPLElBQVA7QUFDRDs7QUFFRCxTQUFTMkUscUJBQVQsQ0FBK0J0RixZQUEvQixFQUE2Q3RLLEtBQTdDLEVBQW9ENlAsUUFBcEQsRUFBOERDLGFBQTlELEVBQTZFO0FBQzNFLE1BQUlDLFNBQVN6RixhQUFhaEcsUUFBYixLQUEwQixNQUF2QztBQUNBLE1BQUkyRSxTQUFTOEcsU0FBU3BPLE1BQVQsR0FBa0IySSxZQUEvQjtBQUNBckIsU0FBTytHLGdCQUFQLENBQXdCaFEsS0FBeEIsRUFBK0I2UCxRQUEvQixFQUF5QyxFQUFFSSxTQUFTLElBQVgsRUFBekM7O0FBRUEsTUFBSSxDQUFDRixNQUFMLEVBQWE7QUFDWEgsMEJBQXNCbkwsZ0JBQWdCd0UsT0FBTzFFLFVBQXZCLENBQXRCLEVBQTBEdkUsS0FBMUQsRUFBaUU2UCxRQUFqRSxFQUEyRUMsYUFBM0U7QUFDRDtBQUNEQSxnQkFBY0ksSUFBZCxDQUFtQmpILE1BQW5CO0FBQ0Q7O0FBRUQ7Ozs7OztBQU1BLFNBQVNrSCxtQkFBVCxDQUE2QnpRLFNBQTdCLEVBQXdDekMsT0FBeEMsRUFBaUQrTyxLQUFqRCxFQUF3RG9FLFdBQXhELEVBQXFFO0FBQ25FO0FBQ0FwRSxRQUFNb0UsV0FBTixHQUFvQkEsV0FBcEI7QUFDQXpPLFNBQU9xTyxnQkFBUCxDQUF3QixRQUF4QixFQUFrQ2hFLE1BQU1vRSxXQUF4QyxFQUFxRCxFQUFFSCxTQUFTLElBQVgsRUFBckQ7O0FBRUE7QUFDQSxNQUFJSSxnQkFBZ0I1TCxnQkFBZ0IvRSxTQUFoQixDQUFwQjtBQUNBa1Esd0JBQXNCUyxhQUF0QixFQUFxQyxRQUFyQyxFQUErQ3JFLE1BQU1vRSxXQUFyRCxFQUFrRXBFLE1BQU04RCxhQUF4RTtBQUNBOUQsUUFBTXFFLGFBQU4sR0FBc0JBLGFBQXRCO0FBQ0FyRSxRQUFNc0UsYUFBTixHQUFzQixJQUF0Qjs7QUFFQSxTQUFPdEUsS0FBUDtBQUNEOztBQUVEOzs7Ozs7QUFNQSxTQUFTdUUsb0JBQVQsR0FBZ0M7QUFDOUIsTUFBSSxDQUFDLEtBQUt2RSxLQUFMLENBQVdzRSxhQUFoQixFQUErQjtBQUM3QixTQUFLdEUsS0FBTCxHQUFhbUUsb0JBQW9CLEtBQUt6USxTQUF6QixFQUFvQyxLQUFLekMsT0FBekMsRUFBa0QsS0FBSytPLEtBQXZELEVBQThELEtBQUt3RSxjQUFuRSxDQUFiO0FBQ0Q7QUFDRjs7QUFFRDs7Ozs7O0FBTUEsU0FBU0Msb0JBQVQsQ0FBOEIvUSxTQUE5QixFQUF5Q3NNLEtBQXpDLEVBQWdEO0FBQzlDO0FBQ0FySyxTQUFPMUIsbUJBQVAsQ0FBMkIsUUFBM0IsRUFBcUMrTCxNQUFNb0UsV0FBM0M7O0FBRUE7QUFDQXBFLFFBQU04RCxhQUFOLENBQW9CaFEsT0FBcEIsQ0FBNEIsVUFBVW1KLE1BQVYsRUFBa0I7QUFDNUNBLFdBQU9oSixtQkFBUCxDQUEyQixRQUEzQixFQUFxQytMLE1BQU1vRSxXQUEzQztBQUNELEdBRkQ7O0FBSUE7QUFDQXBFLFFBQU1vRSxXQUFOLEdBQW9CLElBQXBCO0FBQ0FwRSxRQUFNOEQsYUFBTixHQUFzQixFQUF0QjtBQUNBOUQsUUFBTXFFLGFBQU4sR0FBc0IsSUFBdEI7QUFDQXJFLFFBQU1zRSxhQUFOLEdBQXNCLEtBQXRCO0FBQ0EsU0FBT3RFLEtBQVA7QUFDRDs7QUFFRDs7Ozs7OztBQU9BLFNBQVN5RCxxQkFBVCxHQUFpQztBQUMvQixNQUFJLEtBQUt6RCxLQUFMLENBQVdzRSxhQUFmLEVBQThCO0FBQzVCM08sV0FBTytPLG9CQUFQLENBQTRCLEtBQUtGLGNBQWpDO0FBQ0EsU0FBS3hFLEtBQUwsR0FBYXlFLHFCQUFxQixLQUFLL1EsU0FBMUIsRUFBcUMsS0FBS3NNLEtBQTFDLENBQWI7QUFDRDtBQUNGOztBQUVEOzs7Ozs7OztBQVFBLFNBQVMyRSxhQUFULENBQXVCdE4sT0FBdkIsRUFBZ0NYLFVBQWhDLEVBQTRDO0FBQzFDYSxTQUFPQyxJQUFQLENBQVlkLFVBQVosRUFBd0I1QyxPQUF4QixDQUFnQyxVQUFVMkQsSUFBVixFQUFnQjtBQUM5QyxRQUFJL0YsUUFBUWdGLFdBQVdlLElBQVgsQ0FBWjtBQUNBLFFBQUkvRixVQUFVLEtBQWQsRUFBcUI7QUFDbkIyRixjQUFRVixZQUFSLENBQXFCYyxJQUFyQixFQUEyQmYsV0FBV2UsSUFBWCxDQUEzQjtBQUNELEtBRkQsTUFFTztBQUNMSixjQUFRbU0sZUFBUixDQUF3Qi9MLElBQXhCO0FBQ0Q7QUFDRixHQVBEO0FBUUQ7O0FBRUQ7Ozs7Ozs7OztBQVNBLFNBQVNtTixVQUFULENBQW9CaEQsSUFBcEIsRUFBMEIzUSxPQUExQixFQUFtQztBQUNqQztBQUNBO0FBQ0EsTUFBSXFHLFNBQVM7QUFDWGtMLGNBQVVaLEtBQUt0RSxPQUFMLENBQWEyQixNQUFiLENBQW9CdUQ7QUFEbkIsR0FBYjs7QUFJQSxNQUFJOUwsYUFBYTtBQUNmLG1CQUFla0wsS0FBSzFRO0FBREwsR0FBakI7O0FBSUE7QUFDQSxNQUFJbUssT0FBT1EsS0FBS2dKLEtBQUwsQ0FBV2pELEtBQUt0RSxPQUFMLENBQWEyQixNQUFiLENBQW9CNUQsSUFBL0IsQ0FBWDtBQUNBLE1BQUlGLE1BQU1VLEtBQUtnSixLQUFMLENBQVdqRCxLQUFLdEUsT0FBTCxDQUFhMkIsTUFBYixDQUFvQjlELEdBQS9CLENBQVY7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBSTJKLG1CQUFtQjlCLHlCQUF5QixXQUF6QixDQUF2QjtBQUNBLE1BQUkvUixRQUFROFQsZUFBUixJQUEyQkQsZ0JBQS9CLEVBQWlEO0FBQy9DeE4sV0FBT3dOLGdCQUFQLElBQTJCLGlCQUFpQnpKLElBQWpCLEdBQXdCLE1BQXhCLEdBQWlDRixHQUFqQyxHQUF1QyxRQUFsRTtBQUNBN0QsV0FBTzZELEdBQVAsR0FBYSxDQUFiO0FBQ0E3RCxXQUFPK0QsSUFBUCxHQUFjLENBQWQ7QUFDQS9ELFdBQU8wTixVQUFQLEdBQW9CLFdBQXBCO0FBQ0QsR0FMRCxNQUtPO0FBQ0w7QUFDQTFOLFdBQU8rRCxJQUFQLEdBQWNBLElBQWQ7QUFDQS9ELFdBQU82RCxHQUFQLEdBQWFBLEdBQWI7QUFDQTdELFdBQU8wTixVQUFQLEdBQW9CLFdBQXBCO0FBQ0Q7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTVOLFlBQVV3SyxLQUFLckYsUUFBTCxDQUFjMEMsTUFBeEIsRUFBZ0NsQyxTQUFTLEVBQVQsRUFBYXpGLE1BQWIsRUFBcUJzSyxLQUFLdEssTUFBMUIsQ0FBaEM7O0FBRUE7QUFDQTtBQUNBcU4sZ0JBQWMvQyxLQUFLckYsUUFBTCxDQUFjMEMsTUFBNUIsRUFBb0NsQyxTQUFTLEVBQVQsRUFBYXJHLFVBQWIsRUFBeUJrTCxLQUFLbEwsVUFBOUIsQ0FBcEM7O0FBRUE7QUFDQSxNQUFJa0wsS0FBS3RFLE9BQUwsQ0FBYTJILEtBQWpCLEVBQXdCO0FBQ3RCN04sY0FBVXdLLEtBQUtzRCxZQUFmLEVBQTZCdEQsS0FBS3RFLE9BQUwsQ0FBYTJILEtBQTFDO0FBQ0Q7O0FBRUQsU0FBT3JELElBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7OztBQVVBLFNBQVN1RCxnQkFBVCxDQUEwQnpSLFNBQTFCLEVBQXFDdUwsTUFBckMsRUFBNkNoTyxPQUE3QyxFQUFzRG1VLGVBQXRELEVBQXVFcEYsS0FBdkUsRUFBOEU7QUFDNUU7QUFDQSxNQUFJWSxtQkFBbUJiLG9CQUFvQkMsS0FBcEIsRUFBMkJmLE1BQTNCLEVBQW1DdkwsU0FBbkMsQ0FBdkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsTUFBSXhDLFlBQVlxTyxxQkFBcUJ0TyxRQUFRQyxTQUE3QixFQUF3QzBQLGdCQUF4QyxFQUEwRDNCLE1BQTFELEVBQWtFdkwsU0FBbEUsRUFBNkV6QyxRQUFRVSxTQUFSLENBQWtCMlEsSUFBbEIsQ0FBdUJuRCxpQkFBcEcsQ0FBaEI7O0FBRUFGLFNBQU90SSxZQUFQLENBQW9CLGFBQXBCLEVBQW1DekYsU0FBbkM7QUFDQSxTQUFPRCxPQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7Ozs7QUFVQSxTQUFTb1Usa0JBQVQsQ0FBNEIxVCxTQUE1QixFQUF1QzJULGNBQXZDLEVBQXVEQyxhQUF2RCxFQUFzRTtBQUNwRSxNQUFJQyxhQUFhcEUsS0FBS3pQLFNBQUwsRUFBZ0IsVUFBVW1SLElBQVYsRUFBZ0I7QUFDL0MsUUFBSUMsT0FBT0QsS0FBS0MsSUFBaEI7QUFDQSxXQUFPQSxTQUFTdUMsY0FBaEI7QUFDRCxHQUhnQixDQUFqQjs7QUFLQSxNQUFJRyxhQUFhLENBQUMsQ0FBQ0QsVUFBRixJQUFnQjdULFVBQVU0RCxJQUFWLENBQWUsVUFBVTJGLFFBQVYsRUFBb0I7QUFDbEUsV0FBT0EsU0FBUzZILElBQVQsS0FBa0J3QyxhQUFsQixJQUFtQ3JLLFNBQVNpSCxPQUE1QyxJQUF1RGpILFNBQVN4QixLQUFULEdBQWlCOEwsV0FBVzlMLEtBQTFGO0FBQ0QsR0FGZ0MsQ0FBakM7O0FBSUEsTUFBSSxDQUFDK0wsVUFBTCxFQUFpQjtBQUNmLFFBQUlDLGNBQWMsTUFBTUosY0FBTixHQUF1QixHQUF6QztBQUNBLFFBQUlLLFlBQVksTUFBTUosYUFBTixHQUFzQixHQUF0QztBQUNBdEQsWUFBUUMsSUFBUixDQUFheUQsWUFBWSwyQkFBWixHQUEwQ0QsV0FBMUMsR0FBd0QsMkRBQXhELEdBQXNIQSxXQUF0SCxHQUFvSSxHQUFqSjtBQUNEO0FBQ0QsU0FBT0QsVUFBUDtBQUNEOztBQUVEOzs7Ozs7O0FBT0EsU0FBU1IsS0FBVCxDQUFlckQsSUFBZixFQUFxQjNRLE9BQXJCLEVBQThCO0FBQzVCO0FBQ0EsTUFBSSxDQUFDb1UsbUJBQW1CekQsS0FBS3JGLFFBQUwsQ0FBYzVLLFNBQWpDLEVBQTRDLE9BQTVDLEVBQXFELGNBQXJELENBQUwsRUFBMkU7QUFDekUsV0FBT2lRLElBQVA7QUFDRDs7QUFFRCxNQUFJc0QsZUFBZWpVLFFBQVFvRyxPQUEzQjs7QUFFQTtBQUNBLE1BQUksT0FBTzZOLFlBQVAsS0FBd0IsUUFBNUIsRUFBc0M7QUFDcENBLG1CQUFldEQsS0FBS3JGLFFBQUwsQ0FBYzBDLE1BQWQsQ0FBcUJ2TSxhQUFyQixDQUFtQ3dTLFlBQW5DLENBQWY7O0FBRUE7QUFDQSxRQUFJLENBQUNBLFlBQUwsRUFBbUI7QUFDakIsYUFBT3RELElBQVA7QUFDRDtBQUNGLEdBUEQsTUFPTztBQUNMO0FBQ0E7QUFDQSxRQUFJLENBQUNBLEtBQUtyRixRQUFMLENBQWMwQyxNQUFkLENBQXFCNUUsUUFBckIsQ0FBOEI2SyxZQUE5QixDQUFMLEVBQWtEO0FBQ2hEakQsY0FBUUMsSUFBUixDQUFhLCtEQUFiO0FBQ0EsYUFBT04sSUFBUDtBQUNEO0FBQ0Y7O0FBRUQsTUFBSTFRLFlBQVkwUSxLQUFLMVEsU0FBTCxDQUFlb0MsS0FBZixDQUFxQixHQUFyQixFQUEwQixDQUExQixDQUFoQjtBQUNBLE1BQUkyTCxTQUFTNUIsY0FBY3VFLEtBQUt0RSxPQUFMLENBQWEyQixNQUEzQixDQUFiO0FBQ0EsTUFBSXZMLFlBQVlrTyxLQUFLdEUsT0FBTCxDQUFhNUosU0FBN0I7QUFDQSxNQUFJa1MsYUFBYSxDQUFDLE1BQUQsRUFBUyxPQUFULEVBQWtCcFMsT0FBbEIsQ0FBMEJ0QyxTQUExQixNQUF5QyxDQUFDLENBQTNEOztBQUVBLE1BQUkyVSxNQUFNRCxhQUFhLFFBQWIsR0FBd0IsT0FBbEM7QUFDQSxNQUFJcEwsT0FBT29MLGFBQWEsS0FBYixHQUFxQixNQUFoQztBQUNBLE1BQUlFLFVBQVVGLGFBQWEsTUFBYixHQUFzQixLQUFwQztBQUNBLE1BQUlHLFNBQVNILGFBQWEsUUFBYixHQUF3QixPQUFyQztBQUNBLE1BQUlJLG1CQUFtQjlGLGNBQWNnRixZQUFkLEVBQTRCVyxHQUE1QixDQUF2Qjs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFJblMsVUFBVXFTLE1BQVYsSUFBb0JDLGdCQUFwQixHQUF1Qy9HLE9BQU96RSxJQUFQLENBQTNDLEVBQXlEO0FBQ3ZEb0gsU0FBS3RFLE9BQUwsQ0FBYTJCLE1BQWIsQ0FBb0J6RSxJQUFwQixLQUE2QnlFLE9BQU96RSxJQUFQLEtBQWdCOUcsVUFBVXFTLE1BQVYsSUFBb0JDLGdCQUFwQyxDQUE3QjtBQUNEO0FBQ0Q7QUFDQSxNQUFJdFMsVUFBVThHLElBQVYsSUFBa0J3TCxnQkFBbEIsR0FBcUMvRyxPQUFPOEcsTUFBUCxDQUF6QyxFQUF5RDtBQUN2RG5FLFNBQUt0RSxPQUFMLENBQWEyQixNQUFiLENBQW9CekUsSUFBcEIsS0FBNkI5RyxVQUFVOEcsSUFBVixJQUFrQndMLGdCQUFsQixHQUFxQy9HLE9BQU84RyxNQUFQLENBQWxFO0FBQ0Q7O0FBRUQ7QUFDQSxNQUFJRSxTQUFTdlMsVUFBVThHLElBQVYsSUFBa0I5RyxVQUFVbVMsR0FBVixJQUFpQixDQUFuQyxHQUF1Q0csbUJBQW1CLENBQXZFOztBQUVBO0FBQ0EsTUFBSUUsWUFBWUQsU0FBUzVJLGNBQWN1RSxLQUFLdEUsT0FBTCxDQUFhMkIsTUFBM0IsRUFBbUN6RSxJQUFuQyxDQUF6Qjs7QUFFQTtBQUNBMEwsY0FBWXJLLEtBQUtDLEdBQUwsQ0FBU0QsS0FBS3NLLEdBQUwsQ0FBU2xILE9BQU80RyxHQUFQLElBQWNHLGdCQUF2QixFQUF5Q0UsU0FBekMsQ0FBVCxFQUE4RCxDQUE5RCxDQUFaOztBQUVBdEUsT0FBS3NELFlBQUwsR0FBb0JBLFlBQXBCO0FBQ0F0RCxPQUFLdEUsT0FBTCxDQUFhMkgsS0FBYixHQUFxQixFQUFyQjtBQUNBckQsT0FBS3RFLE9BQUwsQ0FBYTJILEtBQWIsQ0FBbUJ6SyxJQUFuQixJQUEyQjBMLFNBQTNCO0FBQ0F0RSxPQUFLdEUsT0FBTCxDQUFhMkgsS0FBYixDQUFtQmEsT0FBbkIsSUFBOEIsRUFBOUIsQ0E3RDRCLENBNkRNOztBQUVsQyxTQUFPbEUsSUFBUDtBQUNEOztBQUVEOzs7Ozs7O0FBT0EsU0FBU3dFLG9CQUFULENBQThCdEcsU0FBOUIsRUFBeUM7QUFDdkMsTUFBSUEsY0FBYyxLQUFsQixFQUF5QjtBQUN2QixXQUFPLE9BQVA7QUFDRCxHQUZELE1BRU8sSUFBSUEsY0FBYyxPQUFsQixFQUEyQjtBQUNoQyxXQUFPLEtBQVA7QUFDRDtBQUNELFNBQU9BLFNBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQStCQSxJQUFJdUcsYUFBYSxDQUFDLFlBQUQsRUFBZSxNQUFmLEVBQXVCLFVBQXZCLEVBQW1DLFdBQW5DLEVBQWdELEtBQWhELEVBQXVELFNBQXZELEVBQWtFLGFBQWxFLEVBQWlGLE9BQWpGLEVBQTBGLFdBQTFGLEVBQXVHLFlBQXZHLEVBQXFILFFBQXJILEVBQStILGNBQS9ILEVBQStJLFVBQS9JLEVBQTJKLE1BQTNKLEVBQW1LLFlBQW5LLENBQWpCOztBQUVBO0FBQ0EsSUFBSUMsa0JBQWtCRCxXQUFXdEUsS0FBWCxDQUFpQixDQUFqQixDQUF0Qjs7QUFFQTs7Ozs7Ozs7OztBQVVBLFNBQVN3RSxTQUFULENBQW1CclYsU0FBbkIsRUFBOEI7QUFDNUIsTUFBSXNWLFVBQVUvTCxVQUFVMUUsTUFBVixHQUFtQixDQUFuQixJQUF3QjBFLFVBQVUsQ0FBVixNQUFpQkMsU0FBekMsR0FBcURELFVBQVUsQ0FBVixDQUFyRCxHQUFvRSxLQUFsRjs7QUFFQSxNQUFJZ00sUUFBUUgsZ0JBQWdCOVMsT0FBaEIsQ0FBd0J0QyxTQUF4QixDQUFaO0FBQ0EsTUFBSW1RLE1BQU1pRixnQkFBZ0J2RSxLQUFoQixDQUFzQjBFLFFBQVEsQ0FBOUIsRUFBaUNDLE1BQWpDLENBQXdDSixnQkFBZ0J2RSxLQUFoQixDQUFzQixDQUF0QixFQUF5QjBFLEtBQXpCLENBQXhDLENBQVY7QUFDQSxTQUFPRCxVQUFVbkYsSUFBSXNGLE9BQUosRUFBVixHQUEwQnRGLEdBQWpDO0FBQ0Q7O0FBRUQsSUFBSXVGLFlBQVk7QUFDZEMsUUFBTSxNQURRO0FBRWRDLGFBQVcsV0FGRztBQUdkQyxvQkFBa0I7QUFISixDQUFoQjs7QUFNQTs7Ozs7OztBQU9BLFNBQVN6RSxJQUFULENBQWNWLElBQWQsRUFBb0IzUSxPQUFwQixFQUE2QjtBQUMzQjtBQUNBLE1BQUkyUixrQkFBa0JoQixLQUFLckYsUUFBTCxDQUFjNUssU0FBaEMsRUFBMkMsT0FBM0MsQ0FBSixFQUF5RDtBQUN2RCxXQUFPaVEsSUFBUDtBQUNEOztBQUVELE1BQUlBLEtBQUtTLE9BQUwsSUFBZ0JULEtBQUsxUSxTQUFMLEtBQW1CMFEsS0FBS1csaUJBQTVDLEVBQStEO0FBQzdEO0FBQ0EsV0FBT1gsSUFBUDtBQUNEOztBQUVELE1BQUl4QyxhQUFhSixjQUFjNEMsS0FBS3JGLFFBQUwsQ0FBYzBDLE1BQTVCLEVBQW9DMkMsS0FBS3JGLFFBQUwsQ0FBYzdJLFNBQWxELEVBQTZEekMsUUFBUWlPLE9BQXJFLEVBQThFak8sUUFBUWtPLGlCQUF0RixDQUFqQjs7QUFFQSxNQUFJak8sWUFBWTBRLEtBQUsxUSxTQUFMLENBQWVvQyxLQUFmLENBQXFCLEdBQXJCLEVBQTBCLENBQTFCLENBQWhCO0FBQ0EsTUFBSTBULG9CQUFvQnpHLHFCQUFxQnJQLFNBQXJCLENBQXhCO0FBQ0EsTUFBSTRPLFlBQVk4QixLQUFLMVEsU0FBTCxDQUFlb0MsS0FBZixDQUFxQixHQUFyQixFQUEwQixDQUExQixLQUFnQyxFQUFoRDs7QUFFQSxNQUFJMlQsWUFBWSxFQUFoQjs7QUFFQSxVQUFRaFcsUUFBUWlXLFFBQWhCO0FBQ0UsU0FBS04sVUFBVUMsSUFBZjtBQUNFSSxrQkFBWSxDQUFDL1YsU0FBRCxFQUFZOFYsaUJBQVosQ0FBWjtBQUNBO0FBQ0YsU0FBS0osVUFBVUUsU0FBZjtBQUNFRyxrQkFBWVYsVUFBVXJWLFNBQVYsQ0FBWjtBQUNBO0FBQ0YsU0FBSzBWLFVBQVVHLGdCQUFmO0FBQ0VFLGtCQUFZVixVQUFVclYsU0FBVixFQUFxQixJQUFyQixDQUFaO0FBQ0E7QUFDRjtBQUNFK1Ysa0JBQVloVyxRQUFRaVcsUUFBcEI7QUFYSjs7QUFjQUQsWUFBVW5ULE9BQVYsQ0FBa0IsVUFBVXFULElBQVYsRUFBZ0JWLEtBQWhCLEVBQXVCO0FBQ3ZDLFFBQUl2VixjQUFjaVcsSUFBZCxJQUFzQkYsVUFBVWxSLE1BQVYsS0FBcUIwUSxRQUFRLENBQXZELEVBQTBEO0FBQ3hELGFBQU83RSxJQUFQO0FBQ0Q7O0FBRUQxUSxnQkFBWTBRLEtBQUsxUSxTQUFMLENBQWVvQyxLQUFmLENBQXFCLEdBQXJCLEVBQTBCLENBQTFCLENBQVo7QUFDQTBULHdCQUFvQnpHLHFCQUFxQnJQLFNBQXJCLENBQXBCOztBQUVBLFFBQUk0UCxnQkFBZ0J6RCxjQUFjdUUsS0FBS3RFLE9BQUwsQ0FBYTJCLE1BQTNCLENBQXBCO0FBQ0EsUUFBSW1JLGFBQWF4RixLQUFLdEUsT0FBTCxDQUFhNUosU0FBOUI7O0FBRUE7QUFDQSxRQUFJMlQsUUFBUXhMLEtBQUt3TCxLQUFqQjtBQUNBLFFBQUlDLGNBQWNwVyxjQUFjLE1BQWQsSUFBd0JtVyxNQUFNdkcsY0FBY3hGLEtBQXBCLElBQTZCK0wsTUFBTUQsV0FBVy9MLElBQWpCLENBQXJELElBQStFbkssY0FBYyxPQUFkLElBQXlCbVcsTUFBTXZHLGNBQWN6RixJQUFwQixJQUE0QmdNLE1BQU1ELFdBQVc5TCxLQUFqQixDQUFwSSxJQUErSnBLLGNBQWMsS0FBZCxJQUF1Qm1XLE1BQU12RyxjQUFjMUYsTUFBcEIsSUFBOEJpTSxNQUFNRCxXQUFXak0sR0FBakIsQ0FBcE4sSUFBNk9qSyxjQUFjLFFBQWQsSUFBMEJtVyxNQUFNdkcsY0FBYzNGLEdBQXBCLElBQTJCa00sTUFBTUQsV0FBV2hNLE1BQWpCLENBQXBUOztBQUVBLFFBQUltTSxnQkFBZ0JGLE1BQU12RyxjQUFjekYsSUFBcEIsSUFBNEJnTSxNQUFNakksV0FBVy9ELElBQWpCLENBQWhEO0FBQ0EsUUFBSW1NLGlCQUFpQkgsTUFBTXZHLGNBQWN4RixLQUFwQixJQUE2QitMLE1BQU1qSSxXQUFXOUQsS0FBakIsQ0FBbEQ7QUFDQSxRQUFJbU0sZUFBZUosTUFBTXZHLGNBQWMzRixHQUFwQixJQUEyQmtNLE1BQU1qSSxXQUFXakUsR0FBakIsQ0FBOUM7QUFDQSxRQUFJdU0sa0JBQWtCTCxNQUFNdkcsY0FBYzFGLE1BQXBCLElBQThCaU0sTUFBTWpJLFdBQVdoRSxNQUFqQixDQUFwRDs7QUFFQSxRQUFJdU0sc0JBQXNCelcsY0FBYyxNQUFkLElBQXdCcVcsYUFBeEIsSUFBeUNyVyxjQUFjLE9BQWQsSUFBeUJzVyxjQUFsRSxJQUFvRnRXLGNBQWMsS0FBZCxJQUF1QnVXLFlBQTNHLElBQTJIdlcsY0FBYyxRQUFkLElBQTBCd1csZUFBL0s7O0FBRUE7QUFDQSxRQUFJOUIsYUFBYSxDQUFDLEtBQUQsRUFBUSxRQUFSLEVBQWtCcFMsT0FBbEIsQ0FBMEJ0QyxTQUExQixNQUF5QyxDQUFDLENBQTNEO0FBQ0EsUUFBSTBXLG1CQUFtQixDQUFDLENBQUMzVyxRQUFRNFcsY0FBVixLQUE2QmpDLGNBQWM5RixjQUFjLE9BQTVCLElBQXVDeUgsYUFBdkMsSUFBd0QzQixjQUFjOUYsY0FBYyxLQUE1QixJQUFxQzBILGNBQTdGLElBQStHLENBQUM1QixVQUFELElBQWU5RixjQUFjLE9BQTdCLElBQXdDMkgsWUFBdkosSUFBdUssQ0FBQzdCLFVBQUQsSUFBZTlGLGNBQWMsS0FBN0IsSUFBc0M0SCxlQUExTyxDQUF2Qjs7QUFFQSxRQUFJSixlQUFlSyxtQkFBZixJQUFzQ0MsZ0JBQTFDLEVBQTREO0FBQzFEO0FBQ0FoRyxXQUFLUyxPQUFMLEdBQWUsSUFBZjs7QUFFQSxVQUFJaUYsZUFBZUssbUJBQW5CLEVBQXdDO0FBQ3RDelcsb0JBQVkrVixVQUFVUixRQUFRLENBQWxCLENBQVo7QUFDRDs7QUFFRCxVQUFJbUIsZ0JBQUosRUFBc0I7QUFDcEI5SCxvQkFBWXNHLHFCQUFxQnRHLFNBQXJCLENBQVo7QUFDRDs7QUFFRDhCLFdBQUsxUSxTQUFMLEdBQWlCQSxhQUFhNE8sWUFBWSxNQUFNQSxTQUFsQixHQUE4QixFQUEzQyxDQUFqQjtBQUNBOEIsV0FBS3RFLE9BQUwsQ0FBYTJCLE1BQWIsR0FBc0IwQixpQkFBaUJpQixLQUFLckYsUUFBTCxDQUFjMEMsTUFBL0IsRUFBdUMyQyxLQUFLdEUsT0FBTCxDQUFhNUosU0FBcEQsRUFBK0RrTyxLQUFLMVEsU0FBcEUsQ0FBdEI7O0FBRUEwUSxhQUFPRCxhQUFhQyxLQUFLckYsUUFBTCxDQUFjNUssU0FBM0IsRUFBc0NpUSxJQUF0QyxFQUE0QyxNQUE1QyxDQUFQO0FBQ0Q7QUFDRixHQTNDRDtBQTRDQSxTQUFPQSxJQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7QUFPQSxTQUFTa0csWUFBVCxDQUFzQmxHLElBQXRCLEVBQTRCO0FBQzFCLE1BQUkzQyxTQUFTNUIsY0FBY3VFLEtBQUt0RSxPQUFMLENBQWEyQixNQUEzQixDQUFiO0FBQ0EsTUFBSXZMLFlBQVlrTyxLQUFLdEUsT0FBTCxDQUFhNUosU0FBN0I7QUFDQSxNQUFJeEMsWUFBWTBRLEtBQUsxUSxTQUFMLENBQWVvQyxLQUFmLENBQXFCLEdBQXJCLEVBQTBCLENBQTFCLENBQWhCO0FBQ0EsTUFBSStULFFBQVF4TCxLQUFLd0wsS0FBakI7QUFDQSxNQUFJekIsYUFBYSxDQUFDLEtBQUQsRUFBUSxRQUFSLEVBQWtCcFMsT0FBbEIsQ0FBMEJ0QyxTQUExQixNQUF5QyxDQUFDLENBQTNEO0FBQ0EsTUFBSXNKLE9BQU9vTCxhQUFhLE9BQWIsR0FBdUIsUUFBbEM7QUFDQSxNQUFJRyxTQUFTSCxhQUFhLE1BQWIsR0FBc0IsS0FBbkM7QUFDQSxNQUFJMUUsY0FBYzBFLGFBQWEsT0FBYixHQUF1QixRQUF6Qzs7QUFFQSxNQUFJM0csT0FBT3pFLElBQVAsSUFBZTZNLE1BQU0zVCxVQUFVcVMsTUFBVixDQUFOLENBQW5CLEVBQTZDO0FBQzNDbkUsU0FBS3RFLE9BQUwsQ0FBYTJCLE1BQWIsQ0FBb0I4RyxNQUFwQixJQUE4QnNCLE1BQU0zVCxVQUFVcVMsTUFBVixDQUFOLElBQTJCOUcsT0FBT2lDLFdBQVAsQ0FBekQ7QUFDRDtBQUNELE1BQUlqQyxPQUFPOEcsTUFBUCxJQUFpQnNCLE1BQU0zVCxVQUFVOEcsSUFBVixDQUFOLENBQXJCLEVBQTZDO0FBQzNDb0gsU0FBS3RFLE9BQUwsQ0FBYTJCLE1BQWIsQ0FBb0I4RyxNQUFwQixJQUE4QnNCLE1BQU0zVCxVQUFVOEcsSUFBVixDQUFOLENBQTlCO0FBQ0Q7O0FBRUQsU0FBT29ILElBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7Ozs7O0FBWUEsU0FBU21HLE9BQVQsQ0FBaUJDLEdBQWpCLEVBQXNCOUcsV0FBdEIsRUFBbUNKLGFBQW5DLEVBQWtERixnQkFBbEQsRUFBb0U7QUFDbEU7QUFDQSxNQUFJdE4sUUFBUTBVLElBQUl0RyxLQUFKLENBQVUsMkJBQVYsQ0FBWjtBQUNBLE1BQUloUSxRQUFRLENBQUM0QixNQUFNLENBQU4sQ0FBYjtBQUNBLE1BQUlvRSxPQUFPcEUsTUFBTSxDQUFOLENBQVg7O0FBRUE7QUFDQSxNQUFJLENBQUM1QixLQUFMLEVBQVk7QUFDVixXQUFPc1csR0FBUDtBQUNEOztBQUVELE1BQUl0USxLQUFLbEUsT0FBTCxDQUFhLEdBQWIsTUFBc0IsQ0FBMUIsRUFBNkI7QUFDM0IsUUFBSTZELFVBQVUsS0FBSyxDQUFuQjtBQUNBLFlBQVFLLElBQVI7QUFDRSxXQUFLLElBQUw7QUFDRUwsa0JBQVV5SixhQUFWO0FBQ0E7QUFDRixXQUFLLEdBQUw7QUFDQSxXQUFLLElBQUw7QUFDQTtBQUNFekosa0JBQVV1SixnQkFBVjtBQVBKOztBQVVBLFFBQUk5RixPQUFPdUMsY0FBY2hHLE9BQWQsQ0FBWDtBQUNBLFdBQU95RCxLQUFLb0csV0FBTCxJQUFvQixHQUFwQixHQUEwQnhQLEtBQWpDO0FBQ0QsR0FkRCxNQWNPLElBQUlnRyxTQUFTLElBQVQsSUFBaUJBLFNBQVMsSUFBOUIsRUFBb0M7QUFDekM7QUFDQSxRQUFJdVEsT0FBTyxLQUFLLENBQWhCO0FBQ0EsUUFBSXZRLFNBQVMsSUFBYixFQUFtQjtBQUNqQnVRLGFBQU9wTSxLQUFLQyxHQUFMLENBQVN6RixTQUFTaUQsZUFBVCxDQUF5QjJDLFlBQWxDLEVBQWdEdEcsT0FBT21KLFdBQVAsSUFBc0IsQ0FBdEUsQ0FBUDtBQUNELEtBRkQsTUFFTztBQUNMbUosYUFBT3BNLEtBQUtDLEdBQUwsQ0FBU3pGLFNBQVNpRCxlQUFULENBQXlCK0MsV0FBbEMsRUFBK0MxRyxPQUFPa0osVUFBUCxJQUFxQixDQUFwRSxDQUFQO0FBQ0Q7QUFDRCxXQUFPb0osT0FBTyxHQUFQLEdBQWF2VyxLQUFwQjtBQUNELEdBVE0sTUFTQTtBQUNMO0FBQ0E7QUFDQSxXQUFPQSxLQUFQO0FBQ0Q7QUFDRjs7QUFFRDs7Ozs7Ozs7Ozs7QUFXQSxTQUFTd1csV0FBVCxDQUFxQjNXLE1BQXJCLEVBQTZCdVAsYUFBN0IsRUFBNENGLGdCQUE1QyxFQUE4RHVILGFBQTlELEVBQTZFO0FBQzNFLE1BQUk3SyxVQUFVLENBQUMsQ0FBRCxFQUFJLENBQUosQ0FBZDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFJOEssWUFBWSxDQUFDLE9BQUQsRUFBVSxNQUFWLEVBQWtCNVUsT0FBbEIsQ0FBMEIyVSxhQUExQixNQUE2QyxDQUFDLENBQTlEOztBQUVBO0FBQ0E7QUFDQSxNQUFJRSxZQUFZOVcsT0FBTytCLEtBQVAsQ0FBYSxTQUFiLEVBQXdCZ1YsR0FBeEIsQ0FBNEIsVUFBVUMsSUFBVixFQUFnQjtBQUMxRCxXQUFPQSxLQUFLQyxJQUFMLEVBQVA7QUFDRCxHQUZlLENBQWhCOztBQUlBO0FBQ0E7QUFDQSxNQUFJQyxVQUFVSixVQUFVN1UsT0FBVixDQUFrQjROLEtBQUtpSCxTQUFMLEVBQWdCLFVBQVVFLElBQVYsRUFBZ0I7QUFDOUQsV0FBT0EsS0FBS0csTUFBTCxDQUFZLE1BQVosTUFBd0IsQ0FBQyxDQUFoQztBQUNELEdBRitCLENBQWxCLENBQWQ7O0FBSUEsTUFBSUwsVUFBVUksT0FBVixLQUFzQkosVUFBVUksT0FBVixFQUFtQmpWLE9BQW5CLENBQTJCLEdBQTNCLE1BQW9DLENBQUMsQ0FBL0QsRUFBa0U7QUFDaEV5TyxZQUFRQyxJQUFSLENBQWEsOEVBQWI7QUFDRDs7QUFFRDtBQUNBO0FBQ0EsTUFBSXlHLGFBQWEsYUFBakI7QUFDQSxNQUFJQyxNQUFNSCxZQUFZLENBQUMsQ0FBYixHQUFpQixDQUFDSixVQUFVdEcsS0FBVixDQUFnQixDQUFoQixFQUFtQjBHLE9BQW5CLEVBQTRCL0IsTUFBNUIsQ0FBbUMsQ0FBQzJCLFVBQVVJLE9BQVYsRUFBbUJuVixLQUFuQixDQUF5QnFWLFVBQXpCLEVBQXFDLENBQXJDLENBQUQsQ0FBbkMsQ0FBRCxFQUFnRixDQUFDTixVQUFVSSxPQUFWLEVBQW1CblYsS0FBbkIsQ0FBeUJxVixVQUF6QixFQUFxQyxDQUFyQyxDQUFELEVBQTBDakMsTUFBMUMsQ0FBaUQyQixVQUFVdEcsS0FBVixDQUFnQjBHLFVBQVUsQ0FBMUIsQ0FBakQsQ0FBaEYsQ0FBakIsR0FBbUwsQ0FBQ0osU0FBRCxDQUE3TDs7QUFFQTtBQUNBTyxRQUFNQSxJQUFJTixHQUFKLENBQVEsVUFBVU8sRUFBVixFQUFjcEMsS0FBZCxFQUFxQjtBQUNqQztBQUNBLFFBQUl2RixjQUFjLENBQUN1RixVQUFVLENBQVYsR0FBYyxDQUFDMkIsU0FBZixHQUEyQkEsU0FBNUIsSUFBeUMsUUFBekMsR0FBb0QsT0FBdEU7QUFDQSxRQUFJVSxvQkFBb0IsS0FBeEI7QUFDQSxXQUFPRDtBQUNQO0FBQ0E7QUFGTyxLQUdORSxNQUhNLENBR0MsVUFBVW5KLENBQVYsRUFBYUMsQ0FBYixFQUFnQjtBQUN0QixVQUFJRCxFQUFFQSxFQUFFN0osTUFBRixHQUFXLENBQWIsTUFBb0IsRUFBcEIsSUFBMEIsQ0FBQyxHQUFELEVBQU0sR0FBTixFQUFXdkMsT0FBWCxDQUFtQnFNLENBQW5CLE1BQTBCLENBQUMsQ0FBekQsRUFBNEQ7QUFDMURELFVBQUVBLEVBQUU3SixNQUFGLEdBQVcsQ0FBYixJQUFrQjhKLENBQWxCO0FBQ0FpSiw0QkFBb0IsSUFBcEI7QUFDQSxlQUFPbEosQ0FBUDtBQUNELE9BSkQsTUFJTyxJQUFJa0osaUJBQUosRUFBdUI7QUFDNUJsSixVQUFFQSxFQUFFN0osTUFBRixHQUFXLENBQWIsS0FBbUI4SixDQUFuQjtBQUNBaUosNEJBQW9CLEtBQXBCO0FBQ0EsZUFBT2xKLENBQVA7QUFDRCxPQUpNLE1BSUE7QUFDTCxlQUFPQSxFQUFFOEcsTUFBRixDQUFTN0csQ0FBVCxDQUFQO0FBQ0Q7QUFDRixLQWZNLEVBZUosRUFmSTtBQWdCUDtBQWhCTyxLQWlCTnlJLEdBakJNLENBaUJGLFVBQVVOLEdBQVYsRUFBZTtBQUNsQixhQUFPRCxRQUFRQyxHQUFSLEVBQWE5RyxXQUFiLEVBQTBCSixhQUExQixFQUF5Q0YsZ0JBQXpDLENBQVA7QUFDRCxLQW5CTSxDQUFQO0FBb0JELEdBeEJLLENBQU47O0FBMEJBO0FBQ0FnSSxNQUFJOVUsT0FBSixDQUFZLFVBQVUrVSxFQUFWLEVBQWNwQyxLQUFkLEVBQXFCO0FBQy9Cb0MsT0FBRy9VLE9BQUgsQ0FBVyxVQUFVeVUsSUFBVixFQUFnQlMsTUFBaEIsRUFBd0I7QUFDakMsVUFBSWpTLFVBQVV3UixJQUFWLENBQUosRUFBcUI7QUFDbkJqTCxnQkFBUW1KLEtBQVIsS0FBa0I4QixRQUFRTSxHQUFHRyxTQUFTLENBQVosTUFBbUIsR0FBbkIsR0FBeUIsQ0FBQyxDQUExQixHQUE4QixDQUF0QyxDQUFsQjtBQUNEO0FBQ0YsS0FKRDtBQUtELEdBTkQ7QUFPQSxTQUFPMUwsT0FBUDtBQUNEOztBQUVEOzs7Ozs7Ozs7QUFTQSxTQUFTL0wsTUFBVCxDQUFnQnFRLElBQWhCLEVBQXNCa0IsSUFBdEIsRUFBNEI7QUFDMUIsTUFBSXZSLFNBQVN1UixLQUFLdlIsTUFBbEI7QUFDQSxNQUFJTCxZQUFZMFEsS0FBSzFRLFNBQXJCO0FBQUEsTUFDSStYLGdCQUFnQnJILEtBQUt0RSxPQUR6QjtBQUFBLE1BRUkyQixTQUFTZ0ssY0FBY2hLLE1BRjNCO0FBQUEsTUFHSXZMLFlBQVl1VixjQUFjdlYsU0FIOUI7O0FBS0EsTUFBSXlVLGdCQUFnQmpYLFVBQVVvQyxLQUFWLENBQWdCLEdBQWhCLEVBQXFCLENBQXJCLENBQXBCOztBQUVBLE1BQUlnSyxVQUFVLEtBQUssQ0FBbkI7QUFDQSxNQUFJdkcsVUFBVSxDQUFDeEYsTUFBWCxDQUFKLEVBQXdCO0FBQ3RCK0wsY0FBVSxDQUFDLENBQUMvTCxNQUFGLEVBQVUsQ0FBVixDQUFWO0FBQ0QsR0FGRCxNQUVPO0FBQ0wrTCxjQUFVNEssWUFBWTNXLE1BQVosRUFBb0IwTixNQUFwQixFQUE0QnZMLFNBQTVCLEVBQXVDeVUsYUFBdkMsQ0FBVjtBQUNEOztBQUVELE1BQUlBLGtCQUFrQixNQUF0QixFQUE4QjtBQUM1QmxKLFdBQU85RCxHQUFQLElBQWNtQyxRQUFRLENBQVIsQ0FBZDtBQUNBMkIsV0FBTzVELElBQVAsSUFBZWlDLFFBQVEsQ0FBUixDQUFmO0FBQ0QsR0FIRCxNQUdPLElBQUk2SyxrQkFBa0IsT0FBdEIsRUFBK0I7QUFDcENsSixXQUFPOUQsR0FBUCxJQUFjbUMsUUFBUSxDQUFSLENBQWQ7QUFDQTJCLFdBQU81RCxJQUFQLElBQWVpQyxRQUFRLENBQVIsQ0FBZjtBQUNELEdBSE0sTUFHQSxJQUFJNkssa0JBQWtCLEtBQXRCLEVBQTZCO0FBQ2xDbEosV0FBTzVELElBQVAsSUFBZWlDLFFBQVEsQ0FBUixDQUFmO0FBQ0EyQixXQUFPOUQsR0FBUCxJQUFjbUMsUUFBUSxDQUFSLENBQWQ7QUFDRCxHQUhNLE1BR0EsSUFBSTZLLGtCQUFrQixRQUF0QixFQUFnQztBQUNyQ2xKLFdBQU81RCxJQUFQLElBQWVpQyxRQUFRLENBQVIsQ0FBZjtBQUNBMkIsV0FBTzlELEdBQVAsSUFBY21DLFFBQVEsQ0FBUixDQUFkO0FBQ0Q7O0FBRURzRSxPQUFLM0MsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBTzJDLElBQVA7QUFDRDs7QUFFRDs7Ozs7OztBQU9BLFNBQVNzSCxlQUFULENBQXlCdEgsSUFBekIsRUFBK0IzUSxPQUEvQixFQUF3QztBQUN0QyxNQUFJa08sb0JBQW9CbE8sUUFBUWtPLGlCQUFSLElBQTZCOUYsZ0JBQWdCdUksS0FBS3JGLFFBQUwsQ0FBYzBDLE1BQTlCLENBQXJEO0FBQ0EsTUFBSUcsYUFBYUosY0FBYzRDLEtBQUtyRixRQUFMLENBQWMwQyxNQUE1QixFQUFvQzJDLEtBQUtyRixRQUFMLENBQWM3SSxTQUFsRCxFQUE2RHpDLFFBQVFpTyxPQUFyRSxFQUE4RUMsaUJBQTlFLENBQWpCO0FBQ0FsTyxVQUFRbU8sVUFBUixHQUFxQkEsVUFBckI7O0FBRUEsTUFBSTFGLFFBQVF6SSxRQUFRa1ksUUFBcEI7QUFDQSxNQUFJbEssU0FBUzVCLGNBQWN1RSxLQUFLdEUsT0FBTCxDQUFhMkIsTUFBM0IsQ0FBYjs7QUFFQSxNQUFJcUMsUUFBUTtBQUNWOEgsYUFBUyxTQUFTQSxPQUFULENBQWlCbFksU0FBakIsRUFBNEI7QUFDbkMsVUFBSVEsUUFBUXVOLE9BQU8vTixTQUFQLENBQVo7QUFDQSxVQUFJK04sT0FBTy9OLFNBQVAsSUFBb0JrTyxXQUFXbE8sU0FBWCxDQUFwQixJQUE2QyxDQUFDRCxRQUFRb1ksbUJBQTFELEVBQStFO0FBQzdFM1gsZ0JBQVFtSyxLQUFLQyxHQUFMLENBQVNtRCxPQUFPL04sU0FBUCxDQUFULEVBQTRCa08sV0FBV2xPLFNBQVgsQ0FBNUIsQ0FBUjtBQUNEO0FBQ0QsYUFBT3dMLGVBQWUsRUFBZixFQUFtQnhMLFNBQW5CLEVBQThCUSxLQUE5QixDQUFQO0FBQ0QsS0FQUztBQVFWNFgsZUFBVyxTQUFTQSxTQUFULENBQW1CcFksU0FBbkIsRUFBOEI7QUFDdkMsVUFBSThQLFdBQVc5UCxjQUFjLE9BQWQsR0FBd0IsTUFBeEIsR0FBaUMsS0FBaEQ7QUFDQSxVQUFJUSxRQUFRdU4sT0FBTytCLFFBQVAsQ0FBWjtBQUNBLFVBQUkvQixPQUFPL04sU0FBUCxJQUFvQmtPLFdBQVdsTyxTQUFYLENBQXBCLElBQTZDLENBQUNELFFBQVFvWSxtQkFBMUQsRUFBK0U7QUFDN0UzWCxnQkFBUW1LLEtBQUtzSyxHQUFMLENBQVNsSCxPQUFPK0IsUUFBUCxDQUFULEVBQTJCNUIsV0FBV2xPLFNBQVgsS0FBeUJBLGNBQWMsT0FBZCxHQUF3QitOLE9BQU8vQyxLQUEvQixHQUF1QytDLE9BQU9yRCxNQUF2RSxDQUEzQixDQUFSO0FBQ0Q7QUFDRCxhQUFPYyxlQUFlLEVBQWYsRUFBbUJzRSxRQUFuQixFQUE2QnRQLEtBQTdCLENBQVA7QUFDRDtBQWZTLEdBQVo7O0FBa0JBZ0ksUUFBTTVGLE9BQU4sQ0FBYyxVQUFVNUMsU0FBVixFQUFxQjtBQUNqQyxRQUFJc0osT0FBTyxDQUFDLE1BQUQsRUFBUyxLQUFULEVBQWdCaEgsT0FBaEIsQ0FBd0J0QyxTQUF4QixNQUF1QyxDQUFDLENBQXhDLEdBQTRDLFNBQTVDLEdBQXdELFdBQW5FO0FBQ0ErTixhQUFTbEMsU0FBUyxFQUFULEVBQWFrQyxNQUFiLEVBQXFCcUMsTUFBTTlHLElBQU4sRUFBWXRKLFNBQVosQ0FBckIsQ0FBVDtBQUNELEdBSEQ7O0FBS0EwUSxPQUFLdEUsT0FBTCxDQUFhMkIsTUFBYixHQUFzQkEsTUFBdEI7O0FBRUEsU0FBTzJDLElBQVA7QUFDRDs7QUFFRDs7Ozs7OztBQU9BLFNBQVMySCxLQUFULENBQWUzSCxJQUFmLEVBQXFCO0FBQ25CLE1BQUkxUSxZQUFZMFEsS0FBSzFRLFNBQXJCO0FBQ0EsTUFBSWlYLGdCQUFnQmpYLFVBQVVvQyxLQUFWLENBQWdCLEdBQWhCLEVBQXFCLENBQXJCLENBQXBCO0FBQ0EsTUFBSWtXLGlCQUFpQnRZLFVBQVVvQyxLQUFWLENBQWdCLEdBQWhCLEVBQXFCLENBQXJCLENBQXJCOztBQUVBO0FBQ0EsTUFBSWtXLGNBQUosRUFBb0I7QUFDbEIsUUFBSTlWLFlBQVlrTyxLQUFLdEUsT0FBTCxDQUFhNUosU0FBN0I7QUFDQSxRQUFJdUwsU0FBUzVCLGNBQWN1RSxLQUFLdEUsT0FBTCxDQUFhMkIsTUFBM0IsQ0FBYjtBQUNBLFFBQUkyRyxhQUFhLENBQUMsUUFBRCxFQUFXLEtBQVgsRUFBa0JwUyxPQUFsQixDQUEwQjJVLGFBQTFCLE1BQTZDLENBQUMsQ0FBL0Q7QUFDQSxRQUFJM04sT0FBT29MLGFBQWEsTUFBYixHQUFzQixLQUFqQztBQUNBLFFBQUkxRSxjQUFjMEUsYUFBYSxPQUFiLEdBQXVCLFFBQXpDOztBQUVBLFFBQUk2RCxlQUFlO0FBQ2pCM1AsYUFBTzRDLGVBQWUsRUFBZixFQUFtQmxDLElBQW5CLEVBQXlCOUcsVUFBVThHLElBQVYsQ0FBekIsQ0FEVTtBQUVqQlQsV0FBSzJDLGVBQWUsRUFBZixFQUFtQmxDLElBQW5CLEVBQXlCOUcsVUFBVThHLElBQVYsSUFBa0I5RyxVQUFVd04sV0FBVixDQUFsQixHQUEyQ2pDLE9BQU9pQyxXQUFQLENBQXBFO0FBRlksS0FBbkI7O0FBS0FVLFNBQUt0RSxPQUFMLENBQWEyQixNQUFiLEdBQXNCbEMsU0FBUyxFQUFULEVBQWFrQyxNQUFiLEVBQXFCd0ssYUFBYUQsY0FBYixDQUFyQixDQUF0QjtBQUNEOztBQUVELFNBQU81SCxJQUFQO0FBQ0Q7O0FBRUQ7Ozs7Ozs7QUFPQSxTQUFTOEgsSUFBVCxDQUFjOUgsSUFBZCxFQUFvQjtBQUNsQixNQUFJLENBQUN5RCxtQkFBbUJ6RCxLQUFLckYsUUFBTCxDQUFjNUssU0FBakMsRUFBNEMsTUFBNUMsRUFBb0QsaUJBQXBELENBQUwsRUFBNkU7QUFDM0UsV0FBT2lRLElBQVA7QUFDRDs7QUFFRCxNQUFJcEMsVUFBVW9DLEtBQUt0RSxPQUFMLENBQWE1SixTQUEzQjtBQUNBLE1BQUlpVyxRQUFRdkksS0FBS1EsS0FBS3JGLFFBQUwsQ0FBYzVLLFNBQW5CLEVBQThCLFVBQVV1SixRQUFWLEVBQW9CO0FBQzVELFdBQU9BLFNBQVM2SCxJQUFULEtBQWtCLGlCQUF6QjtBQUNELEdBRlcsRUFFVDNELFVBRkg7O0FBSUEsTUFBSUksUUFBUXBFLE1BQVIsR0FBaUJ1TyxNQUFNeE8sR0FBdkIsSUFBOEJxRSxRQUFRbkUsSUFBUixHQUFlc08sTUFBTXJPLEtBQW5ELElBQTREa0UsUUFBUXJFLEdBQVIsR0FBY3dPLE1BQU12TyxNQUFoRixJQUEwRm9FLFFBQVFsRSxLQUFSLEdBQWdCcU8sTUFBTXRPLElBQXBILEVBQTBIO0FBQ3hIO0FBQ0EsUUFBSXVHLEtBQUs4SCxJQUFMLEtBQWMsSUFBbEIsRUFBd0I7QUFDdEIsYUFBTzlILElBQVA7QUFDRDs7QUFFREEsU0FBSzhILElBQUwsR0FBWSxJQUFaO0FBQ0E5SCxTQUFLbEwsVUFBTCxDQUFnQixxQkFBaEIsSUFBeUMsRUFBekM7QUFDRCxHQVJELE1BUU87QUFDTDtBQUNBLFFBQUlrTCxLQUFLOEgsSUFBTCxLQUFjLEtBQWxCLEVBQXlCO0FBQ3ZCLGFBQU85SCxJQUFQO0FBQ0Q7O0FBRURBLFNBQUs4SCxJQUFMLEdBQVksS0FBWjtBQUNBOUgsU0FBS2xMLFVBQUwsQ0FBZ0IscUJBQWhCLElBQXlDLEtBQXpDO0FBQ0Q7O0FBRUQsU0FBT2tMLElBQVA7QUFDRDs7QUFFRDs7Ozs7OztBQU9BLFNBQVNnSSxLQUFULENBQWVoSSxJQUFmLEVBQXFCO0FBQ25CLE1BQUkxUSxZQUFZMFEsS0FBSzFRLFNBQXJCO0FBQ0EsTUFBSWlYLGdCQUFnQmpYLFVBQVVvQyxLQUFWLENBQWdCLEdBQWhCLEVBQXFCLENBQXJCLENBQXBCO0FBQ0EsTUFBSTJMLFNBQVM1QixjQUFjdUUsS0FBS3RFLE9BQUwsQ0FBYTJCLE1BQTNCLENBQWI7QUFDQSxNQUFJdkwsWUFBWTJKLGNBQWN1RSxLQUFLdEUsT0FBTCxDQUFhNUosU0FBM0IsQ0FBaEI7QUFDQSxNQUFJcU4sVUFBVSxDQUFDLE1BQUQsRUFBUyxPQUFULEVBQWtCdk4sT0FBbEIsQ0FBMEIyVSxhQUExQixNQUE2QyxDQUFDLENBQTVEOztBQUVBLE1BQUkwQixpQkFBaUIsQ0FBQyxLQUFELEVBQVEsTUFBUixFQUFnQnJXLE9BQWhCLENBQXdCMlUsYUFBeEIsTUFBMkMsQ0FBQyxDQUFqRTs7QUFFQWxKLFNBQU84QixVQUFVLE1BQVYsR0FBbUIsS0FBMUIsSUFBbUNyTixVQUFVeEMsU0FBVixLQUF3QjJZLGlCQUFpQjVLLE9BQU84QixVQUFVLE9BQVYsR0FBb0IsUUFBM0IsQ0FBakIsR0FBd0QsQ0FBaEYsQ0FBbkM7O0FBRUFhLE9BQUsxUSxTQUFMLEdBQWlCcVAscUJBQXFCclAsU0FBckIsQ0FBakI7QUFDQTBRLE9BQUt0RSxPQUFMLENBQWEyQixNQUFiLEdBQXNCNUIsY0FBYzRCLE1BQWQsQ0FBdEI7O0FBRUEsU0FBTzJDLElBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7Ozs7O0FBWUE7Ozs7Ozs7OztBQVNBLElBQUlqUSxZQUFZO0FBQ2Q7Ozs7Ozs7O0FBUUE0WCxTQUFPO0FBQ0w7QUFDQTdQLFdBQU8sR0FGRjtBQUdMO0FBQ0F5SSxhQUFTLElBSko7QUFLTDtBQUNBN00sUUFBSWlVO0FBTkMsR0FUTzs7QUFrQmQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUNBaFksVUFBUTtBQUNOO0FBQ0FtSSxXQUFPLEdBRkQ7QUFHTjtBQUNBeUksYUFBUyxJQUpIO0FBS047QUFDQTdNLFFBQUkvRCxNQU5FO0FBT047OztBQUdBQSxZQUFRO0FBVkYsR0FyRE07O0FBa0VkOzs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQTJYLG1CQUFpQjtBQUNmO0FBQ0F4UCxXQUFPLEdBRlE7QUFHZjtBQUNBeUksYUFBUyxJQUpNO0FBS2Y7QUFDQTdNLFFBQUk0VCxlQU5XO0FBT2Y7Ozs7O0FBS0FDLGNBQVUsQ0FBQyxNQUFELEVBQVMsT0FBVCxFQUFrQixLQUFsQixFQUF5QixRQUF6QixDQVpLO0FBYWY7Ozs7OztBQU1BakssYUFBUyxDQW5CTTtBQW9CZjs7Ozs7QUFLQUMsdUJBQW1CO0FBekJKLEdBbkZIOztBQStHZDs7Ozs7Ozs7O0FBU0EySSxnQkFBYztBQUNaO0FBQ0FwTyxXQUFPLEdBRks7QUFHWjtBQUNBeUksYUFBUyxJQUpHO0FBS1o7QUFDQTdNLFFBQUl3UztBQU5RLEdBeEhBOztBQWlJZDs7Ozs7Ozs7OztBQVVBN0MsU0FBTztBQUNMO0FBQ0F2TCxXQUFPLEdBRkY7QUFHTDtBQUNBeUksYUFBUyxJQUpKO0FBS0w7QUFDQTdNLFFBQUkyUCxLQU5DO0FBT0w7QUFDQTVOLGFBQVM7QUFSSixHQTNJTzs7QUFzSmQ7Ozs7Ozs7Ozs7O0FBV0FpTCxRQUFNO0FBQ0o7QUFDQTVJLFdBQU8sR0FGSDtBQUdKO0FBQ0F5SSxhQUFTLElBSkw7QUFLSjtBQUNBN00sUUFBSWdOLElBTkE7QUFPSjs7Ozs7O0FBTUE0RSxjQUFVLE1BYk47QUFjSjs7OztBQUlBaEksYUFBUyxDQWxCTDtBQW1CSjs7Ozs7O0FBTUFDLHVCQUFtQjtBQXpCZixHQWpLUTs7QUE2TGQ7Ozs7Ozs7QUFPQXlLLFNBQU87QUFDTDtBQUNBbFEsV0FBTyxHQUZGO0FBR0w7QUFDQXlJLGFBQVMsS0FKSjtBQUtMO0FBQ0E3TSxRQUFJc1U7QUFOQyxHQXBNTzs7QUE2TWQ7Ozs7Ozs7Ozs7QUFVQUYsUUFBTTtBQUNKO0FBQ0FoUSxXQUFPLEdBRkg7QUFHSjtBQUNBeUksYUFBUyxJQUpMO0FBS0o7QUFDQTdNLFFBQUlvVTtBQU5BLEdBdk5ROztBQWdPZDs7Ozs7Ozs7Ozs7O0FBWUE5RSxjQUFZO0FBQ1Y7QUFDQWxMLFdBQU8sR0FGRztBQUdWO0FBQ0F5SSxhQUFTLElBSkM7QUFLVjtBQUNBN00sUUFBSXNQLFVBTk07QUFPVjtBQUNBa0YsWUFBUTNFLGdCQVJFO0FBU1Y7Ozs7O0FBS0FKLHFCQUFpQjtBQWRQO0FBNU9FLENBQWhCOztBQThQQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBa0JBOzs7Ozs7Ozs7Ozs7Ozs7O0FBZ0JBLElBQUlnRixXQUFXO0FBQ2I7Ozs7QUFJQTdZLGFBQVcsUUFMRTs7QUFPYjs7OztBQUlBb1QsaUJBQWUsSUFYRjs7QUFhYjs7Ozs7QUFLQVosbUJBQWlCLEtBbEJKOztBQW9CYjs7Ozs7O0FBTUFoQixZQUFVLFNBQVNBLFFBQVQsR0FBb0IsQ0FBRSxDQTFCbkI7O0FBNEJiOzs7Ozs7OztBQVFBQyxZQUFVLFNBQVNBLFFBQVQsR0FBb0IsQ0FBRSxDQXBDbkI7O0FBc0NiOzs7OztBQUtBaFIsYUFBV0E7QUEzQ0UsQ0FBZjs7QUE4Q0E7Ozs7O0FBS0E7Ozs7O0FBS0E7QUFDQTtBQUNBLElBQUlxWTtBQUNKOzs7Ozs7OztBQVFBLFNBQVNBLE1BQVQsQ0FBZ0J0VyxTQUFoQixFQUEyQnVMLE1BQTNCLEVBQW1DO0FBQ2pDLE1BQUlnTCxRQUFRLElBQVo7O0FBRUEsTUFBSWhaLFVBQVV3SixVQUFVMUUsTUFBVixHQUFtQixDQUFuQixJQUF3QjBFLFVBQVUsQ0FBVixNQUFpQkMsU0FBekMsR0FBcURELFVBQVUsQ0FBVixDQUFyRCxHQUFvRSxFQUFsRjtBQUNBNkIsaUJBQWUsSUFBZixFQUFxQjBOLE1BQXJCO0FBQ0EsT0FBS2xYLE1BQUwsR0FBY0EsTUFBZDtBQUNBLE9BQUt5USxPQUFMLEdBQWVBLE9BQWY7QUFDQSxPQUFLZ0Isb0JBQUwsR0FBNEJBLG9CQUE1QjtBQUNBLE9BQUtkLHFCQUFMLEdBQTZCQSxxQkFBN0I7O0FBRUEsT0FBS2UsY0FBTCxHQUFzQixZQUFZO0FBQ2hDLFdBQU8wRixzQkFBc0JELE1BQU1uWCxNQUE1QixDQUFQO0FBQ0QsR0FGRDs7QUFJQTtBQUNBLE9BQUtBLE1BQUwsR0FBY2dFLFNBQVMsS0FBS2hFLE1BQUwsQ0FBWTJCLElBQVosQ0FBaUIsSUFBakIsQ0FBVCxDQUFkOztBQUVBO0FBQ0EsT0FBS3hELE9BQUwsR0FBZThMLFNBQVMsRUFBVCxFQUFhaU4sT0FBT0csUUFBcEIsRUFBOEJsWixPQUE5QixDQUFmOztBQUVBO0FBQ0EsT0FBSytPLEtBQUwsR0FBYTtBQUNYb0MsaUJBQWEsS0FERjtBQUVYSyxlQUFXLEtBRkE7QUFHWHFCLG1CQUFlO0FBSEosR0FBYjs7QUFNQTtBQUNBLE9BQUtwUSxTQUFMLEdBQWlCQSxVQUFVMFcsTUFBVixHQUFtQjFXLFVBQVUsQ0FBVixDQUFuQixHQUFrQ0EsU0FBbkQ7QUFDQSxPQUFLdUwsTUFBTCxHQUFjQSxPQUFPbUwsTUFBUCxHQUFnQm5MLE9BQU8sQ0FBUCxDQUFoQixHQUE0QkEsTUFBMUM7O0FBRUE7QUFDQTdILFlBQVUsS0FBSzZILE1BQWYsRUFBdUIsRUFBRXVELFVBQVUsVUFBWixFQUF2Qjs7QUFFQTtBQUNBLE9BQUs3USxTQUFMLEdBQWlCNEYsT0FBT0MsSUFBUCxDQUFZd1MsT0FBT0csUUFBUCxDQUFnQnhZLFNBQTVCLEVBQXVDMlcsR0FBdkMsQ0FBMkMsVUFBVXZGLElBQVYsRUFBZ0I7QUFDMUUsV0FBT2hHLFNBQVM7QUFDZGdHLFlBQU1BO0FBRFEsS0FBVCxFQUVKaUgsT0FBT0csUUFBUCxDQUFnQnhZLFNBQWhCLENBQTBCb1IsSUFBMUIsQ0FGSSxDQUFQO0FBR0QsR0FKZ0IsQ0FBakI7O0FBTUE7QUFDQTtBQUNBLE9BQUtwUixTQUFMLEdBQWlCLEtBQUtBLFNBQUwsQ0FBZTJXLEdBQWYsQ0FBbUIsVUFBVStCLGFBQVYsRUFBeUI7QUFDM0QsUUFBSUMsYUFBYXJaLFFBQVFVLFNBQVIsSUFBcUJWLFFBQVFVLFNBQVIsQ0FBa0IwWSxjQUFjdEgsSUFBaEMsQ0FBckIsSUFBOEQsRUFBL0U7QUFDQSxXQUFPaEcsU0FBUyxFQUFULEVBQWFzTixhQUFiLEVBQTRCQyxVQUE1QixDQUFQO0FBQ0QsR0FIZ0IsQ0FBakI7O0FBS0E7QUFDQSxNQUFJclosUUFBUVUsU0FBWixFQUF1QjtBQUNyQixTQUFLVixPQUFMLENBQWFVLFNBQWIsR0FBeUJvTCxTQUFTLEVBQVQsRUFBYWlOLE9BQU9HLFFBQVAsQ0FBZ0J4WSxTQUE3QixFQUF3Q1YsUUFBUVUsU0FBaEQsQ0FBekI7QUFDQTRGLFdBQU9DLElBQVAsQ0FBWXZHLFFBQVFVLFNBQXBCLEVBQStCbUMsT0FBL0IsQ0FBdUMsVUFBVWlQLElBQVYsRUFBZ0I7QUFDckQ7QUFDQSxVQUFJaUgsT0FBT0csUUFBUCxDQUFnQnhZLFNBQWhCLENBQTBCb1IsSUFBMUIsTUFBb0NySSxTQUF4QyxFQUFtRDtBQUNqRCxZQUFJUSxXQUFXakssUUFBUVUsU0FBUixDQUFrQm9SLElBQWxCLENBQWY7QUFDQTdILGlCQUFTNkgsSUFBVCxHQUFnQkEsSUFBaEI7QUFDQWtILGNBQU10WSxTQUFOLENBQWdCdVMsSUFBaEIsQ0FBcUJoSixRQUFyQjtBQUNEO0FBQ0YsS0FQRDtBQVFEOztBQUVEO0FBQ0EsT0FBS3ZKLFNBQUwsR0FBaUIsS0FBS0EsU0FBTCxDQUFlZ08sSUFBZixDQUFvQixVQUFVQyxDQUFWLEVBQWFDLENBQWIsRUFBZ0I7QUFDbkQsV0FBT0QsRUFBRWxHLEtBQUYsR0FBVW1HLEVBQUVuRyxLQUFuQjtBQUNELEdBRmdCLENBQWpCOztBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBSy9ILFNBQUwsQ0FBZW1DLE9BQWYsQ0FBdUIsVUFBVXNSLGVBQVYsRUFBMkI7QUFDaEQsUUFBSUEsZ0JBQWdCakQsT0FBaEIsSUFBMkJ2SyxXQUFXd04sZ0JBQWdCMEUsTUFBM0IsQ0FBL0IsRUFBbUU7QUFDakUxRSxzQkFBZ0IwRSxNQUFoQixDQUF1QkcsTUFBTXZXLFNBQTdCLEVBQXdDdVcsTUFBTWhMLE1BQTlDLEVBQXNEZ0wsTUFBTWhaLE9BQTVELEVBQXFFbVUsZUFBckUsRUFBc0Y2RSxNQUFNakssS0FBNUY7QUFDRDtBQUNGLEdBSkQ7O0FBTUE7QUFDQSxPQUFLbE4sTUFBTDs7QUFFQSxNQUFJd1IsZ0JBQWdCLEtBQUtyVCxPQUFMLENBQWFxVCxhQUFqQztBQUNBLE1BQUlBLGFBQUosRUFBbUI7QUFDakI7QUFDQSxTQUFLQyxvQkFBTDtBQUNEOztBQUVELE9BQUt2RSxLQUFMLENBQVdzRSxhQUFYLEdBQTJCQSxhQUEzQjtBQUNELENBL0ZEOztBQWlHQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQkEwRixPQUFPTyxLQUFQLEdBQWUsQ0FBQyxPQUFPNVUsTUFBUCxLQUFrQixXQUFsQixHQUFnQ0EsTUFBaEMsR0FBeUM2VSxNQUExQyxFQUFrREMsV0FBakU7QUFDQVQsT0FBTzNELFVBQVAsR0FBb0JBLFVBQXBCO0FBQ0EyRCxPQUFPRyxRQUFQLEdBQWtCSixRQUFsQjs7QUFFQSx3REFBZUMsTUFBZjtBQUNBLGtDOzs7Ozs7OztBQ3ZuRUE7O0FBRUE7Ozs7Ozs7QUFPQSxTQUFTcFMsVUFBVCxDQUFvQkMsZUFBcEIsRUFBcUM7QUFDbkMsTUFBSUMsVUFBVSxFQUFkO0FBQ0EsU0FBT0QsbUJBQW1CQyxRQUFRckMsUUFBUixDQUFpQnNDLElBQWpCLENBQXNCRixlQUF0QixNQUEyQyxtQkFBckU7QUFDRDs7QUFFRCxJQUFJeUUsaUJBQWlCLFNBQWpCQSxjQUFpQixDQUFVQyxRQUFWLEVBQW9CQyxXQUFwQixFQUFpQztBQUNwRCxNQUFJLEVBQUVELG9CQUFvQkMsV0FBdEIsQ0FBSixFQUF3QztBQUN0QyxVQUFNLElBQUlDLFNBQUosQ0FBYyxtQ0FBZCxDQUFOO0FBQ0Q7QUFDRixDQUpEOztBQU1BLElBQUlpTyxjQUFjLFlBQVk7QUFDNUIsV0FBU0MsZ0JBQVQsQ0FBMEIxTixNQUExQixFQUFrQzJOLEtBQWxDLEVBQXlDO0FBQ3ZDLFNBQUssSUFBSTlVLElBQUksQ0FBYixFQUFnQkEsSUFBSThVLE1BQU03VSxNQUExQixFQUFrQ0QsR0FBbEMsRUFBdUM7QUFDckMsVUFBSStVLGFBQWFELE1BQU05VSxDQUFOLENBQWpCO0FBQ0ErVSxpQkFBV2pPLFVBQVgsR0FBd0JpTyxXQUFXak8sVUFBWCxJQUF5QixLQUFqRDtBQUNBaU8saUJBQVdoTyxZQUFYLEdBQTBCLElBQTFCO0FBQ0EsVUFBSSxXQUFXZ08sVUFBZixFQUEyQkEsV0FBVy9OLFFBQVgsR0FBc0IsSUFBdEI7QUFDM0J2RixhQUFPbUYsY0FBUCxDQUFzQk8sTUFBdEIsRUFBOEI0TixXQUFXNVgsR0FBekMsRUFBOEM0WCxVQUE5QztBQUNEO0FBQ0Y7O0FBRUQsU0FBTyxVQUFVck8sV0FBVixFQUF1QnNPLFVBQXZCLEVBQW1DQyxXQUFuQyxFQUFnRDtBQUNyRCxRQUFJRCxVQUFKLEVBQWdCSCxpQkFBaUJuTyxZQUFZVyxTQUE3QixFQUF3QzJOLFVBQXhDO0FBQ2hCLFFBQUlDLFdBQUosRUFBaUJKLGlCQUFpQm5PLFdBQWpCLEVBQThCdU8sV0FBOUI7QUFDakIsV0FBT3ZPLFdBQVA7QUFDRCxHQUpEO0FBS0QsQ0FoQmlCLEVBQWxCOztBQXdCQSxJQUFJTyxXQUFXeEYsT0FBT3lGLE1BQVAsSUFBaUIsVUFBVUMsTUFBVixFQUFrQjtBQUNoRCxPQUFLLElBQUluSCxJQUFJLENBQWIsRUFBZ0JBLElBQUkyRSxVQUFVMUUsTUFBOUIsRUFBc0NELEdBQXRDLEVBQTJDO0FBQ3pDLFFBQUlvSCxTQUFTekMsVUFBVTNFLENBQVYsQ0FBYjs7QUFFQSxTQUFLLElBQUk3QyxHQUFULElBQWdCaUssTUFBaEIsRUFBd0I7QUFDdEIsVUFBSTNGLE9BQU80RixTQUFQLENBQWlCQyxjQUFqQixDQUFnQ3JGLElBQWhDLENBQXFDbUYsTUFBckMsRUFBNkNqSyxHQUE3QyxDQUFKLEVBQXVEO0FBQ3JEZ0ssZUFBT2hLLEdBQVAsSUFBY2lLLE9BQU9qSyxHQUFQLENBQWQ7QUFDRDtBQUNGO0FBQ0Y7O0FBRUQsU0FBT2dLLE1BQVA7QUFDRCxDQVpEOztBQWNBLElBQUkrTixrQkFBa0I7QUFDcEJ4WixhQUFXLEtBRFM7QUFFcEJKLFNBQU8sQ0FGYTtBQUdwQm1ELFFBQU0sS0FIYztBQUlwQnJELGFBQVcsS0FKUztBQUtwQnVCLFNBQU8sRUFMYTtBQU1wQnBCLFlBQVUsOEdBTlU7QUFPcEJDLFdBQVMsYUFQVztBQVFwQkMsVUFBUTtBQVJZLENBQXRCOztBQVdBLElBQUkwWixVQUFVLFlBQVk7QUFDeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQ0EsV0FBU0EsT0FBVCxDQUFpQnZYLFNBQWpCLEVBQTRCekMsT0FBNUIsRUFBcUM7QUFDbkNxTCxtQkFBZSxJQUFmLEVBQXFCMk8sT0FBckI7O0FBRUFDLHFCQUFpQm5ULElBQWpCLENBQXNCLElBQXRCOztBQUVBO0FBQ0E5RyxjQUFVOEwsU0FBUyxFQUFULEVBQWFpTyxlQUFiLEVBQThCL1osT0FBOUIsQ0FBVjs7QUFFQXlDLGNBQVUwVyxNQUFWLEtBQXFCMVcsWUFBWUEsVUFBVSxDQUFWLENBQWpDOztBQUVBO0FBQ0EsU0FBS0EsU0FBTCxHQUFpQkEsU0FBakI7QUFDQSxTQUFLekMsT0FBTCxHQUFlQSxPQUFmOztBQUVBO0FBQ0EsUUFBSW9DLFNBQVMsT0FBT3BDLFFBQVFLLE9BQWYsS0FBMkIsUUFBM0IsR0FBc0NMLFFBQVFLLE9BQVIsQ0FBZ0JnQyxLQUFoQixDQUFzQixHQUF0QixFQUEyQkMsTUFBM0IsQ0FBa0MsVUFBVWpDLE9BQVYsRUFBbUI7QUFDdEcsYUFBTyxDQUFDLE9BQUQsRUFBVSxPQUFWLEVBQW1CLE9BQW5CLEVBQTRCa0MsT0FBNUIsQ0FBb0NsQyxPQUFwQyxNQUFpRCxDQUFDLENBQXpEO0FBQ0QsS0FGa0QsQ0FBdEMsR0FFUixFQUZMOztBQUlBO0FBQ0EsU0FBSzZCLE9BQUwsR0FBZSxLQUFmOztBQUVBO0FBQ0EsU0FBS00sa0JBQUwsQ0FBd0JDLFNBQXhCLEVBQW1DTCxNQUFuQyxFQUEyQ3BDLE9BQTNDO0FBQ0Q7O0FBRUQ7QUFDQTtBQUNBOztBQUVBOzs7Ozs7QUFPQTs7Ozs7QUFNQTs7Ozs7QUFNQTs7Ozs7QUFNQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQXlaLGNBQVlPLE9BQVosRUFBcUIsQ0FBQztBQUNwQmhZLFNBQUssU0FEZTs7QUFJcEI7Ozs7Ozs7Ozs7QUFVQXZCLFdBQU8sU0FBU3laLE9BQVQsQ0FBaUJ6WCxTQUFqQixFQUE0QnJDLFFBQTVCLEVBQXNDb0IsS0FBdEMsRUFBNkMyWSxTQUE3QyxFQUF3RDtBQUM3RDtBQUNBLFVBQUlDLG1CQUFtQjFWLE9BQU9VLFFBQVAsQ0FBZ0JDLGFBQWhCLENBQThCLEtBQTlCLENBQXZCO0FBQ0ErVSx1QkFBaUJ6WSxTQUFqQixHQUE2QnZCLFFBQTdCO0FBQ0EsVUFBSWlhLGNBQWNELGlCQUFpQkUsVUFBakIsQ0FBNEIsQ0FBNUIsQ0FBbEI7O0FBRUE7QUFDQUQsa0JBQVlFLEVBQVosR0FBaUIsYUFBYTNQLEtBQUs0UCxNQUFMLEdBQWNoVyxRQUFkLENBQXVCLEVBQXZCLEVBQTJCaVcsTUFBM0IsQ0FBa0MsQ0FBbEMsRUFBcUMsRUFBckMsQ0FBOUI7O0FBRUE7QUFDQUosa0JBQVkzVSxZQUFaLENBQXlCLGFBQXpCLEVBQXdDLE9BQXhDOztBQUVBO0FBQ0EsVUFBSWdWLFlBQVlOLGlCQUFpQjNZLGFBQWpCLENBQStCLEtBQUtDLGFBQXBDLENBQWhCO0FBQ0EsVUFBSUYsTUFBTXlGLFFBQU4sS0FBbUIsQ0FBdkIsRUFBMEI7QUFDeEI7QUFDQWtULHFCQUFhTyxVQUFVQyxXQUFWLENBQXNCblosS0FBdEIsQ0FBYjtBQUNELE9BSEQsTUFHTyxJQUFJbUYsV0FBV25GLEtBQVgsQ0FBSixFQUF1QjtBQUM1QjtBQUNBLFlBQUlvWixZQUFZcFosTUFBTXNGLElBQU4sQ0FBV3JFLFNBQVgsQ0FBaEI7QUFDQTBYLG9CQUFZTyxVQUFVL1ksU0FBVixHQUFzQmlaLFNBQWxDLEdBQThDRixVQUFVRyxTQUFWLEdBQXNCRCxTQUFwRTtBQUNELE9BSk0sTUFJQTtBQUNMO0FBQ0FULG9CQUFZTyxVQUFVL1ksU0FBVixHQUFzQkgsS0FBbEMsR0FBMENrWixVQUFVRyxTQUFWLEdBQXNCclosS0FBaEU7QUFDRDs7QUFFRDtBQUNBLGFBQU82WSxXQUFQO0FBQ0Q7QUExQ21CLEdBQUQsRUEyQ2xCO0FBQ0RyWSxTQUFLLE9BREo7QUFFRHZCLFdBQU8sU0FBU3FhLEtBQVQsQ0FBZXJZLFNBQWYsRUFBMEJ6QyxPQUExQixFQUFtQztBQUN4QztBQUNBLFVBQUksS0FBS2tDLE9BQVQsRUFBa0I7QUFDaEIsZUFBTyxJQUFQO0FBQ0Q7QUFDRCxXQUFLQSxPQUFMLEdBQWUsSUFBZjs7QUFFQTtBQUNBLFVBQUksS0FBS25CLFlBQVQsRUFBdUI7QUFDckIsYUFBS0EsWUFBTCxDQUFrQjJGLEtBQWxCLENBQXdCcVUsT0FBeEIsR0FBa0MsRUFBbEM7QUFDQSxhQUFLaGEsWUFBTCxDQUFrQjJFLFlBQWxCLENBQStCLGFBQS9CLEVBQThDLE9BQTlDO0FBQ0EsYUFBSzlELGNBQUwsQ0FBb0JDLE1BQXBCO0FBQ0EsZUFBTyxJQUFQO0FBQ0Q7O0FBRUQ7QUFDQSxVQUFJTCxRQUFRaUIsVUFBVXVZLFlBQVYsQ0FBdUIsT0FBdkIsS0FBbUNoYixRQUFRd0IsS0FBdkQ7O0FBRUE7QUFDQSxVQUFJLENBQUNBLEtBQUwsRUFBWTtBQUNWLGVBQU8sSUFBUDtBQUNEOztBQUVEO0FBQ0EsVUFBSTZZLGNBQWMsS0FBS0gsT0FBTCxDQUFhelgsU0FBYixFQUF3QnpDLFFBQVFJLFFBQWhDLEVBQTBDb0IsS0FBMUMsRUFBaUR4QixRQUFRc0QsSUFBekQsQ0FBbEI7O0FBRUE7QUFDQStXLGtCQUFZM1UsWUFBWixDQUF5QixrQkFBekIsRUFBNkMyVSxZQUFZRSxFQUF6RDs7QUFFQTtBQUNBLFVBQUloYSxZQUFZLEtBQUswYSxjQUFMLENBQW9CamIsUUFBUU8sU0FBNUIsRUFBdUNrQyxTQUF2QyxDQUFoQjs7QUFFQSxXQUFLeVksT0FBTCxDQUFhYixXQUFiLEVBQTBCOVosU0FBMUI7O0FBRUEsVUFBSTRhLGdCQUFnQjtBQUNsQmxiLG1CQUFXRCxRQUFRQyxTQUREO0FBRWxCZ1Usc0JBQWMsS0FBS21IO0FBRkQsT0FBcEI7O0FBS0EsVUFBSXBiLFFBQVFrTyxpQkFBWixFQUErQjtBQUM3QmlOLHNCQUFjak4saUJBQWQsR0FBa0NsTyxRQUFRa08saUJBQTFDO0FBQ0Q7O0FBRUQsV0FBS3RNLGNBQUwsR0FBc0IsSUFBSSwwREFBSixDQUFXYSxTQUFYLEVBQXNCNFgsV0FBdEIsRUFBbUNjLGFBQW5DLENBQXRCOztBQUVBLFdBQUtwYSxZQUFMLEdBQW9Cc1osV0FBcEI7O0FBRUEsYUFBTyxJQUFQO0FBQ0Q7QUFsREEsR0EzQ2tCLEVBOEZsQjtBQUNEclksU0FBSyxPQURKO0FBRUR2QixXQUFPLFNBQVM0YSxLQUFULEdBQWlCLHNCQUFzQjtBQUM1QztBQUNBLFVBQUksQ0FBQyxLQUFLblosT0FBVixFQUFtQjtBQUNqQixlQUFPLElBQVA7QUFDRDs7QUFFRCxXQUFLQSxPQUFMLEdBQWUsS0FBZjs7QUFFQTtBQUNBLFdBQUtuQixZQUFMLENBQWtCMkYsS0FBbEIsQ0FBd0JxVSxPQUF4QixHQUFrQyxNQUFsQztBQUNBLFdBQUtoYSxZQUFMLENBQWtCMkUsWUFBbEIsQ0FBK0IsYUFBL0IsRUFBOEMsTUFBOUM7O0FBRUEsYUFBTyxJQUFQO0FBQ0Q7QUFmQSxHQTlGa0IsRUE4R2xCO0FBQ0QxRCxTQUFLLFVBREo7QUFFRHZCLFdBQU8sU0FBUzZhLFFBQVQsR0FBb0I7QUFDekIsVUFBSXRDLFFBQVEsSUFBWjs7QUFFQSxVQUFJLEtBQUtqWSxZQUFULEVBQXVCO0FBQ3JCLGFBQUtzYSxLQUFMOztBQUVBO0FBQ0EsYUFBS3paLGNBQUwsQ0FBb0IwUSxPQUFwQjs7QUFFQTtBQUNBLGFBQUsxUCxPQUFMLENBQWFDLE9BQWIsQ0FBcUIsVUFBVWdQLElBQVYsRUFBZ0I7QUFDbkMsY0FBSS9PLE9BQU8rTyxLQUFLL08sSUFBaEI7QUFBQSxjQUNJQyxRQUFROE8sS0FBSzlPLEtBRGpCOztBQUdBaVcsZ0JBQU1qWSxZQUFOLENBQW1CaUMsbUJBQW5CLENBQXVDRCxLQUF2QyxFQUE4Q0QsSUFBOUM7QUFDRCxTQUxEO0FBTUEsYUFBS0YsT0FBTCxHQUFlLEVBQWY7O0FBRUE7QUFDQSxhQUFLN0IsWUFBTCxDQUFrQnVHLFVBQWxCLENBQTZCb0wsV0FBN0IsQ0FBeUMsS0FBSzNSLFlBQTlDO0FBQ0EsYUFBS0EsWUFBTCxHQUFvQixJQUFwQjtBQUNEO0FBQ0QsYUFBTyxJQUFQO0FBQ0Q7QUF6QkEsR0E5R2tCLEVBd0lsQjtBQUNEaUIsU0FBSyxnQkFESjtBQUVEdkIsV0FBTyxTQUFTd2EsY0FBVCxDQUF3QjFhLFNBQXhCLEVBQW1Da0MsU0FBbkMsRUFBOEM7QUFDbkQ7QUFDQSxVQUFJLE9BQU9sQyxTQUFQLEtBQXFCLFFBQXpCLEVBQW1DO0FBQ2pDQSxvQkFBWW1FLE9BQU9VLFFBQVAsQ0FBZ0IzRCxhQUFoQixDQUE4QmxCLFNBQTlCLENBQVo7QUFDRCxPQUZELE1BRU8sSUFBSUEsY0FBYyxLQUFsQixFQUF5QjtBQUM5QjtBQUNBQSxvQkFBWWtDLFVBQVU2RSxVQUF0QjtBQUNEO0FBQ0QsYUFBTy9HLFNBQVA7QUFDRDs7QUFFRDs7Ozs7Ozs7QUFiQyxHQXhJa0IsRUE2SmxCO0FBQ0R5QixTQUFLLFNBREo7QUFFRHZCLFdBQU8sU0FBU3lhLE9BQVQsQ0FBaUJiLFdBQWpCLEVBQThCOVosU0FBOUIsRUFBeUM7QUFDOUNBLGdCQUFVb2EsV0FBVixDQUFzQk4sV0FBdEI7QUFDRDtBQUpBLEdBN0prQixFQWtLbEI7QUFDRHJZLFNBQUssb0JBREo7QUFFRHZCLFdBQU8sU0FBUytCLGtCQUFULENBQTRCQyxTQUE1QixFQUF1Q0wsTUFBdkMsRUFBK0NwQyxPQUEvQyxFQUF3RDtBQUM3RCxVQUFJdWIsU0FBUyxJQUFiOztBQUVBLFVBQUlDLGVBQWUsRUFBbkI7QUFDQSxVQUFJQyxpQkFBaUIsRUFBckI7O0FBRUFyWixhQUFPUyxPQUFQLENBQWUsVUFBVUUsS0FBVixFQUFpQjtBQUM5QixnQkFBUUEsS0FBUjtBQUNFLGVBQUssT0FBTDtBQUNFeVkseUJBQWF2SSxJQUFiLENBQWtCLFlBQWxCO0FBQ0F3SSwyQkFBZXhJLElBQWYsQ0FBb0IsWUFBcEI7QUFDRixlQUFLLE9BQUw7QUFDRXVJLHlCQUFhdkksSUFBYixDQUFrQixPQUFsQjtBQUNBd0ksMkJBQWV4SSxJQUFmLENBQW9CLE1BQXBCO0FBQ0YsZUFBSyxPQUFMO0FBQ0V1SSx5QkFBYXZJLElBQWIsQ0FBa0IsT0FBbEI7QUFDQXdJLDJCQUFleEksSUFBZixDQUFvQixPQUFwQjtBQVRKO0FBV0QsT0FaRDs7QUFjQTtBQUNBdUksbUJBQWEzWSxPQUFiLENBQXFCLFVBQVVFLEtBQVYsRUFBaUI7QUFDcEMsWUFBSUQsT0FBTyxTQUFTQSxJQUFULENBQWM0WSxHQUFkLEVBQW1CO0FBQzVCLGNBQUlILE9BQU9yWixPQUFQLEtBQW1CLElBQXZCLEVBQTZCO0FBQzNCO0FBQ0Q7QUFDRHdaLGNBQUlDLGFBQUosR0FBb0IsSUFBcEI7QUFDQUosaUJBQU9LLGFBQVAsQ0FBcUJuWixTQUFyQixFQUFnQ3pDLFFBQVFHLEtBQXhDLEVBQStDSCxPQUEvQyxFQUF3RDBiLEdBQXhEO0FBQ0QsU0FORDtBQU9BSCxlQUFPM1ksT0FBUCxDQUFlcVEsSUFBZixDQUFvQixFQUFFbFEsT0FBT0EsS0FBVCxFQUFnQkQsTUFBTUEsSUFBdEIsRUFBcEI7QUFDQUwsa0JBQVVzUSxnQkFBVixDQUEyQmhRLEtBQTNCLEVBQWtDRCxJQUFsQztBQUNELE9BVkQ7O0FBWUE7QUFDQTJZLHFCQUFlNVksT0FBZixDQUF1QixVQUFVRSxLQUFWLEVBQWlCO0FBQ3RDLFlBQUlELE9BQU8sU0FBU0EsSUFBVCxDQUFjNFksR0FBZCxFQUFtQjtBQUM1QixjQUFJQSxJQUFJQyxhQUFKLEtBQXNCLElBQTFCLEVBQWdDO0FBQzlCO0FBQ0Q7QUFDREosaUJBQU9NLGFBQVAsQ0FBcUJwWixTQUFyQixFQUFnQ3pDLFFBQVFHLEtBQXhDLEVBQStDSCxPQUEvQyxFQUF3RDBiLEdBQXhEO0FBQ0QsU0FMRDtBQU1BSCxlQUFPM1ksT0FBUCxDQUFlcVEsSUFBZixDQUFvQixFQUFFbFEsT0FBT0EsS0FBVCxFQUFnQkQsTUFBTUEsSUFBdEIsRUFBcEI7QUFDQUwsa0JBQVVzUSxnQkFBVixDQUEyQmhRLEtBQTNCLEVBQWtDRCxJQUFsQztBQUNELE9BVEQ7QUFVRDtBQTlDQSxHQWxLa0IsRUFpTmxCO0FBQ0RkLFNBQUssZUFESjtBQUVEdkIsV0FBTyxTQUFTbWIsYUFBVCxDQUF1Qm5aLFNBQXZCLEVBQWtDdEMsS0FBbEMsRUFBeUNILE9BQXpDLENBQWlELFVBQWpELEVBQTZEO0FBQ2xFLFVBQUk4YixTQUFTLElBQWI7O0FBRUE7QUFDQSxVQUFJQyxnQkFBZ0I1YixTQUFTQSxNQUFNd0MsSUFBZixJQUF1QnhDLEtBQXZCLElBQWdDLENBQXBEO0FBQ0F1RSxhQUFPeEIsVUFBUCxDQUFrQixZQUFZO0FBQzVCLGVBQU80WSxPQUFPaEIsS0FBUCxDQUFhclksU0FBYixFQUF3QnpDLE9BQXhCLENBQVA7QUFDRCxPQUZELEVBRUcrYixhQUZIO0FBR0Q7QUFWQSxHQWpOa0IsRUE0TmxCO0FBQ0QvWixTQUFLLGVBREo7QUFFRHZCLFdBQU8sU0FBU29iLGFBQVQsQ0FBdUJwWixTQUF2QixFQUFrQ3RDLEtBQWxDLEVBQXlDSCxPQUF6QyxFQUFrRDBiLEdBQWxELEVBQXVEO0FBQzVELFVBQUlNLFNBQVMsSUFBYjs7QUFFQTtBQUNBLFVBQUlELGdCQUFnQjViLFNBQVNBLE1BQU1zWSxJQUFmLElBQXVCdFksS0FBdkIsSUFBZ0MsQ0FBcEQ7QUFDQXVFLGFBQU94QixVQUFQLENBQWtCLFlBQVk7QUFDNUIsWUFBSThZLE9BQU85WixPQUFQLEtBQW1CLEtBQXZCLEVBQThCO0FBQzVCO0FBQ0Q7QUFDRCxZQUFJLENBQUNrRCxTQUFTcUMsSUFBVCxDQUFjMkIsUUFBZCxDQUF1QjRTLE9BQU9qYixZQUE5QixDQUFMLEVBQWtEO0FBQ2hEO0FBQ0Q7O0FBRUQ7QUFDQTtBQUNBLFlBQUkyYSxJQUFJTyxJQUFKLEtBQWEsWUFBakIsRUFBK0I7QUFDN0IsY0FBSUMsUUFBUUYsT0FBT0csb0JBQVAsQ0FBNEJULEdBQTVCLEVBQWlDalosU0FBakMsRUFBNEN0QyxLQUE1QyxFQUFtREgsT0FBbkQsQ0FBWjs7QUFFQTtBQUNBO0FBQ0EsY0FBSWtjLEtBQUosRUFBVztBQUNUO0FBQ0Q7QUFDRjs7QUFFREYsZUFBT1gsS0FBUCxDQUFhNVksU0FBYixFQUF3QnpDLE9BQXhCO0FBQ0QsT0FyQkQsRUFxQkcrYixhQXJCSDtBQXNCRDtBQTdCQSxHQTVOa0IsQ0FBckI7QUEyUEEsU0FBTy9CLE9BQVA7QUFDRCxDQS9WYSxFQUFkOztBQWlXQTs7Ozs7Ozs7O0FBU0E7Ozs7Ozs7QUFRQSxJQUFJQyxtQkFBbUIsU0FBU0EsZ0JBQVQsR0FBNEI7QUFDakQsTUFBSW1DLFNBQVMsSUFBYjs7QUFFQSxPQUFLelosSUFBTCxHQUFZLFlBQVk7QUFDdEIsV0FBT3laLE9BQU90QixLQUFQLENBQWFzQixPQUFPM1osU0FBcEIsRUFBK0IyWixPQUFPcGMsT0FBdEMsQ0FBUDtBQUNELEdBRkQ7O0FBSUEsT0FBS3lZLElBQUwsR0FBWSxZQUFZO0FBQ3RCLFdBQU8yRCxPQUFPZixLQUFQLEVBQVA7QUFDRCxHQUZEOztBQUlBLE9BQUtsWixPQUFMLEdBQWUsWUFBWTtBQUN6QixXQUFPaWEsT0FBT2QsUUFBUCxFQUFQO0FBQ0QsR0FGRDs7QUFJQSxPQUFLZSxNQUFMLEdBQWMsWUFBWTtBQUN4QixRQUFJRCxPQUFPbGEsT0FBWCxFQUFvQjtBQUNsQixhQUFPa2EsT0FBTzNELElBQVAsRUFBUDtBQUNELEtBRkQsTUFFTztBQUNMLGFBQU8yRCxPQUFPelosSUFBUCxFQUFQO0FBQ0Q7QUFDRixHQU5EOztBQVFBLE9BQUt5WSxhQUFMLEdBQXFCLGlDQUFyQjtBQUNBLE9BQUsxWixhQUFMLEdBQXFCLGlDQUFyQjtBQUNBLE9BQUtrQixPQUFMLEdBQWUsRUFBZjs7QUFFQSxPQUFLdVosb0JBQUwsR0FBNEIsVUFBVVQsR0FBVixFQUFlalosU0FBZixFQUEwQnRDLEtBQTFCLEVBQWlDSCxPQUFqQyxFQUEwQztBQUNwRSxRQUFJc2MsbUJBQW1CWixJQUFJWSxnQkFBSixJQUF3QlosSUFBSWEsU0FBbkQ7O0FBRUEsUUFBSTNKLFdBQVcsU0FBU0EsUUFBVCxDQUFrQjRKLElBQWxCLEVBQXdCO0FBQ3JDLFVBQUlDLG9CQUFvQkQsS0FBS0YsZ0JBQUwsSUFBeUJFLEtBQUtELFNBQXREOztBQUVBO0FBQ0FILGFBQU9yYixZQUFQLENBQW9CaUMsbUJBQXBCLENBQXdDMFksSUFBSU8sSUFBNUMsRUFBa0RySixRQUFsRDs7QUFFQTtBQUNBLFVBQUksQ0FBQ25RLFVBQVUyRyxRQUFWLENBQW1CcVQsaUJBQW5CLENBQUwsRUFBNEM7QUFDMUM7QUFDQUwsZUFBT1AsYUFBUCxDQUFxQnBaLFNBQXJCLEVBQWdDekMsUUFBUUcsS0FBeEMsRUFBK0NILE9BQS9DLEVBQXdEd2MsSUFBeEQ7QUFDRDtBQUNGLEtBWEQ7O0FBYUEsUUFBSUosT0FBT3JiLFlBQVAsQ0FBb0JxSSxRQUFwQixDQUE2QmtULGdCQUE3QixDQUFKLEVBQW9EO0FBQ2xEO0FBQ0FGLGFBQU9yYixZQUFQLENBQW9CZ1MsZ0JBQXBCLENBQXFDMkksSUFBSU8sSUFBekMsRUFBK0NySixRQUEvQztBQUNBLGFBQU8sSUFBUDtBQUNEOztBQUVELFdBQU8sS0FBUDtBQUNELEdBdkJEO0FBd0JELENBbkREOztBQXFEQSx3REFBZW9ILE9BQWY7QUFDQSxtQzs7Ozs7Ozs7Ozs7QUM3ZUE7O0FBRU8sU0FBUzBDLE9BQVQsQ0FBa0JDLEdBQWxCLEVBQXVCM2MsT0FBdkIsRUFBZ0M7QUFDckMsTUFBSTBjLFFBQVFFLFNBQVosRUFBdUI7QUFDdkJGLFVBQVFFLFNBQVIsR0FBb0IsSUFBcEI7O0FBRUE1YyxZQUFVc0csT0FBT3lGLE1BQVAsQ0FBYyxFQUFkLEVBQWtCLGtFQUFsQixFQUFrQy9MLFdBQVcsRUFBN0MsQ0FBVjtBQUNBNmMsRUFBQSwyREFBQUEsQ0FBUzdjLE9BQVQsR0FBbUJBLE9BQW5CO0FBQ0EyYyxNQUFJemMsU0FBSixDQUFjLFNBQWQsRUFBeUIsMkRBQXpCO0FBQ0Q7O0FBRU0sSUFBTTRjLFdBQVcsMkRBQWpCOztBQUVQLElBQU1DLFNBQVM7QUFDYkw7QUFEYSxDQUFmOztBQUlBO0FBQ0EsSUFBSU0sWUFBWSxJQUFoQjtBQUNBLElBQUksT0FBT3RZLE1BQVAsS0FBa0IsV0FBdEIsRUFBbUM7QUFDakNzWSxjQUFZdFksT0FBT2lZLEdBQW5CO0FBQ0QsQ0FGRCxNQUVPLElBQUksT0FBT3BELE1BQVAsS0FBa0IsV0FBdEIsRUFBbUM7QUFDeEN5RCxjQUFZekQsT0FBT29ELEdBQW5CO0FBQ0Q7QUFDRCxJQUFJSyxTQUFKLEVBQWU7QUFDYkEsWUFBVUMsR0FBVixDQUFjRixNQUFkO0FBQ0Q7O0FBRUQsOERBQWVBLE1BQWYsQyIsImZpbGUiOiJ2LXRvb2x0aXAuY29tbW9uLmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pXG4gXHRcdFx0cmV0dXJuIGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdLmV4cG9ydHM7XG5cbiBcdFx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcbiBcdFx0dmFyIG1vZHVsZSA9IGluc3RhbGxlZE1vZHVsZXNbbW9kdWxlSWRdID0ge1xuIFx0XHRcdGk6IG1vZHVsZUlkLFxuIFx0XHRcdGw6IGZhbHNlLFxuIFx0XHRcdGV4cG9ydHM6IHt9XG4gXHRcdH07XG5cbiBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4gXHRcdG1vZHVsZXNbbW9kdWxlSWRdLmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG4gXHRcdC8vIEZsYWcgdGhlIG1vZHVsZSBhcyBsb2FkZWRcbiBcdFx0bW9kdWxlLmwgPSB0cnVlO1xuXG4gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbiBcdH1cblxuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gbW9kdWxlcztcblxuIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbiBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IGluc3RhbGxlZE1vZHVsZXM7XG5cbiBcdC8vIGlkZW50aXR5IGZ1bmN0aW9uIGZvciBjYWxsaW5nIGhhcm1vbnkgaW1wb3J0cyB3aXRoIHRoZSBjb3JyZWN0IGNvbnRleHRcbiBcdF9fd2VicGFja19yZXF1aXJlX18uaSA9IGZ1bmN0aW9uKHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfTtcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7XG4gXHRcdFx0XHRjb25maWd1cmFibGU6IGZhbHNlLFxuIFx0XHRcdFx0ZW51bWVyYWJsZTogdHJ1ZSxcbiBcdFx0XHRcdGdldDogZ2V0dGVyXG4gXHRcdFx0fSk7XG4gXHRcdH1cbiBcdH07XG5cbiBcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSBmdW5jdGlvbihtb2R1bGUpIHtcbiBcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4gXHRcdFx0ZnVuY3Rpb24gZ2V0RGVmYXVsdCgpIHsgcmV0dXJuIG1vZHVsZVsnZGVmYXVsdCddOyB9IDpcbiBcdFx0XHRmdW5jdGlvbiBnZXRNb2R1bGVFeHBvcnRzKCkgeyByZXR1cm4gbW9kdWxlOyB9O1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCAnYScsIGdldHRlcik7XG4gXHRcdHJldHVybiBnZXR0ZXI7XG4gXHR9O1xuXG4gXHQvLyBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGxcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IGZ1bmN0aW9uKG9iamVjdCwgcHJvcGVydHkpIHsgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmplY3QsIHByb3BlcnR5KTsgfTtcblxuIFx0Ly8gX193ZWJwYWNrX3B1YmxpY19wYXRoX19cbiBcdF9fd2VicGFja19yZXF1aXJlX18ucCA9IFwiXCI7XG5cbiBcdC8vIExvYWQgZW50cnkgbW9kdWxlIGFuZCByZXR1cm4gZXhwb3J0c1xuIFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18oX193ZWJwYWNrX3JlcXVpcmVfXy5zID0gNCk7XG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gd2VicGFjay9ib290c3RyYXAgMjk4OWMwOWU5Nzc4NGIyNWYzMGMiLCJpbXBvcnQgVG9vbHRpcCBmcm9tICd0b29sdGlwLmpzJ1xyXG5cclxuaW1wb3J0IHsgYWRkQ2xhc3NlcywgcmVtb3ZlQ2xhc3NlcywgcmVwbGFjZUNsYXNzZXMgfSBmcm9tICcuL3V0aWxzJ1xyXG5cclxuY29uc3QgcG9zaXRpb25zID0gW1xyXG4gICd0b3AnLFxyXG4gICd0b3Atc3RhcnQnLFxyXG4gICd0b3AtZW5kJyxcclxuICAncmlnaHQnLFxyXG4gICdyaWdodC1zdGFydCcsXHJcbiAgJ3JpZ2h0LWVuZCcsXHJcbiAgJ2JvdHRvbScsXHJcbiAgJ2JvdHRvbS1zdGFydCcsXHJcbiAgJ2JvdHRvbS1lbmQnLFxyXG4gICdsZWZ0JyxcclxuICAnbGVmdC1zdGFydCcsXHJcbiAgJ2xlZnQtZW5kJyxcclxuXVxyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRPcHRpb25zID0ge1xyXG4gIGRlZmF1bHRQbGFjZW1lbnQ6ICd0b3AnLFxyXG4gIGRlZmF1bHRDbGFzczogJ3Z1ZS10b29sdGlwLXRoZW1lJyxcclxuICBkZWZhdWx0VGVtcGxhdGU6ICc8ZGl2IGNsYXNzPVwidG9vbHRpcFwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cInRvb2x0aXAtYXJyb3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwidG9vbHRpcC1pbm5lclwiPjwvZGl2PjwvZGl2PicsXHJcbiAgZGVmYXVsdERlbGF5OiAwLFxyXG4gIGRlZmF1bHRUcmlnZ2VyOiAnaG92ZXIgZm9jdXMnLFxyXG4gIGRlZmF1bHRPZmZzZXQ6IDAsXHJcbiAgZGVmYXVsdENvbnRhaW5lcjogJ2JvZHknLFxyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRPcHRpb25zIChvcHRpb25zKSB7XHJcbiAgcmV0dXJuIHtcclxuICAgIHBsYWNlbWVudDogb3B0aW9ucy5wbGFjZW1lbnQgfHwgZGlyZWN0aXZlLm9wdGlvbnMuZGVmYXVsdFBsYWNlbWVudCxcclxuICAgIGRlbGF5OiBvcHRpb25zLmRlbGF5IHx8IGRpcmVjdGl2ZS5vcHRpb25zLmRlZmF1bHREZWxheSxcclxuICAgIHRlbXBsYXRlOiBvcHRpb25zLnRlbXBsYXRlIHx8IGRpcmVjdGl2ZS5vcHRpb25zLmRlZmF1bHRUZW1wbGF0ZSxcclxuICAgIHRyaWdnZXI6IG9wdGlvbnMudHJpZ2dlciB8fCBkaXJlY3RpdmUub3B0aW9ucy5kZWZhdWx0VHJpZ2dlcixcclxuICAgIG9mZnNldDogb3B0aW9ucy5vZmZzZXQgfHwgZGlyZWN0aXZlLm9wdGlvbnMuZGVmYXVsdE9mZnNldCxcclxuICAgIGNvbnRhaW5lcjogb3B0aW9ucy5jb250YWluZXIgfHwgZGlyZWN0aXZlLm9wdGlvbnMuZGVmYXVsdENvbnRhaW5lcixcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFBsYWNlbWVudCAodmFsdWUsIG1vZGlmaWVycykge1xyXG4gIGxldCBwbGFjZW1lbnQgPSB2YWx1ZS5wbGFjZW1lbnRcclxuICBmb3IgKGNvbnN0IHBvcyBvZiBwb3NpdGlvbnMpIHtcclxuICAgIGlmIChtb2RpZmllcnNbcG9zXSkge1xyXG4gICAgICBwbGFjZW1lbnQgPSBwb3NcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHBsYWNlbWVudFxyXG59XHJcblxyXG5jbGFzcyBTdXBlclRvb2x0aXAgZXh0ZW5kcyBUb29sdGlwIHtcclxuICBzZXRDbGFzc2VzIChjbGFzc2VzKSB7XHJcbiAgICBjb25zdCBlbCA9IHRoaXMuX3Rvb2x0aXBOb2RlXHJcblxyXG4gICAgaWYgKGVsKSB7XHJcbiAgICAgIGNvbnN0IG9sZENsYXNzZXMgPSB0aGlzLl9vbGRDbGFzc2VzXHJcbiAgICAgIGlmIChjbGFzc2VzKSB7XHJcbiAgICAgICAgaWYgKG9sZENsYXNzZXMpIHtcclxuICAgICAgICAgIHJlcGxhY2VDbGFzc2VzKGVsLCBjbGFzc2VzLCBvbGRDbGFzc2VzKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBhZGRDbGFzc2VzKGVsLCBjbGFzc2VzKVxyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmIChvbGRDbGFzc2VzKSB7XHJcbiAgICAgICAgcmVtb3ZlQ2xhc3NlcyhlbCwgb2xkQ2xhc3NlcylcclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9vbGRDbGFzc2VzID0gY2xhc3Nlc1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fcGVuZGluZ0NsYXNzZXMgPSBjbGFzc2VzXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5fY2xhc3NlcyA9IGNsYXNzZXNcclxuICB9XHJcblxyXG4gIHNldENvbnRlbnQgKGNvbnRlbnQpIHtcclxuICAgIHRoaXMub3B0aW9ucy50aXRsZSA9IGNvbnRlbnRcclxuICAgIGlmICh0aGlzLl90b29sdGlwTm9kZSkge1xyXG4gICAgICBjb25zdCBlbCA9IHRoaXMuX3Rvb2x0aXBOb2RlLnF1ZXJ5U2VsZWN0b3IodGhpcy5pbm5lclNlbGVjdG9yKVxyXG5cclxuICAgICAgaWYgKGVsKSB7XHJcbiAgICAgICAgaWYgKCFjb250ZW50KSB7XHJcbiAgICAgICAgICBlbC5pbm5lckhUTUwgPSAnJ1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBlbC5pbm5lckhUTUwgPSBjb250ZW50XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnBvcHBlckluc3RhbmNlLnVwZGF0ZSgpXHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE9wdGlvbnMgKG9wdGlvbnMpIHtcclxuICAgIG9wdGlvbnMgPSBnZXRPcHRpb25zKG9wdGlvbnMpXHJcblxyXG4gICAgbGV0IG5lZWRQb3BwZXJVcGRhdGUgPSBmYWxzZVxyXG4gICAgbGV0IG5lZWRSZXN0YXJ0ID0gZmFsc2VcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9ucy5vZmZzZXQgIT09IG9wdGlvbnMub2Zmc2V0IHx8XHJcbiAgICAgIHRoaXMub3B0aW9ucy5wbGFjZW1lbnQgIT09IG9wdGlvbnMucGxhY2VtZW50XHJcbiAgICApIHtcclxuICAgICAgbmVlZFBvcHBlclVwZGF0ZSA9IHRydWVcclxuICAgIH1cclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9ucy50ZW1wbGF0ZSAhPT0gb3B0aW9ucy50ZW1wbGF0ZSB8fFxyXG4gICAgICB0aGlzLm9wdGlvbnMudHJpZ2dlciAhPT0gb3B0aW9ucy50cmlnZ2VyIHx8XHJcbiAgICAgIHRoaXMub3B0aW9ucy5jb250YWluZXIgIT09IG9wdGlvbnMuY29udGFpbmVyXHJcbiAgICApIHtcclxuICAgICAgbmVlZFJlc3RhcnQgPSB0cnVlXHJcbiAgICB9XHJcblxyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gb3B0aW9ucykge1xyXG4gICAgICB0aGlzLm9wdGlvbnNba2V5XSA9IG9wdGlvbnNba2V5XVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl90b29sdGlwTm9kZSkge1xyXG4gICAgICBpZiAobmVlZFJlc3RhcnQpIHtcclxuICAgICAgICBjb25zdCBpc09wZW4gPSB0aGlzLl9pc09wZW5cclxuXHJcbiAgICAgICAgdGhpcy5kaXNwb3NlKClcclxuXHJcbiAgICAgICAgY29uc3QgZXZlbnRzID0gdHlwZW9mIHRoaXMub3B0aW9ucy50cmlnZ2VyID09PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgPyBvcHRpb25zLnRyaWdnZXJcclxuICAgICAgICAgICAgLnNwbGl0KCcgJylcclxuICAgICAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgICAgICB0cmlnZ2VyID0+IFsnY2xpY2snLCAnaG92ZXInLCAnZm9jdXMnXS5pbmRleE9mKHRyaWdnZXIpICE9PSAtMVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICA6IFtdXHJcbiAgICAgICAgdGhpcy5fc2V0RXZlbnRMaXN0ZW5lcnModGhpcy5yZWZlcmVuY2UsIGV2ZW50cywgdGhpcy5vcHRpb25zKVxyXG5cclxuICAgICAgICB0aGlzLnNldENsYXNzZXModGhpcy5fY2xhc3NlcylcclxuXHJcbiAgICAgICAgaWYgKGlzT3Blbikge1xyXG4gICAgICAgICAgdGhpcy5zaG93KClcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAobmVlZFBvcHBlclVwZGF0ZSkge1xyXG4gICAgICAgIHRoaXMucG9wcGVySW5zdGFuY2UudXBkYXRlKClcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgX2Rpc3Bvc2UgKCkge1xyXG4gICAgdGhpcy5fZXZlbnRzLmZvckVhY2goKHsgZnVuYywgZXZlbnQgfSkgPT4ge1xyXG4gICAgICB0aGlzLnJlZmVyZW5jZS5yZW1vdmVFdmVudExpc3RlbmVyKGV2ZW50LCBmdW5jKVxyXG4gICAgfSlcclxuICAgIHRoaXMuX2V2ZW50cyA9IFtdXHJcbiAgICBzdXBlci5fZGlzcG9zZSgpXHJcbiAgfVxyXG5cclxuICBfc2hvdyAoLi4uYXJncykge1xyXG4gICAgc3VwZXIuX3Nob3coLi4uYXJncylcclxuXHJcbiAgICBpZiAodGhpcy5fcGVuZGluZ0NsYXNzZXMpIHtcclxuICAgICAgdGhpcy5zZXRDbGFzc2VzKHRoaXMuX3BlbmRpbmdDbGFzc2VzKVxyXG4gICAgICB0aGlzLl9wZW5kaW5nQ2xhc3NlcyA9IG51bGxcclxuICAgIH1cclxuXHJcbiAgICAvLyBGaXggcG9zaXRpb25cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnBvcHBlckluc3RhbmNlLnVwZGF0ZSgpXHJcbiAgICB9LCAwKVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlVG9vbHRpcCAoZWwsIHZhbHVlLCBtb2RpZmllcnMpIHtcclxuICBjb25zdCBjb250ZW50ID0gdmFsdWUuY29udGVudCB8fCB2YWx1ZVxyXG4gIGxldCBjbGFzc2VzID0gdmFsdWUuY2xhc3NlcyB8fCBkaXJlY3RpdmUub3B0aW9ucy5kZWZhdWx0Q2xhc3NcclxuXHJcbiAgY29uc3QgdG9vbHRpcCA9IGVsLl90b29sdGlwID0gbmV3IFN1cGVyVG9vbHRpcChlbCwge1xyXG4gICAgdGl0bGU6IGNvbnRlbnQsXHJcbiAgICBodG1sOiB0cnVlLFxyXG4gICAgLi4uZ2V0T3B0aW9ucyh7XHJcbiAgICAgIC4uLnZhbHVlLFxyXG4gICAgICBwbGFjZW1lbnQ6IGdldFBsYWNlbWVudCh2YWx1ZSwgbW9kaWZpZXJzKSxcclxuICAgIH0pLFxyXG4gIH0pXHJcbiAgdG9vbHRpcC5zZXRDbGFzc2VzKGNsYXNzZXMpXHJcbn1cclxuXHJcbmZ1bmN0aW9uIGRlc3Ryb3lUb29sdGlwIChlbCkge1xyXG4gIGlmIChlbC5fdG9vbHRpcCkge1xyXG4gICAgZWwuX3Rvb2x0aXAuZGlzcG9zZSgpXHJcbiAgICBkZWxldGUgZWwuX3Rvb2x0aXBcclxuICB9XHJcbn1cclxuXHJcbmNvbnN0IGRpcmVjdGl2ZSA9IHtcclxuICBvcHRpb25zOiBkZWZhdWx0T3B0aW9ucyxcclxuICBiaW5kIChlbCwgeyB2YWx1ZSwgbW9kaWZpZXJzIH0pIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB2YWx1ZSAmJiB2YWx1ZS5jb250ZW50IHx8IHZhbHVlXHJcbiAgICBkZXN0cm95VG9vbHRpcChlbClcclxuICAgIGlmIChjb250ZW50KSB7XHJcbiAgICAgIGNyZWF0ZVRvb2x0aXAoZWwsIHZhbHVlLCBtb2RpZmllcnMpXHJcbiAgICB9XHJcbiAgfSxcclxuICB1cGRhdGUgKGVsLCB7IHZhbHVlLCBvbGRWYWx1ZSwgbW9kaWZpZXJzIH0pIHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB2YWx1ZSAmJiB2YWx1ZS5jb250ZW50IHx8IHZhbHVlXHJcbiAgICBpZiAoIWNvbnRlbnQpIHtcclxuICAgICAgZGVzdHJveVRvb2x0aXAoZWwpXHJcbiAgICB9IGVsc2UgaWYgKGVsLl90b29sdGlwKSB7XHJcbiAgICAgIGNvbnN0IHRvb2x0aXAgPSBlbC5fdG9vbHRpcFxyXG4gICAgICAvLyBDb250ZW50XHJcbiAgICAgIHRvb2x0aXAuc2V0Q29udGVudChjb250ZW50KVxyXG4gICAgICAvLyBDU1MgQ2xhc3Nlc1xyXG4gICAgICB0b29sdGlwLnNldENsYXNzZXMoKHZhbHVlICYmIHZhbHVlLmNsYXNzZXMpIHx8IGRpcmVjdGl2ZS5vcHRpb25zLmRlZmF1bHRDbGFzcylcclxuICAgICAgLy8gT3B0aW9uc1xyXG4gICAgICB0b29sdGlwLnNldE9wdGlvbnMoe1xyXG4gICAgICAgIC4uLnZhbHVlLFxyXG4gICAgICAgIHBsYWNlbWVudDogZ2V0UGxhY2VtZW50KHZhbHVlLCBtb2RpZmllcnMpLFxyXG4gICAgICB9KVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY3JlYXRlVG9vbHRpcChlbCwgdmFsdWUsIG1vZGlmaWVycylcclxuICAgIH1cclxuICB9LFxyXG4gIHVuYmluZCAoZWwpIHtcclxuICAgIGRlc3Ryb3lUb29sdGlwKGVsKVxyXG4gIH0sXHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGRpcmVjdGl2ZVxyXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9zcmMvdi10b29sdGlwLmpzIiwiXG5mdW5jdGlvbiBjb252ZXJ0VG9BcnJheSAodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgIHZhbHVlID0gdmFsdWUuc3BsaXQoJyAnKVxyXG4gIH1cclxuICByZXR1cm4gdmFsdWVcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkZENsYXNzZXMgKGVsLCBjbGFzc2VzKSB7XHJcbiAgY2xhc3NlcyA9IGNvbnZlcnRUb0FycmF5KGNsYXNzZXMpXHJcbiAgY2xhc3Nlcy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgZWwuY2xhc3NMaXN0LmFkZChjKVxyXG4gIH0pXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVDbGFzc2VzIChlbCwgY2xhc3Nlcykge1xyXG4gIGNsYXNzZXMgPSBjb252ZXJ0VG9BcnJheShjbGFzc2VzKVxyXG4gIGNsYXNzZXMuZm9yRWFjaChjID0+IHtcclxuICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoYylcclxuICB9KVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcmVwbGFjZUNsYXNzZXMgKGVsLCBuZXdDbGFzc2VzLCBvbGRDbGFzc2VzKSB7XHJcbiAgcmVtb3ZlQ2xhc3NlcyhlbCwgb2xkQ2xhc3NlcylcclxuICBhZGRDbGFzc2VzKGVsLCBuZXdDbGFzc2VzKVxyXG59XHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy91dGlscy5qcyIsInZhciBuYXRpdmVIaW50cyA9IFsnbmF0aXZlIGNvZGUnLCAnW29iamVjdCBNdXRhdGlvbk9ic2VydmVyQ29uc3RydWN0b3JdJ107XG5cbi8qKlxuICogRGV0ZXJtaW5lIGlmIGEgZnVuY3Rpb24gaXMgaW1wbGVtZW50ZWQgbmF0aXZlbHkgKGFzIG9wcG9zZWQgdG8gYSBwb2x5ZmlsbCkuXG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge0Z1bmN0aW9uIHwgdW5kZWZpbmVkfSBmbiB0aGUgZnVuY3Rpb24gdG8gY2hlY2tcbiAqIEByZXR1cm5zIHtCb29sZWFufVxuICovXG52YXIgaXNOYXRpdmUgPSAoZnVuY3Rpb24gKGZuKSB7XG4gIHJldHVybiBuYXRpdmVIaW50cy5zb21lKGZ1bmN0aW9uIChoaW50KSB7XG4gICAgcmV0dXJuIChmbiB8fCAnJykudG9TdHJpbmcoKS5pbmRleE9mKGhpbnQpID4gLTE7XG4gIH0pO1xufSk7XG5cbnZhciBpc0Jyb3dzZXIgPSB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJztcbnZhciBsb25nZXJUaW1lb3V0QnJvd3NlcnMgPSBbJ0VkZ2UnLCAnVHJpZGVudCcsICdGaXJlZm94J107XG52YXIgdGltZW91dER1cmF0aW9uID0gMDtcbmZvciAodmFyIGkgPSAwOyBpIDwgbG9uZ2VyVGltZW91dEJyb3dzZXJzLmxlbmd0aDsgaSArPSAxKSB7XG4gIGlmIChpc0Jyb3dzZXIgJiYgbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKGxvbmdlclRpbWVvdXRCcm93c2Vyc1tpXSkgPj0gMCkge1xuICAgIHRpbWVvdXREdXJhdGlvbiA9IDE7XG4gICAgYnJlYWs7XG4gIH1cbn1cblxuZnVuY3Rpb24gbWljcm90YXNrRGVib3VuY2UoZm4pIHtcbiAgdmFyIHNjaGVkdWxlZCA9IGZhbHNlO1xuICB2YXIgaSA9IDA7XG4gIHZhciBlbGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuXG4gIC8vIE11dGF0aW9uT2JzZXJ2ZXIgcHJvdmlkZXMgYSBtZWNoYW5pc20gZm9yIHNjaGVkdWxpbmcgbWljcm90YXNrcywgd2hpY2hcbiAgLy8gYXJlIHNjaGVkdWxlZCAqYmVmb3JlKiB0aGUgbmV4dCB0YXNrLiBUaGlzIGdpdmVzIHVzIGEgd2F5IHRvIGRlYm91bmNlXG4gIC8vIGEgZnVuY3Rpb24gYnV0IGVuc3VyZSBpdCdzIGNhbGxlZCAqYmVmb3JlKiB0aGUgbmV4dCBwYWludC5cbiAgdmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKCkge1xuICAgIGZuKCk7XG4gICAgc2NoZWR1bGVkID0gZmFsc2U7XG4gIH0pO1xuXG4gIG9ic2VydmVyLm9ic2VydmUoZWxlbSwgeyBhdHRyaWJ1dGVzOiB0cnVlIH0pO1xuXG4gIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKCFzY2hlZHVsZWQpIHtcbiAgICAgIHNjaGVkdWxlZCA9IHRydWU7XG4gICAgICBlbGVtLnNldEF0dHJpYnV0ZSgneC1pbmRleCcsIGkpO1xuICAgICAgaSA9IGkgKyAxOyAvLyBkb24ndCB1c2UgY29tcHVuZCAoKz0pIGJlY2F1c2UgaXQgZG9lc24ndCBnZXQgb3B0aW1pemVkIGluIFY4XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiB0YXNrRGVib3VuY2UoZm4pIHtcbiAgdmFyIHNjaGVkdWxlZCA9IGZhbHNlO1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIGlmICghc2NoZWR1bGVkKSB7XG4gICAgICBzY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgIHNjaGVkdWxlZCA9IGZhbHNlO1xuICAgICAgICBmbigpO1xuICAgICAgfSwgdGltZW91dER1cmF0aW9uKTtcbiAgICB9XG4gIH07XG59XG5cbi8vIEl0J3MgY29tbW9uIGZvciBNdXRhdGlvbk9ic2VydmVyIHBvbHlmaWxscyB0byBiZSBzZWVuIGluIHRoZSB3aWxkLCBob3dldmVyXG4vLyB0aGVzZSByZWx5IG9uIE11dGF0aW9uIEV2ZW50cyB3aGljaCBvbmx5IG9jY3VyIHdoZW4gYW4gZWxlbWVudCBpcyBjb25uZWN0ZWRcbi8vIHRvIHRoZSBET00uIFRoZSBhbGdvcml0aG0gdXNlZCBpbiB0aGlzIG1vZHVsZSBkb2VzIG5vdCB1c2UgYSBjb25uZWN0ZWQgZWxlbWVudCxcbi8vIGFuZCBzbyB3ZSBtdXN0IGVuc3VyZSB0aGF0IGEgKm5hdGl2ZSogTXV0YXRpb25PYnNlcnZlciBpcyBhdmFpbGFibGUuXG52YXIgc3VwcG9ydHNOYXRpdmVNdXRhdGlvbk9ic2VydmVyID0gaXNCcm93c2VyICYmIGlzTmF0aXZlKHdpbmRvdy5NdXRhdGlvbk9ic2VydmVyKTtcblxuLyoqXG4qIENyZWF0ZSBhIGRlYm91bmNlZCB2ZXJzaW9uIG9mIGEgbWV0aG9kLCB0aGF0J3MgYXN5bmNocm9ub3VzbHkgZGVmZXJyZWRcbiogYnV0IGNhbGxlZCBpbiB0aGUgbWluaW11bSB0aW1lIHBvc3NpYmxlLlxuKlxuKiBAbWV0aG9kXG4qIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiogQGFyZ3VtZW50IHtGdW5jdGlvbn0gZm5cbiogQHJldHVybnMge0Z1bmN0aW9ufVxuKi9cbnZhciBkZWJvdW5jZSA9IHN1cHBvcnRzTmF0aXZlTXV0YXRpb25PYnNlcnZlciA/IG1pY3JvdGFza0RlYm91bmNlIDogdGFza0RlYm91bmNlO1xuXG4vKipcbiAqIFRlbGxzIGlmIGEgZ2l2ZW4gaW5wdXQgaXMgYSBudW1iZXJcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBwYXJhbSB7Kn0gaW5wdXQgdG8gY2hlY2tcbiAqIEByZXR1cm4ge0Jvb2xlYW59XG4gKi9cbmZ1bmN0aW9uIGlzTnVtZXJpYyhuKSB7XG4gIHJldHVybiBuICE9PSAnJyAmJiAhaXNOYU4ocGFyc2VGbG9hdChuKSkgJiYgaXNGaW5pdGUobik7XG59XG5cbi8qKlxuICogU2V0IHRoZSBzdHlsZSB0byB0aGUgZ2l2ZW4gcG9wcGVyXG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge0VsZW1lbnR9IGVsZW1lbnQgLSBFbGVtZW50IHRvIGFwcGx5IHRoZSBzdHlsZSB0b1xuICogQGFyZ3VtZW50IHtPYmplY3R9IHN0eWxlc1xuICogT2JqZWN0IHdpdGggYSBsaXN0IG9mIHByb3BlcnRpZXMgYW5kIHZhbHVlcyB3aGljaCB3aWxsIGJlIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnRcbiAqL1xuZnVuY3Rpb24gc2V0U3R5bGVzKGVsZW1lbnQsIHN0eWxlcykge1xuICBPYmplY3Qua2V5cyhzdHlsZXMpLmZvckVhY2goZnVuY3Rpb24gKHByb3ApIHtcbiAgICB2YXIgdW5pdCA9ICcnO1xuICAgIC8vIGFkZCB1bml0IGlmIHRoZSB2YWx1ZSBpcyBudW1lcmljIGFuZCBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZ1xuICAgIGlmIChbJ3dpZHRoJywgJ2hlaWdodCcsICd0b3AnLCAncmlnaHQnLCAnYm90dG9tJywgJ2xlZnQnXS5pbmRleE9mKHByb3ApICE9PSAtMSAmJiBpc051bWVyaWMoc3R5bGVzW3Byb3BdKSkge1xuICAgICAgdW5pdCA9ICdweCc7XG4gICAgfVxuICAgIGVsZW1lbnQuc3R5bGVbcHJvcF0gPSBzdHlsZXNbcHJvcF0gKyB1bml0O1xuICB9KTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gdmFyaWFibGUgaXMgYSBmdW5jdGlvblxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlci5VdGlsc1xuICogQGFyZ3VtZW50IHtBbnl9IGZ1bmN0aW9uVG9DaGVjayAtIHZhcmlhYmxlIHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gYW5zd2VyIHRvOiBpcyBhIGZ1bmN0aW9uP1xuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjaykge1xuICB2YXIgZ2V0VHlwZSA9IHt9O1xuICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xufVxuXG4vKipcbiAqIEdldCBDU1MgY29tcHV0ZWQgcHJvcGVydHkgb2YgdGhlIGdpdmVuIGVsZW1lbnRcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBhcmd1bWVudCB7RWVtZW50fSBlbGVtZW50XG4gKiBAYXJndW1lbnQge1N0cmluZ30gcHJvcGVydHlcbiAqL1xuZnVuY3Rpb24gZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KGVsZW1lbnQsIHByb3BlcnR5KSB7XG4gIGlmIChlbGVtZW50Lm5vZGVUeXBlICE9PSAxKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIC8vIE5PVEU6IDEgRE9NIGFjY2VzcyBoZXJlXG4gIHZhciBjc3MgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBudWxsKTtcbiAgcmV0dXJuIHByb3BlcnR5ID8gY3NzW3Byb3BlcnR5XSA6IGNzcztcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwYXJlbnROb2RlIG9yIHRoZSBob3N0IG9mIHRoZSBlbGVtZW50XG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge0VsZW1lbnR9IGVsZW1lbnRcbiAqIEByZXR1cm5zIHtFbGVtZW50fSBwYXJlbnRcbiAqL1xuZnVuY3Rpb24gZ2V0UGFyZW50Tm9kZShlbGVtZW50KSB7XG4gIGlmIChlbGVtZW50Lm5vZGVOYW1lID09PSAnSFRNTCcpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuICByZXR1cm4gZWxlbWVudC5wYXJlbnROb2RlIHx8IGVsZW1lbnQuaG9zdDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBzY3JvbGxpbmcgcGFyZW50IG9mIHRoZSBnaXZlbiBlbGVtZW50XG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge0VsZW1lbnR9IGVsZW1lbnRcbiAqIEByZXR1cm5zIHtFbGVtZW50fSBzY3JvbGwgcGFyZW50XG4gKi9cbmZ1bmN0aW9uIGdldFNjcm9sbFBhcmVudChlbGVtZW50KSB7XG4gIC8vIFJldHVybiBib2R5LCBgZ2V0U2Nyb2xsYCB3aWxsIHRha2UgY2FyZSB0byBnZXQgdGhlIGNvcnJlY3QgYHNjcm9sbFRvcGAgZnJvbSBpdFxuICBpZiAoIWVsZW1lbnQgfHwgWydIVE1MJywgJ0JPRFknLCAnI2RvY3VtZW50J10uaW5kZXhPZihlbGVtZW50Lm5vZGVOYW1lKSAhPT0gLTEpIHtcbiAgICByZXR1cm4gd2luZG93LmRvY3VtZW50LmJvZHk7XG4gIH1cblxuICAvLyBGaXJlZm94IHdhbnQgdXMgdG8gY2hlY2sgYC14YCBhbmQgYC15YCB2YXJpYXRpb25zIGFzIHdlbGxcblxuICB2YXIgX2dldFN0eWxlQ29tcHV0ZWRQcm9wID0gZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KGVsZW1lbnQpLFxuICAgICAgb3ZlcmZsb3cgPSBfZ2V0U3R5bGVDb21wdXRlZFByb3Aub3ZlcmZsb3csXG4gICAgICBvdmVyZmxvd1ggPSBfZ2V0U3R5bGVDb21wdXRlZFByb3Aub3ZlcmZsb3dYLFxuICAgICAgb3ZlcmZsb3dZID0gX2dldFN0eWxlQ29tcHV0ZWRQcm9wLm92ZXJmbG93WTtcblxuICBpZiAoLyhhdXRvfHNjcm9sbCkvLnRlc3Qob3ZlcmZsb3cgKyBvdmVyZmxvd1kgKyBvdmVyZmxvd1gpKSB7XG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH1cblxuICByZXR1cm4gZ2V0U2Nyb2xsUGFyZW50KGdldFBhcmVudE5vZGUoZWxlbWVudCkpO1xufVxuXG5mdW5jdGlvbiBpc09mZnNldENvbnRhaW5lcihlbGVtZW50KSB7XG4gIHZhciBub2RlTmFtZSA9IGVsZW1lbnQubm9kZU5hbWU7XG5cbiAgaWYgKG5vZGVOYW1lID09PSAnQk9EWScpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIG5vZGVOYW1lID09PSAnSFRNTCcgfHwgZWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZC5vZmZzZXRQYXJlbnQgPT09IGVsZW1lbnQ7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIHJvb3Qgbm9kZSAoZG9jdW1lbnQsIHNoYWRvd0RPTSByb290KSBvZiB0aGUgZ2l2ZW4gZWxlbWVudFxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlci5VdGlsc1xuICogQGFyZ3VtZW50IHtFbGVtZW50fSBub2RlXG4gKiBAcmV0dXJucyB7RWxlbWVudH0gcm9vdCBub2RlXG4gKi9cbmZ1bmN0aW9uIGdldFJvb3Qobm9kZSkge1xuICBpZiAobm9kZS5wYXJlbnROb2RlICE9PSBudWxsKSB7XG4gICAgcmV0dXJuIGdldFJvb3Qobm9kZS5wYXJlbnROb2RlKTtcbiAgfVxuXG4gIHJldHVybiBub2RlO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIG9mZnNldCBwYXJlbnQgb2YgdGhlIGdpdmVuIGVsZW1lbnRcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBhcmd1bWVudCB7RWxlbWVudH0gZWxlbWVudFxuICogQHJldHVybnMge0VsZW1lbnR9IG9mZnNldCBwYXJlbnRcbiAqL1xuZnVuY3Rpb24gZ2V0T2Zmc2V0UGFyZW50KGVsZW1lbnQpIHtcbiAgLy8gTk9URTogMSBET00gYWNjZXNzIGhlcmVcbiAgdmFyIG9mZnNldFBhcmVudCA9IGVsZW1lbnQgJiYgZWxlbWVudC5vZmZzZXRQYXJlbnQ7XG4gIHZhciBub2RlTmFtZSA9IG9mZnNldFBhcmVudCAmJiBvZmZzZXRQYXJlbnQubm9kZU5hbWU7XG5cbiAgaWYgKCFub2RlTmFtZSB8fCBub2RlTmFtZSA9PT0gJ0JPRFknIHx8IG5vZGVOYW1lID09PSAnSFRNTCcpIHtcbiAgICByZXR1cm4gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgfVxuXG4gIHJldHVybiBvZmZzZXRQYXJlbnQ7XG59XG5cbi8qKlxuICogRmluZHMgdGhlIG9mZnNldCBwYXJlbnQgY29tbW9uIHRvIHRoZSB0d28gcHJvdmlkZWQgbm9kZXNcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBhcmd1bWVudCB7RWxlbWVudH0gZWxlbWVudDFcbiAqIEBhcmd1bWVudCB7RWxlbWVudH0gZWxlbWVudDJcbiAqIEByZXR1cm5zIHtFbGVtZW50fSBjb21tb24gb2Zmc2V0IHBhcmVudFxuICovXG5mdW5jdGlvbiBmaW5kQ29tbW9uT2Zmc2V0UGFyZW50KGVsZW1lbnQxLCBlbGVtZW50Mikge1xuICAvLyBUaGlzIGNoZWNrIGlzIG5lZWRlZCB0byBhdm9pZCBlcnJvcnMgaW4gY2FzZSBvbmUgb2YgdGhlIGVsZW1lbnRzIGlzbid0IGRlZmluZWQgZm9yIGFueSByZWFzb25cbiAgaWYgKCFlbGVtZW50MSB8fCAhZWxlbWVudDEubm9kZVR5cGUgfHwgIWVsZW1lbnQyIHx8ICFlbGVtZW50Mi5ub2RlVHlwZSkge1xuICAgIHJldHVybiB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICB9XG5cbiAgLy8gSGVyZSB3ZSBtYWtlIHN1cmUgdG8gZ2l2ZSBhcyBcInN0YXJ0XCIgdGhlIGVsZW1lbnQgdGhhdCBjb21lcyBmaXJzdCBpbiB0aGUgRE9NXG4gIHZhciBvcmRlciA9IGVsZW1lbnQxLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGVsZW1lbnQyKSAmIE5vZGUuRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HO1xuICB2YXIgc3RhcnQgPSBvcmRlciA/IGVsZW1lbnQxIDogZWxlbWVudDI7XG4gIHZhciBlbmQgPSBvcmRlciA/IGVsZW1lbnQyIDogZWxlbWVudDE7XG5cbiAgLy8gR2V0IGNvbW1vbiBhbmNlc3RvciBjb250YWluZXJcbiAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtcbiAgcmFuZ2Uuc2V0U3RhcnQoc3RhcnQsIDApO1xuICByYW5nZS5zZXRFbmQoZW5kLCAwKTtcbiAgdmFyIGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyID0gcmFuZ2UuY29tbW9uQW5jZXN0b3JDb250YWluZXI7XG5cbiAgLy8gQm90aCBub2RlcyBhcmUgaW5zaWRlICNkb2N1bWVudFxuXG4gIGlmIChlbGVtZW50MSAhPT0gY29tbW9uQW5jZXN0b3JDb250YWluZXIgJiYgZWxlbWVudDIgIT09IGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyIHx8IHN0YXJ0LmNvbnRhaW5zKGVuZCkpIHtcbiAgICBpZiAoaXNPZmZzZXRDb250YWluZXIoY29tbW9uQW5jZXN0b3JDb250YWluZXIpKSB7XG4gICAgICByZXR1cm4gY29tbW9uQW5jZXN0b3JDb250YWluZXI7XG4gICAgfVxuXG4gICAgcmV0dXJuIGdldE9mZnNldFBhcmVudChjb21tb25BbmNlc3RvckNvbnRhaW5lcik7XG4gIH1cblxuICAvLyBvbmUgb2YgdGhlIG5vZGVzIGlzIGluc2lkZSBzaGFkb3dET00sIGZpbmQgd2hpY2ggb25lXG4gIHZhciBlbGVtZW50MXJvb3QgPSBnZXRSb290KGVsZW1lbnQxKTtcbiAgaWYgKGVsZW1lbnQxcm9vdC5ob3N0KSB7XG4gICAgcmV0dXJuIGZpbmRDb21tb25PZmZzZXRQYXJlbnQoZWxlbWVudDFyb290Lmhvc3QsIGVsZW1lbnQyKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZmluZENvbW1vbk9mZnNldFBhcmVudChlbGVtZW50MSwgZ2V0Um9vdChlbGVtZW50MikuaG9zdCk7XG4gIH1cbn1cblxuLyoqXG4gKiBHZXRzIHRoZSBzY3JvbGwgdmFsdWUgb2YgdGhlIGdpdmVuIGVsZW1lbnQgaW4gdGhlIGdpdmVuIHNpZGUgKHRvcCBhbmQgbGVmdClcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBhcmd1bWVudCB7RWxlbWVudH0gZWxlbWVudFxuICogQGFyZ3VtZW50IHtTdHJpbmd9IHNpZGUgYHRvcGAgb3IgYGxlZnRgXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBhbW91bnQgb2Ygc2Nyb2xsZWQgcGl4ZWxzXG4gKi9cbmZ1bmN0aW9uIGdldFNjcm9sbChlbGVtZW50KSB7XG4gIHZhciBzaWRlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAndG9wJztcblxuICB2YXIgdXBwZXJTaWRlID0gc2lkZSA9PT0gJ3RvcCcgPyAnc2Nyb2xsVG9wJyA6ICdzY3JvbGxMZWZ0JztcbiAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZTtcblxuICBpZiAobm9kZU5hbWUgPT09ICdCT0RZJyB8fCBub2RlTmFtZSA9PT0gJ0hUTUwnKSB7XG4gICAgdmFyIGh0bWwgPSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgIHZhciBzY3JvbGxpbmdFbGVtZW50ID0gd2luZG93LmRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQgfHwgaHRtbDtcbiAgICByZXR1cm4gc2Nyb2xsaW5nRWxlbWVudFt1cHBlclNpZGVdO1xuICB9XG5cbiAgcmV0dXJuIGVsZW1lbnRbdXBwZXJTaWRlXTtcbn1cblxuLypcbiAqIFN1bSBvciBzdWJ0cmFjdCB0aGUgZWxlbWVudCBzY3JvbGwgdmFsdWVzIChsZWZ0IGFuZCB0b3ApIGZyb20gYSBnaXZlbiByZWN0IG9iamVjdFxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlci5VdGlsc1xuICogQHBhcmFtIHtPYmplY3R9IHJlY3QgLSBSZWN0IG9iamVjdCB5b3Ugd2FudCB0byBjaGFuZ2VcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgLSBUaGUgZWxlbWVudCBmcm9tIHRoZSBmdW5jdGlvbiByZWFkcyB0aGUgc2Nyb2xsIHZhbHVlc1xuICogQHBhcmFtIHtCb29sZWFufSBzdWJ0cmFjdCAtIHNldCB0byB0cnVlIGlmIHlvdSB3YW50IHRvIHN1YnRyYWN0IHRoZSBzY3JvbGwgdmFsdWVzXG4gKiBAcmV0dXJuIHtPYmplY3R9IHJlY3QgLSBUaGUgbW9kaWZpZXIgcmVjdCBvYmplY3RcbiAqL1xuZnVuY3Rpb24gaW5jbHVkZVNjcm9sbChyZWN0LCBlbGVtZW50KSB7XG4gIHZhciBzdWJ0cmFjdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogZmFsc2U7XG5cbiAgdmFyIHNjcm9sbFRvcCA9IGdldFNjcm9sbChlbGVtZW50LCAndG9wJyk7XG4gIHZhciBzY3JvbGxMZWZ0ID0gZ2V0U2Nyb2xsKGVsZW1lbnQsICdsZWZ0Jyk7XG4gIHZhciBtb2RpZmllciA9IHN1YnRyYWN0ID8gLTEgOiAxO1xuICByZWN0LnRvcCArPSBzY3JvbGxUb3AgKiBtb2RpZmllcjtcbiAgcmVjdC5ib3R0b20gKz0gc2Nyb2xsVG9wICogbW9kaWZpZXI7XG4gIHJlY3QubGVmdCArPSBzY3JvbGxMZWZ0ICogbW9kaWZpZXI7XG4gIHJlY3QucmlnaHQgKz0gc2Nyb2xsTGVmdCAqIG1vZGlmaWVyO1xuICByZXR1cm4gcmVjdDtcbn1cblxuLypcbiAqIEhlbHBlciB0byBkZXRlY3QgYm9yZGVycyBvZiBhIGdpdmVuIGVsZW1lbnRcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBwYXJhbSB7Q1NTU3R5bGVEZWNsYXJhdGlvbn0gc3R5bGVzXG4gKiBSZXN1bHQgb2YgYGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eWAgb24gdGhlIGdpdmVuIGVsZW1lbnRcbiAqIEBwYXJhbSB7U3RyaW5nfSBheGlzIC0gYHhgIG9yIGB5YFxuICogQHJldHVybiB7bnVtYmVyfSBib3JkZXJzIC0gVGhlIGJvcmRlcnMgc2l6ZSBvZiB0aGUgZ2l2ZW4gYXhpc1xuICovXG5cbmZ1bmN0aW9uIGdldEJvcmRlcnNTaXplKHN0eWxlcywgYXhpcykge1xuICB2YXIgc2lkZUEgPSBheGlzID09PSAneCcgPyAnTGVmdCcgOiAnVG9wJztcbiAgdmFyIHNpZGVCID0gc2lkZUEgPT09ICdMZWZ0JyA/ICdSaWdodCcgOiAnQm90dG9tJztcblxuICByZXR1cm4gK3N0eWxlc1snYm9yZGVyJyArIHNpZGVBICsgJ1dpZHRoJ10uc3BsaXQoJ3B4JylbMF0gKyArc3R5bGVzWydib3JkZXInICsgc2lkZUIgKyAnV2lkdGgnXS5zcGxpdCgncHgnKVswXTtcbn1cblxuZnVuY3Rpb24gZ2V0V2luZG93U2l6ZXMoKSB7XG4gIHZhciBib2R5ID0gd2luZG93LmRvY3VtZW50LmJvZHk7XG4gIHZhciBodG1sID0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgcmV0dXJuIHtcbiAgICBoZWlnaHQ6IE1hdGgubWF4KGJvZHkuc2Nyb2xsSGVpZ2h0LCBib2R5Lm9mZnNldEhlaWdodCwgaHRtbC5jbGllbnRIZWlnaHQsIGh0bWwuc2Nyb2xsSGVpZ2h0LCBodG1sLm9mZnNldEhlaWdodCksXG4gICAgd2lkdGg6IE1hdGgubWF4KGJvZHkuc2Nyb2xsV2lkdGgsIGJvZHkub2Zmc2V0V2lkdGgsIGh0bWwuY2xpZW50V2lkdGgsIGh0bWwuc2Nyb2xsV2lkdGgsIGh0bWwub2Zmc2V0V2lkdGgpXG4gIH07XG59XG5cbnZhciBjbGFzc0NhbGxDaGVjayA9IGZ1bmN0aW9uIChpbnN0YW5jZSwgQ29uc3RydWN0b3IpIHtcbiAgaWYgKCEoaW5zdGFuY2UgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvcikpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uXCIpO1xuICB9XG59O1xuXG5cblxuXG5cblxuXG52YXIgZGVmaW5lUHJvcGVydHkgPSBmdW5jdGlvbiAob2JqLCBrZXksIHZhbHVlKSB7XG4gIGlmIChrZXkgaW4gb2JqKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwga2V5LCB7XG4gICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgd3JpdGFibGU6IHRydWVcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICBvYmpba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG9iajtcbn07XG5cbnZhciBfZXh0ZW5kcyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24gKHRhcmdldCkge1xuICBmb3IgKHZhciBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07XG5cbiAgICBmb3IgKHZhciBrZXkgaW4gc291cmNlKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHNvdXJjZSwga2V5KSkge1xuICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0YXJnZXQ7XG59O1xuXG4vKipcbiAqIEdpdmVuIGVsZW1lbnQgb2Zmc2V0cywgZ2VuZXJhdGUgYW4gb3V0cHV0IHNpbWlsYXIgdG8gZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge09iamVjdH0gb2Zmc2V0c1xuICogQHJldHVybnMge09iamVjdH0gQ2xpZW50UmVjdCBsaWtlIG91dHB1dFxuICovXG5mdW5jdGlvbiBnZXRDbGllbnRSZWN0KG9mZnNldHMpIHtcbiAgcmV0dXJuIF9leHRlbmRzKHt9LCBvZmZzZXRzLCB7XG4gICAgcmlnaHQ6IG9mZnNldHMubGVmdCArIG9mZnNldHMud2lkdGgsXG4gICAgYm90dG9tOiBvZmZzZXRzLnRvcCArIG9mZnNldHMuaGVpZ2h0XG4gIH0pO1xufVxuXG4vKipcbiAqIFRlbGxzIGlmIHlvdSBhcmUgcnVubmluZyBJbnRlcm5ldCBFeHBsb3JlciAxMFxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlci5VdGlsc1xuICogQHJldHVybnMge0Jvb2xlYW59IGlzSUUxMFxuICovXG52YXIgaXNJRTEwID0gdW5kZWZpbmVkO1xuXG52YXIgaXNJRTEwJDEgPSBmdW5jdGlvbiAoKSB7XG4gIGlmIChpc0lFMTAgPT09IHVuZGVmaW5lZCkge1xuICAgIGlzSUUxMCA9IG5hdmlnYXRvci5hcHBWZXJzaW9uLmluZGV4T2YoJ01TSUUgMTAnKSAhPT0gLTE7XG4gIH1cbiAgcmV0dXJuIGlzSUUxMDtcbn07XG5cbi8qKlxuICogR2V0IGJvdW5kaW5nIGNsaWVudCByZWN0IG9mIGdpdmVuIGVsZW1lbnRcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnRcbiAqIEByZXR1cm4ge09iamVjdH0gY2xpZW50IHJlY3RcbiAqL1xuZnVuY3Rpb24gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KGVsZW1lbnQpIHtcbiAgdmFyIHJlY3QgPSB7fTtcblxuICAvLyBJRTEwIDEwIEZJWDogUGxlYXNlLCBkb24ndCBhc2ssIHRoZSBlbGVtZW50IGlzbid0XG4gIC8vIGNvbnNpZGVyZWQgaW4gRE9NIGluIHNvbWUgY2lyY3Vtc3RhbmNlcy4uLlxuICAvLyBUaGlzIGlzbid0IHJlcHJvZHVjaWJsZSBpbiBJRTEwIGNvbXBhdGliaWxpdHkgbW9kZSBvZiBJRTExXG4gIGlmIChpc0lFMTAkMSgpKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgdmFyIHNjcm9sbFRvcCA9IGdldFNjcm9sbChlbGVtZW50LCAndG9wJyk7XG4gICAgICB2YXIgc2Nyb2xsTGVmdCA9IGdldFNjcm9sbChlbGVtZW50LCAnbGVmdCcpO1xuICAgICAgcmVjdC50b3AgKz0gc2Nyb2xsVG9wO1xuICAgICAgcmVjdC5sZWZ0ICs9IHNjcm9sbExlZnQ7XG4gICAgICByZWN0LmJvdHRvbSArPSBzY3JvbGxUb3A7XG4gICAgICByZWN0LnJpZ2h0ICs9IHNjcm9sbExlZnQ7XG4gICAgfSBjYXRjaCAoZXJyKSB7fVxuICB9IGVsc2Uge1xuICAgIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgdmFyIHJlc3VsdCA9IHtcbiAgICBsZWZ0OiByZWN0LmxlZnQsXG4gICAgdG9wOiByZWN0LnRvcCxcbiAgICB3aWR0aDogcmVjdC5yaWdodCAtIHJlY3QubGVmdCxcbiAgICBoZWlnaHQ6IHJlY3QuYm90dG9tIC0gcmVjdC50b3BcbiAgfTtcblxuICAvLyBzdWJ0cmFjdCBzY3JvbGxiYXIgc2l6ZSBmcm9tIHNpemVzXG4gIHZhciBzaXplcyA9IGVsZW1lbnQubm9kZU5hbWUgPT09ICdIVE1MJyA/IGdldFdpbmRvd1NpemVzKCkgOiB7fTtcbiAgdmFyIHdpZHRoID0gc2l6ZXMud2lkdGggfHwgZWxlbWVudC5jbGllbnRXaWR0aCB8fCByZXN1bHQucmlnaHQgLSByZXN1bHQubGVmdDtcbiAgdmFyIGhlaWdodCA9IHNpemVzLmhlaWdodCB8fCBlbGVtZW50LmNsaWVudEhlaWdodCB8fCByZXN1bHQuYm90dG9tIC0gcmVzdWx0LnRvcDtcblxuICB2YXIgaG9yaXpTY3JvbGxiYXIgPSBlbGVtZW50Lm9mZnNldFdpZHRoIC0gd2lkdGg7XG4gIHZhciB2ZXJ0U2Nyb2xsYmFyID0gZWxlbWVudC5vZmZzZXRIZWlnaHQgLSBoZWlnaHQ7XG5cbiAgLy8gaWYgYW4gaHlwb3RoZXRpY2FsIHNjcm9sbGJhciBpcyBkZXRlY3RlZCwgd2UgbXVzdCBiZSBzdXJlIGl0J3Mgbm90IGEgYGJvcmRlcmBcbiAgLy8gd2UgbWFrZSB0aGlzIGNoZWNrIGNvbmRpdGlvbmFsIGZvciBwZXJmb3JtYW5jZSByZWFzb25zXG4gIGlmIChob3JpelNjcm9sbGJhciB8fCB2ZXJ0U2Nyb2xsYmFyKSB7XG4gICAgdmFyIHN0eWxlcyA9IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eShlbGVtZW50KTtcbiAgICBob3JpelNjcm9sbGJhciAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd4Jyk7XG4gICAgdmVydFNjcm9sbGJhciAtPSBnZXRCb3JkZXJzU2l6ZShzdHlsZXMsICd5Jyk7XG5cbiAgICByZXN1bHQud2lkdGggLT0gaG9yaXpTY3JvbGxiYXI7XG4gICAgcmVzdWx0LmhlaWdodCAtPSB2ZXJ0U2Nyb2xsYmFyO1xuICB9XG5cbiAgcmV0dXJuIGdldENsaWVudFJlY3QocmVzdWx0KTtcbn1cblxuZnVuY3Rpb24gZ2V0T2Zmc2V0UmVjdFJlbGF0aXZlVG9BcmJpdHJhcnlOb2RlKGNoaWxkcmVuLCBwYXJlbnQpIHtcbiAgdmFyIGlzSUUxMCA9IGlzSUUxMCQxKCk7XG4gIHZhciBpc0hUTUwgPSBwYXJlbnQubm9kZU5hbWUgPT09ICdIVE1MJztcbiAgdmFyIGNoaWxkcmVuUmVjdCA9IGdldEJvdW5kaW5nQ2xpZW50UmVjdChjaGlsZHJlbik7XG4gIHZhciBwYXJlbnRSZWN0ID0gZ2V0Qm91bmRpbmdDbGllbnRSZWN0KHBhcmVudCk7XG4gIHZhciBzY3JvbGxQYXJlbnQgPSBnZXRTY3JvbGxQYXJlbnQoY2hpbGRyZW4pO1xuICB2YXIgb2Zmc2V0cyA9IGdldENsaWVudFJlY3Qoe1xuICAgIHRvcDogY2hpbGRyZW5SZWN0LnRvcCAtIHBhcmVudFJlY3QudG9wLFxuICAgIGxlZnQ6IGNoaWxkcmVuUmVjdC5sZWZ0IC0gcGFyZW50UmVjdC5sZWZ0LFxuICAgIHdpZHRoOiBjaGlsZHJlblJlY3Qud2lkdGgsXG4gICAgaGVpZ2h0OiBjaGlsZHJlblJlY3QuaGVpZ2h0XG4gIH0pO1xuXG4gIC8vIFN1YnRyYWN0IG1hcmdpbnMgb2YgZG9jdW1lbnRFbGVtZW50IGluIGNhc2UgaXQncyBiZWluZyB1c2VkIGFzIHBhcmVudFxuICAvLyB3ZSBkbyB0aGlzIG9ubHkgb24gSFRNTCBiZWNhdXNlIGl0J3MgdGhlIG9ubHkgZWxlbWVudCB0aGF0IGJlaGF2ZXNcbiAgLy8gZGlmZmVyZW50bHkgd2hlbiBtYXJnaW5zIGFyZSBhcHBsaWVkIHRvIGl0LiBUaGUgbWFyZ2lucyBhcmUgaW5jbHVkZWQgaW5cbiAgLy8gdGhlIGJveCBvZiB0aGUgZG9jdW1lbnRFbGVtZW50LCBpbiB0aGUgb3RoZXIgY2FzZXMgbm90LlxuICBpZiAoaXNIVE1MIHx8IHBhcmVudC5ub2RlTmFtZSA9PT0gJ0JPRFknKSB7XG4gICAgdmFyIHN0eWxlcyA9IGdldFN0eWxlQ29tcHV0ZWRQcm9wZXJ0eShwYXJlbnQpO1xuICAgIHZhciBib3JkZXJUb3BXaWR0aCA9IGlzSUUxMCAmJiBpc0hUTUwgPyAwIDogK3N0eWxlcy5ib3JkZXJUb3BXaWR0aC5zcGxpdCgncHgnKVswXTtcbiAgICB2YXIgYm9yZGVyTGVmdFdpZHRoID0gaXNJRTEwICYmIGlzSFRNTCA/IDAgOiArc3R5bGVzLmJvcmRlckxlZnRXaWR0aC5zcGxpdCgncHgnKVswXTtcbiAgICB2YXIgbWFyZ2luVG9wID0gaXNJRTEwICYmIGlzSFRNTCA/IDAgOiArc3R5bGVzLm1hcmdpblRvcC5zcGxpdCgncHgnKVswXTtcbiAgICB2YXIgbWFyZ2luTGVmdCA9IGlzSUUxMCAmJiBpc0hUTUwgPyAwIDogK3N0eWxlcy5tYXJnaW5MZWZ0LnNwbGl0KCdweCcpWzBdO1xuXG4gICAgb2Zmc2V0cy50b3AgLT0gYm9yZGVyVG9wV2lkdGggLSBtYXJnaW5Ub3A7XG4gICAgb2Zmc2V0cy5ib3R0b20gLT0gYm9yZGVyVG9wV2lkdGggLSBtYXJnaW5Ub3A7XG4gICAgb2Zmc2V0cy5sZWZ0IC09IGJvcmRlckxlZnRXaWR0aCAtIG1hcmdpbkxlZnQ7XG4gICAgb2Zmc2V0cy5yaWdodCAtPSBib3JkZXJMZWZ0V2lkdGggLSBtYXJnaW5MZWZ0O1xuXG4gICAgLy8gQXR0YWNoIG1hcmdpblRvcCBhbmQgbWFyZ2luTGVmdCBiZWNhdXNlIGluIHNvbWUgY2lyY3Vtc3RhbmNlcyB3ZSBtYXkgbmVlZCB0aGVtXG4gICAgb2Zmc2V0cy5tYXJnaW5Ub3AgPSBtYXJnaW5Ub3A7XG4gICAgb2Zmc2V0cy5tYXJnaW5MZWZ0ID0gbWFyZ2luTGVmdDtcbiAgfVxuXG4gIGlmIChwYXJlbnQuY29udGFpbnMoc2Nyb2xsUGFyZW50KSAmJiAoaXNJRTEwIHx8IHNjcm9sbFBhcmVudC5ub2RlTmFtZSAhPT0gJ0JPRFknKSkge1xuICAgIG9mZnNldHMgPSBpbmNsdWRlU2Nyb2xsKG9mZnNldHMsIHBhcmVudCk7XG4gIH1cblxuICByZXR1cm4gb2Zmc2V0cztcbn1cblxuZnVuY3Rpb24gZ2V0Vmlld3BvcnRPZmZzZXRSZWN0UmVsYXRpdmVUb0FydGJpdHJhcnlOb2RlKGVsZW1lbnQpIHtcbiAgdmFyIGh0bWwgPSB3aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICB2YXIgcmVsYXRpdmVPZmZzZXQgPSBnZXRPZmZzZXRSZWN0UmVsYXRpdmVUb0FyYml0cmFyeU5vZGUoZWxlbWVudCwgaHRtbCk7XG4gIHZhciB3aWR0aCA9IE1hdGgubWF4KGh0bWwuY2xpZW50V2lkdGgsIHdpbmRvdy5pbm5lcldpZHRoIHx8IDApO1xuICB2YXIgaGVpZ2h0ID0gTWF0aC5tYXgoaHRtbC5jbGllbnRIZWlnaHQsIHdpbmRvdy5pbm5lckhlaWdodCB8fCAwKTtcblxuICB2YXIgc2Nyb2xsVG9wID0gZ2V0U2Nyb2xsKGh0bWwpO1xuICB2YXIgc2Nyb2xsTGVmdCA9IGdldFNjcm9sbChodG1sLCAnbGVmdCcpO1xuXG4gIHZhciBvZmZzZXQgPSB7XG4gICAgdG9wOiBzY3JvbGxUb3AgLSByZWxhdGl2ZU9mZnNldC50b3AgKyByZWxhdGl2ZU9mZnNldC5tYXJnaW5Ub3AsXG4gICAgbGVmdDogc2Nyb2xsTGVmdCAtIHJlbGF0aXZlT2Zmc2V0LmxlZnQgKyByZWxhdGl2ZU9mZnNldC5tYXJnaW5MZWZ0LFxuICAgIHdpZHRoOiB3aWR0aCxcbiAgICBoZWlnaHQ6IGhlaWdodFxuICB9O1xuXG4gIHJldHVybiBnZXRDbGllbnRSZWN0KG9mZnNldCk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGdpdmVuIGVsZW1lbnQgaXMgZml4ZWQgb3IgaXMgaW5zaWRlIGEgZml4ZWQgcGFyZW50XG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge0VsZW1lbnR9IGVsZW1lbnRcbiAqIEBhcmd1bWVudCB7RWxlbWVudH0gY3VzdG9tQ29udGFpbmVyXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gYW5zd2VyIHRvIFwiaXNGaXhlZD9cIlxuICovXG5mdW5jdGlvbiBpc0ZpeGVkKGVsZW1lbnQpIHtcbiAgdmFyIG5vZGVOYW1lID0gZWxlbWVudC5ub2RlTmFtZTtcbiAgaWYgKG5vZGVOYW1lID09PSAnQk9EWScgfHwgbm9kZU5hbWUgPT09ICdIVE1MJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBpZiAoZ2V0U3R5bGVDb21wdXRlZFByb3BlcnR5KGVsZW1lbnQsICdwb3NpdGlvbicpID09PSAnZml4ZWQnKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgcmV0dXJuIGlzRml4ZWQoZ2V0UGFyZW50Tm9kZShlbGVtZW50KSk7XG59XG5cbi8qKlxuICogQ29tcHV0ZWQgdGhlIGJvdW5kYXJpZXMgbGltaXRzIGFuZCByZXR1cm4gdGhlbVxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlci5VdGlsc1xuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gcG9wcGVyXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSByZWZlcmVuY2VcbiAqIEBwYXJhbSB7bnVtYmVyfSBwYWRkaW5nXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBib3VuZGFyaWVzRWxlbWVudCAtIEVsZW1lbnQgdXNlZCB0byBkZWZpbmUgdGhlIGJvdW5kYXJpZXNcbiAqIEByZXR1cm5zIHtPYmplY3R9IENvb3JkaW5hdGVzIG9mIHRoZSBib3VuZGFyaWVzXG4gKi9cbmZ1bmN0aW9uIGdldEJvdW5kYXJpZXMocG9wcGVyLCByZWZlcmVuY2UsIHBhZGRpbmcsIGJvdW5kYXJpZXNFbGVtZW50KSB7XG4gIC8vIE5PVEU6IDEgRE9NIGFjY2VzcyBoZXJlXG4gIHZhciBib3VuZGFyaWVzID0geyB0b3A6IDAsIGxlZnQ6IDAgfTtcbiAgdmFyIG9mZnNldFBhcmVudCA9IGZpbmRDb21tb25PZmZzZXRQYXJlbnQocG9wcGVyLCByZWZlcmVuY2UpO1xuXG4gIC8vIEhhbmRsZSB2aWV3cG9ydCBjYXNlXG4gIGlmIChib3VuZGFyaWVzRWxlbWVudCA9PT0gJ3ZpZXdwb3J0Jykge1xuICAgIGJvdW5kYXJpZXMgPSBnZXRWaWV3cG9ydE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJ0Yml0cmFyeU5vZGUob2Zmc2V0UGFyZW50KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBIYW5kbGUgb3RoZXIgY2FzZXMgYmFzZWQgb24gRE9NIGVsZW1lbnQgdXNlZCBhcyBib3VuZGFyaWVzXG4gICAgdmFyIGJvdW5kYXJpZXNOb2RlID0gdm9pZCAwO1xuICAgIGlmIChib3VuZGFyaWVzRWxlbWVudCA9PT0gJ3Njcm9sbFBhcmVudCcpIHtcbiAgICAgIGJvdW5kYXJpZXNOb2RlID0gZ2V0U2Nyb2xsUGFyZW50KGdldFBhcmVudE5vZGUocG9wcGVyKSk7XG4gICAgICBpZiAoYm91bmRhcmllc05vZGUubm9kZU5hbWUgPT09ICdCT0RZJykge1xuICAgICAgICBib3VuZGFyaWVzTm9kZSA9IHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChib3VuZGFyaWVzRWxlbWVudCA9PT0gJ3dpbmRvdycpIHtcbiAgICAgIGJvdW5kYXJpZXNOb2RlID0gd2luZG93LmRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICB9IGVsc2Uge1xuICAgICAgYm91bmRhcmllc05vZGUgPSBib3VuZGFyaWVzRWxlbWVudDtcbiAgICB9XG5cbiAgICB2YXIgb2Zmc2V0cyA9IGdldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZShib3VuZGFyaWVzTm9kZSwgb2Zmc2V0UGFyZW50KTtcblxuICAgIC8vIEluIGNhc2Ugb2YgSFRNTCwgd2UgbmVlZCBhIGRpZmZlcmVudCBjb21wdXRhdGlvblxuICAgIGlmIChib3VuZGFyaWVzTm9kZS5ub2RlTmFtZSA9PT0gJ0hUTUwnICYmICFpc0ZpeGVkKG9mZnNldFBhcmVudCkpIHtcbiAgICAgIHZhciBfZ2V0V2luZG93U2l6ZXMgPSBnZXRXaW5kb3dTaXplcygpLFxuICAgICAgICAgIGhlaWdodCA9IF9nZXRXaW5kb3dTaXplcy5oZWlnaHQsXG4gICAgICAgICAgd2lkdGggPSBfZ2V0V2luZG93U2l6ZXMud2lkdGg7XG5cbiAgICAgIGJvdW5kYXJpZXMudG9wICs9IG9mZnNldHMudG9wIC0gb2Zmc2V0cy5tYXJnaW5Ub3A7XG4gICAgICBib3VuZGFyaWVzLmJvdHRvbSA9IGhlaWdodCArIG9mZnNldHMudG9wO1xuICAgICAgYm91bmRhcmllcy5sZWZ0ICs9IG9mZnNldHMubGVmdCAtIG9mZnNldHMubWFyZ2luTGVmdDtcbiAgICAgIGJvdW5kYXJpZXMucmlnaHQgPSB3aWR0aCArIG9mZnNldHMubGVmdDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gZm9yIGFsbCB0aGUgb3RoZXIgRE9NIGVsZW1lbnRzLCB0aGlzIG9uZSBpcyBnb29kXG4gICAgICBib3VuZGFyaWVzID0gb2Zmc2V0cztcbiAgICB9XG4gIH1cblxuICAvLyBBZGQgcGFkZGluZ3NcbiAgYm91bmRhcmllcy5sZWZ0ICs9IHBhZGRpbmc7XG4gIGJvdW5kYXJpZXMudG9wICs9IHBhZGRpbmc7XG4gIGJvdW5kYXJpZXMucmlnaHQgLT0gcGFkZGluZztcbiAgYm91bmRhcmllcy5ib3R0b20gLT0gcGFkZGluZztcblxuICByZXR1cm4gYm91bmRhcmllcztcbn1cblxuLyoqXG4gKiBVdGlsaXR5IHVzZWQgdG8gdHJhbnNmb3JtIHRoZSBgYXV0b2AgcGxhY2VtZW50IHRvIHRoZSBwbGFjZW1lbnQgd2l0aCBtb3JlXG4gKiBhdmFpbGFibGUgc3BhY2UuXG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge09iamVjdH0gZGF0YSAtIFRoZSBkYXRhIG9iamVjdCBnZW5lcmF0ZWQgYnkgdXBkYXRlIG1ldGhvZFxuICogQGFyZ3VtZW50IHtPYmplY3R9IG9wdGlvbnMgLSBNb2RpZmllcnMgY29uZmlndXJhdGlvbiBhbmQgb3B0aW9uc1xuICogQHJldHVybnMge09iamVjdH0gVGhlIGRhdGEgb2JqZWN0LCBwcm9wZXJseSBtb2RpZmllZFxuICovXG5mdW5jdGlvbiBjb21wdXRlQXV0b1BsYWNlbWVudChwbGFjZW1lbnQsIHJlZlJlY3QsIHBvcHBlciwgcmVmZXJlbmNlLCBib3VuZGFyaWVzRWxlbWVudCkge1xuICBpZiAocGxhY2VtZW50LmluZGV4T2YoJ2F1dG8nKSA9PT0gLTEpIHtcbiAgICByZXR1cm4gcGxhY2VtZW50O1xuICB9XG5cbiAgdmFyIGJvdW5kYXJpZXMgPSBnZXRCb3VuZGFyaWVzKHBvcHBlciwgcmVmZXJlbmNlLCAwLCBib3VuZGFyaWVzRWxlbWVudCk7XG5cbiAgdmFyIHNpZGVzID0ge1xuICAgIHRvcDogcmVmUmVjdC50b3AgLSBib3VuZGFyaWVzLnRvcCxcbiAgICByaWdodDogYm91bmRhcmllcy5yaWdodCAtIHJlZlJlY3QucmlnaHQsXG4gICAgYm90dG9tOiBib3VuZGFyaWVzLmJvdHRvbSAtIHJlZlJlY3QuYm90dG9tLFxuICAgIGxlZnQ6IHJlZlJlY3QubGVmdCAtIGJvdW5kYXJpZXMubGVmdFxuICB9O1xuXG4gIHZhciBjb21wdXRlZFBsYWNlbWVudCA9IE9iamVjdC5rZXlzKHNpZGVzKS5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIHNpZGVzW2JdIC0gc2lkZXNbYV07XG4gIH0pWzBdO1xuICB2YXIgdmFyaWF0aW9uID0gcGxhY2VtZW50LnNwbGl0KCctJylbMV07XG5cbiAgcmV0dXJuIGNvbXB1dGVkUGxhY2VtZW50ICsgKHZhcmlhdGlvbiA/ICctJyArIHZhcmlhdGlvbiA6ICcnKTtcbn1cblxuLyoqXG4gKiBHZXQgb2Zmc2V0cyB0byB0aGUgcmVmZXJlbmNlIGVsZW1lbnRcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBwYXJhbSB7T2JqZWN0fSBzdGF0ZVxuICogQHBhcmFtIHtFbGVtZW50fSBwb3BwZXIgLSB0aGUgcG9wcGVyIGVsZW1lbnRcbiAqIEBwYXJhbSB7RWxlbWVudH0gcmVmZXJlbmNlIC0gdGhlIHJlZmVyZW5jZSBlbGVtZW50ICh0aGUgcG9wcGVyIHdpbGwgYmUgcmVsYXRpdmUgdG8gdGhpcylcbiAqIEByZXR1cm5zIHtPYmplY3R9IEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBvZmZzZXRzIHdoaWNoIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgcG9wcGVyXG4gKi9cbmZ1bmN0aW9uIGdldFJlZmVyZW5jZU9mZnNldHMoc3RhdGUsIHBvcHBlciwgcmVmZXJlbmNlKSB7XG4gIHZhciBjb21tb25PZmZzZXRQYXJlbnQgPSBmaW5kQ29tbW9uT2Zmc2V0UGFyZW50KHBvcHBlciwgcmVmZXJlbmNlKTtcbiAgcmV0dXJuIGdldE9mZnNldFJlY3RSZWxhdGl2ZVRvQXJiaXRyYXJ5Tm9kZShyZWZlcmVuY2UsIGNvbW1vbk9mZnNldFBhcmVudCk7XG59XG5cbi8qKlxuICogR2V0IHRoZSBvdXRlciBzaXplcyBvZiB0aGUgZ2l2ZW4gZWxlbWVudCAob2Zmc2V0IHNpemUgKyBtYXJnaW5zKVxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlci5VdGlsc1xuICogQGFyZ3VtZW50IHtFbGVtZW50fSBlbGVtZW50XG4gKiBAcmV0dXJucyB7T2JqZWN0fSBvYmplY3QgY29udGFpbmluZyB3aWR0aCBhbmQgaGVpZ2h0IHByb3BlcnRpZXNcbiAqL1xuZnVuY3Rpb24gZ2V0T3V0ZXJTaXplcyhlbGVtZW50KSB7XG4gIHZhciBzdHlsZXMgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KTtcbiAgdmFyIHggPSBwYXJzZUZsb2F0KHN0eWxlcy5tYXJnaW5Ub3ApICsgcGFyc2VGbG9hdChzdHlsZXMubWFyZ2luQm90dG9tKTtcbiAgdmFyIHkgPSBwYXJzZUZsb2F0KHN0eWxlcy5tYXJnaW5MZWZ0KSArIHBhcnNlRmxvYXQoc3R5bGVzLm1hcmdpblJpZ2h0KTtcbiAgdmFyIHJlc3VsdCA9IHtcbiAgICB3aWR0aDogZWxlbWVudC5vZmZzZXRXaWR0aCArIHksXG4gICAgaGVpZ2h0OiBlbGVtZW50Lm9mZnNldEhlaWdodCArIHhcbiAgfTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG9wcG9zaXRlIHBsYWNlbWVudCBvZiB0aGUgZ2l2ZW4gb25lXG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge1N0cmluZ30gcGxhY2VtZW50XG4gKiBAcmV0dXJucyB7U3RyaW5nfSBmbGlwcGVkIHBsYWNlbWVudFxuICovXG5mdW5jdGlvbiBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpIHtcbiAgdmFyIGhhc2ggPSB7IGxlZnQ6ICdyaWdodCcsIHJpZ2h0OiAnbGVmdCcsIGJvdHRvbTogJ3RvcCcsIHRvcDogJ2JvdHRvbScgfTtcbiAgcmV0dXJuIHBsYWNlbWVudC5yZXBsYWNlKC9sZWZ0fHJpZ2h0fGJvdHRvbXx0b3AvZywgZnVuY3Rpb24gKG1hdGNoZWQpIHtcbiAgICByZXR1cm4gaGFzaFttYXRjaGVkXTtcbiAgfSk7XG59XG5cbi8qKlxuICogR2V0IG9mZnNldHMgdG8gdGhlIHBvcHBlclxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlci5VdGlsc1xuICogQHBhcmFtIHtPYmplY3R9IHBvc2l0aW9uIC0gQ1NTIHBvc2l0aW9uIHRoZSBQb3BwZXIgd2lsbCBnZXQgYXBwbGllZFxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gcG9wcGVyIC0gdGhlIHBvcHBlciBlbGVtZW50XG4gKiBAcGFyYW0ge09iamVjdH0gcmVmZXJlbmNlT2Zmc2V0cyAtIHRoZSByZWZlcmVuY2Ugb2Zmc2V0cyAodGhlIHBvcHBlciB3aWxsIGJlIHJlbGF0aXZlIHRvIHRoaXMpXG4gKiBAcGFyYW0ge1N0cmluZ30gcGxhY2VtZW50IC0gb25lIG9mIHRoZSB2YWxpZCBwbGFjZW1lbnQgb3B0aW9uc1xuICogQHJldHVybnMge09iamVjdH0gcG9wcGVyT2Zmc2V0cyAtIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBvZmZzZXRzIHdoaWNoIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgcG9wcGVyXG4gKi9cbmZ1bmN0aW9uIGdldFBvcHBlck9mZnNldHMocG9wcGVyLCByZWZlcmVuY2VPZmZzZXRzLCBwbGFjZW1lbnQpIHtcbiAgcGxhY2VtZW50ID0gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG5cbiAgLy8gR2V0IHBvcHBlciBub2RlIHNpemVzXG4gIHZhciBwb3BwZXJSZWN0ID0gZ2V0T3V0ZXJTaXplcyhwb3BwZXIpO1xuXG4gIC8vIEFkZCBwb3NpdGlvbiwgd2lkdGggYW5kIGhlaWdodCB0byBvdXIgb2Zmc2V0cyBvYmplY3RcbiAgdmFyIHBvcHBlck9mZnNldHMgPSB7XG4gICAgd2lkdGg6IHBvcHBlclJlY3Qud2lkdGgsXG4gICAgaGVpZ2h0OiBwb3BwZXJSZWN0LmhlaWdodFxuICB9O1xuXG4gIC8vIGRlcGVuZGluZyBieSB0aGUgcG9wcGVyIHBsYWNlbWVudCB3ZSBoYXZlIHRvIGNvbXB1dGUgaXRzIG9mZnNldHMgc2xpZ2h0bHkgZGlmZmVyZW50bHlcbiAgdmFyIGlzSG9yaXogPSBbJ3JpZ2h0JywgJ2xlZnQnXS5pbmRleE9mKHBsYWNlbWVudCkgIT09IC0xO1xuICB2YXIgbWFpblNpZGUgPSBpc0hvcml6ID8gJ3RvcCcgOiAnbGVmdCc7XG4gIHZhciBzZWNvbmRhcnlTaWRlID0gaXNIb3JpeiA/ICdsZWZ0JyA6ICd0b3AnO1xuICB2YXIgbWVhc3VyZW1lbnQgPSBpc0hvcml6ID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICB2YXIgc2Vjb25kYXJ5TWVhc3VyZW1lbnQgPSAhaXNIb3JpeiA/ICdoZWlnaHQnIDogJ3dpZHRoJztcblxuICBwb3BwZXJPZmZzZXRzW21haW5TaWRlXSA9IHJlZmVyZW5jZU9mZnNldHNbbWFpblNpZGVdICsgcmVmZXJlbmNlT2Zmc2V0c1ttZWFzdXJlbWVudF0gLyAyIC0gcG9wcGVyUmVjdFttZWFzdXJlbWVudF0gLyAyO1xuICBpZiAocGxhY2VtZW50ID09PSBzZWNvbmRhcnlTaWRlKSB7XG4gICAgcG9wcGVyT2Zmc2V0c1tzZWNvbmRhcnlTaWRlXSA9IHJlZmVyZW5jZU9mZnNldHNbc2Vjb25kYXJ5U2lkZV0gLSBwb3BwZXJSZWN0W3NlY29uZGFyeU1lYXN1cmVtZW50XTtcbiAgfSBlbHNlIHtcbiAgICBwb3BwZXJPZmZzZXRzW3NlY29uZGFyeVNpZGVdID0gcmVmZXJlbmNlT2Zmc2V0c1tnZXRPcHBvc2l0ZVBsYWNlbWVudChzZWNvbmRhcnlTaWRlKV07XG4gIH1cblxuICByZXR1cm4gcG9wcGVyT2Zmc2V0cztcbn1cblxuLyoqXG4gKiBNaW1pY3MgdGhlIGBmaW5kYCBtZXRob2Qgb2YgQXJyYXlcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBhcmd1bWVudCB7QXJyYXl9IGFyclxuICogQGFyZ3VtZW50IHByb3BcbiAqIEBhcmd1bWVudCB2YWx1ZVxuICogQHJldHVybnMgaW5kZXggb3IgLTFcbiAqL1xuZnVuY3Rpb24gZmluZChhcnIsIGNoZWNrKSB7XG4gIC8vIHVzZSBuYXRpdmUgZmluZCBpZiBzdXBwb3J0ZWRcbiAgaWYgKEFycmF5LnByb3RvdHlwZS5maW5kKSB7XG4gICAgcmV0dXJuIGFyci5maW5kKGNoZWNrKTtcbiAgfVxuXG4gIC8vIHVzZSBgZmlsdGVyYCB0byBvYnRhaW4gdGhlIHNhbWUgYmVoYXZpb3Igb2YgYGZpbmRgXG4gIHJldHVybiBhcnIuZmlsdGVyKGNoZWNrKVswXTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gdGhlIGluZGV4IG9mIHRoZSBtYXRjaGluZyBvYmplY3RcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBhcmd1bWVudCB7QXJyYXl9IGFyclxuICogQGFyZ3VtZW50IHByb3BcbiAqIEBhcmd1bWVudCB2YWx1ZVxuICogQHJldHVybnMgaW5kZXggb3IgLTFcbiAqL1xuZnVuY3Rpb24gZmluZEluZGV4KGFyciwgcHJvcCwgdmFsdWUpIHtcbiAgLy8gdXNlIG5hdGl2ZSBmaW5kSW5kZXggaWYgc3VwcG9ydGVkXG4gIGlmIChBcnJheS5wcm90b3R5cGUuZmluZEluZGV4KSB7XG4gICAgcmV0dXJuIGFyci5maW5kSW5kZXgoZnVuY3Rpb24gKGN1cikge1xuICAgICAgcmV0dXJuIGN1cltwcm9wXSA9PT0gdmFsdWU7XG4gICAgfSk7XG4gIH1cblxuICAvLyB1c2UgYGZpbmRgICsgYGluZGV4T2ZgIGlmIGBmaW5kSW5kZXhgIGlzbid0IHN1cHBvcnRlZFxuICB2YXIgbWF0Y2ggPSBmaW5kKGFyciwgZnVuY3Rpb24gKG9iaikge1xuICAgIHJldHVybiBvYmpbcHJvcF0gPT09IHZhbHVlO1xuICB9KTtcbiAgcmV0dXJuIGFyci5pbmRleE9mKG1hdGNoKTtcbn1cblxuLyoqXG4gKiBMb29wIHRyb3VnaCB0aGUgbGlzdCBvZiBtb2RpZmllcnMgYW5kIHJ1biB0aGVtIGluIG9yZGVyLFxuICogZWFjaCBvZiB0aGVtIHdpbGwgdGhlbiBlZGl0IHRoZSBkYXRhIG9iamVjdC5cbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBwYXJhbSB7ZGF0YU9iamVjdH0gZGF0YVxuICogQHBhcmFtIHtBcnJheX0gbW9kaWZpZXJzXG4gKiBAcGFyYW0ge1N0cmluZ30gZW5kcyAtIE9wdGlvbmFsIG1vZGlmaWVyIG5hbWUgdXNlZCBhcyBzdG9wcGVyXG4gKiBAcmV0dXJucyB7ZGF0YU9iamVjdH1cbiAqL1xuZnVuY3Rpb24gcnVuTW9kaWZpZXJzKG1vZGlmaWVycywgZGF0YSwgZW5kcykge1xuICB2YXIgbW9kaWZpZXJzVG9SdW4gPSBlbmRzID09PSB1bmRlZmluZWQgPyBtb2RpZmllcnMgOiBtb2RpZmllcnMuc2xpY2UoMCwgZmluZEluZGV4KG1vZGlmaWVycywgJ25hbWUnLCBlbmRzKSk7XG5cbiAgbW9kaWZpZXJzVG9SdW4uZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXIpIHtcbiAgICBpZiAobW9kaWZpZXIuZnVuY3Rpb24pIHtcbiAgICAgIGNvbnNvbGUud2FybignYG1vZGlmaWVyLmZ1bmN0aW9uYCBpcyBkZXByZWNhdGVkLCB1c2UgYG1vZGlmaWVyLmZuYCEnKTtcbiAgICB9XG4gICAgdmFyIGZuID0gbW9kaWZpZXIuZnVuY3Rpb24gfHwgbW9kaWZpZXIuZm47XG4gICAgaWYgKG1vZGlmaWVyLmVuYWJsZWQgJiYgaXNGdW5jdGlvbihmbikpIHtcbiAgICAgIGRhdGEgPSBmbihkYXRhLCBtb2RpZmllcik7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZGF0YTtcbn1cblxuLyoqXG4gKiBVcGRhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wcGVyLCBjb21wdXRpbmcgdGhlIG5ldyBvZmZzZXRzIGFuZCBhcHBseWluZ1xuICogdGhlIG5ldyBzdHlsZS48YnIgLz5cbiAqIFByZWZlciBgc2NoZWR1bGVVcGRhdGVgIG92ZXIgYHVwZGF0ZWAgYmVjYXVzZSBvZiBwZXJmb3JtYW5jZSByZWFzb25zLlxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlclxuICovXG5mdW5jdGlvbiB1cGRhdGUoKSB7XG4gIC8vIGlmIHBvcHBlciBpcyBkZXN0cm95ZWQsIGRvbid0IHBlcmZvcm0gYW55IGZ1cnRoZXIgdXBkYXRlXG4gIGlmICh0aGlzLnN0YXRlLmlzRGVzdHJveWVkKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgdmFyIGRhdGEgPSB7XG4gICAgaW5zdGFuY2U6IHRoaXMsXG4gICAgc3R5bGVzOiB7fSxcbiAgICBhdHRyaWJ1dGVzOiB7fSxcbiAgICBmbGlwcGVkOiBmYWxzZSxcbiAgICBvZmZzZXRzOiB7fVxuICB9O1xuXG4gIC8vIGNvbXB1dGUgcmVmZXJlbmNlIGVsZW1lbnQgb2Zmc2V0c1xuICBkYXRhLm9mZnNldHMucmVmZXJlbmNlID0gZ2V0UmVmZXJlbmNlT2Zmc2V0cyh0aGlzLnN0YXRlLCB0aGlzLnBvcHBlciwgdGhpcy5yZWZlcmVuY2UpO1xuXG4gIC8vIGNvbXB1dGUgYXV0byBwbGFjZW1lbnQsIHN0b3JlIHBsYWNlbWVudCBpbnNpZGUgdGhlIGRhdGEgb2JqZWN0LFxuICAvLyBtb2RpZmllcnMgd2lsbCBiZSBhYmxlIHRvIGVkaXQgYHBsYWNlbWVudGAgaWYgbmVlZGVkXG4gIC8vIGFuZCByZWZlciB0byBvcmlnaW5hbFBsYWNlbWVudCB0byBrbm93IHRoZSBvcmlnaW5hbCB2YWx1ZVxuICBkYXRhLnBsYWNlbWVudCA9IGNvbXB1dGVBdXRvUGxhY2VtZW50KHRoaXMub3B0aW9ucy5wbGFjZW1lbnQsIGRhdGEub2Zmc2V0cy5yZWZlcmVuY2UsIHRoaXMucG9wcGVyLCB0aGlzLnJlZmVyZW5jZSwgdGhpcy5vcHRpb25zLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50KTtcblxuICAvLyBzdG9yZSB0aGUgY29tcHV0ZWQgcGxhY2VtZW50IGluc2lkZSBgb3JpZ2luYWxQbGFjZW1lbnRgXG4gIGRhdGEub3JpZ2luYWxQbGFjZW1lbnQgPSBkYXRhLnBsYWNlbWVudDtcblxuICAvLyBjb21wdXRlIHRoZSBwb3BwZXIgb2Zmc2V0c1xuICBkYXRhLm9mZnNldHMucG9wcGVyID0gZ2V0UG9wcGVyT2Zmc2V0cyh0aGlzLnBvcHBlciwgZGF0YS5vZmZzZXRzLnJlZmVyZW5jZSwgZGF0YS5wbGFjZW1lbnQpO1xuICBkYXRhLm9mZnNldHMucG9wcGVyLnBvc2l0aW9uID0gJ2Fic29sdXRlJztcblxuICAvLyBydW4gdGhlIG1vZGlmaWVyc1xuICBkYXRhID0gcnVuTW9kaWZpZXJzKHRoaXMubW9kaWZpZXJzLCBkYXRhKTtcblxuICAvLyB0aGUgZmlyc3QgYHVwZGF0ZWAgd2lsbCBjYWxsIGBvbkNyZWF0ZWAgY2FsbGJhY2tcbiAgLy8gdGhlIG90aGVyIG9uZXMgd2lsbCBjYWxsIGBvblVwZGF0ZWAgY2FsbGJhY2tcbiAgaWYgKCF0aGlzLnN0YXRlLmlzQ3JlYXRlZCkge1xuICAgIHRoaXMuc3RhdGUuaXNDcmVhdGVkID0gdHJ1ZTtcbiAgICB0aGlzLm9wdGlvbnMub25DcmVhdGUoZGF0YSk7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5vcHRpb25zLm9uVXBkYXRlKGRhdGEpO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIHVzZWQgdG8ga25vdyBpZiB0aGUgZ2l2ZW4gbW9kaWZpZXIgaXMgZW5hYmxlZC5cbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEByZXR1cm5zIHtCb29sZWFufVxuICovXG5mdW5jdGlvbiBpc01vZGlmaWVyRW5hYmxlZChtb2RpZmllcnMsIG1vZGlmaWVyTmFtZSkge1xuICByZXR1cm4gbW9kaWZpZXJzLnNvbWUoZnVuY3Rpb24gKF9yZWYpIHtcbiAgICB2YXIgbmFtZSA9IF9yZWYubmFtZSxcbiAgICAgICAgZW5hYmxlZCA9IF9yZWYuZW5hYmxlZDtcbiAgICByZXR1cm4gZW5hYmxlZCAmJiBuYW1lID09PSBtb2RpZmllck5hbWU7XG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCB0aGUgcHJlZml4ZWQgc3VwcG9ydGVkIHByb3BlcnR5IG5hbWVcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBhcmd1bWVudCB7U3RyaW5nfSBwcm9wZXJ0eSAoY2FtZWxDYXNlKVxuICogQHJldHVybnMge1N0cmluZ30gcHJlZml4ZWQgcHJvcGVydHkgKGNhbWVsQ2FzZSlcbiAqL1xuZnVuY3Rpb24gZ2V0U3VwcG9ydGVkUHJvcGVydHlOYW1lKHByb3BlcnR5KSB7XG4gIHZhciBwcmVmaXhlcyA9IFtmYWxzZSwgJ21zJywgJ3dlYmtpdCcsICdtb3onLCAnbyddO1xuICB2YXIgdXBwZXJQcm9wID0gcHJvcGVydHkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBwcm9wZXJ0eS5zbGljZSgxKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHByZWZpeGVzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgIHZhciBwcmVmaXggPSBwcmVmaXhlc1tpXTtcbiAgICB2YXIgdG9DaGVjayA9IHByZWZpeCA/ICcnICsgcHJlZml4ICsgdXBwZXJQcm9wIDogcHJvcGVydHk7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cuZG9jdW1lbnQuYm9keS5zdHlsZVt0b0NoZWNrXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB0b0NoZWNrO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBEZXN0cm95IHRoZSBwb3BwZXJcbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXJcbiAqL1xuZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgdGhpcy5zdGF0ZS5pc0Rlc3Ryb3llZCA9IHRydWU7XG5cbiAgLy8gdG91Y2ggRE9NIG9ubHkgaWYgYGFwcGx5U3R5bGVgIG1vZGlmaWVyIGlzIGVuYWJsZWRcbiAgaWYgKGlzTW9kaWZpZXJFbmFibGVkKHRoaXMubW9kaWZpZXJzLCAnYXBwbHlTdHlsZScpKSB7XG4gICAgdGhpcy5wb3BwZXIucmVtb3ZlQXR0cmlidXRlKCd4LXBsYWNlbWVudCcpO1xuICAgIHRoaXMucG9wcGVyLnN0eWxlLmxlZnQgPSAnJztcbiAgICB0aGlzLnBvcHBlci5zdHlsZS5wb3NpdGlvbiA9ICcnO1xuICAgIHRoaXMucG9wcGVyLnN0eWxlLnRvcCA9ICcnO1xuICAgIHRoaXMucG9wcGVyLnN0eWxlW2dldFN1cHBvcnRlZFByb3BlcnR5TmFtZSgndHJhbnNmb3JtJyldID0gJyc7XG4gIH1cblxuICB0aGlzLmRpc2FibGVFdmVudExpc3RlbmVycygpO1xuXG4gIC8vIHJlbW92ZSB0aGUgcG9wcGVyIGlmIHVzZXIgZXhwbGljaXR5IGFza2VkIGZvciB0aGUgZGVsZXRpb24gb24gZGVzdHJveVxuICAvLyBkbyBub3QgdXNlIGByZW1vdmVgIGJlY2F1c2UgSUUxMSBkb2Vzbid0IHN1cHBvcnQgaXRcbiAgaWYgKHRoaXMub3B0aW9ucy5yZW1vdmVPbkRlc3Ryb3kpIHtcbiAgICB0aGlzLnBvcHBlci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucG9wcGVyKTtcbiAgfVxuICByZXR1cm4gdGhpcztcbn1cblxuZnVuY3Rpb24gYXR0YWNoVG9TY3JvbGxQYXJlbnRzKHNjcm9sbFBhcmVudCwgZXZlbnQsIGNhbGxiYWNrLCBzY3JvbGxQYXJlbnRzKSB7XG4gIHZhciBpc0JvZHkgPSBzY3JvbGxQYXJlbnQubm9kZU5hbWUgPT09ICdCT0RZJztcbiAgdmFyIHRhcmdldCA9IGlzQm9keSA/IHdpbmRvdyA6IHNjcm9sbFBhcmVudDtcbiAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGNhbGxiYWNrLCB7IHBhc3NpdmU6IHRydWUgfSk7XG5cbiAgaWYgKCFpc0JvZHkpIHtcbiAgICBhdHRhY2hUb1Njcm9sbFBhcmVudHMoZ2V0U2Nyb2xsUGFyZW50KHRhcmdldC5wYXJlbnROb2RlKSwgZXZlbnQsIGNhbGxiYWNrLCBzY3JvbGxQYXJlbnRzKTtcbiAgfVxuICBzY3JvbGxQYXJlbnRzLnB1c2godGFyZ2V0KTtcbn1cblxuLyoqXG4gKiBTZXR1cCBuZWVkZWQgZXZlbnQgbGlzdGVuZXJzIHVzZWQgdG8gdXBkYXRlIHRoZSBwb3BwZXIgcG9zaXRpb25cbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNldHVwRXZlbnRMaXN0ZW5lcnMocmVmZXJlbmNlLCBvcHRpb25zLCBzdGF0ZSwgdXBkYXRlQm91bmQpIHtcbiAgLy8gUmVzaXplIGV2ZW50IGxpc3RlbmVyIG9uIHdpbmRvd1xuICBzdGF0ZS51cGRhdGVCb3VuZCA9IHVwZGF0ZUJvdW5kO1xuICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgc3RhdGUudXBkYXRlQm91bmQsIHsgcGFzc2l2ZTogdHJ1ZSB9KTtcblxuICAvLyBTY3JvbGwgZXZlbnQgbGlzdGVuZXIgb24gc2Nyb2xsIHBhcmVudHNcbiAgdmFyIHNjcm9sbEVsZW1lbnQgPSBnZXRTY3JvbGxQYXJlbnQocmVmZXJlbmNlKTtcbiAgYXR0YWNoVG9TY3JvbGxQYXJlbnRzKHNjcm9sbEVsZW1lbnQsICdzY3JvbGwnLCBzdGF0ZS51cGRhdGVCb3VuZCwgc3RhdGUuc2Nyb2xsUGFyZW50cyk7XG4gIHN0YXRlLnNjcm9sbEVsZW1lbnQgPSBzY3JvbGxFbGVtZW50O1xuICBzdGF0ZS5ldmVudHNFbmFibGVkID0gdHJ1ZTtcblxuICByZXR1cm4gc3RhdGU7XG59XG5cbi8qKlxuICogSXQgd2lsbCBhZGQgcmVzaXplL3Njcm9sbCBldmVudHMgYW5kIHN0YXJ0IHJlY2FsY3VsYXRpbmdcbiAqIHBvc2l0aW9uIG9mIHRoZSBwb3BwZXIgZWxlbWVudCB3aGVuIHRoZXkgYXJlIHRyaWdnZXJlZC5cbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXJcbiAqL1xuZnVuY3Rpb24gZW5hYmxlRXZlbnRMaXN0ZW5lcnMoKSB7XG4gIGlmICghdGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHNldHVwRXZlbnRMaXN0ZW5lcnModGhpcy5yZWZlcmVuY2UsIHRoaXMub3B0aW9ucywgdGhpcy5zdGF0ZSwgdGhpcy5zY2hlZHVsZVVwZGF0ZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW1vdmUgZXZlbnQgbGlzdGVuZXJzIHVzZWQgdG8gdXBkYXRlIHRoZSBwb3BwZXIgcG9zaXRpb25cbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHJlbW92ZUV2ZW50TGlzdGVuZXJzKHJlZmVyZW5jZSwgc3RhdGUpIHtcbiAgLy8gUmVtb3ZlIHJlc2l6ZSBldmVudCBsaXN0ZW5lciBvbiB3aW5kb3dcbiAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHN0YXRlLnVwZGF0ZUJvdW5kKTtcblxuICAvLyBSZW1vdmUgc2Nyb2xsIGV2ZW50IGxpc3RlbmVyIG9uIHNjcm9sbCBwYXJlbnRzXG4gIHN0YXRlLnNjcm9sbFBhcmVudHMuZm9yRWFjaChmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgdGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHN0YXRlLnVwZGF0ZUJvdW5kKTtcbiAgfSk7XG5cbiAgLy8gUmVzZXQgc3RhdGVcbiAgc3RhdGUudXBkYXRlQm91bmQgPSBudWxsO1xuICBzdGF0ZS5zY3JvbGxQYXJlbnRzID0gW107XG4gIHN0YXRlLnNjcm9sbEVsZW1lbnQgPSBudWxsO1xuICBzdGF0ZS5ldmVudHNFbmFibGVkID0gZmFsc2U7XG4gIHJldHVybiBzdGF0ZTtcbn1cblxuLyoqXG4gKiBJdCB3aWxsIHJlbW92ZSByZXNpemUvc2Nyb2xsIGV2ZW50cyBhbmQgd29uJ3QgcmVjYWxjdWxhdGUgcG9wcGVyIHBvc2l0aW9uXG4gKiB3aGVuIHRoZXkgYXJlIHRyaWdnZXJlZC4gSXQgYWxzbyB3b24ndCB0cmlnZ2VyIG9uVXBkYXRlIGNhbGxiYWNrIGFueW1vcmUsXG4gKiB1bmxlc3MgeW91IGNhbGwgYHVwZGF0ZWAgbWV0aG9kIG1hbnVhbGx5LlxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlclxuICovXG5mdW5jdGlvbiBkaXNhYmxlRXZlbnRMaXN0ZW5lcnMoKSB7XG4gIGlmICh0aGlzLnN0YXRlLmV2ZW50c0VuYWJsZWQpIHtcbiAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5zY2hlZHVsZVVwZGF0ZSk7XG4gICAgdGhpcy5zdGF0ZSA9IHJlbW92ZUV2ZW50TGlzdGVuZXJzKHRoaXMucmVmZXJlbmNlLCB0aGlzLnN0YXRlKTtcbiAgfVxufVxuXG4vKipcbiAqIFNldCB0aGUgYXR0cmlidXRlcyB0byB0aGUgZ2l2ZW4gcG9wcGVyXG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge0VsZW1lbnR9IGVsZW1lbnQgLSBFbGVtZW50IHRvIGFwcGx5IHRoZSBhdHRyaWJ1dGVzIHRvXG4gKiBAYXJndW1lbnQge09iamVjdH0gc3R5bGVzXG4gKiBPYmplY3Qgd2l0aCBhIGxpc3Qgb2YgcHJvcGVydGllcyBhbmQgdmFsdWVzIHdoaWNoIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudFxuICovXG5mdW5jdGlvbiBzZXRBdHRyaWJ1dGVzKGVsZW1lbnQsIGF0dHJpYnV0ZXMpIHtcbiAgT2JqZWN0LmtleXMoYXR0cmlidXRlcykuZm9yRWFjaChmdW5jdGlvbiAocHJvcCkge1xuICAgIHZhciB2YWx1ZSA9IGF0dHJpYnV0ZXNbcHJvcF07XG4gICAgaWYgKHZhbHVlICE9PSBmYWxzZSkge1xuICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUocHJvcCwgYXR0cmlidXRlc1twcm9wXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKHByb3ApO1xuICAgIH1cbiAgfSk7XG59XG5cbi8qKlxuICogQGZ1bmN0aW9uXG4gKiBAbWVtYmVyb2YgTW9kaWZpZXJzXG4gKiBAYXJndW1lbnQge09iamVjdH0gZGF0YSAtIFRoZSBkYXRhIG9iamVjdCBnZW5lcmF0ZWQgYnkgYHVwZGF0ZWAgbWV0aG9kXG4gKiBAYXJndW1lbnQge09iamVjdH0gZGF0YS5zdHlsZXMgLSBMaXN0IG9mIHN0eWxlIHByb3BlcnRpZXMgLSB2YWx1ZXMgdG8gYXBwbHkgdG8gcG9wcGVyIGVsZW1lbnRcbiAqIEBhcmd1bWVudCB7T2JqZWN0fSBkYXRhLmF0dHJpYnV0ZXMgLSBMaXN0IG9mIGF0dHJpYnV0ZSBwcm9wZXJ0aWVzIC0gdmFsdWVzIHRvIGFwcGx5IHRvIHBvcHBlciBlbGVtZW50XG4gKiBAYXJndW1lbnQge09iamVjdH0gb3B0aW9ucyAtIE1vZGlmaWVycyBjb25maWd1cmF0aW9uIGFuZCBvcHRpb25zXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgc2FtZSBkYXRhIG9iamVjdFxuICovXG5mdW5jdGlvbiBhcHBseVN0eWxlKGRhdGEsIG9wdGlvbnMpIHtcbiAgLy8gYXBwbHkgdGhlIGZpbmFsIG9mZnNldHMgdG8gdGhlIHBvcHBlclxuICAvLyBOT1RFOiAxIERPTSBhY2Nlc3MgaGVyZVxuICB2YXIgc3R5bGVzID0ge1xuICAgIHBvc2l0aW9uOiBkYXRhLm9mZnNldHMucG9wcGVyLnBvc2l0aW9uXG4gIH07XG5cbiAgdmFyIGF0dHJpYnV0ZXMgPSB7XG4gICAgJ3gtcGxhY2VtZW50JzogZGF0YS5wbGFjZW1lbnRcbiAgfTtcblxuICAvLyByb3VuZCB0b3AgYW5kIGxlZnQgdG8gYXZvaWQgYmx1cnJ5IHRleHRcbiAgdmFyIGxlZnQgPSBNYXRoLnJvdW5kKGRhdGEub2Zmc2V0cy5wb3BwZXIubGVmdCk7XG4gIHZhciB0b3AgPSBNYXRoLnJvdW5kKGRhdGEub2Zmc2V0cy5wb3BwZXIudG9wKTtcblxuICAvLyBpZiBncHVBY2NlbGVyYXRpb24gaXMgc2V0IHRvIHRydWUgYW5kIHRyYW5zZm9ybSBpcyBzdXBwb3J0ZWQsXG4gIC8vICB3ZSB1c2UgYHRyYW5zbGF0ZTNkYCB0byBhcHBseSB0aGUgcG9zaXRpb24gdG8gdGhlIHBvcHBlciB3ZVxuICAvLyBhdXRvbWF0aWNhbGx5IHVzZSB0aGUgc3VwcG9ydGVkIHByZWZpeGVkIHZlcnNpb24gaWYgbmVlZGVkXG4gIHZhciBwcmVmaXhlZFByb3BlcnR5ID0gZ2V0U3VwcG9ydGVkUHJvcGVydHlOYW1lKCd0cmFuc2Zvcm0nKTtcbiAgaWYgKG9wdGlvbnMuZ3B1QWNjZWxlcmF0aW9uICYmIHByZWZpeGVkUHJvcGVydHkpIHtcbiAgICBzdHlsZXNbcHJlZml4ZWRQcm9wZXJ0eV0gPSAndHJhbnNsYXRlM2QoJyArIGxlZnQgKyAncHgsICcgKyB0b3AgKyAncHgsIDApJztcbiAgICBzdHlsZXMudG9wID0gMDtcbiAgICBzdHlsZXMubGVmdCA9IDA7XG4gICAgc3R5bGVzLndpbGxDaGFuZ2UgPSAndHJhbnNmb3JtJztcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGh3ZXJpc2UsIHdlIHVzZSB0aGUgc3RhbmRhcmQgYGxlZnRgIGFuZCBgdG9wYCBwcm9wZXJ0aWVzXG4gICAgc3R5bGVzLmxlZnQgPSBsZWZ0O1xuICAgIHN0eWxlcy50b3AgPSB0b3A7XG4gICAgc3R5bGVzLndpbGxDaGFuZ2UgPSAndG9wLCBsZWZ0JztcbiAgfVxuXG4gIC8vIGFueSBwcm9wZXJ0eSBwcmVzZW50IGluIGBkYXRhLnN0eWxlc2Agd2lsbCBiZSBhcHBsaWVkIHRvIHRoZSBwb3BwZXIsXG4gIC8vIGluIHRoaXMgd2F5IHdlIGNhbiBtYWtlIHRoZSAzcmQgcGFydHkgbW9kaWZpZXJzIGFkZCBjdXN0b20gc3R5bGVzIHRvIGl0XG4gIC8vIEJlIGF3YXJlLCBtb2RpZmllcnMgY291bGQgb3ZlcnJpZGUgdGhlIHByb3BlcnRpZXMgZGVmaW5lZCBpbiB0aGUgcHJldmlvdXNcbiAgLy8gbGluZXMgb2YgdGhpcyBtb2RpZmllciFcbiAgc2V0U3R5bGVzKGRhdGEuaW5zdGFuY2UucG9wcGVyLCBfZXh0ZW5kcyh7fSwgc3R5bGVzLCBkYXRhLnN0eWxlcykpO1xuXG4gIC8vIGFueSBwcm9wZXJ0eSBwcmVzZW50IGluIGBkYXRhLmF0dHJpYnV0ZXNgIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgcG9wcGVyLFxuICAvLyB0aGV5IHdpbGwgYmUgc2V0IGFzIEhUTUwgYXR0cmlidXRlcyBvZiB0aGUgZWxlbWVudFxuICBzZXRBdHRyaWJ1dGVzKGRhdGEuaW5zdGFuY2UucG9wcGVyLCBfZXh0ZW5kcyh7fSwgYXR0cmlidXRlcywgZGF0YS5hdHRyaWJ1dGVzKSk7XG5cbiAgLy8gaWYgdGhlIGFycm93IHN0eWxlIGhhcyBiZWVuIGNvbXB1dGVkLCBhcHBseSB0aGUgYXJyb3cgc3R5bGVcbiAgaWYgKGRhdGEub2Zmc2V0cy5hcnJvdykge1xuICAgIHNldFN0eWxlcyhkYXRhLmFycm93RWxlbWVudCwgZGF0YS5vZmZzZXRzLmFycm93KTtcbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIFNldCB0aGUgeC1wbGFjZW1lbnQgYXR0cmlidXRlIGJlZm9yZSBldmVyeXRoaW5nIGVsc2UgYmVjYXVzZSBpdCBjb3VsZCBiZSB1c2VkXG4gKiB0byBhZGQgbWFyZ2lucyB0byB0aGUgcG9wcGVyIG1hcmdpbnMgbmVlZHMgdG8gYmUgY2FsY3VsYXRlZCB0byBnZXQgdGhlXG4gKiBjb3JyZWN0IHBvcHBlciBvZmZzZXRzLlxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlci5tb2RpZmllcnNcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJlZmVyZW5jZSAtIFRoZSByZWZlcmVuY2UgZWxlbWVudCB1c2VkIHRvIHBvc2l0aW9uIHRoZSBwb3BwZXJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHBvcHBlciAtIFRoZSBIVE1MIGVsZW1lbnQgdXNlZCBhcyBwb3BwZXIuXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIFBvcHBlci5qcyBvcHRpb25zXG4gKi9cbmZ1bmN0aW9uIGFwcGx5U3R5bGVPbkxvYWQocmVmZXJlbmNlLCBwb3BwZXIsIG9wdGlvbnMsIG1vZGlmaWVyT3B0aW9ucywgc3RhdGUpIHtcbiAgLy8gY29tcHV0ZSByZWZlcmVuY2UgZWxlbWVudCBvZmZzZXRzXG4gIHZhciByZWZlcmVuY2VPZmZzZXRzID0gZ2V0UmVmZXJlbmNlT2Zmc2V0cyhzdGF0ZSwgcG9wcGVyLCByZWZlcmVuY2UpO1xuXG4gIC8vIGNvbXB1dGUgYXV0byBwbGFjZW1lbnQsIHN0b3JlIHBsYWNlbWVudCBpbnNpZGUgdGhlIGRhdGEgb2JqZWN0LFxuICAvLyBtb2RpZmllcnMgd2lsbCBiZSBhYmxlIHRvIGVkaXQgYHBsYWNlbWVudGAgaWYgbmVlZGVkXG4gIC8vIGFuZCByZWZlciB0byBvcmlnaW5hbFBsYWNlbWVudCB0byBrbm93IHRoZSBvcmlnaW5hbCB2YWx1ZVxuICB2YXIgcGxhY2VtZW50ID0gY29tcHV0ZUF1dG9QbGFjZW1lbnQob3B0aW9ucy5wbGFjZW1lbnQsIHJlZmVyZW5jZU9mZnNldHMsIHBvcHBlciwgcmVmZXJlbmNlLCBvcHRpb25zLm1vZGlmaWVycy5mbGlwLmJvdW5kYXJpZXNFbGVtZW50KTtcblxuICBwb3BwZXIuc2V0QXR0cmlidXRlKCd4LXBsYWNlbWVudCcsIHBsYWNlbWVudCk7XG4gIHJldHVybiBvcHRpb25zO1xufVxuXG4vKipcbiAqIEhlbHBlciB1c2VkIHRvIGtub3cgaWYgdGhlIGdpdmVuIG1vZGlmaWVyIGRlcGVuZHMgZnJvbSBhbm90aGVyIG9uZS48YnIgLz5cbiAqIEl0IGNoZWNrcyBpZiB0aGUgbmVlZGVkIG1vZGlmaWVyIGlzIGxpc3RlZCBhbmQgZW5hYmxlZC5cbiAqIEBtZXRob2RcbiAqIEBtZW1iZXJvZiBQb3BwZXIuVXRpbHNcbiAqIEBwYXJhbSB7QXJyYXl9IG1vZGlmaWVycyAtIGxpc3Qgb2YgbW9kaWZpZXJzXG4gKiBAcGFyYW0ge1N0cmluZ30gcmVxdWVzdGluZ05hbWUgLSBuYW1lIG9mIHJlcXVlc3RpbmcgbW9kaWZpZXJcbiAqIEBwYXJhbSB7U3RyaW5nfSByZXF1ZXN0ZWROYW1lIC0gbmFtZSBvZiByZXF1ZXN0ZWQgbW9kaWZpZXJcbiAqIEByZXR1cm5zIHtCb29sZWFufVxuICovXG5mdW5jdGlvbiBpc01vZGlmaWVyUmVxdWlyZWQobW9kaWZpZXJzLCByZXF1ZXN0aW5nTmFtZSwgcmVxdWVzdGVkTmFtZSkge1xuICB2YXIgcmVxdWVzdGluZyA9IGZpbmQobW9kaWZpZXJzLCBmdW5jdGlvbiAoX3JlZikge1xuICAgIHZhciBuYW1lID0gX3JlZi5uYW1lO1xuICAgIHJldHVybiBuYW1lID09PSByZXF1ZXN0aW5nTmFtZTtcbiAgfSk7XG5cbiAgdmFyIGlzUmVxdWlyZWQgPSAhIXJlcXVlc3RpbmcgJiYgbW9kaWZpZXJzLnNvbWUoZnVuY3Rpb24gKG1vZGlmaWVyKSB7XG4gICAgcmV0dXJuIG1vZGlmaWVyLm5hbWUgPT09IHJlcXVlc3RlZE5hbWUgJiYgbW9kaWZpZXIuZW5hYmxlZCAmJiBtb2RpZmllci5vcmRlciA8IHJlcXVlc3Rpbmcub3JkZXI7XG4gIH0pO1xuXG4gIGlmICghaXNSZXF1aXJlZCkge1xuICAgIHZhciBfcmVxdWVzdGluZyA9ICdgJyArIHJlcXVlc3RpbmdOYW1lICsgJ2AnO1xuICAgIHZhciByZXF1ZXN0ZWQgPSAnYCcgKyByZXF1ZXN0ZWROYW1lICsgJ2AnO1xuICAgIGNvbnNvbGUud2FybihyZXF1ZXN0ZWQgKyAnIG1vZGlmaWVyIGlzIHJlcXVpcmVkIGJ5ICcgKyBfcmVxdWVzdGluZyArICcgbW9kaWZpZXIgaW4gb3JkZXIgdG8gd29yaywgYmUgc3VyZSB0byBpbmNsdWRlIGl0IGJlZm9yZSAnICsgX3JlcXVlc3RpbmcgKyAnIScpO1xuICB9XG4gIHJldHVybiBpc1JlcXVpcmVkO1xufVxuXG4vKipcbiAqIEBmdW5jdGlvblxuICogQG1lbWJlcm9mIE1vZGlmaWVyc1xuICogQGFyZ3VtZW50IHtPYmplY3R9IGRhdGEgLSBUaGUgZGF0YSBvYmplY3QgZ2VuZXJhdGVkIGJ5IHVwZGF0ZSBtZXRob2RcbiAqIEBhcmd1bWVudCB7T2JqZWN0fSBvcHRpb25zIC0gTW9kaWZpZXJzIGNvbmZpZ3VyYXRpb24gYW5kIG9wdGlvbnNcbiAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBkYXRhIG9iamVjdCwgcHJvcGVybHkgbW9kaWZpZWRcbiAqL1xuZnVuY3Rpb24gYXJyb3coZGF0YSwgb3B0aW9ucykge1xuICAvLyBhcnJvdyBkZXBlbmRzIG9uIGtlZXBUb2dldGhlciBpbiBvcmRlciB0byB3b3JrXG4gIGlmICghaXNNb2RpZmllclJlcXVpcmVkKGRhdGEuaW5zdGFuY2UubW9kaWZpZXJzLCAnYXJyb3cnLCAna2VlcFRvZ2V0aGVyJykpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHZhciBhcnJvd0VsZW1lbnQgPSBvcHRpb25zLmVsZW1lbnQ7XG5cbiAgLy8gaWYgYXJyb3dFbGVtZW50IGlzIGEgc3RyaW5nLCBzdXBwb3NlIGl0J3MgYSBDU1Mgc2VsZWN0b3JcbiAgaWYgKHR5cGVvZiBhcnJvd0VsZW1lbnQgPT09ICdzdHJpbmcnKSB7XG4gICAgYXJyb3dFbGVtZW50ID0gZGF0YS5pbnN0YW5jZS5wb3BwZXIucXVlcnlTZWxlY3RvcihhcnJvd0VsZW1lbnQpO1xuXG4gICAgLy8gaWYgYXJyb3dFbGVtZW50IGlzIG5vdCBmb3VuZCwgZG9uJ3QgcnVuIHRoZSBtb2RpZmllclxuICAgIGlmICghYXJyb3dFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gaWYgdGhlIGFycm93RWxlbWVudCBpc24ndCBhIHF1ZXJ5IHNlbGVjdG9yIHdlIG11c3QgY2hlY2sgdGhhdCB0aGVcbiAgICAvLyBwcm92aWRlZCBET00gbm9kZSBpcyBjaGlsZCBvZiBpdHMgcG9wcGVyIG5vZGVcbiAgICBpZiAoIWRhdGEuaW5zdGFuY2UucG9wcGVyLmNvbnRhaW5zKGFycm93RWxlbWVudCkpIHtcbiAgICAgIGNvbnNvbGUud2FybignV0FSTklORzogYGFycm93LmVsZW1lbnRgIG11c3QgYmUgY2hpbGQgb2YgaXRzIHBvcHBlciBlbGVtZW50IScpO1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICB9XG5cbiAgdmFyIHBsYWNlbWVudCA9IGRhdGEucGxhY2VtZW50LnNwbGl0KCctJylbMF07XG4gIHZhciBwb3BwZXIgPSBnZXRDbGllbnRSZWN0KGRhdGEub2Zmc2V0cy5wb3BwZXIpO1xuICB2YXIgcmVmZXJlbmNlID0gZGF0YS5vZmZzZXRzLnJlZmVyZW5jZTtcbiAgdmFyIGlzVmVydGljYWwgPSBbJ2xlZnQnLCAncmlnaHQnXS5pbmRleE9mKHBsYWNlbWVudCkgIT09IC0xO1xuXG4gIHZhciBsZW4gPSBpc1ZlcnRpY2FsID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuICB2YXIgc2lkZSA9IGlzVmVydGljYWwgPyAndG9wJyA6ICdsZWZ0JztcbiAgdmFyIGFsdFNpZGUgPSBpc1ZlcnRpY2FsID8gJ2xlZnQnIDogJ3RvcCc7XG4gIHZhciBvcFNpZGUgPSBpc1ZlcnRpY2FsID8gJ2JvdHRvbScgOiAncmlnaHQnO1xuICB2YXIgYXJyb3dFbGVtZW50U2l6ZSA9IGdldE91dGVyU2l6ZXMoYXJyb3dFbGVtZW50KVtsZW5dO1xuXG4gIC8vXG4gIC8vIGV4dGVuZHMga2VlcFRvZ2V0aGVyIGJlaGF2aW9yIG1ha2luZyBzdXJlIHRoZSBwb3BwZXIgYW5kIGl0cyByZWZlcmVuY2UgaGF2ZSBlbm91Z2ggcGl4ZWxzIGluIGNvbmp1Y3Rpb25cbiAgLy9cblxuICAvLyB0b3AvbGVmdCBzaWRlXG4gIGlmIChyZWZlcmVuY2Vbb3BTaWRlXSAtIGFycm93RWxlbWVudFNpemUgPCBwb3BwZXJbc2lkZV0pIHtcbiAgICBkYXRhLm9mZnNldHMucG9wcGVyW3NpZGVdIC09IHBvcHBlcltzaWRlXSAtIChyZWZlcmVuY2Vbb3BTaWRlXSAtIGFycm93RWxlbWVudFNpemUpO1xuICB9XG4gIC8vIGJvdHRvbS9yaWdodCBzaWRlXG4gIGlmIChyZWZlcmVuY2Vbc2lkZV0gKyBhcnJvd0VsZW1lbnRTaXplID4gcG9wcGVyW29wU2lkZV0pIHtcbiAgICBkYXRhLm9mZnNldHMucG9wcGVyW3NpZGVdICs9IHJlZmVyZW5jZVtzaWRlXSArIGFycm93RWxlbWVudFNpemUgLSBwb3BwZXJbb3BTaWRlXTtcbiAgfVxuXG4gIC8vIGNvbXB1dGUgY2VudGVyIG9mIHRoZSBwb3BwZXJcbiAgdmFyIGNlbnRlciA9IHJlZmVyZW5jZVtzaWRlXSArIHJlZmVyZW5jZVtsZW5dIC8gMiAtIGFycm93RWxlbWVudFNpemUgLyAyO1xuXG4gIC8vIENvbXB1dGUgdGhlIHNpZGVWYWx1ZSB1c2luZyB0aGUgdXBkYXRlZCBwb3BwZXIgb2Zmc2V0c1xuICB2YXIgc2lkZVZhbHVlID0gY2VudGVyIC0gZ2V0Q2xpZW50UmVjdChkYXRhLm9mZnNldHMucG9wcGVyKVtzaWRlXTtcblxuICAvLyBwcmV2ZW50IGFycm93RWxlbWVudCBmcm9tIGJlaW5nIHBsYWNlZCBub3QgY29udGlndW91c2x5IHRvIGl0cyBwb3BwZXJcbiAgc2lkZVZhbHVlID0gTWF0aC5tYXgoTWF0aC5taW4ocG9wcGVyW2xlbl0gLSBhcnJvd0VsZW1lbnRTaXplLCBzaWRlVmFsdWUpLCAwKTtcblxuICBkYXRhLmFycm93RWxlbWVudCA9IGFycm93RWxlbWVudDtcbiAgZGF0YS5vZmZzZXRzLmFycm93ID0ge307XG4gIGRhdGEub2Zmc2V0cy5hcnJvd1tzaWRlXSA9IHNpZGVWYWx1ZTtcbiAgZGF0YS5vZmZzZXRzLmFycm93W2FsdFNpZGVdID0gJyc7IC8vIG1ha2Ugc3VyZSB0byB1bnNldCBhbnkgZXZlbnR1YWwgYWx0U2lkZSB2YWx1ZSBmcm9tIHRoZSBET00gbm9kZVxuXG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIEdldCB0aGUgb3Bwb3NpdGUgcGxhY2VtZW50IHZhcmlhdGlvbiBvZiB0aGUgZ2l2ZW4gb25lXG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQge1N0cmluZ30gcGxhY2VtZW50IHZhcmlhdGlvblxuICogQHJldHVybnMge1N0cmluZ30gZmxpcHBlZCBwbGFjZW1lbnQgdmFyaWF0aW9uXG4gKi9cbmZ1bmN0aW9uIGdldE9wcG9zaXRlVmFyaWF0aW9uKHZhcmlhdGlvbikge1xuICBpZiAodmFyaWF0aW9uID09PSAnZW5kJykge1xuICAgIHJldHVybiAnc3RhcnQnO1xuICB9IGVsc2UgaWYgKHZhcmlhdGlvbiA9PT0gJ3N0YXJ0Jykge1xuICAgIHJldHVybiAnZW5kJztcbiAgfVxuICByZXR1cm4gdmFyaWF0aW9uO1xufVxuXG4vKipcbiAqIExpc3Qgb2YgYWNjZXB0ZWQgcGxhY2VtZW50cyB0byB1c2UgYXMgdmFsdWVzIG9mIHRoZSBgcGxhY2VtZW50YCBvcHRpb24uPGJyIC8+XG4gKiBWYWxpZCBwbGFjZW1lbnRzIGFyZTpcbiAqIC0gYGF1dG9gXG4gKiAtIGB0b3BgXG4gKiAtIGByaWdodGBcbiAqIC0gYGJvdHRvbWBcbiAqIC0gYGxlZnRgXG4gKlxuICogRWFjaCBwbGFjZW1lbnQgY2FuIGhhdmUgYSB2YXJpYXRpb24gZnJvbSB0aGlzIGxpc3Q6XG4gKiAtIGAtc3RhcnRgXG4gKiAtIGAtZW5kYFxuICpcbiAqIFZhcmlhdGlvbnMgYXJlIGludGVycHJldGVkIGVhc2lseSBpZiB5b3UgdGhpbmsgb2YgdGhlbSBhcyB0aGUgbGVmdCB0byByaWdodFxuICogd3JpdHRlbiBsYW5ndWFnZXMuIEhvcml6b250YWxseSAoYHRvcGAgYW5kIGBib3R0b21gKSwgYHN0YXJ0YCBpcyBsZWZ0IGFuZCBgZW5kYFxuICogaXMgcmlnaHQuPGJyIC8+XG4gKiBWZXJ0aWNhbGx5IChgbGVmdGAgYW5kIGByaWdodGApLCBgc3RhcnRgIGlzIHRvcCBhbmQgYGVuZGAgaXMgYm90dG9tLlxuICpcbiAqIFNvbWUgdmFsaWQgZXhhbXBsZXMgYXJlOlxuICogLSBgdG9wLWVuZGAgKG9uIHRvcCBvZiByZWZlcmVuY2UsIHJpZ2h0IGFsaWduZWQpXG4gKiAtIGByaWdodC1zdGFydGAgKG9uIHJpZ2h0IG9mIHJlZmVyZW5jZSwgdG9wIGFsaWduZWQpXG4gKiAtIGBib3R0b21gIChvbiBib3R0b20sIGNlbnRlcmVkKVxuICogLSBgYXV0by1yaWdodGAgKG9uIHRoZSBzaWRlIHdpdGggbW9yZSBzcGFjZSBhdmFpbGFibGUsIGFsaWdubWVudCBkZXBlbmRzIGJ5IHBsYWNlbWVudClcbiAqXG4gKiBAc3RhdGljXG4gKiBAdHlwZSB7QXJyYXl9XG4gKiBAZW51bSB7U3RyaW5nfVxuICogQHJlYWRvbmx5XG4gKiBAbWV0aG9kIHBsYWNlbWVudHNcbiAqIEBtZW1iZXJvZiBQb3BwZXJcbiAqL1xudmFyIHBsYWNlbWVudHMgPSBbJ2F1dG8tc3RhcnQnLCAnYXV0bycsICdhdXRvLWVuZCcsICd0b3Atc3RhcnQnLCAndG9wJywgJ3RvcC1lbmQnLCAncmlnaHQtc3RhcnQnLCAncmlnaHQnLCAncmlnaHQtZW5kJywgJ2JvdHRvbS1lbmQnLCAnYm90dG9tJywgJ2JvdHRvbS1zdGFydCcsICdsZWZ0LWVuZCcsICdsZWZ0JywgJ2xlZnQtc3RhcnQnXTtcblxuLy8gR2V0IHJpZCBvZiBgYXV0b2AgYGF1dG8tc3RhcnRgIGFuZCBgYXV0by1lbmRgXG52YXIgdmFsaWRQbGFjZW1lbnRzID0gcGxhY2VtZW50cy5zbGljZSgzKTtcblxuLyoqXG4gKiBHaXZlbiBhbiBpbml0aWFsIHBsYWNlbWVudCwgcmV0dXJucyBhbGwgdGhlIHN1YnNlcXVlbnQgcGxhY2VtZW50c1xuICogY2xvY2t3aXNlIChvciBjb3VudGVyLWNsb2Nrd2lzZSkuXG4gKlxuICogQG1ldGhvZFxuICogQG1lbWJlcm9mIFBvcHBlci5VdGlsc1xuICogQGFyZ3VtZW50IHtTdHJpbmd9IHBsYWNlbWVudCAtIEEgdmFsaWQgcGxhY2VtZW50IChpdCBhY2NlcHRzIHZhcmlhdGlvbnMpXG4gKiBAYXJndW1lbnQge0Jvb2xlYW59IGNvdW50ZXIgLSBTZXQgdG8gdHJ1ZSB0byB3YWxrIHRoZSBwbGFjZW1lbnRzIGNvdW50ZXJjbG9ja3dpc2VcbiAqIEByZXR1cm5zIHtBcnJheX0gcGxhY2VtZW50cyBpbmNsdWRpbmcgdGhlaXIgdmFyaWF0aW9uc1xuICovXG5mdW5jdGlvbiBjbG9ja3dpc2UocGxhY2VtZW50KSB7XG4gIHZhciBjb3VudGVyID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiBmYWxzZTtcblxuICB2YXIgaW5kZXggPSB2YWxpZFBsYWNlbWVudHMuaW5kZXhPZihwbGFjZW1lbnQpO1xuICB2YXIgYXJyID0gdmFsaWRQbGFjZW1lbnRzLnNsaWNlKGluZGV4ICsgMSkuY29uY2F0KHZhbGlkUGxhY2VtZW50cy5zbGljZSgwLCBpbmRleCkpO1xuICByZXR1cm4gY291bnRlciA/IGFyci5yZXZlcnNlKCkgOiBhcnI7XG59XG5cbnZhciBCRUhBVklPUlMgPSB7XG4gIEZMSVA6ICdmbGlwJyxcbiAgQ0xPQ0tXSVNFOiAnY2xvY2t3aXNlJyxcbiAgQ09VTlRFUkNMT0NLV0lTRTogJ2NvdW50ZXJjbG9ja3dpc2UnXG59O1xuXG4vKipcbiAqIEBmdW5jdGlvblxuICogQG1lbWJlcm9mIE1vZGlmaWVyc1xuICogQGFyZ3VtZW50IHtPYmplY3R9IGRhdGEgLSBUaGUgZGF0YSBvYmplY3QgZ2VuZXJhdGVkIGJ5IHVwZGF0ZSBtZXRob2RcbiAqIEBhcmd1bWVudCB7T2JqZWN0fSBvcHRpb25zIC0gTW9kaWZpZXJzIGNvbmZpZ3VyYXRpb24gYW5kIG9wdGlvbnNcbiAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBkYXRhIG9iamVjdCwgcHJvcGVybHkgbW9kaWZpZWRcbiAqL1xuZnVuY3Rpb24gZmxpcChkYXRhLCBvcHRpb25zKSB7XG4gIC8vIGlmIGBpbm5lcmAgbW9kaWZpZXIgaXMgZW5hYmxlZCwgd2UgY2FuJ3QgdXNlIHRoZSBgZmxpcGAgbW9kaWZpZXJcbiAgaWYgKGlzTW9kaWZpZXJFbmFibGVkKGRhdGEuaW5zdGFuY2UubW9kaWZpZXJzLCAnaW5uZXInKSkge1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgaWYgKGRhdGEuZmxpcHBlZCAmJiBkYXRhLnBsYWNlbWVudCA9PT0gZGF0YS5vcmlnaW5hbFBsYWNlbWVudCkge1xuICAgIC8vIHNlZW1zIGxpa2UgZmxpcCBpcyB0cnlpbmcgdG8gbG9vcCwgcHJvYmFibHkgdGhlcmUncyBub3QgZW5vdWdoIHNwYWNlIG9uIGFueSBvZiB0aGUgZmxpcHBhYmxlIHNpZGVzXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICB2YXIgYm91bmRhcmllcyA9IGdldEJvdW5kYXJpZXMoZGF0YS5pbnN0YW5jZS5wb3BwZXIsIGRhdGEuaW5zdGFuY2UucmVmZXJlbmNlLCBvcHRpb25zLnBhZGRpbmcsIG9wdGlvbnMuYm91bmRhcmllc0VsZW1lbnQpO1xuXG4gIHZhciBwbGFjZW1lbnQgPSBkYXRhLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdO1xuICB2YXIgcGxhY2VtZW50T3Bwb3NpdGUgPSBnZXRPcHBvc2l0ZVBsYWNlbWVudChwbGFjZW1lbnQpO1xuICB2YXIgdmFyaWF0aW9uID0gZGF0YS5wbGFjZW1lbnQuc3BsaXQoJy0nKVsxXSB8fCAnJztcblxuICB2YXIgZmxpcE9yZGVyID0gW107XG5cbiAgc3dpdGNoIChvcHRpb25zLmJlaGF2aW9yKSB7XG4gICAgY2FzZSBCRUhBVklPUlMuRkxJUDpcbiAgICAgIGZsaXBPcmRlciA9IFtwbGFjZW1lbnQsIHBsYWNlbWVudE9wcG9zaXRlXTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQkVIQVZJT1JTLkNMT0NLV0lTRTpcbiAgICAgIGZsaXBPcmRlciA9IGNsb2Nrd2lzZShwbGFjZW1lbnQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBCRUhBVklPUlMuQ09VTlRFUkNMT0NLV0lTRTpcbiAgICAgIGZsaXBPcmRlciA9IGNsb2Nrd2lzZShwbGFjZW1lbnQsIHRydWUpO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIGZsaXBPcmRlciA9IG9wdGlvbnMuYmVoYXZpb3I7XG4gIH1cblxuICBmbGlwT3JkZXIuZm9yRWFjaChmdW5jdGlvbiAoc3RlcCwgaW5kZXgpIHtcbiAgICBpZiAocGxhY2VtZW50ICE9PSBzdGVwIHx8IGZsaXBPcmRlci5sZW5ndGggPT09IGluZGV4ICsgMSkge1xuICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuXG4gICAgcGxhY2VtZW50ID0gZGF0YS5wbGFjZW1lbnQuc3BsaXQoJy0nKVswXTtcbiAgICBwbGFjZW1lbnRPcHBvc2l0ZSA9IGdldE9wcG9zaXRlUGxhY2VtZW50KHBsYWNlbWVudCk7XG5cbiAgICB2YXIgcG9wcGVyT2Zmc2V0cyA9IGdldENsaWVudFJlY3QoZGF0YS5vZmZzZXRzLnBvcHBlcik7XG4gICAgdmFyIHJlZk9mZnNldHMgPSBkYXRhLm9mZnNldHMucmVmZXJlbmNlO1xuXG4gICAgLy8gdXNpbmcgZmxvb3IgYmVjYXVzZSB0aGUgcmVmZXJlbmNlIG9mZnNldHMgbWF5IGNvbnRhaW4gZGVjaW1hbHMgd2UgYXJlIG5vdCBnb2luZyB0byBjb25zaWRlciBoZXJlXG4gICAgdmFyIGZsb29yID0gTWF0aC5mbG9vcjtcbiAgICB2YXIgb3ZlcmxhcHNSZWYgPSBwbGFjZW1lbnQgPT09ICdsZWZ0JyAmJiBmbG9vcihwb3BwZXJPZmZzZXRzLnJpZ2h0KSA+IGZsb29yKHJlZk9mZnNldHMubGVmdCkgfHwgcGxhY2VtZW50ID09PSAncmlnaHQnICYmIGZsb29yKHBvcHBlck9mZnNldHMubGVmdCkgPCBmbG9vcihyZWZPZmZzZXRzLnJpZ2h0KSB8fCBwbGFjZW1lbnQgPT09ICd0b3AnICYmIGZsb29yKHBvcHBlck9mZnNldHMuYm90dG9tKSA+IGZsb29yKHJlZk9mZnNldHMudG9wKSB8fCBwbGFjZW1lbnQgPT09ICdib3R0b20nICYmIGZsb29yKHBvcHBlck9mZnNldHMudG9wKSA8IGZsb29yKHJlZk9mZnNldHMuYm90dG9tKTtcblxuICAgIHZhciBvdmVyZmxvd3NMZWZ0ID0gZmxvb3IocG9wcGVyT2Zmc2V0cy5sZWZ0KSA8IGZsb29yKGJvdW5kYXJpZXMubGVmdCk7XG4gICAgdmFyIG92ZXJmbG93c1JpZ2h0ID0gZmxvb3IocG9wcGVyT2Zmc2V0cy5yaWdodCkgPiBmbG9vcihib3VuZGFyaWVzLnJpZ2h0KTtcbiAgICB2YXIgb3ZlcmZsb3dzVG9wID0gZmxvb3IocG9wcGVyT2Zmc2V0cy50b3ApIDwgZmxvb3IoYm91bmRhcmllcy50b3ApO1xuICAgIHZhciBvdmVyZmxvd3NCb3R0b20gPSBmbG9vcihwb3BwZXJPZmZzZXRzLmJvdHRvbSkgPiBmbG9vcihib3VuZGFyaWVzLmJvdHRvbSk7XG5cbiAgICB2YXIgb3ZlcmZsb3dzQm91bmRhcmllcyA9IHBsYWNlbWVudCA9PT0gJ2xlZnQnICYmIG92ZXJmbG93c0xlZnQgfHwgcGxhY2VtZW50ID09PSAncmlnaHQnICYmIG92ZXJmbG93c1JpZ2h0IHx8IHBsYWNlbWVudCA9PT0gJ3RvcCcgJiYgb3ZlcmZsb3dzVG9wIHx8IHBsYWNlbWVudCA9PT0gJ2JvdHRvbScgJiYgb3ZlcmZsb3dzQm90dG9tO1xuXG4gICAgLy8gZmxpcCB0aGUgdmFyaWF0aW9uIGlmIHJlcXVpcmVkXG4gICAgdmFyIGlzVmVydGljYWwgPSBbJ3RvcCcsICdib3R0b20nXS5pbmRleE9mKHBsYWNlbWVudCkgIT09IC0xO1xuICAgIHZhciBmbGlwcGVkVmFyaWF0aW9uID0gISFvcHRpb25zLmZsaXBWYXJpYXRpb25zICYmIChpc1ZlcnRpY2FsICYmIHZhcmlhdGlvbiA9PT0gJ3N0YXJ0JyAmJiBvdmVyZmxvd3NMZWZ0IHx8IGlzVmVydGljYWwgJiYgdmFyaWF0aW9uID09PSAnZW5kJyAmJiBvdmVyZmxvd3NSaWdodCB8fCAhaXNWZXJ0aWNhbCAmJiB2YXJpYXRpb24gPT09ICdzdGFydCcgJiYgb3ZlcmZsb3dzVG9wIHx8ICFpc1ZlcnRpY2FsICYmIHZhcmlhdGlvbiA9PT0gJ2VuZCcgJiYgb3ZlcmZsb3dzQm90dG9tKTtcblxuICAgIGlmIChvdmVybGFwc1JlZiB8fCBvdmVyZmxvd3NCb3VuZGFyaWVzIHx8IGZsaXBwZWRWYXJpYXRpb24pIHtcbiAgICAgIC8vIHRoaXMgYm9vbGVhbiB0byBkZXRlY3QgYW55IGZsaXAgbG9vcFxuICAgICAgZGF0YS5mbGlwcGVkID0gdHJ1ZTtcblxuICAgICAgaWYgKG92ZXJsYXBzUmVmIHx8IG92ZXJmbG93c0JvdW5kYXJpZXMpIHtcbiAgICAgICAgcGxhY2VtZW50ID0gZmxpcE9yZGVyW2luZGV4ICsgMV07XG4gICAgICB9XG5cbiAgICAgIGlmIChmbGlwcGVkVmFyaWF0aW9uKSB7XG4gICAgICAgIHZhcmlhdGlvbiA9IGdldE9wcG9zaXRlVmFyaWF0aW9uKHZhcmlhdGlvbik7XG4gICAgICB9XG5cbiAgICAgIGRhdGEucGxhY2VtZW50ID0gcGxhY2VtZW50ICsgKHZhcmlhdGlvbiA/ICctJyArIHZhcmlhdGlvbiA6ICcnKTtcbiAgICAgIGRhdGEub2Zmc2V0cy5wb3BwZXIgPSBnZXRQb3BwZXJPZmZzZXRzKGRhdGEuaW5zdGFuY2UucG9wcGVyLCBkYXRhLm9mZnNldHMucmVmZXJlbmNlLCBkYXRhLnBsYWNlbWVudCk7XG5cbiAgICAgIGRhdGEgPSBydW5Nb2RpZmllcnMoZGF0YS5pbnN0YW5jZS5tb2RpZmllcnMsIGRhdGEsICdmbGlwJyk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8qKlxuICogQGZ1bmN0aW9uXG4gKiBAbWVtYmVyb2YgTW9kaWZpZXJzXG4gKiBAYXJndW1lbnQge09iamVjdH0gZGF0YSAtIFRoZSBkYXRhIG9iamVjdCBnZW5lcmF0ZWQgYnkgdXBkYXRlIG1ldGhvZFxuICogQGFyZ3VtZW50IHtPYmplY3R9IG9wdGlvbnMgLSBNb2RpZmllcnMgY29uZmlndXJhdGlvbiBhbmQgb3B0aW9uc1xuICogQHJldHVybnMge09iamVjdH0gVGhlIGRhdGEgb2JqZWN0LCBwcm9wZXJseSBtb2RpZmllZFxuICovXG5mdW5jdGlvbiBrZWVwVG9nZXRoZXIoZGF0YSkge1xuICB2YXIgcG9wcGVyID0gZ2V0Q2xpZW50UmVjdChkYXRhLm9mZnNldHMucG9wcGVyKTtcbiAgdmFyIHJlZmVyZW5jZSA9IGRhdGEub2Zmc2V0cy5yZWZlcmVuY2U7XG4gIHZhciBwbGFjZW1lbnQgPSBkYXRhLnBsYWNlbWVudC5zcGxpdCgnLScpWzBdO1xuICB2YXIgZmxvb3IgPSBNYXRoLmZsb29yO1xuICB2YXIgaXNWZXJ0aWNhbCA9IFsndG9wJywgJ2JvdHRvbSddLmluZGV4T2YocGxhY2VtZW50KSAhPT0gLTE7XG4gIHZhciBzaWRlID0gaXNWZXJ0aWNhbCA/ICdyaWdodCcgOiAnYm90dG9tJztcbiAgdmFyIG9wU2lkZSA9IGlzVmVydGljYWwgPyAnbGVmdCcgOiAndG9wJztcbiAgdmFyIG1lYXN1cmVtZW50ID0gaXNWZXJ0aWNhbCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcblxuICBpZiAocG9wcGVyW3NpZGVdIDwgZmxvb3IocmVmZXJlbmNlW29wU2lkZV0pKSB7XG4gICAgZGF0YS5vZmZzZXRzLnBvcHBlcltvcFNpZGVdID0gZmxvb3IocmVmZXJlbmNlW29wU2lkZV0pIC0gcG9wcGVyW21lYXN1cmVtZW50XTtcbiAgfVxuICBpZiAocG9wcGVyW29wU2lkZV0gPiBmbG9vcihyZWZlcmVuY2Vbc2lkZV0pKSB7XG4gICAgZGF0YS5vZmZzZXRzLnBvcHBlcltvcFNpZGVdID0gZmxvb3IocmVmZXJlbmNlW3NpZGVdKTtcbiAgfVxuXG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgc3RyaW5nIGNvbnRhaW5pbmcgdmFsdWUgKyB1bml0IGludG8gYSBweCB2YWx1ZSBudW1iZXJcbiAqIEBmdW5jdGlvblxuICogQG1lbWJlcm9mIHttb2RpZmllcnN+b2Zmc2V0fVxuICogQHByaXZhdGVcbiAqIEBhcmd1bWVudCB7U3RyaW5nfSBzdHIgLSBWYWx1ZSArIHVuaXQgc3RyaW5nXG4gKiBAYXJndW1lbnQge1N0cmluZ30gbWVhc3VyZW1lbnQgLSBgaGVpZ2h0YCBvciBgd2lkdGhgXG4gKiBAYXJndW1lbnQge09iamVjdH0gcG9wcGVyT2Zmc2V0c1xuICogQGFyZ3VtZW50IHtPYmplY3R9IHJlZmVyZW5jZU9mZnNldHNcbiAqIEByZXR1cm5zIHtOdW1iZXJ8U3RyaW5nfVxuICogVmFsdWUgaW4gcGl4ZWxzLCBvciBvcmlnaW5hbCBzdHJpbmcgaWYgbm8gdmFsdWVzIHdlcmUgZXh0cmFjdGVkXG4gKi9cbmZ1bmN0aW9uIHRvVmFsdWUoc3RyLCBtZWFzdXJlbWVudCwgcG9wcGVyT2Zmc2V0cywgcmVmZXJlbmNlT2Zmc2V0cykge1xuICAvLyBzZXBhcmF0ZSB2YWx1ZSBmcm9tIHVuaXRcbiAgdmFyIHNwbGl0ID0gc3RyLm1hdGNoKC8oKD86XFwtfFxcKyk/XFxkKlxcLj9cXGQqKSguKikvKTtcbiAgdmFyIHZhbHVlID0gK3NwbGl0WzFdO1xuICB2YXIgdW5pdCA9IHNwbGl0WzJdO1xuXG4gIC8vIElmIGl0J3Mgbm90IGEgbnVtYmVyIGl0J3MgYW4gb3BlcmF0b3IsIEkgZ3Vlc3NcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICBpZiAodW5pdC5pbmRleE9mKCclJykgPT09IDApIHtcbiAgICB2YXIgZWxlbWVudCA9IHZvaWQgMDtcbiAgICBzd2l0Y2ggKHVuaXQpIHtcbiAgICAgIGNhc2UgJyVwJzpcbiAgICAgICAgZWxlbWVudCA9IHBvcHBlck9mZnNldHM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnJSc6XG4gICAgICBjYXNlICclcic6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBlbGVtZW50ID0gcmVmZXJlbmNlT2Zmc2V0cztcbiAgICB9XG5cbiAgICB2YXIgcmVjdCA9IGdldENsaWVudFJlY3QoZWxlbWVudCk7XG4gICAgcmV0dXJuIHJlY3RbbWVhc3VyZW1lbnRdIC8gMTAwICogdmFsdWU7XG4gIH0gZWxzZSBpZiAodW5pdCA9PT0gJ3ZoJyB8fCB1bml0ID09PSAndncnKSB7XG4gICAgLy8gaWYgaXMgYSB2aCBvciB2dywgd2UgY2FsY3VsYXRlIHRoZSBzaXplIGJhc2VkIG9uIHRoZSB2aWV3cG9ydFxuICAgIHZhciBzaXplID0gdm9pZCAwO1xuICAgIGlmICh1bml0ID09PSAndmgnKSB7XG4gICAgICBzaXplID0gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCwgd2luZG93LmlubmVySGVpZ2h0IHx8IDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzaXplID0gTWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoLCB3aW5kb3cuaW5uZXJXaWR0aCB8fCAwKTtcbiAgICB9XG4gICAgcmV0dXJuIHNpemUgLyAxMDAgKiB2YWx1ZTtcbiAgfSBlbHNlIHtcbiAgICAvLyBpZiBpcyBhbiBleHBsaWNpdCBwaXhlbCB1bml0LCB3ZSBnZXQgcmlkIG9mIHRoZSB1bml0IGFuZCBrZWVwIHRoZSB2YWx1ZVxuICAgIC8vIGlmIGlzIGFuIGltcGxpY2l0IHVuaXQsIGl0J3MgcHgsIGFuZCB3ZSByZXR1cm4ganVzdCB0aGUgdmFsdWVcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbn1cblxuLyoqXG4gKiBQYXJzZSBhbiBgb2Zmc2V0YCBzdHJpbmcgdG8gZXh0cmFwb2xhdGUgYHhgIGFuZCBgeWAgbnVtZXJpYyBvZmZzZXRzLlxuICogQGZ1bmN0aW9uXG4gKiBAbWVtYmVyb2Yge21vZGlmaWVyc35vZmZzZXR9XG4gKiBAcHJpdmF0ZVxuICogQGFyZ3VtZW50IHtTdHJpbmd9IG9mZnNldFxuICogQGFyZ3VtZW50IHtPYmplY3R9IHBvcHBlck9mZnNldHNcbiAqIEBhcmd1bWVudCB7T2JqZWN0fSByZWZlcmVuY2VPZmZzZXRzXG4gKiBAYXJndW1lbnQge1N0cmluZ30gYmFzZVBsYWNlbWVudFxuICogQHJldHVybnMge0FycmF5fSBhIHR3byBjZWxscyBhcnJheSB3aXRoIHggYW5kIHkgb2Zmc2V0cyBpbiBudW1iZXJzXG4gKi9cbmZ1bmN0aW9uIHBhcnNlT2Zmc2V0KG9mZnNldCwgcG9wcGVyT2Zmc2V0cywgcmVmZXJlbmNlT2Zmc2V0cywgYmFzZVBsYWNlbWVudCkge1xuICB2YXIgb2Zmc2V0cyA9IFswLCAwXTtcblxuICAvLyBVc2UgaGVpZ2h0IGlmIHBsYWNlbWVudCBpcyBsZWZ0IG9yIHJpZ2h0IGFuZCBpbmRleCBpcyAwIG90aGVyd2lzZSB1c2Ugd2lkdGhcbiAgLy8gaW4gdGhpcyB3YXkgdGhlIGZpcnN0IG9mZnNldCB3aWxsIHVzZSBhbiBheGlzIGFuZCB0aGUgc2Vjb25kIG9uZVxuICAvLyB3aWxsIHVzZSB0aGUgb3RoZXIgb25lXG4gIHZhciB1c2VIZWlnaHQgPSBbJ3JpZ2h0JywgJ2xlZnQnXS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpICE9PSAtMTtcblxuICAvLyBTcGxpdCB0aGUgb2Zmc2V0IHN0cmluZyB0byBvYnRhaW4gYSBsaXN0IG9mIHZhbHVlcyBhbmQgb3BlcmFuZHNcbiAgLy8gVGhlIHJlZ2V4IGFkZHJlc3NlcyB2YWx1ZXMgd2l0aCB0aGUgcGx1cyBvciBtaW51cyBzaWduIGluIGZyb250ICgrMTAsIC0yMCwgZXRjKVxuICB2YXIgZnJhZ21lbnRzID0gb2Zmc2V0LnNwbGl0KC8oXFwrfFxcLSkvKS5tYXAoZnVuY3Rpb24gKGZyYWcpIHtcbiAgICByZXR1cm4gZnJhZy50cmltKCk7XG4gIH0pO1xuXG4gIC8vIERldGVjdCBpZiB0aGUgb2Zmc2V0IHN0cmluZyBjb250YWlucyBhIHBhaXIgb2YgdmFsdWVzIG9yIGEgc2luZ2xlIG9uZVxuICAvLyB0aGV5IGNvdWxkIGJlIHNlcGFyYXRlZCBieSBjb21tYSBvciBzcGFjZVxuICB2YXIgZGl2aWRlciA9IGZyYWdtZW50cy5pbmRleE9mKGZpbmQoZnJhZ21lbnRzLCBmdW5jdGlvbiAoZnJhZykge1xuICAgIHJldHVybiBmcmFnLnNlYXJjaCgvLHxcXHMvKSAhPT0gLTE7XG4gIH0pKTtcblxuICBpZiAoZnJhZ21lbnRzW2RpdmlkZXJdICYmIGZyYWdtZW50c1tkaXZpZGVyXS5pbmRleE9mKCcsJykgPT09IC0xKSB7XG4gICAgY29uc29sZS53YXJuKCdPZmZzZXRzIHNlcGFyYXRlZCBieSB3aGl0ZSBzcGFjZShzKSBhcmUgZGVwcmVjYXRlZCwgdXNlIGEgY29tbWEgKCwpIGluc3RlYWQuJyk7XG4gIH1cblxuICAvLyBJZiBkaXZpZGVyIGlzIGZvdW5kLCB3ZSBkaXZpZGUgdGhlIGxpc3Qgb2YgdmFsdWVzIGFuZCBvcGVyYW5kcyB0byBkaXZpZGVcbiAgLy8gdGhlbSBieSBvZnNldCBYIGFuZCBZLlxuICB2YXIgc3BsaXRSZWdleCA9IC9cXHMqLFxccyp8XFxzKy87XG4gIHZhciBvcHMgPSBkaXZpZGVyICE9PSAtMSA/IFtmcmFnbWVudHMuc2xpY2UoMCwgZGl2aWRlcikuY29uY2F0KFtmcmFnbWVudHNbZGl2aWRlcl0uc3BsaXQoc3BsaXRSZWdleClbMF1dKSwgW2ZyYWdtZW50c1tkaXZpZGVyXS5zcGxpdChzcGxpdFJlZ2V4KVsxXV0uY29uY2F0KGZyYWdtZW50cy5zbGljZShkaXZpZGVyICsgMSkpXSA6IFtmcmFnbWVudHNdO1xuXG4gIC8vIENvbnZlcnQgdGhlIHZhbHVlcyB3aXRoIHVuaXRzIHRvIGFic29sdXRlIHBpeGVscyB0byBhbGxvdyBvdXIgY29tcHV0YXRpb25zXG4gIG9wcyA9IG9wcy5tYXAoZnVuY3Rpb24gKG9wLCBpbmRleCkge1xuICAgIC8vIE1vc3Qgb2YgdGhlIHVuaXRzIHJlbHkgb24gdGhlIG9yaWVudGF0aW9uIG9mIHRoZSBwb3BwZXJcbiAgICB2YXIgbWVhc3VyZW1lbnQgPSAoaW5kZXggPT09IDEgPyAhdXNlSGVpZ2h0IDogdXNlSGVpZ2h0KSA/ICdoZWlnaHQnIDogJ3dpZHRoJztcbiAgICB2YXIgbWVyZ2VXaXRoUHJldmlvdXMgPSBmYWxzZTtcbiAgICByZXR1cm4gb3BcbiAgICAvLyBUaGlzIGFnZ3JlZ2F0ZXMgYW55IGArYCBvciBgLWAgc2lnbiB0aGF0IGFyZW4ndCBjb25zaWRlcmVkIG9wZXJhdG9yc1xuICAgIC8vIGUuZy46IDEwICsgKzUgPT4gWzEwLCArLCArNV1cbiAgICAucmVkdWNlKGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICBpZiAoYVthLmxlbmd0aCAtIDFdID09PSAnJyAmJiBbJysnLCAnLSddLmluZGV4T2YoYikgIT09IC0xKSB7XG4gICAgICAgIGFbYS5sZW5ndGggLSAxXSA9IGI7XG4gICAgICAgIG1lcmdlV2l0aFByZXZpb3VzID0gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIGE7XG4gICAgICB9IGVsc2UgaWYgKG1lcmdlV2l0aFByZXZpb3VzKSB7XG4gICAgICAgIGFbYS5sZW5ndGggLSAxXSArPSBiO1xuICAgICAgICBtZXJnZVdpdGhQcmV2aW91cyA9IGZhbHNlO1xuICAgICAgICByZXR1cm4gYTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBhLmNvbmNhdChiKTtcbiAgICAgIH1cbiAgICB9LCBbXSlcbiAgICAvLyBIZXJlIHdlIGNvbnZlcnQgdGhlIHN0cmluZyB2YWx1ZXMgaW50byBudW1iZXIgdmFsdWVzIChpbiBweClcbiAgICAubWFwKGZ1bmN0aW9uIChzdHIpIHtcbiAgICAgIHJldHVybiB0b1ZhbHVlKHN0ciwgbWVhc3VyZW1lbnQsIHBvcHBlck9mZnNldHMsIHJlZmVyZW5jZU9mZnNldHMpO1xuICAgIH0pO1xuICB9KTtcblxuICAvLyBMb29wIHRyb3VnaCB0aGUgb2Zmc2V0cyBhcnJheXMgYW5kIGV4ZWN1dGUgdGhlIG9wZXJhdGlvbnNcbiAgb3BzLmZvckVhY2goZnVuY3Rpb24gKG9wLCBpbmRleCkge1xuICAgIG9wLmZvckVhY2goZnVuY3Rpb24gKGZyYWcsIGluZGV4Mikge1xuICAgICAgaWYgKGlzTnVtZXJpYyhmcmFnKSkge1xuICAgICAgICBvZmZzZXRzW2luZGV4XSArPSBmcmFnICogKG9wW2luZGV4MiAtIDFdID09PSAnLScgPyAtMSA6IDEpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIG9mZnNldHM7XG59XG5cbi8qKlxuICogQGZ1bmN0aW9uXG4gKiBAbWVtYmVyb2YgTW9kaWZpZXJzXG4gKiBAYXJndW1lbnQge09iamVjdH0gZGF0YSAtIFRoZSBkYXRhIG9iamVjdCBnZW5lcmF0ZWQgYnkgdXBkYXRlIG1ldGhvZFxuICogQGFyZ3VtZW50IHtPYmplY3R9IG9wdGlvbnMgLSBNb2RpZmllcnMgY29uZmlndXJhdGlvbiBhbmQgb3B0aW9uc1xuICogQGFyZ3VtZW50IHtOdW1iZXJ8U3RyaW5nfSBvcHRpb25zLm9mZnNldD0wXG4gKiBUaGUgb2Zmc2V0IHZhbHVlIGFzIGRlc2NyaWJlZCBpbiB0aGUgbW9kaWZpZXIgZGVzY3JpcHRpb25cbiAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBkYXRhIG9iamVjdCwgcHJvcGVybHkgbW9kaWZpZWRcbiAqL1xuZnVuY3Rpb24gb2Zmc2V0KGRhdGEsIF9yZWYpIHtcbiAgdmFyIG9mZnNldCA9IF9yZWYub2Zmc2V0O1xuICB2YXIgcGxhY2VtZW50ID0gZGF0YS5wbGFjZW1lbnQsXG4gICAgICBfZGF0YSRvZmZzZXRzID0gZGF0YS5vZmZzZXRzLFxuICAgICAgcG9wcGVyID0gX2RhdGEkb2Zmc2V0cy5wb3BwZXIsXG4gICAgICByZWZlcmVuY2UgPSBfZGF0YSRvZmZzZXRzLnJlZmVyZW5jZTtcblxuICB2YXIgYmFzZVBsYWNlbWVudCA9IHBsYWNlbWVudC5zcGxpdCgnLScpWzBdO1xuXG4gIHZhciBvZmZzZXRzID0gdm9pZCAwO1xuICBpZiAoaXNOdW1lcmljKCtvZmZzZXQpKSB7XG4gICAgb2Zmc2V0cyA9IFsrb2Zmc2V0LCAwXTtcbiAgfSBlbHNlIHtcbiAgICBvZmZzZXRzID0gcGFyc2VPZmZzZXQob2Zmc2V0LCBwb3BwZXIsIHJlZmVyZW5jZSwgYmFzZVBsYWNlbWVudCk7XG4gIH1cblxuICBpZiAoYmFzZVBsYWNlbWVudCA9PT0gJ2xlZnQnKSB7XG4gICAgcG9wcGVyLnRvcCArPSBvZmZzZXRzWzBdO1xuICAgIHBvcHBlci5sZWZ0IC09IG9mZnNldHNbMV07XG4gIH0gZWxzZSBpZiAoYmFzZVBsYWNlbWVudCA9PT0gJ3JpZ2h0Jykge1xuICAgIHBvcHBlci50b3AgKz0gb2Zmc2V0c1swXTtcbiAgICBwb3BwZXIubGVmdCArPSBvZmZzZXRzWzFdO1xuICB9IGVsc2UgaWYgKGJhc2VQbGFjZW1lbnQgPT09ICd0b3AnKSB7XG4gICAgcG9wcGVyLmxlZnQgKz0gb2Zmc2V0c1swXTtcbiAgICBwb3BwZXIudG9wIC09IG9mZnNldHNbMV07XG4gIH0gZWxzZSBpZiAoYmFzZVBsYWNlbWVudCA9PT0gJ2JvdHRvbScpIHtcbiAgICBwb3BwZXIubGVmdCArPSBvZmZzZXRzWzBdO1xuICAgIHBvcHBlci50b3AgKz0gb2Zmc2V0c1sxXTtcbiAgfVxuXG4gIGRhdGEucG9wcGVyID0gcG9wcGVyO1xuICByZXR1cm4gZGF0YTtcbn1cblxuLyoqXG4gKiBAZnVuY3Rpb25cbiAqIEBtZW1iZXJvZiBNb2RpZmllcnNcbiAqIEBhcmd1bWVudCB7T2JqZWN0fSBkYXRhIC0gVGhlIGRhdGEgb2JqZWN0IGdlbmVyYXRlZCBieSBgdXBkYXRlYCBtZXRob2RcbiAqIEBhcmd1bWVudCB7T2JqZWN0fSBvcHRpb25zIC0gTW9kaWZpZXJzIGNvbmZpZ3VyYXRpb24gYW5kIG9wdGlvbnNcbiAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBkYXRhIG9iamVjdCwgcHJvcGVybHkgbW9kaWZpZWRcbiAqL1xuZnVuY3Rpb24gcHJldmVudE92ZXJmbG93KGRhdGEsIG9wdGlvbnMpIHtcbiAgdmFyIGJvdW5kYXJpZXNFbGVtZW50ID0gb3B0aW9ucy5ib3VuZGFyaWVzRWxlbWVudCB8fCBnZXRPZmZzZXRQYXJlbnQoZGF0YS5pbnN0YW5jZS5wb3BwZXIpO1xuICB2YXIgYm91bmRhcmllcyA9IGdldEJvdW5kYXJpZXMoZGF0YS5pbnN0YW5jZS5wb3BwZXIsIGRhdGEuaW5zdGFuY2UucmVmZXJlbmNlLCBvcHRpb25zLnBhZGRpbmcsIGJvdW5kYXJpZXNFbGVtZW50KTtcbiAgb3B0aW9ucy5ib3VuZGFyaWVzID0gYm91bmRhcmllcztcblxuICB2YXIgb3JkZXIgPSBvcHRpb25zLnByaW9yaXR5O1xuICB2YXIgcG9wcGVyID0gZ2V0Q2xpZW50UmVjdChkYXRhLm9mZnNldHMucG9wcGVyKTtcblxuICB2YXIgY2hlY2sgPSB7XG4gICAgcHJpbWFyeTogZnVuY3Rpb24gcHJpbWFyeShwbGFjZW1lbnQpIHtcbiAgICAgIHZhciB2YWx1ZSA9IHBvcHBlcltwbGFjZW1lbnRdO1xuICAgICAgaWYgKHBvcHBlcltwbGFjZW1lbnRdIDwgYm91bmRhcmllc1twbGFjZW1lbnRdICYmICFvcHRpb25zLmVzY2FwZVdpdGhSZWZlcmVuY2UpIHtcbiAgICAgICAgdmFsdWUgPSBNYXRoLm1heChwb3BwZXJbcGxhY2VtZW50XSwgYm91bmRhcmllc1twbGFjZW1lbnRdKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eSh7fSwgcGxhY2VtZW50LCB2YWx1ZSk7XG4gICAgfSxcbiAgICBzZWNvbmRhcnk6IGZ1bmN0aW9uIHNlY29uZGFyeShwbGFjZW1lbnQpIHtcbiAgICAgIHZhciBtYWluU2lkZSA9IHBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/ICdsZWZ0JyA6ICd0b3AnO1xuICAgICAgdmFyIHZhbHVlID0gcG9wcGVyW21haW5TaWRlXTtcbiAgICAgIGlmIChwb3BwZXJbcGxhY2VtZW50XSA+IGJvdW5kYXJpZXNbcGxhY2VtZW50XSAmJiAhb3B0aW9ucy5lc2NhcGVXaXRoUmVmZXJlbmNlKSB7XG4gICAgICAgIHZhbHVlID0gTWF0aC5taW4ocG9wcGVyW21haW5TaWRlXSwgYm91bmRhcmllc1twbGFjZW1lbnRdIC0gKHBsYWNlbWVudCA9PT0gJ3JpZ2h0JyA/IHBvcHBlci53aWR0aCA6IHBvcHBlci5oZWlnaHQpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBkZWZpbmVQcm9wZXJ0eSh7fSwgbWFpblNpZGUsIHZhbHVlKTtcbiAgICB9XG4gIH07XG5cbiAgb3JkZXIuZm9yRWFjaChmdW5jdGlvbiAocGxhY2VtZW50KSB7XG4gICAgdmFyIHNpZGUgPSBbJ2xlZnQnLCAndG9wJ10uaW5kZXhPZihwbGFjZW1lbnQpICE9PSAtMSA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknO1xuICAgIHBvcHBlciA9IF9leHRlbmRzKHt9LCBwb3BwZXIsIGNoZWNrW3NpZGVdKHBsYWNlbWVudCkpO1xuICB9KTtcblxuICBkYXRhLm9mZnNldHMucG9wcGVyID0gcG9wcGVyO1xuXG4gIHJldHVybiBkYXRhO1xufVxuXG4vKipcbiAqIEBmdW5jdGlvblxuICogQG1lbWJlcm9mIE1vZGlmaWVyc1xuICogQGFyZ3VtZW50IHtPYmplY3R9IGRhdGEgLSBUaGUgZGF0YSBvYmplY3QgZ2VuZXJhdGVkIGJ5IGB1cGRhdGVgIG1ldGhvZFxuICogQGFyZ3VtZW50IHtPYmplY3R9IG9wdGlvbnMgLSBNb2RpZmllcnMgY29uZmlndXJhdGlvbiBhbmQgb3B0aW9uc1xuICogQHJldHVybnMge09iamVjdH0gVGhlIGRhdGEgb2JqZWN0LCBwcm9wZXJseSBtb2RpZmllZFxuICovXG5mdW5jdGlvbiBzaGlmdChkYXRhKSB7XG4gIHZhciBwbGFjZW1lbnQgPSBkYXRhLnBsYWNlbWVudDtcbiAgdmFyIGJhc2VQbGFjZW1lbnQgPSBwbGFjZW1lbnQuc3BsaXQoJy0nKVswXTtcbiAgdmFyIHNoaWZ0dmFyaWF0aW9uID0gcGxhY2VtZW50LnNwbGl0KCctJylbMV07XG5cbiAgLy8gaWYgc2hpZnQgc2hpZnR2YXJpYXRpb24gaXMgc3BlY2lmaWVkLCBydW4gdGhlIG1vZGlmaWVyXG4gIGlmIChzaGlmdHZhcmlhdGlvbikge1xuICAgIHZhciByZWZlcmVuY2UgPSBkYXRhLm9mZnNldHMucmVmZXJlbmNlO1xuICAgIHZhciBwb3BwZXIgPSBnZXRDbGllbnRSZWN0KGRhdGEub2Zmc2V0cy5wb3BwZXIpO1xuICAgIHZhciBpc1ZlcnRpY2FsID0gWydib3R0b20nLCAndG9wJ10uaW5kZXhPZihiYXNlUGxhY2VtZW50KSAhPT0gLTE7XG4gICAgdmFyIHNpZGUgPSBpc1ZlcnRpY2FsID8gJ2xlZnQnIDogJ3RvcCc7XG4gICAgdmFyIG1lYXN1cmVtZW50ID0gaXNWZXJ0aWNhbCA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcblxuICAgIHZhciBzaGlmdE9mZnNldHMgPSB7XG4gICAgICBzdGFydDogZGVmaW5lUHJvcGVydHkoe30sIHNpZGUsIHJlZmVyZW5jZVtzaWRlXSksXG4gICAgICBlbmQ6IGRlZmluZVByb3BlcnR5KHt9LCBzaWRlLCByZWZlcmVuY2Vbc2lkZV0gKyByZWZlcmVuY2VbbWVhc3VyZW1lbnRdIC0gcG9wcGVyW21lYXN1cmVtZW50XSlcbiAgICB9O1xuXG4gICAgZGF0YS5vZmZzZXRzLnBvcHBlciA9IF9leHRlbmRzKHt9LCBwb3BwZXIsIHNoaWZ0T2Zmc2V0c1tzaGlmdHZhcmlhdGlvbl0pO1xuICB9XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8qKlxuICogQGZ1bmN0aW9uXG4gKiBAbWVtYmVyb2YgTW9kaWZpZXJzXG4gKiBAYXJndW1lbnQge09iamVjdH0gZGF0YSAtIFRoZSBkYXRhIG9iamVjdCBnZW5lcmF0ZWQgYnkgdXBkYXRlIG1ldGhvZFxuICogQGFyZ3VtZW50IHtPYmplY3R9IG9wdGlvbnMgLSBNb2RpZmllcnMgY29uZmlndXJhdGlvbiBhbmQgb3B0aW9uc1xuICogQHJldHVybnMge09iamVjdH0gVGhlIGRhdGEgb2JqZWN0LCBwcm9wZXJseSBtb2RpZmllZFxuICovXG5mdW5jdGlvbiBoaWRlKGRhdGEpIHtcbiAgaWYgKCFpc01vZGlmaWVyUmVxdWlyZWQoZGF0YS5pbnN0YW5jZS5tb2RpZmllcnMsICdoaWRlJywgJ3ByZXZlbnRPdmVyZmxvdycpKSB7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICB2YXIgcmVmUmVjdCA9IGRhdGEub2Zmc2V0cy5yZWZlcmVuY2U7XG4gIHZhciBib3VuZCA9IGZpbmQoZGF0YS5pbnN0YW5jZS5tb2RpZmllcnMsIGZ1bmN0aW9uIChtb2RpZmllcikge1xuICAgIHJldHVybiBtb2RpZmllci5uYW1lID09PSAncHJldmVudE92ZXJmbG93JztcbiAgfSkuYm91bmRhcmllcztcblxuICBpZiAocmVmUmVjdC5ib3R0b20gPCBib3VuZC50b3AgfHwgcmVmUmVjdC5sZWZ0ID4gYm91bmQucmlnaHQgfHwgcmVmUmVjdC50b3AgPiBib3VuZC5ib3R0b20gfHwgcmVmUmVjdC5yaWdodCA8IGJvdW5kLmxlZnQpIHtcbiAgICAvLyBBdm9pZCB1bm5lY2Vzc2FyeSBET00gYWNjZXNzIGlmIHZpc2liaWxpdHkgaGFzbid0IGNoYW5nZWRcbiAgICBpZiAoZGF0YS5oaWRlID09PSB0cnVlKSB7XG4gICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBkYXRhLmhpZGUgPSB0cnVlO1xuICAgIGRhdGEuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddID0gJyc7XG4gIH0gZWxzZSB7XG4gICAgLy8gQXZvaWQgdW5uZWNlc3NhcnkgRE9NIGFjY2VzcyBpZiB2aXNpYmlsaXR5IGhhc24ndCBjaGFuZ2VkXG4gICAgaWYgKGRhdGEuaGlkZSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIGRhdGEuaGlkZSA9IGZhbHNlO1xuICAgIGRhdGEuYXR0cmlidXRlc1sneC1vdXQtb2YtYm91bmRhcmllcyddID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gZGF0YTtcbn1cblxuLyoqXG4gKiBAZnVuY3Rpb25cbiAqIEBtZW1iZXJvZiBNb2RpZmllcnNcbiAqIEBhcmd1bWVudCB7T2JqZWN0fSBkYXRhIC0gVGhlIGRhdGEgb2JqZWN0IGdlbmVyYXRlZCBieSBgdXBkYXRlYCBtZXRob2RcbiAqIEBhcmd1bWVudCB7T2JqZWN0fSBvcHRpb25zIC0gTW9kaWZpZXJzIGNvbmZpZ3VyYXRpb24gYW5kIG9wdGlvbnNcbiAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBkYXRhIG9iamVjdCwgcHJvcGVybHkgbW9kaWZpZWRcbiAqL1xuZnVuY3Rpb24gaW5uZXIoZGF0YSkge1xuICB2YXIgcGxhY2VtZW50ID0gZGF0YS5wbGFjZW1lbnQ7XG4gIHZhciBiYXNlUGxhY2VtZW50ID0gcGxhY2VtZW50LnNwbGl0KCctJylbMF07XG4gIHZhciBwb3BwZXIgPSBnZXRDbGllbnRSZWN0KGRhdGEub2Zmc2V0cy5wb3BwZXIpO1xuICB2YXIgcmVmZXJlbmNlID0gZ2V0Q2xpZW50UmVjdChkYXRhLm9mZnNldHMucmVmZXJlbmNlKTtcbiAgdmFyIGlzSG9yaXogPSBbJ2xlZnQnLCAncmlnaHQnXS5pbmRleE9mKGJhc2VQbGFjZW1lbnQpICE9PSAtMTtcblxuICB2YXIgc3VidHJhY3RMZW5ndGggPSBbJ3RvcCcsICdsZWZ0J10uaW5kZXhPZihiYXNlUGxhY2VtZW50KSA9PT0gLTE7XG5cbiAgcG9wcGVyW2lzSG9yaXogPyAnbGVmdCcgOiAndG9wJ10gPSByZWZlcmVuY2VbcGxhY2VtZW50XSAtIChzdWJ0cmFjdExlbmd0aCA/IHBvcHBlcltpc0hvcml6ID8gJ3dpZHRoJyA6ICdoZWlnaHQnXSA6IDApO1xuXG4gIGRhdGEucGxhY2VtZW50ID0gZ2V0T3Bwb3NpdGVQbGFjZW1lbnQocGxhY2VtZW50KTtcbiAgZGF0YS5vZmZzZXRzLnBvcHBlciA9IGdldENsaWVudFJlY3QocG9wcGVyKTtcblxuICByZXR1cm4gZGF0YTtcbn1cblxuLyoqXG4gKiBNb2RpZmllciBmdW5jdGlvbiwgZWFjaCBtb2RpZmllciBjYW4gaGF2ZSBhIGZ1bmN0aW9uIG9mIHRoaXMgdHlwZSBhc3NpZ25lZFxuICogdG8gaXRzIGBmbmAgcHJvcGVydHkuPGJyIC8+XG4gKiBUaGVzZSBmdW5jdGlvbnMgd2lsbCBiZSBjYWxsZWQgb24gZWFjaCB1cGRhdGUsIHRoaXMgbWVhbnMgdGhhdCB5b3UgbXVzdFxuICogbWFrZSBzdXJlIHRoZXkgYXJlIHBlcmZvcm1hbnQgZW5vdWdoIHRvIGF2b2lkIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLlxuICpcbiAqIEBmdW5jdGlvbiBNb2RpZmllckZuXG4gKiBAYXJndW1lbnQge2RhdGFPYmplY3R9IGRhdGEgLSBUaGUgZGF0YSBvYmplY3QgZ2VuZXJhdGVkIGJ5IGB1cGRhdGVgIG1ldGhvZFxuICogQGFyZ3VtZW50IHtPYmplY3R9IG9wdGlvbnMgLSBNb2RpZmllcnMgY29uZmlndXJhdGlvbiBhbmQgb3B0aW9uc1xuICogQHJldHVybnMge2RhdGFPYmplY3R9IFRoZSBkYXRhIG9iamVjdCwgcHJvcGVybHkgbW9kaWZpZWRcbiAqL1xuXG4vKipcbiAqIE1vZGlmaWVycyBhcmUgcGx1Z2lucyB1c2VkIHRvIGFsdGVyIHRoZSBiZWhhdmlvciBvZiB5b3VyIHBvcHBlcnMuPGJyIC8+XG4gKiBQb3BwZXIuanMgdXNlcyBhIHNldCBvZiA5IG1vZGlmaWVycyB0byBwcm92aWRlIGFsbCB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0aWVzXG4gKiBuZWVkZWQgYnkgdGhlIGxpYnJhcnkuXG4gKlxuICogVXN1YWxseSB5b3UgZG9uJ3Qgd2FudCB0byBvdmVycmlkZSB0aGUgYG9yZGVyYCwgYGZuYCBhbmQgYG9uTG9hZGAgcHJvcHMuXG4gKiBBbGwgdGhlIG90aGVyIHByb3BlcnRpZXMgYXJlIGNvbmZpZ3VyYXRpb25zIHRoYXQgY291bGQgYmUgdHdlYWtlZC5cbiAqIEBuYW1lc3BhY2UgbW9kaWZpZXJzXG4gKi9cbnZhciBtb2RpZmllcnMgPSB7XG4gIC8qKlxuICAgKiBNb2RpZmllciB1c2VkIHRvIHNoaWZ0IHRoZSBwb3BwZXIgb24gdGhlIHN0YXJ0IG9yIGVuZCBvZiBpdHMgcmVmZXJlbmNlXG4gICAqIGVsZW1lbnQuPGJyIC8+XG4gICAqIEl0IHdpbGwgcmVhZCB0aGUgdmFyaWF0aW9uIG9mIHRoZSBgcGxhY2VtZW50YCBwcm9wZXJ0eS48YnIgLz5cbiAgICogSXQgY2FuIGJlIG9uZSBlaXRoZXIgYC1lbmRgIG9yIGAtc3RhcnRgLlxuICAgKiBAbWVtYmVyb2YgbW9kaWZpZXJzXG4gICAqIEBpbm5lclxuICAgKi9cbiAgc2hpZnQ6IHtcbiAgICAvKiogQHByb3Age251bWJlcn0gb3JkZXI9MTAwIC0gSW5kZXggdXNlZCB0byBkZWZpbmUgdGhlIG9yZGVyIG9mIGV4ZWN1dGlvbiAqL1xuICAgIG9yZGVyOiAxMDAsXG4gICAgLyoqIEBwcm9wIHtCb29sZWFufSBlbmFibGVkPXRydWUgLSBXaGV0aGVyIHRoZSBtb2RpZmllciBpcyBlbmFibGVkIG9yIG5vdCAqL1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgLyoqIEBwcm9wIHtNb2RpZmllckZufSAqL1xuICAgIGZuOiBzaGlmdFxuICB9LFxuXG4gIC8qKlxuICAgKiBUaGUgYG9mZnNldGAgbW9kaWZpZXIgY2FuIHNoaWZ0IHlvdXIgcG9wcGVyIG9uIGJvdGggaXRzIGF4aXMuXG4gICAqXG4gICAqIEl0IGFjY2VwdHMgdGhlIGZvbGxvd2luZyB1bml0czpcbiAgICogLSBgcHhgIG9yIHVuaXRsZXNzLCBpbnRlcnByZXRlZCBhcyBwaXhlbHNcbiAgICogLSBgJWAgb3IgYCVyYCwgcGVyY2VudGFnZSByZWxhdGl2ZSB0byB0aGUgbGVuZ3RoIG9mIHRoZSByZWZlcmVuY2UgZWxlbWVudFxuICAgKiAtIGAlcGAsIHBlcmNlbnRhZ2UgcmVsYXRpdmUgdG8gdGhlIGxlbmd0aCBvZiB0aGUgcG9wcGVyIGVsZW1lbnRcbiAgICogLSBgdndgLCBDU1Mgdmlld3BvcnQgd2lkdGggdW5pdFxuICAgKiAtIGB2aGAsIENTUyB2aWV3cG9ydCBoZWlnaHQgdW5pdFxuICAgKlxuICAgKiBGb3IgbGVuZ3RoIGlzIGludGVuZGVkIHRoZSBtYWluIGF4aXMgcmVsYXRpdmUgdG8gdGhlIHBsYWNlbWVudCBvZiB0aGUgcG9wcGVyLjxiciAvPlxuICAgKiBUaGlzIG1lYW5zIHRoYXQgaWYgdGhlIHBsYWNlbWVudCBpcyBgdG9wYCBvciBgYm90dG9tYCwgdGhlIGxlbmd0aCB3aWxsIGJlIHRoZVxuICAgKiBgd2lkdGhgLiBJbiBjYXNlIG9mIGBsZWZ0YCBvciBgcmlnaHRgLCBpdCB3aWxsIGJlIHRoZSBoZWlnaHQuXG4gICAqXG4gICAqIFlvdSBjYW4gcHJvdmlkZSBhIHNpbmdsZSB2YWx1ZSAoYXMgYE51bWJlcmAgb3IgYFN0cmluZ2ApLCBvciBhIHBhaXIgb2YgdmFsdWVzXG4gICAqIGFzIGBTdHJpbmdgIGRpdmlkZWQgYnkgYSBjb21tYSBvciBvbmUgKG9yIG1vcmUpIHdoaXRlIHNwYWNlcy48YnIgLz5cbiAgICogVGhlIGxhdHRlciBpcyBhIGRlcHJlY2F0ZWQgbWV0aG9kIGJlY2F1c2UgaXQgbGVhZHMgdG8gY29uZnVzaW9uIGFuZCB3aWxsIGJlXG4gICAqIHJlbW92ZWQgaW4gdjIuPGJyIC8+XG4gICAqIEFkZGl0aW9uYWxseSwgaXQgYWNjZXB0cyBhZGRpdGlvbnMgYW5kIHN1YnRyYWN0aW9ucyBiZXR3ZWVuIGRpZmZlcmVudCB1bml0cy5cbiAgICogTm90ZSB0aGF0IG11bHRpcGxpY2F0aW9ucyBhbmQgZGl2aXNpb25zIGFyZW4ndCBzdXBwb3J0ZWQuXG4gICAqXG4gICAqIFZhbGlkIGV4YW1wbGVzIGFyZTpcbiAgICogYGBgXG4gICAqIDEwXG4gICAqICcxMCUnXG4gICAqICcxMCwgMTAnXG4gICAqICcxMCUsIDEwJ1xuICAgKiAnMTAgKyAxMCUnXG4gICAqICcxMCAtIDV2aCArIDMlJ1xuICAgKiAnLTEwcHggKyA1dmgsIDVweCAtIDYlJ1xuICAgKiBgYGBcbiAgICpcbiAgICogQG1lbWJlcm9mIG1vZGlmaWVyc1xuICAgKiBAaW5uZXJcbiAgICovXG4gIG9mZnNldDoge1xuICAgIC8qKiBAcHJvcCB7bnVtYmVyfSBvcmRlcj0yMDAgLSBJbmRleCB1c2VkIHRvIGRlZmluZSB0aGUgb3JkZXIgb2YgZXhlY3V0aW9uICovXG4gICAgb3JkZXI6IDIwMCxcbiAgICAvKiogQHByb3Age0Jvb2xlYW59IGVuYWJsZWQ9dHJ1ZSAtIFdoZXRoZXIgdGhlIG1vZGlmaWVyIGlzIGVuYWJsZWQgb3Igbm90ICovXG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAvKiogQHByb3Age01vZGlmaWVyRm59ICovXG4gICAgZm46IG9mZnNldCxcbiAgICAvKiogQHByb3Age051bWJlcnxTdHJpbmd9IG9mZnNldD0wXG4gICAgICogVGhlIG9mZnNldCB2YWx1ZSBhcyBkZXNjcmliZWQgaW4gdGhlIG1vZGlmaWVyIGRlc2NyaXB0aW9uXG4gICAgICovXG4gICAgb2Zmc2V0OiAwXG4gIH0sXG5cbiAgLyoqXG4gICAqIE1vZGlmaWVyIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wcGVyIGZyb20gYmVpbmcgcG9zaXRpb25lZCBvdXRzaWRlIHRoZSBib3VuZGFyeS5cbiAgICpcbiAgICogQW4gc2NlbmFyaW8gZXhpc3RzIHdoZXJlIHRoZSByZWZlcmVuY2UgaXRzZWxmIGlzIG5vdCB3aXRoaW4gdGhlIGJvdW5kYXJpZXMuPGJyIC8+XG4gICAqIFdlIGNhbiBzYXkgaXQgaGFzIFwiZXNjYXBlZCB0aGUgYm91bmRhcmllc1wiIOKAlCBvciBqdXN0IFwiZXNjYXBlZFwiLjxiciAvPlxuICAgKiBJbiB0aGlzIGNhc2Ugd2UgbmVlZCB0byBkZWNpZGUgd2hldGhlciB0aGUgcG9wcGVyIHNob3VsZCBlaXRoZXI6XG4gICAqXG4gICAqIC0gZGV0YWNoIGZyb20gdGhlIHJlZmVyZW5jZSBhbmQgcmVtYWluIFwidHJhcHBlZFwiIGluIHRoZSBib3VuZGFyaWVzLCBvclxuICAgKiAtIGlmIGl0IHNob3VsZCBpZ25vcmUgdGhlIGJvdW5kYXJ5IGFuZCBcImVzY2FwZSB3aXRoIGl0cyByZWZlcmVuY2VcIlxuICAgKlxuICAgKiBXaGVuIGBlc2NhcGVXaXRoUmVmZXJlbmNlYCBpcyBzZXQgdG9gdHJ1ZWAgYW5kIHJlZmVyZW5jZSBpcyBjb21wbGV0ZWx5XG4gICAqIG91dHNpZGUgaXRzIGJvdW5kYXJpZXMsIHRoZSBwb3BwZXIgd2lsbCBvdmVyZmxvdyAob3IgY29tcGxldGVseSBsZWF2ZSlcbiAgICogdGhlIGJvdW5kYXJpZXMgaW4gb3JkZXIgdG8gcmVtYWluIGF0dGFjaGVkIHRvIHRoZSBlZGdlIG9mIHRoZSByZWZlcmVuY2UuXG4gICAqXG4gICAqIEBtZW1iZXJvZiBtb2RpZmllcnNcbiAgICogQGlubmVyXG4gICAqL1xuICBwcmV2ZW50T3ZlcmZsb3c6IHtcbiAgICAvKiogQHByb3Age251bWJlcn0gb3JkZXI9MzAwIC0gSW5kZXggdXNlZCB0byBkZWZpbmUgdGhlIG9yZGVyIG9mIGV4ZWN1dGlvbiAqL1xuICAgIG9yZGVyOiAzMDAsXG4gICAgLyoqIEBwcm9wIHtCb29sZWFufSBlbmFibGVkPXRydWUgLSBXaGV0aGVyIHRoZSBtb2RpZmllciBpcyBlbmFibGVkIG9yIG5vdCAqL1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgLyoqIEBwcm9wIHtNb2RpZmllckZufSAqL1xuICAgIGZuOiBwcmV2ZW50T3ZlcmZsb3csXG4gICAgLyoqXG4gICAgICogQHByb3Age0FycmF5fSBwcmlvcml0eT1bJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbSddXG4gICAgICogUG9wcGVyIHdpbGwgdHJ5IHRvIHByZXZlbnQgb3ZlcmZsb3cgZm9sbG93aW5nIHRoZXNlIHByaW9yaXRpZXMgYnkgZGVmYXVsdCxcbiAgICAgKiB0aGVuLCBpdCBjb3VsZCBvdmVyZmxvdyBvbiB0aGUgbGVmdCBhbmQgb24gdG9wIG9mIHRoZSBgYm91bmRhcmllc0VsZW1lbnRgXG4gICAgICovXG4gICAgcHJpb3JpdHk6IFsnbGVmdCcsICdyaWdodCcsICd0b3AnLCAnYm90dG9tJ10sXG4gICAgLyoqXG4gICAgICogQHByb3Age251bWJlcn0gcGFkZGluZz01XG4gICAgICogQW1vdW50IG9mIHBpeGVsIHVzZWQgdG8gZGVmaW5lIGEgbWluaW11bSBkaXN0YW5jZSBiZXR3ZWVuIHRoZSBib3VuZGFyaWVzXG4gICAgICogYW5kIHRoZSBwb3BwZXIgdGhpcyBtYWtlcyBzdXJlIHRoZSBwb3BwZXIgaGFzIGFsd2F5cyBhIGxpdHRsZSBwYWRkaW5nXG4gICAgICogYmV0d2VlbiB0aGUgZWRnZXMgb2YgaXRzIGNvbnRhaW5lclxuICAgICAqL1xuICAgIHBhZGRpbmc6IDUsXG4gICAgLyoqXG4gICAgICogQHByb3Age1N0cmluZ3xIVE1MRWxlbWVudH0gYm91bmRhcmllc0VsZW1lbnQ9J3Njcm9sbFBhcmVudCdcbiAgICAgKiBCb3VuZGFyaWVzIHVzZWQgYnkgdGhlIG1vZGlmaWVyLCBjYW4gYmUgYHNjcm9sbFBhcmVudGAsIGB3aW5kb3dgLFxuICAgICAqIGB2aWV3cG9ydGAgb3IgYW55IERPTSBlbGVtZW50LlxuICAgICAqL1xuICAgIGJvdW5kYXJpZXNFbGVtZW50OiAnc2Nyb2xsUGFyZW50J1xuICB9LFxuXG4gIC8qKlxuICAgKiBNb2RpZmllciB1c2VkIHRvIG1ha2Ugc3VyZSB0aGUgcmVmZXJlbmNlIGFuZCBpdHMgcG9wcGVyIHN0YXkgbmVhciBlYWNob3RoZXJzXG4gICAqIHdpdGhvdXQgbGVhdmluZyBhbnkgZ2FwIGJldHdlZW4gdGhlIHR3by4gRXhwZWNpYWxseSB1c2VmdWwgd2hlbiB0aGUgYXJyb3cgaXNcbiAgICogZW5hYmxlZCBhbmQgeW91IHdhbnQgdG8gYXNzdXJlIGl0IHRvIHBvaW50IHRvIGl0cyByZWZlcmVuY2UgZWxlbWVudC5cbiAgICogSXQgY2FyZXMgb25seSBhYm91dCB0aGUgZmlyc3QgYXhpcywgeW91IGNhbiBzdGlsbCBoYXZlIHBvcHBlcnMgd2l0aCBtYXJnaW5cbiAgICogYmV0d2VlbiB0aGUgcG9wcGVyIGFuZCBpdHMgcmVmZXJlbmNlIGVsZW1lbnQuXG4gICAqIEBtZW1iZXJvZiBtb2RpZmllcnNcbiAgICogQGlubmVyXG4gICAqL1xuICBrZWVwVG9nZXRoZXI6IHtcbiAgICAvKiogQHByb3Age251bWJlcn0gb3JkZXI9NDAwIC0gSW5kZXggdXNlZCB0byBkZWZpbmUgdGhlIG9yZGVyIG9mIGV4ZWN1dGlvbiAqL1xuICAgIG9yZGVyOiA0MDAsXG4gICAgLyoqIEBwcm9wIHtCb29sZWFufSBlbmFibGVkPXRydWUgLSBXaGV0aGVyIHRoZSBtb2RpZmllciBpcyBlbmFibGVkIG9yIG5vdCAqL1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgLyoqIEBwcm9wIHtNb2RpZmllckZufSAqL1xuICAgIGZuOiBrZWVwVG9nZXRoZXJcbiAgfSxcblxuICAvKipcbiAgICogVGhpcyBtb2RpZmllciBpcyB1c2VkIHRvIG1vdmUgdGhlIGBhcnJvd0VsZW1lbnRgIG9mIHRoZSBwb3BwZXIgdG8gbWFrZVxuICAgKiBzdXJlIGl0IGlzIHBvc2l0aW9uZWQgYmV0d2VlbiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQgYW5kIGl0cyBwb3BwZXIgZWxlbWVudC5cbiAgICogSXQgd2lsbCByZWFkIHRoZSBvdXRlciBzaXplIG9mIHRoZSBgYXJyb3dFbGVtZW50YCBub2RlIHRvIGRldGVjdCBob3cgbWFueVxuICAgKiBwaXhlbHMgb2YgY29uanVjdGlvbiBhcmUgbmVlZGVkLlxuICAgKlxuICAgKiBJdCBoYXMgbm8gZWZmZWN0IGlmIG5vIGBhcnJvd0VsZW1lbnRgIGlzIHByb3ZpZGVkLlxuICAgKiBAbWVtYmVyb2YgbW9kaWZpZXJzXG4gICAqIEBpbm5lclxuICAgKi9cbiAgYXJyb3c6IHtcbiAgICAvKiogQHByb3Age251bWJlcn0gb3JkZXI9NTAwIC0gSW5kZXggdXNlZCB0byBkZWZpbmUgdGhlIG9yZGVyIG9mIGV4ZWN1dGlvbiAqL1xuICAgIG9yZGVyOiA1MDAsXG4gICAgLyoqIEBwcm9wIHtCb29sZWFufSBlbmFibGVkPXRydWUgLSBXaGV0aGVyIHRoZSBtb2RpZmllciBpcyBlbmFibGVkIG9yIG5vdCAqL1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgLyoqIEBwcm9wIHtNb2RpZmllckZufSAqL1xuICAgIGZuOiBhcnJvdyxcbiAgICAvKiogQHByb3Age1N0cmluZ3xIVE1MRWxlbWVudH0gZWxlbWVudD0nW3gtYXJyb3ddJyAtIFNlbGVjdG9yIG9yIG5vZGUgdXNlZCBhcyBhcnJvdyAqL1xuICAgIGVsZW1lbnQ6ICdbeC1hcnJvd10nXG4gIH0sXG5cbiAgLyoqXG4gICAqIE1vZGlmaWVyIHVzZWQgdG8gZmxpcCB0aGUgcG9wcGVyJ3MgcGxhY2VtZW50IHdoZW4gaXQgc3RhcnRzIHRvIG92ZXJsYXAgaXRzXG4gICAqIHJlZmVyZW5jZSBlbGVtZW50LlxuICAgKlxuICAgKiBSZXF1aXJlcyB0aGUgYHByZXZlbnRPdmVyZmxvd2AgbW9kaWZpZXIgYmVmb3JlIGl0IGluIG9yZGVyIHRvIHdvcmsuXG4gICAqXG4gICAqICoqTk9URToqKiB0aGlzIG1vZGlmaWVyIHdpbGwgaW50ZXJydXB0IHRoZSBjdXJyZW50IHVwZGF0ZSBjeWNsZSBhbmQgd2lsbFxuICAgKiByZXN0YXJ0IGl0IGlmIGl0IGRldGVjdHMgdGhlIG5lZWQgdG8gZmxpcCB0aGUgcGxhY2VtZW50LlxuICAgKiBAbWVtYmVyb2YgbW9kaWZpZXJzXG4gICAqIEBpbm5lclxuICAgKi9cbiAgZmxpcDoge1xuICAgIC8qKiBAcHJvcCB7bnVtYmVyfSBvcmRlcj02MDAgLSBJbmRleCB1c2VkIHRvIGRlZmluZSB0aGUgb3JkZXIgb2YgZXhlY3V0aW9uICovXG4gICAgb3JkZXI6IDYwMCxcbiAgICAvKiogQHByb3Age0Jvb2xlYW59IGVuYWJsZWQ9dHJ1ZSAtIFdoZXRoZXIgdGhlIG1vZGlmaWVyIGlzIGVuYWJsZWQgb3Igbm90ICovXG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAvKiogQHByb3Age01vZGlmaWVyRm59ICovXG4gICAgZm46IGZsaXAsXG4gICAgLyoqXG4gICAgICogQHByb3Age1N0cmluZ3xBcnJheX0gYmVoYXZpb3I9J2ZsaXAnXG4gICAgICogVGhlIGJlaGF2aW9yIHVzZWQgdG8gY2hhbmdlIHRoZSBwb3BwZXIncyBwbGFjZW1lbnQuIEl0IGNhbiBiZSBvbmUgb2ZcbiAgICAgKiBgZmxpcGAsIGBjbG9ja3dpc2VgLCBgY291bnRlcmNsb2Nrd2lzZWAgb3IgYW4gYXJyYXkgd2l0aCBhIGxpc3Qgb2YgdmFsaWRcbiAgICAgKiBwbGFjZW1lbnRzICh3aXRoIG9wdGlvbmFsIHZhcmlhdGlvbnMpLlxuICAgICAqL1xuICAgIGJlaGF2aW9yOiAnZmxpcCcsXG4gICAgLyoqXG4gICAgICogQHByb3Age251bWJlcn0gcGFkZGluZz01XG4gICAgICogVGhlIHBvcHBlciB3aWxsIGZsaXAgaWYgaXQgaGl0cyB0aGUgZWRnZXMgb2YgdGhlIGBib3VuZGFyaWVzRWxlbWVudGBcbiAgICAgKi9cbiAgICBwYWRkaW5nOiA1LFxuICAgIC8qKlxuICAgICAqIEBwcm9wIHtTdHJpbmd8SFRNTEVsZW1lbnR9IGJvdW5kYXJpZXNFbGVtZW50PSd2aWV3cG9ydCdcbiAgICAgKiBUaGUgZWxlbWVudCB3aGljaCB3aWxsIGRlZmluZSB0aGUgYm91bmRhcmllcyBvZiB0aGUgcG9wcGVyIHBvc2l0aW9uLFxuICAgICAqIHRoZSBwb3BwZXIgd2lsbCBuZXZlciBiZSBwbGFjZWQgb3V0c2lkZSBvZiB0aGUgZGVmaW5lZCBib3VuZGFyaWVzXG4gICAgICogKGV4Y2VwdCBpZiBrZWVwVG9nZXRoZXIgaXMgZW5hYmxlZClcbiAgICAgKi9cbiAgICBib3VuZGFyaWVzRWxlbWVudDogJ3ZpZXdwb3J0J1xuICB9LFxuXG4gIC8qKlxuICAgKiBNb2RpZmllciB1c2VkIHRvIG1ha2UgdGhlIHBvcHBlciBmbG93IHRvd2FyZCB0aGUgaW5uZXIgb2YgdGhlIHJlZmVyZW5jZSBlbGVtZW50LlxuICAgKiBCeSBkZWZhdWx0LCB3aGVuIHRoaXMgbW9kaWZpZXIgaXMgZGlzYWJsZWQsIHRoZSBwb3BwZXIgd2lsbCBiZSBwbGFjZWQgb3V0c2lkZVxuICAgKiB0aGUgcmVmZXJlbmNlIGVsZW1lbnQuXG4gICAqIEBtZW1iZXJvZiBtb2RpZmllcnNcbiAgICogQGlubmVyXG4gICAqL1xuICBpbm5lcjoge1xuICAgIC8qKiBAcHJvcCB7bnVtYmVyfSBvcmRlcj03MDAgLSBJbmRleCB1c2VkIHRvIGRlZmluZSB0aGUgb3JkZXIgb2YgZXhlY3V0aW9uICovXG4gICAgb3JkZXI6IDcwMCxcbiAgICAvKiogQHByb3Age0Jvb2xlYW59IGVuYWJsZWQ9ZmFsc2UgLSBXaGV0aGVyIHRoZSBtb2RpZmllciBpcyBlbmFibGVkIG9yIG5vdCAqL1xuICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgIC8qKiBAcHJvcCB7TW9kaWZpZXJGbn0gKi9cbiAgICBmbjogaW5uZXJcbiAgfSxcblxuICAvKipcbiAgICogTW9kaWZpZXIgdXNlZCB0byBoaWRlIHRoZSBwb3BwZXIgd2hlbiBpdHMgcmVmZXJlbmNlIGVsZW1lbnQgaXMgb3V0c2lkZSBvZiB0aGVcbiAgICogcG9wcGVyIGJvdW5kYXJpZXMuIEl0IHdpbGwgc2V0IGEgYHgtb3V0LW9mLWJvdW5kYXJpZXNgIGF0dHJpYnV0ZSB3aGljaCBjYW5cbiAgICogYmUgdXNlZCB0byBoaWRlIHdpdGggYSBDU1Mgc2VsZWN0b3IgdGhlIHBvcHBlciB3aGVuIGl0cyByZWZlcmVuY2UgaXNcbiAgICogb3V0IG9mIGJvdW5kYXJpZXMuXG4gICAqXG4gICAqIFJlcXVpcmVzIHRoZSBgcHJldmVudE92ZXJmbG93YCBtb2RpZmllciBiZWZvcmUgaXQgaW4gb3JkZXIgdG8gd29yay5cbiAgICogQG1lbWJlcm9mIG1vZGlmaWVyc1xuICAgKiBAaW5uZXJcbiAgICovXG4gIGhpZGU6IHtcbiAgICAvKiogQHByb3Age251bWJlcn0gb3JkZXI9ODAwIC0gSW5kZXggdXNlZCB0byBkZWZpbmUgdGhlIG9yZGVyIG9mIGV4ZWN1dGlvbiAqL1xuICAgIG9yZGVyOiA4MDAsXG4gICAgLyoqIEBwcm9wIHtCb29sZWFufSBlbmFibGVkPXRydWUgLSBXaGV0aGVyIHRoZSBtb2RpZmllciBpcyBlbmFibGVkIG9yIG5vdCAqL1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgLyoqIEBwcm9wIHtNb2RpZmllckZufSAqL1xuICAgIGZuOiBoaWRlXG4gIH0sXG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIGNvbXB1dGVkIHN0eWxlcyB0byB0aGUgcG9wcGVyIGVsZW1lbnQuXG4gICAqXG4gICAqIEFsbCB0aGUgRE9NIG1hbmlwdWxhdGlvbnMgYXJlIGxpbWl0ZWQgdG8gdGhpcyBtb2RpZmllci4gVGhpcyBpcyB1c2VmdWwgaW4gY2FzZVxuICAgKiB5b3Ugd2FudCB0byBpbnRlZ3JhdGUgUG9wcGVyLmpzIGluc2lkZSBhIGZyYW1ld29yayBvciB2aWV3IGxpYnJhcnkgYW5kIHlvdVxuICAgKiB3YW50IHRvIGRlbGVnYXRlIGFsbCB0aGUgRE9NIG1hbmlwdWxhdGlvbnMgdG8gaXQuXG4gICAqXG4gICAqIEp1c3QgZGlzYWJsZSB0aGlzIG1vZGlmaWVyIGFuZCBkZWZpbmUgeW91IG93biB0byBhY2hpZXZlIHRoZSBkZXNpcmVkIGVmZmVjdC5cbiAgICpcbiAgICogQG1lbWJlcm9mIG1vZGlmaWVyc1xuICAgKiBAaW5uZXJcbiAgICovXG4gIGFwcGx5U3R5bGU6IHtcbiAgICAvKiogQHByb3Age251bWJlcn0gb3JkZXI9OTAwIC0gSW5kZXggdXNlZCB0byBkZWZpbmUgdGhlIG9yZGVyIG9mIGV4ZWN1dGlvbiAqL1xuICAgIG9yZGVyOiA5MDAsXG4gICAgLyoqIEBwcm9wIHtCb29sZWFufSBlbmFibGVkPXRydWUgLSBXaGV0aGVyIHRoZSBtb2RpZmllciBpcyBlbmFibGVkIG9yIG5vdCAqL1xuICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgLyoqIEBwcm9wIHtNb2RpZmllckZufSAqL1xuICAgIGZuOiBhcHBseVN0eWxlLFxuICAgIC8qKiBAcHJvcCB7RnVuY3Rpb259ICovXG4gICAgb25Mb2FkOiBhcHBseVN0eWxlT25Mb2FkLFxuICAgIC8qKlxuICAgICAqIEBwcm9wIHtCb29sZWFufSBncHVBY2NlbGVyYXRpb249dHJ1ZVxuICAgICAqIElmIHRydWUsIGl0IHVzZXMgdGhlIENTUyAzZCB0cmFuc2Zvcm1hdGlvbiB0byBwb3NpdGlvbiB0aGUgcG9wcGVyLlxuICAgICAqIE90aGVyd2lzZSwgaXQgd2lsbCB1c2UgdGhlIGB0b3BgIGFuZCBgbGVmdGAgcHJvcGVydGllcy5cbiAgICAgKi9cbiAgICBncHVBY2NlbGVyYXRpb246IHRydWVcbiAgfVxufTtcblxuLyoqXG4gKiBUaGUgYGRhdGFPYmplY3RgIGlzIGFuIG9iamVjdCBjb250YWluaW5nIGFsbCB0aGUgaW5mb3JtYXRpb25zIHVzZWQgYnkgUG9wcGVyLmpzXG4gKiB0aGlzIG9iamVjdCBnZXQgcGFzc2VkIHRvIG1vZGlmaWVycyBhbmQgdG8gdGhlIGBvbkNyZWF0ZWAgYW5kIGBvblVwZGF0ZWAgY2FsbGJhY2tzLlxuICogQG5hbWUgZGF0YU9iamVjdFxuICogQHByb3BlcnR5IHtPYmplY3R9IGRhdGEuaW5zdGFuY2UgVGhlIFBvcHBlci5qcyBpbnN0YW5jZVxuICogQHByb3BlcnR5IHtTdHJpbmd9IGRhdGEucGxhY2VtZW50IFBsYWNlbWVudCBhcHBsaWVkIHRvIHBvcHBlclxuICogQHByb3BlcnR5IHtTdHJpbmd9IGRhdGEub3JpZ2luYWxQbGFjZW1lbnQgUGxhY2VtZW50IG9yaWdpbmFsbHkgZGVmaW5lZCBvbiBpbml0XG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IGRhdGEuZmxpcHBlZCBUcnVlIGlmIHBvcHBlciBoYXMgYmVlbiBmbGlwcGVkIGJ5IGZsaXAgbW9kaWZpZXJcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gZGF0YS5oaWRlIFRydWUgaWYgdGhlIHJlZmVyZW5jZSBlbGVtZW50IGlzIG91dCBvZiBib3VuZGFyaWVzLCB1c2VmdWwgdG8ga25vdyB3aGVuIHRvIGhpZGUgdGhlIHBvcHBlci5cbiAqIEBwcm9wZXJ0eSB7SFRNTEVsZW1lbnR9IGRhdGEuYXJyb3dFbGVtZW50IE5vZGUgdXNlZCBhcyBhcnJvdyBieSBhcnJvdyBtb2RpZmllclxuICogQHByb3BlcnR5IHtPYmplY3R9IGRhdGEuc3R5bGVzIEFueSBDU1MgcHJvcGVydHkgZGVmaW5lZCBoZXJlIHdpbGwgYmUgYXBwbGllZCB0byB0aGUgcG9wcGVyLCBpdCBleHBlY3RzIHRoZSBKYXZhU2NyaXB0IG5vbWVuY2xhdHVyZSAoZWcuIGBtYXJnaW5Cb3R0b21gKVxuICogQHByb3BlcnR5IHtPYmplY3R9IGRhdGEuYm91bmRhcmllcyBPZmZzZXRzIG9mIHRoZSBwb3BwZXIgYm91bmRhcmllc1xuICogQHByb3BlcnR5IHtPYmplY3R9IGRhdGEub2Zmc2V0cyBUaGUgbWVhc3VyZW1lbnRzIG9mIHBvcHBlciwgcmVmZXJlbmNlIGFuZCBhcnJvdyBlbGVtZW50cy5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBkYXRhLm9mZnNldHMucG9wcGVyIGB0b3BgLCBgbGVmdGAsIGB3aWR0aGAsIGBoZWlnaHRgIHZhbHVlc1xuICogQHByb3BlcnR5IHtPYmplY3R9IGRhdGEub2Zmc2V0cy5yZWZlcmVuY2UgYHRvcGAsIGBsZWZ0YCwgYHdpZHRoYCwgYGhlaWdodGAgdmFsdWVzXG4gKiBAcHJvcGVydHkge09iamVjdH0gZGF0YS5vZmZzZXRzLmFycm9dIGB0b3BgIGFuZCBgbGVmdGAgb2Zmc2V0cywgb25seSBvbmUgb2YgdGhlbSB3aWxsIGJlIGRpZmZlcmVudCBmcm9tIDBcbiAqL1xuXG4vKipcbiAqIERlZmF1bHQgb3B0aW9ucyBwcm92aWRlZCB0byBQb3BwZXIuanMgY29uc3RydWN0b3IuPGJyIC8+XG4gKiBUaGVzZSBjYW4gYmUgb3ZlcnJpZGVuIHVzaW5nIHRoZSBgb3B0aW9uc2AgYXJndW1lbnQgb2YgUG9wcGVyLmpzLjxiciAvPlxuICogVG8gb3ZlcnJpZGUgYW4gb3B0aW9uLCBzaW1wbHkgcGFzcyBhcyAzcmQgYXJndW1lbnQgYW4gb2JqZWN0IHdpdGggdGhlIHNhbWVcbiAqIHN0cnVjdHVyZSBvZiB0aGlzIG9iamVjdCwgZXhhbXBsZTpcbiAqIGBgYFxuICogbmV3IFBvcHBlcihyZWYsIHBvcCwge1xuICogICBtb2RpZmllcnM6IHtcbiAqICAgICBwcmV2ZW50T3ZlcmZsb3c6IHsgZW5hYmxlZDogZmFsc2UgfVxuICogICB9XG4gKiB9KVxuICogYGBgXG4gKiBAdHlwZSB7T2JqZWN0fVxuICogQHN0YXRpY1xuICogQG1lbWJlcm9mIFBvcHBlclxuICovXG52YXIgREVGQVVMVFMgPSB7XG4gIC8qKlxuICAgKiBQb3BwZXIncyBwbGFjZW1lbnRcbiAgICogQHByb3Age1BvcHBlci5wbGFjZW1lbnRzfSBwbGFjZW1lbnQ9J2JvdHRvbSdcbiAgICovXG4gIHBsYWNlbWVudDogJ2JvdHRvbScsXG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgZXZlbnRzIChyZXNpemUsIHNjcm9sbCkgYXJlIGluaXRpYWxseSBlbmFibGVkXG4gICAqIEBwcm9wIHtCb29sZWFufSBldmVudHNFbmFibGVkPXRydWVcbiAgICovXG4gIGV2ZW50c0VuYWJsZWQ6IHRydWUsXG5cbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIGlmIHlvdSB3YW50IHRvIGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBwb3BwZXIgd2hlblxuICAgKiB5b3UgY2FsbCB0aGUgYGRlc3Ryb3lgIG1ldGhvZC5cbiAgICogQHByb3Age0Jvb2xlYW59IHJlbW92ZU9uRGVzdHJveT1mYWxzZVxuICAgKi9cbiAgcmVtb3ZlT25EZXN0cm95OiBmYWxzZSxcblxuICAvKipcbiAgICogQ2FsbGJhY2sgY2FsbGVkIHdoZW4gdGhlIHBvcHBlciBpcyBjcmVhdGVkLjxiciAvPlxuICAgKiBCeSBkZWZhdWx0LCBpcyBzZXQgdG8gbm8tb3AuPGJyIC8+XG4gICAqIEFjY2VzcyBQb3BwZXIuanMgaW5zdGFuY2Ugd2l0aCBgZGF0YS5pbnN0YW5jZWAuXG4gICAqIEBwcm9wIHtvbkNyZWF0ZUNhbGxiYWNrfVxuICAgKi9cbiAgb25DcmVhdGU6IGZ1bmN0aW9uIG9uQ3JlYXRlKCkge30sXG5cbiAgLyoqXG4gICAqIENhbGxiYWNrIGNhbGxlZCB3aGVuIHRoZSBwb3BwZXIgaXMgdXBkYXRlZCwgdGhpcyBjYWxsYmFjayBpcyBub3QgY2FsbGVkXG4gICAqIG9uIHRoZSBpbml0aWFsaXphdGlvbi9jcmVhdGlvbiBvZiB0aGUgcG9wcGVyLCBidXQgb25seSBvbiBzdWJzZXF1ZW50XG4gICAqIHVwZGF0ZXMuPGJyIC8+XG4gICAqIEJ5IGRlZmF1bHQsIGlzIHNldCB0byBuby1vcC48YnIgLz5cbiAgICogQWNjZXNzIFBvcHBlci5qcyBpbnN0YW5jZSB3aXRoIGBkYXRhLmluc3RhbmNlYC5cbiAgICogQHByb3Age29uVXBkYXRlQ2FsbGJhY2t9XG4gICAqL1xuICBvblVwZGF0ZTogZnVuY3Rpb24gb25VcGRhdGUoKSB7fSxcblxuICAvKipcbiAgICogTGlzdCBvZiBtb2RpZmllcnMgdXNlZCB0byBtb2RpZnkgdGhlIG9mZnNldHMgYmVmb3JlIHRoZXkgYXJlIGFwcGxpZWQgdG8gdGhlIHBvcHBlci5cbiAgICogVGhleSBwcm92aWRlIG1vc3Qgb2YgdGhlIGZ1bmN0aW9uYWxpdGllcyBvZiBQb3BwZXIuanNcbiAgICogQHByb3Age21vZGlmaWVyc31cbiAgICovXG4gIG1vZGlmaWVyczogbW9kaWZpZXJzXG59O1xuXG4vKipcbiAqIEBjYWxsYmFjayBvbkNyZWF0ZUNhbGxiYWNrXG4gKiBAcGFyYW0ge2RhdGFPYmplY3R9IGRhdGFcbiAqL1xuXG4vKipcbiAqIEBjYWxsYmFjayBvblVwZGF0ZUNhbGxiYWNrXG4gKiBAcGFyYW0ge2RhdGFPYmplY3R9IGRhdGFcbiAqL1xuXG4vLyBVdGlsc1xuLy8gTWV0aG9kc1xudmFyIFBvcHBlciA9XG4vKipcbiAqIENyZWF0ZSBhIG5ldyBQb3BwZXIuanMgaW5zdGFuY2VcbiAqIEBjbGFzcyBQb3BwZXJcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR8cmVmZXJlbmNlT2JqZWN0fSByZWZlcmVuY2UgLSBUaGUgcmVmZXJlbmNlIGVsZW1lbnQgdXNlZCB0byBwb3NpdGlvbiB0aGUgcG9wcGVyXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBwb3BwZXIgLSBUaGUgSFRNTCBlbGVtZW50IHVzZWQgYXMgcG9wcGVyLlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgLSBZb3VyIGN1c3RvbSBvcHRpb25zIHRvIG92ZXJyaWRlIHRoZSBvbmVzIGRlZmluZWQgaW4gW0RFRkFVTFRTXSgjZGVmYXVsdHMpXG4gKiBAcmV0dXJuIHtPYmplY3R9IGluc3RhbmNlIC0gVGhlIGdlbmVyYXRlZCBQb3BwZXIuanMgaW5zdGFuY2VcbiAqL1xuZnVuY3Rpb24gUG9wcGVyKHJlZmVyZW5jZSwgcG9wcGVyKSB7XG4gIHZhciBfdGhpcyA9IHRoaXM7XG5cbiAgdmFyIG9wdGlvbnMgPSBhcmd1bWVudHMubGVuZ3RoID4gMiAmJiBhcmd1bWVudHNbMl0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1syXSA6IHt9O1xuICBjbGFzc0NhbGxDaGVjayh0aGlzLCBQb3BwZXIpO1xuICB0aGlzLnVwZGF0ZSA9IHVwZGF0ZTtcbiAgdGhpcy5kZXN0cm95ID0gZGVzdHJveTtcbiAgdGhpcy5lbmFibGVFdmVudExpc3RlbmVycyA9IGVuYWJsZUV2ZW50TGlzdGVuZXJzO1xuICB0aGlzLmRpc2FibGVFdmVudExpc3RlbmVycyA9IGRpc2FibGVFdmVudExpc3RlbmVycztcblxuICB0aGlzLnNjaGVkdWxlVXBkYXRlID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoX3RoaXMudXBkYXRlKTtcbiAgfTtcblxuICAvLyBtYWtlIHVwZGF0ZSgpIGRlYm91bmNlZCwgc28gdGhhdCBpdCBvbmx5IHJ1bnMgYXQgbW9zdCBvbmNlLXBlci10aWNrXG4gIHRoaXMudXBkYXRlID0gZGVib3VuY2UodGhpcy51cGRhdGUuYmluZCh0aGlzKSk7XG5cbiAgLy8gd2l0aCB7fSB3ZSBjcmVhdGUgYSBuZXcgb2JqZWN0IHdpdGggdGhlIG9wdGlvbnMgaW5zaWRlIGl0XG4gIHRoaXMub3B0aW9ucyA9IF9leHRlbmRzKHt9LCBQb3BwZXIuRGVmYXVsdHMsIG9wdGlvbnMpO1xuXG4gIC8vIGluaXQgc3RhdGVcbiAgdGhpcy5zdGF0ZSA9IHtcbiAgICBpc0Rlc3Ryb3llZDogZmFsc2UsXG4gICAgaXNDcmVhdGVkOiBmYWxzZSxcbiAgICBzY3JvbGxQYXJlbnRzOiBbXVxuICB9O1xuXG4gIC8vIGdldCByZWZlcmVuY2UgYW5kIHBvcHBlciBlbGVtZW50cyAoYWxsb3cgalF1ZXJ5IHdyYXBwZXJzKVxuICB0aGlzLnJlZmVyZW5jZSA9IHJlZmVyZW5jZS5qcXVlcnkgPyByZWZlcmVuY2VbMF0gOiByZWZlcmVuY2U7XG4gIHRoaXMucG9wcGVyID0gcG9wcGVyLmpxdWVyeSA/IHBvcHBlclswXSA6IHBvcHBlcjtcblxuICAvLyBtYWtlIHN1cmUgdG8gYXBwbHkgdGhlIHBvcHBlciBwb3NpdGlvbiBiZWZvcmUgYW55IGNvbXB1dGF0aW9uXG4gIHNldFN0eWxlcyh0aGlzLnBvcHBlciwgeyBwb3NpdGlvbjogJ2Fic29sdXRlJyB9KTtcblxuICAvLyByZWZhY3RvcmluZyBtb2RpZmllcnMnIGxpc3QgKE9iamVjdCA9PiBBcnJheSlcbiAgdGhpcy5tb2RpZmllcnMgPSBPYmplY3Qua2V5cyhQb3BwZXIuRGVmYXVsdHMubW9kaWZpZXJzKS5tYXAoZnVuY3Rpb24gKG5hbWUpIHtcbiAgICByZXR1cm4gX2V4dGVuZHMoe1xuICAgICAgbmFtZTogbmFtZVxuICAgIH0sIFBvcHBlci5EZWZhdWx0cy5tb2RpZmllcnNbbmFtZV0pO1xuICB9KTtcblxuICAvLyBhc3NpZ24gZGVmYXVsdCB2YWx1ZXMgdG8gbW9kaWZpZXJzLCBtYWtpbmcgc3VyZSB0byBvdmVycmlkZSB0aGVtIHdpdGhcbiAgLy8gdGhlIG9uZXMgZGVmaW5lZCBieSB1c2VyXG4gIHRoaXMubW9kaWZpZXJzID0gdGhpcy5tb2RpZmllcnMubWFwKGZ1bmN0aW9uIChkZWZhdWx0Q29uZmlnKSB7XG4gICAgdmFyIHVzZXJDb25maWcgPSBvcHRpb25zLm1vZGlmaWVycyAmJiBvcHRpb25zLm1vZGlmaWVyc1tkZWZhdWx0Q29uZmlnLm5hbWVdIHx8IHt9O1xuICAgIHJldHVybiBfZXh0ZW5kcyh7fSwgZGVmYXVsdENvbmZpZywgdXNlckNvbmZpZyk7XG4gIH0pO1xuXG4gIC8vIGFkZCBjdXN0b20gbW9kaWZpZXJzIHRvIHRoZSBtb2RpZmllcnMgbGlzdFxuICBpZiAob3B0aW9ucy5tb2RpZmllcnMpIHtcbiAgICB0aGlzLm9wdGlvbnMubW9kaWZpZXJzID0gX2V4dGVuZHMoe30sIFBvcHBlci5EZWZhdWx0cy5tb2RpZmllcnMsIG9wdGlvbnMubW9kaWZpZXJzKTtcbiAgICBPYmplY3Qua2V5cyhvcHRpb25zLm1vZGlmaWVycykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgLy8gdGFrZSBpbiBhY2NvdW50IG9ubHkgY3VzdG9tIG1vZGlmaWVyc1xuICAgICAgaWYgKFBvcHBlci5EZWZhdWx0cy5tb2RpZmllcnNbbmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB2YXIgbW9kaWZpZXIgPSBvcHRpb25zLm1vZGlmaWVyc1tuYW1lXTtcbiAgICAgICAgbW9kaWZpZXIubmFtZSA9IG5hbWU7XG4gICAgICAgIF90aGlzLm1vZGlmaWVycy5wdXNoKG1vZGlmaWVyKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIHNvcnQgdGhlIG1vZGlmaWVycyBieSBvcmRlclxuICB0aGlzLm1vZGlmaWVycyA9IHRoaXMubW9kaWZpZXJzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXI7XG4gIH0pO1xuXG4gIC8vIG1vZGlmaWVycyBoYXZlIHRoZSBhYmlsaXR5IHRvIGV4ZWN1dGUgYXJiaXRyYXJ5IGNvZGUgd2hlbiBQb3BwZXIuanMgZ2V0IGluaXRlZFxuICAvLyBzdWNoIGNvZGUgaXMgZXhlY3V0ZWQgaW4gdGhlIHNhbWUgb3JkZXIgb2YgaXRzIG1vZGlmaWVyXG4gIC8vIHRoZXkgY291bGQgYWRkIG5ldyBwcm9wZXJ0aWVzIHRvIHRoZWlyIG9wdGlvbnMgY29uZmlndXJhdGlvblxuICAvLyBCRSBBV0FSRTogZG9uJ3QgYWRkIG9wdGlvbnMgdG8gYG9wdGlvbnMubW9kaWZpZXJzLm5hbWVgIGJ1dCB0byBgbW9kaWZpZXJPcHRpb25zYCFcbiAgdGhpcy5tb2RpZmllcnMuZm9yRWFjaChmdW5jdGlvbiAobW9kaWZpZXJPcHRpb25zKSB7XG4gICAgaWYgKG1vZGlmaWVyT3B0aW9ucy5lbmFibGVkICYmIGlzRnVuY3Rpb24obW9kaWZpZXJPcHRpb25zLm9uTG9hZCkpIHtcbiAgICAgIG1vZGlmaWVyT3B0aW9ucy5vbkxvYWQoX3RoaXMucmVmZXJlbmNlLCBfdGhpcy5wb3BwZXIsIF90aGlzLm9wdGlvbnMsIG1vZGlmaWVyT3B0aW9ucywgX3RoaXMuc3RhdGUpO1xuICAgIH1cbiAgfSk7XG5cbiAgLy8gZmlyZSB0aGUgZmlyc3QgdXBkYXRlIHRvIHBvc2l0aW9uIHRoZSBwb3BwZXIgaW4gdGhlIHJpZ2h0IHBsYWNlXG4gIHRoaXMudXBkYXRlKCk7XG5cbiAgdmFyIGV2ZW50c0VuYWJsZWQgPSB0aGlzLm9wdGlvbnMuZXZlbnRzRW5hYmxlZDtcbiAgaWYgKGV2ZW50c0VuYWJsZWQpIHtcbiAgICAvLyBzZXR1cCBldmVudCBsaXN0ZW5lcnMsIHRoZXkgd2lsbCB0YWtlIGNhcmUgb2YgdXBkYXRlIHRoZSBwb3NpdGlvbiBpbiBzcGVjaWZpYyBzaXR1YXRpb25zXG4gICAgdGhpcy5lbmFibGVFdmVudExpc3RlbmVycygpO1xuICB9XG5cbiAgdGhpcy5zdGF0ZS5ldmVudHNFbmFibGVkID0gZXZlbnRzRW5hYmxlZDtcbn07XG5cbi8qKlxuICogVGhlIGByZWZlcmVuY2VPYmplY3RgIGlzIGFuIG9iamVjdCB0aGF0IHByb3ZpZGVzIGFuIGludGVyZmFjZSBjb21wYXRpYmxlIHdpdGggUG9wcGVyLmpzXG4gKiBhbmQgbGV0cyB5b3UgdXNlIGl0IGFzIHJlcGxhY2VtZW50IG9mIGEgcmVhbCBET00gbm9kZS48YnIgLz5cbiAqIFlvdSBjYW4gdXNlIHRoaXMgbWV0aG9kIHRvIHBvc2l0aW9uIGEgcG9wcGVyIHJlbGF0aXZlbHkgdG8gYSBzZXQgb2YgY29vcmRpbmF0ZXNcbiAqIGluIGNhc2UgeW91IGRvbid0IGhhdmUgYSBET00gbm9kZSB0byB1c2UgYXMgcmVmZXJlbmNlLlxuICpcbiAqIGBgYFxuICogbmV3IFBvcHBlcihyZWZlcmVuY2VPYmplY3QsIHBvcHBlck5vZGUpO1xuICogYGBgXG4gKlxuICogTkI6IFRoaXMgZmVhdHVyZSBpc24ndCBzdXBwb3J0ZWQgaW4gSW50ZXJuZXQgRXhwbG9yZXIgMTBcbiAqIEBuYW1lIHJlZmVyZW5jZU9iamVjdFxuICogQHByb3BlcnR5IHtGdW5jdGlvbn0gZGF0YS5nZXRCb3VuZGluZ0NsaWVudFJlY3RcbiAqIEEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc2V0IG9mIGNvb3JkaW5hdGVzIGNvbXBhdGlibGUgd2l0aCB0aGUgbmF0aXZlIGBnZXRCb3VuZGluZ0NsaWVudFJlY3RgIG1ldGhvZC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBkYXRhLmNsaWVudFdpZHRoXG4gKiBBbiBFUzYgZ2V0dGVyIHRoYXQgd2lsbCByZXR1cm4gdGhlIHdpZHRoIG9mIHRoZSB2aXJ0dWFsIHJlZmVyZW5jZSBlbGVtZW50LlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGRhdGEuY2xpZW50SGVpZ2h0XG4gKiBBbiBFUzYgZ2V0dGVyIHRoYXQgd2lsbCByZXR1cm4gdGhlIGhlaWdodCBvZiB0aGUgdmlydHVhbCByZWZlcmVuY2UgZWxlbWVudC5cbiAqL1xuXG5cblBvcHBlci5VdGlscyA9ICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyA/IHdpbmRvdyA6IGdsb2JhbCkuUG9wcGVyVXRpbHM7XG5Qb3BwZXIucGxhY2VtZW50cyA9IHBsYWNlbWVudHM7XG5Qb3BwZXIuRGVmYXVsdHMgPSBERUZBVUxUUztcblxuZXhwb3J0IGRlZmF1bHQgUG9wcGVyO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cG9wcGVyLmpzLm1hcFxuXG5cblxuLy8gV0VCUEFDSyBGT09URVIgLy9cbi8vIC4vfi9wb3BwZXIuanMvZGlzdC9lc20vcG9wcGVyLmpzIiwiaW1wb3J0IFBvcHBlciBmcm9tICdwb3BwZXIuanMnO1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBnaXZlbiB2YXJpYWJsZSBpcyBhIGZ1bmN0aW9uXG4gKiBAbWV0aG9kXG4gKiBAbWVtYmVyb2YgUG9wcGVyLlV0aWxzXG4gKiBAYXJndW1lbnQgeyp9IGZ1bmN0aW9uVG9DaGVjayAtIHZhcmlhYmxlIHRvIGNoZWNrXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn0gYW5zd2VyIHRvOiBpcyBhIGZ1bmN0aW9uP1xuICovXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKGZ1bmN0aW9uVG9DaGVjaykge1xuICB2YXIgZ2V0VHlwZSA9IHt9O1xuICByZXR1cm4gZnVuY3Rpb25Ub0NoZWNrICYmIGdldFR5cGUudG9TdHJpbmcuY2FsbChmdW5jdGlvblRvQ2hlY2spID09PSAnW29iamVjdCBGdW5jdGlvbl0nO1xufVxuXG52YXIgY2xhc3NDYWxsQ2hlY2sgPSBmdW5jdGlvbiAoaW5zdGFuY2UsIENvbnN0cnVjdG9yKSB7XG4gIGlmICghKGluc3RhbmNlIGluc3RhbmNlb2YgQ29uc3RydWN0b3IpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvblwiKTtcbiAgfVxufTtcblxudmFyIGNyZWF0ZUNsYXNzID0gZnVuY3Rpb24gKCkge1xuICBmdW5jdGlvbiBkZWZpbmVQcm9wZXJ0aWVzKHRhcmdldCwgcHJvcHMpIHtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgZGVzY3JpcHRvciA9IHByb3BzW2ldO1xuICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxlID0gZGVzY3JpcHRvci5lbnVtZXJhYmxlIHx8IGZhbHNlO1xuICAgICAgZGVzY3JpcHRvci5jb25maWd1cmFibGUgPSB0cnVlO1xuICAgICAgaWYgKFwidmFsdWVcIiBpbiBkZXNjcmlwdG9yKSBkZXNjcmlwdG9yLndyaXRhYmxlID0gdHJ1ZTtcbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGRlc2NyaXB0b3Iua2V5LCBkZXNjcmlwdG9yKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZnVuY3Rpb24gKENvbnN0cnVjdG9yLCBwcm90b1Byb3BzLCBzdGF0aWNQcm9wcykge1xuICAgIGlmIChwcm90b1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLnByb3RvdHlwZSwgcHJvdG9Qcm9wcyk7XG4gICAgaWYgKHN0YXRpY1Byb3BzKSBkZWZpbmVQcm9wZXJ0aWVzKENvbnN0cnVjdG9yLCBzdGF0aWNQcm9wcyk7XG4gICAgcmV0dXJuIENvbnN0cnVjdG9yO1xuICB9O1xufSgpO1xuXG5cblxuXG5cblxuXG52YXIgX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uICh0YXJnZXQpIHtcbiAgZm9yICh2YXIgaSA9IDE7IGkgPCBhcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgc291cmNlID0gYXJndW1lbnRzW2ldO1xuXG4gICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzb3VyY2UsIGtleSkpIHtcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gdGFyZ2V0O1xufTtcblxudmFyIERFRkFVTFRfT1BUSU9OUyA9IHtcbiAgY29udGFpbmVyOiBmYWxzZSxcbiAgZGVsYXk6IDAsXG4gIGh0bWw6IGZhbHNlLFxuICBwbGFjZW1lbnQ6ICd0b3AnLFxuICB0aXRsZTogJycsXG4gIHRlbXBsYXRlOiAnPGRpdiBjbGFzcz1cInRvb2x0aXBcIiByb2xlPVwidG9vbHRpcFwiPjxkaXYgY2xhc3M9XCJ0b29sdGlwLWFycm93XCI+PC9kaXY+PGRpdiBjbGFzcz1cInRvb2x0aXAtaW5uZXJcIj48L2Rpdj48L2Rpdj4nLFxuICB0cmlnZ2VyOiAnaG92ZXIgZm9jdXMnLFxuICBvZmZzZXQ6IDBcbn07XG5cbnZhciBUb29sdGlwID0gZnVuY3Rpb24gKCkge1xuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IFRvb2x0aXAuanMgaW5zdGFuY2VcbiAgICogQGNsYXNzIFRvb2x0aXBcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gcmVmZXJlbmNlIC0gVGhlIHJlZmVyZW5jZSBlbGVtZW50IHVzZWQgdG8gcG9zaXRpb24gdGhlIHRvb2x0aXBcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAgICogQHBhcmFtIHtTdHJpbmd9IG9wdGlvbnMucGxhY2VtZW50PWJvdHRvbVxuICAgKiAgICAgIFBsYWNlbWVudCBvZiB0aGUgcG9wcGVyIGFjY2VwdGVkIHZhbHVlczogYHRvcCgtc3RhcnQsIC1lbmQpLCByaWdodCgtc3RhcnQsIC1lbmQpLCBib3R0b20oLXN0YXJ0LCAtZW5kKSxcbiAgICogICAgICBsZWZ0KC1zdGFydCwgLWVuZClgXG4gICAqXG4gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJlZmVyZW5jZSAtIFRoZSBET00gbm9kZSB1c2VkIGFzIHJlZmVyZW5jZSBvZiB0aGUgdG9vbHRpcCAoaXQgY2FuIGJlIGEgalF1ZXJ5IGVsZW1lbnQpLlxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb2YgdGhlIHRvb2x0aXBcbiAgICogQHBhcmFtIHtIVE1MRWxlbWVudHxTdHJpbmd8ZmFsc2V9IG9wdGlvbnMuY29udGFpbmVyPWZhbHNlIC0gQXBwZW5kIHRoZSB0b29sdGlwIHRvIGEgc3BlY2lmaWMgZWxlbWVudC5cbiAgICogQHBhcmFtIHtOdW1iZXJ8T2JqZWN0fSBvcHRpb25zLmRlbGF5PTBcbiAgICogICAgICBEZWxheSBzaG93aW5nIGFuZCBoaWRpbmcgdGhlIHRvb2x0aXAgKG1zKSAtIGRvZXMgbm90IGFwcGx5IHRvIG1hbnVhbCB0cmlnZ2VyIHR5cGUuXG4gICAqICAgICAgSWYgYSBudW1iZXIgaXMgc3VwcGxpZWQsIGRlbGF5IGlzIGFwcGxpZWQgdG8gYm90aCBoaWRlL3Nob3cuXG4gICAqICAgICAgT2JqZWN0IHN0cnVjdHVyZSBpczogYHsgc2hvdzogNTAwLCBoaWRlOiAxMDAgfWBcbiAgICogQHBhcmFtIHtCb29sZWFufSBvcHRpb25zLmh0bWw9ZmFsc2UgLSBJbnNlcnQgSFRNTCBpbnRvIHRoZSB0b29sdGlwLiBJZiBmYWxzZSwgdGhlIGNvbnRlbnQgd2lsbCBpbnNlcnRlZCB3aXRoIGBpbm5lclRleHRgLlxuICAgKiBAcGFyYW0ge1N0cmluZ3xQbGFjZW1lbnRGdW5jdGlvbn0gb3B0aW9ucy5wbGFjZW1lbnQ9J3RvcCcgLSBPbmUgb2YgdGhlIGFsbG93ZWQgcGxhY2VtZW50cywgb3IgYSBmdW5jdGlvbiByZXR1cm5pbmcgb25lIG9mIHRoZW0uXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBvcHRpb25zLnRlbXBsYXRlPSc8ZGl2IGNsYXNzPVwidG9vbHRpcFwiIHJvbGU9XCJ0b29sdGlwXCI+PGRpdiBjbGFzcz1cInRvb2x0aXAtYXJyb3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwidG9vbHRpcC1pbm5lclwiPjwvZGl2PjwvZGl2PidcbiAgICogICAgICBCYXNlIEhUTUwgdG8gdXNlZCB3aGVuIGNyZWF0aW5nIHRoZSB0b29sdGlwLlxuICAgKiAgICAgIFRoZSB0b29sdGlwJ3MgYHRpdGxlYCB3aWxsIGJlIGluamVjdGVkIGludG8gdGhlIGAudG9vbHRpcC1pbm5lcmAgb3IgYC50b29sdGlwX19pbm5lcmAuXG4gICAqICAgICAgYC50b29sdGlwLWFycm93YCBvciBgLnRvb2x0aXBfX2Fycm93YCB3aWxsIGJlY29tZSB0aGUgdG9vbHRpcCdzIGFycm93LlxuICAgKiAgICAgIFRoZSBvdXRlcm1vc3Qgd3JhcHBlciBlbGVtZW50IHNob3VsZCBoYXZlIHRoZSBgLnRvb2x0aXBgIGNsYXNzLlxuICAgKiBAcGFyYW0ge1N0cmluZ3xIVE1MRWxlbWVudHxUaXRsZUZ1bmN0aW9ufSBvcHRpb25zLnRpdGxlPScnIC0gRGVmYXVsdCB0aXRsZSB2YWx1ZSBpZiBgdGl0bGVgIGF0dHJpYnV0ZSBpc24ndCBwcmVzZW50LlxuICAgKiBAcGFyYW0ge1N0cmluZ30gb3B0aW9ucy50cmlnZ2VyPSdob3ZlciBmb2N1cydcbiAgICogICAgICBIb3cgdG9vbHRpcCBpcyB0cmlnZ2VyZWQgLSBjbGljayB8IGhvdmVyIHwgZm9jdXMgfCBtYW51YWwuXG4gICAqICAgICAgWW91IG1heSBwYXNzIG11bHRpcGxlIHRyaWdnZXJzOyBzZXBhcmF0ZSB0aGVtIHdpdGggYSBzcGFjZS4gYG1hbnVhbGAgY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggYW55IG90aGVyIHRyaWdnZXIuXG4gICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IG9wdGlvbnMuYm91bmRhcmllc0VsZW1lbnRcbiAgICogICAgICBUaGUgZWxlbWVudCB1c2VkIGFzIGJvdW5kYXJpZXMgZm9yIHRoZSB0b29sdGlwLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiByZWZlciB0byBQb3BwZXIuanMnXG4gICAqICAgICAgW2JvdW5kYXJpZXNFbGVtZW50IGRvY3NdKGh0dHBzOi8vcG9wcGVyLmpzLm9yZy9wb3BwZXItZG9jdW1lbnRhdGlvbi5odG1sKVxuICAgKiBAcGFyYW0ge051bWJlcnxTdHJpbmd9IG9wdGlvbnMub2Zmc2V0PTAgLSBPZmZzZXQgb2YgdGhlIHRvb2x0aXAgcmVsYXRpdmUgdG8gaXRzIHJlZmVyZW5jZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24gcmVmZXIgdG8gUG9wcGVyLmpzJ1xuICAgKiAgICAgIFtvZmZzZXQgZG9jc10oaHR0cHM6Ly9wb3BwZXIuanMub3JnL3BvcHBlci1kb2N1bWVudGF0aW9uLmh0bWwpXG4gICAqIEByZXR1cm4ge09iamVjdH0gaW5zdGFuY2UgLSBUaGUgZ2VuZXJhdGVkIHRvb2x0aXAgaW5zdGFuY2VcbiAgICovXG4gIGZ1bmN0aW9uIFRvb2x0aXAocmVmZXJlbmNlLCBvcHRpb25zKSB7XG4gICAgY2xhc3NDYWxsQ2hlY2sodGhpcywgVG9vbHRpcCk7XG5cbiAgICBfaW5pdGlhbGlzZVByb3BzLmNhbGwodGhpcyk7XG5cbiAgICAvLyBhcHBseSB1c2VyIG9wdGlvbnMgb3ZlciBkZWZhdWx0IG9uZXNcbiAgICBvcHRpb25zID0gX2V4dGVuZHMoe30sIERFRkFVTFRfT1BUSU9OUywgb3B0aW9ucyk7XG5cbiAgICByZWZlcmVuY2UuanF1ZXJ5ICYmIChyZWZlcmVuY2UgPSByZWZlcmVuY2VbMF0pO1xuXG4gICAgLy8gY2FjaGUgcmVmZXJlbmNlIGFuZCBvcHRpb25zXG4gICAgdGhpcy5yZWZlcmVuY2UgPSByZWZlcmVuY2U7XG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucztcblxuICAgIC8vIGdldCBldmVudHMgbGlzdFxuICAgIHZhciBldmVudHMgPSB0eXBlb2Ygb3B0aW9ucy50cmlnZ2VyID09PSAnc3RyaW5nJyA/IG9wdGlvbnMudHJpZ2dlci5zcGxpdCgnICcpLmZpbHRlcihmdW5jdGlvbiAodHJpZ2dlcikge1xuICAgICAgcmV0dXJuIFsnY2xpY2snLCAnaG92ZXInLCAnZm9jdXMnXS5pbmRleE9mKHRyaWdnZXIpICE9PSAtMTtcbiAgICB9KSA6IFtdO1xuXG4gICAgLy8gc2V0IGluaXRpYWwgc3RhdGVcbiAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcblxuICAgIC8vIHNldCBldmVudCBsaXN0ZW5lcnNcbiAgICB0aGlzLl9zZXRFdmVudExpc3RlbmVycyhyZWZlcmVuY2UsIGV2ZW50cywgb3B0aW9ucyk7XG4gIH1cblxuICAvL1xuICAvLyBQdWJsaWMgbWV0aG9kc1xuICAvL1xuXG4gIC8qKlxuICAgKiBSZXZlYWxzIGFuIGVsZW1lbnQncyB0b29sdGlwLiBUaGlzIGlzIGNvbnNpZGVyZWQgYSBcIm1hbnVhbFwiIHRyaWdnZXJpbmcgb2YgdGhlIHRvb2x0aXAuXG4gICAqIFRvb2x0aXBzIHdpdGggemVyby1sZW5ndGggdGl0bGVzIGFyZSBuZXZlciBkaXNwbGF5ZWQuXG4gICAqIEBtZW1iZXJvZiBUb29sdGlwXG4gICAqL1xuXG5cbiAgLyoqXG4gICAqIEhpZGVzIGFuIGVsZW1lbnTigJlzIHRvb2x0aXAuIFRoaXMgaXMgY29uc2lkZXJlZCBhIOKAnG1hbnVhbOKAnSB0cmlnZ2VyaW5nIG9mIHRoZSB0b29sdGlwLlxuICAgKiBAbWVtYmVyb2YgVG9vbHRpcFxuICAgKi9cblxuXG4gIC8qKlxuICAgKiBIaWRlcyBhbmQgZGVzdHJveXMgYW4gZWxlbWVudOKAmXMgdG9vbHRpcC5cbiAgICogQG1lbWJlcm9mIFRvb2x0aXBcbiAgICovXG5cblxuICAvKipcbiAgICogVG9nZ2xlcyBhbiBlbGVtZW504oCZcyB0b29sdGlwLiBUaGlzIGlzIGNvbnNpZGVyZWQgYSDigJxtYW51YWzigJ0gdHJpZ2dlcmluZyBvZiB0aGUgdG9vbHRpcC5cbiAgICogQG1lbWJlcm9mIFRvb2x0aXBcbiAgICovXG5cblxuICAvL1xuICAvLyBEZWZhdWx0c1xuICAvL1xuXG5cbiAgLy9cbiAgLy8gUHJpdmF0ZSBtZXRob2RzXG4gIC8vXG5cbiAgY3JlYXRlQ2xhc3MoVG9vbHRpcCwgW3tcbiAgICBrZXk6ICdfY3JlYXRlJyxcblxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyB0b29sdGlwIG5vZGVcbiAgICAgKiBAbWVtYmVyb2YgVG9vbHRpcFxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gcmVmZXJlbmNlXG4gICAgICogQHBhcmFtIHtTdHJpbmd9IHRlbXBsYXRlXG4gICAgICogQHBhcmFtIHtTdHJpbmd8SFRNTEVsZW1lbnR8VGl0bGVGdW5jdGlvbn0gdGl0bGVcbiAgICAgKiBAcGFyYW0ge0Jvb2xlYW59IGFsbG93SHRtbFxuICAgICAqIEByZXR1cm4ge0hUTUxlbGVtZW50fSB0b29sdGlwTm9kZVxuICAgICAqL1xuICAgIHZhbHVlOiBmdW5jdGlvbiBfY3JlYXRlKHJlZmVyZW5jZSwgdGVtcGxhdGUsIHRpdGxlLCBhbGxvd0h0bWwpIHtcbiAgICAgIC8vIGNyZWF0ZSB0b29sdGlwIGVsZW1lbnRcbiAgICAgIHZhciB0b29sdGlwR2VuZXJhdG9yID0gd2luZG93LmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgdG9vbHRpcEdlbmVyYXRvci5pbm5lckhUTUwgPSB0ZW1wbGF0ZTtcbiAgICAgIHZhciB0b29sdGlwTm9kZSA9IHRvb2x0aXBHZW5lcmF0b3IuY2hpbGROb2Rlc1swXTtcblxuICAgICAgLy8gYWRkIHVuaXF1ZSBJRCB0byBvdXIgdG9vbHRpcCAobmVlZGVkIGZvciBhY2Nlc3NpYmlsaXR5IHJlYXNvbnMpXG4gICAgICB0b29sdGlwTm9kZS5pZCA9ICd0b29sdGlwXycgKyBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHIoMiwgMTApO1xuXG4gICAgICAvLyBzZXQgaW5pdGlhbCBgYXJpYS1oaWRkZW5gIHN0YXRlIHRvIGBmYWxzZWAgKGl0J3MgdmlzaWJsZSEpXG4gICAgICB0b29sdGlwTm9kZS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ2ZhbHNlJyk7XG5cbiAgICAgIC8vIGFkZCB0aXRsZSB0byB0b29sdGlwXG4gICAgICB2YXIgdGl0bGVOb2RlID0gdG9vbHRpcEdlbmVyYXRvci5xdWVyeVNlbGVjdG9yKHRoaXMuaW5uZXJTZWxlY3Rvcik7XG4gICAgICBpZiAodGl0bGUubm9kZVR5cGUgPT09IDEpIHtcbiAgICAgICAgLy8gaWYgdGl0bGUgaXMgYSBub2RlLCBhcHBlbmQgaXQgb25seSBpZiBhbGxvd0h0bWwgaXMgdHJ1ZVxuICAgICAgICBhbGxvd0h0bWwgJiYgdGl0bGVOb2RlLmFwcGVuZENoaWxkKHRpdGxlKTtcbiAgICAgIH0gZWxzZSBpZiAoaXNGdW5jdGlvbih0aXRsZSkpIHtcbiAgICAgICAgLy8gaWYgdGl0bGUgaXMgYSBmdW5jdGlvbiwgY2FsbCBpdCBhbmQgc2V0IGlubmVyVGV4dCBvciBpbm5lckh0bWwgZGVwZW5kaW5nIGJ5IGBhbGxvd0h0bWxgIHZhbHVlXG4gICAgICAgIHZhciB0aXRsZVRleHQgPSB0aXRsZS5jYWxsKHJlZmVyZW5jZSk7XG4gICAgICAgIGFsbG93SHRtbCA/IHRpdGxlTm9kZS5pbm5lckhUTUwgPSB0aXRsZVRleHQgOiB0aXRsZU5vZGUuaW5uZXJUZXh0ID0gdGl0bGVUZXh0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gaWYgaXQncyBqdXN0IGEgc2ltcGxlIHRleHQsIHNldCBpbm5lclRleHQgb3IgaW5uZXJIdG1sIGRlcGVuZGluZyBieSBgYWxsb3dIdG1sYCB2YWx1ZVxuICAgICAgICBhbGxvd0h0bWwgPyB0aXRsZU5vZGUuaW5uZXJIVE1MID0gdGl0bGUgOiB0aXRsZU5vZGUuaW5uZXJUZXh0ID0gdGl0bGU7XG4gICAgICB9XG5cbiAgICAgIC8vIHJldHVybiB0aGUgZ2VuZXJhdGVkIHRvb2x0aXAgbm9kZVxuICAgICAgcmV0dXJuIHRvb2x0aXBOb2RlO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ19zaG93JyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gX3Nob3cocmVmZXJlbmNlLCBvcHRpb25zKSB7XG4gICAgICAvLyBkb24ndCBzaG93IGlmIGl0J3MgYWxyZWFkeSB2aXNpYmxlXG4gICAgICBpZiAodGhpcy5faXNPcGVuKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuICAgICAgdGhpcy5faXNPcGVuID0gdHJ1ZTtcblxuICAgICAgLy8gaWYgdGhlIHRvb2x0aXBOb2RlIGFscmVhZHkgZXhpc3RzLCBqdXN0IHNob3cgaXRcbiAgICAgIGlmICh0aGlzLl90b29sdGlwTm9kZSkge1xuICAgICAgICB0aGlzLl90b29sdGlwTm9kZS5zdHlsZS5kaXNwbGF5ID0gJyc7XG4gICAgICAgIHRoaXMuX3Rvb2x0aXBOb2RlLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAnZmFsc2UnKTtcbiAgICAgICAgdGhpcy5wb3BwZXJJbnN0YW5jZS51cGRhdGUoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG5cbiAgICAgIC8vIGdldCB0aXRsZVxuICAgICAgdmFyIHRpdGxlID0gcmVmZXJlbmNlLmdldEF0dHJpYnV0ZSgndGl0bGUnKSB8fCBvcHRpb25zLnRpdGxlO1xuXG4gICAgICAvLyBkb24ndCBzaG93IHRvb2x0aXAgaWYgbm8gdGl0bGUgaXMgZGVmaW5lZFxuICAgICAgaWYgKCF0aXRsZSkge1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgIH1cblxuICAgICAgLy8gY3JlYXRlIHRvb2x0aXAgbm9kZVxuICAgICAgdmFyIHRvb2x0aXBOb2RlID0gdGhpcy5fY3JlYXRlKHJlZmVyZW5jZSwgb3B0aW9ucy50ZW1wbGF0ZSwgdGl0bGUsIG9wdGlvbnMuaHRtbCk7XG5cbiAgICAgIC8vIEFkZCBgYXJpYS1kZXNjcmliZWRieWAgdG8gb3VyIHJlZmVyZW5jZSBlbGVtZW50IGZvciBhY2Nlc3NpYmlsaXR5IHJlYXNvbnNcbiAgICAgIHRvb2x0aXBOb2RlLnNldEF0dHJpYnV0ZSgnYXJpYS1kZXNjcmliZWRieScsIHRvb2x0aXBOb2RlLmlkKTtcblxuICAgICAgLy8gYXBwZW5kIHRvb2x0aXAgdG8gY29udGFpbmVyXG4gICAgICB2YXIgY29udGFpbmVyID0gdGhpcy5fZmluZENvbnRhaW5lcihvcHRpb25zLmNvbnRhaW5lciwgcmVmZXJlbmNlKTtcblxuICAgICAgdGhpcy5fYXBwZW5kKHRvb2x0aXBOb2RlLCBjb250YWluZXIpO1xuXG4gICAgICB2YXIgcG9wcGVyT3B0aW9ucyA9IHtcbiAgICAgICAgcGxhY2VtZW50OiBvcHRpb25zLnBsYWNlbWVudCxcbiAgICAgICAgYXJyb3dFbGVtZW50OiB0aGlzLmFycm93U2VsZWN0b3JcbiAgICAgIH07XG5cbiAgICAgIGlmIChvcHRpb25zLmJvdW5kYXJpZXNFbGVtZW50KSB7XG4gICAgICAgIHBvcHBlck9wdGlvbnMuYm91bmRhcmllc0VsZW1lbnQgPSBvcHRpb25zLmJvdW5kYXJpZXNFbGVtZW50O1xuICAgICAgfVxuXG4gICAgICB0aGlzLnBvcHBlckluc3RhbmNlID0gbmV3IFBvcHBlcihyZWZlcmVuY2UsIHRvb2x0aXBOb2RlLCBwb3BwZXJPcHRpb25zKTtcblxuICAgICAgdGhpcy5fdG9vbHRpcE5vZGUgPSB0b29sdGlwTm9kZTtcblxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnX2hpZGUnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBfaGlkZSgpIC8qcmVmZXJlbmNlLCBvcHRpb25zKi97XG4gICAgICAvLyBkb24ndCBoaWRlIGlmIGl0J3MgYWxyZWFkeSBoaWRkZW5cbiAgICAgIGlmICghdGhpcy5faXNPcGVuKSB7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9pc09wZW4gPSBmYWxzZTtcblxuICAgICAgLy8gaGlkZSB0b29sdGlwTm9kZVxuICAgICAgdGhpcy5fdG9vbHRpcE5vZGUuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIHRoaXMuX3Rvb2x0aXBOb2RlLnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCAndHJ1ZScpO1xuXG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdfZGlzcG9zZScsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIF9kaXNwb3NlKCkge1xuICAgICAgdmFyIF90aGlzID0gdGhpcztcblxuICAgICAgaWYgKHRoaXMuX3Rvb2x0aXBOb2RlKSB7XG4gICAgICAgIHRoaXMuX2hpZGUoKTtcblxuICAgICAgICAvLyBkZXN0cm95IGluc3RhbmNlXG4gICAgICAgIHRoaXMucG9wcGVySW5zdGFuY2UuZGVzdHJveSgpO1xuXG4gICAgICAgIC8vIHJlbW92ZSBldmVudCBsaXN0ZW5lcnNcbiAgICAgICAgdGhpcy5fZXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKF9yZWYpIHtcbiAgICAgICAgICB2YXIgZnVuYyA9IF9yZWYuZnVuYyxcbiAgICAgICAgICAgICAgZXZlbnQgPSBfcmVmLmV2ZW50O1xuXG4gICAgICAgICAgX3RoaXMuX3Rvb2x0aXBOb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGZ1bmMpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5fZXZlbnRzID0gW107XG5cbiAgICAgICAgLy8gZGVzdHJveSB0b29sdGlwTm9kZVxuICAgICAgICB0aGlzLl90b29sdGlwTm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuX3Rvb2x0aXBOb2RlKTtcbiAgICAgICAgdGhpcy5fdG9vbHRpcE5vZGUgPSBudWxsO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuICB9LCB7XG4gICAga2V5OiAnX2ZpbmRDb250YWluZXInLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBfZmluZENvbnRhaW5lcihjb250YWluZXIsIHJlZmVyZW5jZSkge1xuICAgICAgLy8gaWYgY29udGFpbmVyIGlzIGEgcXVlcnksIGdldCB0aGUgcmVsYXRpdmUgZWxlbWVudFxuICAgICAgaWYgKHR5cGVvZiBjb250YWluZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnRhaW5lciA9IHdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGNvbnRhaW5lcik7XG4gICAgICB9IGVsc2UgaWYgKGNvbnRhaW5lciA9PT0gZmFsc2UpIHtcbiAgICAgICAgLy8gaWYgY29udGFpbmVyIGlzIGBmYWxzZWAsIHNldCBpdCB0byByZWZlcmVuY2UgcGFyZW50XG4gICAgICAgIGNvbnRhaW5lciA9IHJlZmVyZW5jZS5wYXJlbnROb2RlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBlbmQgdG9vbHRpcCB0byBjb250YWluZXJcbiAgICAgKiBAbWVtYmVyb2YgVG9vbHRpcFxuICAgICAqIEBwcml2YXRlXG4gICAgICogQHBhcmFtIHtIVE1MRWxlbWVudH0gdG9vbHRpcFxuICAgICAqIEBwYXJhbSB7SFRNTEVsZW1lbnR8U3RyaW5nfGZhbHNlfSBjb250YWluZXJcbiAgICAgKi9cblxuICB9LCB7XG4gICAga2V5OiAnX2FwcGVuZCcsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIF9hcHBlbmQodG9vbHRpcE5vZGUsIGNvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRvb2x0aXBOb2RlKTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdfc2V0RXZlbnRMaXN0ZW5lcnMnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBfc2V0RXZlbnRMaXN0ZW5lcnMocmVmZXJlbmNlLCBldmVudHMsIG9wdGlvbnMpIHtcbiAgICAgIHZhciBfdGhpczIgPSB0aGlzO1xuXG4gICAgICB2YXIgZGlyZWN0RXZlbnRzID0gW107XG4gICAgICB2YXIgb3Bwb3NpdGVFdmVudHMgPSBbXTtcblxuICAgICAgZXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQpIHtcbiAgICAgICAgICBjYXNlICdob3Zlcic6XG4gICAgICAgICAgICBkaXJlY3RFdmVudHMucHVzaCgnbW91c2VlbnRlcicpO1xuICAgICAgICAgICAgb3Bwb3NpdGVFdmVudHMucHVzaCgnbW91c2VsZWF2ZScpO1xuICAgICAgICAgIGNhc2UgJ2ZvY3VzJzpcbiAgICAgICAgICAgIGRpcmVjdEV2ZW50cy5wdXNoKCdmb2N1cycpO1xuICAgICAgICAgICAgb3Bwb3NpdGVFdmVudHMucHVzaCgnYmx1cicpO1xuICAgICAgICAgIGNhc2UgJ2NsaWNrJzpcbiAgICAgICAgICAgIGRpcmVjdEV2ZW50cy5wdXNoKCdjbGljaycpO1xuICAgICAgICAgICAgb3Bwb3NpdGVFdmVudHMucHVzaCgnY2xpY2snKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIC8vIHNjaGVkdWxlIHNob3cgdG9vbHRpcFxuICAgICAgZGlyZWN0RXZlbnRzLmZvckVhY2goZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgIHZhciBmdW5jID0gZnVuY3Rpb24gZnVuYyhldnQpIHtcbiAgICAgICAgICBpZiAoX3RoaXMyLl9pc09wZW4gPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgZXZ0LnVzZWRCeVRvb2x0aXAgPSB0cnVlO1xuICAgICAgICAgIF90aGlzMi5fc2NoZWR1bGVTaG93KHJlZmVyZW5jZSwgb3B0aW9ucy5kZWxheSwgb3B0aW9ucywgZXZ0KTtcbiAgICAgICAgfTtcbiAgICAgICAgX3RoaXMyLl9ldmVudHMucHVzaCh7IGV2ZW50OiBldmVudCwgZnVuYzogZnVuYyB9KTtcbiAgICAgICAgcmVmZXJlbmNlLmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGZ1bmMpO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIHNjaGVkdWxlIGhpZGUgdG9vbHRpcFxuICAgICAgb3Bwb3NpdGVFdmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgdmFyIGZ1bmMgPSBmdW5jdGlvbiBmdW5jKGV2dCkge1xuICAgICAgICAgIGlmIChldnQudXNlZEJ5VG9vbHRpcCA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBfdGhpczIuX3NjaGVkdWxlSGlkZShyZWZlcmVuY2UsIG9wdGlvbnMuZGVsYXksIG9wdGlvbnMsIGV2dCk7XG4gICAgICAgIH07XG4gICAgICAgIF90aGlzMi5fZXZlbnRzLnB1c2goeyBldmVudDogZXZlbnQsIGZ1bmM6IGZ1bmMgfSk7XG4gICAgICAgIHJlZmVyZW5jZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmdW5jKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfSwge1xuICAgIGtleTogJ19zY2hlZHVsZVNob3cnLFxuICAgIHZhbHVlOiBmdW5jdGlvbiBfc2NoZWR1bGVTaG93KHJlZmVyZW5jZSwgZGVsYXksIG9wdGlvbnMgLyosIGV2dCAqLykge1xuICAgICAgdmFyIF90aGlzMyA9IHRoaXM7XG5cbiAgICAgIC8vIGRlZmF1bHRzIHRvIDBcbiAgICAgIHZhciBjb21wdXRlZERlbGF5ID0gZGVsYXkgJiYgZGVsYXkuc2hvdyB8fCBkZWxheSB8fCAwO1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gX3RoaXMzLl9zaG93KHJlZmVyZW5jZSwgb3B0aW9ucyk7XG4gICAgICB9LCBjb21wdXRlZERlbGF5KTtcbiAgICB9XG4gIH0sIHtcbiAgICBrZXk6ICdfc2NoZWR1bGVIaWRlJyxcbiAgICB2YWx1ZTogZnVuY3Rpb24gX3NjaGVkdWxlSGlkZShyZWZlcmVuY2UsIGRlbGF5LCBvcHRpb25zLCBldnQpIHtcbiAgICAgIHZhciBfdGhpczQgPSB0aGlzO1xuXG4gICAgICAvLyBkZWZhdWx0cyB0byAwXG4gICAgICB2YXIgY29tcHV0ZWREZWxheSA9IGRlbGF5ICYmIGRlbGF5LmhpZGUgfHwgZGVsYXkgfHwgMDtcbiAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKF90aGlzNC5faXNPcGVuID09PSBmYWxzZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWRvY3VtZW50LmJvZHkuY29udGFpbnMoX3RoaXM0Ll90b29sdGlwTm9kZSkpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiB3ZSBhcmUgaGlkaW5nIGJlY2F1c2Ugb2YgYSBtb3VzZWxlYXZlLCB3ZSBtdXN0IGNoZWNrIHRoYXQgdGhlIG5ld1xuICAgICAgICAvLyByZWZlcmVuY2UgaXNuJ3QgdGhlIHRvb2x0aXAsIGJlY2F1c2UgaW4gdGhpcyBjYXNlIHdlIGRvbid0IHdhbnQgdG8gaGlkZSBpdFxuICAgICAgICBpZiAoZXZ0LnR5cGUgPT09ICdtb3VzZWxlYXZlJykge1xuICAgICAgICAgIHZhciBpc1NldCA9IF90aGlzNC5fc2V0VG9vbHRpcE5vZGVFdmVudChldnQsIHJlZmVyZW5jZSwgZGVsYXksIG9wdGlvbnMpO1xuXG4gICAgICAgICAgLy8gaWYgd2Ugc2V0IHRoZSBuZXcgZXZlbnQsIGRvbid0IGhpZGUgdGhlIHRvb2x0aXAgeWV0XG4gICAgICAgICAgLy8gdGhlIG5ldyBldmVudCB3aWxsIHRha2UgY2FyZSB0byBoaWRlIGl0IGlmIG5lY2Vzc2FyeVxuICAgICAgICAgIGlmIChpc1NldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIF90aGlzNC5faGlkZShyZWZlcmVuY2UsIG9wdGlvbnMpO1xuICAgICAgfSwgY29tcHV0ZWREZWxheSk7XG4gICAgfVxuICB9XSk7XG4gIHJldHVybiBUb29sdGlwO1xufSgpO1xuXG4vKipcbiAqIFBsYWNlbWVudCBmdW5jdGlvbiwgaXRzIGNvbnRleHQgaXMgdGhlIFRvb2x0aXAgaW5zdGFuY2UuXG4gKiBAbWVtYmVyb2YgVG9vbHRpcFxuICogQGNhbGxiYWNrIFBsYWNlbWVudEZ1bmN0aW9uXG4gKiBAcGFyYW0ge0hUTUxFbGVtZW50fSB0b29sdGlwIC0gdG9vbHRpcCBET00gbm9kZS5cbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IHJlZmVyZW5jZSAtIHJlZmVyZW5jZSBET00gbm9kZS5cbiAqIEByZXR1cm4ge1N0cmluZ30gcGxhY2VtZW50IC0gT25lIG9mIHRoZSBhbGxvd2VkIHBsYWNlbWVudCBvcHRpb25zLlxuICovXG5cbi8qKlxuICogVGl0bGUgZnVuY3Rpb24sIGl0cyBjb250ZXh0IGlzIHRoZSBUb29sdGlwIGluc3RhbmNlLlxuICogQG1lbWJlcm9mIFRvb2x0aXBcbiAqIEBjYWxsYmFjayBUaXRsZUZ1bmN0aW9uXG4gKiBAcmV0dXJuIHtTdHJpbmd9IHBsYWNlbWVudCAtIFRoZSBkZXNpcmVkIHRpdGxlLlxuICovXG5cblxudmFyIF9pbml0aWFsaXNlUHJvcHMgPSBmdW5jdGlvbiBfaW5pdGlhbGlzZVByb3BzKCkge1xuICB2YXIgX3RoaXM1ID0gdGhpcztcblxuICB0aGlzLnNob3cgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF90aGlzNS5fc2hvdyhfdGhpczUucmVmZXJlbmNlLCBfdGhpczUub3B0aW9ucyk7XG4gIH07XG5cbiAgdGhpcy5oaWRlID0gZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBfdGhpczUuX2hpZGUoKTtcbiAgfTtcblxuICB0aGlzLmRpc3Bvc2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF90aGlzNS5fZGlzcG9zZSgpO1xuICB9O1xuXG4gIHRoaXMudG9nZ2xlID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChfdGhpczUuX2lzT3Blbikge1xuICAgICAgcmV0dXJuIF90aGlzNS5oaWRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBfdGhpczUuc2hvdygpO1xuICAgIH1cbiAgfTtcblxuICB0aGlzLmFycm93U2VsZWN0b3IgPSAnLnRvb2x0aXAtYXJyb3csIC50b29sdGlwX19hcnJvdyc7XG4gIHRoaXMuaW5uZXJTZWxlY3RvciA9ICcudG9vbHRpcC1pbm5lciwgLnRvb2x0aXBfX2lubmVyJztcbiAgdGhpcy5fZXZlbnRzID0gW107XG5cbiAgdGhpcy5fc2V0VG9vbHRpcE5vZGVFdmVudCA9IGZ1bmN0aW9uIChldnQsIHJlZmVyZW5jZSwgZGVsYXksIG9wdGlvbnMpIHtcbiAgICB2YXIgcmVsYXRlZHJlZmVyZW5jZSA9IGV2dC5yZWxhdGVkcmVmZXJlbmNlIHx8IGV2dC50b0VsZW1lbnQ7XG5cbiAgICB2YXIgY2FsbGJhY2sgPSBmdW5jdGlvbiBjYWxsYmFjayhldnQyKSB7XG4gICAgICB2YXIgcmVsYXRlZHJlZmVyZW5jZTIgPSBldnQyLnJlbGF0ZWRyZWZlcmVuY2UgfHwgZXZ0Mi50b0VsZW1lbnQ7XG5cbiAgICAgIC8vIFJlbW92ZSBldmVudCBsaXN0ZW5lciBhZnRlciBjYWxsXG4gICAgICBfdGhpczUuX3Rvb2x0aXBOb2RlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZ0LnR5cGUsIGNhbGxiYWNrKTtcblxuICAgICAgLy8gSWYgdGhlIG5ldyByZWZlcmVuY2UgaXMgbm90IHRoZSByZWZlcmVuY2UgZWxlbWVudFxuICAgICAgaWYgKCFyZWZlcmVuY2UuY29udGFpbnMocmVsYXRlZHJlZmVyZW5jZTIpKSB7XG4gICAgICAgIC8vIFNjaGVkdWxlIHRvIGhpZGUgdG9vbHRpcFxuICAgICAgICBfdGhpczUuX3NjaGVkdWxlSGlkZShyZWZlcmVuY2UsIG9wdGlvbnMuZGVsYXksIG9wdGlvbnMsIGV2dDIpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoX3RoaXM1Ll90b29sdGlwTm9kZS5jb250YWlucyhyZWxhdGVkcmVmZXJlbmNlKSkge1xuICAgICAgLy8gbGlzdGVuIHRvIG1vdXNlbGVhdmUgb24gdGhlIHRvb2x0aXAgZWxlbWVudCB0byBiZSBhYmxlIHRvIGhpZGUgdGhlIHRvb2x0aXBcbiAgICAgIF90aGlzNS5fdG9vbHRpcE5vZGUuYWRkRXZlbnRMaXN0ZW5lcihldnQudHlwZSwgY2FsbGJhY2spO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9O1xufTtcblxuZXhwb3J0IGRlZmF1bHQgVG9vbHRpcDtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXRvb2x0aXAuanMubWFwXG5cblxuXG4vLyBXRUJQQUNLIEZPT1RFUiAvL1xuLy8gLi9+L3Rvb2x0aXAuanMvZGlzdC9lc20vdG9vbHRpcC5qcyIsImltcG9ydCB2dG9vbHRpcCwgeyBkZWZhdWx0T3B0aW9ucyB9IGZyb20gJy4vdi10b29sdGlwJ1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGluc3RhbGwgKFZ1ZSwgb3B0aW9ucykge1xyXG4gIGlmIChpbnN0YWxsLmluc3RhbGxlZCkgcmV0dXJuXHJcbiAgaW5zdGFsbC5pbnN0YWxsZWQgPSB0cnVlXHJcblxyXG4gIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgb3B0aW9ucyB8fCB7fSlcclxuICB2dG9vbHRpcC5vcHRpb25zID0gb3B0aW9uc1xyXG4gIFZ1ZS5kaXJlY3RpdmUoJ3Rvb2x0aXAnLCB2dG9vbHRpcClcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFZUb29sdGlwID0gdnRvb2x0aXBcclxuXHJcbmNvbnN0IHBsdWdpbiA9IHtcclxuICBpbnN0YWxsLFxyXG59XHJcblxyXG4vLyBBdXRvLWluc3RhbGxcclxubGV0IEdsb2JhbFZ1ZSA9IG51bGxcclxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgR2xvYmFsVnVlID0gd2luZG93LlZ1ZVxyXG59IGVsc2UgaWYgKHR5cGVvZiBnbG9iYWwgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgR2xvYmFsVnVlID0gZ2xvYmFsLlZ1ZVxyXG59XHJcbmlmIChHbG9iYWxWdWUpIHtcclxuICBHbG9iYWxWdWUudXNlKHBsdWdpbilcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgcGx1Z2luXHJcblxuXG5cbi8vIFdFQlBBQ0sgRk9PVEVSIC8vXG4vLyAuL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VSb290IjoiIn0=\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/v-tooltip/dist/v-tooltip.common.js\n// module id = 13\n// module chunks = 0","'use strict';\n\nvar Vue = require('vue');\nVue = 'default' in Vue ? Vue['default'] : Vue;\n\nvar version = '2.1.0';\n\nvar compatible = (/^2\\./).test(Vue.version);\nif (!compatible) {\n Vue.util.warn('VueClickaway ' + version + ' only supports Vue 2.x, and does not support Vue ' + Vue.version);\n}\n\n\n\n// @SECTION: implementation\n\nvar HANDLER = '_vue_clickaway_handler';\n\nfunction bind(el, binding) {\n unbind(el);\n\n var callback = binding.value;\n if (typeof callback !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n Vue.util.warn(\n 'v-' + binding.name + '=\"' +\n binding.expression + '\" expects a function value, ' +\n 'got ' + callback\n );\n }\n return;\n }\n\n // @NOTE: Vue binds directives in microtasks, while UI events are dispatched\n // in macrotasks. This causes the listener to be set up before\n // the \"origin\" click event (the event that lead to the binding of\n // the directive) arrives at the document root. To work around that,\n // we ignore events until the end of the \"initial\" macrotask.\n // @REFERENCE: https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/\n // @REFERENCE: https://github.com/simplesmiler/vue-clickaway/issues/8\n var initialMacrotaskEnded = false;\n setTimeout(function() {\n initialMacrotaskEnded = true;\n }, 0);\n\n el[HANDLER] = function(ev) {\n // @NOTE: IE 5.0+\n // @REFERENCE: https://developer.mozilla.org/en/docs/Web/API/Node/contains\n if (initialMacrotaskEnded && !el.contains(ev.target)) {\n return callback(ev);\n }\n };\n\n document.documentElement.addEventListener('click', el[HANDLER], false);\n}\n\nfunction unbind(el) {\n document.documentElement.removeEventListener('click', el[HANDLER], false);\n delete el[HANDLER];\n}\n\nvar directive = {\n bind: bind,\n update: function(el, binding) {\n if (binding.value === binding.oldValue) return;\n bind(el, binding);\n },\n unbind: unbind,\n};\n\nvar mixin = {\n directives: { onClickaway: directive },\n};\n\nexports.version = version;\nexports.directive = directive;\nexports.mixin = mixin;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-clickaway/dist/vue-clickaway.common.js\n// module id = 14\n// module chunks = 0","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.VueColor=t():e.VueColor=t()}(this,function(){return function(e){function t(r){if(o[r])return o[r].exports;var a=o[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var o={};return t.m=e,t.c=o,t.p=\"\",t(0)}([function(e,t,o){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}var a=o(37),i=r(a),n=o(38),s=r(n),l=o(41),c=r(l),u=o(42),h=r(u),d=o(39),f=r(d),p=o(40),_=r(p),v=o(36),g=r(v),b=o(6),x=r(b),m=o(8),w=r(m),C=o(4),y=r(C),k=o(5),F=r(k),A=o(7),R=r(A),S=o(3),M=r(S),E={version:\"2.0.9\",Compact:i.default,Material:s.default,Slider:c.default,Swatches:h.default,Photoshop:f.default,Sketch:_.default,Chrome:g.default,Alpha:x.default,Checkboard:w.default,EditableInput:y.default,Hue:F.default,Saturation:R.default,ColorMixin:M.default};e.exports=E},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t=0&&g.splice(t,1)}function s(e){var t=document.createElement(\"style\");return t.type=\"text/css\",i(e,t),t}function l(e,t){var o,r,a;if(t.singleton){var i=v++;o=_||(_=s(t)),r=c.bind(null,o,i,!1),a=c.bind(null,o,i,!0)}else o=s(t),r=u.bind(null,o),a=function(){n(o)};return r(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;r(e=t)}else a()}}function c(e,t,o,r){var a=o?\"\":r.css;if(e.styleSheet)e.styleSheet.cssText=b(t,a);else{var i=document.createTextNode(a),n=e.childNodes;n[t]&&e.removeChild(n[t]),n.length?e.insertBefore(i,n[t]):e.appendChild(i)}}function u(e,t){var o=t.css,r=t.media,a=t.sourceMap;if(r&&e.setAttribute(\"media\",r),a&&(o+=\"\\n/*# sourceURL=\"+a.sources[0]+\" */\",o+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+\" */\"),e.styleSheet)e.styleSheet.cssText=o;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(o))}}var h={},d=function(e){var t;return function(){return\"undefined\"==typeof t&&(t=e.apply(this,arguments)),t}},f=d(function(){return/msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase())}),p=d(function(){return document.head||document.getElementsByTagName(\"head\")[0]}),_=null,v=0,g=[];e.exports=function(e,t){t=t||{},\"undefined\"==typeof t.singleton&&(t.singleton=f()),\"undefined\"==typeof t.insertAt&&(t.insertAt=\"bottom\");var o=a(e);return r(o,t),function(e){for(var i=[],n=0;n0?(0,n.default)(e.hex):(0,n.default)(e),o&&o.setAlpha(r||1);var a=o.toHsl(),i=o.toHsv();return 0===a.s&&(a.h=e.h||t||0,i.h=e.h||t||0),{hsl:a,hex:o.toHexString().toUpperCase(),rgba:o.toRgb(),hsv:i,oldHue:e.h||t||a.h,source:e.source,a:e.a||o.getAlpha()}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=o(35),n=r(i);t.default={props:[\"value\"],data:function(){return{val:a(this.value)}},computed:{colors:{get:function(){return this.val},set:function(e){this.val=e,this.$emit(\"input\",e)}}},watch:{value:function(e){this.val=a(e)}},methods:{colorChange:function(e,t){this.oldHue=this.colors.hsl.h,this.colors=a(e,t||this.oldHue)},isValidHex:function(e){return(0,n.default)(e).isValid()},simpleCheckForValidColor:function(e){for(var t=[\"r\",\"g\",\"b\",\"a\",\"h\",\"s\",\"a\",\"v\"],o=0,r=0,a=0;a=2?void(this.fieldsIndex=0):void this.fieldsIndex++},showHighlight:function(){this.highlight=!0},hideHighlight:function(){this.highlight=!1}}}},function(e,t,o){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var a=o(3),i=r(a),n=o(4),s=r(n),l=[\"#4D4D4D\",\"#999999\",\"#FFFFFF\",\"#F44E3B\",\"#FE9200\",\"#FCDC00\",\"#DBDF00\",\"#A4DD00\",\"#68CCCA\",\"#73D8FF\",\"#AEA1FF\",\"#FDA1FF\",\"#333333\",\"#808080\",\"#CCCCCC\",\"#D33115\",\"#E27300\",\"#FCC400\",\"#B0BC00\",\"#68BC00\",\"#16A5A5\",\"#009CE0\",\"#7B64FF\",\"#FA28FF\",\"#000000\",\"#666666\",\"#B3B3B3\",\"#9F0500\",\"#C45100\",\"#FB9E00\",\"#808900\",\"#194D33\",\"#0C797D\",\"#0062B1\",\"#653294\",\"#AB149E\"];t.default={name:\"Compact\",mixins:[i.default],props:{},components:{\"ed-in\":s.default},computed:{pick:function(){return this.colors.hex}},data:function(){return{defaultColors:l}},methods:{handlerClick:function(e){this.colorChange({hex:e,source:\"hex\"})},onChange:function(e){e&&(e.hex?this.isValidHex(e.hex)&&this.colorChange({hex:e.hex,source:\"hex\"}):(e.r||e.g||e.b)&&this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:\"rgba\"}))}}}},function(e,t,o){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var a=o(4),i=r(a),n=o(3),s=r(n);t.default={name:\"Material\",mixins:[s.default],components:{\"ed-in\":i.default},methods:{onChange:function(e){e&&(e.hex?this.isValidHex(e.hex)&&this.colorChange({hex:e.hex,source:\"hex\"}):(e.r||e.g||e.b)&&this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:\"rgba\"}))}}}},function(e,t,o){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var a=o(3),i=r(a),n=o(4),s=r(n),l=o(7),c=r(l),u=o(5),h=r(u),d=o(6),f=r(d);t.default={name:\"Photoshop\",mixins:[i.default],props:{head:{type:String,default:\"Color Picker\"}},components:{saturation:c.default,hue:h.default,alpha:f.default,\"ed-in\":s.default},data:function(){return{currentColor:\"#FFF\"}},created:function(){this.currentColor=this.colors.hex},methods:{childChange:function(e){this.colorChange(e)},inputChange:function(e){e&&(e[\"#\"]?this.isValidHex(e[\"#\"])&&this.colorChange({hex:e[\"#\"],source:\"hex\"}):(e.r||e.g||e.b||e.a)&&this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:\"rgba\"}))},handleAccept:function(){this.$emit(\"ok\")},handleCancel:function(){this.$emit(\"cancel\")}}}},function(e,t,o){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var a=o(3),i=r(a),n=o(4),s=r(n),l=o(7),c=r(l),u=o(5),h=r(u),d=o(6),f=r(d),p=[\"#D0021B\",\"#F5A623\",\"#F8E71C\",\"#8B572A\",\"#7ED321\",\"#417505\",\"#BD10E0\",\"#9013FE\",\"#4A90E2\",\"#50E3C2\",\"#B8E986\",\"#000000\",\"#4A4A4A\",\"#9B9B9B\",\"#FFFFFF\"];t.default={name:\"Sketch\",mixins:[i.default],components:{saturation:c.default,hue:h.default,alpha:f.default,\"ed-in\":s.default},data:function(){return{presetColors:p}},computed:{activeColor:function(){var e=this.colors.rgba;return\"rgba(\"+[e.r,e.g,e.b,e.a].join(\",\")+\")\"}},methods:{handlePreset:function(e){this.colorChange({hex:e,source:\"hex\"})},childChange:function(e){this.colorChange(e)},inputChange:function(e){e&&(e.hex?this.isValidHex(e.hex)&&this.colorChange({hex:e.hex,source:\"hex\"}):(e.r||e.g||e.b||e.a)&&this.colorChange({r:e.r||this.colors.rgba.r,g:e.g||this.colors.rgba.g,b:e.b||this.colors.rgba.b,a:e.a||this.colors.rgba.a,source:\"rgba\"}))}}}},function(e,t,o){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var a=o(3),i=r(a),n=o(5),s=r(n);t.default={name:\"Slider\",mixins:[i.default],props:{direction:String},components:{hue:s.default},computed:{activeOffset:function(){return Math.round(100*this.colors.hsl.s)/100===.5?Math.round(100*this.colors.hsl.l)/100:0}},data:function(){return{swatches:[\".80\",\".65\",\".50\",\".35\",\".20\"]}},methods:{hueChange:function(e){this.colorChange(e)},handleSwClick:function(e,t){this.colorChange({h:this.colors.hsl.h,s:.5,l:t,source:\"hsl\"})}}}},function(e,t,o){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var a=o(34),i=r(a),n=o(3),s=r(n),l=[\"red\",\"pink\",\"purple\",\"deepPurple\",\"indigo\",\"blue\",\"lightBlue\",\"cyan\",\"teal\",\"green\",\"lightGreen\",\"lime\",\"yellow\",\"amber\",\"orange\",\"deepOrange\",\"brown\",\"blueGrey\"],c=[\"900\",\"700\",\"500\",\"300\",\"100\"],u=function(){var e=[];return l.forEach(function(t){var o=[];c.forEach(function(e){o.push(i.default[t][e].toUpperCase())}),e.push(o)}),e}();t.default={name:\"Swatches\",mixins:[s.default],computed:{pick:function(){return this.colors.hex}},data:function(){return{defaultColors:u}},methods:{handlerClick:function(e){this.colorChange({hex:e,source:\"hex\"})}}}},function(e,t,o){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var a=o(8),i=r(a);t.default={name:\"Alpha\",props:{value:Object,onChange:Function},components:{checkboard:i.default},computed:{colors:function(){return this.value},gradientColor:function(){var e=this.colors.rgba,t=[e.r,e.g,e.b].join(\",\");return\"linear-gradient(to right, rgba(\"+t+\", 0) 0%, rgba(\"+t+\", 1) 100%)\"}},methods:{handleChange:function(e,t){!t&&e.preventDefault();var o,r=this.$refs.container,a=r.clientWidth,i=r.getBoundingClientRect().left+window.pageXOffset,n=e.pageX||(e.touches?e.touches[0].pageX:0),s=n-i;o=s<0?0:s>a?1:Math.round(100*s/a)/100,this.colors.a!==o&&this.$emit(\"change\",{h:this.colors.hsl.h,s:this.colors.hsl.s,l:this.colors.hsl.l,a:o,source:\"rgba\"})},handleMouseDown:function(e){this.handleChange(e,!0),window.addEventListener(\"mousemove\",this.handleChange),window.addEventListener(\"mouseup\",this.handleMouseUp)},handleMouseUp:function(){this.unbindEventListeners()},unbindEventListeners:function(){window.removeEventListener(\"mousemove\",this.handleChange),window.removeEventListener(\"mouseup\",this.handleMouseUp)}}}},function(e,t){\"use strict\";function o(e,t,o){if(\"undefined\"==typeof document)return null;var r=document.createElement(\"canvas\");r.width=r.height=2*o;var a=r.getContext(\"2d\");return a?(a.fillStyle=e,a.fillRect(0,0,r.width,r.height),a.fillStyle=t,a.fillRect(0,0,o,o),a.translate(o,o),a.fillRect(0,0,o,o),r.toDataURL()):null}function r(e,t,r){var i=e+\",\"+t+\",\"+r;if(a[i])return a[i];var n=o(e,t,r);return a[i]=n,n}Object.defineProperty(t,\"__esModule\",{value:!0});var a={};t.default={name:\"Checkboard\",props:{size:{type:[Number,String],default:8},white:{type:String,default:\"#fff\"},grey:{type:String,default:\"#e6e6e6\"}},computed:{bgStyle:function(){return\"url(\"+r(this.white,this.grey,this.size)+\") center left\"}}}},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"editableInput\",props:{label:String,value:[String,Number],max:Number,arrowOffset:{type:Number,default:1}},computed:{val:function(){return this.value}},filters:{maxFilter:{read:function(e){return this.max&&e>this.max?this.max:e},write:function(e,t){return e}}},methods:{update:function(e){this.handleChange(e.target.value)},handleChange:function(e){var t={};t[this.label]=e,this.$emit(\"change\",t)},handleBlur:function(e){console.log(e)},handleKeyDown:function(e){var t=this.val,o=Number(t);if(o){var r=this.arrowOffset||1;38===e.keyCode&&(t=o+r,this.handleChange(t),e.preventDefault()),40===e.keyCode&&(t=o-r,this.handleChange(t),e.preventDefault())}},handleDrag:function(e){console.log(e)},handleMouseDown:function(e){console.log(e)}}}},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.default={name:\"Hue\",props:{value:Object,direction:{type:String,default:\"horizontal\"}},computed:{colors:function(){return this.value},directionClass:function(){return{\"vue-color__c-hue--horizontal\":\"horizontal\"===this.direction,\"vue-color__c-hue--vertical\":\"vertical\"===this.direction}},pointerTop:function(){return\"vertical\"===this.direction?-(100*this.colors.hsl.h/360)+100+\"%\":0},pointerLeft:function(){return\"vertical\"===this.direction?0:100*this.colors.hsl.h/360+\"%\"}},methods:{handleChange:function(e,t){!t&&e.preventDefault();var o,r,a=this.$refs.container,i=a.clientWidth,n=a.clientHeight,s=a.getBoundingClientRect().left+window.pageXOffset,l=a.getBoundingClientRect().top+window.pageYOffset,c=e.pageX||(e.touches?e.touches[0].pageX:0),u=e.pageY||(e.touches?e.touches[0].pageY:0),h=c-s,d=u-l;\"vertical\"===this.direction?(d<0?o=359:d>n?o=0:(r=-(100*d/n)+100,o=360*r/100),this.colors.hsl.h!==o&&this.$emit(\"change\",{h:o,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:\"hsl\"})):(h<0?o=0:h>i?o=359:(r=100*h/i,o=360*r/100),this.colors.hsl.h!==o&&this.$emit(\"change\",{h:o,s:this.colors.hsl.s,l:this.colors.hsl.l,a:this.colors.hsl.a,source:\"hsl\"}))},handleMouseDown:function(e){this.handleChange(e,!0),window.addEventListener(\"mousemove\",this.handleChange),window.addEventListener(\"mouseup\",this.handleMouseUp)},handleMouseUp:function(e){this.unbindEventListeners()},unbindEventListeners:function(){window.removeEventListener(\"mousemove\",this.handleChange),window.removeEventListener(\"mouseup\",this.handleMouseUp)}}}},function(e,t,o){\"use strict\";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var a=o(33),i=r(a);t.default={name:\"Saturation\",props:{value:Object},computed:{colors:function(){return this.value},bgColor:function(){return\"hsl(\"+this.colors.hsl.h+\", 100%, 50%)\"},pointerTop:function(){return-(100*this.colors.hsv.v)+100+\"%\"},pointerLeft:function(){return 100*this.colors.hsv.s+\"%\"}},methods:{throttle:(0,i.default)(function(e,t){e(t)},20,{leading:!0,trailing:!1}),handleChange:function(e,t){!t&&e.preventDefault();var o=this.$refs.container,r=o.clientWidth,a=o.clientHeight,i=o.getBoundingClientRect().left+window.pageXOffset,n=o.getBoundingClientRect().top+window.pageYOffset,s=e.pageX||(e.touches?e.touches[0].pageX:0),l=e.pageY||(e.touches?e.touches[0].pageY:0),c=s-i,u=l-n;c<0?c=0:c>r?c=r:u<0?u=0:u>a&&(u=a);var h=100*c/r,d=-(100*u/a)+100;this.throttle(this.onChange,{h:this.colors.hsl.h,s:h,v:d>0?d:.01,a:this.colors.hsl.a,source:\"hsva\"})},onChange:function(e){this.$emit(\"change\",e)},handleMouseDown:function(e){window.addEventListener(\"mousemove\",this.handleChange),window.addEventListener(\"mouseup\",this.handleChange),window.addEventListener(\"mouseup\",this.handleMouseUp)},handleMouseUp:function(e){this.unbindEventListeners()},unbindEventListeners:function(){window.removeEventListener(\"mousemove\",this.handleChange),window.removeEventListener(\"mouseup\",this.handleChange),window.removeEventListener(\"mouseup\",this.handleMouseUp)}}}},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__compact{padding-top:5px;padding-left:5px;width:240px;border-radius:2px;box-shadow:0 2px 10px rgba(0,0,0,.12),0 2px 5px rgba(0,0,0,.16);background-color:#fff}.vue-color__compact__colors{overflow:hidden;padding:0;margin:0}.vue-color__compact__color-item{list-style:none;width:15px;height:15px;float:left;margin-right:5px;margin-bottom:5px;position:relative;cursor:pointer}.vue-color__compact__color-item--white{box-shadow:inset 0 0 0 1px #ddd}.vue-color__compact__color-item--white .vue-color__compact__dot{background:#000}.vue-color__compact__dot{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;opacity:1;background:#fff}.vue-color__compact__fields{display:flex;padding-bottom:6px;padding-right:5px;position:relative}.vue-color__compact__fields .vue-color__editable-input__input{width:70%;padding-left:30%;background:none;font-size:12px;color:#333;height:16px}.vue-color__compact__fields .vue-color__editable-input__label{position:absolute;top:3px;left:0;line-height:16px;text-transform:uppercase;font-size:12px;color:#999}.vue-color__compact__pick-color{position:absolute;top:6px;left:5px;height:9px;width:9px}.vue-color__compact__col-3{flex:1}.vue_color__compact__col-hex{flex:2}.vue_color__compact__col-hex .vue-color__editable-input__input{width:80%;padding-left:20%}.vue_color__compact__col-hex .vue-color__editable-input__label{display:none}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__editable-input{position:relative}.vue-color__editable-input__input{padding:0;border:0;outline:none}.vue-color__editable-input__label{text-transform:capitalize}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__c-hue{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px}.vue-color__c-hue--horizontal{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vue-color__c-hue--vertical{background:linear-gradient(0deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.vue-color__c-hue__container{cursor:pointer;margin:0 2px;position:relative;height:100%}.vue-color__c-hue__pointer{z-index:2;position:absolute}.vue-color__c-hue__picker{cursor:pointer;margin-top:1px;width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px rgba(0,0,0,.6);background:#fff;transform:translateX(-2px)}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__saturation,.vue-color__saturation--black,.vue-color__saturation--white{cursor:pointer;position:absolute;top:0;left:0;right:0;bottom:0}.vue-color__saturation--white{background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.vue-color__saturation--black{background:linear-gradient(0deg,#000,transparent)}.vue-color__saturation--pointer{cursor:pointer;position:absolute}.vue-color__saturation--circle{cursor:head;width:4px;height:4px;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;transform:translate(-2px,-2px)}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__material{width:98px;height:98px;padding:16px;font-family:Roboto;position:relative;border-radius:2px;box-shadow:0 2px 10px rgba(0,0,0,.12),0 2px 5px rgba(0,0,0,.16);background-color:#fff}.vue-color__material .vue-color__editable-input__input{width:100%;margin-top:12px;font-size:15px;color:#333;height:30px}.vue-color__material .vue-color__editable-input__label{position:absolute;top:0;left:0;font-size:11px;color:#999;text-transform:capitalize}.vue-color__material__hex{border-bottom-width:2px;border-bottom-style:solid}.vue-color__material__split{display:flex;margin-right:-10px;padding-top:11px}.vue-color__material__third{flex:1;padding-right:10px}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__slider{position:relative;width:410px}.vue-color__slider__hue-warp{height:12px;position:relative}.vue-color__slider__hue-warp .vue-color__c-hue__picker{width:14px;height:14px;border-radius:6px;transform:translate(-7px,-2px);background-color:#f8f8f8;box-shadow:0 1px 4px 0 rgba(0,0,0,.37)}.vue-color__slider__swatches{display:flex;margin-top:20px}.vue-color__slider__swatch{margin-right:1px;flex:1;width:20%}.vue-color__slider__swatch:first-child{margin-right:1px}.vue-color__slider__swatch:first-child .vue-color__slider__swatch-picker{border-radius:2px 0 0 2px}.vue-color__slider__swatch:last-child{margin-right:0}.vue-color__slider__swatch:last-child .vue-color__slider__swatch-picker{border-radius:0 2px 2px 0}.vue-color__slider__swatch-picker{cursor:pointer;height:12px}.vue-color__slider__swatch-picker--active{transform:scaleY(1.8);border-radius:3.6px/2px}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__swatches{width:320px;height:240px;overflow-y:scroll;background-color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.12),0 2px 5px rgba(0,0,0,.16)}.vue-color__swatches__box{padding:16px 0 6px 16px;overflow:hidden}.vue-color__swatches__color-group{padding-bottom:10px;width:40px;float:left;margin-right:10px}.vue-color__swatches__color-it{width:40px;height:24px;cursor:pointer;background:#880e4f;margin-bottom:1px;overflow:hidden;border-radius:2px 2px 0 0}.vue-color__swatches__pick{fill:#fff;margin-left:8px;display:block}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,'.vue-color__photoshop{background:#dcdcdc;border-radius:4px;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 8px 16px rgba(0,0,0,.15);box-sizing:initial;width:513px;font-family:Roboto}.vue-color__photoshop__head{background-image:linear-gradient(-180deg,#f0f0f0,#d4d4d4);border-bottom:1px solid #b1b1b1;box-shadow:inset 0 1px 0 0 hsla(0,0%,100%,.2),inset 0 -1px 0 0 rgba(0,0,0,.02);height:23px;line-height:24px;border-radius:4px 4px 0 0;font-size:13px;color:#4d4d4d;text-align:center}.vue-color__photoshop__body{padding:15px;display:flex}.vue-color__photoshop__saturation-wrap{width:256px;height:256px;position:relative;border:2px solid #b3b3b3;border-bottom:2px solid #f0f0f0;overflow:hidden}.vue-color__photoshop__saturation-wrap .vue-color__saturation--circle{width:12px;height:12px}.vue-color__photoshop__hue-wrap{position:relative;height:256px;width:19px;margin-left:10px;border:2px solid #b3b3b3;border-bottom:2px solid #f0f0f0}.vue-color__photoshop__hue-pointer{position:relative}.vue-color__photoshop__hue-pointer--left,.vue-color__photoshop__hue-pointer--right{position:absolute;width:0;height:0;border-style:solid;border-width:5px 0 5px 8px;border-color:transparent transparent transparent #555}.vue-color__photoshop__hue-pointer--left:after,.vue-color__photoshop__hue-pointer--right:after{content:\"\";width:0;height:0;border-style:solid;border-width:4px 0 4px 6px;border-color:transparent transparent transparent #fff;position:absolute;top:1px;left:1px;transform:translate(-8px,-5px)}.vue-color__photoshop__hue-pointer--left{transform:translate(-13px,-4px)}.vue-color__photoshop__hue-pointer--right{transform:translate(20px,-4px) rotate(180deg)}.vue-color__photoshop__controls{width:180px;margin-left:10px;display:flex}.vue-color__photoshop__actions{margin-left:20px;flex:1}.vue-color__photoshop__ac-btn{cursor:pointer;background-image:linear-gradient(-180deg,#fff,#e6e6e6);border:1px solid #878787;border-radius:2px;height:20px;box-shadow:0 1px 0 0 #eaeaea;font-size:14px;color:#000;line-height:20px;text-align:center;margin-bottom:10px}.vue-color__photoshop__previews{width:60px}.vue-color__photoshop__previews__swatches{border:1px solid #b3b3b3;border-bottom:1px solid #f0f0f0;margin-bottom:2px;margin-top:1px}.vue-color__photoshop__previews__pr-color{height:34px;box-shadow:inset 1px 0 0 #000,inset -1px 0 0 #000,inset 0 1px 0 #000}.vue-color__photoshop__previews__label{font-size:14px;color:#000;text-align:center}.vue-color__photoshop__fields{padding-top:5px;padding-bottom:9px;width:80px;position:relative}.vue-color__photoshop__fields .vue-color__editable-input__input{margin-left:40%;width:40%;height:18px;border:1px solid #888;box-shadow:inset 0 1px 1px rgba(0,0,0,.1),0 1px 0 0 #ececec;margin-bottom:5px;font-size:13px;padding-left:3px;margin-right:10px}.vue-color__photoshop__fields .vue-color__editable-input__label{top:0;left:0;width:34px;text-transform:uppercase;font-size:13px;height:18px;line-height:22px;position:absolute}.vue-color__photoshop__fields__divider{height:5px}.vue-color__photoshop__fields__hex .vue-color__editable-input__input{margin-left:20%;width:80%;height:18px;border:1px solid #888;box-shadow:inset 0 1px 1px rgba(0,0,0,.1),0 1px 0 0 #ececec;margin-bottom:6px;font-size:13px;padding-left:3px}.vue-color__photoshop__fields__hex .vue-color__editable-input__label{position:absolute;top:0;left:0;width:14px;text-transform:uppercase;font-size:13px;height:18px;line-height:22px}',\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__sketch{position:relative;width:200px;padding:10px 10px 0;box-sizing:initial;background:#fff;border-radius:4px;box-shadow:0 0 0 1px rgba(0,0,0,.15),0 8px 16px rgba(0,0,0,.15)}.vue-color__sketch__saturation-wrap{width:100%;padding-bottom:75%;position:relative;overflow:hidden}.vue-color__sketch__controls{display:flex}.vue-color__sketch__sliders{padding:4px 0;flex:1}.vue-color__sketch__sliders .vue-color__c-alpha__gradient,.vue-color__sketch__sliders .vue-color__c-hue{border-radius:2px}.vue-color__sketch__hue-wrap{position:relative;height:10px}.vue-color__sketch__alpha-wrap{position:relative;height:10px;margin-top:4px;overflow:hidden}.vue-color__sketch__color-wrap{width:24px;height:24px;position:relative;margin-top:4px;margin-left:4px;border-radius:3px}.vue-color__sketch__active-color{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),inset 0 0 4px rgba(0,0,0,.25);z-index:2}.vue-color__sketch__field{display:flex;padding-top:4px}.vue-color__sketch__field .vue-color__editable-input__input{width:80%;padding:4px 10% 3px;border:none;box-shadow:inset 0 0 0 1px #ccc;font-size:11px}.vue-color__sketch__field .vue-color__editable-input__label{display:block;text-align:center;font-size:11px;color:#222;padding-top:3px;padding-bottom:4px;text-transform:capitalize}.vue-color__sketch__field--single{flex:1;padding-left:6px}.vue-color__sketch__field--double{flex:2}.vue-color__sketch__presets{margin-right:-10px;margin-left:-10px;padding-left:10px;padding-top:10px;border-top:1px solid #eee}.vue-color__sketch__presets-color{border-radius:3px;overflow:hidden;position:relative;display:inline-block;margin:0 10px 10px 0;vertical-align:top;cursor:pointer;width:16px;height:16px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__chrome{background:#fff;border-radius:2px;box-shadow:0 0 2px rgba(0,0,0,.3),0 4px 8px rgba(0,0,0,.3);box-sizing:initial;width:225px;font-family:Menlo;background-color:#fff}.vue-color__chrome__controls{display:flex}.vue-color__chrome__color-wrap{width:32px}.vue-color__chrome__active-color{margin-top:6px;width:16px;height:16px;border-radius:8px;position:relative;overflow:hidden}.vue-color__chrome__sliders{flex:1}.vue-color__chrome__sliders .vue-color__c-alpha__gradient,.vue-color__chrome__sliders .vue-color__c-hue{border-radius:2px}.vue-color__chrome__sliders .vue-color__c-alpha__picker,.vue-color__chrome__sliders .vue-color__c-hue__picker{width:12px;height:12px;border-radius:6px;transform:translate(-6px,-2px);background-color:#f8f8f8;box-shadow:0 1px 4px 0 rgba(0,0,0,.37)}.vue-color__chrome__fields-wrap{padding-top:16px;display:flex}.vue-color__chrome__fields{display:flex;margin-left:-6px;flex:1}.vue-color__chrome__field{padding-left:6px;width:100%}.vue-color__chrome__toggle-btn{width:32px;text-align:right;position:relative}.vue-color__chrome__icon{margin-right:-4px;margin-top:12px;cursor:pointer;position:relative;z-index:2}.vue-color__chrome__icon-highlight{position:absolute;width:24px;height:28px;background:#eee;border-radius:4px;top:10px;left:12px}.vue-color__chrome__hue-wrap{margin-bottom:8px}.vue-color__chrome__alpha-wrap,.vue-color__chrome__hue-wrap{position:relative;height:10px}.vue-color__chrome__chrome-body{padding:16px 16px 12px;background-color:#fff}.vue-color__chrome__saturation-wrap{width:100%;padding-bottom:55%;position:relative;border-radius:2px 2px 0 0;overflow:hidden}.vue-color__chrome__saturation-wrap .vue-color__saturation--circle{width:12px;height:12px}.vue-color__chrome__fields .vue-color__editable-input__input{font-size:11px;color:#333;width:100%;border-rradius:2px;border:none;box-shadow:inset 0 0 0 1px #dadada;height:21px;text-align:center}.vue-color__chrome__fields .vue-color__editable-input__label{text-transform:uppercase;font-size:11px;line-height:11px;color:#969696;text-align:center;display:block;margin-top:12px}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__c-alpha,.vue-color__c-alpha__checkboard-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.vue-color__c-alpha__checkboard-wrap{overflow:hidden}.vue-color__c-alpha__gradient{position:absolute;top:0;right:0;bottom:0;left:0}.vue-color__c-alpha__container{cursor:pointer;position:relative;z-index:2;height:100%;margin:0 3px}.vue-color__c-alpha__pointer{z-index:2;position:absolute}.vue-color__c-alpha__picker{cursor:pointer;width:4px;border-radius:1px;height:8px;box-shadow:0 0 2px rgba(0,0,0,.6);background:#fff;margin-top:1px;transform:translateX(-2px)}\",\"\"])},function(e,t,o){t=e.exports=o(1)(),t.push([e.id,\".vue-color__c-checkerboard{position:absolute;top:0;right:0;bottom:0;left:0}\",\"\"])},function(e,t){(function(t){function o(e,t,o){function r(t){var o=_,r=v;return _=v=void 0,k=t,b=e.apply(r,o)}function i(e){return k=e,x=setTimeout(u,t),F?r(e):b}function n(e){var o=e-m,r=e-k,a=t-o;return A?C(a,g-r):a}function c(e){var o=e-m,r=e-k;return void 0===m||o>=t||o<0||A&&r>=g}function u(){var e=y();return c(e)?h(e):void(x=setTimeout(u,n(e)))}function h(e){return x=void 0,R&&_?r(e):(_=v=void 0,b)}function d(){void 0!==x&&clearTimeout(x),k=0,_=m=v=x=void 0}function f(){return void 0===x?b:h(y())}function p(){var e=y(),o=c(e);if(_=arguments,v=this,m=e,o){if(void 0===x)return i(m);if(A)return x=setTimeout(u,t),r(m)}return void 0===x&&(x=setTimeout(u,t)),\nb}var _,v,g,b,x,m,k=0,F=!1,A=!1,R=!0;if(\"function\"!=typeof e)throw new TypeError(l);return t=s(t)||0,a(o)&&(F=!!o.leading,A=\"maxWait\"in o,g=A?w(s(o.maxWait)||0,t):g,R=\"trailing\"in o?!!o.trailing:R),p.cancel=d,p.flush=f,p}function r(e,t,r){var i=!0,n=!0;if(\"function\"!=typeof e)throw new TypeError(l);return a(r)&&(i=\"leading\"in r?!!r.leading:i,n=\"trailing\"in r?!!r.trailing:n),o(e,t,{leading:i,maxWait:t,trailing:n})}function a(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==typeof e}function n(e){return\"symbol\"==typeof e||i(e)&&m.call(e)==u}function s(e){if(\"number\"==typeof e)return e;if(n(e))return c;if(a(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=a(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(h,\"\");var o=f.test(e);return o||p.test(e)?_(e.slice(2),o?2:8):d.test(e)?c:+e}var l=\"Expected a function\",c=NaN,u=\"[object Symbol]\",h=/^\\s+|\\s+$/g,d=/^[-+]0x[0-9a-f]+$/i,f=/^0b[01]+$/i,p=/^0o[0-7]+$/i,_=parseInt,v=\"object\"==typeof t&&t&&t.Object===Object&&t,g=\"object\"==typeof self&&self&&self.Object===Object&&self,b=v||g||Function(\"return this\")(),x=Object.prototype,m=x.toString,w=Math.max,C=Math.min,y=function(){return b.Date.now()};e.exports=r}).call(t,function(){return this}())},function(e,t,o){var r,a,i;!function(o,n){a=[],r=n,i=\"function\"==typeof r?r.apply(t,a):r,!(void 0!==i&&(e.exports=i))}(this,function(){return{red:{50:\"#ffebee\",100:\"#ffcdd2\",200:\"#ef9a9a\",300:\"#e57373\",400:\"#ef5350\",500:\"#f44336\",600:\"#e53935\",700:\"#d32f2f\",800:\"#c62828\",900:\"#b71c1c\",a100:\"#ff8a80\",a200:\"#ff5252\",a400:\"#ff1744\",a700:\"#d50000\"},pink:{50:\"#fce4ec\",100:\"#f8bbd0\",200:\"#f48fb1\",300:\"#f06292\",400:\"#ec407a\",500:\"#e91e63\",600:\"#d81b60\",700:\"#c2185b\",800:\"#ad1457\",900:\"#880e4f\",a100:\"#ff80ab\",a200:\"#ff4081\",a400:\"#f50057\",a700:\"#c51162\"},purple:{50:\"#f3e5f5\",100:\"#e1bee7\",200:\"#ce93d8\",300:\"#ba68c8\",400:\"#ab47bc\",500:\"#9c27b0\",600:\"#8e24aa\",700:\"#7b1fa2\",800:\"#6a1b9a\",900:\"#4a148c\",a100:\"#ea80fc\",a200:\"#e040fb\",a400:\"#d500f9\",a700:\"#aa00ff\"},deepPurple:{50:\"#ede7f6\",100:\"#d1c4e9\",200:\"#b39ddb\",300:\"#9575cd\",400:\"#7e57c2\",500:\"#673ab7\",600:\"#5e35b1\",700:\"#512da8\",800:\"#4527a0\",900:\"#311b92\",a100:\"#b388ff\",a200:\"#7c4dff\",a400:\"#651fff\",a700:\"#6200ea\"},indigo:{50:\"#e8eaf6\",100:\"#c5cae9\",200:\"#9fa8da\",300:\"#7986cb\",400:\"#5c6bc0\",500:\"#3f51b5\",600:\"#3949ab\",700:\"#303f9f\",800:\"#283593\",900:\"#1a237e\",a100:\"#8c9eff\",a200:\"#536dfe\",a400:\"#3d5afe\",a700:\"#304ffe\"},blue:{50:\"#e3f2fd\",100:\"#bbdefb\",200:\"#90caf9\",300:\"#64b5f6\",400:\"#42a5f5\",500:\"#2196f3\",600:\"#1e88e5\",700:\"#1976d2\",800:\"#1565c0\",900:\"#0d47a1\",a100:\"#82b1ff\",a200:\"#448aff\",a400:\"#2979ff\",a700:\"#2962ff\"},lightBlue:{50:\"#e1f5fe\",100:\"#b3e5fc\",200:\"#81d4fa\",300:\"#4fc3f7\",400:\"#29b6f6\",500:\"#03a9f4\",600:\"#039be5\",700:\"#0288d1\",800:\"#0277bd\",900:\"#01579b\",a100:\"#80d8ff\",a200:\"#40c4ff\",a400:\"#00b0ff\",a700:\"#0091ea\"},cyan:{50:\"#e0f7fa\",100:\"#b2ebf2\",200:\"#80deea\",300:\"#4dd0e1\",400:\"#26c6da\",500:\"#00bcd4\",600:\"#00acc1\",700:\"#0097a7\",800:\"#00838f\",900:\"#006064\",a100:\"#84ffff\",a200:\"#18ffff\",a400:\"#00e5ff\",a700:\"#00b8d4\"},teal:{50:\"#e0f2f1\",100:\"#b2dfdb\",200:\"#80cbc4\",300:\"#4db6ac\",400:\"#26a69a\",500:\"#009688\",600:\"#00897b\",700:\"#00796b\",800:\"#00695c\",900:\"#004d40\",a100:\"#a7ffeb\",a200:\"#64ffda\",a400:\"#1de9b6\",a700:\"#00bfa5\"},green:{50:\"#e8f5e9\",100:\"#c8e6c9\",200:\"#a5d6a7\",300:\"#81c784\",400:\"#66bb6a\",500:\"#4caf50\",600:\"#43a047\",700:\"#388e3c\",800:\"#2e7d32\",900:\"#1b5e20\",a100:\"#b9f6ca\",a200:\"#69f0ae\",a400:\"#00e676\",a700:\"#00c853\"},lightGreen:{50:\"#f1f8e9\",100:\"#dcedc8\",200:\"#c5e1a5\",300:\"#aed581\",400:\"#9ccc65\",500:\"#8bc34a\",600:\"#7cb342\",700:\"#689f38\",800:\"#558b2f\",900:\"#33691e\",a100:\"#ccff90\",a200:\"#b2ff59\",a400:\"#76ff03\",a700:\"#64dd17\"},lime:{50:\"#f9fbe7\",100:\"#f0f4c3\",200:\"#e6ee9c\",300:\"#dce775\",400:\"#d4e157\",500:\"#cddc39\",600:\"#c0ca33\",700:\"#afb42b\",800:\"#9e9d24\",900:\"#827717\",a100:\"#f4ff81\",a200:\"#eeff41\",a400:\"#c6ff00\",a700:\"#aeea00\"},yellow:{50:\"#fffde7\",100:\"#fff9c4\",200:\"#fff59d\",300:\"#fff176\",400:\"#ffee58\",500:\"#ffeb3b\",600:\"#fdd835\",700:\"#fbc02d\",800:\"#f9a825\",900:\"#f57f17\",a100:\"#ffff8d\",a200:\"#ffff00\",a400:\"#ffea00\",a700:\"#ffd600\"},amber:{50:\"#fff8e1\",100:\"#ffecb3\",200:\"#ffe082\",300:\"#ffd54f\",400:\"#ffca28\",500:\"#ffc107\",600:\"#ffb300\",700:\"#ffa000\",800:\"#ff8f00\",900:\"#ff6f00\",a100:\"#ffe57f\",a200:\"#ffd740\",a400:\"#ffc400\",a700:\"#ffab00\"},orange:{50:\"#fff3e0\",100:\"#ffe0b2\",200:\"#ffcc80\",300:\"#ffb74d\",400:\"#ffa726\",500:\"#ff9800\",600:\"#fb8c00\",700:\"#f57c00\",800:\"#ef6c00\",900:\"#e65100\",a100:\"#ffd180\",a200:\"#ffab40\",a400:\"#ff9100\",a700:\"#ff6d00\"},deepOrange:{50:\"#fbe9e7\",100:\"#ffccbc\",200:\"#ffab91\",300:\"#ff8a65\",400:\"#ff7043\",500:\"#ff5722\",600:\"#f4511e\",700:\"#e64a19\",800:\"#d84315\",900:\"#bf360c\",a100:\"#ff9e80\",a200:\"#ff6e40\",a400:\"#ff3d00\",a700:\"#dd2c00\"},brown:{50:\"#efebe9\",100:\"#d7ccc8\",200:\"#bcaaa4\",300:\"#a1887f\",400:\"#8d6e63\",500:\"#795548\",600:\"#6d4c41\",700:\"#5d4037\",800:\"#4e342e\",900:\"#3e2723\"},grey:{50:\"#fafafa\",100:\"#f5f5f5\",200:\"#eeeeee\",300:\"#e0e0e0\",400:\"#bdbdbd\",500:\"#9e9e9e\",600:\"#757575\",700:\"#616161\",800:\"#424242\",900:\"#212121\"},blueGrey:{50:\"#eceff1\",100:\"#cfd8dc\",200:\"#b0bec5\",300:\"#90a4ae\",400:\"#78909c\",500:\"#607d8b\",600:\"#546e7a\",700:\"#455a64\",800:\"#37474f\",900:\"#263238\"},darkText:{primary:\"rgba(0, 0, 0, 0.87)\",secondary:\"rgba(0, 0, 0, 0.54)\",disabled:\"rgba(0, 0, 0, 0.38)\",dividers:\"rgba(0, 0, 0, 0.12)\"},lightText:{primary:\"rgba(255, 255, 255, 1)\",secondary:\"rgba(255, 255, 255, 0.7)\",disabled:\"rgba(255, 255, 255, 0.5)\",dividers:\"rgba(255, 255, 255, 0.12)\"},darkIcons:{active:\"rgba(0, 0, 0, 0.54)\",inactive:\"rgba(0, 0, 0, 0.38)\"},lightIcons:{active:\"rgba(255, 255, 255, 1)\",inactive:\"rgba(255, 255, 255, 0.5)\"},white:\"#ffffff\",black:\"#000000\"}})},function(e,t,o){var r;!function(a){function i(e,t){if(e=e?e:\"\",t=t||{},e instanceof i)return e;if(!(this instanceof i))return new i(e,t);var o=n(e);this._originalInput=e,this._r=o.r,this._g=o.g,this._b=o.b,this._a=o.a,this._roundA=X(100*this._a)/100,this._format=t.format||o.format,this._gradientType=t.gradientType,this._r<1&&(this._r=X(this._r)),this._g<1&&(this._g=X(this._g)),this._b<1&&(this._b=X(this._b)),this._ok=o.ok,this._tc_id=V++}function n(e){var t={r:0,g:0,b:0},o=1,r=null,a=null,i=null,n=!1,l=!1;return\"string\"==typeof e&&(e=P(e)),\"object\"==typeof e&&(N(e.r)&&N(e.g)&&N(e.b)?(t=s(e.r,e.g,e.b),n=!0,l=\"%\"===String(e.r).substr(-1)?\"prgb\":\"rgb\"):N(e.h)&&N(e.s)&&N(e.v)?(r=B(e.s),a=B(e.v),t=h(e.h,r,a),n=!0,l=\"hsv\"):N(e.h)&&N(e.s)&&N(e.l)&&(r=B(e.s),i=B(e.l),t=c(e.h,r,i),n=!0,l=\"hsl\"),e.hasOwnProperty(\"a\")&&(o=e.a)),o=M(o),{ok:n,format:e.format||l,r:q(255,Y(t.r,0)),g:q(255,Y(t.g,0)),b:q(255,Y(t.b,0)),a:o}}function s(e,t,o){return{r:255*E(e,255),g:255*E(t,255),b:255*E(o,255)}}function l(e,t,o){e=E(e,255),t=E(t,255),o=E(o,255);var r,a,i=Y(e,t,o),n=q(e,t,o),s=(i+n)/2;if(i==n)r=a=0;else{var l=i-n;switch(a=s>.5?l/(2-i-n):l/(i+n),i){case e:r=(t-o)/l+(t1&&(o-=1),o<1/6?e+6*(t-e)*o:o<.5?t:o<2/3?e+(t-e)*(2/3-o)*6:e}var a,i,n;if(e=E(e,360),t=E(t,100),o=E(o,100),0===t)a=i=n=o;else{var s=o<.5?o*(1+t):o+t-o*t,l=2*o-s;a=r(l,s,e+1/3),i=r(l,s,e),n=r(l,s,e-1/3)}return{r:255*a,g:255*i,b:255*n}}function u(e,t,o){e=E(e,255),t=E(t,255),o=E(o,255);var r,a,i=Y(e,t,o),n=q(e,t,o),s=i,l=i-n;if(a=0===i?0:l/i,i==n)r=0;else{switch(i){case e:r=(t-o)/l+(t>1)+720)%360;--t;)r.h=(r.h+a)%360,n.push(i(r));return n}function R(e,t){t=t||6;for(var o=i(e).toHsv(),r=o.h,a=o.s,n=o.v,s=[],l=1/t;t--;)s.push(i({h:r,s:a,v:n})),n=(n+l)%1;return s}function S(e){var t={};for(var o in e)e.hasOwnProperty(o)&&(t[e[o]]=o);return t}function M(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function E(e,t){H(e)&&(e=\"100%\");var o=O(e);return e=q(t,Y(0,parseFloat(e))),o&&(e=parseInt(e*t,10)/100),a.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function j(e){return q(1,Y(0,e))}function L(e){return parseInt(e,16)}function H(e){return\"string\"==typeof e&&e.indexOf(\".\")!=-1&&1===parseFloat(e)}function O(e){return\"string\"==typeof e&&e.indexOf(\"%\")!=-1}function z(e){return 1==e.length?\"0\"+e:\"\"+e}function B(e){return e<=1&&(e=100*e+\"%\"),e}function D(e){return a.round(255*parseFloat(e)).toString(16)}function $(e){return L(e)/255}function N(e){return!!Z.CSS_UNIT.exec(e)}function P(e){e=e.replace(T,\"\").replace(U,\"\").toLowerCase();var t=!1;if(G[e])e=G[e],t=!0;else if(\"transparent\"==e)return{r:0,g:0,b:0,a:0,format:\"name\"};var o;return(o=Z.rgb.exec(e))?{r:o[1],g:o[2],b:o[3]}:(o=Z.rgba.exec(e))?{r:o[1],g:o[2],b:o[3],a:o[4]}:(o=Z.hsl.exec(e))?{h:o[1],s:o[2],l:o[3]}:(o=Z.hsla.exec(e))?{h:o[1],s:o[2],l:o[3],a:o[4]}:(o=Z.hsv.exec(e))?{h:o[1],s:o[2],v:o[3]}:(o=Z.hsva.exec(e))?{h:o[1],s:o[2],v:o[3],a:o[4]}:(o=Z.hex8.exec(e))?{r:L(o[1]),g:L(o[2]),b:L(o[3]),a:$(o[4]),format:t?\"name\":\"hex8\"}:(o=Z.hex6.exec(e))?{r:L(o[1]),g:L(o[2]),b:L(o[3]),format:t?\"name\":\"hex\"}:(o=Z.hex4.exec(e))?{r:L(o[1]+\"\"+o[1]),g:L(o[2]+\"\"+o[2]),b:L(o[3]+\"\"+o[3]),a:$(o[4]+\"\"+o[4]),format:t?\"name\":\"hex8\"}:!!(o=Z.hex3.exec(e))&&{r:L(o[1]+\"\"+o[1]),g:L(o[2]+\"\"+o[2]),b:L(o[3]+\"\"+o[3]),format:t?\"name\":\"hex\"}}function I(e){var t,o;return e=e||{level:\"AA\",size:\"small\"},t=(e.level||\"AA\").toUpperCase(),o=(e.size||\"small\").toLowerCase(),\"AA\"!==t&&\"AAA\"!==t&&(t=\"AA\"),\"small\"!==o&&\"large\"!==o&&(o=\"small\"),{level:t,size:o}}var T=/^\\s+/,U=/\\s+$/,V=0,X=a.round,q=a.min,Y=a.max,W=a.random;i.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,o,r,i,n,s=this.toRgb();return e=s.r/255,t=s.g/255,o=s.b/255,r=e<=.03928?e/12.92:a.pow((e+.055)/1.055,2.4),i=t<=.03928?t/12.92:a.pow((t+.055)/1.055,2.4),n=o<=.03928?o/12.92:a.pow((o+.055)/1.055,2.4),.2126*r+.7152*i+.0722*n},setAlpha:function(e){return this._a=M(e),this._roundA=X(100*this._a)/100,this},toHsv:function(){var e=u(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=u(this._r,this._g,this._b),t=X(360*e.h),o=X(100*e.s),r=X(100*e.v);return 1==this._a?\"hsv(\"+t+\", \"+o+\"%, \"+r+\"%)\":\"hsva(\"+t+\", \"+o+\"%, \"+r+\"%, \"+this._roundA+\")\"},toHsl:function(){var e=l(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=l(this._r,this._g,this._b),t=X(360*e.h),o=X(100*e.s),r=X(100*e.l);return 1==this._a?\"hsl(\"+t+\", \"+o+\"%, \"+r+\"%)\":\"hsla(\"+t+\", \"+o+\"%, \"+r+\"%, \"+this._roundA+\")\"},toHex:function(e){return d(this._r,this._g,this._b,e)},toHexString:function(e){return\"#\"+this.toHex(e)},toHex8:function(e){return f(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return\"#\"+this.toHex8(e)},toRgb:function(){return{r:X(this._r),g:X(this._g),b:X(this._b),a:this._a}},toRgbString:function(){return 1==this._a?\"rgb(\"+X(this._r)+\", \"+X(this._g)+\", \"+X(this._b)+\")\":\"rgba(\"+X(this._r)+\", \"+X(this._g)+\", \"+X(this._b)+\", \"+this._roundA+\")\"},toPercentageRgb:function(){return{r:X(100*E(this._r,255))+\"%\",g:X(100*E(this._g,255))+\"%\",b:X(100*E(this._b,255))+\"%\",a:this._a}},toPercentageRgbString:function(){return 1==this._a?\"rgb(\"+X(100*E(this._r,255))+\"%, \"+X(100*E(this._g,255))+\"%, \"+X(100*E(this._b,255))+\"%)\":\"rgba(\"+X(100*E(this._r,255))+\"%, \"+X(100*E(this._g,255))+\"%, \"+X(100*E(this._b,255))+\"%, \"+this._roundA+\")\"},toName:function(){return 0===this._a?\"transparent\":!(this._a<1)&&(K[d(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t=\"#\"+p(this._r,this._g,this._b,this._a),o=t,r=this._gradientType?\"GradientType = 1, \":\"\";if(e){var a=i(e);o=\"#\"+p(a._r,a._g,a._b,a._a)}return\"progid:DXImageTransform.Microsoft.gradient(\"+r+\"startColorstr=\"+t+\",endColorstr=\"+o+\")\"},toString:function(e){var t=!!e;e=e||this._format;var o=!1,r=this._a<1&&this._a>=0,a=!t&&r&&(\"hex\"===e||\"hex6\"===e||\"hex3\"===e||\"hex4\"===e||\"hex8\"===e||\"name\"===e);return a?\"name\"===e&&0===this._a?this.toName():this.toRgbString():(\"rgb\"===e&&(o=this.toRgbString()),\"prgb\"===e&&(o=this.toPercentageRgbString()),\"hex\"!==e&&\"hex6\"!==e||(o=this.toHexString()),\"hex3\"===e&&(o=this.toHexString(!0)),\"hex4\"===e&&(o=this.toHex8String(!0)),\"hex8\"===e&&(o=this.toHex8String()),\"name\"===e&&(o=this.toName()),\"hsl\"===e&&(o=this.toHslString()),\"hsv\"===e&&(o=this.toHsvString()),o||this.toHexString())},clone:function(){return i(this.toString())},_applyModification:function(e,t){var o=e.apply(null,[this].concat([].slice.call(t)));return this._r=o._r,this._g=o._g,this._b=o._b,this.setAlpha(o._a),this},lighten:function(){return this._applyModification(b,arguments)},brighten:function(){return this._applyModification(x,arguments)},darken:function(){return this._applyModification(m,arguments)},desaturate:function(){return this._applyModification(_,arguments)},saturate:function(){return this._applyModification(v,arguments)},greyscale:function(){return this._applyModification(g,arguments)},spin:function(){return this._applyModification(w,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(A,arguments)},complement:function(){return this._applyCombination(C,arguments)},monochromatic:function(){return this._applyCombination(R,arguments)},splitcomplement:function(){return this._applyCombination(F,arguments)},triad:function(){return this._applyCombination(y,arguments)},tetrad:function(){return this._applyCombination(k,arguments)}},i.fromRatio=function(e,t){if(\"object\"==typeof e){var o={};for(var r in e)e.hasOwnProperty(r)&&(\"a\"===r?o[r]=e[r]:o[r]=B(e[r]));e=o}return i(e,t)},i.equals=function(e,t){return!(!e||!t)&&i(e).toRgbString()==i(t).toRgbString()},i.random=function(){return i.fromRatio({r:W(),g:W(),b:W()})},i.mix=function(e,t,o){o=0===o?0:o||50;var r=i(e).toRgb(),a=i(t).toRgb(),n=o/100,s={r:(a.r-r.r)*n+r.r,g:(a.g-r.g)*n+r.g,b:(a.b-r.b)*n+r.b,a:(a.a-r.a)*n+r.a};return i(s)},i.readability=function(e,t){var o=i(e),r=i(t);return(a.max(o.getLuminance(),r.getLuminance())+.05)/(a.min(o.getLuminance(),r.getLuminance())+.05)},i.isReadable=function(e,t,o){var r,a,n=i.readability(e,t);switch(a=!1,r=I(o),r.level+r.size){case\"AAsmall\":case\"AAAlarge\":a=n>=4.5;break;case\"AAlarge\":a=n>=3;break;case\"AAAsmall\":a=n>=7}return a},i.mostReadable=function(e,t,o){var r,a,n,s,l=null,c=0;o=o||{},a=o.includeFallbackColors,n=o.level,s=o.size;for(var u=0;uc&&(c=r,l=i(t[u]));return i.isReadable(e,l,{level:n,size:s})||!a?l:(o.includeFallbackColors=!1,i.mostReadable(e,[\"#fff\",\"#000\"],o))};var G=i.names={aliceblue:\"f0f8ff\",antiquewhite:\"faebd7\",aqua:\"0ff\",aquamarine:\"7fffd4\",azure:\"f0ffff\",beige:\"f5f5dc\",bisque:\"ffe4c4\",black:\"000\",blanchedalmond:\"ffebcd\",blue:\"00f\",blueviolet:\"8a2be2\",brown:\"a52a2a\",burlywood:\"deb887\",burntsienna:\"ea7e5d\",cadetblue:\"5f9ea0\",chartreuse:\"7fff00\",chocolate:\"d2691e\",coral:\"ff7f50\",cornflowerblue:\"6495ed\",cornsilk:\"fff8dc\",crimson:\"dc143c\",cyan:\"0ff\",darkblue:\"00008b\",darkcyan:\"008b8b\",darkgoldenrod:\"b8860b\",darkgray:\"a9a9a9\",darkgreen:\"006400\",darkgrey:\"a9a9a9\",darkkhaki:\"bdb76b\",darkmagenta:\"8b008b\",darkolivegreen:\"556b2f\",darkorange:\"ff8c00\",darkorchid:\"9932cc\",darkred:\"8b0000\",darksalmon:\"e9967a\",darkseagreen:\"8fbc8f\",darkslateblue:\"483d8b\",darkslategray:\"2f4f4f\",darkslategrey:\"2f4f4f\",darkturquoise:\"00ced1\",darkviolet:\"9400d3\",deeppink:\"ff1493\",deepskyblue:\"00bfff\",dimgray:\"696969\",dimgrey:\"696969\",dodgerblue:\"1e90ff\",firebrick:\"b22222\",floralwhite:\"fffaf0\",forestgreen:\"228b22\",fuchsia:\"f0f\",gainsboro:\"dcdcdc\",ghostwhite:\"f8f8ff\",gold:\"ffd700\",goldenrod:\"daa520\",gray:\"808080\",green:\"008000\",greenyellow:\"adff2f\",grey:\"808080\",honeydew:\"f0fff0\",hotpink:\"ff69b4\",indianred:\"cd5c5c\",indigo:\"4b0082\",ivory:\"fffff0\",khaki:\"f0e68c\",lavender:\"e6e6fa\",lavenderblush:\"fff0f5\",lawngreen:\"7cfc00\",lemonchiffon:\"fffacd\",lightblue:\"add8e6\",lightcoral:\"f08080\",lightcyan:\"e0ffff\",lightgoldenrodyellow:\"fafad2\",lightgray:\"d3d3d3\",lightgreen:\"90ee90\",lightgrey:\"d3d3d3\",lightpink:\"ffb6c1\",lightsalmon:\"ffa07a\",lightseagreen:\"20b2aa\",lightskyblue:\"87cefa\",lightslategray:\"789\",lightslategrey:\"789\",lightsteelblue:\"b0c4de\",lightyellow:\"ffffe0\",lime:\"0f0\",limegreen:\"32cd32\",linen:\"faf0e6\",magenta:\"f0f\",maroon:\"800000\",mediumaquamarine:\"66cdaa\",mediumblue:\"0000cd\",mediumorchid:\"ba55d3\",mediumpurple:\"9370db\",mediumseagreen:\"3cb371\",mediumslateblue:\"7b68ee\",mediumspringgreen:\"00fa9a\",mediumturquoise:\"48d1cc\",mediumvioletred:\"c71585\",midnightblue:\"191970\",mintcream:\"f5fffa\",mistyrose:\"ffe4e1\",moccasin:\"ffe4b5\",navajowhite:\"ffdead\",navy:\"000080\",oldlace:\"fdf5e6\",olive:\"808000\",olivedrab:\"6b8e23\",orange:\"ffa500\",orangered:\"ff4500\",orchid:\"da70d6\",palegoldenrod:\"eee8aa\",palegreen:\"98fb98\",paleturquoise:\"afeeee\",palevioletred:\"db7093\",papayawhip:\"ffefd5\",peachpuff:\"ffdab9\",peru:\"cd853f\",pink:\"ffc0cb\",plum:\"dda0dd\",powderblue:\"b0e0e6\",purple:\"800080\",rebeccapurple:\"663399\",red:\"f00\",rosybrown:\"bc8f8f\",royalblue:\"4169e1\",saddlebrown:\"8b4513\",salmon:\"fa8072\",sandybrown:\"f4a460\",seagreen:\"2e8b57\",seashell:\"fff5ee\",sienna:\"a0522d\",silver:\"c0c0c0\",skyblue:\"87ceeb\",slateblue:\"6a5acd\",slategray:\"708090\",slategrey:\"708090\",snow:\"fffafa\",springgreen:\"00ff7f\",steelblue:\"4682b4\",tan:\"d2b48c\",teal:\"008080\",thistle:\"d8bfd8\",tomato:\"ff6347\",turquoise:\"40e0d0\",violet:\"ee82ee\",wheat:\"f5deb3\",white:\"fff\",whitesmoke:\"f5f5f5\",yellow:\"ff0\",yellowgreen:\"9acd32\"},K=i.hexNames=S(G),Z=function(){var e=\"[-\\\\+]?\\\\d+%?\",t=\"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\",o=\"(?:\"+t+\")|(?:\"+e+\")\",r=\"[\\\\s|\\\\(]+(\"+o+\")[,|\\\\s]+(\"+o+\")[,|\\\\s]+(\"+o+\")\\\\s*\\\\)?\",a=\"[\\\\s|\\\\(]+(\"+o+\")[,|\\\\s]+(\"+o+\")[,|\\\\s]+(\"+o+\")[,|\\\\s]+(\"+o+\")\\\\s*\\\\)?\";return{CSS_UNIT:new RegExp(o),rgb:new RegExp(\"rgb\"+r),rgba:new RegExp(\"rgba\"+a),hsl:new RegExp(\"hsl\"+r),hsla:new RegExp(\"hsla\"+a),hsv:new RegExp(\"hsv\"+r),hsva:new RegExp(\"hsva\"+a),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();\"undefined\"!=typeof e&&e.exports?e.exports=i:(r=function(){return i}.call(t,o,t,e),!(void 0!==r&&(e.exports=r)))}(Math)},function(e,t,o){var r,a;o(64),r=o(9);var i=o(52);a=r=r||{},\"object\"!=typeof r.default&&\"function\"!=typeof r.default||(a=r=r.default),\"function\"==typeof a&&(a=a.options),a.render=i.render,a.staticRenderFns=i.staticRenderFns,e.exports=r},function(e,t,o){var r,a;o(55),r=o(10);var i=o(43);a=r=r||{},\"object\"!=typeof r.default&&\"function\"!=typeof r.default||(a=r=r.default),\"function\"==typeof a&&(a=a.options),a.render=i.render,a.staticRenderFns=i.staticRenderFns,e.exports=r},function(e,t,o){var r,a;o(59),r=o(11);var i=o(47);a=r=r||{},\"object\"!=typeof r.default&&\"function\"!=typeof r.default||(a=r=r.default),\"function\"==typeof a&&(a=a.options),a.render=i.render,a.staticRenderFns=i.staticRenderFns,e.exports=r},function(e,t,o){var r,a;o(62),r=o(12);var i=o(50);a=r=r||{},\"object\"!=typeof r.default&&\"function\"!=typeof r.default||(a=r=r.default),\"function\"==typeof a&&(a=a.options),a.render=i.render,a.staticRenderFns=i.staticRenderFns,e.exports=r},function(e,t,o){var r,a;o(63),r=o(13);var i=o(51);a=r=r||{},\"object\"!=typeof r.default&&\"function\"!=typeof r.default||(a=r=r.default),\"function\"==typeof a&&(a=a.options),a.render=i.render,a.staticRenderFns=i.staticRenderFns,e.exports=r},function(e,t,o){var r,a;o(60),r=o(14);var i=o(48);a=r=r||{},\"object\"!=typeof r.default&&\"function\"!=typeof r.default||(a=r=r.default),\"function\"==typeof a&&(a=a.options),a.render=i.render,a.staticRenderFns=i.staticRenderFns,e.exports=r},function(e,t,o){var r,a;o(61),r=o(15);var i=o(49);a=r=r||{},\"object\"!=typeof r.default&&\"function\"!=typeof r.default||(a=r=r.default),\"function\"==typeof a&&(a=a.options),a.render=i.render,a.staticRenderFns=i.staticRenderFns,e.exports=r},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__compact\"},[o(\"ul\",{staticClass:\"vue-color__compact__colors\"},e._l(e.defaultColors,function(t){return o(\"li\",{staticClass:\"vue-color__compact__color-item\",class:{\"vue-color__compact__color-item--white\":\"#FFFFFF\"===t},style:{background:t},on:{click:function(o){e.handlerClick(t)}}},[o(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t===e.pick,expression:\"c === pick\"}],staticClass:\"vue-color__compact__dot\"})])}))])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__editable-input\"},[o(\"input\",{directives:[{name:\"model\",rawName:\"v-model\",value:e.val,expression:\"val\"}],staticClass:\"vue-color__editable-input__input\",domProps:{value:e.val},on:{keydown:e.handleKeyDown,input:[function(t){t.target.composing||(e.val=t.target.value)},e.update]}}),e._v(\" \"),o(\"span\",{staticClass:\"vue-color__editable-input__label\"},[e._v(e._s(e.label))])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{class:[\"vue-color__c-hue\",e.directionClass]},[o(\"div\",{ref:\"container\",staticClass:\"vue-color__c-hue__container\",on:{mousedown:e.handleMouseDown,touchmove:e.handleChange,touchstart:e.handleChange}},[o(\"div\",{staticClass:\"vue-color__c-hue__pointer\",style:{top:e.pointerTop,left:e.pointerLeft}},[o(\"div\",{staticClass:\"vue-color__c-hue__picker\"})])])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{ref:\"container\",staticClass:\"vue-color__saturation\",style:{background:e.bgColor},on:{mousedown:e.handleMouseDown}},[o(\"div\",{staticClass:\"vue-color__saturation--white\"}),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__saturation--black\"}),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__saturation--pointer\",style:{top:e.pointerTop,left:e.pointerLeft}},[o(\"div\",{staticClass:\"vue-color__saturation--circle\"})])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__material\"},[o(\"ed-in\",{staticClass:\"vue-color__material__hex\",style:{borderColor:e.colors.hex},attrs:{label:\"hex\"},on:{change:e.onChange},model:{value:e.colors.hex,callback:function(t){e.colors.hex=t},expression:\"colors.hex\"}}),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__material__split\"},[o(\"div\",{staticClass:\"vue-color__material__third\"},[o(\"ed-in\",{attrs:{label:\"r\"},on:{change:e.onChange},model:{value:e.colors.rgba.r,callback:function(t){e.colors.rgba.r=t},expression:\"colors.rgba.r\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__material__third\"},[o(\"ed-in\",{attrs:{label:\"g\"},on:{change:e.onChange},model:{value:e.colors.rgba.g,callback:function(t){e.colors.rgba.g=t},expression:\"colors.rgba.g\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__material__third\"},[o(\"ed-in\",{attrs:{label:\"b\"},on:{change:e.onChange},model:{value:e.colors.rgba.b,callback:function(t){e.colors.rgba.b=t},expression:\"colors.rgba.b\"}})],1)])],1)},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__slider\"},[o(\"div\",{staticClass:\"vue-color__slider__hue-warp\"},[o(\"hue\",{on:{change:e.hueChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__slider__swatches\"},e._l(e.swatches,function(t,r){return o(\"div\",{staticClass:\"vue-color__slider__swatch\",attrs:{\"data-index\":r},on:{click:function(o){e.handleSwClick(r,t)}}},[o(\"div\",{staticClass:\"vue-color__slider__swatch-picker\",class:{\"vue-color__slider__swatch-picker--active\":t==e.activeOffset},style:{background:\"hsl(\"+e.colors.hsl.h+\", 50%, \"+100*t+\"%)\"}})])}))])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__swatches\",attrs:{\"data-pick\":e.pick}},[o(\"div\",{staticClass:\"vue-color__swatches__box\"},e._l(e.defaultColors,function(t){return o(\"div\",{staticClass:\"vue-color__swatches__color-group\"},e._l(t,function(t){return o(\"div\",{staticClass:\"vue-color__swatches__color-it\",style:{background:t},attrs:{\"data-color\":t},on:{click:function(o){e.handlerClick(t)}}},[o(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:t==e.pick,expression:\"c == pick\"}],staticClass:\"vue-color__swatches__pick\"},[o(\"svg\",{staticStyle:{width:\"24px\",height:\"24px\"},attrs:{viewBox:\"0 0 24 24\"}},[o(\"path\",{attrs:{d:\"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z\"}})])])])}))}))])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__photoshop\"},[o(\"div\",{staticClass:\"vue-color__photoshop__head\"},[e._v(e._s(e.head))]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__body\"},[o(\"div\",{staticClass:\"vue-color__photoshop__saturation-wrap\"},[o(\"saturation\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__hue-wrap\"},[o(\"hue\",{attrs:{direction:\"vertical\"},on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}},[o(\"div\",{staticClass:\"vue-color__photoshop__hue-pointer\"},[o(\"i\",{staticClass:\"vue-color__photoshop__hue-pointer--left\"}),o(\"i\",{staticClass:\"vue-color__photoshop__hue-pointer--right\"})])])],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__controls\"},[o(\"div\",{staticClass:\"vue-color__photoshop__previews\"},[o(\"div\",{staticClass:\"vue-color__photoshop__previews__label\"},[e._v(\"new\")]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__previews__swatches\"},[o(\"div\",{staticClass:\"vue-color__photoshop__previews__pr-color\",style:{background:e.colors.hex}}),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__previews__pr-color\",style:{background:e.currentColor}})]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__previews__label\"},[e._v(\"current\")])]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__actions\"},[o(\"div\",{staticClass:\"vue-color__photoshop__ac-btn\",on:{click:e.handleAccept}},[e._v(\"OK\")]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__ac-btn\",on:{click:e.handleCancel}},[e._v(\"Cancel\")]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__fields\"},[o(\"ed-in\",{attrs:{label:\"h\"},on:{change:e.inputChange},model:{value:e.colors.hsl.h,callback:function(t){e.colors.hsl.h=t},expression:\"colors.hsl.h\"}}),e._v(\" \"),o(\"ed-in\",{attrs:{label:\"s\"},on:{change:e.inputChange},model:{value:e.colors.hsl.s,callback:function(t){e.colors.hsl.s=t},expression:\"colors.hsl.s\"}}),e._v(\" \"),o(\"ed-in\",{attrs:{label:\"v\"},on:{change:e.inputChange},model:{value:e.colors.hsl.l,callback:function(t){e.colors.hsl.l=t},expression:\"colors.hsl.l\"}}),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__fields__divider\"}),e._v(\" \"),o(\"ed-in\",{attrs:{label:\"r\"},on:{change:e.inputChange},model:{value:e.colors.rgba.r,callback:function(t){e.colors.rgba.r=t},expression:\"colors.rgba.r\"}}),e._v(\" \"),o(\"ed-in\",{attrs:{label:\"g\"},on:{change:e.inputChange},model:{value:e.colors.rgba.g,callback:function(t){e.colors.rgba.g=t},expression:\"colors.rgba.g\"}}),e._v(\" \"),o(\"ed-in\",{attrs:{label:\"b\"},on:{change:e.inputChange},model:{value:e.colors.rgba.b,callback:function(t){e.colors.rgba.b=t},expression:\"colors.rgba.b\"}}),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__photoshop__fields__divider\"}),e._v(\" \"),o(\"ed-in\",{staticClass:\"vue-color__photoshop__fields__hex\",attrs:{label:\"#\"},on:{change:e.inputChange},model:{value:e.colors.hex,callback:function(t){e.colors.hex=t},expression:\"colors.hex\"}})],1)])])])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__sketch\"},[o(\"div\",{staticClass:\"vue-color__sketch__saturation-wrap\"},[o(\"saturation\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__sketch__controls\"},[o(\"div\",{staticClass:\"vue-color__sketch__sliders\"},[o(\"div\",{staticClass:\"vue-color__sketch__hue-wrap\"},[o(\"hue\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__sketch__alpha-wrap\"},[o(\"alpha\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1)]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__sketch__color-wrap\"},[o(\"div\",{staticClass:\"vue-color__sketch__active-color\",style:{background:e.activeColor}})])]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__sketch__field\"},[o(\"div\",{staticClass:\"vue-color__sketch__field--double\"},[o(\"ed-in\",{attrs:{label:\"hex\"},on:{change:e.inputChange},model:{value:e.colors.hex,callback:function(t){e.colors.hex=t},expression:\"colors.hex\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__sketch__field--single\"},[o(\"ed-in\",{attrs:{label:\"r\"},on:{change:e.inputChange},model:{value:e.colors.rgba.r,callback:function(t){e.colors.rgba.r=t},expression:\"colors.rgba.r\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__sketch__field--single\"},[o(\"ed-in\",{attrs:{label:\"g\"},on:{change:e.inputChange},model:{value:e.colors.rgba.g,callback:function(t){e.colors.rgba.g=t},expression:\"colors.rgba.g\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__sketch__field--single\"},[o(\"ed-in\",{attrs:{label:\"b\"},on:{change:e.inputChange},model:{value:e.colors.rgba.b,callback:function(t){e.colors.rgba.b=t},expression:\"colors.rgba.b\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__sketch__field--single\"},[o(\"ed-in\",{attrs:{label:\"a\",\"arrow-offset\":.01,max:1},on:{change:e.inputChange},model:{value:e.colors.a,callback:function(t){e.colors.a=t},expression:\"colors.a\"}})],1)]),e._v(\" \"),o(\"div\",{\nstaticClass:\"vue-color__sketch__presets\"},e._l(e.presetColors,function(t){return o(\"div\",{staticClass:\"vue-color__sketch__presets-color\",style:{background:t},on:{click:function(o){e.handlePreset(t)}}})}))])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__chrome\"},[o(\"div\",{staticClass:\"vue-color__chrome__saturation-wrap\"},[o(\"saturation\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__chrome-body\"},[o(\"div\",{staticClass:\"vue-color__chrome__controls\"},[o(\"div\",{staticClass:\"vue-color__chrome__color-wrap\"},[o(\"div\",{staticClass:\"vue-color__chrome__active-color\",style:{background:e.activeColor}})]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__sliders\"},[o(\"div\",{staticClass:\"vue-color__chrome__hue-wrap\"},[o(\"hue\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__alpha-wrap\"},[o(\"alpha\",{on:{change:e.childChange},model:{value:e.colors,callback:function(t){e.colors=t},expression:\"colors\"}})],1)])]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__fields-wrap\"},[o(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:0===e.fieldsIndex,expression:\"fieldsIndex === 0\"}],staticClass:\"vue-color__chrome__fields\"},[o(\"div\",{staticClass:\"vue-color__chrome__field\"},[o(\"ed-in\",{attrs:{label:\"hex\"},on:{change:e.inputChange},model:{value:e.colors.hex,callback:function(t){e.colors.hex=t},expression:\"colors.hex\"}})],1)]),e._v(\" \"),o(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:1===e.fieldsIndex,expression:\"fieldsIndex === 1\"}],staticClass:\"vue-color__chrome__fields\"},[o(\"div\",{staticClass:\"vue-color__chrome__field\"},[o(\"ed-in\",{attrs:{label:\"r\"},on:{change:e.inputChange},model:{value:e.colors.rgba.r,callback:function(t){e.colors.rgba.r=t},expression:\"colors.rgba.r\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__field\"},[o(\"ed-in\",{attrs:{label:\"g\"},on:{change:e.inputChange},model:{value:e.colors.rgba.g,callback:function(t){e.colors.rgba.g=t},expression:\"colors.rgba.g\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__field\"},[o(\"ed-in\",{attrs:{label:\"b\"},on:{change:e.inputChange},model:{value:e.colors.rgba.b,callback:function(t){e.colors.rgba.b=t},expression:\"colors.rgba.b\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__field\"},[o(\"ed-in\",{attrs:{label:\"a\",\"arrow-offset\":.01,max:1},on:{change:e.inputChange},model:{value:e.colors.a,callback:function(t){e.colors.a=t},expression:\"colors.a\"}})],1)]),e._v(\" \"),o(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:2===e.fieldsIndex,expression:\"fieldsIndex === 2\"}],staticClass:\"vue-color__chrome__fields\"},[o(\"div\",{staticClass:\"vue-color__chrome__field\"},[o(\"ed-in\",{attrs:{label:\"h\"},on:{change:e.inputChange},model:{value:e.colors.hsl.h,callback:function(t){e.colors.hsl.h=t},expression:\"colors.hsl.h\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__field\"},[o(\"ed-in\",{attrs:{label:\"s\"},on:{change:e.inputChange},model:{value:e.colors.hsl.s,callback:function(t){e.colors.hsl.s=t},expression:\"colors.hsl.s\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__field\"},[o(\"ed-in\",{attrs:{label:\"l\"},on:{change:e.inputChange},model:{value:e.colors.hsl.l,callback:function(t){e.colors.hsl.l=t},expression:\"colors.hsl.l\"}})],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__field\"},[o(\"ed-in\",{attrs:{label:\"a\",\"arrow-offset\":.01,max:1},on:{change:e.inputChange},model:{value:e.colors.a,callback:function(t){e.colors.a=t},expression:\"colors.a\"}})],1)]),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__chrome__toggle-btn\",on:{click:e.toggleViews}},[o(\"div\",{staticClass:\"vue-color__chrome__icon\"},[o(\"svg\",{staticStyle:{width:\"24px\",height:\"24px\"},attrs:{viewBox:\"0 0 24 24\"},on:{mouseover:e.showHighlight,mouseenter:e.showHighlight,mouseout:e.hideHighlight}},[o(\"path\",{attrs:{fill:\"#333\",d:\"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z\"}})])]),e._v(\" \"),o(\"div\",{directives:[{name:\"show\",rawName:\"v-show\",value:e.highlight,expression:\"highlight\"}],staticClass:\"vue-color__chrome__icon-highlight\"})])])])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__c-alpha\"},[o(\"div\",{staticClass:\"vue-color__c-alpha__checkboard-wrap\"},[o(\"checkboard\")],1),e._v(\" \"),o(\"div\",{staticClass:\"vue-color__c-alpha__gradient\",style:{background:e.gradientColor}}),e._v(\" \"),o(\"div\",{ref:\"container\",staticClass:\"vue-color__c-alpha__container\",on:{mousedown:e.handleMouseDown,touchmove:e.handleChange,touchstart:e.handleChange}},[o(\"div\",{staticClass:\"vue-color__c-alpha__pointer\",style:{left:100*e.colors.a+\"%\"}},[o(\"div\",{staticClass:\"vue-color__c-alpha__picker\"})])])])},staticRenderFns:[]}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,o=e._self._c||t;return o(\"div\",{staticClass:\"vue-color__c-checkerboard\",style:{background:e.bgStyle}})},staticRenderFns:[]}},function(e,t,o){var r=o(21);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(22);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(23);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(24);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(25);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(26);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(27);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(28);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(29);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(30);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(31);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)},function(e,t,o){var r=o(32);\"string\"==typeof r&&(r=[[e.id,r,\"\"]]);o(2)(r,{});r.locals&&(e.exports=r.locals)}])});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-color/dist/vue-color.min.js\n// module id = 15\n// module chunks = 0","\n/* styles */\nrequire(\"!!vue-style-loader!css-loader?minimize!../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-1073f3cf\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./FAB.vue\")\nrequire(\"!!vue-style-loader!css-loader?minimize!../node_modules/vue-loader/lib/style-compiler/index?{\\\"id\\\":\\\"data-v-1073f3cf\\\",\\\"scoped\\\":true,\\\"hasInlineConfig\\\":false}!../node_modules/vue-loader/lib/selector?type=styles&index=1!./FAB.vue\")\n\nvar Component = require(\"!../node_modules/vue-loader/lib/component-normalizer\")(\n /* script */\n require(\"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./FAB.vue\"),\n /* template */\n require(\"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1073f3cf\\\"}!../node_modules/vue-loader/lib/selector?type=template&index=0!./FAB.vue\"),\n /* scopeId */\n \"data-v-1073f3cf\",\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/FAB.vue\n// module id = 16\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n directives: [{\n name: \"on-clickaway\",\n rawName: \"v-on-clickaway\",\n value: (_vm.away),\n expression: \"away\"\n }],\n staticClass: \"fab-wrapper\",\n style: ([_vm.pos, {\n zIndex: _vm.zIndex\n }, {\n position: _vm.positionType\n }]),\n attrs: {\n \"id\": _vm.position + '-wrapper'\n }\n }, [_c('div', {\n staticClass: \"actions-container\",\n style: (_vm.listPos),\n attrs: {\n \"id\": _vm.position + '-action'\n }\n }, [_c('transition', {\n attrs: {\n \"name\": \"fab-actions-appear\",\n \"enter-active-class\": _vm.transitionEnter,\n \"leave-active-class\": _vm.transitionLeave\n }\n }, [_c('ul', {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: (_vm.toggle),\n expression: \"toggle\"\n }],\n staticClass: \"fab-list\"\n }, [_vm._l((_vm.actions), function(action) {\n return [_c('transition', {\n attrs: {\n \"enter-active-class\": \"animated quick zoomIn\",\n \"leave-active-class\": \"animated quick zoomOut\"\n },\n on: {\n \"after-enter\": _vm.afterActionsTransitionEnter\n }\n }, [(action.tooltip) ? [(_vm.toggle) ? _c('li', {\n directives: [{\n name: \"tooltip\",\n rawName: \"v-tooltip\",\n value: ({\n content: action.tooltip,\n placement: _vm.tooltipPosition,\n classes: 'fab-tooltip',\n trigger: _vm.tooltipTrigger\n }),\n expression: \"{ content: action.tooltip, placement: tooltipPosition, classes: 'fab-tooltip', trigger: tooltipTrigger}\"\n }],\n ref: \"actions\",\n refInFor: true,\n staticClass: \"pointer\",\n style: ({\n 'background-color': action.color || _vm.bgColor\n }),\n on: {\n \"click\": function($event) {\n _vm.toParent(action.name)\n }\n }\n }, [_c('i', {\n class: [_vm.actionIconSize, 'material-icons']\n }, [_vm._v(_vm._s(action.icon))])]) : _vm._e()] : [(_vm.toggle) ? _c('li', {\n staticClass: \"pointer\",\n style: ({\n 'background-color': action.color || _vm.bgColor\n }),\n on: {\n \"click\": function($event) {\n _vm.toParent(action.name)\n }\n }\n }, [_c('i', {\n class: [_vm.actionIconSize, 'material-icons']\n }, [_vm._v(_vm._s(action.icon))])]) : _vm._e()]], 2)]\n })], 2)])], 1), _vm._v(\" \"), (_vm.rippleShow) ? [(_vm.mainTooltip) ? [_c('div', {\n directives: [{\n name: \"ripple\",\n rawName: \"v-ripple\",\n value: (_vm.rippleColor == 'light' ? 'rgba(255, 255, 255, 0.35)' : ''),\n expression: \"rippleColor == 'light' ? 'rgba(255, 255, 255, 0.35)' : ''\"\n }, {\n name: \"tooltip\",\n rawName: \"v-tooltip\",\n value: ({\n content: _vm.mainTooltip,\n placement: _vm.tooltipPosition,\n classes: 'fab-tooltip'\n }),\n expression: \"{ content: mainTooltip, placement: tooltipPosition, classes: 'fab-tooltip' }\"\n }],\n staticClass: \"fab-main pointer\",\n style: ({\n 'background-color': _vm.bgColor,\n 'padding': _vm.paddingAmount\n }),\n on: {\n \"click\": function($event) {\n _vm.toggle = !_vm.toggle\n }\n }\n }, [_c('i', {\n class: [_vm.mainIconSize, {\n rotate: _vm.toggle && _vm.allowRotation\n }, 'material-icons main']\n }, [_vm._v(_vm._s(_vm.mainIcon))]), _vm._v(\" \"), _c('i', {\n class: [_vm.mainIconSize, {\n rotate: _vm.toggle && _vm.allowRotation\n }, 'material-icons close']\n }, [_vm._v(\"add\")])])] : [_c('div', {\n directives: [{\n name: \"ripple\",\n rawName: \"v-ripple\",\n value: (_vm.rippleColor == 'light' ? 'rgba(255, 255, 255, 0.35)' : ''),\n expression: \"rippleColor == 'light' ? 'rgba(255, 255, 255, 0.35)' : ''\"\n }],\n staticClass: \"fab-main pointer\",\n style: ({\n 'background-color': _vm.bgColor,\n 'padding': _vm.paddingAmount\n }),\n on: {\n \"click\": function($event) {\n _vm.toggle = !_vm.toggle\n }\n }\n }, [_c('i', {\n class: [_vm.mainIconSize, {\n rotate: _vm.toggle && _vm.allowRotation\n }, 'material-icons main']\n }, [_vm._v(_vm._s(_vm.mainIcon))]), _vm._v(\" \"), _c('i', {\n class: [_vm.mainIconSize, {\n rotate: _vm.toggle && _vm.allowRotation\n }, 'material-icons close']\n }, [_vm._v(\"add\")])])]] : [(_vm.mainTooltip) ? [_c('div', {\n staticClass: \"fab-main pointer\",\n style: ({\n 'background-color': _vm.bgColor,\n 'padding': _vm.paddingAmount\n }),\n attrs: {\n \"v-tooltip\": {\n content: _vm.mainTooltip,\n placement: _vm.tooltipPosition,\n classes: 'fab-tooltip'\n }\n }\n }, [_c('i', {\n staticClass: \"material-icons md-36 main\",\n class: {\n rotate: _vm.toggle && _vm.allowRotation\n }\n }, [_vm._v(_vm._s(_vm.mainIcon))]), _vm._v(\" \"), _c('i', {\n staticClass: \"material-icons md-36 close\",\n class: {\n rotate: _vm.toggle && _vm.allowRotation\n }\n }, [_vm._v(\"add\")])])] : [_c('div', {\n staticClass: \"fab-main pointer\",\n style: ({\n 'background-color': _vm.bgColor,\n 'padding': _vm.paddingAmount\n })\n }, [_c('i', {\n staticClass: \"material-icons md-36 main\",\n class: {\n rotate: _vm.toggle && _vm.allowRotation\n }\n }, [_vm._v(_vm._s(_vm.mainIcon))]), _vm._v(\" \"), _c('i', {\n staticClass: \"material-icons md-36 close\",\n class: {\n rotate: _vm.toggle && _vm.allowRotation\n }\n }, [_vm._v(\"add\")])])]]], 2)\n},staticRenderFns: []}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-1073f3cf\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./src/FAB.vue\n// module id = 17\n// module chunks = 0","module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n attrs: {\n \"id\": \"app\"\n }\n }, [_c('link', {\n attrs: {\n \"rel\": \"stylesheet\",\n \"href\": \"https://cdnjs.cloudflare.com/ajax/libs/bulma/0.4.1/css/bulma.min.css\"\n }\n }), _vm._v(\" \"), _c('link', {\n attrs: {\n \"href\": \"https://fonts.googleapis.com/icon?family=Material+Icons\",\n \"rel\": \"stylesheet\"\n }\n }), _vm._v(\" \"), _c('a', {\n attrs: {\n \"href\": _vm.repoUrl\n }\n }, [_c('img', {\n staticStyle: {\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"right\": \"0\",\n \"border\": \"0\"\n },\n attrs: {\n \"src\": \"https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67\",\n \"alt\": \"Fork me on GitHub\",\n \"data-canonical-src\": \"https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png\"\n }\n })]), _vm._v(\" \"), _vm._m(0), _vm._v(\" \"), _c('section', {\n staticClass: \"section\",\n staticStyle: {\n \"padding-top\": \".5rem\"\n }\n }, [_c('div', {\n staticClass: \"container\"\n }, [_c('div', {\n staticClass: \"columns\"\n }, [_c('div', {\n staticClass: \"column is-8 is-offset-2\"\n }, [_c('div', {\n staticClass: \"box formated\"\n }, [_vm._m(1), _vm._v(\" \"), _c('div', {\n staticClass: \"content\"\n }, [_c('div', {\n staticClass: \"columns\"\n }, [_c('div', {\n staticClass: \"column is-4\",\n staticStyle: {\n \"display\": \"flex\",\n \"justify-content\": \"center\"\n }\n }, [_c('div', {\n staticClass: \"field is-pulled-left\"\n }, [_c('label', {\n staticClass: \"label\"\n }, [_vm._v(\"Color\")]), _vm._v(\" \"), _c('p', {\n staticClass: \"control\"\n }, [_c('chrome-picker', {\n model: {\n value: (_vm.colors),\n callback: function($$v) {\n _vm.colors = $$v\n },\n expression: \"colors\"\n }\n })], 1)])]), _vm._v(\" \"), _c('div', {\n staticClass: \"column\"\n }, [_c('div', {\n staticClass: \"field is-horizontal\"\n }, [_c('div', {\n staticClass: \"field-body\"\n }, [_c('div', {\n staticClass: \"field has-text-left\"\n }, [_c('label', {\n staticClass: \"label\"\n }, [_vm._v(\"Position\")]), _vm._v(\" \"), _c('p', {\n staticClass: \"control is-expanded\"\n }, [_c('span', {\n staticClass: \"select is-fullwidth\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.position),\n expression: \"position\"\n }],\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.position = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, _vm._l((_vm.positions), function(pos) {\n return _c('option', [_vm._v(_vm._s(pos))])\n }))])])]), _vm._v(\" \"), _c('div', {\n staticClass: \"field has-text-left\"\n }, [_c('label', {\n staticClass: \"label\"\n }, [_vm._v(\"Position Type\")]), _vm._v(\" \"), _c('p', {\n staticClass: \"control is-expandend\"\n }, [_c('span', {\n staticClass: \"select is-fullwidth\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.positionType),\n expression: \"positionType\"\n }],\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.positionType = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, _vm._l((_vm.positionTypes), function(type) {\n return _c('option', [_vm._v(_vm._s(type))])\n }))])])]), _vm._v(\" \"), _c('div', {\n staticClass: \"field has-text-left\"\n }, [_c('label', {\n staticClass: \"label\"\n }, [_vm._v(\"Size\")]), _vm._v(\" \"), _c('p', {\n staticClass: \"control is-expandend\"\n }, [_c('span', {\n staticClass: \"select is-fullwidth\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.iconSizes),\n expression: \"iconSizes\"\n }],\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.iconSizes = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, _vm._l((_vm.sizes), function(size) {\n return _c('option', [_vm._v(_vm._s(size))])\n }))])])]), _vm._v(\" \"), _c('div', {\n staticClass: \"field has-text-left\"\n }, [_c('label', {\n staticClass: \"label\"\n }, [_vm._v(\"Tooltip event\")]), _vm._v(\" \"), _c('p', {\n staticClass: \"control is-expandend\"\n }, [_c('span', {\n staticClass: \"select is-fullwidth\"\n }, [_c('select', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.tooltipEvent),\n expression: \"tooltipEvent\"\n }],\n on: {\n \"change\": function($event) {\n var $$selectedVal = Array.prototype.filter.call($event.target.options, function(o) {\n return o.selected\n }).map(function(o) {\n var val = \"_value\" in o ? o._value : o.value;\n return val\n });\n _vm.tooltipEvent = $event.target.multiple ? $$selectedVal : $$selectedVal[0]\n }\n }\n }, _vm._l((_vm.tooltipEvents), function(type) {\n return _c('option', [_vm._v(_vm._s(type))])\n }))])])])])]), _vm._v(\" \"), _c('label', {\n staticClass: \"label\",\n staticStyle: {\n \"display\": \"flex\",\n \"align-items\": \"center\",\n \"padding-right\": \"1rem\"\n }\n }, [_vm._v(\"\\n Main Icon & Tooltip\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"field is-horizontal\"\n }, [_c('div', {\n staticClass: \"field-body\"\n }, [_c('div', {\n staticClass: \"field\"\n }, [_c('p', {\n staticClass: \"control\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.mainIcon),\n expression: \"mainIcon\"\n }],\n staticClass: \"input\",\n attrs: {\n \"type\": \"text\"\n },\n domProps: {\n \"value\": (_vm.mainIcon)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.mainIcon = $event.target.value\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"field\"\n }, [_c('p', {\n staticClass: \"control\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.mainTooltip),\n expression: \"mainTooltip\"\n }],\n staticClass: \"input\",\n attrs: {\n \"type\": \"text\"\n },\n domProps: {\n \"value\": (_vm.mainTooltip)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.mainTooltip = $event.target.value\n }\n }\n })])])])]), _vm._v(\" \"), _c('label', {\n staticClass: \"label\",\n staticStyle: {\n \"display\": \"flex\",\n \"align-items\": \"center\",\n \"padding-right\": \"1rem\"\n }\n }, [_vm._v(\"\\n First Icon & Tooltip\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"field is-horizontal\"\n }, [_c('div', {\n staticClass: \"field-body\"\n }, [_c('div', {\n staticClass: \"field\"\n }, [_c('p', {\n staticClass: \"control\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.firstIcon),\n expression: \"firstIcon\"\n }],\n staticClass: \"input\",\n attrs: {\n \"type\": \"text\"\n },\n domProps: {\n \"value\": (_vm.firstIcon)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.firstIcon = $event.target.value\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"field\"\n }, [_c('p', {\n staticClass: \"control\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.firstTooltip),\n expression: \"firstTooltip\"\n }],\n staticClass: \"input\",\n attrs: {\n \"type\": \"text\"\n },\n domProps: {\n \"value\": (_vm.firstTooltip)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.firstTooltip = $event.target.value\n }\n }\n })])])])]), _vm._v(\" \"), _c('label', {\n staticClass: \"label\",\n staticStyle: {\n \"display\": \"flex\",\n \"align-items\": \"center\",\n \"padding-right\": \"1rem\"\n }\n }, [_vm._v(\"\\n Second Icon & Tooltip\\n \")]), _vm._v(\" \"), _c('div', {\n staticClass: \"field is-horizontal\"\n }, [_c('div', {\n staticClass: \"field-body\"\n }, [_c('div', {\n staticClass: \"field\"\n }, [_c('p', {\n staticClass: \"control\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.secondIcon),\n expression: \"secondIcon\"\n }],\n staticClass: \"input\",\n attrs: {\n \"type\": \"text\"\n },\n domProps: {\n \"value\": (_vm.secondIcon)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.secondIcon = $event.target.value\n }\n }\n })])]), _vm._v(\" \"), _c('div', {\n staticClass: \"field\"\n }, [_c('p', {\n staticClass: \"control\"\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.secondTooltip),\n expression: \"secondTooltip\"\n }],\n staticClass: \"input\",\n attrs: {\n \"type\": \"text\"\n },\n domProps: {\n \"value\": (_vm.secondTooltip)\n },\n on: {\n \"input\": function($event) {\n if ($event.target.composing) { return; }\n _vm.secondTooltip = $event.target.value\n }\n }\n })])])])]), _vm._v(\" \"), _c('label', {\n staticClass: \"checkbox\",\n staticStyle: {\n \"display\": \"flex\",\n \"align-items\": \"center\",\n \"padding-right\": \"1rem\"\n }\n }, [_c('input', {\n directives: [{\n name: \"model\",\n rawName: \"v-model\",\n value: (_vm.enableRotation),\n expression: \"enableRotation\"\n }],\n attrs: {\n \"type\": \"checkbox\"\n },\n domProps: {\n \"checked\": Array.isArray(_vm.enableRotation) ? _vm._i(_vm.enableRotation, null) > -1 : (_vm.enableRotation)\n },\n on: {\n \"__c\": function($event) {\n var $$a = _vm.enableRotation,\n $$el = $event.target,\n $$c = $$el.checked ? (true) : (false);\n if (Array.isArray($$a)) {\n var $$v = null,\n $$i = _vm._i($$a, $$v);\n if ($$c) {\n $$i < 0 && (_vm.enableRotation = $$a.concat($$v))\n } else {\n $$i > -1 && (_vm.enableRotation = $$a.slice(0, $$i).concat($$a.slice($$i + 1)))\n }\n } else {\n _vm.enableRotation = $$c\n }\n }\n }\n }), _vm._v(\"\\n Enable Rotation\\n \")])])]), _vm._v(\" \"), _c('div', {\n staticClass: \"columns\"\n }, [_c('div', {\n staticClass: \"column has-text-centered\"\n }, [_c('a', {\n attrs: {\n \"href\": _vm.repoUrl\n }\n }, [_vm._v(\"Installation & Code usage\")])])])])])])])])]), _vm._v(\" \"), _c('footer', {\n staticClass: \"footer\"\n }, [_c('div', {\n staticClass: \"container\"\n }, [_c('div', {\n staticClass: \"content has-text-centered\"\n }, [_c('p', [_c('strong', [_vm._v(\"Floating Action Button Vue Component\")]), _vm._v(\" by \"), _c('a', {\n attrs: {\n \"href\": _vm.teamUrl\n }\n }, [_vm._v(\"Pygmy Team\")]), _vm._v(\".\\n \")]), _vm._v(\" \"), _vm._m(2)])])]), _vm._v(\" \"), _c('fab', {\n attrs: {\n \"position\": _vm.position,\n \"icon-size\": _vm.iconSizes,\n \"position-type\": _vm.positionType,\n \"bg-color\": _vm.colors.hex,\n \"main-icon\": _vm.mainIcon,\n \"main-tooltip\": _vm.mainTooltip,\n \"actions\": [{\n name: 'alertMe',\n icon: _vm.firstIcon,\n tooltip: _vm.firstTooltip,\n color: '#d11014'\n }, {\n name: 'alertMe',\n icon: _vm.secondIcon,\n tooltip: _vm.secondTooltip\n }],\n \"fixed-tooltip\": _vm.fixedTooltip,\n \"enable-rotation\": _vm.enableRotation\n },\n on: {\n \"alertMe\": _vm.alert\n }\n })], 1)\n},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('section', {\n staticClass: \"hero\"\n }, [_c('div', {\n staticClass: \"hero-body\",\n staticStyle: {\n \"padding\": \"1rem 0\"\n }\n }, [_c('div', {\n staticClass: \"container\"\n }, [_c('div', {\n staticClass: \"columns\"\n }, [_c('div', {\n staticClass: \"column is-8 is-offset-3\",\n staticStyle: {\n \"display\": \"flex\",\n \"align-items\": \"center\"\n }\n }, [_c('div', {\n staticClass: \"is-pulled-left\"\n }, [_c('img', {\n attrs: {\n \"width\": \"350px\",\n \"src\": require(\"./assets/logo.png\")\n }\n })]), _vm._v(\" \"), _c('div', {\n staticClass: \"is-pulled-left\",\n staticStyle: {\n \"text-align\": \"left\"\n }\n }, [_c('h1', {\n staticClass: \"title text-medium-grey\",\n staticStyle: {\n \"margin-bottom\": \".5rem\"\n }\n }, [_vm._v(\"\\n Floating Action Button\\n \")]), _vm._v(\" \"), _c('hr', {\n staticClass: \"is-marginless\"\n }), _vm._v(\" \"), _c('h2', {\n staticClass: \"subtitle text-light-grey\",\n staticStyle: {\n \"margin-top\": \".5rem\"\n }\n }, [_vm._v(\"\\n A Vue Component\\n \"), _c('span', {\n staticClass: \"is-pulled-right\"\n }, [_c('a', {\n staticClass: \"github-button\",\n attrs: {\n \"href\": \"https://github.com/PygmySlowLoris/vue-fab\",\n \"data-icon\": \"octicon-star\",\n \"data-size\": \"large\",\n \"aria-label\": \"Star PygmySlowLoris/vue-fab on GitHub\"\n }\n }, [_vm._v(\"Star\")])])])])])])])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('div', {\n staticClass: \"heading\"\n }, [_c('div', {\n staticClass: \"columns\"\n }, [_c('div', {\n staticClass: \"column\"\n }, [_c('i', {\n staticClass: \"material-icons top-left\"\n }, [_vm._v(\"code\")]), _vm._v(\" \"), _c('span', {\n staticClass: \"is-pulled-right\"\n }, [_c('b', [_vm._v(\"Example\")])])])])])\n},function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;\n return _c('p', [_c('small', [_vm._v(\"Used dependencies for this demo: \"), _c('a', {\n attrs: {\n \"href\": \"http://bulma.io\"\n }\n }, [_vm._v(\"bulma\")]), _vm._v(\" | \"), _c('a', {\n attrs: {\n \"href\": \"https://github.com/xiaokaike/vue-color\"\n }\n }, [_vm._v(\"vue-color\")])])])\n}]}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-loader/lib/template-compiler?{\"id\":\"data-v-d877a75c\"}!./~/vue-loader/lib/selector.js?type=template&index=0!./demo/App.vue\n// module id = 18\n// module chunks = 0","export default {\n bind: function(el, binding){\n\n // Default values.\n const props = {\n event: 'click',\n transition: 600\n };\n\n setProps(Object.keys(binding.modifiers),props);\n\n el.addEventListener(props.event, function(event) {\n rippler(event, el, binding.value);\n });\n\n var bg = binding.value || 'rgba(0, 0, 0, 0.35)';\n\n function rippler(event, el) {\n var target = el;\n\n // Get necessary variables\n var rect = target.getBoundingClientRect(),\n left = rect.left,\n top = rect.top,\n width = target.offsetWidth,\n height = target.offsetHeight,\n dx = event.clientX - left,\n dy = event.clientY - top,\n maxX = Math.max(dx, width - dx),\n maxY = Math.max(dy, height - dy),\n style = window.getComputedStyle(target),\n radius = Math.sqrt((maxX * maxX) + (maxY * maxY));\n\n // Create the ripple and its container\n var ripple = document.createElement(\"div\"),\n rippleContainer = document.createElement(\"div\");\n\n //Styles for ripple\n ripple.style.marginTop= '0px';\n ripple.style.marginLeft= '0px';\n ripple.style.width= '1px';\n ripple.style.height= '1px';\n ripple.style.transition= 'all ' + props.transition + 'ms cubic-bezier(0.4, 0, 0.2, 1)';\n ripple.style.borderRadius= '50%';\n ripple.style.pointerEvents= 'none';\n ripple.style.position= 'relative';\n ripple.style.zIndex= '9999';\n ripple.style.backgroundColor = bg;\n\n //Styles for rippleContainer\n rippleContainer.style.position= 'absolute';\n rippleContainer.style.left = '0';\n rippleContainer.style.top = '0';\n rippleContainer.style.height = '0';\n rippleContainer.style.width = '0';\n rippleContainer.style.pointerEvents = 'none';\n rippleContainer.style.overflow = 'hidden';\n\n rippleContainer.appendChild(ripple);\n document.body.appendChild(rippleContainer);\n\n ripple.style.marginLeft = dx + \"px\";\n ripple.style.marginTop = dy + \"px\";\n\n rippleContainer.style.left = left + (((window.pageXOffset || document.scrollLeft) - (document.clientLeft || 0)) || 0) + \"px\";\n rippleContainer.style.top = top + (((window.pageYOffset || document.scrollTop) - (document.clientTop || 0)) || 0) + \"px\";\n rippleContainer.style.width = width + \"px\";\n rippleContainer.style.height = height + \"px\";\n rippleContainer.style.borderTopLeftRadius = style.borderTopLeftRadius;\n rippleContainer.style.borderTopRightRadius = style.borderTopRightRadius;\n rippleContainer.style.borderBottomLeftRadius = style.borderBottomLeftRadius;\n rippleContainer.style.borderBottomRightRadius = style.borderBottomRightRadius;\n\n setTimeout(function() {\n\n ripple.style.width = radius * 2 + \"px\";\n ripple.style.height = radius * 2 + \"px\";\n ripple.style.marginLeft = dx - radius + \"px\";\n ripple.style.marginTop = dy - radius + \"px\";\n }, 0);\n\n setTimeout(function() {\n ripple.style.backgroundColor = \"rgba(0, 0, 0, 0)\";\n }, 250);\n\n setTimeout(function() {\n ripple.remove();\n rippleContainer.remove();\n }, 650);\n }\n }\n}\n\nfunction setProps(modifiers,props) {\n modifiers.forEach(function(item) {\n if(isNaN(Number(item)))\n props.event = item;\n else\n props.transition = item;\n });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/vue-ripple-directive/src/ripple.js\n// module id = 19\n// module chunks = 0","// style-loader: Adds some css to the DOM by adding a \n\n\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./FAB.vue?vue&type=template&id=48d37b76&scoped=true&\"\nimport script from \"./FAB.vue?vue&type=script&lang=js&\"\nexport * from \"./FAB.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FAB.vue?vue&type=style&index=0&lang=css&\"\nimport style1 from \"./FAB.vue?vue&type=style&index=1&id=48d37b76&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48d37b76\",\n null\n \n)\n\ncomponent.options.__file = \"FAB.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"on-clickaway\",rawName:\"v-on-clickaway\",value:(_vm.away),expression:\"away\"}],staticClass:\"fab-wrapper\",style:([ _vm.pos, {zIndex: _vm.zIndex}, {position: _vm.positionType} ]),attrs:{\"id\":_vm.position + '-wrapper'}},[_c('div',{staticClass:\"actions-container\",style:(_vm.listPos),attrs:{\"id\":_vm.position + '-action'}},[_c('transition',{attrs:{\"name\":\"fab-actions-appear\",\"enter-active-class\":_vm.transitionEnter,\"leave-active-class\":_vm.transitionLeave}},[_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.toggle),expression:\"toggle\"}],staticClass:\"fab-list\"},[_vm._l((_vm.actions),function(action){return [_c('transition',{attrs:{\"enter-active-class\":\"animated quick zoomIn\",\"leave-active-class\":\"animated quick zoomOut\"},on:{\"after-enter\":_vm.afterActionsTransitionEnter}},[(action.tooltip)?[(_vm.toggle)?_c('li',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: action.tooltip, placement: _vm.tooltipPosition, classes: 'fab-tooltip', trigger: _vm.tooltipTrigger}),expression:\"{ content: action.tooltip, placement: tooltipPosition, classes: 'fab-tooltip', trigger: tooltipTrigger}\"}],ref:\"actions\",refInFor:true,staticClass:\"pointer\",style:({ 'background-color': action.color || _vm.bgColor }),on:{\"click\":function($event){_vm.toParent(action.name)}}},[_c('i',{class:[ _vm.actionIconSize ,'material-icons']},[_vm._v(_vm._s(action.icon))])]):_vm._e()]:[(_vm.toggle)?_c('li',{staticClass:\"pointer\",style:({ 'background-color': action.color || _vm.bgColor }),on:{\"click\":function($event){_vm.toParent(action.name)}}},[_c('i',{class:[ _vm.actionIconSize ,'material-icons']},[_vm._v(_vm._s(action.icon))])]):_vm._e()]],2)]})],2)])],1),_vm._v(\" \"),(_vm.rippleShow)?[(_vm.mainTooltip)?[_c('div',{directives:[{name:\"ripple\",rawName:\"v-ripple\",value:(_vm.rippleColor == 'light' ? 'rgba(255, 255, 255, 0.35)' : ''),expression:\"rippleColor == 'light' ? 'rgba(255, 255, 255, 0.35)' : ''\"},{name:\"tooltip\",rawName:\"v-tooltip\",value:({ content: _vm.mainTooltip, placement: _vm.tooltipPosition, classes: 'fab-tooltip' }),expression:\"{ content: mainTooltip, placement: tooltipPosition, classes: 'fab-tooltip' }\"}],staticClass:\"fab-main pointer\",style:({ 'background-color': _vm.bgColor, 'padding': _vm.paddingAmount }),on:{\"click\":function($event){_vm.toggle = !_vm.toggle}}},[_c('i',{class:[ _vm.mainIconSize , { rotate: _vm.toggle && _vm.allowRotation } ,'material-icons main']},[_vm._v(_vm._s(_vm.mainIcon))]),_vm._v(\" \"),_c('i',{class:[ _vm.mainIconSize , { rotate: _vm.toggle && _vm.allowRotation } ,'material-icons close']},[_vm._v(\"add\")])])]:[_c('div',{directives:[{name:\"ripple\",rawName:\"v-ripple\",value:(_vm.rippleColor == 'light' ? 'rgba(255, 255, 255, 0.35)' : ''),expression:\"rippleColor == 'light' ? 'rgba(255, 255, 255, 0.35)' : ''\"}],staticClass:\"fab-main pointer\",style:({ 'background-color': _vm.bgColor, 'padding': _vm.paddingAmount }),on:{\"click\":function($event){_vm.toggle = !_vm.toggle}}},[_c('i',{class:[ _vm.mainIconSize , { rotate: _vm.toggle && _vm.allowRotation }, 'material-icons main']},[_vm._v(_vm._s(_vm.mainIcon))]),_vm._v(\" \"),_c('i',{class:[ _vm.mainIconSize , { rotate: _vm.toggle && _vm.allowRotation }, 'material-icons close']},[_vm._v(\"add\")])])]]:[(_vm.mainTooltip)?[_c('div',{staticClass:\"fab-main pointer\",style:({ 'background-color': _vm.bgColor, 'padding': _vm.paddingAmount }),attrs:{\"v-tooltip\":{ content: _vm.mainTooltip, placement: _vm.tooltipPosition, classes: 'fab-tooltip'}}},[_c('i',{staticClass:\"material-icons md-36 main\",class:{ rotate: _vm.toggle && _vm.allowRotation }},[_vm._v(_vm._s(_vm.mainIcon))]),_vm._v(\" \"),_c('i',{staticClass:\"material-icons md-36 close\",class:{ rotate: _vm.toggle && _vm.allowRotation }},[_vm._v(\"add\")])])]:[_c('div',{staticClass:\"fab-main pointer\",style:({ 'background-color': _vm.bgColor, 'padding': _vm.paddingAmount })},[_c('i',{staticClass:\"material-icons md-36 main\",class:{ rotate: _vm.toggle && _vm.allowRotation }},[_vm._v(_vm._s(_vm.mainIcon))]),_vm._v(\" \"),_c('i',{staticClass:\"material-icons md-36 close\",class:{ rotate: _vm.toggle && _vm.allowRotation }},[_vm._v(\"add\")])])]]],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=250182d5&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=250182d5&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"250182d5\",\n null\n \n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import Vue from 'vue'\nimport App from './App.vue'\n\nnew Vue({\n el: '#app',\n render: h => h(App)\n})\n"],"sourceRoot":""} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 13d15e2..c16e0bc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,1287 +1,1563 @@ { "name": "vue-fab", - "version": "2.1.4", + "version": "2.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { - "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", - "dev": true - }, - "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { - "mime-types": "~2.1.11", - "negotiator": "0.6.1" + "@babel/highlight": "^7.0.0" } }, - "acorn": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", - "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "@babel/core": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.0.tgz", + "integrity": "sha512-7pvAdC4B+iKjFFp9Ztj0QgBndJ++qaMeonT185wAqUnhipw8idm9Rv1UMyBuKtYjfl6ORNkgEgcsYLfHX/GpLw==", "dev": true, "requires": { - "acorn": "^4.0.3" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.0", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.2.0", + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.6", + "@babel/types": "^7.2.0", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" } }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "@babel/generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.2.0.tgz", + "integrity": "sha512-BA75MVfRlFQG2EZgFYIwyT1r6xSkwfP2bdkY/kLZusEYWiJs4xCowab/alaEaT0wSvmVuXGqiefeBlP+7V1yKg==", "dev": true, "requires": { - "co": "^4.6.0", - "json-stable-stringify": "^1.0.1" + "@babel/types": "^7.2.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.10", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" } }, - "ajv-keywords": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-1.5.1.tgz", - "integrity": "sha1-MU3QpLM2j609/NxU7eYXG4htrzw=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", "dev": true, "requires": { - "kind-of": "^3.0.2", - "longest": "^1.0.1", - "repeat-string": "^1.5.2" + "@babel/types": "^7.0.0" } }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "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 - }, - "anymatch": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", "dev": true, "requires": { - "arrify": "^1.0.0", - "micromatch": "^2.1.5" + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "argparse": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", - "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "@babel/helper-call-delegate": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz", + "integrity": "sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ==", "dev": true, "requires": { - "sprintf-js": "~1.0.2" + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "@babel/helper-define-map": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz", + "integrity": "sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg==", "dev": true, "requires": { - "arr-flatten": "^1.0.1" + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" } }, - "arr-flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", - "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-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", "dev": true, "requires": { - "util": "0.10.3" + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz", - "integrity": "sha1-YqVrJ5yYoR0JhwlqAcw+6463u9c=", + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", "dev": true, "requires": { - "lodash": "^4.14.0" + "@babel/types": "^7.0.0" } }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "autoprefixer": { - "version": "6.7.7", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", - "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "@babel/helper-hoist-variables": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz", + "integrity": "sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w==", "dev": true, "requires": { - "browserslist": "^1.7.6", - "caniuse-db": "^1.0.30000634", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^5.2.16", - "postcss-value-parser": "^3.2.3" + "@babel/types": "^7.0.0" } }, - "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "@babel/helper-member-expression-to-functions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz", + "integrity": "sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg==", "dev": true, "requires": { - "chalk": "^1.1.0", - "esutils": "^2.0.2", - "js-tokens": "^3.0.0" + "@babel/types": "^7.0.0" } }, - "babel-core": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz", - "integrity": "sha1-jEKFZNzh4fQfszfsNPTDsCK1rYM=", + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "babel-generator": "^6.24.1", - "babel-helpers": "^6.24.1", - "babel-messages": "^6.23.0", - "babel-register": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1", - "babylon": "^6.11.0", - "convert-source-map": "^1.1.0", - "debug": "^2.1.1", - "json5": "^0.5.0", - "lodash": "^4.2.0", - "minimatch": "^3.0.2", - "path-is-absolute": "^1.0.0", - "private": "^0.1.6", - "slash": "^1.0.0", - "source-map": "^0.5.0" + "@babel/types": "^7.0.0" } }, - "babel-generator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.24.1.tgz", - "integrity": "sha1-5xX0hsWN7SVknYiJRNUqoHxdlJc=", + "@babel/helper-module-transforms": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.1.0.tgz", + "integrity": "sha512-0JZRd2yhawo79Rcm4w0LwSMILFmFXjugG3yqf+P/UsKsRS1mJCmMwwlHDlMg7Avr9LrvSpp4ZSULO9r8jpCzcw==", "dev": true, "requires": { - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", - "detect-indent": "^4.0.0", - "jsesc": "^1.3.0", - "lodash": "^4.2.0", - "source-map": "^0.5.0", - "trim-right": "^1.0.1" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0", + "lodash": "^4.17.10" } }, - "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=", + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", "dev": true, "requires": { - "babel-helper-explode-assignable-expression": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/types": "^7.0.0" } }, - "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=", + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.0.0.tgz", + "integrity": "sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg==", "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" + "lodash": "^4.17.10" } }, - "babel-helper-define-map": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", - "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", - "lodash": "^4.2.0" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "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=", + "@babel/helper-replace-supers": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz", + "integrity": "sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1" + "@babel/helper-member-expression-to-functions": "^7.0.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "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=", + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", "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/template": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "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=", + "@babel/helper-split-export-declaration": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz", + "integrity": "sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/types": "^7.0.0" } }, - "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=", + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" } }, - "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=", + "@babel/helpers": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.2.0.tgz", + "integrity": "sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.5", + "@babel/types": "^7.2.0" } }, - "babel-helper-regex": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", - "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", + "@babel/highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", + "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", - "lodash": "^4.2.0" + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" } }, - "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=", + "@babel/parser": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.2.0.tgz", + "integrity": "sha512-M74+GvK4hn1eejD9lZ7967qAwvqTZayQa3g10ag4s9uewgR7TKjeaT0YMyoq+gVfKYABiWZ4MQD701/t5e1Jhg==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", "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-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" } }, - "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=", + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", "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/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" } }, - "babel-helpers": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" } }, - "babel-loader": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-6.4.1.tgz", - "integrity": "sha1-CzQRLVsHSKjc2/Uaz2+b1C1QuMo=", + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", "dev": true, "requires": { - "find-cache-dir": "^0.1.1", - "loader-utils": "^0.2.16", - "mkdirp": "^0.5.1", - "object-assign": "^4.0.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" } }, - "babel-messages": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz", + "integrity": "sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.2.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=", + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.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=", + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", "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/helper-plugin-utils": "^7.0.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=", + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.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=", + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-plugin-transform-es2015-block-scoping": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", - "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1", - "lodash": "^4.2.0" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "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=", + "@babel/plugin-transform-async-to-generator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz", + "integrity": "sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ==", "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/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" } }, - "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=", + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "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=", + "@babel/plugin-transform-block-scoping": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz", + "integrity": "sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.10" } }, - "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=", + "@babel/plugin-transform-classes": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.0.tgz", + "integrity": "sha512-aPCEkrhJYebDXcGTAP+cdUENkH7zqOlgbKwLbghjjHpJRJBWM/FSlCjMoPGA8oUdiMfOrk3+8EFPLLb5r7zj2w==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" } }, - "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=", + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.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=", + "@babel/plugin-transform-destructuring": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz", + "integrity": "sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ==", "dev": true, "requires": { - "babel-helper-function-name": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "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=", + "@babel/plugin-transform-dotall-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz", + "integrity": "sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" } }, - "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=", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz", + "integrity": "sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw==", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-plugin-transform-es2015-modules-commonjs": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", - "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", "dev": true, "requires": { - "babel-plugin-transform-strict-mode": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1", - "babel-types": "^6.24.1" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.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=", + "@babel/plugin-transform-for-of": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz", + "integrity": "sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ==", "dev": true, "requires": { - "babel-helper-hoist-variables": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "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=", + "@babel/plugin-transform-function-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz", + "integrity": "sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ==", "dev": true, "requires": { - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-template": "^6.24.1" + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "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=", + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", "dev": true, "requires": { - "babel-helper-replace-supers": "^6.24.1", - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.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=", + "@babel/plugin-transform-modules-amd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz", + "integrity": "sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw==", "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/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "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=", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz", + "integrity": "sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0" } }, - "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=", + "@babel/plugin-transform-modules-systemjs": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz", + "integrity": "sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-hoist-variables": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.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=", + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "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=", + "@babel/plugin-transform-new-target": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz", + "integrity": "sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.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=", + "@babel/plugin-transform-object-super": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz", + "integrity": "sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg==", "dev": true, "requires": { - "babel-runtime": "^6.22.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.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=", + "@babel/plugin-transform-parameters": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz", + "integrity": "sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA==", "dev": true, "requires": { - "babel-helper-regex": "^6.24.1", - "babel-runtime": "^6.22.0", - "regexpu-core": "^2.0.0" + "@babel/helper-call-delegate": "^7.1.0", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.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=", + "@babel/plugin-transform-regenerator": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz", + "integrity": "sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw==", "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" + "regenerator-transform": "^0.13.3" } }, - "babel-plugin-transform-regenerator": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", - "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", "dev": true, "requires": { - "regenerator-transform": "0.9.11" + "@babel/helper-plugin-utils": "^7.0.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=", + "@babel/plugin-transform-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.0.tgz", + "integrity": "sha512-7TtPIdwjS/i5ZBlNiQePQCovDh9pAhVbp/nGVRBZuUdBiVRThyyLend3OHobc0G+RLCPPAN70+z/MAMhsgJd/A==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-preset-es2015": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "^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.24.1", - "babel-plugin-transform-es2015-classes": "^6.24.1", - "babel-plugin-transform-es2015-computed-properties": "^6.24.1", - "babel-plugin-transform-es2015-destructuring": "^6.22.0", - "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", - "babel-plugin-transform-es2015-for-of": "^6.22.0", - "babel-plugin-transform-es2015-function-name": "^6.24.1", - "babel-plugin-transform-es2015-literals": "^6.22.0", - "babel-plugin-transform-es2015-modules-amd": "^6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", - "babel-plugin-transform-es2015-modules-umd": "^6.24.1", - "babel-plugin-transform-es2015-object-super": "^6.24.1", - "babel-plugin-transform-es2015-parameters": "^6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", - "babel-plugin-transform-es2015-spread": "^6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", - "babel-plugin-transform-es2015-template-literals": "^6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", - "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", - "babel-plugin-transform-regenerator": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" } }, - "babel-preset-es2016": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2016/-/babel-preset-es2016-6.24.1.tgz", - "integrity": "sha1-+QC/k+LrwNJ235uKtZck6/2Vn4s=", + "@babel/plugin-transform-template-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz", + "integrity": "sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg==", "dev": true, "requires": { - "babel-plugin-transform-exponentiation-operator": "^6.24.1" + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-preset-es2017": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-es2017/-/babel-preset-es2017-6.24.1.tgz", - "integrity": "sha1-WXvq37n38gi8/YoS6bKym4svFNE=", + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", "dev": true, "requires": { - "babel-plugin-syntax-trailing-function-commas": "^6.22.0", - "babel-plugin-transform-async-to-generator": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0" } }, - "babel-preset-latest": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-preset-latest/-/babel-preset-latest-6.24.1.tgz", - "integrity": "sha1-Z33gaRVKdIXC0lxXfAL2JLhbheg=", + "@babel/plugin-transform-unicode-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz", + "integrity": "sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA==", "dev": true, "requires": { - "babel-preset-es2015": "^6.24.1", - "babel-preset-es2016": "^6.24.1", - "babel-preset-es2017": "^6.24.1" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0", + "regexpu-core": "^4.1.3" } }, - "babel-register": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", - "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", + "@babel/preset-env": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.2.0.tgz", + "integrity": "sha512-haGR38j5vOGVeBatrQPr3l0xHbs14505DcM57cbJy48kgMFvvHHoYEhHuRV+7vi559yyAUAVbTWzbK/B/pzJng==", "dev": true, "requires": { - "babel-core": "^6.24.1", - "babel-runtime": "^6.22.0", - "core-js": "^2.4.0", - "home-or-tmp": "^2.0.0", - "lodash": "^4.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.4.2" + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.2.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" } }, - "babel-runtime": { - "version": "6.23.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.23.0.tgz", - "integrity": "sha1-CpSJ8UTecO+zzkMArM2zKeL8VDs=", + "@babel/template": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.1.2.tgz", + "integrity": "sha512-SY1MmplssORfFiLDcOETrW7fCLl+PavlwMh92rrGcikQaRq4iWPVH0MpwPpY3etVMx6RnDjXtr6VZYr/IbP/Ag==", "dev": true, "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.10.0" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.1.2", + "@babel/types": "^7.1.2" } }, - "babel-template": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.24.1.tgz", - "integrity": "sha1-BK5RTx+Ts6JTfyoPYKWkX7gwgzM=", + "@babel/traverse": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.1.6.tgz", + "integrity": "sha512-CXedit6GpISz3sC2k2FsGCUpOhUqKdyL0lqNrImQojagnUMXf8hex4AxYFRuMkNGcvJX5QAFGzB5WJQmSv8SiQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.6", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "@babel/parser": "^7.1.6", + "@babel/types": "^7.1.6", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.10" + } + }, + "@babel/types": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.2.0.tgz", + "integrity": "sha512-b4v7dyfApuKDvmPb+O488UlGuR1WbwMXFsO/cyqMrnfvRAChZKJAYeeglWTjUO1b9UghKKgepAQM5tsvBJca6A==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "babel-traverse": "^6.24.1", - "babel-types": "^6.24.1", - "babylon": "^6.11.0", - "lodash": "^4.2.0" + "esutils": "^2.0.2", + "lodash": "^4.17.10", + "to-fast-properties": "^2.0.0" } }, - "babel-traverse": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.24.1.tgz", - "integrity": "sha1-qzZnP9NW+aCUhlnnszjV/q2zFpU=", + "@vue/component-compiler-utils": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.3.1.tgz", + "integrity": "sha512-8VuzMhHTf5UU7+HvBeEbBmYiNLvRxIXtDpvxUl5x26WBPgKmQuuJVFY3dN3GFgnWK9Rveh/u/8NF4quhdUUQ1Q==", "dev": true, "requires": { - "babel-code-frame": "^6.22.0", - "babel-messages": "^6.23.0", - "babel-runtime": "^6.22.0", - "babel-types": "^6.24.1", - "babylon": "^6.15.0", - "debug": "^2.2.0", - "globals": "^9.0.0", - "invariant": "^2.2.0", - "lodash": "^4.2.0" + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^6.0.20", + "postcss-selector-parser": "^3.1.1", + "prettier": "1.13.7", + "source-map": "^0.5.6", + "vue-template-es2015-compiler": "^1.6.0" + }, + "dependencies": { + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.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 + } + } + } } }, - "babel-types": { - "version": "6.24.1", - "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.24.1.tgz", - "integrity": "sha1-oTaHncFbNga9oNkMH8dDBML/CXU=", + "@webassemblyjs/ast": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", + "integrity": "sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA==", "dev": true, "requires": { - "babel-runtime": "^6.22.0", - "esutils": "^2.0.2", - "lodash": "^4.2.0", - "to-fast-properties": "^1.0.1" + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11" } }, - "babylon": { - "version": "6.17.0", - "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.0.tgz", - "integrity": "sha1-N9qUiHhIi5xOPEA4iT+jMUs/yTI=", - "dev": true - }, - "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz", + "integrity": "sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg==", "dev": true }, - "base64-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", - "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=", + "@webassemblyjs/helper-api-error": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz", + "integrity": "sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg==", "dev": true }, - "batch": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", - "integrity": "sha1-PzQU84AyF0O/wQQvmoP/HVgk1GQ=", + "@webassemblyjs/helper-buffer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz", + "integrity": "sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w==", "dev": true }, - "big.js": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", - "dev": true + "@webassemblyjs/helper-code-frame": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz", + "integrity": "sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.7.11" + } }, - "binary-extensions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", + "@webassemblyjs/helper-fsm": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz", + "integrity": "sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A==", "dev": true }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "@webassemblyjs/helper-module-context": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz", + "integrity": "sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg==", "dev": true }, - "bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=", + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz", + "integrity": "sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ==", "dev": true }, - "brace-expansion": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.7.tgz", - "integrity": "sha1-Pv/DxQ4ABTH7cg6v+A8K6O8jz1k=", + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz", + "integrity": "sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q==", "dev": true, "requires": { - "balanced-match": "^0.4.1", - "concat-map": "0.0.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11" } }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "@webassemblyjs/ieee754": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz", + "integrity": "sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ==", "dev": true, "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "@xtuc/ieee754": "^1.2.0" } }, - "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.0.6", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "@webassemblyjs/leb128": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.11.tgz", + "integrity": "sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw==", "dev": true, "requires": { - "buffer-xor": "^1.0.2", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.0", - "inherits": "^2.0.1" + "@xtuc/long": "4.2.1" } }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } + "@webassemblyjs/utf8": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.11.tgz", + "integrity": "sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA==", + "dev": true }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "@webassemblyjs/wasm-edit": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz", + "integrity": "sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg==", "dev": true, "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/helper-wasm-section": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-opt": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "@webassemblyjs/wast-printer": "1.7.11" } }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "@webassemblyjs/wasm-gen": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz", + "integrity": "sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "randombytes": "^2.0.1" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "@webassemblyjs/wasm-opt": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz", + "integrity": "sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg==", "dev": true, "requires": { - "bn.js": "^4.1.1", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.2", - "elliptic": "^6.0.0", - "inherits": "^2.0.1", - "parse-asn1": "^5.0.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-buffer": "1.7.11", + "@webassemblyjs/wasm-gen": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11" } }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "@webassemblyjs/wasm-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz", + "integrity": "sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg==", "dev": true, "requires": { - "pako": "~0.2.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-wasm-bytecode": "1.7.11", + "@webassemblyjs/ieee754": "1.7.11", + "@webassemblyjs/leb128": "1.7.11", + "@webassemblyjs/utf8": "1.7.11" } }, - "browserslist": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", - "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "@webassemblyjs/wast-parser": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz", + "integrity": "sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ==", "dev": true, "requires": { - "caniuse-db": "^1.0.30000639", - "electron-to-chromium": "^1.2.7" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/floating-point-hex-parser": "1.7.11", + "@webassemblyjs/helper-api-error": "1.7.11", + "@webassemblyjs/helper-code-frame": "1.7.11", + "@webassemblyjs/helper-fsm": "1.7.11", + "@xtuc/long": "4.2.1" } }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "@webassemblyjs/wast-printer": { + "version": "1.7.11", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz", + "integrity": "sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg==", "dev": true, "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/wast-parser": "1.7.11", + "@xtuc/long": "4.2.1" } }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", + "@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 }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==", "dev": true }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "acorn": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true }, - "builtin-status-codes": { + "acorn-dynamic-import": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.3.0.tgz", - "integrity": "sha1-1baAoWW2IBc5rLYRVCqrwtjOsHA=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "caniuse-api": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", - "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", "dev": true, "requires": { - "browserslist": "^1.3.6", - "caniuse-db": "^1.0.30000529", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" + "acorn": "^5.0.0" } }, - "caniuse-db": { - "version": "1.0.30000664", - "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000664.tgz", - "integrity": "sha1-4WMW5f2ruccgmyvwdE/8ihQgHyI=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "ajv": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.1.tgz", + "integrity": "sha512-ZoJjft5B+EJBjUyu9C9Hc0OZyPZSSlOF+plzouTrg6UlA8f+e/n8NIgBFG/9tppJtpPWfthHakK7juJdNDODww==", "dev": true, "requires": { - "align-text": "^0.1.3", - "lazy-cache": "^1.0.3" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "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" - } + "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 }, - "chokidar": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.6.1.tgz", - "integrity": "sha1-L0RHq16W5Q+z14n9kNTHLg5McMI=", - "dev": true, - "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "fsevents": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" - } + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true }, - "cipher-base": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", - "dev": true, - "requires": { - "inherits": "^2.0.1" - } + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, - "clap": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/clap/-/clap-1.1.3.tgz", - "integrity": "sha1-s7026T3Uy/s5WjwmiWNSRFJlwFs=", + "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": { - "chalk": "^1.1.3" + "color-convert": "^1.9.0" } }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "center-align": "^0.1.1", - "right-align": "^0.1.1", - "wordwrap": "0.0.2" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, - "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "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 }, - "coa": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.1.tgz", - "integrity": "sha1-f5WTRs/IcZ4/cjPNaFKFSnxn2KM=", - "dev": true, - "requires": { - "q": "^1.1.2" - } - }, - "code-point-at": { + "arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, - "color": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", - "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", - "dev": true, - "requires": { - "clone": "^1.0.2", - "color-convert": "^1.3.0", - "color-string": "^0.3.0" - } - }, - "color-convert": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", - "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "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-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.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "color-name": "^1.1.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, - "color-name": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.2.tgz", - "integrity": "sha1-XIq3K2S9IhXWF66VWeuxSEdc+Y0=", + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "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": "http://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "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 }, - "color-string": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", - "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "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 + }, + "babel-loader": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz", + "integrity": "sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==", "dev": true, "requires": { - "color-name": "^1.0.0" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" } }, - "colormin": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", - "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "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": { - "color": "^0.11.0", - "css-color-names": "0.0.4", - "has": "^1.0.1" + "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" + } + } } }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", "dev": true }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "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 + }, + "binary-extensions": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.12.0.tgz", + "integrity": "sha512-DYWGk01lDcxeS/K9IHPGWfT8PsJmbXRtRd2Sx72Tnb8pcYZQFF1oSDb8hJtS1vhp212q1Rzi5dUf9+nq0o9UIg==", + "dev": true + }, + "bluebird": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.3.tgz", + "integrity": "sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw==", + "dev": 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 + }, + "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": { - "graceful-readlink": ">= 1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "commondir": { + "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 + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "http://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/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "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.0.1", + "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "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.3.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.3.5.tgz", + "integrity": "sha512-z9ZhGc3d9e/sJ9dIx5NFXkKoaiQTnrvrMsN3R1fGb1tkWWNSz12UewJn9TNxGo1l7J23h0MRaPmk7jfeTZYs1w==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000912", + "electron-to-chromium": "^1.3.86", + "node-releases": "^1.0.5" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "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 }, - "compressible": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.10.tgz", - "integrity": "sha1-/tocf3YXkScyspv4zyYlKiC57s0=", + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "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 + }, + "cacache": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz", + "integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==", "dev": true, "requires": { - "mime-db": ">= 1.27.0 < 2" + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "figgy-pudding": "^3.1.0", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.3", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.0", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" } }, - "compression": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.6.2.tgz", - "integrity": "sha1-zOsSHsydCcUtetDDNQ6pPd1AK8M=", + "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": { - "accepts": "~1.3.3", - "bytes": "2.3.0", - "compressible": "~2.0.8", - "debug": "~2.2.0", - "on-headers": "~1.0.1", - "vary": "~1.1.0" + "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" + } + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000921", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000921.tgz", + "integrity": "sha512-Bu09ciy0lMWLgpYC77I0YGuI8eFRBPPzaSOYJK1jTI64txCphYCqnWbxJYjHABYVt/TYX/p3jNjLBR87u1Bfpw==", + "dev": true + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.4.tgz", + "integrity": "sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.2.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "lodash.debounce": "^4.0.8", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.5" + } + }, + "chownr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz", + "integrity": "sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A==", + "dev": true, + "requires": { + "tslib": "^1.9.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" + } + }, + "clamp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/clamp/-/clamp-1.0.1.tgz", + "integrity": "sha1-ZqDmQBGBbjcZaCj9yMjBRzEshjQ=", + "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": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "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": { - "ms": "0.7.1" + "is-descriptor": "^0.1.0" } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "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" + } + }, + "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-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "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 + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "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 + }, "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 }, - "config-chain": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.11.tgz", - "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", + "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": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "connect-history-api-fallback": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz", - "integrity": "sha1-5R0X+PDvDbkKZP20feMFFVbp8Wk=", - "dev": true - }, "console-browserify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", @@ -1292,9 +1568,9 @@ } }, "consolidate": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.14.5.tgz", - "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", + "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" @@ -1306,40 +1582,33 @@ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, - "content-disposition": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", - "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", - "dev": true - }, - "content-type": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", - "dev": true - }, - "convert-source-map": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "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" + } }, - "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", + "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-util-is": { @@ -1348,33 +1617,10 @@ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "cosmiconfig": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.1.3.tgz", - "integrity": "sha1-lSdx6w3dwcs/ovb75RpSLpOz7go=", - "dev": true, - "requires": { - "is-directory": "^0.3.1", - "js-yaml": "^3.4.3", - "minimist": "^1.2.0", - "object-assign": "^4.1.0", - "os-homedir": "^1.0.1", - "parse-json": "^2.2.0", - "require-from-string": "^1.1.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } - } - }, "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { "bn.js": "^4.1.0", @@ -1382,21 +1628,22 @@ } }, "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "version": "1.2.0", + "resolved": "http://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", - "ripemd160": "^2.0.0", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", "sha.js": "^2.4.0" } }, "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "version": "1.1.7", + "resolved": "http://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", @@ -1408,30 +1655,32 @@ } }, "cross-env": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-3.2.4.tgz", - "integrity": "sha1-ngWF8neGTtQhznVvgamA/w1piro=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.0.tgz", + "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", "dev": true, "requires": { - "cross-spawn": "^5.1.0", + "cross-spawn": "^6.0.5", "is-windows": "^1.0.0" } }, "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=", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "lru-cache": "^4.0.1", + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" } }, "crypto-browserify": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", + "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", @@ -1443,39 +1692,32 @@ "inherits": "^2.0.1", "pbkdf2": "^3.0.3", "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0" + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, "css-loader": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.25.0.tgz", - "integrity": "sha1-w/68jOKPTINXa2sTcH9H+Qw5AiM=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-2.0.1.tgz", + "integrity": "sha512-XIVwoIOzSFRVsafOKa060GJ/A70c0IP/C1oVPHEX4eHIFF39z0Jl7j8Kua1SUTiqWDupUnbY3/yQx9r7EUB35w==", "dev": true, "requires": { - "babel-code-frame": "^6.11.0", - "css-selector-tokenizer": "^0.6.0", - "cssnano": ">=2.6.1 <4", - "loader-utils": "~0.2.2", - "lodash.camelcase": "^3.0.1", - "object-assign": "^4.0.1", - "postcss": "^5.0.6", - "postcss-modules-extract-imports": "^1.0.0", - "postcss-modules-local-by-default": "^1.0.1", - "postcss-modules-scope": "^1.0.0", - "postcss-modules-values": "^1.1.0", - "source-list-map": "^0.1.4" + "icss-utils": "^4.0.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^7.0.6", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^2.0.2", + "postcss-modules-scope": "^2.0.0", + "postcss-modules-values": "^2.0.0", + "postcss-value-parser": "^3.3.0", + "schema-utils": "^1.0.0" } }, "css-selector-tokenizer": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.6.0.tgz", - "integrity": "sha1-ZEX1gseTDSQdzFAHpD1vy48HMVI=", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz", + "integrity": "sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA==", "dev": true, "requires": { "cssesc": "^0.1.0", @@ -1483,9 +1725,15 @@ "regexpu-core": "^1.0.0" }, "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, "regexpu-core": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { @@ -1493,6 +1741,21 @@ "regjsgen": "^0.2.0", "regjsparser": "^0.1.4" } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "http://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "http://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + } } } }, @@ -1502,55 +1765,11 @@ "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", "dev": true }, - "cssnano": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", - "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", - "dev": true, - "requires": { - "autoprefixer": "^6.3.1", - "decamelize": "^1.1.2", - "defined": "^1.0.0", - "has": "^1.0.1", - "object-assign": "^4.0.1", - "postcss": "^5.0.14", - "postcss-calc": "^5.2.0", - "postcss-colormin": "^2.1.8", - "postcss-convert-values": "^2.3.4", - "postcss-discard-comments": "^2.0.4", - "postcss-discard-duplicates": "^2.0.1", - "postcss-discard-empty": "^2.0.1", - "postcss-discard-overridden": "^0.1.1", - "postcss-discard-unused": "^2.2.1", - "postcss-filter-plugins": "^2.0.0", - "postcss-merge-idents": "^2.1.5", - "postcss-merge-longhand": "^2.0.1", - "postcss-merge-rules": "^2.0.3", - "postcss-minify-font-values": "^1.0.2", - "postcss-minify-gradients": "^1.0.1", - "postcss-minify-params": "^1.0.4", - "postcss-minify-selectors": "^2.0.4", - "postcss-normalize-charset": "^1.1.0", - "postcss-normalize-url": "^3.0.7", - "postcss-ordered-values": "^2.1.0", - "postcss-reduce-idents": "^2.2.2", - "postcss-reduce-initial": "^1.0.0", - "postcss-reduce-transforms": "^1.0.3", - "postcss-svgo": "^2.1.1", - "postcss-unique-selectors": "^2.0.2", - "postcss-value-parser": "^3.2.3", - "postcss-zindex": "^2.0.1" - } - }, - "csso": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", - "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", - "dev": true, - "requires": { - "clap": "^1.0.9", - "source-map": "^0.5.3" - } + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true }, "date-now": { "version": "0.1.4", @@ -1565,12 +1784,12 @@ "dev": true }, "debug": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.6.tgz", - "integrity": "sha1-qfpvvpykPPHnn3O3XAGJy7fW21o=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", + "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", "dev": true, "requires": { - "ms": "0.7.3" + "ms": "^2.1.1" } }, "decamelize": { @@ -1579,17 +1798,61 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "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 }, - "depd": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", - "dev": true + "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" + } + } + } }, "des.js": { "version": "1.0.0", @@ -1601,25 +1864,10 @@ "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": "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.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "version": "5.0.3", + "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { "bn.js": "^4.1.0", @@ -1628,50 +1876,42 @@ } }, "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "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 }, - "editorconfig": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.13.2.tgz", - "integrity": "sha1-jleSbZ7mmrbLmZ8CfCFxRnrM6zU=", + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "bluebird": "^3.0.5", - "commander": "^2.9.0", - "lru-cache": "^3.2.0", - "sigmund": "^1.0.1" - }, - "dependencies": { - "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" - } - } + "is-obj": "^1.0.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 + "duplexify": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", + "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } }, "electron-to-chromium": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.8.tgz", - "integrity": "sha1-ssiix5u4n7v9NyTZVV4VCVtfX7Y=", + "version": "1.3.91", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.91.tgz", + "integrity": "sha512-wOWwM4vQpmb97VNkExnwE5e/sUMUb7NXurlEnhE89JOarUp6FOOMKjtTGgj9bmqskZkeRA7u+p0IztJ/y2OP5Q==", "dev": true }, "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz", + "integrity": "sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -1689,47 +1929,58 @@ "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", "dev": true }, - "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", - "dev": true + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } }, "enhanced-resolve": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz", - "integrity": "sha1-n0tib1dyRe3PSyrYPYbhf09CHew=", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", + "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", "dev": true, "requires": { "graceful-fs": "^4.1.2", "memory-fs": "^0.4.0", - "object-assign": "^4.0.1", - "tapable": "^0.2.5" + "tapable": "^1.0.0" } }, "errno": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "~0.0.0" + "prr": "~1.0.1" } }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "es-abstract": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } }, "escape-string-regexp": { "version": "1.0.5", @@ -1737,10 +1988,29 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, - "esprima": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", - "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "eslint-scope": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.0.tgz", + "integrity": "sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", "dev": true }, "esutils": { @@ -1749,217 +2019,259 @@ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, - "etag": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", - "dev": true - }, - "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", - "dev": true - }, "events": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "resolved": "http://registry.npmjs.org/events/-/events-1.1.1.tgz", "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", "dev": true }, - "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "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": { - "original": ">=0.0.5" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, - "evp_bytestokey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", "dev": true, "requires": { - "create-hash": "^1.1.1" + "cross-spawn": "^6.0.0", + "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" } }, "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true, - "requires": { - "is-posix-bracket": "^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, - "requires": { - "fill-range": "^2.1.0" - } - }, - "express": { - "version": "4.15.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.15.2.tgz", - "integrity": "sha1-rxB/wUhQRFfy3Kmm8lcdcSm5ezU=", - "dev": true, - "requires": { - "accepts": "~1.3.3", - "array-flatten": "1.1.1", - "content-disposition": "0.5.2", - "content-type": "~1.0.2", - "cookie": "0.3.1", - "cookie-signature": "1.0.6", - "debug": "2.6.1", - "depd": "~1.1.0", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "etag": "~1.8.0", - "finalhandler": "~1.0.0", - "fresh": "0.5.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.1", - "path-to-regexp": "0.1.7", - "proxy-addr": "~1.1.3", - "qs": "6.4.0", - "range-parser": "~1.2.0", - "send": "0.15.1", - "serve-static": "1.12.1", - "setprototypeof": "1.0.3", - "statuses": "~1.3.1", - "type-is": "~1.6.14", - "utils-merge": "1.0.0", - "vary": "~1.1.0" + "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.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", - "integrity": "sha1-eYVQkLosTjEVzH2HaUkdWPBJE1E=", + "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": { - "ms": "0.7.2" + "is-extendable": "^0.1.0" } }, "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "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": { - "is-extglob": "^1.0.0" + "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" + } + } } }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "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" + } + } + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", "dev": true }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true }, - "file-loader": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.9.0.tgz", - "integrity": "sha1-HS2t3UJM5tGwfP4/eXMb7TYXq0I=", - "dev": true, - "requires": { - "loader-utils": "~0.2.5" - } + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", "dev": true }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", "dev": true, "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^1.1.3", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" } }, - "finalhandler": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.2.tgz", - "integrity": "sha1-0ONvnbxVfy3hRCPfYmGInp1gyTo=", + "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": { - "debug": "2.6.4", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.1", - "statuses": "~1.3.1", - "unpipe": "~1.0.0" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { - "debug": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.4.tgz", - "integrity": "sha1-dYaps8OXQcAoKuM0RcTorHRzT+A=", + "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": { - "ms": "0.7.3" + "is-extendable": "^0.1.0" } } } }, "find-cache-dir": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", - "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { "commondir": "^1.0.1", - "mkdirp": "^0.5.1", - "pkg-dir": "^1.0.0" + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "locate-path": "^2.0.0" } }, - "flatten": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", - "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", - "dev": true + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } }, "for-in": { "version": "1.0.2", @@ -1967,42 +2279,58 @@ "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=", + "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": { - "for-in": "^1.0.1" + "map-cache": "^0.2.2" } }, - "forwarded": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", - "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=", - "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" + } }, - "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "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": "1.1.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.1.tgz", - "integrity": "sha1-8Z/Sj0Pur3YWgOUZogPE0LPTGv8=", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "dev": true, "optional": true, "requires": { - "nan": "^2.3.0", - "node-pre-gyp": "^0.6.29" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", - "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true, "optional": true }, @@ -2012,162 +2340,53 @@ "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, - "optional": true - }, "aproba": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.1.tgz", - "integrity": "sha1-ldNgDwdxCqDpKYxyatXs8urLq6s=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true, "optional": true }, "are-we-there-yet": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.2.tgz", - "integrity": "sha1-gORw6VoIR5T+GJkmLFZnxuiN4bM=", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", "dev": true, "optional": true, "requires": { "delegates": "^1.0.0", - "readable-stream": "^2.0.0 || ^1.1.13" + "readable-stream": "^2.0.6" } }, - "asn1": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", - "dev": true, - "optional": true - }, "balanced-match": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", - "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", - "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "block-stream": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "boom": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", - "dev": true, - "requires": { - "hoek": "2.x.x" - } - }, "brace-expansion": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.6.tgz", - "integrity": "sha1-cZfX6qm4fmSDkOph/GbIRCdCDfk=", + "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": "^0.4.1", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", - "dev": true - }, - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", "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" - } - }, "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 }, - "combined-stream": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true, - "optional": true, - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2184,60 +2403,26 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", - "dev": true, - "optional": true, - "requires": { - "boom": "2.x.x" - } - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } + "optional": true }, "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "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": "0.7.1" + "ms": "2.0.0" } }, "deep-extend": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.1.tgz", - "integrity": "sha1-7+QRPQgIX05vlod1mBD4B0aeIlM=", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", "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", @@ -2245,89 +2430,34 @@ "dev": true, "optional": true }, - "ecc-jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", - "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "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, - "optional": true - }, - "extend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.0.tgz", - "integrity": "sha1-WkdDU7nzNT3dgXbf03uRyDpG8dQ=", - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=", - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "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 }, - "form-data": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.2.tgz", - "integrity": "sha1-icNTQAi5fq2ky7FX1Y9vXfAl6uQ=", + "fs-minipass": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", "dev": true, "optional": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.12" + "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fstream": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.10.tgz", - "integrity": "sha1-YE6Kkv4m/9n2+uMDmdSYThqyKCI=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/fstream-ignore/-/fstream-ignore-1.0.5.tgz", - "integrity": "sha1-nDHa40dnAY/h0kmyTa2mfQktoQU=", "dev": true, - "optional": true, - "requires": { - "fstream": "^1.0.0", - "inherits": "2", - "minimatch": "^3.0.0" - } + "optional": true }, "gauge": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.3.tgz", - "integrity": "sha1-HCOFX5YvF7OtPQ3HRD8wRULt/gk=", + "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": { @@ -2341,92 +2471,21 @@ "wide-align": "^1.1.0" } }, - "generate-function": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", - "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", - "dev": true, - "optional": true - }, - "generate-object-property": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", - "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true, - "optional": true, - "requires": { - "is-property": "^1.0.0" - } - }, - "getpass": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.6.tgz", - "integrity": "sha1-KD/9n8ElaECHUxHBtg6MQBhxEOY=", - "dev": true, - "optional": true, - "requires": { - "assert-plus": "^1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "optional": true - } - } - }, "glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", - "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, + "optional": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.2", + "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true, - "optional": true - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "dev": true, - "optional": true, - "requires": { - "chalk": "^1.1.1", - "commander": "^2.9.0", - "is-my-json-valid": "^2.12.4", - "pinkie-promise": "^2.0.0" - } - }, - "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, - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", @@ -2434,35 +2493,24 @@ "dev": true, "optional": true }, - "hawk": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "iconv-lite": { + "version": "0.4.21", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.21.tgz", + "integrity": "sha512-En5V9za5mBt2oUA03WGD3TwDv0MKAruqsuxstbMUZaj9W9k/m1CV/9py3l0L5kw9Bln8fdHQmzHSYtvpvTLpKw==", "dev": true, "optional": true, "requires": { - "boom": "2.x.x", - "cryptiles": "2.x.x", - "hoek": "2.x.x", - "sntp": "1.x.x" + "safer-buffer": "^2.1.0" } }, - "hoek": { - "version": "2.16.3", - "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", "dev": true, "optional": true, "requires": { - "assert-plus": "^0.2.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "minimatch": "^3.0.4" } }, "inflight": { @@ -2470,9 +2518,10 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, + "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2482,9 +2531,9 @@ "dev": true }, "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true, "optional": true }, @@ -2494,129 +2543,51 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" - } - }, - "is-my-json-valid": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.15.0.tgz", - "integrity": "sha1-k27do8o8IR/ZjzstPgjaQ/eykVs=", - "dev": true, - "optional": true, - "requires": { - "generate-function": "^2.0.0", - "generate-object-property": "^1.1.0", - "jsonpointer": "^4.0.0", - "xtend": "^4.0.0" + "number-is-nan": "^1.0.0" } }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", - "dev": true, - "optional": true - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true, - "optional": true - }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "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, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jodid25519/-/jodid25519-1.0.2.tgz", - "integrity": "sha1-BtSRIlUJNBlHfUJWM2BuDpB4KWc=", - "dev": true, - "optional": true, - "requires": { - "jsbn": "~0.1.0" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, - "optional": 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, - "optional": 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, "optional": true }, - "jsonpointer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", - "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.3.1.tgz", - "integrity": "sha1-KnJW9wQSop7jZwqspiWZTE3P8lI=", + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, - "optional": true, "requires": { - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" + "brace-expansion": "^1.1.7" } }, - "mime-db": { - "version": "1.26.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.26.0.tgz", - "integrity": "sha1-6v/NDk/Gk1z4E02iRuLmw1MFrf8=", + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, - "mime-types": { - "version": "2.1.14", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.14.tgz", - "integrity": "sha1-9+99l1g/yvO30oK2+LVnnaselO4=", + "minipass": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", + "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", "dev": true, "requires": { - "mime-db": "~1.26.0" + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" } }, - "minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "minizlib": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", + "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", "dev": true, + "optional": true, "requires": { - "brace-expansion": "^1.0.0" + "minipass": "^2.2.1" } }, - "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", @@ -2627,50 +2598,82 @@ } }, "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true, "optional": true }, + "needle": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.2.0.tgz", + "integrity": "sha512-eFagy6c+TYayorXw/qtAdSvaUpEbBsDwDyxYFgLZ0lTojfH7K+OdBqAF7TAFwDokJaGpubpSGG0wO3iC0XPi8w==", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, "node-pre-gyp": { - "version": "0.6.33", - "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.6.33.tgz", - "integrity": "sha1-ZArFUZj2qSWXLgwWxKwmoDTV7Mk=", + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.0.tgz", + "integrity": "sha512-G7kEonQLRbcA/mOoFoxvlMrw6Q6dPf92+t/l0DFSMuSlDoWaI9JWIyPwK0jyE1bph//CUEL65/Fz1m2vJbmjQQ==", "dev": true, "optional": true, "requires": { - "mkdirp": "~0.5.1", - "nopt": "~3.0.6", - "npmlog": "^4.0.1", - "rc": "~1.1.6", - "request": "^2.79.0", - "rimraf": "~2.5.4", - "semver": "~5.3.0", - "tar": "~2.2.1", - "tar-pack": "~3.3.0" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, "nopt": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz", + "integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==", + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz", + "integrity": "sha512-AQC0Dyhzn4EiYEfIUjCdMl0JJ61I2ER9ukf/sLxJUcZHfo+VyEfz2rMJgLZSS1v30OxPQe1cN0LZA1xbcaVfWA==", "dev": true, "optional": true, "requires": { - "abbrev": "1" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.0.2.tgz", - "integrity": "sha1-0DlQ4OeM4VJ7om0qdZLpNIrD518=", + "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.1", + "gauge": "~2.7.3", "set-blocking": "~2.0.0" } }, @@ -2680,13 +2683,6 @@ "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", "dev": true }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -2700,60 +2696,56 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, - "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 + "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 }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "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, "optional": true }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "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": { - "pinkie": "^2.0.0" + "os-homedir": "^1.0.0", + "os-tmpdir": "^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 - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "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, "optional": true }, - "qs": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.1.tgz", - "integrity": "sha1-kYwLO802Z5dyuvE1say0wWUe150=", + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", "dev": true, "optional": true }, "rc": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.1.7.tgz", - "integrity": "sha1-xepWS7B6/5/TpbMukGwdOmWUD+o=", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz", + "integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==", "dev": true, "optional": true, "requires": { - "deep-extend": "~0.4.0", + "deep-extend": "^0.5.1", "ini": "~1.3.0", "minimist": "^1.2.0", "strip-json-comments": "~2.0.1" @@ -2769,63 +2761,55 @@ } }, "readable-stream": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.2.tgz", - "integrity": "sha1-qeb+w8fdqF+LsbO6cChgRVb8gl4=", + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "optional": true, "requires": { - "buffer-shims": "^1.0.0", "core-util-is": "~1.0.0", - "inherits": "~2.0.1", + "inherits": "~2.0.3", "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", "util-deprecate": "~1.0.1" } }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "optional": true, "requires": { - "aws-sign2": "~0.6.0", - "aws4": "^1.2.1", - "caseless": "~0.11.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.0", - "forever-agent": "~0.6.1", - "form-data": "~2.1.1", - "har-validator": "~2.0.6", - "hawk": "~3.1.3", - "http-signature": "~1.1.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.7", - "oauth-sign": "~0.8.1", - "qs": "~6.3.0", - "stringstream": "~0.0.4", - "tough-cookie": "~2.3.0", - "tunnel-agent": "~0.4.1", - "uuid": "^3.0.0" + "glob": "^7.0.5" } }, - "rimraf": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz", - "integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=", + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, - "requires": { - "glob": "^7.0.5" - } + "optional": 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 }, "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", "dev": true, "optional": true }, @@ -2843,66 +2827,26 @@ "dev": true, "optional": true }, - "sntp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", - "dev": true, - "optional": true, - "requires": { - "hoek": "2.x.x" - } - }, - "sshpk": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.10.2.tgz", - "integrity": "sha1-1agEziJpVRVjjnmNviMnPeBwpfo=", - "dev": true, - "optional": 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", - "jodid25519": "^1.0.0", - "jsbn": "~0.1.0", - "tweetnacl": "~0.14.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "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, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "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 - }, - "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "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, - "optional": true + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } }, "strip-ansi": { "version": "3.0.1", @@ -2910,7 +2854,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -2920,131 +2864,37 @@ "dev": true, "optional": true }, - "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 - }, "tar": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", - "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.2", - "inherits": "2" - } - }, - "tar-pack": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/tar-pack/-/tar-pack-3.3.0.tgz", - "integrity": "sha1-MJMYFkGPVa/E0hd1r91nIM7kXa4=", - "dev": true, - "optional": true, - "requires": { - "debug": "~2.2.0", - "fstream": "~1.0.10", - "fstream-ignore": "~1.0.5", - "once": "~1.3.3", - "readable-stream": "~2.1.4", - "rimraf": "~2.5.1", - "tar": "~2.2.1", - "uid-number": "~0.0.6" - }, - "dependencies": { - "once": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", - "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", - "dev": true, - "optional": true, - "requires": { - "wrappy": "1" - } - }, - "readable-stream": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", - "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=", - "dev": true, - "optional": true, - "requires": { - "buffer-shims": "^1.0.0", - "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" - } - } - } - }, - "tough-cookie": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", + "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", "dev": true, "optional": true, "requires": { - "punycode": "^1.4.1" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true, - "optional": true - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz", - "integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=", - "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 - }, - "uuid": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.0.1.tgz", - "integrity": "sha1-ZUS7ot/ajBzxfmKaOjBeK7H+5sE=", "dev": true, "optional": true }, - "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=", - "dev": true, - "optional": true, - "requires": { - "extsprintf": "1.0.2" - } - }, "wide-align": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.0.tgz", - "integrity": "sha1-QO3egCpx/qHwcNo+YtzaLnrdlq0=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "dev": true, "optional": true, "requires": { - "string-width": "^1.0.1" + "string-width": "^1.0.2" } }, "wrappy": { @@ -3053,101 +2903,152 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true, - "optional": true + "yallist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", + "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", + "dev": true } } }, "function-bind": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "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-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "get-stream": { + "version": "3.0.0", + "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", "dev": true, "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "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": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "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": "^2.0.0" + "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" + } + } } }, + "global-modules-path": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/global-modules-path/-/global-modules-path-2.3.1.tgz", + "integrity": "sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg==", + "dev": true + }, "globals": { - "version": "9.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-9.17.0.tgz", - "integrity": "sha1-DAymltm5u2lNLlRwvTd3fKrVAoY=", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.9.0.tgz", + "integrity": "sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg==", "dev": true }, "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", "dev": true }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "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-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, - "handle-thing": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", - "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", "dev": true }, - "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "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": { - "function-bind": "^1.0.2" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "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": { - "ansi-regex": "^2.0.0" + "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" + } + } } }, - "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 - }, "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "^2.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash-sum": { @@ -3157,18 +3058,19 @@ "dev": true }, "hash.js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.0.3.tgz", - "integrity": "sha1-EzL/ABVsCg/92CNgE9B7d6BFFXM=", + "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.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hmac-drbg": { @@ -3182,119 +3084,107 @@ "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" - } + "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 }, - "hosted-git-info": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", + "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 }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "icss-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.0.0.tgz", + "integrity": "sha512-bA/xGiwWM17qjllIs9X/y0EjsB7e0AV08F3OL8UPsoNkNRibIuu8f1eKTnQ8QO1DteKKTxTUAn+IEWUToIwGOA==", "dev": true, "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "postcss": "^7.0.5" } }, - "html-comment-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", - "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", - "dev": true - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "ieee754": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", "dev": true }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true }, - "http-errors": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", - "dev": true, - "requires": { - "depd": "1.1.0", - "inherits": "2.0.3", - "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" - } - }, - "http-proxy": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", - "dev": true, - "requires": { - "eventemitter3": "1.x.x", - "requires-port": "1.x.x" - } - }, - "http-proxy-middleware": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", - "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, "requires": { - "http-proxy": "^1.16.2", - "is-glob": "^3.1.0", - "lodash": "^4.17.2", - "micromatch": "^2.3.11" + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" }, "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "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.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "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" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "dev": true }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "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": { - "is-extglob": "^2.1.0" + "find-up": "^3.0.0" } } } }, - "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", - "dev": true - }, - "icss-replace-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.0.2.tgz", - "integrity": "sha1-ywtgVOs69u3Jqx1i0Bkz4tTIv6U=", - "dev": true - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "indexes-of": { @@ -3309,56 +3199,62 @@ "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", "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.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, - "ini": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", - "dev": true - }, "interpret": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", "dev": true }, "invariant": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "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 - }, - "ipaddr.js": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.3.0.tgz", - "integrity": "sha1-HgOlL9rYOou7KyXL9JmLTP/NPew=", - "dev": true - }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", "dev": true }, - "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-accessor-descriptor": { + "version": "0.1.6", + "resolved": "http://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-binary-path": { "version": "1.0.1", @@ -3370,39 +3266,60 @@ } }, "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "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-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "http://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "builtin-modules": "^1.0.0" + "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-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.2", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.2.tgz", - "integrity": "sha1-LBMjg/ORmfjtwmjKAbmwB9IFzE0=", + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": 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=", + "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-primitive": "^2.0.0" + "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-extendable": { @@ -3411,85 +3328,90 @@ "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "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-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-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "is-extglob": "^2.1.1" } }, - "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=", + "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": { - "number-is-nan": "^1.0.0" + "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-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "is-obj": { + "version": "1.0.1", + "resolved": "http://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "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": { - "is-extglob": "^1.0.0" + "isobject": "^3.0.1" } }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "kind-of": "^3.0.2" + "has": "^1.0.1" } }, - "is-plain-obj": { + "is-stream": { "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-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": 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 - }, - "is-svg": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", - "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", "dev": true, "requires": { - "html-comment-regex": "^1.1.0" + "has-symbols": "^1.0.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 - }, "is-windows": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.1.tgz", - "integrity": "sha1-MQ23D3QtJZoWo2kgK1GvhCMzENk=", + "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": { @@ -3505,255 +3427,200 @@ "dev": true }, "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" - } - }, - "js-base64": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", - "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, - "js-beautify": { - "version": "1.6.12", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.6.12.tgz", - "integrity": "sha1-eLdZM1BdN22m5aKOm3iH4AlNuLU=", - "dev": true, - "requires": { - "config-chain": "~1.1.5", - "editorconfig": "^0.13.2", - "mkdirp": "~0.5.0", - "nopt": "~3.0.1" - } + "js-levenshtein": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.4.tgz", + "integrity": "sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow==", + "dev": true }, "js-tokens": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=" - }, - "js-yaml": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", - "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^2.6.0" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "jsesc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-loader": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", - "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=", + "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-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" - } - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "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 }, "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "kind-of": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.0.tgz", - "integrity": "sha1-tYq+TVwEStM3JqjBUltIz4kb/wc=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "minimist": "^1.2.0" } }, - "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, "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" - } - }, - "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=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "dev": 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" + "invert-kv": "^2.0.0" } }, "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", + "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", "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=", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "dev": true, "requires": { "big.js": "^3.1.3", "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" + "json5": "^0.5.0" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } } }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "lodash._createcompounder": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz", - "integrity": "sha1-XdLLVTctbnDg4jkvsjBNZjEJEHU=", + "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": { - "lodash.deburr": "^3.0.0", - "lodash.words": "^3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "lodash": { + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true }, - "lodash.camelcase": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", - "integrity": "sha1-kyyLh/ikN3iXxnGXUzKC+Xrqwpg=", - "dev": true, - "requires": { - "lodash._createcompounder": "^3.0.0" - } - }, - "lodash.deburr": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", - "integrity": "sha1-baj1QzSjZqfPTEx2742Aqhs2XtU=", - "dev": true, - "requires": { - "lodash._root": "^3.0.0" - } - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", "dev": true }, + "lodash.merge": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", + "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==" + }, "lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=", "dev": true }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "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==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } }, - "lodash.words": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz", - "integrity": "sha1-TiqGSbwIdFsXxpWxo86P7llmI7M=", + "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": { - "lodash._root": "^3.0.0" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "loose-envify": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "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": { - "js-tokens": "^3.0.0" + "pify": "^3.0.0" } }, - "lru-cache": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz", - "integrity": "sha1-HRdnnAac2l0ECZGgnbwsDbN35V4=", + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" + "p-defer": "^1.0.0" } }, - "macaddress": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", - "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "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" + } + }, "material-colors": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.5.tgz", - "integrity": "sha1-UpJZPmdUyxvMK5gDDk4Najr8nqE=", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz", + "integrity": "sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==", "dev": true }, - "math-expression-evaluator": { - "version": "1.2.17", - "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", - "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", - "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": "4.0.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", + "integrity": "sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA==", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^1.0.0", + "p-is-promise": "^1.1.0" + } }, "memory-fs": { "version": "0.4.1", @@ -3765,43 +3632,48 @@ "readable-stream": "^2.0.1" } }, - "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 - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": 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 + } + } }, "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": 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" + "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.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "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", @@ -3809,30 +3681,21 @@ } }, "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", "dev": true }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", + "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 }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "dev": true, - "requires": { - "mime-db": "~1.27.0" - } - }, "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "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": { @@ -3842,106 +3705,180 @@ "dev": true }, "minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", + "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.0.0" + "brace-expansion": "^1.1.7" } }, "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "version": "1.2.0", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true }, + "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.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "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.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": 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" } }, "ms": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz", - "integrity": "sha1-cIFVpeROM/X9D8U+gdDUCpG+H/8=", + "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 }, "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.1.tgz", + "integrity": "sha512-iji6k87OSXa0CcrLl9z+ZiYSuR2o+c0bGuNmXdrhTQTakxytAFsC56SArGYoiHlJlFoHSnvmhpceZJaXkVuOtA==", "dev": true, "optional": true }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "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" + } + }, + "neo-async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", + "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-libs-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", - "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "dev": true, "requires": { "assert": "^1.1.1", - "browserify-zlib": "^0.1.4", + "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": "^1.0.0", - "https-browserify": "0.0.1", - "os-browserify": "^0.2.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "^0.11.0", + "process": "^0.11.10", "punycode": "^1.2.4", "querystring-es3": "^0.2.0", - "readable-stream": "^2.0.5", + "readable-stream": "^2.3.3", "stream-browserify": "^2.0.1", - "stream-http": "^2.3.1", - "string_decoder": "^0.10.25", - "timers-browserify": "^2.0.2", + "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.10.3", "vm-browserify": "0.0.4" }, "dependencies": { - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": 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.3.8", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", + "node-releases": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.1.tgz", + "integrity": "sha512-2UXrBr6gvaebo5TNF84C66qyJJ6r0kxBObgZIDX3D3/mt1ADKiHux3NJPWisq0wxvJJdkjECH+9IIKYViKj71Q==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "semver": "^5.3.0" } }, "normalize-path": { @@ -3953,141 +3890,175 @@ "remove-trailing-separator": "^1.0.1" } }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true - }, - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "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": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" + "path-key": "^2.0.0" } }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": 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 }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "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-keys": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", + "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", "dev": true }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "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.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.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": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "isobject": "^3.0.1" } }, - "obuf": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", - "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "ee-first": "1.1.1" + "wrappy": "1" } }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "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 }, - "opn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", - "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "os-locale": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", + "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", "dev": true, "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" + "execa": "^0.10.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, - "original": { + "p-defer": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", - "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", - "dev": true, - "requires": { - "url-parse": "1.0.x" - }, - "dependencies": { - "url-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", - "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", - "dev": true, - "requires": { - "querystringify": "0.0.x", - "requires-port": "1.0.x" - } - } - } + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true }, - "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "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=", + "p-is-promise": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", "dev": true }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "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": { - "lcid": "^1.0.0" + "p-try": "^1.0.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=", + "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 }, "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.7.tgz", + "integrity": "sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ==", "dev": true }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "version": "5.1.1", + "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", "dev": true, "requires": { "asn1.js": "^4.0.0", @@ -4097,75 +4068,52 @@ "pbkdf2": "^3.0.3" } }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true, - "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" - } - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, - "requires": { - "error-ex": "^1.2.0" - } - }, - "parseurl": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", + "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.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "resolved": "http://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", "dev": true }, + "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": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, - "requires": { - "pinkie-promise": "^2.0.0" - } + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "resolved": "http://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "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=", + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, - "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, - "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - } + "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 }, "pbkdf2": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -4176,1296 +4124,1286 @@ } }, "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", "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-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", - "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "^1.0.0" + "find-up": "^2.1.0" } }, "popper.js": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.1.tgz", - "integrity": "sha1-uIFeXNpvYvwgQuR2GGSfdYZuZ1M=" + "version": "1.14.6", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.14.6.tgz", + "integrity": "sha512-AGwHGQBKumlk/MDfrSOf0JHhJCImdDMcGNoqKmKkU+68GFazv3CQ6q9r7Ja1sKDZmYWTckY/uLyEznheTDycnA==" }, - "portfinder": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", - "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", - "dev": true, - "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" - }, - "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "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 }, "postcss": { - "version": "5.2.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", - "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.6.tgz", + "integrity": "sha512-Nq/rNjnHFcKgCDDZYO0lNsl6YWe6U7tTy+ESN+PnLxebL8uBtYX59HZqvrj7YLK5UCyll2hqDsJOo3ndzEW8Ug==", "dev": true, "requires": { - "chalk": "^1.1.3", - "js-base64": "^2.1.9", - "source-map": "^0.5.6", - "supports-color": "^3.2.3" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.5.0" }, "dependencies": { - "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" - } + "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 } } }, - "postcss-calc": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", - "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", - "dev": true, - "requires": { - "postcss": "^5.0.2", - "postcss-message-helpers": "^2.0.0", - "reduce-css-calc": "^1.2.6" - } - }, - "postcss-colormin": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", - "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", - "dev": true, - "requires": { - "colormin": "^1.0.5", - "postcss": "^5.0.13", - "postcss-value-parser": "^3.2.3" - } - }, - "postcss-convert-values": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", - "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", - "dev": true, - "requires": { - "postcss": "^5.0.11", - "postcss-value-parser": "^3.1.2" - } - }, - "postcss-discard-comments": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", - "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "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": "^5.0.14" + "postcss": "^7.0.5" } }, - "postcss-discard-duplicates": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", - "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "postcss-modules-local-by-default": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.2.tgz", + "integrity": "sha512-qghHvHeydUBQ3EQic5NjYryZ5jzXzAYxHR7lZQlCNmjGpJtINRyX/ELnh/7fxBBmHNkEzNkq2l5cV6trfidYng==", "dev": true, "requires": { - "postcss": "^5.0.4" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^7.0.6", + "postcss-value-parser": "^3.3.1" } }, - "postcss-discard-empty": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", - "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "postcss-modules-scope": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.0.1.tgz", + "integrity": "sha512-7+6k9c3/AuZ5c596LJx9n923A/j3nF3ormewYBF1RrIQvjvjXe1xE8V8A1KFyFwXbvnshT6FBZFX0k/F1igneg==", "dev": true, "requires": { - "postcss": "^5.0.14" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^7.0.6" } }, - "postcss-discard-overridden": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", - "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "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": { - "postcss": "^5.0.16" + "icss-replace-symbols": "^1.1.0", + "postcss": "^7.0.6" } }, - "postcss-discard-unused": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", - "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", "dev": true, "requires": { - "postcss": "^5.0.14", - "uniqs": "^2.0.0" + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, - "postcss-filter-plugins": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", - "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", - "dev": true, - "requires": { - "postcss": "^5.0.4", - "uniqid": "^4.0.0" - } + "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 }, - "postcss-load-config": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", - "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", - "dev": true, - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0", - "postcss-load-options": "^1.2.0", - "postcss-load-plugins": "^2.3.0" - } + "prettier": { + "version": "1.13.7", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.13.7.tgz", + "integrity": "sha512-KIU72UmYPGk4MujZGYMFwinB7lOf2LsDNGSOC8ufevsrPLISrZbNJlWstRi3m0AMuszbH+EFSQ/r6w56RSPK6w==", + "dev": true }, - "postcss-load-options": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", - "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", - "dev": true, - "requires": { - "cosmiconfig": "^2.1.0", - "object-assign": "^4.1.0" - } + "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 }, - "postcss-load-plugins": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", - "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", - "dev": true, - "requires": { - "cosmiconfig": "^2.1.1", - "object-assign": "^4.1.0" - } + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true }, - "postcss-merge-idents": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", - "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", - "dev": true, - "requires": { - "has": "^1.0.1", - "postcss": "^5.0.10", - "postcss-value-parser": "^3.1.1" - } + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true }, - "postcss-merge-longhand": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", - "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", - "dev": true, - "requires": { - "postcss": "^5.0.4" - } + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true }, - "postcss-merge-rules": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", - "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", - "dev": true, - "requires": { - "browserslist": "^1.5.2", - "caniuse-api": "^1.5.2", - "postcss": "^5.0.4", - "postcss-selector-parser": "^2.2.2", - "vendors": "^1.0.0" - } + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true }, - "postcss-message-helpers": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", - "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, - "postcss-minify-font-values": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", - "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "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": { - "object-assign": "^4.0.1", - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" + "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" } }, - "postcss-minify-gradients": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", - "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "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": { - "postcss": "^5.0.12", - "postcss-value-parser": "^3.3.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "postcss-minify-params": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", - "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.2", - "postcss-value-parser": "^3.0.2", - "uniqs": "^2.0.0" + "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" + } + } } }, - "postcss-minify-selectors": { + "punycode": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", - "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", - "dev": true, - "requires": { - "alphanum-sort": "^1.0.2", - "has": "^1.0.1", - "postcss": "^5.0.14", - "postcss-selector-parser": "^2.0.0" - } - }, - "postcss-modules-extract-imports": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.1.tgz", - "integrity": "sha1-j7P++abdBCDT9tQ1PPH/c/Kyo0E=", - "dev": true, - "requires": { - "postcss": "^5.0.4" - } - }, - "postcss-modules-local-by-default": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.1.1.tgz", - "integrity": "sha1-KaEGc/o30ZJRJlyiujFQ2QQOtM4=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.6.0", - "postcss": "^5.0.4" - } + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, - "postcss-modules-scope": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.0.2.tgz", - "integrity": "sha1-/5dzleXgYgLXNiKQuIsejNBJ3ik=", - "dev": true, - "requires": { - "css-selector-tokenizer": "^0.6.0", - "postcss": "^5.0.4" - } + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true }, - "postcss-modules-values": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.2.2.tgz", - "integrity": "sha1-8OfUdv4e2IxeTH+XUzo+dyrZTKE=", - "dev": true, - "requires": { - "icss-replace-symbols": "^1.0.2", - "postcss": "^5.0.14" - } + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true }, - "postcss-normalize-charset": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", - "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "dev": true, "requires": { - "postcss": "^5.0.5" + "safe-buffer": "^5.1.0" } }, - "postcss-normalize-url": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", - "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "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": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^1.4.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, - "postcss-ordered-values": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", - "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "readable-stream": { + "version": "2.3.6", + "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.1" + "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" } }, - "postcss-reduce-idents": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", - "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "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, "requires": { - "postcss": "^5.0.4", - "postcss-value-parser": "^3.0.2" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, - "postcss-reduce-initial": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", - "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", - "dev": true, - "requires": { - "postcss": "^5.0.4" - } + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true }, - "postcss-reduce-transforms": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", - "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "regenerate-unicode-properties": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz", + "integrity": "sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw==", "dev": true, "requires": { - "has": "^1.0.1", - "postcss": "^5.0.8", - "postcss-value-parser": "^3.0.1" + "regenerate": "^1.4.0" } }, - "postcss-selector-parser": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", - "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "regenerator-transform": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.13.3.tgz", + "integrity": "sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA==", "dev": true, "requires": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "private": "^0.1.6" } }, - "postcss-svgo": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", - "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "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": { - "is-svg": "^2.0.0", - "postcss": "^5.0.14", - "postcss-value-parser": "^3.2.3", - "svgo": "^0.7.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, - "postcss-unique-selectors": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", - "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "regexpu-core": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.4.0.tgz", + "integrity": "sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA==", "dev": true, "requires": { - "alphanum-sort": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^7.0.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.0.2" } }, - "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", "dev": true }, - "postcss-zindex": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", - "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", "dev": true, "requires": { - "has": "^1.0.1", - "postcss": "^5.0.4", - "uniqs": "^2.0.0" + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "http://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "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 - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "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 }, - "private": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", - "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", + "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 }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "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 }, - "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=", + "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 }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "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 }, - "proxy-addr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.4.tgz", - "integrity": "sha1-J+VF9pYKRKYn2bREZ+NcG2tM4vM=", + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "forwarded": "~0.1.0", - "ipaddr.js": "1.3.0" + "path-parse": "^1.0.5" } }, - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "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" + "resolve-from": "^3.0.0" } }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, - "q": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", + "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 }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "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 }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "glob": "^7.0.5" } }, - "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 - }, - "querystringify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", - "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", - "dev": true - }, - "randomatic": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.6.tgz", - "integrity": "sha1-EQ3Kv/OX6dz/fAeJzMCkmt8exbs=", + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "is-number": "^2.0.2", - "kind-of": "^3.0.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, - "randombytes": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.3.tgz", - "integrity": "sha1-Z0yZdgkBw8QRJ3GjHlIdw0nMCew=", - "dev": true + "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" + } }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "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 }, - "read-pkg": { + "safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "resolved": "http://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "ret": "~0.1.10" } }, - "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=", + "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": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, - "readable-stream": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.9.tgz", - "integrity": "sha1-z3jsb0ptHrQ9JkiMrJfwQudLf8g=", - "dev": true, - "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" - } + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "dev": true + }, + "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.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "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" + } + } } }, - "reduce-css-calc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", - "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "balanced-match": "^0.4.2", - "math-expression-evaluator": "^1.2.14", - "reduce-function-call": "^1.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, - "reduce-function-call": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", - "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "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": { - "balanced-match": "^0.4.2" + "shebang-regex": "^1.0.0" } }, - "regenerate": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", + "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 }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, - "regenerator-transform": { - "version": "0.9.11", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", - "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", + "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": { - "babel-runtime": "^6.18.0", - "babel-types": "^6.19.0", - "private": "^0.1.6" + "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" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } } }, - "regex-cache": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "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": { - "is-equal-shallow": "^0.1.3", - "is-primitive": "^2.0.0" + "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" + } + } } }, - "regexpu-core": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "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": { - "regenerate": "^1.2.1", - "regjsgen": "^0.2.0", - "regjsparser": "^0.1.4" + "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" + } + } } }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "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 }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "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.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "jsesc": "~0.5.0" + "atob": "^2.1.1", + "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.9", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.9.tgz", + "integrity": "sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "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 } } }, - "remove-trailing-separator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz", - "integrity": "sha1-YV67lq9VlVLUv0BXyENtSGq2PMQ=", + "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 }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "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" + } }, - "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 + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "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" + } + } + } }, - "repeating": { + "stream-browserify": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "resolved": "http://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "is-finite": "^1.0.0" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, - "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": "1.2.1", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", - "dev": true + "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" + } }, - "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 + "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" + } }, - "requires-port": { + "stream-shift": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "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": { - "align-text": "^0.1.1" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, - "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "string_decoder": { + "version": "1.1.1", + "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "hash-base": "^2.0.0", - "inherits": "^2.0.1" + "safe-buffer": "~5.1.0" } }, - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true + "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" + } }, - "sax": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.2.tgz", - "integrity": "sha1-/YYxojvHgmvvXYcb24c3jJVkeCg=", + "strip-eof": { + "version": "1.0.0", + "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "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" + } }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "tapable": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.1.tgz", + "integrity": "sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA==", "dev": true }, - "send": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.15.1.tgz", - "integrity": "sha1-igI1TCbm9cynAAZfXwzeupDse18=", - "dev": true, - "requires": { - "debug": "2.6.1", - "depd": "~1.1.0", - "destroy": "~1.0.4", - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "etag": "~1.8.0", - "fresh": "0.5.0", - "http-errors": "~1.6.1", - "mime": "1.3.4", - "ms": "0.7.2", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.3.1" + "terser": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.11.0.tgz", + "integrity": "sha512-5iLMdhEPIq3zFWskpmbzmKwMQixKmTYwY3Ox9pjtSklBLnHiuQ0GKJLhL1HSYtyffHM3/lDIFBnb82m9D7ewwQ==", + "dev": true, + "requires": { + "commander": "~2.17.1", + "source-map": "~0.6.1", + "source-map-support": "~0.5.6" }, "dependencies": { - "debug": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.1.tgz", - "integrity": "sha1-eYVQkLosTjEVzH2HaUkdWPBJE1E=", - "dev": true, - "requires": { - "ms": "0.7.2" - } - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "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 } } }, - "serve-index": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.8.0.tgz", - "integrity": "sha1-fF2WwT+xMRAfk8HFd0+FFqHnjTs=", - "dev": true, - "requires": { - "accepts": "~1.3.3", - "batch": "0.5.3", - "debug": "~2.2.0", - "escape-html": "~1.0.3", - "http-errors": "~1.5.0", - "mime-types": "~2.1.11", - "parseurl": "~1.3.1" + "terser-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", + "dev": true, + "requires": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.8.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" }, "dependencies": { - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "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": { - "ms": "0.7.1" + "locate-path": "^3.0.0" } }, - "http-errors": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz", - "integrity": "sha1-eIwNLB3iyBuebowBhDtrl+uSB1A=", + "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": { - "inherits": "2.0.3", - "setprototypeof": "1.0.2", - "statuses": ">= 1.3.1 < 2" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "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" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", "dev": true }, - "setprototypeof": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz", - "integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg=", + "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" + } + }, + "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 } } }, - "serve-static": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.1.tgz", - "integrity": "sha1-dEOpZePO1kes61Y5+ga/TRu+ADk=", - "dev": true, - "requires": { - "encodeurl": "~1.0.1", - "escape-html": "~1.0.3", - "parseurl": "~1.3.1", - "send": "0.15.1" - } - }, - "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-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 - }, - "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.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true - }, - "sha.js": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "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": { - "inherits": "^2.0.1" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "setimmediate": "^1.0.4" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", "dev": true }, - "sigmund": { + "to-arraybuffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "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 }, - "sockjs": { - "version": "0.3.18", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", - "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", - "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^2.0.2" - } - }, - "sockjs-client": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.2.tgz", - "integrity": "sha1-8CEqhVDkyUaMjM6u79LjSTwDOtU=", + "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": { - "debug": "^2.2.0", - "eventsource": "0.1.6", - "faye-websocket": "~0.11.0", - "inherits": "^2.0.1", - "json3": "^3.3.2", - "url-parse": "^1.1.1" + "kind-of": "^3.0.2" }, "dependencies": { - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "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": { - "websocket-driver": "0.6.5" + "is-buffer": "^1.1.5" } } } }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } - }, - "source-list-map": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", - "dev": true - }, - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true - }, - "source-map-support": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "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": { - "source-map": "^0.5.6" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "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": { - "spdx-license-ids": "^1.0.2" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true - }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "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 }, - "spdy": { - "version": "3.4.4", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.4.tgz", - "integrity": "sha1-4EBkB8qQ/wG1U+sBNQVEJkn1qBk=", - "dev": true, - "requires": { - "debug": "^2.2.0", - "handle-thing": "^1.2.4", - "http-deceiver": "^1.2.4", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.15" - } - }, - "spdy-transport": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.18.tgz", - "integrity": "sha1-Q/ycVr4szMErs+J1SqlxFU6DbqY=", - "dev": true, - "requires": { - "debug": "^2.2.0", - "hpack.js": "^2.1.6", - "obuf": "^1.1.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.4.0" - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "tslib": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", + "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", "dev": true }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "tty-browserify": { + "version": "0.0.0", + "resolved": "http://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", "dev": true }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "stream-http": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.1.tgz", - "integrity": "sha1-VGpRdBrVprB+njGwsQRBqRffUoo=", - "dev": true, - "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.2.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "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=", + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "uglify-js": { + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", + "integrity": "sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "commander": "~2.17.1", + "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 + } } }, - "string_decoder": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.0.tgz", - "integrity": "sha1-8G9BFXtmTYYGn4S9vcmw2KsoFmc=", - "dev": true, - "requires": { - "buffer-shims": "~1.0.0" + "uglifyjs-webpack-plugin": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-2.0.1.tgz", + "integrity": "sha512-1HhCHkOB6wRCcv7htcz1QRPVbWPEY074RP9vzt/X0LF4xXm9l4YGd0qja7z88abDixQlnVwBjXsTBs+Xsn/eeQ==", + "dev": true, + "requires": { + "cacache": "^11.2.0", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-js": "^3.0.0", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.0.0.tgz", + "integrity": "sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^3.0.0" + } + }, + "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.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "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" + } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true + }, + "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" + } + }, + "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 + } } }, - "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" - } + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "dev": true, "requires": { - "is-utf8": "^0.2.0" + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "unicode-match-property-value-ecmascript": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz", + "integrity": "sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ==", "dev": true }, - "svgo": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", - "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", - "dev": true, - "requires": { - "coa": "~1.0.1", - "colors": "~1.1.2", - "csso": "~2.3.1", - "js-yaml": "~3.7.0", - "mkdirp": "~0.5.1", - "sax": "~1.2.1", - "whet.extend": "~0.9.9" - } - }, - "tapable": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz", - "integrity": "sha1-IGvo4YiGC1FEJTdebxrom/sB/Y0=", + "unicode-property-aliases-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz", + "integrity": "sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg==", "dev": true }, - "timers-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", - "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "setimmediate": "^1.0.4" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "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" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } } }, - "tinycolor2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.1.tgz", - "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", - "dev": true - }, - "to-arraybuffer": { + "uniq": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "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=", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, - "tooltip.js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tooltip.js/-/tooltip.js-1.2.0.tgz", - "integrity": "sha1-ixZILwQ5f0+dc4eEPczxhokMiGA=", + "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": { - "popper.js": "^1.0.2" + "unique-slug": "^2.0.0" } }, - "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 - }, - "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 - }, - "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "unique-slug": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", "dev": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.15" + "imurmurhash": "^0.1.4" } }, - "uglify-js": { - "version": "2.8.27", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz", - "integrity": "sha1-R3h/kSsPJC5bmENDvo416V9pTJw=", + "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": { - "source-map": "~0.5.1", - "uglify-to-browserify": "~1.0.0", - "yargs": "~3.10.0" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "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": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", - "window-size": "0.1.0" + "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 } } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true - }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "upath": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", "dev": true }, - "uniqid": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", - "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { - "macaddress": "^0.2.8" + "punycode": "^2.1.0" } }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", "dev": true }, "url": { @@ -5487,53 +5425,29 @@ } }, "url-loader": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.8.tgz", - "integrity": "sha1-uRg7GAHg+EdxhnNnMEC8ncHHFcU=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", + "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", "dev": true, "requires": { - "loader-utils": "^1.0.2", - "mime": "1.3.x" - }, - "dependencies": { - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "3.1.3", - "emojis-list": "2.1.0", - "json5": "0.5.1" - } - } + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" } }, - "url-parse": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.8.tgz", - "integrity": "sha1-emWzqNV6Hoava04iduNHdBZ8AVY=", - "dev": true, - "requires": { - "querystringify": "0.0.x", - "requires-port": "1.0.x" - } + "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 }, "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "dev": true, "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } + "inherits": "2.0.3" } }, "util-deprecate": { @@ -5542,51 +5456,35 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "utils-merge": { + "util.promisify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", - "dev": true - }, - "uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", - "dev": true - }, - "v-tooltip": { - "version": "2.0.0-beta.1", - "resolved": "https://registry.npmjs.org/v-tooltip/-/v-tooltip-2.0.0-beta.1.tgz", - "integrity": "sha1-nQmk6pYFTr/iaL8LUMeEX9XWS1s=", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, "requires": { - "tooltip.js": "^1.1.2" + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" } }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "dev": true, + "v-tooltip": { + "version": "2.0.0-rc.33", + "resolved": "https://registry.npmjs.org/v-tooltip/-/v-tooltip-2.0.0-rc.33.tgz", + "integrity": "sha1-ePfY6cNCZWIr5lup3HjGfx3AK3M=", "requires": { - "spdx-correct": "~1.0.0", - "spdx-expression-parse": "~1.0.0" + "lodash.merge": "^4.6.0", + "popper.js": "^1.12.9", + "vue-resize": "^0.4.3" } }, - "vary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", - "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=", - "dev": true - }, - "vendors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", - "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "v8-compile-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz", + "integrity": "sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw==", "dev": true }, "vm-browserify": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "resolved": "http://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", "dev": true, "requires": { @@ -5594,103 +5492,76 @@ } }, "vue": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/vue/-/vue-2.3.3.tgz", - "integrity": "sha1-0eqo/eUkBzWkVj508sf+rZy7Bkw=" + "version": "2.5.21", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.5.21.tgz", + "integrity": "sha512-Aejvyyfhn0zjVeLvXd70h4hrE4zZDx1wfZqia6ekkobLmUZ+vNFQer53B4fu0EjWBSiqApxPejzkO1Znt3joxQ==" }, "vue-clickaway": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vue-clickaway/-/vue-clickaway-2.1.0.tgz", - "integrity": "sha1-OS3nZHUfMc0geH6Ps6bjGYJfjU8=", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/vue-clickaway/-/vue-clickaway-2.2.2.tgz", + "integrity": "sha512-25SpjXKetL06GLYoLoC8pqAV6Cur9cQ//2g35GRFBV4FgoljbZZjTINR8g2NuVXXDMLSUXaKx5dutgO4PaDE7A==", "requires": { "loose-envify": "^1.2.0" } }, "vue-color": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/vue-color/-/vue-color-2.0.9.tgz", - "integrity": "sha1-zBL+7ZG0ZMJbnchlxCKwGB9IHNI=", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/vue-color/-/vue-color-2.7.0.tgz", + "integrity": "sha512-fak9oPRL3BsYtakTGmWIS2yNRppRYNlMgGGq78CMH34ipU8fLgi/bT9JiSPcscpdTNLGracuOFuZ8OFeml+SQQ==", "dev": true, "requires": { + "clamp": "^1.0.1", "lodash.throttle": "^4.0.0", "material-colors": "^1.0.0", "tinycolor2": "^1.1.2" } }, "vue-hot-reload-api": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.1.0.tgz", - "integrity": "sha1-nKWKbg35B4VUzhcIaItleHVNht4=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.1.tgz", + "integrity": "sha512-AA86yKZ5uOKz87/q1UpngEXhbRkaYg1b7HMMVRobNV1IVKqZe8oLIzo6iMocVwZXnYitlGwf2k4ZRLOZlS8oPQ==", "dev": true }, "vue-loader": { - "version": "11.3.4", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-11.3.4.tgz", - "integrity": "sha1-ZeEKRM4JLZBuFLvHKYHeyZ6wkNI=", + "version": "15.4.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.4.2.tgz", + "integrity": "sha512-nVV27GNIA9MeoD8yQ3dkUzwlAaAsWeYSWZHsu/K04KCD339lW0Jv2sJWsjj3721SP7sl2lYdPmjcHgkWQSp5bg==", "dev": true, "requires": { - "consolidate": "^0.14.0", + "@vue/component-compiler-utils": "^2.0.0", "hash-sum": "^1.0.2", - "js-beautify": "^1.6.3", "loader-utils": "^1.1.0", - "lru-cache": "^4.0.1", - "postcss": "^5.0.21", - "postcss-load-config": "^1.1.0", - "postcss-selector-parser": "^2.0.0", - "source-map": "^0.5.6", - "vue-hot-reload-api": "^2.0.11", - "vue-style-loader": "^2.0.0", - "vue-template-es2015-compiler": "^1.2.2" - }, - "dependencies": { - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - } + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" } }, + "vue-resize": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-0.4.4.tgz", + "integrity": "sha512-Lb/cnE2N9Y42ZJPw8wpjkpuX5a9ReerWNGcQRcbNCwfCnkHG6++FurNNmLIdU8dcCTH4c5rtTPdxBqFoRMK2cQ==" + }, "vue-ripple-directive": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/vue-ripple-directive/-/vue-ripple-directive-1.0.7.tgz", - "integrity": "sha1-f1sZu7J1sncTDlb6mU6C3/oZqhk=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/vue-ripple-directive/-/vue-ripple-directive-2.0.1.tgz", + "integrity": "sha512-jXZEX6uZpo89wxmdcw02uFpsMBpm1pxjQ60uqghNLQ8H8ju9eon2vE0+vvSWJ1WGCOTEfxGDR4InabJJu5f1GA==", "requires": { "vue": "^2.2.1" } }, "vue-style-loader": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-2.0.5.tgz", - "integrity": "sha1-8O+smS/r4/EuST4zTtsTzSNaPSI=", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", + "integrity": "sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==", "dev": true, "requires": { "hash-sum": "^1.0.2", "loader-utils": "^1.0.2" - }, - "dependencies": { - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, - "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0" - } - } } }, "vue-template-compiler": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.3.3.tgz", - "integrity": "sha1-tbq57FcwnJBrgqeMgaAhedvC9HA=", + "version": "2.5.21", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.5.21.tgz", + "integrity": "sha512-Vmk5Cv7UcmI99B9nXJEkaK262IQNnHp5rJYo+EwYpe2epTAXqcVyExhV6pk8jTkxQK2vRc8v8KmZBAwdmUZvvw==", "dev": true, "requires": { "de-indent": "^1.0.2", @@ -5698,195 +5569,179 @@ } }, "vue-template-es2015-compiler": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.5.2.tgz", - "integrity": "sha1-oKbFDJQdKkq9qWPy9CwzesRQ7pU=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", + "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", "dev": true }, "watchpack": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz", - "integrity": "sha1-fYaTkHsozmAT5/NhCqKhrPB9rYc=", - "dev": true, - "requires": { - "async": "^2.1.2", - "chokidar": "^1.4.3", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", - "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "minimalistic-assert": "^1.0.0" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" } }, "webpack": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-2.6.0.tgz", - "integrity": "sha1-fmUKkoFqv/XbX0MxawuLGbE9dsE=", - "dev": true, - "requires": { - "acorn": "^5.0.0", - "acorn-dynamic-import": "^2.0.0", - "ajv": "^4.7.0", - "ajv-keywords": "^1.1.1", - "async": "^2.1.2", - "enhanced-resolve": "^3.0.0", - "interpret": "^1.0.0", - "json-loader": "^0.5.4", - "json5": "^0.5.1", + "version": "4.27.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.27.1.tgz", + "integrity": "sha512-WArHiLvHrlfyRM8i7f+2SFbr/XbQ0bXqTkPF8JpHOzub5482Y3wx7rEO8stuLGOKOgZJcqcisLhD7LrM/+fVMw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.7.11", + "@webassemblyjs/helper-module-context": "1.7.11", + "@webassemblyjs/wasm-edit": "1.7.11", + "@webassemblyjs/wasm-parser": "1.7.11", + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", "loader-runner": "^2.3.0", - "loader-utils": "^0.2.16", + "loader-utils": "^1.1.0", "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", "node-libs-browser": "^2.0.0", - "source-map": "^0.5.3", - "supports-color": "^3.1.0", - "tapable": "~0.2.5", - "uglify-js": "^2.8.27", - "watchpack": "^1.3.1", - "webpack-sources": "^0.2.3", - "yargs": "^6.0.0" + "schema-utils": "^0.4.4", + "tapable": "^1.1.0", + "terser-webpack-plugin": "^1.1.0", + "watchpack": "^1.5.0", + "webpack-sources": "^1.3.0" }, "dependencies": { - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", "dev": true, "requires": { - "has-flag": "1.0.0" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } } } }, - "webpack-dev-middleware": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.10.2.tgz", - "integrity": "sha1-LiUs4d+wINvaHMs33ybzCrAU29E=", + "webpack-cli": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.1.2.tgz", + "integrity": "sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ==", "dev": true, "requires": { - "memory-fs": "~0.4.1", - "mime": "^1.3.4", - "path-is-absolute": "^1.0.0", - "range-parser": "^1.0.3" - } - }, - "webpack-dev-server": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.4.5.tgz", - "integrity": "sha1-MThM6BE2vhCAtLTN4OubkOVO5s8=", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "chokidar": "^1.6.0", - "compression": "^1.5.2", - "connect-history-api-fallback": "^1.3.0", - "express": "^4.13.3", - "html-entities": "^1.2.0", - "http-proxy-middleware": "~0.17.4", - "opn": "4.0.2", - "portfinder": "^1.0.9", - "serve-index": "^1.7.2", - "sockjs": "0.3.18", - "sockjs-client": "1.1.2", - "spdy": "^3.4.1", - "strip-ansi": "^3.0.0", - "supports-color": "^3.1.1", - "webpack-dev-middleware": "^1.10.2", - "yargs": "^6.0.0" - }, - "dependencies": { - "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" - } - } + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "enhanced-resolve": "^4.1.0", + "global-modules-path": "^2.3.0", + "import-local": "^2.0.0", + "interpret": "^1.1.0", + "loader-utils": "^1.1.0", + "supports-color": "^5.5.0", + "v8-compile-cache": "^2.0.2", + "yargs": "^12.0.2" } }, "webpack-sources": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-0.2.3.tgz", - "integrity": "sha1-F8Yr+vE8cH+dAsR54Nzd6DgGl/s=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { - "source-list-map": "^1.1.1", - "source-map": "~0.5.3" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { - "source-list-map": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-1.1.2.tgz", - "integrity": "sha1-mIkBnRAkzOVc3AaUmDN+9hhqEaE=", + "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-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true, - "requires": { - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz", - "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=", - "dev": true - }, - "whet.extend": { - "version": "0.9.9", - "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", - "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", - "dev": true - }, "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "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-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true - }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } }, "wrap-ansi": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "resolved": "http://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": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": 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, + "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": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", @@ -5894,9 +5749,9 @@ "dev": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yallist": { @@ -5906,60 +5761,78 @@ "dev": true }, "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "version": "12.0.5", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", + "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "dev": true, "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", + "os-locale": "^3.0.0", "require-directory": "^2.1.1", "require-main-filename": "^1.0.1", "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^4.2.0" + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" }, "dependencies": { - "camelcase": { + "find-up": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true + "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" + } }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "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": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", + "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", + "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" } + }, + "p-try": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", + "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", + "dev": true } } }, "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", + "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "dev": true, "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } diff --git a/package.json b/package.json index fcdeaf8..14a0755 100644 --- a/package.json +++ b/package.json @@ -29,28 +29,29 @@ }, "homepage": "https://github.com/PygmySlowLoris/vue-fab#readme", "scripts": { - "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", - "build": "cross-env NODE_ENV=production webpack --progress --hide-modules", - "prepublish": "npm run build" + "dev": "cross-env NODE_ENV=development webpack --mode development --watch", + "build": "cross-env NODE_ENV=production webpack --mode production --progress --hide-modules", + "prepare": "npm run build" }, "dependencies": { - "v-tooltip": "2.0.0-beta.1", - "vue": "^2.2.1", - "vue-clickaway": "^2.1.0", - "vue-ripple-directive": "^1.0.0" + "v-tooltip": "2.0.0-rc.33", + "vue": "^2.5.21", + "vue-clickaway": "^2.2.2", + "vue-ripple-directive": "^2.0.1" }, "devDependencies": { - "babel-core": "^6.0.0", - "babel-loader": "^6.0.0", - "babel-preset-latest": "^6.0.0", - "cross-env": "^3.0.0", - "css-loader": "^0.25.0", - "file-loader": "^0.9.0", - "url-loader": "^0.5.8", - "vue-color": "^2.0.9", - "vue-loader": "^11.1.4", - "vue-template-compiler": "^2.2.1", - "webpack": "^2.2.0", - "webpack-dev-server": "^2.2.0" + "@babel/core": "^7.2.0", + "@babel/preset-env": "^7.2.0", + "babel-loader": "^8.0.4", + "cross-env": "^5.2.0", + "css-loader": "^2.0.1", + "file-loader": "^2.0.0", + "uglifyjs-webpack-plugin": "^2.0.1", + "url-loader": "^1.1.2", + "vue-color": "^2.7.0", + "vue-loader": "^15.4.2", + "vue-template-compiler": "^2.5.21", + "webpack": "^4.27.1", + "webpack-cli": "^3.1.2" } } diff --git a/webpack.config.js b/webpack.config.js index 8957d8d..7788dfc 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,5 +1,7 @@ -var path = require('path') -var webpack = require('webpack') +const path = require('path'); +const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +const VueLoaderPlugin = require('vue-loader/lib/plugin'); +const webpack = require('webpack'); module.exports = { entry: './demo/main.js', @@ -19,6 +21,10 @@ module.exports = { // other vue-loader options go here } }, + { + test: /\.css$/, + loader: 'css-loader' + }, { test: /\.js$/, loader: 'babel-loader', @@ -38,6 +44,23 @@ module.exports = { 'vue$': 'vue/dist/vue.esm.js' } }, + optimization: { + minimizer: [ + new UglifyJsPlugin({ + sourceMap: true, + parallel: 4, + uglifyOptions: { + warnings: false, + compress: { + warnings: false + }, + }, + }) + ] + }, + plugins: [ + new VueLoaderPlugin() + ], devServer: { historyApiFallback: true, noInfo: true @@ -57,12 +80,6 @@ if (process.env.NODE_ENV === 'production') { NODE_ENV: '"production"' } }), - new webpack.optimize.UglifyJsPlugin({ - sourceMap: true, - compress: { - warnings: false - } - }), new webpack.LoaderOptionsPlugin({ minimize: true })