diff --git a/.gitignore b/.gitignore index 0a2c6079e..2354b2392 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ npm-debug.log # temporary files .*.sw[op] .commits.tmp +/nbproject/private/ \ No newline at end of file diff --git a/dist/vis-graph3d.min.js b/dist/vis-graph3d.min.js index 8ad184227..dcf3dcca7 100644 --- a/dist/vis-graph3d.min.js +++ b/dist/vis-graph3d.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.20.1 - * @date 2017-07-02 + * @version 4.20.1a + * @date 2017-08-14 * * @license * Copyright (C) 2011-2017 Almende B.V, http://almende.com @@ -22,13 +22,13 @@ * * Vis.js may be distributed under either license. */ -"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){e.util=n(1),e.DOMutil=n(87),e.DataSet=n(88),e.DataView=n(92),e.Queue=n(91),e.Graph3d=n(93),e.graph3d={Camera:n(101),Filter:n(106),Point2d:n(100),Point3d:n(99),Slider:n(107),StepNumber:n(108)},e.moment=n(82),e.Hammer=n(112),e.keycharm=n(115)},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}var r=n(2),o=i(r),s=n(55),a=i(s),h=n(58),u=i(h),l=n(62),c=i(l),f=n(82),d=n(86);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;t.hasChildNodes()===!0;)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,n,i){if(e==t)return.5;var r=1/(e-t);return Math.max(0,(i-t)*r)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var n=p.exec(t);if(n)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return d.v4()},e.assignAllKeys=function(t,e){for(var n in t)t.hasOwnProperty(n)&&"object"!==(0,c.default)(t[n])&&(t[n]=e)},e.fillIfDefined=function(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var r in t)void 0!==n[r]&&("object"!==(0,c.default)(n[r])?void 0!==n[r]&&null!==n[r]||void 0===t[r]||i!==!0?t[r]=n[r]:delete t[r]:"object"===(0,c.default)(t[r])&&e.fillIfDefined(t[r],n[r],i))},e.protoExtend=function(t,e){for(var n=1;n3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var o=2;o3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var o in i)if(i.hasOwnProperty(o)&&t.indexOf(o)==-1)if(i[o]&&i[o].constructor===Object)void 0===n[o]&&(n[o]={}),n[o].constructor===Object?e.deepExtend(n[o],i[o]):null===i[o]&&void 0!==n[o]&&r===!0?delete n[o]:n[o]=i[o];else if(Array.isArray(i[o])){n[o]=[];for(var s=0;s=0&&(e="DOMMouseScroll"),t.addEventListener(e,n,i)):t.attachEvent("on"+e,n)},e.removeEventListener=function(t,e,n,i){t.removeEventListener?(void 0===i&&(i=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,n,i)):t.detachEvent("on"+e,n)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,n){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":n||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,n,i){return e+e+n+n+i+i});var n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:null},e.overrideOpacity=function(t,n){if(t.indexOf("rgba")!=-1)return t;if(t.indexOf("rgb")!=-1){var i=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+i[0]+","+i[1]+","+i[2]+","+n+")"}var i=e.hexToRGB(t);return null==i?t:"rgba("+i.r+","+i.g+","+i.b+","+n+")"},e.RGBToHex=function(t,e,n){return"#"+((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1)},e.parseColor=function(t){var n;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var i=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(i[0],i[1],i[2])}if(e.isValidHex(t)===!0){var r=e.hexToHSV(t),o={h:r.h,s:.8*r.s,v:Math.min(1,1.02*r.v)},s={h:r.h,s:Math.min(1,1.25*r.s),v:.8*r.v},a=e.HSVToHex(s.h,s.s,s.v),h=e.HSVToHex(o.h,o.s,o.v);n={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else n={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else n={},n.background=t.background||void 0,n.border=t.border||void 0,e.isString(t.highlight)?n.highlight={border:t.highlight,background:t.highlight}:(n.highlight={},n.highlight.background=t.highlight&&t.highlight.background||void 0,n.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?n.hover={border:t.hover,background:t.hover}:(n.hover={},n.hover.background=t.hover&&t.hover.background||void 0,n.hover.border=t.hover&&t.hover.border||void 0);return n},e.RGBToHSV=function(t,e,n){t/=255,e/=255,n/=255;var i=Math.min(t,Math.min(e,n)),r=Math.max(t,Math.max(e,n));if(i==r)return{h:0,s:0,v:i};var o=t==i?e-n:n==i?t-e:n-t,s=t==i?3:n==i?1:5,a=60*(s-o/(r-i))/360,h=(r-i)/r,u=r;return{h:a,s:h,v:u}};var m={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var n=t.split(":"),i=n[0].trim(),r=n[1].trim();e[i]=r}}),e},join:function(t){return(0,u.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,n){var i=m.split(t.style.cssText),r=m.split(n),o=e.extend(i,r);t.style.cssText=m.join(o)},e.removeCssText=function(t,e){var n=m.split(t.style.cssText),i=m.split(e);for(var r in i)i.hasOwnProperty(r)&&delete n[r];t.style.cssText=m.join(n)},e.HSVToRGB=function(t,e,n){var i,r,o,s=Math.floor(6*t),a=6*t-s,h=n*(1-e),u=n*(1-a*e),l=n*(1-(1-a)*e);switch(s%6){case 0:i=n,r=l,o=h;break;case 1:i=u,r=n,o=h;break;case 2:i=h,r=n,o=l;break;case 3:i=h,r=u,o=n;break;case 4:i=l,r=h,o=n;break;case 5:i=n,r=h,o=u}return{r:Math.floor(255*i),g:Math.floor(255*r),b:Math.floor(255*o)}},e.HSVToHex=function(t,n,i){var r=e.HSVToRGB(t,n,i);return e.RGBToHex(r.r,r.g,r.b)},e.hexToHSV=function(t){var n=e.hexToRGB(t);return e.RGBToHSV(n.r,n.g,n.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,n){if("object"==("undefined"==typeof n?"undefined":(0,c.default)(n))){for(var i=(0,a.default)(n),r=0;r0&&e(i,t[r-1])<0;r--)t[r]=t[r-1];t[r]=i}return t},e.mergeOptions=function(t,e,n){var i=(arguments.length>3&&void 0!==arguments[3]&&arguments[3],arguments.length>4&&void 0!==arguments[4]?arguments[4]:{});if(null===e[n])t[n]=(0,a.default)(i[n]);else if(void 0!==e[n])if("boolean"==typeof e[n])t[n].enabled=e[n];else{void 0===e[n].enabled&&(t[n].enabled=!0);for(var r in e[n])e[n].hasOwnProperty(r)&&(t[n][r]=e[n][r])}},e.binarySearchCustom=function(t,e,n,i){for(var r=1e4,o=0,s=0,a=t.length-1;s<=a&&o0)return"before"==i?Math.max(0,h-1):h;if(r(s,e)<0&&r(a,e)>0)return"before"==i?h:Math.min(t.length-1,h+1);r(s,e)<0?c=h+1:f=h-1,l++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var n=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;return n==i&&(i=e.clientWidth),document.body.removeChild(e),n-i},e.topMost=function(t,e){var n=void 0;Array.isArray(e)||(e=[e]);var i=!0,r=!1,s=void 0;try{for(var a,h=(0,o.default)(t);!(i=(a=h.next()).done);i=!0){var u=a.value;if(u){n=u[e[0]];for(var l=1;l=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports={}},function(t,e,n){var i=n(10),r=n(12);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(11);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var i=n(14),r=n(15),o=n(30),s=n(20),a=n(31),h=n(8),u=n(32),l=n(46),c=n(48),f=n(47)("iterator"),d=!([].keys&&"next"in[].keys()),p="@@iterator",m="keys",v="values",y=function(){return this};t.exports=function(t,e,n,g,_,w,x){u(n,e,g);var b,S,T,D=function(t){if(!d&&t in E)return E[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},M=e+" Iterator",k=_==v,O=!1,E=t.prototype,C=E[f]||E[p]||_&&E[_],P=C||D(_),L=_?k?D("entries"):P:void 0,Y="Array"==e?E.entries||C:C;if(Y&&(T=c(Y.call(new t)),T!==Object.prototype&&(l(T,M,!0),i||a(T,f)||s(T,f,y))),k&&C&&C.name!==v&&(O=!0,P=function(){return C.call(this)}),i&&!x||!d&&!O&&E[f]||s(E,f,P),h[e]=P,h[M]=y,_)if(b={values:k?P:D(v),keys:w?P:D(m),entries:L},x)for(S in b)S in E||o(E,S,b[S]);else r(r.P+r.F*(d||O),e,b);return b}},function(t,e){t.exports=!0},function(t,e,n){var i=n(16),r=n(17),o=n(18),s=n(20),a="prototype",h=function(t,e,n){var u,l,c,f=t&h.F,d=t&h.G,p=t&h.S,m=t&h.P,v=t&h.B,y=t&h.W,g=d?r:r[e]||(r[e]={}),_=g[a],w=d?i:p?i[e]:(i[e]||{})[a];d&&(n=e);for(u in n)l=!f&&w&&void 0!==w[u],l&&u in g||(c=l?w[u]:n[u],g[u]=d&&"function"!=typeof w[u]?n[u]:v&&l?o(c,i):y&&w[u]==c?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e[a]=t[a],e}(c):m&&"function"==typeof c?o(Function.call,c):c,m&&((g.virtual||(g.virtual={}))[u]=c,t&h.R&&_&&!_[u]&&s(_,u,c)))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,h.U=64,h.R=128,t.exports=h},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){var i=n(19);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){var i=n(21),r=n(29);t.exports=n(25)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var i=n(22),r=n(24),o=n(28),s=Object.defineProperty;e.f=n(25)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var i=n(23);t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){t.exports=!n(25)&&!n(26)(function(){return 7!=Object.defineProperty(n(27)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){t.exports=!n(26)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var i=n(23),r=n(16).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){var i=n(23);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){t.exports=n(20)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(33),r=n(29),o=n(46),s={};n(20)(s,n(47)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var i=n(22),r=n(34),o=n(44),s=n(41)("IE_PROTO"),a=function(){},h="prototype",u=function(){var t,e=n(27)("iframe"),i=o.length,r="<",s=">";for(e.style.display="none",n(45).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(r+"script"+s+"document.F=Object"+r+"/script"+s),t.close(),u=t.F;i--;)delete u[h][o[i]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(a[h]=i(t),n=new a,a[h]=null,n[s]=t):n=u(),void 0===e?n:r(n,e)}},function(t,e,n){var i=n(21),r=n(22),o=n(35);t.exports=n(25)?Object.defineProperties:function(t,e){r(t);for(var n,s=o(e),a=s.length,h=0;a>h;)i.f(t,n=s[h++],e[n]);return t}},function(t,e,n){var i=n(36),r=n(44);t.exports=Object.keys||function(t){return i(t,r)}},function(t,e,n){var i=n(31),r=n(9),o=n(37)(!1),s=n(41)("IE_PROTO");t.exports=function(t,e){var n,a=r(t),h=0,u=[];for(n in a)n!=s&&i(a,n)&&u.push(n);for(;e.length>h;)i(a,n=e[h++])&&(~o(u,n)||u.push(n));return u}},function(t,e,n){var i=n(9),r=n(38),o=n(40);t.exports=function(t){return function(e,n,s){var a,h=i(e),u=r(h.length),l=o(s,u);if(t&&n!=n){for(;u>l;)if(a=h[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in h)&&h[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var i=n(39),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(39),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(42)("keys"),r=n(43);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(16),r="__core-js_shared__",o=i[r]||(i[r]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){t.exports=n(16).document&&document.documentElement},function(t,e,n){var i=n(21).f,r=n(31),o=n(47)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(42)("wks"),r=n(43),o=n(16).Symbol,s="function"==typeof o,a=t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)("Symbol."+t))};a.store=i},function(t,e,n){var i=n(31),r=n(49),o=n(41)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,n){var i=n(12);t.exports=function(t){return Object(i(t))}},function(t,e,n){var i=n(51)(!0);n(13)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){var i=n(39),r=n(12);t.exports=function(t){return function(e,n){var o,s,a=String(r(e)),h=i(n),u=a.length;return h<0||h>=u?t?"":void 0:(o=a.charCodeAt(h),o<55296||o>56319||h+1===u||(s=a.charCodeAt(h+1))<56320||s>57343?t?a.charAt(h):o:t?a.slice(h,h+2):(o-55296<<10)+(s-56320)+65536)}}},function(t,e,n){var i=n(22),r=n(53);t.exports=n(17).getIterator=function(t){var e=r(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return i(e.call(t))}},function(t,e,n){var i=n(54),r=n(47)("iterator"),o=n(8);t.exports=n(17).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||o[i(t)]}},function(t,e,n){var i=n(11),r=n(47)("toStringTag"),o="Arguments"==i(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),r))?n:o?i(e):"Object"==(a=i(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){t.exports={default:n(56),__esModule:!0}},function(t,e,n){n(57);var i=n(17).Object;t.exports=function(t,e){return i.create(t,e)}},function(t,e,n){var i=n(15);i(i.S,"Object",{create:n(33)})},function(t,e,n){t.exports={default:n(59),__esModule:!0}},function(t,e,n){n(60),t.exports=n(17).Object.keys},function(t,e,n){var i=n(49),r=n(35);n(61)("keys",function(){return function(t){return r(i(t))}})},function(t,e,n){var i=n(15),r=n(17),o=n(26);t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],s={};s[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",s)}},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var r=n(63),o=i(r),s=n(66),a=i(s),h="function"==typeof a.default&&"symbol"==typeof o.default?function(t){return typeof t}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":typeof t};e.default="function"==typeof a.default&&"symbol"===h(o.default)?function(t){return"undefined"==typeof t?"undefined":h(t)}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":"undefined"==typeof t?"undefined":h(t)}},function(t,e,n){t.exports={default:n(64),__esModule:!0}},function(t,e,n){n(50),n(4),t.exports=n(65).f("iterator")},function(t,e,n){e.f=n(47)},function(t,e,n){t.exports={default:n(67),__esModule:!0}},function(t,e,n){n(68),n(79),n(80),n(81),t.exports=n(17).Symbol},function(t,e,n){var i=n(16),r=n(31),o=n(25),s=n(15),a=n(30),h=n(69).KEY,u=n(26),l=n(42),c=n(46),f=n(43),d=n(47),p=n(65),m=n(70),v=n(71),y=n(72),g=n(75),_=n(22),w=n(9),x=n(28),b=n(29),S=n(33),T=n(76),D=n(78),M=n(21),k=n(35),O=D.f,E=M.f,C=T.f,P=i.Symbol,L=i.JSON,Y=L&&L.stringify,R="prototype",A=d("_hidden"),I=d("toPrimitive"),z={}.propertyIsEnumerable,N=l("symbol-registry"),W=l("symbols"),F=l("op-symbols"),j=Object[R],G="function"==typeof P,V=i.QObject,B=!V||!V[R]||!V[R].findChild,U=o&&u(function(){return 7!=S(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(t,e,n){var i=O(j,e);i&&delete j[e],E(t,e,n),i&&t!==j&&E(j,e,i)}:E,H=function(t){var e=W[t]=S(P[R]);return e._k=t,e},X=G&&"symbol"==typeof P.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof P},Z=function(t,e,n){return t===j&&Z(F,e,n),_(t),e=x(e,!0),_(n),r(W,e)?(n.enumerable?(r(t,A)&&t[A][e]&&(t[A][e]=!1),n=S(n,{enumerable:b(0,!1)})):(r(t,A)||E(t,A,b(1,{})),t[A][e]=!0),U(t,e,n)):E(t,e,n)},q=function(t,e){_(t);for(var n,i=y(e=w(e)),r=0,o=i.length;o>r;)Z(t,n=i[r++],e[n]);return t},$=function(t,e){return void 0===e?S(t):q(S(t),e)},J=function(t){var e=z.call(this,t=x(t,!0));return!(this===j&&r(W,t)&&!r(F,t))&&(!(e||!r(this,t)||!r(W,t)||r(this,A)&&this[A][t])||e)},Q=function(t,e){if(t=w(t),e=x(e,!0),t!==j||!r(W,e)||r(F,e)){var n=O(t,e);return!n||!r(W,e)||r(t,A)&&t[A][e]||(n.enumerable=!0),n}},K=function(t){for(var e,n=C(w(t)),i=[],o=0;n.length>o;)r(W,e=n[o++])||e==A||e==h||i.push(e);return i},tt=function(t){for(var e,n=t===j,i=C(n?F:w(t)),o=[],s=0;i.length>s;)!r(W,e=i[s++])||n&&!r(j,e)||o.push(W[e]);return o};G||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var t=f(arguments.length>0?arguments[0]:void 0),e=function(n){this===j&&e.call(F,n),r(this,A)&&r(this[A],t)&&(this[A][t]=!1),U(this,t,b(1,n))};return o&&B&&U(j,t,{configurable:!0,set:e}),H(t)},a(P[R],"toString",function(){return this._k}),D.f=Q,M.f=Z,n(77).f=T.f=K,n(74).f=J,n(73).f=tt,o&&!n(14)&&a(j,"propertyIsEnumerable",J,!0),p.f=function(t){return H(d(t))}),s(s.G+s.W+s.F*!G,{Symbol:P});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)d(et[nt++]);for(var et=k(d.store),nt=0;et.length>nt;)m(et[nt++]);s(s.S+s.F*!G,"Symbol",{for:function(t){return r(N,t+="")?N[t]:N[t]=P(t)},keyFor:function(t){if(X(t))return v(N,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){B=!0},useSimple:function(){B=!1}}),s(s.S+s.F*!G,"Object",{create:$,defineProperty:Z,defineProperties:q,getOwnPropertyDescriptor:Q,getOwnPropertyNames:K,getOwnPropertySymbols:tt}),L&&s(s.S+s.F*(!G||u(function(){var t=P();return"[null]"!=Y([t])||"{}"!=Y({a:t})||"{}"!=Y(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!X(t)){for(var e,n,i=[t],r=1;arguments.length>r;)i.push(arguments[r++]);return e=i[1],"function"==typeof e&&(n=e),!n&&g(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!X(e))return e}),i[1]=e,Y.apply(L,i)}}}),P[R][I]||n(20)(P[R],I,P[R].valueOf),c(P,"Symbol"),c(Math,"Math",!0),c(i.JSON,"JSON",!0)},function(t,e,n){var i=n(43)("meta"),r=n(23),o=n(31),s=n(21).f,a=0,h=Object.isExtensible||function(){return!0},u=!n(26)(function(){return h(Object.preventExtensions({}))}),l=function(t){s(t,i,{value:{i:"O"+ ++a,w:{}}})},c=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,i)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[i].i},f=function(t,e){if(!o(t,i)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[i].w},d=function(t){return u&&p.NEED&&h(t)&&!o(t,i)&&l(t),t},p=t.exports={KEY:i,NEED:!1,fastKey:c,getWeak:f,onFreeze:d}},function(t,e,n){var i=n(16),r=n(17),o=n(14),s=n(65),a=n(21).f;t.exports=function(t){var e=r.Symbol||(r.Symbol=o?{}:i.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:s.f(t)})}},function(t,e,n){var i=n(35),r=n(9);t.exports=function(t,e){for(var n,o=r(t),s=i(o),a=s.length,h=0;a>h;)if(o[n=s[h++]]===e)return n}},function(t,e,n){var i=n(35),r=n(73),o=n(74);t.exports=function(t){var e=i(t),n=r.f;if(n)for(var s,a=n(t),h=o.f,u=0;a.length>u;)h.call(t,s=a[u++])&&e.push(s);return e}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var i=n(11);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){var i=n(9),r=n(77).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return r(t)}catch(t){return s.slice()}};t.exports.f=function(t){return s&&"[object Window]"==o.call(t)?a(t):r(i(t))}},function(t,e,n){var i=n(36),r=n(44).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,e,n){var i=n(74),r=n(29),o=n(9),s=n(28),a=n(31),h=n(24),u=Object.getOwnPropertyDescriptor;e.f=n(25)?u:function(t,e){if(t=o(t),e=s(e,!0),h)try{return u(t,e)}catch(t){}if(a(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e){},function(t,e,n){n(70)("asyncIterator")},function(t,e,n){n(70)("observable")},function(t,e,n){t.exports="undefined"!=typeof window&&window.moment||n(83)},function(t,e,n){(function(t){!function(e,n){t.exports=n()}(this,function(){function e(){return wi.apply(null,arguments)}function n(t){wi=t}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function r(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function o(t){var e;for(e in t)return!1;return!0}function s(t){return void 0===t}function a(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function h(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function u(t,e){var n,i=[];for(n=0;n0)for(n=0;n0?"future":"past"];return M(n)?n(e):n.replace(/%s/i,e)}function I(t,e){var n=t.toLowerCase();Ai[n]=Ai[n+"s"]=Ai[e]=t}function z(t){return"string"==typeof t?Ai[t]||Ai[t.toLowerCase()]:void 0}function N(t){var e,n,i={};for(n in t)l(t,n)&&(e=z(n),e&&(i[e]=t[n]));return i}function W(t,e){Ii[t]=e}function F(t){var e=[];for(var n in t)e.push({unit:n,priority:Ii[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}function j(t,n){return function(i){return null!=i?(V(this,t,i),e.updateOffset(this,n),this):G(this,t)}}function G(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function V(t,e,n){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](n)}function B(t){return t=z(t),M(this[t])?this[t]():this}function U(t,e){if("object"==typeof t){t=N(t);for(var n=F(t),i=0;i=0;return(o?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}function X(t,e,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),t&&(Fi[t]=r),e&&(Fi[e[0]]=function(){return H(r.apply(this,arguments),e[1],e[2])}),n&&(Fi[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function Z(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function q(t){var e,n,i=t.match(zi);for(e=0,n=i.length;e=0&&Ni.test(t);)t=t.replace(Ni,n),Ni.lastIndex=0,i-=1;return t}function Q(t,e,n){rr[t]=M(e)?e:function(t,i){return t&&n?n:e}}function K(t,e){return l(rr,t)?rr[t](e._strict,e._locale):new RegExp(tt(t))}function tt(t){return et(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,r){return e||n||i||r}))}function et(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function nt(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),a(e)&&(i=function(t,n){n[e]=x(t)}),n=0;n=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function wt(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function xt(t,e,n){var i=7+e-n,r=(7+wt(t,0,i).getUTCDay()-e)%7;return-r+i-1}function bt(t,e,n,i,r){var o,s,a=(7+n-i)%7,h=xt(t,i,r),u=1+7*(e-1)+a+h;return u<=0?(o=t-1,s=vt(o)+u):u>vt(t)?(o=t+1,s=u-vt(t)):(o=t,s=u),{year:o,dayOfYear:s}}function St(t,e,n){var i,r,o=xt(t.year(),e,n),s=Math.floor((t.dayOfYear()-o-1)/7)+1;return s<1?(r=t.year()-1,i=s+Tt(r,e,n)):s>Tt(t.year(),e,n)?(i=s-Tt(t.year(),e,n),r=t.year()+1):(r=t.year(),i=s),{week:i,year:r}}function Tt(t,e,n){var i=xt(t,e,n),r=xt(t+1,e,n);return(vt(t)-i+r)/7}function Dt(t){return St(t,this._week.dow,this._week.doy).week}function Mt(){return this._week.dow}function kt(){return this._week.doy}function Ot(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Et(t){var e=St(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Ct(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Lt(t,e){return t?i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}function Yt(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Rt(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function At(t,e,n){var i,r,o,s=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=f([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===e?(r=mr.call(this._weekdaysParse,s),r!==-1?r:null):"ddd"===e?(r=mr.call(this._shortWeekdaysParse,s),r!==-1?r:null):(r=mr.call(this._minWeekdaysParse,s),r!==-1?r:null):"dddd"===e?(r=mr.call(this._weekdaysParse,s),r!==-1?r:(r=mr.call(this._shortWeekdaysParse,s),r!==-1?r:(r=mr.call(this._minWeekdaysParse,s),r!==-1?r:null))):"ddd"===e?(r=mr.call(this._shortWeekdaysParse,s),r!==-1?r:(r=mr.call(this._weekdaysParse,s),r!==-1?r:(r=mr.call(this._minWeekdaysParse,s),r!==-1?r:null))):(r=mr.call(this._minWeekdaysParse,s),r!==-1?r:(r=mr.call(this._weekdaysParse,s),r!==-1?r:(r=mr.call(this._shortWeekdaysParse,s),r!==-1?r:null)))}function It(t,e,n){var i,r,o;if(this._weekdaysParseExact)return At.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=f([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}}function zt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Ct(t,this.localeData()),this.add(t-e,"d")):e}function Nt(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Wt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function Ft(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Vt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Mr),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function jt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Vt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=kr),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Gt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Vt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Or),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Vt(){function t(t,e){return e.length-t.length}var e,n,i,r,o,s=[],a=[],h=[],u=[];for(e=0;e<7;e++)n=f([2e3,1]).day(e),i=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),o=this.weekdays(n,""),s.push(i),a.push(r),h.push(o),u.push(i),u.push(r),u.push(o);for(s.sort(t),a.sort(t),h.sort(t),u.sort(t),e=0;e<7;e++)a[e]=et(a[e]),h[e]=et(h[e]),u[e]=et(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Bt(){return this.hours()%12||12}function Ut(){return this.hours()||24}function Ht(t,e){X(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Xt(t,e){return e._meridiemParse}function Zt(t){return"p"===(t+"").toLowerCase().charAt(0)}function qt(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function $t(t){return t?t.toLowerCase().replace("_","-"):t}function Jt(t){for(var e,n,i,r,o=0;o0;){if(i=Qt(r.slice(0,e).join("-")))return i;if(n&&n.length>=e&&b(r,n,!0)>=e-1)break;e--}o++}return null}function Qt(e){var n=null;if(!Yr[e]&&"undefined"!=typeof t&&t&&t.exports)try{n=Er._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Kt(n)}catch(t){}return Yr[e]}function Kt(t,e){var n;return t&&(n=s(e)?ne(t):te(t,e),n&&(Er=n)),Er._abbr}function te(t,e){if(null!==e){var n=Lr;if(e.abbr=t,null!=Yr[t])D("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Yr[t]._config;else if(null!=e.parentLocale){if(null==Yr[e.parentLocale])return Rr[e.parentLocale]||(Rr[e.parentLocale]=[]),Rr[e.parentLocale].push({name:t,config:e}),null;n=Yr[e.parentLocale]._config}return Yr[t]=new E(O(n,e)),Rr[t]&&Rr[t].forEach(function(t){te(t.name,t.config)}),Kt(t),Yr[t]}return delete Yr[t],null}function ee(t,e){if(null!=e){var n,i=Lr;null!=Yr[t]&&(i=Yr[t]._config),e=O(i,e),n=new E(e),n.parentLocale=Yr[t],Yr[t]=n,Kt(t)}else null!=Yr[t]&&(null!=Yr[t].parentLocale?Yr[t]=Yr[t].parentLocale:null!=Yr[t]&&delete Yr[t]);return Yr[t]}function ne(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Er;if(!i(t)){if(e=Qt(t))return e;t=[t]}return Jt(t)}function ie(){return Oi(Yr)}function re(t){var e,n=t._a;return n&&p(t).overflow===-2&&(e=n[ar]<0||n[ar]>11?ar:n[hr]<1||n[hr]>ot(n[sr],n[ar])?hr:n[ur]<0||n[ur]>24||24===n[ur]&&(0!==n[lr]||0!==n[cr]||0!==n[fr])?ur:n[lr]<0||n[lr]>59?lr:n[cr]<0||n[cr]>59?cr:n[fr]<0||n[fr]>999?fr:-1,p(t)._overflowDayOfYear&&(ehr)&&(e=hr),p(t)._overflowWeeks&&e===-1&&(e=dr),p(t)._overflowWeekday&&e===-1&&(e=pr),p(t).overflow=e),t}function oe(t){var e,n,i,r,o,s,a=t._i,h=Ar.exec(a)||Ir.exec(a);if(h){for(p(t).iso=!0,e=0,n=Nr.length;e10?"YYYY ":"YY "),o="HH:mm"+(n[4]?":ss":""),n[1]){var c=new Date(n[2]),f=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][c.getDay()];if(n[1].substr(0,3)!==f)return p(t).weekdayMismatch=!0,void(t._isValid=!1)}switch(n[5].length){case 2:0===h?a=" +0000":(h=l.indexOf(n[5][1].toUpperCase())-12,a=(h<0?" -":" +")+(""+h).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:a=u[n[5]];break;default:a=u[" GMT"]}n[5]=a,t._i=n.splice(1).join(""),s=" ZZ",t._f=i+r+o+s,fe(t),p(t).rfc2822=!0}else t._isValid=!1}function ae(t){var n=Fr.exec(t._i);return null!==n?void(t._d=new Date(+n[1])):(oe(t),void(t._isValid===!1&&(delete t._isValid,se(t),t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t)))))}function he(t,e,n){return null!=t?t:null!=e?e:n}function ue(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function le(t){var e,n,i,r,o=[];if(!t._d){for(i=ue(t),t._w&&null==t._a[hr]&&null==t._a[ar]&&ce(t),null!=t._dayOfYear&&(r=he(t._a[sr],i[sr]),(t._dayOfYear>vt(r)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),n=wt(r,0,t._dayOfYear),t._a[ar]=n.getUTCMonth(),t._a[hr]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=i[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[ur]&&0===t._a[lr]&&0===t._a[cr]&&0===t._a[fr]&&(t._nextDay=!0,t._a[ur]=0),t._d=(t._useUTC?wt:_t).apply(null,o),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[ur]=24)}}function ce(t){var e,n,i,r,o,s,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)o=1,s=4,n=he(e.GG,t._a[sr],St(we(),1,4).year),i=he(e.W,1),r=he(e.E,1),(r<1||r>7)&&(h=!0);else{o=t._locale._week.dow,s=t._locale._week.doy;var u=St(we(),o,s);n=he(e.gg,t._a[sr],u.year),i=he(e.w,u.week),null!=e.d?(r=e.d,(r<0||r>6)&&(h=!0)):null!=e.e?(r=e.e+o,(e.e<0||e.e>6)&&(h=!0)):r=o}i<1||i>Tt(n,o,s)?p(t)._overflowWeeks=!0:null!=h?p(t)._overflowWeekday=!0:(a=bt(n,i,r,o,s),t._a[sr]=a.year,t._dayOfYear=a.dayOfYear)}function fe(t){if(t._f===e.ISO_8601)return void oe(t);if(t._f===e.RFC_2822)return void se(t);t._a=[],p(t).empty=!0;var n,i,r,o,s,a=""+t._i,h=a.length,u=0;for(r=J(t._f,t._locale).match(zi)||[],n=0;n0&&p(t).unusedInput.push(s),a=a.slice(a.indexOf(i)+i.length),u+=i.length),Fi[o]?(i?p(t).empty=!1:p(t).unusedTokens.push(o),rt(o,i,t)):t._strict&&!i&&p(t).unusedTokens.push(o);p(t).charsLeftOver=h-u,a.length>0&&p(t).unusedInput.push(a),t._a[ur]<=12&&p(t).bigHour===!0&&t._a[ur]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[ur]=de(t._locale,t._a[ur],t._meridiem),le(t),re(t)}function de(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(i=t.isPM(n),i&&e<12&&(e+=12),i||12!==e||(e=0),e):e}function pe(t){var e,n,i,r,o;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function je(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(y(t,this),t=ye(t),t._a){var e=t._isUTC?f(t._a):we(t._a);this._isDSTShifted=this.isValid()&&b(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Ge(){return!!this.isValid()&&!this._isUTC}function Ve(){return!!this.isValid()&&this._isUTC}function Be(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ue(t,e){var n,i,r,o=t,s=null;return Oe(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:a(t)?(o={},e?o[e]=t:o.milliseconds=t):(s=Xr.exec(t))?(n="-"===s[1]?-1:1,o={y:0,d:x(s[hr])*n,h:x(s[ur])*n,m:x(s[lr])*n,s:x(s[cr])*n,ms:x(Ee(1e3*s[fr]))*n}):(s=Zr.exec(t))?(n="-"===s[1]?-1:1,o={y:He(s[2],n),M:He(s[3],n),w:He(s[4],n),d:He(s[5],n),h:He(s[6],n),m:He(s[7],n),s:He(s[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(r=Ze(we(o.from),we(o.to)),o={},o.ms=r.milliseconds,o.M=r.months),i=new ke(o),Oe(t)&&l(t,"_locale")&&(i._locale=t._locale),i}function He(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Xe(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Ze(t,e){var n;return t.isValid()&&e.isValid()?(e=Le(e,t),t.isBefore(e)?n=Xe(t,e):(n=Xe(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function qe(t,e){return function(n,i){var r,o;return null===i||isNaN(+i)||(D(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=i,i=o),n="string"==typeof n?+n:n,r=Ue(n,i),$e(this,r,t),this}}function $e(t,n,i,r){var o=n._milliseconds,s=Ee(n._days),a=Ee(n._months);t.isValid()&&(r=null==r||r,o&&t._d.setTime(t._d.valueOf()+o*i),s&&V(t,"Date",G(t,"Date")+s*i),a&<(t,G(t,"Month")+a*i),r&&e.updateOffset(t,s||a))}function Je(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function Qe(t,n){var i=t||we(),r=Le(i,this).startOf("day"),o=e.calendarFormat(this,r)||"sameElse",s=n&&(M(n[o])?n[o].call(this,i):n[o]);return this.format(s||this.localeData().calendar(o,this,we(i)))}function Ke(){return new g(this)}function tn(t,e){var n=_(t)?t:we(t);return!(!this.isValid()||!n.isValid())&&(e=z(s(e)?"millisecond":e),"millisecond"===e?this.valueOf()>n.valueOf():n.valueOf()9999?$(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):M(Date.prototype.toISOString)?this.toDate().toISOString():$(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function cn(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r="-MM-DD[T]HH:mm:ss.SSS",o=e+'[")]';return this.format(n+i+r+o)}function fn(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=$(this,t);return this.localeData().postformat(n)}function dn(t,e){return this.isValid()&&(_(t)&&t.isValid()||we(t).isValid())?Ue({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function pn(t){return this.from(we(),t)}function mn(t,e){return this.isValid()&&(_(t)&&t.isValid()||we(t).isValid())?Ue({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function vn(t){return this.to(we(),t)}function yn(t){var e;return void 0===t?this._locale._abbr:(e=ne(t),null!=e&&(this._locale=e),this)}function gn(){return this._locale}function _n(t){switch(t=z(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function wn(t){return t=z(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function xn(){return this._d.valueOf()-6e4*(this._offset||0)}function bn(){return Math.floor(this.valueOf()/1e3)}function Sn(){return new Date(this.valueOf())}function Tn(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Dn(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Mn(){return this.isValid()?this.toISOString():null}function kn(){return m(this)}function On(){return c({},p(this))}function En(){return p(this).overflow}function Cn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Pn(t,e){X(0,[t,t.length],0,e)}function Ln(t){return In.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Yn(t){return In.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Rn(){return Tt(this.year(),1,4)}function An(){var t=this.localeData()._week;return Tt(this.year(),t.dow,t.doy)}function In(t,e,n,i,r){var o;return null==t?St(this,i,r).year:(o=Tt(t,i,r),e>o&&(e=o),zn.call(this,t,e,n,i,r))}function zn(t,e,n,i,r){var o=bt(t,e,n,i,r),s=wt(o.year,0,o.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}function Nn(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Wn(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Fn(t,e){e[fr]=x(1e3*("0."+t))}function jn(){return this._isUTC?"UTC":""}function Gn(){return this._isUTC?"Coordinated Universal Time":""}function Vn(t){return we(1e3*t)}function Bn(){return we.apply(null,arguments).parseZone()}function Un(t){return t}function Hn(t,e,n,i){var r=ne(),o=f().set(i,e);return r[n](o,t)}function Xn(t,e,n){if(a(t)&&(e=t,t=void 0),t=t||"",null!=e)return Hn(t,e,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=Hn(t,i,n,"month");return r}function Zn(t,e,n,i){"boolean"==typeof t?(a(e)&&(n=e,e=void 0),e=e||""):(e=t,n=e,t=!1,a(e)&&(n=e,e=void 0),e=e||"");var r=ne(),o=t?r._week.dow:0; -if(null!=n)return Hn(e,(n+o)%7,i,"day");var s,h=[];for(s=0;s<7;s++)h[s]=Hn(e,(s+o)%7,i,"day");return h}function qn(t,e){return Xn(t,e,"months")}function $n(t,e){return Xn(t,e,"monthsShort")}function Jn(t,e,n){return Zn(t,e,n,"weekdays")}function Qn(t,e,n){return Zn(t,e,n,"weekdaysShort")}function Kn(t,e,n){return Zn(t,e,n,"weekdaysMin")}function ti(){var t=this._data;return this._milliseconds=oo(this._milliseconds),this._days=oo(this._days),this._months=oo(this._months),t.milliseconds=oo(t.milliseconds),t.seconds=oo(t.seconds),t.minutes=oo(t.minutes),t.hours=oo(t.hours),t.months=oo(t.months),t.years=oo(t.years),this}function ei(t,e,n,i){var r=Ue(e,n);return t._milliseconds+=i*r._milliseconds,t._days+=i*r._days,t._months+=i*r._months,t._bubble()}function ni(t,e){return ei(this,t,e,1)}function ii(t,e){return ei(this,t,e,-1)}function ri(t){return t<0?Math.floor(t):Math.ceil(t)}function oi(){var t,e,n,i,r,o=this._milliseconds,s=this._days,a=this._months,h=this._data;return o>=0&&s>=0&&a>=0||o<=0&&s<=0&&a<=0||(o+=864e5*ri(ai(a)+s),s=0,a=0),h.milliseconds=o%1e3,t=w(o/1e3),h.seconds=t%60,e=w(t/60),h.minutes=e%60,n=w(e/60),h.hours=n%24,s+=w(n/24),r=w(si(s)),a+=r,s-=ri(ai(r)),i=w(a/12),a%=12,h.days=s,h.months=a,h.years=i,this}function si(t){return 4800*t/146097}function ai(t){return 146097*t/4800}function hi(t){if(!this.isValid())return NaN;var e,n,i=this._milliseconds;if(t=z(t),"month"===t||"year"===t)return e=this._days+i/864e5,n=this._months+si(e),"month"===t?n:n/12;switch(e=this._days+Math.round(ai(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}}function ui(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*x(this._months/12):NaN}function li(t){return function(){return this.as(t)}}function ci(t){return t=z(t),this.isValid()?this[t+"s"]():NaN}function fi(t){return function(){return this.isValid()?this._data[t]:NaN}}function di(){return w(this.days()/7)}function pi(t,e,n,i,r){return r.relativeTime(e||1,!!n,t,i)}function mi(t,e,n){var i=Ue(t).abs(),r=bo(i.as("s")),o=bo(i.as("m")),s=bo(i.as("h")),a=bo(i.as("d")),h=bo(i.as("M")),u=bo(i.as("y")),l=r<=So.ss&&["s",r]||r0,l[4]=n,pi.apply(null,l)}function vi(t){return void 0===t?bo:"function"==typeof t&&(bo=t,!0)}function yi(t,e){return void 0!==So[t]&&(void 0===e?So[t]:(So[t]=e,"s"===t&&(So.ss=e-1),!0))}function gi(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=mi(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function _i(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,i=To(this._milliseconds)/1e3,r=To(this._days),o=To(this._months);t=w(i/60),e=w(t/60),i%=60,t%=60,n=w(o/12),o%=12;var s=n,a=o,h=r,u=e,l=t,c=i,f=this.asSeconds();return f?(f<0?"-":"")+"P"+(s?s+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(u||l||c?"T":"")+(u?u+"H":"")+(l?l+"M":"")+(c?c+"S":""):"P0D"}var wi,xi;xi=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,i=0;i68?1900:2e3)};var xr=j("FullYear",!0);X("w",["ww",2],"wo","week"),X("W",["WW",2],"Wo","isoWeek"),I("week","w"),I("isoWeek","W"),W("week",5),W("isoWeek",5),Q("w",Hi),Q("ww",Hi,Gi),Q("W",Hi),Q("WW",Hi,Gi),it(["w","ww","W","WW"],function(t,e,n,i){e[i.substr(0,1)]=x(t)});var br={dow:0,doy:6};X("d",0,"do","day"),X("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),X("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),X("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),X("e",0,0,"weekday"),X("E",0,0,"isoWeekday"),I("day","d"),I("weekday","e"),I("isoWeekday","E"),W("day",11),W("weekday",11),W("isoWeekday",11),Q("d",Hi),Q("e",Hi),Q("E",Hi),Q("dd",function(t,e){return e.weekdaysMinRegex(t)}),Q("ddd",function(t,e){return e.weekdaysShortRegex(t)}),Q("dddd",function(t,e){return e.weekdaysRegex(t)}),it(["dd","ddd","dddd"],function(t,e,n,i){var r=n._locale.weekdaysParse(t,i,n._strict);null!=r?e.d=r:p(n).invalidWeekday=t}),it(["d","e","E"],function(t,e,n,i){e[i]=x(t)});var Sr="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Tr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Dr="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Mr=ir,kr=ir,Or=ir;X("H",["HH",2],0,"hour"),X("h",["hh",2],0,Bt),X("k",["kk",2],0,Ut),X("hmm",0,0,function(){return""+Bt.apply(this)+H(this.minutes(),2)}),X("hmmss",0,0,function(){return""+Bt.apply(this)+H(this.minutes(),2)+H(this.seconds(),2)}),X("Hmm",0,0,function(){return""+this.hours()+H(this.minutes(),2)}),X("Hmmss",0,0,function(){return""+this.hours()+H(this.minutes(),2)+H(this.seconds(),2)}),Ht("a",!0),Ht("A",!1),I("hour","h"),W("hour",13),Q("a",Xt),Q("A",Xt),Q("H",Hi),Q("h",Hi),Q("k",Hi),Q("HH",Hi,Gi),Q("hh",Hi,Gi),Q("kk",Hi,Gi),Q("hmm",Xi),Q("hmmss",Zi),Q("Hmm",Xi),Q("Hmmss",Zi),nt(["H","HH"],ur),nt(["k","kk"],function(t,e,n){var i=x(t);e[ur]=24===i?0:i}),nt(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),nt(["h","hh"],function(t,e,n){e[ur]=x(t),p(n).bigHour=!0}),nt("hmm",function(t,e,n){var i=t.length-2;e[ur]=x(t.substr(0,i)),e[lr]=x(t.substr(i)),p(n).bigHour=!0}),nt("hmmss",function(t,e,n){var i=t.length-4,r=t.length-2;e[ur]=x(t.substr(0,i)),e[lr]=x(t.substr(i,2)),e[cr]=x(t.substr(r)),p(n).bigHour=!0}),nt("Hmm",function(t,e,n){var i=t.length-2;e[ur]=x(t.substr(0,i)),e[lr]=x(t.substr(i))}),nt("Hmmss",function(t,e,n){var i=t.length-4,r=t.length-2;e[ur]=x(t.substr(0,i)),e[lr]=x(t.substr(i,2)),e[cr]=x(t.substr(r))});var Er,Cr=/[ap]\.?m?\.?/i,Pr=j("Hours",!0),Lr={calendar:Ei,longDateFormat:Ci,invalidDate:Pi,ordinal:Li,dayOfMonthOrdinalParse:Yi,relativeTime:Ri,months:yr,monthsShort:gr,week:br,weekdays:Sr,weekdaysMin:Dr,weekdaysShort:Tr,meridiemParse:Cr},Yr={},Rr={},Ar=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ir=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,zr=/Z|[+-]\d\d(?::?\d\d)?/,Nr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Wr=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Fr=/^\/?Date\((\-?\d+)/i,jr=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;e.createFromInputFallback=T("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var Gr=T("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=we.apply(null,arguments);return this.isValid()&&t.isValid()?tthis?this:t:v()}),Br=function(){return Date.now?Date.now():+new Date},Ur=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ce("Z",":"),Ce("ZZ",""),Q("Z",er),Q("ZZ",er),nt(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Pe(er,t)});var Hr=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Xr=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Zr=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Ue.fn=ke.prototype,Ue.invalid=Me;var qr=qe(1,"add"),$r=qe(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Jr=T("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});X(0,["gg",2],0,function(){return this.weekYear()%100}),X(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Pn("gggg","weekYear"),Pn("ggggg","weekYear"),Pn("GGGG","isoWeekYear"),Pn("GGGGG","isoWeekYear"),I("weekYear","gg"),I("isoWeekYear","GG"),W("weekYear",1),W("isoWeekYear",1),Q("G",Ki),Q("g",Ki),Q("GG",Hi,Gi),Q("gg",Hi,Gi),Q("GGGG",$i,Bi),Q("gggg",$i,Bi),Q("GGGGG",Ji,Ui),Q("ggggg",Ji,Ui),it(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=x(t)}),it(["gg","GG"],function(t,n,i,r){n[r]=e.parseTwoDigitYear(t)}),X("Q",0,"Qo","quarter"),I("quarter","Q"),W("quarter",7),Q("Q",ji),nt("Q",function(t,e){e[ar]=3*(x(t)-1)}),X("D",["DD",2],"Do","date"),I("date","D"),W("date",9),Q("D",Hi),Q("DD",Hi,Gi),Q("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),nt(["D","DD"],hr),nt("Do",function(t,e){e[hr]=x(t.match(Hi)[0],10)});var Qr=j("Date",!0);X("DDD",["DDDD",3],"DDDo","dayOfYear"),I("dayOfYear","DDD"),W("dayOfYear",4),Q("DDD",qi),Q("DDDD",Vi),nt(["DDD","DDDD"],function(t,e,n){n._dayOfYear=x(t)}),X("m",["mm",2],0,"minute"),I("minute","m"),W("minute",14),Q("m",Hi),Q("mm",Hi,Gi),nt(["m","mm"],lr);var Kr=j("Minutes",!1);X("s",["ss",2],0,"second"),I("second","s"),W("second",15),Q("s",Hi),Q("ss",Hi,Gi),nt(["s","ss"],cr);var to=j("Seconds",!1);X("S",0,0,function(){return~~(this.millisecond()/100)}),X(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),X(0,["SSS",3],0,"millisecond"),X(0,["SSSS",4],0,function(){return 10*this.millisecond()}),X(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),X(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),X(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),X(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),X(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),I("millisecond","ms"),W("millisecond",16),Q("S",qi,ji),Q("SS",qi,Gi),Q("SSS",qi,Vi);var eo;for(eo="SSSS";eo.length<=9;eo+="S")Q(eo,Qi);for(eo="S";eo.length<=9;eo+="S")nt(eo,Fn);var no=j("Milliseconds",!1);X("z",0,0,"zoneAbbr"),X("zz",0,0,"zoneName");var io=g.prototype;io.add=qr,io.calendar=Qe,io.clone=Ke,io.diff=an,io.endOf=wn,io.format=fn,io.from=dn,io.fromNow=pn,io.to=mn,io.toNow=vn,io.get=B,io.invalidAt=En,io.isAfter=tn,io.isBefore=en,io.isBetween=nn,io.isSame=rn,io.isSameOrAfter=on,io.isSameOrBefore=sn,io.isValid=kn,io.lang=Jr,io.locale=yn,io.localeData=gn,io.max=Vr,io.min=Gr,io.parsingFlags=On,io.set=U,io.startOf=_n,io.subtract=$r,io.toArray=Tn,io.toObject=Dn,io.toDate=Sn,io.toISOString=ln,io.inspect=cn,io.toJSON=Mn,io.toString=un,io.unix=bn,io.valueOf=xn,io.creationData=Cn,io.year=xr,io.isLeapYear=gt,io.weekYear=Ln,io.isoWeekYear=Yn,io.quarter=io.quarters=Nn,io.month=ct,io.daysInMonth=ft,io.week=io.weeks=Ot,io.isoWeek=io.isoWeeks=Et,io.weeksInYear=An,io.isoWeeksInYear=Rn,io.date=Qr,io.day=io.days=zt,io.weekday=Nt,io.isoWeekday=Wt,io.dayOfYear=Wn,io.hour=io.hours=Pr,io.minute=io.minutes=Kr,io.second=io.seconds=to,io.millisecond=io.milliseconds=no,io.utcOffset=Re,io.utc=Ie,io.local=ze,io.parseZone=Ne,io.hasAlignedHourOffset=We,io.isDST=Fe,io.isLocal=Ge,io.isUtcOffset=Ve,io.isUtc=Be,io.isUTC=Be,io.zoneAbbr=jn,io.zoneName=Gn,io.dates=T("dates accessor is deprecated. Use date instead.",Qr),io.months=T("months accessor is deprecated. Use month instead",ct),io.years=T("years accessor is deprecated. Use year instead",xr),io.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ae),io.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",je);var ro=E.prototype;ro.calendar=C,ro.longDateFormat=P,ro.invalidDate=L,ro.ordinal=Y,ro.preparse=Un,ro.postformat=Un,ro.relativeTime=R,ro.pastFuture=A,ro.set=k,ro.months=st,ro.monthsShort=at,ro.monthsParse=ut,ro.monthsRegex=pt,ro.monthsShortRegex=dt,ro.week=Dt,ro.firstDayOfYear=kt,ro.firstDayOfWeek=Mt,ro.weekdays=Lt,ro.weekdaysMin=Rt,ro.weekdaysShort=Yt,ro.weekdaysParse=It,ro.weekdaysRegex=Ft,ro.weekdaysShortRegex=jt,ro.weekdaysMinRegex=Gt,ro.isPM=Zt,ro.meridiem=qt,Kt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===x(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),e.lang=T("moment.lang is deprecated. Use moment.locale instead.",Kt),e.langData=T("moment.langData is deprecated. Use moment.localeData instead.",ne);var oo=Math.abs,so=li("ms"),ao=li("s"),ho=li("m"),uo=li("h"),lo=li("d"),co=li("w"),fo=li("M"),po=li("y"),mo=fi("milliseconds"),vo=fi("seconds"),yo=fi("minutes"),go=fi("hours"),_o=fi("days"),wo=fi("months"),xo=fi("years"),bo=Math.round,So={ss:44,s:45,m:45,h:22,d:26,M:11},To=Math.abs,Do=ke.prototype;return Do.isValid=De,Do.abs=ti,Do.add=ni,Do.subtract=ii,Do.as=hi,Do.asMilliseconds=so,Do.asSeconds=ao,Do.asMinutes=ho,Do.asHours=uo,Do.asDays=lo,Do.asWeeks=co,Do.asMonths=fo,Do.asYears=po,Do.valueOf=ui,Do._bubble=oi,Do.get=ci,Do.milliseconds=mo,Do.seconds=vo,Do.minutes=yo,Do.hours=go,Do.days=_o,Do.weeks=di,Do.months=wo,Do.years=xo,Do.humanize=gi,Do.toISOString=_i,Do.toString=_i,Do.toJSON=_i,Do.locale=yn,Do.localeData=gn,Do.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",_i),Do.lang=Jr,X("X",0,0,"unix"),X("x",0,0,"valueOf"),Q("x",Ki),Q("X",nr),nt("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),nt("x",function(t,e,n){n._d=new Date(x(t))}),e.version="2.18.1",n(we),e.fn=io,e.min=be,e.max=Se,e.now=Br,e.utc=f,e.unix=Vn,e.months=qn,e.isDate=h,e.locale=Kt,e.invalid=v,e.duration=Ue,e.isMoment=_,e.weekdays=Jn,e.parseZone=Bn,e.localeData=ne,e.isDuration=Oe,e.monthsShort=$n,e.weekdaysMin=Kn,e.defineLocale=te,e.updateLocale=ee,e.locales=ie,e.weekdaysShort=Qn,e.normalizeUnits=z,e.relativeTimeRounding=vi,e.relativeTimeThreshold=yi,e.calendarFormat=Je,e.prototype=io,e})}).call(e,n(84)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function n(t){throw new Error("Cannot find module '"+t+"'.")}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=85},function(t,e){(function(e){function n(t,e,n){var i=e&&n||0,r=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){r<16&&(e[i+r++]=c[t])});r<16;)e[i+r++]=0;return e}function i(t,e){var n=e||0,i=l;return i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]}function r(t,e,n){var r=e&&n||0,o=e||[];t=t||{};var s=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:y+1,u=a-v+(h-y)/1e4;if(u<0&&void 0===t.clockseq&&(s=s+1&16383),(u<0||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,y=h,m=s,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;o[r++]=l>>>24&255,o[r++]=l>>>16&255,o[r++]=l>>>8&255,o[r++]=255&l;var c=a/4294967296*1e4&268435455;o[r++]=c>>>8&255,o[r++]=255&c,o[r++]=c>>>24&15|16,o[r++]=c>>>16&255,o[r++]=s>>>8|128,o[r++]=255&s;for(var f=t.node||p,d=0;d<6;d++)o[r+d]=f[d];return e?e:i(o)}function o(t,e,n){var r=e&&n||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var o=t.random||(t.rng||s)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,e)for(var a=0;a<16;a++)e[r+a]=o[a];return e||i(o)}var s,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);s=function(){return crypto.getRandomValues(h),h}}if(!s){var u=new Array(16);s=function(){for(var t,e=0;e<16;e++)0===(3&e)&&(t=4294967296*Math.random()),u[e]=t>>>((3&e)<<3)&255;return u}}for(var l=[],c={},f=0;f<256;f++)l[f]=(f+256).toString(16).substr(1),c[l[f]]=f;var d=s(),p=[1|d[0],d[1],d[2],d[3],d[4],d[5]],m=16383&(d[6]<<8|d[7]),v=0,y=0,g=o;g.v1=r,g.v4=o,g.parse=n,g.unparse=i,t.exports=g}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var n=0;n0?(i=e[t].redundant[0],e[t].redundant.shift()):(i=document.createElementNS("http://www.w3.org/2000/svg",t),n.appendChild(i)):(i=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},n.appendChild(i)),e[t].used.push(i),i},e.getDOMElement=function(t,e,n,i){var r;return e.hasOwnProperty(t)?e[t].redundant.length>0?(r=e[t].redundant[0],e[t].redundant.shift()):(r=document.createElement(t),void 0!==i?n.insertBefore(r,i):n.appendChild(r)):(r=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==i?n.insertBefore(r,i):n.appendChild(r)),e[t].used.push(r),r},e.drawPoint=function(t,n,i,r,o,s){var a;if("circle"==i.style?(a=e.getSVGElement("circle",r,o),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",n),a.setAttributeNS(null,"r",.5*i.size)):(a=e.getSVGElement("rect",r,o),a.setAttributeNS(null,"x",t-.5*i.size),a.setAttributeNS(null,"y",n-.5*i.size),a.setAttributeNS(null,"width",i.size),a.setAttributeNS(null,"height",i.size)),void 0!==i.styles&&a.setAttributeNS(null,"style",i.styles),a.setAttributeNS(null,"class",i.className+" vis-point"),s){var h=e.getSVGElement("text",r,o);s.xOffset&&(t+=s.xOffset),s.yOffset&&(n+=s.yOffset),s.content&&(h.textContent=s.content),s.className&&h.setAttributeNS(null,"class",s.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",n)}return a},e.drawBar=function(t,n,i,r,o,s,a,h){if(0!=r){r<0&&(r*=-1,n-=r);var u=e.getSVGElement("rect",s,a);u.setAttributeNS(null,"x",t-.5*i),u.setAttributeNS(null,"y",n),u.setAttributeNS(null,"width",i),u.setAttributeNS(null,"height",r),u.setAttributeNS(null,"class",o),h&&u.setAttributeNS(null,"style",h)}}},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var n=(0,l.default)(this._options.type),i=0,r=n.length;ir?1:is)&&(o=h,s=u)}return o},r.prototype.min=function(t){var e,n,i=this._data,r=(0,l.default)(i),o=null,s=null;for(e=0,n=r.length;ethis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},n.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=n},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var n=this;this.listener=function(){n._onEvent.apply(n,arguments)},this.setData(t)}var o=n(58),s=i(o),a=n(1),h=n(88);r.prototype.setData=function(t){var e,n,i,r,o;if(this._data){for(this._data.off&&this._data.off("*",this.listener),e=this._data.getIds({filter:this._options&&this._options.filter}),o=[],i=0,r=e.length;i0&&(s[i-1].pointNext=s[i]);return s},r.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t),this.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,n=function(t){e._onMouseDown(t)},i=function(t){e._onTouchStart(t)},r=function(t){e._onWheel(t)},o=function(t){e._onTooltip(t)},s=function(t){e._onClick(t)};l.addEventListener(this.frame.canvas,"mousedown",n),l.addEventListener(this.frame.canvas,"touchstart",i),l.addEventListener(this.frame.canvas,"mousewheel",r),l.addEventListener(this.frame.canvas,"mousemove",o),l.addEventListener(this.frame.canvas,"click",s),this.containerElement.appendChild(this.frame)},r.prototype._setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},r.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},r.prototype.animationStart=function(){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()},r.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},r.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},r.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},r.prototype._readData=function(t){this._initializeData(t,this.style),this.dataFilter?this.dataPoints=this.dataFilter._getDataPoints():this.dataPoints=this._getDataPoints(this.dataGroup.getDataTable()),this._redrawFilter()},r.prototype.setData=function(t){this._readData(t),this.redraw(),this.animationAutoStart&&this.dataFilter&&this.animationStart()},r.prototype.setOptions=function(t){this.animationStop(),v.setOptions(t,this),this.setPointDrawingMethod(),this._setSize(this.width,this.height),this.dataGroup.reload(),this.animationAutoStart&&this.dataFilter&&this.animationStart()},r.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case r.STYLE.BAR:t=r.prototype._redrawBarGraphPoint;break;case r.STYLE.BARCOLOR:t=r.prototype._redrawBarColorGraphPoint;break;case r.STYLE.BARSIZE:t=r.prototype._redrawBarSizeGraphPoint;break;case r.STYLE.DOT:t=r.prototype._redrawDotGraphPoint;break;case r.STYLE.DOTLINE:t=r.prototype._redrawDotLineGraphPoint;break;case r.STYLE.DOTCOLOR:t=r.prototype._redrawDotColorGraphPoint;break;case r.STYLE.DOTSIZE:t=r.prototype._redrawDotSizeGraphPoint;break;case r.STYLE.SURFACE:t=r.prototype._redrawSurfaceGraphPoint;break;case r.STYLE.GRID:t=r.prototype._redrawGridGraphPoint;break;case r.STYLE.LINE:t=r.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},r.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},r.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},r.prototype._redrawClear=function(){var t=this.frame.canvas,e=t.getContext("2d");e.clearRect(0,0,t.width,t.height)},r.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},r.prototype._getLegendWidth=function(){var t;if(this.style===r.STYLE.DOTSIZE){var e=this._dotSize();t=e*this.dotSizeMaxFraction}else t=this.style===r.STYLE.BARSIZE?this.xBarWidth:20;return t},r.prototype._redrawLegend=function(){if(this.showLegend===!0&&this.style!==r.STYLE.LINE&&this.style!==r.STYLE.BARSIZE){var t=this.style===r.STYLE.BARSIZE||this.style===r.STYLE.DOTSIZE,e=this.style===r.STYLE.DOTSIZE||this.style===r.STYLE.DOTCOLOR||this.style===r.STYLE.BARCOLOR,n=Math.max(.25*this.frame.clientHeight,100),i=this.margin,o=this._getLegendWidth(),s=this.frame.clientWidth-this.margin,a=s-o,h=i+n,u=this._getContext();if(u.lineWidth=1,u.font="14px arial",t===!1){var l,c=0,d=n;for(l=c;l0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*i)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(n,o.x,o.y)},r.prototype.drawAxisLabelY=function(t,e,n,i,r){void 0===r&&(r=0);var o=this._convert3Dto2D(e);Math.cos(2*i)<0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*i)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(n,o.x,o.y)},r.prototype.drawAxisLabelZ=function(t,e,n,i){void 0===i&&(i=0);var r=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(n,r.x-i,r.y)},r.prototype._line3d=function(t,e,n,i){var r=this._convert3Dto2D(e),o=this._convert3Dto2D(n);this._line(t,r,o,i)},r.prototype._redrawAxis=function(){var t,e,n,i,r,o,s,a,h,u,l,d=this._getContext();d.font=24/this.camera.getArmLength()+"px arial";var p=.025/this.scale.x,v=.025/this.scale.y,y=5/this.camera.getArmLength(),g=this.camera.getArmRotation().horizontal,_=new f(Math.cos(g),Math.sin(g)),w=this.xRange,x=this.yRange,b=this.zRange;for(d.lineWidth=1,i=void 0===this.defaultXStep,n=new m(w.min,w.max,this.xStep,i),n.start(!0);!n.end();){var S=n.getCurrent();if(this.showGrid?(t=new c(S,x.min,b.min),e=new c(S,x.max,b.min),this._line3d(d,t,e,this.gridColor)):this.showXAxis&&(t=new c(S,x.min,b.min),e=new c(S,x.min+p,b.min),this._line3d(d,t,e,this.axisColor),t=new c(S,x.max,b.min),e=new c(S,x.max-p,b.min),this._line3d(d,t,e,this.axisColor)),this.showXAxis){s=_.x>0?x.min:x.max;var T=new c(S,s,b.min),D=" "+this.xValueLabel(S)+" ";this.drawAxisLabelX(d,T,D,g,y)}n.next()}for(d.lineWidth=1,i=void 0===this.defaultYStep,n=new m(x.min,x.max,this.yStep,i),n.start(!0);!n.end();){var M=n.getCurrent();if(this.showGrid?(t=new c(w.min,M,b.min),e=new c(w.max,M,b.min),this._line3d(d,t,e,this.gridColor)):this.showYAxis&&(t=new c(w.min,M,b.min),e=new c(w.min+v,M,b.min),this._line3d(d,t,e,this.axisColor),t=new c(w.max,M,b.min),e=new c(w.max-v,M,b.min),this._line3d(d,t,e,this.axisColor)),this.showYAxis){o=_.y>0?w.min:w.max,T=new c(o,M,b.min);var D=" "+this.yValueLabel(M)+" ";this.drawAxisLabelY(d,T,D,g,y)}n.next()}if(this.showZAxis){for(d.lineWidth=1,i=void 0===this.defaultZStep,n=new m(b.min,b.max,this.zStep,i),n.start(!0),o=_.x>0?w.min:w.max,s=_.y<0?x.min:x.max;!n.end();){var k=n.getCurrent(),O=new c(o,s,k),E=this._convert3Dto2D(O);e=new f(E.x-y,E.y),this._line(d,E,e,this.axisColor);var D=this.zValueLabel(k)+" ";this.drawAxisLabelZ(d,O,D,5),n.next()}d.lineWidth=1,t=new c(o,s,b.min),e=new c(o,s,b.max),this._line3d(d,t,e,this.axisColor)}if(this.showXAxis){var C,P;d.lineWidth=1,C=new c(w.min,x.min,b.min),P=new c(w.max,x.min,b.min),this._line3d(d,C,P,this.axisColor),C=new c(w.min,x.max,b.min),P=new c(w.max,x.max,b.min),this._line3d(d,C,P,this.axisColor)}this.showYAxis&&(d.lineWidth=1,t=new c(w.min,x.min,b.min),e=new c(w.min,x.max,b.min),this._line3d(d,t,e,this.axisColor),t=new c(w.max,x.min,b.min),e=new c(w.max,x.max,b.min),this._line3d(d,t,e,this.axisColor));var L=this.xLabel;L.length>0&&this.showXAxis&&(l=.1/this.scale.y,o=(w.max+3*w.min)/4,s=_.x>0?x.min-l:x.max+l,r=new c(o,s,b.min),this.drawAxisLabelX(d,r,L,g));var Y=this.yLabel;Y.length>0&&this.showYAxis&&(u=.1/this.scale.x,o=_.y>0?w.min-u:w.max+u,s=(x.max+3*x.min)/4,r=new c(o,s,b.min),this.drawAxisLabelY(d,r,Y,g));var R=this.zLabel;R.length>0&&this.showZAxis&&(h=30,o=_.x>0?w.min:w.max,s=_.y<0?x.min:x.max,a=(b.max+3*b.min)/4,r=new c(o,s,a),this.drawAxisLabelZ(d,r,R,h))},r.prototype._hsv2rgb=function(t,e,n){var i,r,o,s,a,h;switch(s=n*e,a=Math.floor(t/60),h=s*(1-Math.abs(t/60%2-1)),a){case 0:i=s,r=h,o=0;break;case 1:i=h,r=s,o=0;break;case 2:i=0,r=s,o=h;break;case 3:i=0,r=h,o=s;break;case 4:i=h,r=0,o=s;break;case 5:i=s,r=0,o=h;break;default:i=0,r=0,o=0}return"RGB("+parseInt(255*i)+","+parseInt(255*r)+","+parseInt(255*o)+")"},r.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-(this.eye.z/this.camera.getArmLength())*this.dataColor.strokeWidth:this.dataColor.strokeWidth},r.prototype._redrawBar=function(t,e,n,i,r,o){var s,a,h=this,u=e.point,l=this.zRange.min,f=[{point:new c(u.x-n,u.y-i,u.z)},{point:new c(u.x+n,u.y-i,u.z)},{point:new c(u.x+n,u.y+i,u.z)},{point:new c(u.x-n,u.y+i,u.z)}],d=[{point:new c(u.x-n,u.y-i,l)},{point:new c(u.x+n,u.y-i,l)},{point:new c(u.x+n,u.y+i,l)},{point:new c(u.x-n,u.y+i,l)}];f.forEach(function(t){t.screen=h._convert3Dto2D(t.point)}),d.forEach(function(t){t.screen=h._convert3Dto2D(t.point)});var p=[{corners:f,center:c.avg(d[0].point,d[2].point)},{corners:[f[0],f[1],d[1],d[0]],center:c.avg(d[1].point,d[0].point)},{corners:[f[1],f[2],d[2],d[1]],center:c.avg(d[2].point,d[1].point)},{corners:[f[2],f[3],d[3],d[2]],center:c.avg(d[3].point,d[2].point)},{corners:[f[3],f[0],d[0],d[3]],center:c.avg(d[0].point,d[3].point)}];for(e.surfaces=p,s=0;s0}if(a){var d,p=(e.point.z+n.point.z+i.point.z+r.point.z)/4,m=240*(1-(p-this.zRange.min)*this.scale.z/this.verticalRatio),v=1;this.showShadow?(d=Math.min(1+l.x/f/2,1),o=this._hsv2rgb(m,v,d),s=o):(d=1,o=this._hsv2rgb(m,v,d),s=this.axisColor)}else o="gray",s=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var y=[e,n,r,i];this._polygon(t,y,o,s)}},r.prototype._drawGridLine=function(t,e,n){if(void 0!==e&&void 0!==n){var i=(e.point.z+n.point.z)/2,r=240*(1-(i-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(r,1,1),this._line(t,e.screen,n.screen)}},r.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},r.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},r.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-1:0}var i=e[0],r=e[1],o=e[2],s=n((r.x-i.x)*(t.y-i.y)-(r.y-i.y)*(t.x-i.x)),a=n((o.x-r.x)*(t.y-r.y)-(o.y-r.y)*(t.x-r.x)),h=n((i.x-o.x)*(t.y-o.y)-(i.y-o.y)*(t.x-o.x));return!(0!=s&&0!=a&&s!=a||0!=a&&0!=h&&a!=h||0!=s&&0!=h&&s!=h)},r.prototype._dataPointFromXY=function(t,e){var n,i=100,o=null,s=null,a=null,h=new f(t,e);if(this.style===r.STYLE.BAR||this.style===r.STYLE.BARCOLOR||this.style===r.STYLE.BARSIZE)for(n=this.dataPoints.length-1;n>=0;n--){o=this.dataPoints[n];var u=o.surfaces;if(u)for(var l=u.length-1;l>=0;l--){var c=u[l],d=c.corners,p=[d[0].screen,d[1].screen,d[2].screen],m=[d[2].screen,d[3].screen,d[0].screen];if(this._insideTriangle(h,p)||this._insideTriangle(h,m))return o}}else for(n=0;n"+this.xLabel+":"+t.point.x+""+this.yLabel+":"+t.point.y+""+this.zLabel+":"+t.point.z+"",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(n),this.frame.appendChild(i);var r=e.offsetWidth,o=e.offsetHeight,s=n.offsetHeight,a=i.offsetWidth,u=i.offsetHeight,l=t.screen.x-r/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-r),n.style.left=t.screen.x+"px",n.style.top=t.screen.y-s+"px",e.style.left=l+"px",e.style.top=t.screen.y-s-o+"px",i.style.left=t.screen.x-a/2+"px",i.style.top=t.screen.y-u/2+"px"},r.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},r.prototype.setCameraPosition=function(t){v.setCameraPosition(t,this),this.redraw()},r.prototype.setSize=function(t,e){this._setSize(t,e),this.redraw()},t.exports=r},function(t,e,n){t.exports={default:n(95),__esModule:!0}},function(t,e,n){n(96),t.exports=n(17).Object.assign},function(t,e,n){var i=n(15);i(i.S+i.F,"Object",{assign:n(97)})},function(t,e,n){var i=n(35),r=n(73),o=n(74),s=n(49),a=n(10),h=Object.assign;t.exports=!h||n(26)(function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst";return t[n]=7,i.split("").forEach(function(t){e[t]=t}),7!=h({},t)[n]||Object.keys(h({},e)).join("")!=i})?function(t,e){for(var n=s(t),h=arguments.length,u=1,l=r.f,c=o.f;h>u;)for(var f,d=a(arguments[u++]),p=l?i(d).concat(l(d)):i(d),m=p.length,v=0;m>v;)c.call(d,f=p[v++])&&(n[f]=d[f]);return n}:h},function(t,e){function n(t){if(t)return i(t)}function i(t){for(var e in n.prototype)t[e]=n.prototype[e]; -return t}t.exports=n,n.prototype.on=n.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},n.prototype.once=function(t,e){function n(){i.off(t,n),e.apply(this,arguments)}var i=this;return this._callbacks=this._callbacks||{},n.fn=e,this.on(t,n),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[t];if(!n)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var i,r=0;ro&&(t=i(t)*o),n(e)>o&&(e=i(e)*o),this.cameraOffset.x=t,this.cameraOffset.y=e,this.calculateCameraOrientation()},r.prototype.getOffset=function(t,e){return this.cameraOffset},r.prototype.setArmLocation=function(t,e,n){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=n,this.calculateCameraOrientation()},r.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},r.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},r.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.setOffset(this.cameraOffset.x,this.cameraOffset.y),this.calculateCameraOrientation())},r.prototype.getArmLength=function(){return this.armLength},r.prototype.getCameraLocation=function(){return this.cameraLocation},r.prototype.getCameraRotation=function(){return this.cameraRotation},r.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal;var t=this.cameraRotation.x,e=(this.cameraRotation.y,this.cameraRotation.z),n=this.cameraOffset.x,i=this.cameraOffset.y,r=Math.sin,o=Math.cos;this.cameraLocation.x=this.cameraLocation.x+n*o(e)+i*-r(e)*o(t),this.cameraLocation.y=this.cameraLocation.y+n*r(e)+i*o(e)*o(t),this.cameraLocation.z=this.cameraLocation.z+i*r(t)},t.exports=r},function(t,e,n){t.exports={default:n(103),__esModule:!0}},function(t,e,n){n(104),t.exports=n(17).Math.sign},function(t,e,n){var i=n(15);i(i.S,"Math",{sign:n(105)})},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,n){function i(t,e,n){this.data=t.getDataSet(),this.column=e,this.graph=n,this.index=void 0,this.value=void 0,this.values=t.getDistinctValues(this.column),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,n.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var r=n(92);i.prototype.isLoaded=function(){return this.loaded},i.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},i.prototype.getLabel=function(){return this.graph.filterLabel},i.prototype.getColumn=function(){return this.column},i.prototype.getSelectedValue=function(){if(void 0!==this.index)return this.values[this.index]},i.prototype.getValues=function(){return this.values},i.prototype.getValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");return this.values[t]},i.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var n={};n.column=this.column,n.value=this.values[t];var i=new r(this.data,{filter:function(t){return t[n.column]==n.value}}).get();e=this.graph._getDataPoints(i),this.dataPoints[t]=e}return e},i.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},i.prototype.selectValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");this.index=t,this.value=this.values[t]},i.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},i.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},i.prototype.setIndex=function(t){if(!(tthis.values.length-1&&(i=this.values.length-1),i},i.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,n=t/(this.values.length-1)*e,i=n+3;return i},i.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,n=this.startSlideX+e,i=this.leftToIndex(n);this.setIndex(i),r.preventDefault()},i.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",r.removeEventListener(document,"mousemove",this.onmousemove),r.removeEventListener(document,"mouseup",this.onmouseup),r.preventDefault()},t.exports=i},function(t,e){function n(t,e,n,i){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,n,i)}n.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},n.prototype.setRange=function(t,e,n,i){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(n))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t?t:0,this._end=e?e:0,this.setStep(n,i)},n.prototype.setStep=function(t,e){void 0===t||t<=0||(void 0!==e&&(this.prettyStep=e),this.prettyStep===!0?this._step=n.calculatePrettyStep(t):this._step=t)},n.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},n=Math.pow(10,Math.round(e(t))),i=2*Math.pow(10,Math.round(e(t/2))),r=5*Math.pow(10,Math.round(e(t/5))),o=n;return Math.abs(i-t)<=Math.abs(o-t)&&(o=i),Math.abs(r-t)<=Math.abs(o-t)&&(o=r),o<=0&&(o=1),o},n.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},n.prototype.getStep=function(){return this._step},n.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=n},function(t,e){function n(){this.min=void 0,this.max=void 0}n.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxn)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=n}},n.prototype.range=function(){return this.max-this.min},n.prototype.center=function(){return(this.min+this.max)/2},t.exports=n},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function o(t){return void 0===t||""===t||"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function s(t,e){return void 0===t||""===t?e:t+o(e)}function a(t,e,n,i){var r,o;for(var a in n)r=n[a],o=s(i,r),e[o]=t[r]}function h(t,e,n,i){var r,o;for(var a in n)r=n[a],void 0!==t[r]&&(o=s(i,r),e[o]=t[r])}function u(t,e){if(void 0===t||r(t))throw new Error("No DEFAULTS passed");if(void 0===e)throw new Error("No dst passed");O=t,a(t,e,M),a(t,e,k,"default"),c(t,e),e.margin=10,e.showGrayBottom=!1,e.showTooltip=!1,e.onclick_callback=null,e.eye=new S(0,0,-1)}function l(t,e){if(void 0!==t){if(void 0===e)throw new Error("No dst passed");if(void 0===O||r(O))throw new Error("DEFAULTS not set for module Settings");h(t,e,M),h(t,e,k,"default"),c(t,e)}}function c(t,e){void 0!==t.backgroundColor&&v(t.backgroundColor,e),y(t.dataColor,e),m(t.style,e),f(t.showLegend,e),g(t.cameraPosition,e),void 0!==t.tooltip&&(e.showTooltip=t.tooltip),void 0!=t.onclick&&(e.onclick_callback=t.onclick),void 0!==t.tooltipStyle&&x.selectiveDeepExtend(["tooltipStyle"],e,t)}function f(t,e){if(void 0===t){var n=void 0===O.showLegend;if(n){var i=e.style===T.DOTCOLOR||e.style===T.DOTSIZE;e.showLegend=i}}else e.showLegend=t}function d(t){var e=D[t];return void 0===e?-1:e}function p(t){var e=!1;for(var n in T)if(T[n]===t){e=!0;break}return e}function m(t,e){if(void 0!==t){var n;if("string"==typeof t){if(n=d(t),n===-1)throw new Error("Style '"+t+"' is invalid")}else{if(!p(t))throw new Error("Style '"+t+"' is invalid");n=t}e.style=n}}function v(t,e){var n="white",i="gray",r=1;if("string"==typeof t)n=t,i="none",r=0;else{if("object"!==("undefined"==typeof t?"undefined":(0,w.default)(t)))throw new Error("Unsupported type of backgroundColor");void 0!==t.fill&&(n=t.fill),void 0!==t.stroke&&(i=t.stroke),void 0!==t.strokeWidth&&(r=t.strokeWidth)}e.frame.style.backgroundColor=n,e.frame.style.borderColor=i,e.frame.style.borderWidth=r+"px",e.frame.style.borderStyle="solid"}function y(t,e){void 0!==t&&(void 0===e.dataColor&&(e.dataColor={}),"string"==typeof t?(e.dataColor.fill=t,e.dataColor.stroke=t):(t.fill&&(e.dataColor.fill=t.fill),t.stroke&&(e.dataColor.stroke=t.stroke),void 0!==t.strokeWidth&&(e.dataColor.strokeWidth=t.strokeWidth)))}function g(t,e){var n=t;void 0!==n&&(void 0===e.camera&&(e.camera=new b),e.camera.setArmRotation(n.horizontal,n.vertical),e.camera.setArmLength(n.distance))}var _=n(62),w=i(_),x=n(1),b=n(101),S=n(99),T={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9},D={dot:T.DOT,"dot-line":T.DOTLINE,"dot-color":T.DOTCOLOR,"dot-size":T.DOTSIZE,line:T.LINE,grid:T.GRID,surface:T.SURFACE,bar:T.BAR,"bar-color":T.BARCOLOR,"bar-size":T.BARSIZE},M=["width","height","filterLabel","legendLabel","xLabel","yLabel","zLabel","xValueLabel","yValueLabel","zValueLabel","showXAxis","showYAxis","showZAxis","showGrid","showPerspective","showShadow","keepAspectRatio","verticalRatio","dotSizeRatio","dotSizeMinFraction","dotSizeMaxFraction","showAnimationControls","animationInterval","animationPreload","animationAutoStart","axisColor","gridColor","xCenter","yCenter"],k=["xBarWidth","yBarWidth","valueMin","valueMax","xMin","xMax","xStep","yMin","yMax","yStep","zMin","zMax","zStep"],O=void 0;t.exports.STYLE=T,t.exports.setDefaults=u,t.exports.setOptions=l,t.exports.setCameraPosition=g},function(t,e,n){function i(){this.dataTable=null}var r=n(88),o=n(92),s=(n(99),n(109));i.prototype.initializeData=function(t,e,n){if(this.dataSet&&this.dataSet.off("*",this._onChange),void 0!==e){Array.isArray(e)&&(e=new r(e));var i;if(!(e instanceof r||e instanceof o))throw new Error("Array, DataSet, or DataView expected");if(i=e.get(),0!=i.length){this.dataSet=e,this.dataTable=i;var s=this;this._onChange=function(){t.setData(s.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z";var a=t.hasBars(n);if(a&&(void 0!==t.defaultXBarWidth?this.xBarWidth=t.defaultXBarWidth:this.xBarWidth=this.getSmallestDifference(i,this.colX)||1,void 0!==t.defaultYBarWidth?this.yBarWidth=t.defaultYBarWidth:this.yBarWidth=this.getSmallestDifference(i,this.colY)||1),this._initializeRange(i,this.colX,t,a),this._initializeRange(i,this.colY,t,a),this._initializeRange(i,this.colZ,t,!1),i[0].hasOwnProperty("style")){this.colValue="style";var h=this.getColumnRange(i,this.colValue);this._setRangeDefaults(h,t.defaultValueMin,t.defaultValueMax),this.valueRange=h}}}},i.prototype._collectRangeSettings=function(t,e){var n=["x","y","z"].indexOf(t);if(n==-1)throw new Error("Column '"+t+"' invalid");var i=t.toUpperCase();return{barWidth:this[t+"BarWidth"],min:e["default"+i+"Min"],max:e["default"+i+"Max"],step:e["default"+i+"Step"],range_label:t+"Range",step_label:t+"Step"}},i.prototype._initializeRange=function(t,e,n,i){var r=5,o=this._collectRangeSettings(e,n),s=this.getColumnRange(t,e);i&&"z"!=e&&s.expand(o.barWidth/2),this._setRangeDefaults(s,o.min,o.max),this[o.range_label]=s,this[o.step_label]=void 0!==o.step?o.step:s.range()/r},i.prototype.getDistinctValues=function(t,e){void 0===e&&(e=this.dataTable);for(var n=[],i=0;io)&&(i=o)}return i},i.prototype.getColumnRange=function(t,e){for(var n=new s,i=0;i0?u._handlers[t]=i:(n.off(t,o),delete u._handlers[t]))}),u},u.emit=function(e,i){t=i.target,n.emit(e,i)},u.destroy=function(){var t=n.element.hammer,e=t.indexOf(u);e!==-1&&t.splice(e,1),t.length||delete n.element.hammer,u._handlers={},n.destroy()},u}})},function(t,e,n){var i;/*! Hammer.JS - v2.0.7 - 2016-04-22 +"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={exports:{},id:i,loaded:!1};return t[i].call(r.exports,r,r.exports,e),r.loaded=!0,r.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){e.util=n(1),e.DOMutil=n(87),e.DataSet=n(88),e.DataView=n(92),e.Queue=n(91),e.Graph3d=n(93),e.graph3d={Camera:n(101),Filter:n(106),Point2d:n(100),Point3d:n(99),Slider:n(107),StepNumber:n(108)},e.moment=n(82),e.Hammer=n(112),e.keycharm=n(115)},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}var r=n(2),o=i(r),s=n(55),a=i(s),h=n(58),u=i(h),l=n(62),c=i(l),f=n(82),d=n(86);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;t.hasChildNodes()===!0;)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,n,i){if(e==t)return.5;var r=1/(e-t);return Math.max(0,(i-t)*r)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var n=p.exec(t);if(n)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return d.v4()},e.assignAllKeys=function(t,e){for(var n in t)t.hasOwnProperty(n)&&"object"!==(0,c.default)(t[n])&&(t[n]=e)},e.fillIfDefined=function(t,n){var i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var r in t)void 0!==n[r]&&("object"!==(0,c.default)(n[r])?void 0!==n[r]&&null!==n[r]||void 0===t[r]||i!==!0?t[r]=n[r]:delete t[r]:"object"===(0,c.default)(t[r])&&e.fillIfDefined(t[r],n[r],i))},e.protoExtend=function(t,e){for(var n=1;n3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var o=2;o3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(i))throw new TypeError("Arrays are not supported by deepExtend");for(var o in i)if(i.hasOwnProperty(o)&&t.indexOf(o)==-1)if(i[o]&&i[o].constructor===Object)void 0===n[o]&&(n[o]={}),n[o].constructor===Object?e.deepExtend(n[o],i[o]):null===i[o]&&void 0!==n[o]&&r===!0?delete n[o]:n[o]=i[o];else if(Array.isArray(i[o])){n[o]=[];for(var s=0;s=0&&(e="DOMMouseScroll"),t.addEventListener(e,n,i)):t.attachEvent("on"+e,n)},e.removeEventListener=function(t,e,n,i){t.removeEventListener?(void 0===i&&(i=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,n,i)):t.detachEvent("on"+e,n)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,n){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":n||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,n,i){return e+e+n+n+i+i});var n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:null},e.overrideOpacity=function(t,n){if(t.indexOf("rgba")!=-1)return t;if(t.indexOf("rgb")!=-1){var i=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+i[0]+","+i[1]+","+i[2]+","+n+")"}var i=e.hexToRGB(t);return null==i?t:"rgba("+i.r+","+i.g+","+i.b+","+n+")"},e.RGBToHex=function(t,e,n){return"#"+((1<<24)+(t<<16)+(e<<8)+n).toString(16).slice(1)},e.parseColor=function(t){var n;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var i=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(i[0],i[1],i[2])}if(e.isValidHex(t)===!0){var r=e.hexToHSV(t),o={h:r.h,s:.8*r.s,v:Math.min(1,1.02*r.v)},s={h:r.h,s:Math.min(1,1.25*r.s),v:.8*r.v},a=e.HSVToHex(s.h,s.s,s.v),h=e.HSVToHex(o.h,o.s,o.v);n={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else n={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else n={},n.background=t.background||void 0,n.border=t.border||void 0,e.isString(t.highlight)?n.highlight={border:t.highlight,background:t.highlight}:(n.highlight={},n.highlight.background=t.highlight&&t.highlight.background||void 0,n.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?n.hover={border:t.hover,background:t.hover}:(n.hover={},n.hover.background=t.hover&&t.hover.background||void 0,n.hover.border=t.hover&&t.hover.border||void 0);return n},e.RGBToHSV=function(t,e,n){t/=255,e/=255,n/=255;var i=Math.min(t,Math.min(e,n)),r=Math.max(t,Math.max(e,n));if(i==r)return{h:0,s:0,v:i};var o=t==i?e-n:n==i?t-e:n-t,s=t==i?3:n==i?1:5,a=60*(s-o/(r-i))/360,h=(r-i)/r,u=r;return{h:a,s:h,v:u}};var m={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var n=t.split(":"),i=n[0].trim(),r=n[1].trim();e[i]=r}}),e},join:function(t){return(0,u.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,n){var i=m.split(t.style.cssText),r=m.split(n),o=e.extend(i,r);t.style.cssText=m.join(o)},e.removeCssText=function(t,e){var n=m.split(t.style.cssText),i=m.split(e);for(var r in i)i.hasOwnProperty(r)&&delete n[r];t.style.cssText=m.join(n)},e.HSVToRGB=function(t,e,n){var i,r,o,s=Math.floor(6*t),a=6*t-s,h=n*(1-e),u=n*(1-a*e),l=n*(1-(1-a)*e);switch(s%6){case 0:i=n,r=l,o=h;break;case 1:i=u,r=n,o=h;break;case 2:i=h,r=n,o=l;break;case 3:i=h,r=u,o=n;break;case 4:i=l,r=h,o=n;break;case 5:i=n,r=h,o=u}return{r:Math.floor(255*i),g:Math.floor(255*r),b:Math.floor(255*o)}},e.HSVToHex=function(t,n,i){var r=e.HSVToRGB(t,n,i);return e.RGBToHex(r.r,r.g,r.b)},e.hexToHSV=function(t){var n=e.hexToRGB(t);return e.RGBToHSV(n.r,n.g,n.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,n){if("object"==("undefined"==typeof n?"undefined":(0,c.default)(n))){for(var i=(0,a.default)(n),r=0;r0&&e(i,t[r-1])<0;r--)t[r]=t[r-1];t[r]=i}return t},e.mergeOptions=function(t,e,n){var i=(arguments.length>3&&void 0!==arguments[3]&&arguments[3],arguments.length>4&&void 0!==arguments[4]?arguments[4]:{});if(null===e[n])t[n]=(0,a.default)(i[n]);else if(void 0!==e[n])if("boolean"==typeof e[n])t[n].enabled=e[n];else{void 0===e[n].enabled&&(t[n].enabled=!0);for(var r in e[n])e[n].hasOwnProperty(r)&&(t[n][r]=e[n][r])}},e.binarySearchCustom=function(t,e,n,i){for(var r=1e4,o=0,s=0,a=t.length-1;s<=a&&o0)return"before"==i?Math.max(0,h-1):h;if(r(s,e)<0&&r(a,e)>0)return"before"==i?h:Math.min(t.length-1,h+1);r(s,e)<0?c=h+1:f=h-1,l++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var n=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;return n==i&&(i=e.clientWidth),document.body.removeChild(e),n-i},e.topMost=function(t,e){var n=void 0;Array.isArray(e)||(e=[e]);var i=!0,r=!1,s=void 0;try{for(var a,h=(0,o.default)(t);!(i=(a=h.next()).done);i=!0){var u=a.value;if(u){n=u[e[0]];for(var l=1;l=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,n):"values"==e?r(0,t[n]):r(0,[n,t[n]])},"values"),o.Arguments=o.Array,i("keys"),i("values"),i("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports={}},function(t,e,n){var i=n(10),r=n(12);t.exports=function(t){return i(r(t))}},function(t,e,n){var i=n(11);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==i(t)?t.split(""):Object(t)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var i=n(14),r=n(15),o=n(30),s=n(20),a=n(31),h=n(8),u=n(32),l=n(46),c=n(48),f=n(47)("iterator"),d=!([].keys&&"next"in[].keys()),p="@@iterator",m="keys",v="values",y=function(){return this};t.exports=function(t,e,n,g,_,w,x){u(n,e,g);var b,S,T,D=function(t){if(!d&&t in E)return E[t];switch(t){case m:return function(){return new n(this,t)};case v:return function(){return new n(this,t)}}return function(){return new n(this,t)}},M=e+" Iterator",k=_==v,O=!1,E=t.prototype,C=E[f]||E[p]||_&&E[_],P=C||D(_),L=_?k?D("entries"):P:void 0,R="Array"==e?E.entries||C:C;if(R&&(T=c(R.call(new t)),T!==Object.prototype&&T.next&&(l(T,M,!0),i||a(T,f)||s(T,f,y))),k&&C&&C.name!==v&&(O=!0,P=function(){return C.call(this)}),i&&!x||!d&&!O&&E[f]||s(E,f,P),h[e]=P,h[M]=y,_)if(b={values:k?P:D(v),keys:w?P:D(m),entries:L},x)for(S in b)S in E||o(E,S,b[S]);else r(r.P+r.F*(d||O),e,b);return b}},function(t,e){t.exports=!0},function(t,e,n){var i=n(16),r=n(17),o=n(18),s=n(20),a="prototype",h=function(t,e,n){var u,l,c,f=t&h.F,d=t&h.G,p=t&h.S,m=t&h.P,v=t&h.B,y=t&h.W,g=d?r:r[e]||(r[e]={}),_=g[a],w=d?i:p?i[e]:(i[e]||{})[a];d&&(n=e);for(u in n)l=!f&&w&&void 0!==w[u],l&&u in g||(c=l?w[u]:n[u],g[u]=d&&"function"!=typeof w[u]?n[u]:v&&l?o(c,i):y&&w[u]==c?function(t){var e=function(e,n,i){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,i)}return t.apply(this,arguments)};return e[a]=t[a],e}(c):m&&"function"==typeof c?o(Function.call,c):c,m&&((g.virtual||(g.virtual={}))[u]=c,t&h.R&&_&&!_[u]&&s(_,u,c)))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,h.U=64,h.R=128,t.exports=h},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"2.5.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){var i=n(19);t.exports=function(t,e,n){if(i(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,i){return t.call(e,n,i)};case 3:return function(n,i,r){return t.call(e,n,i,r)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){var i=n(21),r=n(29);t.exports=n(25)?function(t,e,n){return i.f(t,e,r(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var i=n(22),r=n(24),o=n(28),s=Object.defineProperty;e.f=n(25)?Object.defineProperty:function(t,e,n){if(i(t),e=o(e,!0),i(n),r)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var i=n(23);t.exports=function(t){if(!i(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){t.exports=!n(25)&&!n(26)(function(){return 7!=Object.defineProperty(n(27)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){t.exports=!n(26)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var i=n(23),r=n(16).document,o=i(r)&&i(r.createElement);t.exports=function(t){return o?r.createElement(t):{}}},function(t,e,n){var i=n(23);t.exports=function(t,e){if(!i(t))return t;var n,r;if(e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;if("function"==typeof(n=t.valueOf)&&!i(r=n.call(t)))return r;if(!e&&"function"==typeof(n=t.toString)&&!i(r=n.call(t)))return r;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){t.exports=n(20)},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var i=n(33),r=n(29),o=n(46),s={};n(20)(s,n(47)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=i(s,{next:r(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var i=n(22),r=n(34),o=n(44),s=n(41)("IE_PROTO"),a=function(){},h="prototype",u=function(){var t,e=n(27)("iframe"),i=o.length,r="<",s=">";for(e.style.display="none",n(45).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(r+"script"+s+"document.F=Object"+r+"/script"+s),t.close(),u=t.F;i--;)delete u[h][o[i]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(a[h]=i(t),n=new a,a[h]=null,n[s]=t):n=u(),void 0===e?n:r(n,e)}},function(t,e,n){var i=n(21),r=n(22),o=n(35);t.exports=n(25)?Object.defineProperties:function(t,e){r(t);for(var n,s=o(e),a=s.length,h=0;a>h;)i.f(t,n=s[h++],e[n]);return t}},function(t,e,n){var i=n(36),r=n(44);t.exports=Object.keys||function(t){return i(t,r)}},function(t,e,n){var i=n(31),r=n(9),o=n(37)(!1),s=n(41)("IE_PROTO");t.exports=function(t,e){var n,a=r(t),h=0,u=[];for(n in a)n!=s&&i(a,n)&&u.push(n);for(;e.length>h;)i(a,n=e[h++])&&(~o(u,n)||u.push(n));return u}},function(t,e,n){var i=n(9),r=n(38),o=n(40);t.exports=function(t){return function(e,n,s){var a,h=i(e),u=r(h.length),l=o(s,u);if(t&&n!=n){for(;u>l;)if(a=h[l++],a!=a)return!0}else for(;u>l;l++)if((t||l in h)&&h[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var i=n(39),r=Math.min;t.exports=function(t){return t>0?r(i(t),9007199254740991):0}},function(t,e){var n=Math.ceil,i=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?i:n)(t)}},function(t,e,n){var i=n(39),r=Math.max,o=Math.min;t.exports=function(t,e){return t=i(t),t<0?r(t+e,0):o(t,e)}},function(t,e,n){var i=n(42)("keys"),r=n(43);t.exports=function(t){return i[t]||(i[t]=r(t))}},function(t,e,n){var i=n(16),r="__core-js_shared__",o=i[r]||(i[r]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e){var n=0,i=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+i).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var i=n(16).document;t.exports=i&&i.documentElement},function(t,e,n){var i=n(21).f,r=n(31),o=n(47)("toStringTag");t.exports=function(t,e,n){t&&!r(t=n?t:t.prototype,o)&&i(t,o,{configurable:!0,value:e})}},function(t,e,n){var i=n(42)("wks"),r=n(43),o=n(16).Symbol,s="function"==typeof o,a=t.exports=function(t){return i[t]||(i[t]=s&&o[t]||(s?o:r)("Symbol."+t))};a.store=i},function(t,e,n){var i=n(31),r=n(49),o=n(41)("IE_PROTO"),s=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),i(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?s:null}},function(t,e,n){var i=n(12);t.exports=function(t){return Object(i(t))}},function(t,e,n){var i=n(51)(!0);n(13)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=i(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){var i=n(39),r=n(12);t.exports=function(t){return function(e,n){var o,s,a=String(r(e)),h=i(n),u=a.length;return h<0||h>=u?t?"":void 0:(o=a.charCodeAt(h),o<55296||o>56319||h+1===u||(s=a.charCodeAt(h+1))<56320||s>57343?t?a.charAt(h):o:t?a.slice(h,h+2):(o-55296<<10)+(s-56320)+65536)}}},function(t,e,n){var i=n(22),r=n(53);t.exports=n(17).getIterator=function(t){var e=r(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return i(e.call(t))}},function(t,e,n){var i=n(54),r=n(47)("iterator"),o=n(8);t.exports=n(17).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||o[i(t)]}},function(t,e,n){var i=n(11),r=n(47)("toStringTag"),o="Arguments"==i(function(){return arguments}()),s=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=s(e=Object(t),r))?n:o?i(e):"Object"==(a=i(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){t.exports={default:n(56),__esModule:!0}},function(t,e,n){n(57);var i=n(17).Object;t.exports=function(t,e){return i.create(t,e)}},function(t,e,n){var i=n(15);i(i.S,"Object",{create:n(33)})},function(t,e,n){t.exports={default:n(59),__esModule:!0}},function(t,e,n){n(60),t.exports=n(17).Object.keys},function(t,e,n){var i=n(49),r=n(35);n(61)("keys",function(){return function(t){return r(i(t))}})},function(t,e,n){var i=n(15),r=n(17),o=n(26);t.exports=function(t,e){var n=(r.Object||{})[t]||Object[t],s={};s[t]=e(n),i(i.S+i.F*o(function(){n(1)}),"Object",s)}},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var r=n(63),o=i(r),s=n(66),a=i(s),h="function"==typeof a.default&&"symbol"==typeof o.default?function(t){return typeof t}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":typeof t};e.default="function"==typeof a.default&&"symbol"===h(o.default)?function(t){return"undefined"==typeof t?"undefined":h(t)}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":"undefined"==typeof t?"undefined":h(t)}},function(t,e,n){t.exports={default:n(64),__esModule:!0}},function(t,e,n){n(50),n(4),t.exports=n(65).f("iterator")},function(t,e,n){e.f=n(47)},function(t,e,n){t.exports={default:n(67),__esModule:!0}},function(t,e,n){n(68),n(79),n(80),n(81),t.exports=n(17).Symbol},function(t,e,n){var i=n(16),r=n(31),o=n(25),s=n(15),a=n(30),h=n(69).KEY,u=n(26),l=n(42),c=n(46),f=n(43),d=n(47),p=n(65),m=n(70),v=n(71),y=n(72),g=n(75),_=n(22),w=n(9),x=n(28),b=n(29),S=n(33),T=n(76),D=n(78),M=n(21),k=n(35),O=D.f,E=M.f,C=T.f,P=i.Symbol,L=i.JSON,R=L&&L.stringify,Y="prototype",A=d("_hidden"),I=d("toPrimitive"),N={}.propertyIsEnumerable,z=l("symbol-registry"),W=l("symbols"),F=l("op-symbols"),G=Object[Y],j="function"==typeof P,V=i.QObject,B=!V||!V[Y]||!V[Y].findChild,H=o&&u(function(){return 7!=S(E({},"a",{get:function(){return E(this,"a",{value:7}).a}})).a})?function(t,e,n){var i=O(G,e);i&&delete G[e],E(t,e,n),i&&t!==G&&E(G,e,i)}:E,U=function(t){var e=W[t]=S(P[Y]);return e._k=t,e},X=j&&"symbol"==typeof P.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof P},Z=function(t,e,n){return t===G&&Z(F,e,n),_(t),e=x(e,!0),_(n),r(W,e)?(n.enumerable?(r(t,A)&&t[A][e]&&(t[A][e]=!1),n=S(n,{enumerable:b(0,!1)})):(r(t,A)||E(t,A,b(1,{})),t[A][e]=!0),H(t,e,n)):E(t,e,n)},q=function(t,e){_(t);for(var n,i=y(e=w(e)),r=0,o=i.length;o>r;)Z(t,n=i[r++],e[n]);return t},$=function(t,e){return void 0===e?S(t):q(S(t),e)},J=function(t){var e=N.call(this,t=x(t,!0));return!(this===G&&r(W,t)&&!r(F,t))&&(!(e||!r(this,t)||!r(W,t)||r(this,A)&&this[A][t])||e)},Q=function(t,e){if(t=w(t),e=x(e,!0),t!==G||!r(W,e)||r(F,e)){var n=O(t,e);return!n||!r(W,e)||r(t,A)&&t[A][e]||(n.enumerable=!0),n}},K=function(t){for(var e,n=C(w(t)),i=[],o=0;n.length>o;)r(W,e=n[o++])||e==A||e==h||i.push(e);return i},tt=function(t){for(var e,n=t===G,i=C(n?F:w(t)),o=[],s=0;i.length>s;)!r(W,e=i[s++])||n&&!r(G,e)||o.push(W[e]);return o};j||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var t=f(arguments.length>0?arguments[0]:void 0),e=function(n){this===G&&e.call(F,n),r(this,A)&&r(this[A],t)&&(this[A][t]=!1),H(this,t,b(1,n))};return o&&B&&H(G,t,{configurable:!0,set:e}),U(t)},a(P[Y],"toString",function(){return this._k}),D.f=Q,M.f=Z,n(77).f=T.f=K,n(74).f=J,n(73).f=tt,o&&!n(14)&&a(G,"propertyIsEnumerable",J,!0),p.f=function(t){return U(d(t))}),s(s.G+s.W+s.F*!j,{Symbol:P});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),nt=0;et.length>nt;)d(et[nt++]);for(var it=k(d.store),rt=0;it.length>rt;)m(it[rt++]);s(s.S+s.F*!j,"Symbol",{for:function(t){return r(z,t+="")?z[t]:z[t]=P(t)},keyFor:function(t){if(X(t))return v(z,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){B=!0},useSimple:function(){B=!1}}),s(s.S+s.F*!j,"Object",{create:$,defineProperty:Z,defineProperties:q,getOwnPropertyDescriptor:Q,getOwnPropertyNames:K,getOwnPropertySymbols:tt}),L&&s(s.S+s.F*(!j||u(function(){var t=P();return"[null]"!=R([t])||"{}"!=R({a:t})||"{}"!=R(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!X(t)){for(var e,n,i=[t],r=1;arguments.length>r;)i.push(arguments[r++]);return e=i[1],"function"==typeof e&&(n=e),!n&&g(e)||(e=function(t,e){if(n&&(e=n.call(this,t,e)),!X(e))return e}),i[1]=e,R.apply(L,i)}}}),P[Y][I]||n(20)(P[Y],I,P[Y].valueOf),c(P,"Symbol"),c(Math,"Math",!0),c(i.JSON,"JSON",!0)},function(t,e,n){var i=n(43)("meta"),r=n(23),o=n(31),s=n(21).f,a=0,h=Object.isExtensible||function(){return!0},u=!n(26)(function(){return h(Object.preventExtensions({}))}),l=function(t){s(t,i,{value:{i:"O"+ ++a,w:{}}})},c=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!o(t,i)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[i].i},f=function(t,e){if(!o(t,i)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[i].w},d=function(t){return u&&p.NEED&&h(t)&&!o(t,i)&&l(t),t},p=t.exports={KEY:i,NEED:!1,fastKey:c,getWeak:f,onFreeze:d}},function(t,e,n){var i=n(16),r=n(17),o=n(14),s=n(65),a=n(21).f;t.exports=function(t){var e=r.Symbol||(r.Symbol=o?{}:i.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:s.f(t)})}},function(t,e,n){var i=n(35),r=n(9);t.exports=function(t,e){for(var n,o=r(t),s=i(o),a=s.length,h=0;a>h;)if(o[n=s[h++]]===e)return n}},function(t,e,n){var i=n(35),r=n(73),o=n(74);t.exports=function(t){var e=i(t),n=r.f;if(n)for(var s,a=n(t),h=o.f,u=0;a.length>u;)h.call(t,s=a[u++])&&e.push(s);return e}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var i=n(11);t.exports=Array.isArray||function(t){return"Array"==i(t)}},function(t,e,n){var i=n(9),r=n(77).f,o={}.toString,s="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return r(t)}catch(t){return s.slice()}};t.exports.f=function(t){return s&&"[object Window]"==o.call(t)?a(t):r(i(t))}},function(t,e,n){var i=n(36),r=n(44).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},function(t,e,n){var i=n(74),r=n(29),o=n(9),s=n(28),a=n(31),h=n(24),u=Object.getOwnPropertyDescriptor;e.f=n(25)?u:function(t,e){if(t=o(t),e=s(e,!0),h)try{return u(t,e)}catch(t){}if(a(t,e))return r(!i.f.call(t,e),t[e])}},function(t,e){},function(t,e,n){n(70)("asyncIterator")},function(t,e,n){n(70)("observable")},function(t,e,n){t.exports="undefined"!=typeof window&&window.moment||n(83)},function(t,e,n){(function(t){!function(e,n){t.exports=n()}(this,function(){function e(){return wi.apply(null,arguments)}function n(t){wi=t}function i(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function r(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function o(t){var e;for(e in t)return!1;return!0}function s(t){return void 0===t}function a(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function h(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function u(t,e){var n,i=[];for(n=0;n0)for(n=0;n0?"future":"past"];return M(n)?n(e):n.replace(/%s/i,e)}function I(t,e){var n=t.toLowerCase();Ai[n]=Ai[n+"s"]=Ai[e]=t}function N(t){return"string"==typeof t?Ai[t]||Ai[t.toLowerCase()]:void 0}function z(t){var e,n,i={};for(n in t)l(t,n)&&(e=N(n),e&&(i[e]=t[n]));return i}function W(t,e){Ii[t]=e}function F(t){var e=[];for(var n in t)e.push({unit:n,priority:Ii[n]});return e.sort(function(t,e){return t.priority-e.priority}),e}function G(t,n){return function(i){return null!=i?(V(this,t,i),e.updateOffset(this,n),this):j(this,t)}}function j(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function V(t,e,n){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](n)}function B(t){return t=N(t),M(this[t])?this[t]():this}function H(t,e){if("object"==typeof t){t=z(t);for(var n=F(t),i=0;i=0;return(o?n?"+":"":"-")+Math.pow(10,Math.max(0,r)).toString().substr(1)+i}function X(t,e,n,i){var r=i;"string"==typeof i&&(r=function(){return this[i]()}),t&&(Fi[t]=r),e&&(Fi[e[0]]=function(){return U(r.apply(this,arguments),e[1],e[2])}),n&&(Fi[n]=function(){return this.localeData().ordinal(r.apply(this,arguments),t)})}function Z(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function q(t){var e,n,i=t.match(Ni);for(e=0,n=i.length;e=0&&zi.test(t);)t=t.replace(zi,n),zi.lastIndex=0,i-=1;return t}function Q(t,e,n){rr[t]=M(e)?e:function(t,i){return t&&n?n:e}}function K(t,e){return l(rr,t)?rr[t](e._strict,e._locale):new RegExp(tt(t))}function tt(t){return et(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,n,i,r){return e||n||i||r}))}function et(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function nt(t,e){var n,i=e;for("string"==typeof t&&(t=[t]),a(e)&&(i=function(t,n){n[e]=x(t)}),n=0;n=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function wt(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function xt(t,e,n){var i=7+e-n,r=(7+wt(t,0,i).getUTCDay()-e)%7;return-r+i-1}function bt(t,e,n,i,r){var o,s,a=(7+n-i)%7,h=xt(t,i,r),u=1+7*(e-1)+a+h;return u<=0?(o=t-1,s=vt(o)+u):u>vt(t)?(o=t+1,s=u-vt(t)):(o=t,s=u),{year:o,dayOfYear:s}}function St(t,e,n){var i,r,o=xt(t.year(),e,n),s=Math.floor((t.dayOfYear()-o-1)/7)+1;return s<1?(r=t.year()-1,i=s+Tt(r,e,n)):s>Tt(t.year(),e,n)?(i=s-Tt(t.year(),e,n),r=t.year()+1):(r=t.year(),i=s),{week:i,year:r}}function Tt(t,e,n){var i=xt(t,e,n),r=xt(t+1,e,n);return(vt(t)-i+r)/7}function Dt(t){return St(t,this._week.dow,this._week.doy).week}function Mt(){return this._week.dow}function kt(){return this._week.doy}function Ot(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Et(t){var e=St(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Ct(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Lt(t,e){return t?i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:i(this._weekdays)?this._weekdays:this._weekdays.standalone}function Rt(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function Yt(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function At(t,e,n){var i,r,o,s=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)o=f([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(o,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(o,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(o,"").toLocaleLowerCase();return n?"dddd"===e?(r=mr.call(this._weekdaysParse,s),r!==-1?r:null):"ddd"===e?(r=mr.call(this._shortWeekdaysParse,s),r!==-1?r:null):(r=mr.call(this._minWeekdaysParse,s),r!==-1?r:null):"dddd"===e?(r=mr.call(this._weekdaysParse,s),r!==-1?r:(r=mr.call(this._shortWeekdaysParse,s),r!==-1?r:(r=mr.call(this._minWeekdaysParse,s),r!==-1?r:null))):"ddd"===e?(r=mr.call(this._shortWeekdaysParse,s),r!==-1?r:(r=mr.call(this._weekdaysParse,s),r!==-1?r:(r=mr.call(this._minWeekdaysParse,s),r!==-1?r:null))):(r=mr.call(this._minWeekdaysParse,s),r!==-1?r:(r=mr.call(this._weekdaysParse,s),r!==-1?r:(r=mr.call(this._shortWeekdaysParse,s),r!==-1?r:null)))}function It(t,e,n){var i,r,o;if(this._weekdaysParseExact)return At.call(this,t,e,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(r=f([2e3,1]).day(i),n&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(r,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(r,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(r,"").replace(".",".?")+"$","i")),this._weekdaysParse[i]||(o="^"+this.weekdays(r,"")+"|^"+this.weekdaysShort(r,"")+"|^"+this.weekdaysMin(r,""),this._weekdaysParse[i]=new RegExp(o.replace(".",""),"i")),n&&"dddd"===e&&this._fullWeekdaysParse[i].test(t))return i;if(n&&"ddd"===e&&this._shortWeekdaysParse[i].test(t))return i;if(n&&"dd"===e&&this._minWeekdaysParse[i].test(t))return i;if(!n&&this._weekdaysParse[i].test(t))return i}}function Nt(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Ct(t,this.localeData()),this.add(t-e,"d")):e}function zt(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Wt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function Ft(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Vt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Mr),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Gt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Vt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=kr),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function jt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Vt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Or),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Vt(){function t(t,e){return e.length-t.length}var e,n,i,r,o,s=[],a=[],h=[],u=[];for(e=0;e<7;e++)n=f([2e3,1]).day(e),i=this.weekdaysMin(n,""),r=this.weekdaysShort(n,""),o=this.weekdays(n,""),s.push(i),a.push(r),h.push(o),u.push(i),u.push(r),u.push(o);for(s.sort(t),a.sort(t),h.sort(t),u.sort(t),e=0;e<7;e++)a[e]=et(a[e]),h[e]=et(h[e]),u[e]=et(u[e]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Bt(){return this.hours()%12||12}function Ht(){return this.hours()||24}function Ut(t,e){X(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Xt(t,e){return e._meridiemParse}function Zt(t){return"p"===(t+"").toLowerCase().charAt(0)}function qt(t,e,n){return t>11?n?"pm":"PM":n?"am":"AM"}function $t(t){return t?t.toLowerCase().replace("_","-"):t}function Jt(t){for(var e,n,i,r,o=0;o0;){if(i=Qt(r.slice(0,e).join("-")))return i;if(n&&n.length>=e&&b(r,n,!0)>=e-1)break;e--}o++}return null}function Qt(e){var n=null;if(!Rr[e]&&"undefined"!=typeof t&&t&&t.exports)try{n=Er._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Kt(n)}catch(t){}return Rr[e]}function Kt(t,e){var n;return t&&(n=s(e)?ne(t):te(t,e),n&&(Er=n)),Er._abbr}function te(t,e){if(null!==e){var n=Lr;if(e.abbr=t,null!=Rr[t])D("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),n=Rr[t]._config;else if(null!=e.parentLocale){if(null==Rr[e.parentLocale])return Yr[e.parentLocale]||(Yr[e.parentLocale]=[]),Yr[e.parentLocale].push({name:t,config:e}),null;n=Rr[e.parentLocale]._config}return Rr[t]=new E(O(n,e)),Yr[t]&&Yr[t].forEach(function(t){te(t.name,t.config)}),Kt(t),Rr[t]}return delete Rr[t],null}function ee(t,e){if(null!=e){var n,i=Lr;null!=Rr[t]&&(i=Rr[t]._config),e=O(i,e),n=new E(e),n.parentLocale=Rr[t],Rr[t]=n,Kt(t)}else null!=Rr[t]&&(null!=Rr[t].parentLocale?Rr[t]=Rr[t].parentLocale:null!=Rr[t]&&delete Rr[t]);return Rr[t]}function ne(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Er;if(!i(t)){if(e=Qt(t))return e;t=[t]}return Jt(t)}function ie(){return Oi(Rr)}function re(t){var e,n=t._a;return n&&p(t).overflow===-2&&(e=n[ar]<0||n[ar]>11?ar:n[hr]<1||n[hr]>ot(n[sr],n[ar])?hr:n[ur]<0||n[ur]>24||24===n[ur]&&(0!==n[lr]||0!==n[cr]||0!==n[fr])?ur:n[lr]<0||n[lr]>59?lr:n[cr]<0||n[cr]>59?cr:n[fr]<0||n[fr]>999?fr:-1,p(t)._overflowDayOfYear&&(ehr)&&(e=hr),p(t)._overflowWeeks&&e===-1&&(e=dr),p(t)._overflowWeekday&&e===-1&&(e=pr),p(t).overflow=e),t}function oe(t){var e,n,i,r,o,s,a=t._i,h=Ar.exec(a)||Ir.exec(a);if(h){for(p(t).iso=!0,e=0,n=zr.length;e10?"YYYY ":"YY "),o="HH:mm"+(n[4]?":ss":""),n[1]){var c=new Date(n[2]),f=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][c.getDay()];if(n[1].substr(0,3)!==f)return p(t).weekdayMismatch=!0,void(t._isValid=!1)}switch(n[5].length){case 2:0===h?a=" +0000":(h=l.indexOf(n[5][1].toUpperCase())-12,a=(h<0?" -":" +")+(""+h).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:a=u[n[5]];break;default:a=u[" GMT"]}n[5]=a,t._i=n.splice(1).join(""),s=" ZZ",t._f=i+r+o+s,fe(t),p(t).rfc2822=!0}else t._isValid=!1}function ae(t){var n=Fr.exec(t._i);return null!==n?void(t._d=new Date(+n[1])):(oe(t),void(t._isValid===!1&&(delete t._isValid,se(t),t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t)))))}function he(t,e,n){return null!=t?t:null!=e?e:n}function ue(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function le(t){var e,n,i,r,o=[];if(!t._d){for(i=ue(t),t._w&&null==t._a[hr]&&null==t._a[ar]&&ce(t),null!=t._dayOfYear&&(r=he(t._a[sr],i[sr]),(t._dayOfYear>vt(r)||0===t._dayOfYear)&&(p(t)._overflowDayOfYear=!0),n=wt(r,0,t._dayOfYear),t._a[ar]=n.getUTCMonth(),t._a[hr]=n.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=o[e]=i[e];for(;e<7;e++)t._a[e]=o[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[ur]&&0===t._a[lr]&&0===t._a[cr]&&0===t._a[fr]&&(t._nextDay=!0,t._a[ur]=0),t._d=(t._useUTC?wt:_t).apply(null,o),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[ur]=24)}}function ce(t){var e,n,i,r,o,s,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)o=1,s=4,n=he(e.GG,t._a[sr],St(we(),1,4).year),i=he(e.W,1),r=he(e.E,1),(r<1||r>7)&&(h=!0);else{o=t._locale._week.dow,s=t._locale._week.doy;var u=St(we(),o,s);n=he(e.gg,t._a[sr],u.year),i=he(e.w,u.week),null!=e.d?(r=e.d,(r<0||r>6)&&(h=!0)):null!=e.e?(r=e.e+o,(e.e<0||e.e>6)&&(h=!0)):r=o}i<1||i>Tt(n,o,s)?p(t)._overflowWeeks=!0:null!=h?p(t)._overflowWeekday=!0:(a=bt(n,i,r,o,s),t._a[sr]=a.year,t._dayOfYear=a.dayOfYear)}function fe(t){if(t._f===e.ISO_8601)return void oe(t);if(t._f===e.RFC_2822)return void se(t);t._a=[],p(t).empty=!0;var n,i,r,o,s,a=""+t._i,h=a.length,u=0;for(r=J(t._f,t._locale).match(Ni)||[],n=0;n0&&p(t).unusedInput.push(s),a=a.slice(a.indexOf(i)+i.length),u+=i.length),Fi[o]?(i?p(t).empty=!1:p(t).unusedTokens.push(o),rt(o,i,t)):t._strict&&!i&&p(t).unusedTokens.push(o);p(t).charsLeftOver=h-u,a.length>0&&p(t).unusedInput.push(a),t._a[ur]<=12&&p(t).bigHour===!0&&t._a[ur]>0&&(p(t).bigHour=void 0),p(t).parsedDateParts=t._a.slice(0),p(t).meridiem=t._meridiem,t._a[ur]=de(t._locale,t._a[ur],t._meridiem),le(t),re(t)}function de(t,e,n){var i;return null==n?e:null!=t.meridiemHour?t.meridiemHour(e,n):null!=t.isPM?(i=t.isPM(n),i&&e<12&&(e+=12),i||12!==e||(e=0),e):e}function pe(t){var e,n,i,r,o;if(0===t._f.length)return p(t).invalidFormat=!0,void(t._d=new Date(NaN));for(r=0;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ge(){if(!s(this._isDSTShifted))return this._isDSTShifted;var t={};if(y(t,this),t=ye(t),t._a){var e=t._isUTC?f(t._a):we(t._a);this._isDSTShifted=this.isValid()&&b(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function je(){return!!this.isValid()&&!this._isUTC}function Ve(){return!!this.isValid()&&this._isUTC}function Be(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function He(t,e){var n,i,r,o=t,s=null;return Oe(t)?o={ms:t._milliseconds,d:t._days,M:t._months}:a(t)?(o={},e?o[e]=t:o.milliseconds=t):(s=Xr.exec(t))?(n="-"===s[1]?-1:1,o={y:0,d:x(s[hr])*n,h:x(s[ur])*n,m:x(s[lr])*n,s:x(s[cr])*n,ms:x(Ee(1e3*s[fr]))*n}):(s=Zr.exec(t))?(n="-"===s[1]?-1:1,o={y:Ue(s[2],n),M:Ue(s[3],n),w:Ue(s[4],n),d:Ue(s[5],n),h:Ue(s[6],n),m:Ue(s[7],n),s:Ue(s[8],n)}):null==o?o={}:"object"==typeof o&&("from"in o||"to"in o)&&(r=Ze(we(o.from),we(o.to)),o={},o.ms=r.milliseconds,o.M=r.months),i=new ke(o),Oe(t)&&l(t,"_locale")&&(i._locale=t._locale),i}function Ue(t,e){var n=t&&parseFloat(t.replace(",","."));return(isNaN(n)?0:n)*e}function Xe(t,e){var n={milliseconds:0,months:0};return n.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(n.months,"M").isAfter(e)&&--n.months,n.milliseconds=+e-+t.clone().add(n.months,"M"),n}function Ze(t,e){var n;return t.isValid()&&e.isValid()?(e=Le(e,t),t.isBefore(e)?n=Xe(t,e):(n=Xe(e,t),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function qe(t,e){return function(n,i){var r,o;return null===i||isNaN(+i)||(D(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),o=n,n=i,i=o),n="string"==typeof n?+n:n,r=He(n,i),$e(this,r,t),this}}function $e(t,n,i,r){var o=n._milliseconds,s=Ee(n._days),a=Ee(n._months);t.isValid()&&(r=null==r||r,o&&t._d.setTime(t._d.valueOf()+o*i),s&&V(t,"Date",j(t,"Date")+s*i),a&<(t,j(t,"Month")+a*i),r&&e.updateOffset(t,s||a))}function Je(t,e){var n=t.diff(e,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"}function Qe(t,n){var i=t||we(),r=Le(i,this).startOf("day"),o=e.calendarFormat(this,r)||"sameElse",s=n&&(M(n[o])?n[o].call(this,i):n[o]);return this.format(s||this.localeData().calendar(o,this,we(i)))}function Ke(){return new g(this)}function tn(t,e){var n=_(t)?t:we(t);return!(!this.isValid()||!n.isValid())&&(e=N(s(e)?"millisecond":e),"millisecond"===e?this.valueOf()>n.valueOf():n.valueOf()9999?$(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):M(Date.prototype.toISOString)?this.toDate().toISOString():$(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function cn(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var n="["+t+'("]',i=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",r="-MM-DD[T]HH:mm:ss.SSS",o=e+'[")]';return this.format(n+i+r+o)}function fn(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=$(this,t);return this.localeData().postformat(n)}function dn(t,e){return this.isValid()&&(_(t)&&t.isValid()||we(t).isValid())?He({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function pn(t){return this.from(we(),t)}function mn(t,e){return this.isValid()&&(_(t)&&t.isValid()||we(t).isValid())?He({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function vn(t){return this.to(we(),t)}function yn(t){var e;return void 0===t?this._locale._abbr:(e=ne(t),null!=e&&(this._locale=e),this)}function gn(){return this._locale}function _n(t){switch(t=N(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function wn(t){return t=N(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function xn(){return this._d.valueOf()-6e4*(this._offset||0)}function bn(){return Math.floor(this.valueOf()/1e3)}function Sn(){return new Date(this.valueOf())}function Tn(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Dn(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function Mn(){return this.isValid()?this.toISOString():null}function kn(){return m(this)}function On(){return c({},p(this))}function En(){return p(this).overflow}function Cn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Pn(t,e){X(0,[t,t.length],0,e)}function Ln(t){return In.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Rn(t){return In.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Yn(){return Tt(this.year(),1,4)}function An(){var t=this.localeData()._week;return Tt(this.year(),t.dow,t.doy)}function In(t,e,n,i,r){var o;return null==t?St(this,i,r).year:(o=Tt(t,i,r),e>o&&(e=o),Nn.call(this,t,e,n,i,r))}function Nn(t,e,n,i,r){var o=bt(t,e,n,i,r),s=wt(o.year,0,o.dayOfYear);return this.year(s.getUTCFullYear()),this.month(s.getUTCMonth()),this.date(s.getUTCDate()),this}function zn(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Wn(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Fn(t,e){e[fr]=x(1e3*("0."+t))}function Gn(){return this._isUTC?"UTC":""}function jn(){return this._isUTC?"Coordinated Universal Time":""}function Vn(t){return we(1e3*t)}function Bn(){return we.apply(null,arguments).parseZone(); +}function Hn(t){return t}function Un(t,e,n,i){var r=ne(),o=f().set(i,e);return r[n](o,t)}function Xn(t,e,n){if(a(t)&&(e=t,t=void 0),t=t||"",null!=e)return Un(t,e,n,"month");var i,r=[];for(i=0;i<12;i++)r[i]=Un(t,i,n,"month");return r}function Zn(t,e,n,i){"boolean"==typeof t?(a(e)&&(n=e,e=void 0),e=e||""):(e=t,n=e,t=!1,a(e)&&(n=e,e=void 0),e=e||"");var r=ne(),o=t?r._week.dow:0;if(null!=n)return Un(e,(n+o)%7,i,"day");var s,h=[];for(s=0;s<7;s++)h[s]=Un(e,(s+o)%7,i,"day");return h}function qn(t,e){return Xn(t,e,"months")}function $n(t,e){return Xn(t,e,"monthsShort")}function Jn(t,e,n){return Zn(t,e,n,"weekdays")}function Qn(t,e,n){return Zn(t,e,n,"weekdaysShort")}function Kn(t,e,n){return Zn(t,e,n,"weekdaysMin")}function ti(){var t=this._data;return this._milliseconds=oo(this._milliseconds),this._days=oo(this._days),this._months=oo(this._months),t.milliseconds=oo(t.milliseconds),t.seconds=oo(t.seconds),t.minutes=oo(t.minutes),t.hours=oo(t.hours),t.months=oo(t.months),t.years=oo(t.years),this}function ei(t,e,n,i){var r=He(e,n);return t._milliseconds+=i*r._milliseconds,t._days+=i*r._days,t._months+=i*r._months,t._bubble()}function ni(t,e){return ei(this,t,e,1)}function ii(t,e){return ei(this,t,e,-1)}function ri(t){return t<0?Math.floor(t):Math.ceil(t)}function oi(){var t,e,n,i,r,o=this._milliseconds,s=this._days,a=this._months,h=this._data;return o>=0&&s>=0&&a>=0||o<=0&&s<=0&&a<=0||(o+=864e5*ri(ai(a)+s),s=0,a=0),h.milliseconds=o%1e3,t=w(o/1e3),h.seconds=t%60,e=w(t/60),h.minutes=e%60,n=w(e/60),h.hours=n%24,s+=w(n/24),r=w(si(s)),a+=r,s-=ri(ai(r)),i=w(a/12),a%=12,h.days=s,h.months=a,h.years=i,this}function si(t){return 4800*t/146097}function ai(t){return 146097*t/4800}function hi(t){if(!this.isValid())return NaN;var e,n,i=this._milliseconds;if(t=N(t),"month"===t||"year"===t)return e=this._days+i/864e5,n=this._months+si(e),"month"===t?n:n/12;switch(e=this._days+Math.round(ai(this._months)),t){case"week":return e/7+i/6048e5;case"day":return e+i/864e5;case"hour":return 24*e+i/36e5;case"minute":return 1440*e+i/6e4;case"second":return 86400*e+i/1e3;case"millisecond":return Math.floor(864e5*e)+i;default:throw new Error("Unknown unit "+t)}}function ui(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*x(this._months/12):NaN}function li(t){return function(){return this.as(t)}}function ci(t){return t=N(t),this.isValid()?this[t+"s"]():NaN}function fi(t){return function(){return this.isValid()?this._data[t]:NaN}}function di(){return w(this.days()/7)}function pi(t,e,n,i,r){return r.relativeTime(e||1,!!n,t,i)}function mi(t,e,n){var i=He(t).abs(),r=bo(i.as("s")),o=bo(i.as("m")),s=bo(i.as("h")),a=bo(i.as("d")),h=bo(i.as("M")),u=bo(i.as("y")),l=r<=So.ss&&["s",r]||r0,l[4]=n,pi.apply(null,l)}function vi(t){return void 0===t?bo:"function"==typeof t&&(bo=t,!0)}function yi(t,e){return void 0!==So[t]&&(void 0===e?So[t]:(So[t]=e,"s"===t&&(So.ss=e-1),!0))}function gi(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),n=mi(this,!t,e);return t&&(n=e.pastFuture(+this,n)),e.postformat(n)}function _i(){if(!this.isValid())return this.localeData().invalidDate();var t,e,n,i=To(this._milliseconds)/1e3,r=To(this._days),o=To(this._months);t=w(i/60),e=w(t/60),i%=60,t%=60,n=w(o/12),o%=12;var s=n,a=o,h=r,u=e,l=t,c=i,f=this.asSeconds();return f?(f<0?"-":"")+"P"+(s?s+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(u||l||c?"T":"")+(u?u+"H":"")+(l?l+"M":"")+(c?c+"S":""):"P0D"}var wi,xi;xi=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),n=e.length>>>0,i=0;i68?1900:2e3)};var xr=G("FullYear",!0);X("w",["ww",2],"wo","week"),X("W",["WW",2],"Wo","isoWeek"),I("week","w"),I("isoWeek","W"),W("week",5),W("isoWeek",5),Q("w",Ui),Q("ww",Ui,ji),Q("W",Ui),Q("WW",Ui,ji),it(["w","ww","W","WW"],function(t,e,n,i){e[i.substr(0,1)]=x(t)});var br={dow:0,doy:6};X("d",0,"do","day"),X("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),X("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),X("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),X("e",0,0,"weekday"),X("E",0,0,"isoWeekday"),I("day","d"),I("weekday","e"),I("isoWeekday","E"),W("day",11),W("weekday",11),W("isoWeekday",11),Q("d",Ui),Q("e",Ui),Q("E",Ui),Q("dd",function(t,e){return e.weekdaysMinRegex(t)}),Q("ddd",function(t,e){return e.weekdaysShortRegex(t)}),Q("dddd",function(t,e){return e.weekdaysRegex(t)}),it(["dd","ddd","dddd"],function(t,e,n,i){var r=n._locale.weekdaysParse(t,i,n._strict);null!=r?e.d=r:p(n).invalidWeekday=t}),it(["d","e","E"],function(t,e,n,i){e[i]=x(t)});var Sr="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Tr="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Dr="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Mr=ir,kr=ir,Or=ir;X("H",["HH",2],0,"hour"),X("h",["hh",2],0,Bt),X("k",["kk",2],0,Ht),X("hmm",0,0,function(){return""+Bt.apply(this)+U(this.minutes(),2)}),X("hmmss",0,0,function(){return""+Bt.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)}),X("Hmm",0,0,function(){return""+this.hours()+U(this.minutes(),2)}),X("Hmmss",0,0,function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)}),Ut("a",!0),Ut("A",!1),I("hour","h"),W("hour",13),Q("a",Xt),Q("A",Xt),Q("H",Ui),Q("h",Ui),Q("k",Ui),Q("HH",Ui,ji),Q("hh",Ui,ji),Q("kk",Ui,ji),Q("hmm",Xi),Q("hmmss",Zi),Q("Hmm",Xi),Q("Hmmss",Zi),nt(["H","HH"],ur),nt(["k","kk"],function(t,e,n){var i=x(t);e[ur]=24===i?0:i}),nt(["a","A"],function(t,e,n){n._isPm=n._locale.isPM(t),n._meridiem=t}),nt(["h","hh"],function(t,e,n){e[ur]=x(t),p(n).bigHour=!0}),nt("hmm",function(t,e,n){var i=t.length-2;e[ur]=x(t.substr(0,i)),e[lr]=x(t.substr(i)),p(n).bigHour=!0}),nt("hmmss",function(t,e,n){var i=t.length-4,r=t.length-2;e[ur]=x(t.substr(0,i)),e[lr]=x(t.substr(i,2)),e[cr]=x(t.substr(r)),p(n).bigHour=!0}),nt("Hmm",function(t,e,n){var i=t.length-2;e[ur]=x(t.substr(0,i)),e[lr]=x(t.substr(i))}),nt("Hmmss",function(t,e,n){var i=t.length-4,r=t.length-2;e[ur]=x(t.substr(0,i)),e[lr]=x(t.substr(i,2)),e[cr]=x(t.substr(r))});var Er,Cr=/[ap]\.?m?\.?/i,Pr=G("Hours",!0),Lr={calendar:Ei,longDateFormat:Ci,invalidDate:Pi,ordinal:Li,dayOfMonthOrdinalParse:Ri,relativeTime:Yi,months:yr,monthsShort:gr,week:br,weekdays:Sr,weekdaysMin:Dr,weekdaysShort:Tr,meridiemParse:Cr},Rr={},Yr={},Ar=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ir=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Nr=/Z|[+-]\d\d(?::?\d\d)?/,zr=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Wr=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Fr=/^\/?Date\((\-?\d+)/i,Gr=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;e.createFromInputFallback=T("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var jr=T("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=we.apply(null,arguments);return this.isValid()&&t.isValid()?tthis?this:t:v()}),Br=function(){return Date.now?Date.now():+new Date},Hr=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ce("Z",":"),Ce("ZZ",""),Q("Z",er),Q("ZZ",er),nt(["Z","ZZ"],function(t,e,n){n._useUTC=!0,n._tzm=Pe(er,t)});var Ur=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Xr=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Zr=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;He.fn=ke.prototype,He.invalid=Me;var qr=qe(1,"add"),$r=qe(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Jr=T("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});X(0,["gg",2],0,function(){return this.weekYear()%100}),X(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Pn("gggg","weekYear"),Pn("ggggg","weekYear"),Pn("GGGG","isoWeekYear"),Pn("GGGGG","isoWeekYear"),I("weekYear","gg"),I("isoWeekYear","GG"),W("weekYear",1),W("isoWeekYear",1),Q("G",Ki),Q("g",Ki),Q("GG",Ui,ji),Q("gg",Ui,ji),Q("GGGG",$i,Bi),Q("gggg",$i,Bi),Q("GGGGG",Ji,Hi),Q("ggggg",Ji,Hi),it(["gggg","ggggg","GGGG","GGGGG"],function(t,e,n,i){e[i.substr(0,2)]=x(t)}),it(["gg","GG"],function(t,n,i,r){n[r]=e.parseTwoDigitYear(t)}),X("Q",0,"Qo","quarter"),I("quarter","Q"),W("quarter",7),Q("Q",Gi),nt("Q",function(t,e){e[ar]=3*(x(t)-1)}),X("D",["DD",2],"Do","date"),I("date","D"),W("date",9),Q("D",Ui),Q("DD",Ui,ji),Q("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),nt(["D","DD"],hr),nt("Do",function(t,e){e[hr]=x(t.match(Ui)[0],10)});var Qr=G("Date",!0);X("DDD",["DDDD",3],"DDDo","dayOfYear"),I("dayOfYear","DDD"),W("dayOfYear",4),Q("DDD",qi),Q("DDDD",Vi),nt(["DDD","DDDD"],function(t,e,n){n._dayOfYear=x(t)}),X("m",["mm",2],0,"minute"),I("minute","m"),W("minute",14),Q("m",Ui),Q("mm",Ui,ji),nt(["m","mm"],lr);var Kr=G("Minutes",!1);X("s",["ss",2],0,"second"),I("second","s"),W("second",15),Q("s",Ui),Q("ss",Ui,ji),nt(["s","ss"],cr);var to=G("Seconds",!1);X("S",0,0,function(){return~~(this.millisecond()/100)}),X(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),X(0,["SSS",3],0,"millisecond"),X(0,["SSSS",4],0,function(){return 10*this.millisecond()}),X(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),X(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),X(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),X(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),X(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),I("millisecond","ms"),W("millisecond",16),Q("S",qi,Gi),Q("SS",qi,ji),Q("SSS",qi,Vi);var eo;for(eo="SSSS";eo.length<=9;eo+="S")Q(eo,Qi);for(eo="S";eo.length<=9;eo+="S")nt(eo,Fn);var no=G("Milliseconds",!1);X("z",0,0,"zoneAbbr"),X("zz",0,0,"zoneName");var io=g.prototype;io.add=qr,io.calendar=Qe,io.clone=Ke,io.diff=an,io.endOf=wn,io.format=fn,io.from=dn,io.fromNow=pn,io.to=mn,io.toNow=vn,io.get=B,io.invalidAt=En,io.isAfter=tn,io.isBefore=en,io.isBetween=nn,io.isSame=rn,io.isSameOrAfter=on,io.isSameOrBefore=sn,io.isValid=kn,io.lang=Jr,io.locale=yn,io.localeData=gn,io.max=Vr,io.min=jr,io.parsingFlags=On,io.set=H,io.startOf=_n,io.subtract=$r,io.toArray=Tn,io.toObject=Dn,io.toDate=Sn,io.toISOString=ln,io.inspect=cn,io.toJSON=Mn,io.toString=un,io.unix=bn,io.valueOf=xn,io.creationData=Cn,io.year=xr,io.isLeapYear=gt,io.weekYear=Ln,io.isoWeekYear=Rn,io.quarter=io.quarters=zn,io.month=ct,io.daysInMonth=ft,io.week=io.weeks=Ot,io.isoWeek=io.isoWeeks=Et,io.weeksInYear=An,io.isoWeeksInYear=Yn,io.date=Qr,io.day=io.days=Nt,io.weekday=zt,io.isoWeekday=Wt,io.dayOfYear=Wn,io.hour=io.hours=Pr,io.minute=io.minutes=Kr,io.second=io.seconds=to,io.millisecond=io.milliseconds=no,io.utcOffset=Ye,io.utc=Ie,io.local=Ne,io.parseZone=ze,io.hasAlignedHourOffset=We,io.isDST=Fe,io.isLocal=je,io.isUtcOffset=Ve,io.isUtc=Be,io.isUTC=Be,io.zoneAbbr=Gn,io.zoneName=jn,io.dates=T("dates accessor is deprecated. Use date instead.",Qr),io.months=T("months accessor is deprecated. Use month instead",ct),io.years=T("years accessor is deprecated. Use year instead",xr),io.zone=T("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ae),io.isDSTShifted=T("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ge);var ro=E.prototype;ro.calendar=C,ro.longDateFormat=P,ro.invalidDate=L,ro.ordinal=R,ro.preparse=Hn,ro.postformat=Hn,ro.relativeTime=Y,ro.pastFuture=A,ro.set=k,ro.months=st,ro.monthsShort=at,ro.monthsParse=ut,ro.monthsRegex=pt,ro.monthsShortRegex=dt,ro.week=Dt,ro.firstDayOfYear=kt,ro.firstDayOfWeek=Mt,ro.weekdays=Lt,ro.weekdaysMin=Yt,ro.weekdaysShort=Rt,ro.weekdaysParse=It,ro.weekdaysRegex=Ft,ro.weekdaysShortRegex=Gt,ro.weekdaysMinRegex=jt,ro.isPM=Zt,ro.meridiem=qt,Kt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,n=1===x(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+n}}),e.lang=T("moment.lang is deprecated. Use moment.locale instead.",Kt),e.langData=T("moment.langData is deprecated. Use moment.localeData instead.",ne);var oo=Math.abs,so=li("ms"),ao=li("s"),ho=li("m"),uo=li("h"),lo=li("d"),co=li("w"),fo=li("M"),po=li("y"),mo=fi("milliseconds"),vo=fi("seconds"),yo=fi("minutes"),go=fi("hours"),_o=fi("days"),wo=fi("months"),xo=fi("years"),bo=Math.round,So={ss:44,s:45,m:45,h:22,d:26,M:11},To=Math.abs,Do=ke.prototype;return Do.isValid=De,Do.abs=ti,Do.add=ni,Do.subtract=ii,Do.as=hi,Do.asMilliseconds=so,Do.asSeconds=ao,Do.asMinutes=ho,Do.asHours=uo,Do.asDays=lo,Do.asWeeks=co,Do.asMonths=fo,Do.asYears=po,Do.valueOf=ui,Do._bubble=oi,Do.get=ci,Do.milliseconds=mo,Do.seconds=vo,Do.minutes=yo,Do.hours=go,Do.days=_o,Do.weeks=di,Do.months=wo,Do.years=xo,Do.humanize=gi,Do.toISOString=_i,Do.toString=_i,Do.toJSON=_i,Do.locale=yn,Do.localeData=gn,Do.toIsoString=T("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",_i),Do.lang=Jr,X("X",0,0,"unix"),X("x",0,0,"valueOf"),Q("x",Ki),Q("X",nr),nt("X",function(t,e,n){n._d=new Date(1e3*parseFloat(t,10))}),nt("x",function(t,e,n){n._d=new Date(x(t))}),e.version="2.18.1",n(we),e.fn=io,e.min=be,e.max=Se,e.now=Br,e.utc=f,e.unix=Vn,e.months=qn,e.isDate=h,e.locale=Kt,e.invalid=v,e.duration=He,e.isMoment=_,e.weekdays=Jn,e.parseZone=Bn,e.localeData=ne,e.isDuration=Oe,e.monthsShort=$n,e.weekdaysMin=Kn,e.defineLocale=te,e.updateLocale=ee,e.locales=ie,e.weekdaysShort=Qn,e.normalizeUnits=N,e.relativeTimeRounding=vi,e.relativeTimeThreshold=yi,e.calendarFormat=Je,e.prototype=io,e})}).call(e,n(84)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function n(t){throw new Error("Cannot find module '"+t+"'.")}n.keys=function(){return[]},n.resolve=n,t.exports=n,n.id=85},function(t,e){(function(e){function n(t,e,n){var i=e&&n||0,r=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){r<16&&(e[i+r++]=c[t])});r<16;)e[i+r++]=0;return e}function i(t,e){var n=e||0,i=l;return i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+"-"+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]+i[t[n++]]}function r(t,e,n){var r=e&&n||0,o=e||[];t=t||{};var s=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:y+1,u=a-v+(h-y)/1e4;if(u<0&&void 0===t.clockseq&&(s=s+1&16383),(u<0||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,y=h,m=s,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;o[r++]=l>>>24&255,o[r++]=l>>>16&255,o[r++]=l>>>8&255,o[r++]=255&l;var c=a/4294967296*1e4&268435455;o[r++]=c>>>8&255,o[r++]=255&c,o[r++]=c>>>24&15|16,o[r++]=c>>>16&255,o[r++]=s>>>8|128,o[r++]=255&s;for(var f=t.node||p,d=0;d<6;d++)o[r+d]=f[d];return e?e:i(o)}function o(t,e,n){var r=e&&n||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var o=t.random||(t.rng||s)();if(o[6]=15&o[6]|64,o[8]=63&o[8]|128,e)for(var a=0;a<16;a++)e[r+a]=o[a];return e||i(o)}var s,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);s=function(){return crypto.getRandomValues(h),h}}if(!s){var u=new Array(16);s=function(){for(var t,e=0;e<16;e++)0===(3&e)&&(t=4294967296*Math.random()),u[e]=t>>>((3&e)<<3)&255;return u}}for(var l=[],c={},f=0;f<256;f++)l[f]=(f+256).toString(16).substr(1),c[l[f]]=f;var d=s(),p=[1|d[0],d[1],d[2],d[3],d[4],d[5]],m=16383&(d[6]<<8|d[7]),v=0,y=0,g=o;g.v1=r,g.v4=o,g.parse=n,g.unparse=i,t.exports=g}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var n=0;n0?(i=e[t].redundant[0],e[t].redundant.shift()):(i=document.createElementNS("http://www.w3.org/2000/svg",t),n.appendChild(i)):(i=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},n.appendChild(i)),e[t].used.push(i),i},e.getDOMElement=function(t,e,n,i){var r;return e.hasOwnProperty(t)?e[t].redundant.length>0?(r=e[t].redundant[0],e[t].redundant.shift()):(r=document.createElement(t),void 0!==i?n.insertBefore(r,i):n.appendChild(r)):(r=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==i?n.insertBefore(r,i):n.appendChild(r)),e[t].used.push(r),r},e.drawPoint=function(t,n,i,r,o,s){var a;if("circle"==i.style?(a=e.getSVGElement("circle",r,o),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",n),a.setAttributeNS(null,"r",.5*i.size)):(a=e.getSVGElement("rect",r,o),a.setAttributeNS(null,"x",t-.5*i.size),a.setAttributeNS(null,"y",n-.5*i.size),a.setAttributeNS(null,"width",i.size),a.setAttributeNS(null,"height",i.size)),void 0!==i.styles&&a.setAttributeNS(null,"style",i.styles),a.setAttributeNS(null,"class",i.className+" vis-point"),s){var h=e.getSVGElement("text",r,o);s.xOffset&&(t+=s.xOffset),s.yOffset&&(n+=s.yOffset),s.content&&(h.textContent=s.content),s.className&&h.setAttributeNS(null,"class",s.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",n)}return a},e.drawBar=function(t,n,i,r,o,s,a,h){if(0!=r){r<0&&(r*=-1,n-=r);var u=e.getSVGElement("rect",s,a);u.setAttributeNS(null,"x",t-.5*i),u.setAttributeNS(null,"y",n),u.setAttributeNS(null,"width",i),u.setAttributeNS(null,"height",r),u.setAttributeNS(null,"class",o),h&&u.setAttributeNS(null,"style",h)}}},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var n=(0,l.default)(this._options.type),i=0,r=n.length;ir?1:is)&&(o=h,s=u)}return o},r.prototype.min=function(t){var e,n,i=this._data,r=(0,l.default)(i),o=null,s=null;for(e=0,n=r.length;ethis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},n.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=n},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var n=this;this.listener=function(){n._onEvent.apply(n,arguments)},this.setData(t)}var o=n(58),s=i(o),a=n(1),h=n(88);r.prototype.setData=function(t){ +var e,n,i,r,o;if(this._data){for(this._data.off&&this._data.off("*",this.listener),e=this._data.getIds({filter:this._options&&this._options.filter}),o=[],i=0,r=e.length;i0&&(s[i-1].pointNext=s[i]);return s},r.prototype.create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);this.frame=document.createElement("div"),this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas);var t=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t),this.frame.filter=document.createElement("div"),this.frame.filter.style.position="absolute",this.frame.filter.style.bottom="0px",this.frame.filter.style.left="0px",this.frame.filter.style.width="100%",this.frame.appendChild(this.frame.filter);var e=this,n=function(t){e._onMouseDown(t)},i=function(t){e._onTouchStart(t)},r=function(t){e._onWheel(t)},o=function(t){e._onTooltip(t)},s=function(t){e._onClick(t)};l.addEventListener(this.frame.canvas,"mousedown",n),l.addEventListener(this.frame.canvas,"touchstart",i),l.addEventListener(this.frame.canvas,"mousewheel",r),l.addEventListener(this.frame.canvas,"mousemove",o),l.addEventListener(this.frame.canvas,"click",s),this.containerElement.appendChild(this.frame)},r.prototype._setSize=function(t,e){this.frame.style.width=t,this.frame.style.height=e,this._resizeCanvas()},r.prototype._resizeCanvas=function(){this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth,this.frame.canvas.height=this.frame.canvas.clientHeight,this.frame.filter.style.width=this.frame.canvas.clientWidth-20+"px"},r.prototype.animationStart=function(){if(!this.frame.filter||!this.frame.filter.slider)throw new Error("No animation available");this.frame.filter.slider.play()},r.prototype.animationStop=function(){this.frame.filter&&this.frame.filter.slider&&this.frame.filter.slider.stop()},r.prototype._resizeCenter=function(){"%"===this.xCenter.charAt(this.xCenter.length-1)?this.currentXCenter=parseFloat(this.xCenter)/100*this.frame.canvas.clientWidth:this.currentXCenter=parseFloat(this.xCenter),"%"===this.yCenter.charAt(this.yCenter.length-1)?this.currentYCenter=parseFloat(this.yCenter)/100*(this.frame.canvas.clientHeight-this.frame.filter.clientHeight):this.currentYCenter=parseFloat(this.yCenter)},r.prototype.getCameraPosition=function(){var t=this.camera.getArmRotation();return t.distance=this.camera.getArmLength(),t},r.prototype._readData=function(t){this._initializeData(t,this.style),this.dataFilter?this.dataPoints=this.dataFilter._getDataPoints():this.dataPoints=this._getDataPoints(this.dataGroup.getDataTable()),this._redrawFilter()},r.prototype.setData=function(t){this._readData(t),this.redraw(),this.animationAutoStart&&this.dataFilter&&this.animationStart()},r.prototype.setOptions=function(t){this.animationStop(),v.setOptions(t,this),this.setPointDrawingMethod(),this._setSize(this.width,this.height),this.dataGroup.reload(),this.animationAutoStart&&this.dataFilter&&this.animationStart()},r.prototype.setPointDrawingMethod=function(){var t=void 0;switch(this.style){case r.STYLE.BAR:t=r.prototype._redrawBarGraphPoint;break;case r.STYLE.BARCOLOR:t=r.prototype._redrawBarColorGraphPoint;break;case r.STYLE.BARSIZE:t=r.prototype._redrawBarSizeGraphPoint;break;case r.STYLE.DOT:t=r.prototype._redrawDotGraphPoint;break;case r.STYLE.DOTLINE:t=r.prototype._redrawDotLineGraphPoint;break;case r.STYLE.DOTCOLOR:t=r.prototype._redrawDotColorGraphPoint;break;case r.STYLE.DOTSIZE:t=r.prototype._redrawDotSizeGraphPoint;break;case r.STYLE.SURFACE:t=r.prototype._redrawSurfaceGraphPoint;break;case r.STYLE.GRID:t=r.prototype._redrawGridGraphPoint;break;case r.STYLE.LINE:t=r.prototype._redrawLineGraphPoint;break;default:throw new Error("Can not determine point drawing method for graph style '"+this.style+"'")}this._pointDrawingMethod=t},r.prototype.redraw=function(){if(void 0===this.dataPoints)throw new Error("Graph data not initialized");this._resizeCanvas(),this._resizeCenter(),this._redrawSlider(),this._redrawClear(),this._redrawAxis(),this._redrawDataGraph(),this._redrawInfo(),this._redrawLegend()},r.prototype._getContext=function(){var t=this.frame.canvas,e=t.getContext("2d");return e.lineJoin="round",e.lineCap="round",e},r.prototype._redrawClear=function(){var t=this.frame.canvas,e=t.getContext("2d");e.clearRect(0,0,t.width,t.height)},r.prototype._dotSize=function(){return this.frame.clientWidth*this.dotSizeRatio},r.prototype._getLegendWidth=function(){var t;if(this.style===r.STYLE.DOTSIZE){var e=this._dotSize();t=e*this.dotSizeMaxFraction}else t=this.style===r.STYLE.BARSIZE?this.xBarWidth:20;return t},r.prototype._redrawLegend=function(){if(this.showLegend===!0&&this.style!==r.STYLE.LINE&&this.style!==r.STYLE.BARSIZE){var t=this.style===r.STYLE.BARSIZE||this.style===r.STYLE.DOTSIZE,e=this.style===r.STYLE.DOTSIZE||this.style===r.STYLE.DOTCOLOR||this.style===r.STYLE.BARCOLOR,n=Math.max(.25*this.frame.clientHeight,100),i=this.margin,o=this._getLegendWidth(),s=this.frame.clientWidth-this.margin,a=s-o,h=i+n,u=this._getContext();if(u.lineWidth=1,u.font="14px arial",t===!1){var l,c=0,d=n;for(l=c;l0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*i)<0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(n,o.x,o.y)},r.prototype.drawAxisLabelY=function(t,e,n,i,r){void 0===r&&(r=0);var o=this._convert3Dto2D(e);Math.cos(2*i)<0?(t.textAlign="center",t.textBaseline="top",o.y+=r):Math.sin(2*i)>0?(t.textAlign="right",t.textBaseline="middle"):(t.textAlign="left",t.textBaseline="middle"),t.fillStyle=this.axisColor,t.fillText(n,o.x,o.y)},r.prototype.drawAxisLabelZ=function(t,e,n,i){void 0===i&&(i=0);var r=this._convert3Dto2D(e);t.textAlign="right",t.textBaseline="middle",t.fillStyle=this.axisColor,t.fillText(n,r.x-i,r.y)},r.prototype._line3d=function(t,e,n,i){var r=this._convert3Dto2D(e),o=this._convert3Dto2D(n);this._line(t,r,o,i)},r.prototype._redrawAxis=function(){var t,e,n,i,r,o,s,a,h,u,l,d=this._getContext();d.font=24/this.camera.getArmLength()+"px arial";var p=.025/this.scale.x,v=.025/this.scale.y,y=5/this.camera.getArmLength(),g=this.camera.getArmRotation().horizontal,_=new f(Math.cos(g),Math.sin(g)),w=this.xRange,x=this.yRange,b=this.zRange;for(d.lineWidth=1,i=void 0===this.defaultXStep,n=new m(w.min,w.max,this.xStep,i),n.start(!0);!n.end();){var S=n.getCurrent();if(this.showGrid?(t=new c(S,x.min,b.min),e=new c(S,x.max,b.min),this._line3d(d,t,e,this.gridColor)):this.showXAxis&&(t=new c(S,x.min,b.min),e=new c(S,x.min+p,b.min),this._line3d(d,t,e,this.axisColor),t=new c(S,x.max,b.min),e=new c(S,x.max-p,b.min),this._line3d(d,t,e,this.axisColor)),this.showXAxis){s=_.x>0?x.min:x.max;var T=new c(S,s,b.min),D=" "+this.xValueLabel(S)+" ";this.drawAxisLabelX(d,T,D,g,y)}n.next()}for(d.lineWidth=1,i=void 0===this.defaultYStep,n=new m(x.min,x.max,this.yStep,i),n.start(!0);!n.end();){var M=n.getCurrent();if(this.showGrid?(t=new c(w.min,M,b.min),e=new c(w.max,M,b.min),this._line3d(d,t,e,this.gridColor)):this.showYAxis&&(t=new c(w.min,M,b.min),e=new c(w.min+v,M,b.min),this._line3d(d,t,e,this.axisColor),t=new c(w.max,M,b.min),e=new c(w.max-v,M,b.min),this._line3d(d,t,e,this.axisColor)),this.showYAxis){o=_.y>0?w.min:w.max,T=new c(o,M,b.min);var D=" "+this.yValueLabel(M)+" ";this.drawAxisLabelY(d,T,D,g,y)}n.next()}if(this.showZAxis){for(d.lineWidth=1,i=void 0===this.defaultZStep,n=new m(b.min,b.max,this.zStep,i),n.start(!0),o=_.x>0?w.min:w.max,s=_.y<0?x.min:x.max;!n.end();){var k=n.getCurrent(),O=new c(o,s,k),E=this._convert3Dto2D(O);e=new f(E.x-y,E.y),this._line(d,E,e,this.axisColor);var D=this.zValueLabel(k)+" ";this.drawAxisLabelZ(d,O,D,5),n.next()}d.lineWidth=1,t=new c(o,s,b.min),e=new c(o,s,b.max),this._line3d(d,t,e,this.axisColor)}if(this.showXAxis){var C,P;d.lineWidth=1,C=new c(w.min,x.min,b.min),P=new c(w.max,x.min,b.min),this._line3d(d,C,P,this.axisColor),C=new c(w.min,x.max,b.min),P=new c(w.max,x.max,b.min),this._line3d(d,C,P,this.axisColor)}this.showYAxis&&(d.lineWidth=1,t=new c(w.min,x.min,b.min),e=new c(w.min,x.max,b.min),this._line3d(d,t,e,this.axisColor),t=new c(w.max,x.min,b.min),e=new c(w.max,x.max,b.min),this._line3d(d,t,e,this.axisColor));var L=this.xLabel;L.length>0&&this.showXAxis&&(l=.1/this.scale.y,o=(w.max+3*w.min)/4,s=_.x>0?x.min-l:x.max+l,r=new c(o,s,b.min),this.drawAxisLabelX(d,r,L,g));var R=this.yLabel;R.length>0&&this.showYAxis&&(u=.1/this.scale.x,o=_.y>0?w.min-u:w.max+u,s=(x.max+3*x.min)/4,r=new c(o,s,b.min),this.drawAxisLabelY(d,r,R,g));var Y=this.zLabel;Y.length>0&&this.showZAxis&&(h=30,o=_.x>0?w.min:w.max,s=_.y<0?x.min:x.max,a=(b.max+3*b.min)/4,r=new c(o,s,a),this.drawAxisLabelZ(d,r,Y,h))},r.prototype._hsv2rgb=function(t,e,n){var i,r,o,s,a,h;switch(s=n*e,a=Math.floor(t/60),h=s*(1-Math.abs(t/60%2-1)),a){case 0:i=s,r=h,o=0;break;case 1:i=h,r=s,o=0;break;case 2:i=0,r=s,o=h;break;case 3:i=0,r=h,o=s;break;case 4:i=h,r=0,o=s;break;case 5:i=s,r=0,o=h;break;default:i=0,r=0,o=0}return"RGB("+parseInt(255*i)+","+parseInt(255*r)+","+parseInt(255*o)+")"},r.prototype._getStrokeWidth=function(t){return void 0!==t?this.showPerspective?1/-t.trans.z*this.dataColor.strokeWidth:-(this.eye.z/this.camera.getArmLength())*this.dataColor.strokeWidth:this.dataColor.strokeWidth},r.prototype._redrawBar=function(t,e,n,i,r,o){var s,a,h=this,u=e.point,l=this.zRange.min,f=[{point:new c(u.x-n,u.y-i,u.z)},{point:new c(u.x+n,u.y-i,u.z)},{point:new c(u.x+n,u.y+i,u.z)},{point:new c(u.x-n,u.y+i,u.z)}],d=[{point:new c(u.x-n,u.y-i,l)},{point:new c(u.x+n,u.y-i,l)},{point:new c(u.x+n,u.y+i,l)},{point:new c(u.x-n,u.y+i,l)}];f.forEach(function(t){t.screen=h._convert3Dto2D(t.point)}),d.forEach(function(t){t.screen=h._convert3Dto2D(t.point)});var p=[{corners:f,center:c.avg(d[0].point,d[2].point)},{corners:[f[0],f[1],d[1],d[0]],center:c.avg(d[1].point,d[0].point)},{corners:[f[1],f[2],d[2],d[1]],center:c.avg(d[2].point,d[1].point)},{corners:[f[2],f[3],d[3],d[2]],center:c.avg(d[3].point,d[2].point)},{corners:[f[3],f[0],d[0],d[3]],center:c.avg(d[0].point,d[3].point)}];for(e.surfaces=p,s=0;s0}if(a){var d,p=(e.point.z+n.point.z+i.point.z+r.point.z)/4,m=240*(1-(p-this.zRange.min)*this.scale.z/this.verticalRatio),v=1;this.showShadow?(d=Math.min(1+l.x/f/2,1),o=this._hsv2rgb(m,v,d),s=o):(d=1,o=this._hsv2rgb(m,v,d),s=this.axisColor)}else o="gray",s=this.axisColor;t.lineWidth=this._getStrokeWidth(e);var y=[e,n,r,i];this._polygon(t,y,o,s)}},r.prototype._drawGridLine=function(t,e,n){if(void 0!==e&&void 0!==n){var i=(e.point.z+n.point.z)/2,r=240*(1-(i-this.zRange.min)*this.scale.z/this.verticalRatio);t.lineWidth=2*this._getStrokeWidth(e),t.strokeStyle=this._hsv2rgb(r,1,1),this._line(t,e.screen,n.screen)}},r.prototype._redrawGridGraphPoint=function(t,e){this._drawGridLine(t,e,e.pointRight),this._drawGridLine(t,e,e.pointTop)},r.prototype._redrawLineGraphPoint=function(t,e){void 0!==e.pointNext&&(t.lineWidth=this._getStrokeWidth(e),t.strokeStyle=this.dataColor.stroke,this._line(t,e.screen,e.pointNext.screen))},r.prototype._redrawDataGraph=function(){var t,e=this._getContext();if(!(void 0===this.dataPoints||this.dataPoints.length<=0))for(this._calcTranslations(this.dataPoints),t=0;t0?1:t<0?-1:0}var i=e[0],r=e[1],o=e[2],s=n((r.x-i.x)*(t.y-i.y)-(r.y-i.y)*(t.x-i.x)),a=n((o.x-r.x)*(t.y-r.y)-(o.y-r.y)*(t.x-r.x)),h=n((i.x-o.x)*(t.y-o.y)-(i.y-o.y)*(t.x-o.x));return!(0!=s&&0!=a&&s!=a||0!=a&&0!=h&&a!=h||0!=s&&0!=h&&s!=h)},r.prototype._dataPointFromXY=function(t,e){var n,i=100,o=null,s=null,a=null,h=new f(t,e);if(this.style===r.STYLE.BAR||this.style===r.STYLE.BARCOLOR||this.style===r.STYLE.BARSIZE)for(n=this.dataPoints.length-1;n>=0;n--){o=this.dataPoints[n];var u=o.surfaces;if(u)for(var l=u.length-1;l>=0;l--){var c=u[l],d=c.corners,p=[d[0].screen,d[1].screen,d[2].screen],m=[d[2].screen,d[3].screen,d[0].screen];if(this._insideTriangle(h,p)||this._insideTriangle(h,m))return o}}else for(n=0;n"+this.xLabel+":"+t.point.x+""+this.yLabel+":"+t.point.y+""+this.zLabel+":"+t.point.z+"",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(n),this.frame.appendChild(i);var r=e.offsetWidth,o=e.offsetHeight,s=n.offsetHeight,a=i.offsetWidth,u=i.offsetHeight,l=t.screen.x-r/2;l=Math.min(Math.max(l,10),this.frame.clientWidth-10-r),n.style.left=t.screen.x+"px",n.style.top=t.screen.y-s+"px",e.style.left=l+"px",e.style.top=t.screen.y-s-o+"px",i.style.left=t.screen.x-a/2+"px",i.style.top=t.screen.y-u/2+"px"},r.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},r.prototype.setCameraPosition=function(t){v.setCameraPosition(t,this),this.redraw()},r.prototype.setSize=function(t,e){this._setSize(t,e),this.redraw()},t.exports=r},function(t,e,n){t.exports={default:n(95),__esModule:!0}},function(t,e,n){n(96),t.exports=n(17).Object.assign},function(t,e,n){var i=n(15);i(i.S+i.F,"Object",{assign:n(97)})},function(t,e,n){var i=n(35),r=n(73),o=n(74),s=n(49),a=n(10),h=Object.assign;t.exports=!h||n(26)(function(){var t={},e={},n=Symbol(),i="abcdefghijklmnopqrst"; +return t[n]=7,i.split("").forEach(function(t){e[t]=t}),7!=h({},t)[n]||Object.keys(h({},e)).join("")!=i})?function(t,e){for(var n=s(t),h=arguments.length,u=1,l=r.f,c=o.f;h>u;)for(var f,d=a(arguments[u++]),p=l?i(d).concat(l(d)):i(d),m=p.length,v=0;m>v;)c.call(d,f=p[v++])&&(n[f]=d[f]);return n}:h},function(t,e){function n(t){if(t)return i(t)}function i(t){for(var e in n.prototype)t[e]=n.prototype[e];return t}t.exports=n,n.prototype.on=n.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},n.prototype.once=function(t,e){function n(){i.off(t,n),e.apply(this,arguments)}var i=this;return this._callbacks=this._callbacks||{},n.fn=e,this.on(t,n),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var n=this._callbacks[t];if(!n)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var i,r=0;ro&&(t=i(t)*o),n(e)>o&&(e=i(e)*o),this.cameraOffset.x=t,this.cameraOffset.y=e,this.calculateCameraOrientation()},r.prototype.getOffset=function(t,e){return this.cameraOffset},r.prototype.setArmLocation=function(t,e,n){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=n,this.calculateCameraOrientation()},r.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),void 0===t&&void 0===e||this.calculateCameraOrientation()},r.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},r.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.setOffset(this.cameraOffset.x,this.cameraOffset.y),this.calculateCameraOrientation())},r.prototype.getArmLength=function(){return this.armLength},r.prototype.getCameraLocation=function(){return this.cameraLocation},r.prototype.getCameraRotation=function(){return this.cameraRotation},r.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal;var t=this.cameraRotation.x,e=(this.cameraRotation.y,this.cameraRotation.z),n=this.cameraOffset.x,i=this.cameraOffset.y,r=Math.sin,o=Math.cos;this.cameraLocation.x=this.cameraLocation.x+n*o(e)+i*-r(e)*o(t),this.cameraLocation.y=this.cameraLocation.y+n*r(e)+i*o(e)*o(t),this.cameraLocation.z=this.cameraLocation.z+i*r(t)},t.exports=r},function(t,e,n){t.exports={default:n(103),__esModule:!0}},function(t,e,n){n(104),t.exports=n(17).Math.sign},function(t,e,n){var i=n(15);i(i.S,"Math",{sign:n(105)})},function(t,e){t.exports=Math.sign||function(t){return 0==(t=+t)||t!=t?t:t<0?-1:1}},function(t,e,n){function i(t,e,n){this.data=t.getDataSet(),this.column=e,this.graph=n,this.index=void 0,this.value=void 0,this.values=t.getDistinctValues(this.column),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,n.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var r=n(92);i.prototype.isLoaded=function(){return this.loaded},i.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},i.prototype.getLabel=function(){return this.graph.filterLabel},i.prototype.getColumn=function(){return this.column},i.prototype.getSelectedValue=function(){if(void 0!==this.index)return this.values[this.index]},i.prototype.getValues=function(){return this.values},i.prototype.getValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");return this.values[t]},i.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var n={};n.column=this.column,n.value=this.values[t];var i=new r(this.data,{filter:function(t){return t[n.column]==n.value}}).get();e=this.graph._getDataPoints(i),this.dataPoints[t]=e}return e},i.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},i.prototype.selectValue=function(t){if(t>=this.values.length)throw new Error("Index out of range");this.index=t,this.value=this.values[t]},i.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},i.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},i.prototype.setIndex=function(t){if(!(tthis.values.length-1&&(i=this.values.length-1),i},i.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,n=t/(this.values.length-1)*e,i=n+3;return i},i.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,n=this.startSlideX+e,i=this.leftToIndex(n);this.setIndex(i),r.preventDefault()},i.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",r.removeEventListener(document,"mousemove",this.onmousemove),r.removeEventListener(document,"mouseup",this.onmouseup),r.preventDefault()},t.exports=i},function(t,e){function n(t,e,n,i){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,n,i)}n.prototype.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},n.prototype.setRange=function(t,e,n,i){if(!this.isNumeric(t))throw new Error("Parameter 'start' is not numeric; value: "+t);if(!this.isNumeric(e))throw new Error("Parameter 'end' is not numeric; value: "+t);if(!this.isNumeric(n))throw new Error("Parameter 'step' is not numeric; value: "+t);this._start=t?t:0,this._end=e?e:0,this.setStep(n,i)},n.prototype.setStep=function(t,e){void 0===t||t<=0||(void 0!==e&&(this.prettyStep=e),this.prettyStep===!0?this._step=n.calculatePrettyStep(t):this._step=t)},n.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},n=Math.pow(10,Math.round(e(t))),i=2*Math.pow(10,Math.round(e(t/2))),r=5*Math.pow(10,Math.round(e(t/5))),o=n;return Math.abs(i-t)<=Math.abs(o-t)&&(o=i),Math.abs(r-t)<=Math.abs(o-t)&&(o=r),o<=0&&(o=1),o},n.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},n.prototype.getStep=function(){return this._step},n.prototype.start=function(t){void 0===t&&(t=!1),this._current=this._start-this._start%this._step,t&&this.getCurrent()this._end},t.exports=n},function(t,e){function n(){this.min=void 0,this.max=void 0}n.prototype.adjust=function(t){void 0!==t&&((void 0===this.min||this.min>t)&&(this.min=t),(void 0===this.max||this.maxn)throw new Error("Passed expansion value makes range invalid");this.min=e,this.max=n}},n.prototype.range=function(){return this.max-this.min},n.prototype.center=function(){return(this.min+this.max)/2},t.exports=n},function(t,e,n){function i(t){return t&&t.__esModule?t:{default:t}}function r(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}function o(t){return void 0===t||""===t||"string"!=typeof t?t:t.charAt(0).toUpperCase()+t.slice(1)}function s(t,e){return void 0===t||""===t?e:t+o(e)}function a(t,e,n,i){var r,o;for(var a in n)r=n[a],o=s(i,r),e[o]=t[r]}function h(t,e,n,i){var r,o;for(var a in n)r=n[a],void 0!==t[r]&&(o=s(i,r),e[o]=t[r])}function u(t,e){if(void 0===t||r(t))throw new Error("No DEFAULTS passed");if(void 0===e)throw new Error("No dst passed");O=t,a(t,e,M),a(t,e,k,"default"),c(t,e),e.margin=10,e.showGrayBottom=!1,e.showTooltip=!1,e.onclick_callback=null,e.eye=new S(0,0,-1)}function l(t,e){if(void 0!==t){if(void 0===e)throw new Error("No dst passed");if(void 0===O||r(O))throw new Error("DEFAULTS not set for module Settings");h(t,e,M),h(t,e,k,"default"),c(t,e)}}function c(t,e){void 0!==t.backgroundColor&&v(t.backgroundColor,e),y(t.dataColor,e),m(t.style,e),f(t.showLegend,e),g(t.cameraPosition,e),void 0!==t.tooltip&&(e.showTooltip=t.tooltip),void 0!=t.onclick&&(e.onclick_callback=t.onclick),void 0!==t.tooltipStyle&&x.selectiveDeepExtend(["tooltipStyle"],e,t)}function f(t,e){if(void 0===t){var n=void 0===O.showLegend;if(n){var i=e.style===T.DOTCOLOR||e.style===T.DOTSIZE;e.showLegend=i}}else e.showLegend=t}function d(t){var e=D[t];return void 0===e?-1:e}function p(t){var e=!1;for(var n in T)if(T[n]===t){e=!0;break}return e}function m(t,e){if(void 0!==t){var n;if("string"==typeof t){if(n=d(t),n===-1)throw new Error("Style '"+t+"' is invalid")}else{if(!p(t))throw new Error("Style '"+t+"' is invalid");n=t}e.style=n}}function v(t,e){var n="white",i="gray",r=1;if("string"==typeof t)n=t,i="none",r=0;else{if("object"!==("undefined"==typeof t?"undefined":(0,w.default)(t)))throw new Error("Unsupported type of backgroundColor");void 0!==t.fill&&(n=t.fill),void 0!==t.stroke&&(i=t.stroke),void 0!==t.strokeWidth&&(r=t.strokeWidth)}e.frame.style.backgroundColor=n,e.frame.style.borderColor=i,e.frame.style.borderWidth=r+"px",e.frame.style.borderStyle="solid"}function y(t,e){void 0!==t&&(void 0===e.dataColor&&(e.dataColor={}),"string"==typeof t?(e.dataColor.fill=t,e.dataColor.stroke=t):(t.fill&&(e.dataColor.fill=t.fill),t.stroke&&(e.dataColor.stroke=t.stroke),void 0!==t.strokeWidth&&(e.dataColor.strokeWidth=t.strokeWidth)))}function g(t,e){var n=t;void 0!==n&&(void 0===e.camera&&(e.camera=new b),e.camera.setArmRotation(n.horizontal,n.vertical),e.camera.setArmLength(n.distance))}var _=n(62),w=i(_),x=n(1),b=n(101),S=n(99),T={BAR:0,BARCOLOR:1,BARSIZE:2,DOT:3,DOTLINE:4,DOTCOLOR:5,DOTSIZE:6,GRID:7,LINE:8,SURFACE:9},D={dot:T.DOT,"dot-line":T.DOTLINE,"dot-color":T.DOTCOLOR,"dot-size":T.DOTSIZE,line:T.LINE,grid:T.GRID,surface:T.SURFACE,bar:T.BAR,"bar-color":T.BARCOLOR,"bar-size":T.BARSIZE},M=["width","height","filterLabel","legendLabel","xLabel","yLabel","zLabel","xValueLabel","yValueLabel","zValueLabel","showXAxis","showYAxis","showZAxis","showGrid","showPerspective","showShadow","keepAspectRatio","verticalRatio","dotSizeRatio","dotSizeMinFraction","dotSizeMaxFraction","showAnimationControls","animationInterval","animationPreload","animationAutoStart","axisColor","gridColor","xCenter","yCenter"],k=["xBarWidth","yBarWidth","valueMin","valueMax","xMin","xMax","xStep","yMin","yMax","yStep","zMin","zMax","zStep"],O=void 0;t.exports.STYLE=T,t.exports.setDefaults=u,t.exports.setOptions=l,t.exports.setCameraPosition=g},function(t,e,n){function i(){this.dataTable=null}var r=n(88),o=n(92),s=(n(99),n(109));i.prototype.initializeData=function(t,e,n){if(this.dataSet&&this.dataSet.off("*",this._onChange),void 0!==e){Array.isArray(e)&&(e=new r(e));var i;if(!(e instanceof r||e instanceof o))throw new Error("Array, DataSet, or DataView expected");if(i=e.get(),0!=i.length){this.dataSet=e,this.dataTable=i;var s=this;this._onChange=function(){t.setData(s.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z";var a=t.hasBars(n);if(a&&(void 0!==t.defaultXBarWidth?this.xBarWidth=t.defaultXBarWidth:this.xBarWidth=this.getSmallestDifference(i,this.colX)||1,void 0!==t.defaultYBarWidth?this.yBarWidth=t.defaultYBarWidth:this.yBarWidth=this.getSmallestDifference(i,this.colY)||1),this._initializeRange(i,this.colX,t,a),this._initializeRange(i,this.colY,t,a),this._initializeRange(i,this.colZ,t,!1),i[0].hasOwnProperty("style")){this.colValue="style";var h=this.getColumnRange(i,this.colValue);this._setRangeDefaults(h,t.defaultValueMin,t.defaultValueMax),this.valueRange=h}}}},i.prototype._collectRangeSettings=function(t,e){var n=["x","y","z"].indexOf(t);if(n==-1)throw new Error("Column '"+t+"' invalid");var i=t.toUpperCase();return{barWidth:this[t+"BarWidth"],min:e["default"+i+"Min"],max:e["default"+i+"Max"],step:e["default"+i+"Step"],range_label:t+"Range",step_label:t+"Step"}},i.prototype._initializeRange=function(t,e,n,i){var r=5,o=this._collectRangeSettings(e,n),s=this.getColumnRange(t,e);i&&"z"!=e&&s.expand(o.barWidth/2),this._setRangeDefaults(s,o.min,o.max),this[o.range_label]=s,this[o.step_label]=void 0!==o.step?o.step:s.range()/r},i.prototype.getDistinctValues=function(t,e){void 0===e&&(e=this.dataTable);for(var n=[],i=0;io)&&(i=o)}return i},i.prototype.getColumnRange=function(t,e){for(var n=new s,i=0;i0?u._handlers[t]=i:(n.off(t,o),delete u._handlers[t]))}),u},u.emit=function(e,i){t=i.target,n.emit(e,i)},u.destroy=function(){var t=n.element.hammer,e=t.indexOf(u);e!==-1&&t.splice(e,1),t.length||delete n.element.hammer,u._handlers={},n.destroy()},u}})},function(t,e,n){var i;/*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ * * Copyright (c) 2016 Jorik Tangelder; * Licensed under the MIT license */ -!function(r,o,s,a){function h(t,e,n){return setTimeout(d(t,n),e)}function u(t,e,n){return!!Array.isArray(t)&&(l(t,n[e],n),!0)}function l(t,e,n){var i;if(t)if(t.forEach)t.forEach(e,n);else if(t.length!==a)for(i=0;i\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=r.console&&(r.console.warn||r.console.log);return o&&o.call(r.console,i,n),t.apply(this,arguments)}}function f(t,e,n){var i,r=e.prototype;i=t.prototype=Object.create(r),i.constructor=t,i._super=r,n&&mt(i,n)}function d(t,e){return function(){return t.apply(e,arguments)}}function p(t,e){return typeof t==gt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,n){l(w(e),function(e){t.addEventListener(e,n,!1)})}function y(t,e,n){l(w(e),function(e){t.removeEventListener(e,n,!1)})}function g(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function _(t,e){return t.indexOf(e)>-1}function w(t){return t.trim().split(/\s+/g)}function x(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var i=0;in[e]}):i.sort()),i}function T(t,e){for(var n,i,r=e[0].toUpperCase()+e.slice(1),o=0;o1&&!n.firstMultiple?n.firstMultiple=Y(e):1===r&&(n.firstMultiple=!1);var o=n.firstInput,s=n.firstMultiple,a=s?s.center:o.center,h=e.center=R(i);e.timeStamp=xt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=N(a,h),e.distance=z(a,h),P(n,e),e.offsetDirection=I(e.deltaX,e.deltaY);var u=A(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=u.x,e.overallVelocityY=u.y,e.overallVelocity=wt(u.x)>wt(u.y)?u.x:u.y,e.scale=s?F(s.pointers,i):1,e.rotation=s?W(s.pointers,i):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,L(n,e);var l=t.element;g(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var n=e.center,i=t.offsetDelta||{},r=t.prevDelta||{},o=t.prevInput||{};e.eventType!==Rt&&o.eventType!==It||(r=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},i=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=r.x+(n.x-i.x),e.deltaY=r.y+(n.y-i.y)}function L(t,e){var n,i,r,o,s=t.lastInterval||e,h=e.timeStamp-s.timeStamp;if(e.eventType!=zt&&(h>Yt||s.velocity===a)){var u=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,c=A(h,u,l);i=c.x,r=c.y,n=wt(c.x)>wt(c.y)?c.x:c.y,o=I(u,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,r=s.velocityY,o=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=r,e.direction=o}function Y(t){for(var e=[],n=0;n=wt(e)?t<0?Wt:Ft:e<0?jt:Gt}function z(t,e,n){n||(n=Ht);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return Math.sqrt(i*i+r*r)}function N(t,e,n){n||(n=Ht);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return 180*Math.atan2(r,i)/Math.PI}function W(t,e){return N(e[1],e[0],Xt)+N(t[1],t[0],Xt)}function F(t,e){return z(e[0],e[1],Xt)/z(t[0],t[1],Xt)}function j(){this.evEl=qt,this.evWin=$t,this.pressed=!1,k.apply(this,arguments)}function G(){this.evEl=Kt,this.evWin=te,k.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function V(){this.evTarget=ne,this.evWin=ie,this.started=!1,k.apply(this,arguments)}function B(t,e){var n=b(t.touches),i=b(t.changedTouches);return e&(It|zt)&&(n=S(n.concat(i),"identifier",!0)),[n,i]}function U(){this.evTarget=oe,this.targetIds={},k.apply(this,arguments)}function H(t,e){var n=b(t.touches),i=this.targetIds;if(e&(Rt|At)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var r,o,s=b(t.changedTouches),a=[],h=this.target;if(o=n.filter(function(t){return g(t.target,h)}),e===Rt)for(r=0;r-1&&i.splice(t,1)};setTimeout(r,se)}}function $(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,i=0;i-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(e,t)}var n=this,i=this.state;i=we&&e(n.options.event+et(i))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=Se)},canEmit:function(){for(var t=0;te.threshold&&r&e.direction},attrTest:function(t){return rt.prototype.attrTest.call(this,t)&&(this.state&ge||!(this.state&ge)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=nt(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),f(st,rt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[de]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ge)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),f(at,tt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ce]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distancee.time;if(this._input=t,!i||!n||t.eventType&(It|zt)&&!r)this.reset();else if(t.eventType&Rt)this.reset(),this._timer=h(function(){this.state=xe,this.tryEmit()},e.time,this);else if(t.eventType&It)return xe;return Se},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===xe&&(t&&t.eventType&It?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=xt(),this.manager.emit(this.options.event,this._input)))}}),f(ht,rt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[de]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ge)}}),f(ut,rt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Vt|Bt,pointers:1},getTouchAction:function(){return ot.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(Vt|Bt)?e=t.overallVelocity:n&Vt?e=t.overallVelocityX:n&Bt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&wt(e)>this.options.velocity&&t.eventType&It},emit:function(t){var e=nt(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),f(lt,tt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[fe]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=r.console&&(r.console.warn||r.console.log);return o&&o.call(r.console,i,n),t.apply(this,arguments)}}function f(t,e,n){var i,r=e.prototype;i=t.prototype=Object.create(r),i.constructor=t,i._super=r,n&&mt(i,n)}function d(t,e){return function(){return t.apply(e,arguments)}}function p(t,e){return typeof t==gt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function v(t,e,n){l(w(e),function(e){t.addEventListener(e,n,!1)})}function y(t,e,n){l(w(e),function(e){t.removeEventListener(e,n,!1)})}function g(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function _(t,e){return t.indexOf(e)>-1}function w(t){return t.trim().split(/\s+/g)}function x(t,e,n){if(t.indexOf&&!n)return t.indexOf(e);for(var i=0;in[e]}):i.sort()),i}function T(t,e){for(var n,i,r=e[0].toUpperCase()+e.slice(1),o=0;o1&&!n.firstMultiple?n.firstMultiple=R(e):1===r&&(n.firstMultiple=!1);var o=n.firstInput,s=n.firstMultiple,a=s?s.center:o.center,h=e.center=Y(i);e.timeStamp=xt(),e.deltaTime=e.timeStamp-o.timeStamp,e.angle=z(a,h),e.distance=N(a,h),P(n,e),e.offsetDirection=I(e.deltaX,e.deltaY);var u=A(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=u.x,e.overallVelocityY=u.y,e.overallVelocity=wt(u.x)>wt(u.y)?u.x:u.y,e.scale=s?F(s.pointers,i):1,e.rotation=s?W(s.pointers,i):0,e.maxPointers=n.prevInput?e.pointers.length>n.prevInput.maxPointers?e.pointers.length:n.prevInput.maxPointers:e.pointers.length,L(n,e);var l=t.element;g(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var n=e.center,i=t.offsetDelta||{},r=t.prevDelta||{},o=t.prevInput||{};e.eventType!==Yt&&o.eventType!==It||(r=t.prevDelta={x:o.deltaX||0,y:o.deltaY||0},i=t.offsetDelta={x:n.x,y:n.y}),e.deltaX=r.x+(n.x-i.x),e.deltaY=r.y+(n.y-i.y)}function L(t,e){var n,i,r,o,s=t.lastInterval||e,h=e.timeStamp-s.timeStamp;if(e.eventType!=Nt&&(h>Rt||s.velocity===a)){var u=e.deltaX-s.deltaX,l=e.deltaY-s.deltaY,c=A(h,u,l);i=c.x,r=c.y,n=wt(c.x)>wt(c.y)?c.x:c.y,o=I(u,l),t.lastInterval=e}else n=s.velocity,i=s.velocityX,r=s.velocityY,o=s.direction;e.velocity=n,e.velocityX=i,e.velocityY=r,e.direction=o}function R(t){for(var e=[],n=0;n=wt(e)?t<0?Wt:Ft:e<0?Gt:jt}function N(t,e,n){n||(n=Ut);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return Math.sqrt(i*i+r*r)}function z(t,e,n){n||(n=Ut);var i=e[n[0]]-t[n[0]],r=e[n[1]]-t[n[1]];return 180*Math.atan2(r,i)/Math.PI}function W(t,e){return z(e[1],e[0],Xt)+z(t[1],t[0],Xt)}function F(t,e){return N(e[0],e[1],Xt)/N(t[0],t[1],Xt)}function G(){this.evEl=qt,this.evWin=$t,this.pressed=!1,k.apply(this,arguments)}function j(){this.evEl=Kt,this.evWin=te,k.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function V(){this.evTarget=ne,this.evWin=ie,this.started=!1,k.apply(this,arguments)}function B(t,e){var n=b(t.touches),i=b(t.changedTouches);return e&(It|Nt)&&(n=S(n.concat(i),"identifier",!0)),[n,i]}function H(){this.evTarget=oe,this.targetIds={},k.apply(this,arguments)}function U(t,e){var n=b(t.touches),i=this.targetIds;if(e&(Yt|At)&&1===n.length)return i[n[0].identifier]=!0,[n,n];var r,o,s=b(t.changedTouches),a=[],h=this.target;if(o=n.filter(function(t){return g(t.target,h)}),e===Yt)for(r=0;r-1&&i.splice(t,1)};setTimeout(r,se)}}function $(t){for(var e=t.srcEvent.clientX,n=t.srcEvent.clientY,i=0;i-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){n.manager.emit(e,t)}var n=this,i=this.state;i=we&&e(n.options.event+et(i))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=Se)},canEmit:function(){for(var t=0;te.threshold&&r&e.direction},attrTest:function(t){return rt.prototype.attrTest.call(this,t)&&(this.state&ge||!(this.state&ge)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=nt(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),f(st,rt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[de]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ge)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),f(at,tt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ce]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distancee.time;if(this._input=t,!i||!n||t.eventType&(It|Nt)&&!r)this.reset();else if(t.eventType&Yt)this.reset(),this._timer=h(function(){this.state=xe,this.tryEmit()},e.time,this);else if(t.eventType&It)return xe;return Se},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===xe&&(t&&t.eventType&It?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=xt(),this.manager.emit(this.options.event,this._input)))}}),f(ht,rt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[de]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ge)}}),f(ut,rt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Vt|Bt,pointers:1},getTouchAction:function(){return ot.prototype.getTouchAction.call(this)},attrTest:function(t){var e,n=this.options.direction;return n&(Vt|Bt)?e=t.overallVelocity:n&Vt?e=t.overallVelocityX:n&Bt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&n&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&wt(e)>this.options.velocity&&t.eventType&It},emit:function(t){var e=nt(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),f(lt,tt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[fe]},process:function(t){var e=this.options,n=t.pointers.length===e.pointers,i=t.distance2&&void 0!==arguments[2]&&arguments[2];for(var n in e)void 0!==i[n]&&("object"!==(0,u.default)(i[n])?void 0!==i[n]&&null!==i[n]||void 0===e[n]||o!==!0?e[n]=i[n]:delete e[n]:"object"===(0,u.default)(e[n])&&t.fillIfDefined(e[n],i[n],o))},t.protoExtend=function(e,t){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&e.indexOf(s)==-1)if(o[s]&&o[s].constructor===Object)void 0===i[s]&&(i[s]={}),i[s].constructor===Object?t.deepExtend(i[s],o[s]):null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];else if(Array.isArray(o[s])){i[s]=[];for(var r=0;r=0&&(t="DOMMouseScroll"),e.addEventListener(t,i,o)):e.attachEvent("on"+t,i)},t.removeEventListener=function(e,t,i,o){e.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===t&&navigator.userAgent.indexOf("Firefox")>=0&&(t="DOMMouseScroll"),e.removeEventListener(t,i,o)):e.detachEvent("on"+t,i)},t.preventDefault=function(e){e||(e=window.event),e.preventDefault?e.preventDefault():e.returnValue=!1},t.getTarget=function(e){e||(e=window.event);var t;return e.target?t=e.target:e.srcElement&&(t=e.srcElement),void 0!=t.nodeType&&3==t.nodeType&&(t=t.parentNode),t},t.hasParent=function(e,t){for(var i=e;i;){if(i===t)return!0;i=i.parentNode}return!1},t.option={},t.option.asBoolean=function(e,t){return"function"==typeof e&&(e=e()),null!=e?0!=e:t||null},t.option.asNumber=function(e,t){return"function"==typeof e&&(e=e()),null!=e?Number(e)||t||null:t||null},t.option.asString=function(e,t){return"function"==typeof e&&(e=e()),null!=e?String(e):t||null},t.option.asSize=function(e,i){return"function"==typeof e&&(e=e()),t.isString(e)?e:t.isNumber(e)?e+"px":i||null},t.option.asElement=function(e,t){return"function"==typeof e&&(e=e()),e||t||null},t.hexToRGB=function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(t,function(e,t,i,o){return t+t+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},t.overrideOpacity=function(e,i){if(e.indexOf("rgba")!=-1)return e;if(e.indexOf("rgb")!=-1){var o=e.substr(e.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=t.hexToRGB(e);return null==o?e:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},t.RGBToHex=function(e,t,i){return"#"+((1<<24)+(e<<16)+(t<<8)+i).toString(16).slice(1)},t.parseColor=function(e){var i;if(t.isString(e)===!0){if(t.isValidRGB(e)===!0){var o=e.substr(4).substr(0,e.length-5).split(",").map(function(e){return parseInt(e)});e=t.RGBToHex(o[0],o[1],o[2])}if(t.isValidHex(e)===!0){var n=t.hexToHSV(e),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=t.HSVToHex(r.h,r.s,r.v),d=t.HSVToHex(s.h,s.s,s.v);i={background:e,border:a,highlight:{background:d,border:a},hover:{background:d,border:a}}}else i={background:e,border:e,highlight:{background:e,border:e},hover:{background:e,border:e}}}else i={},i.background=e.background||void 0,i.border=e.border||void 0,t.isString(e.highlight)?i.highlight={border:e.highlight,background:e.highlight}:(i.highlight={},i.highlight.background=e.highlight&&e.highlight.background||void 0,i.highlight.border=e.highlight&&e.highlight.border||void 0),t.isString(e.hover)?i.hover={border:e.hover,background:e.hover}:(i.hover={},i.hover.background=e.hover&&e.hover.background||void 0,i.hover.border=e.hover&&e.hover.border||void 0);return i},t.RGBToHSV=function(e,t,i){e/=255,t/=255,i/=255;var o=Math.min(e,Math.min(t,i)),n=Math.max(e,Math.max(t,i));if(o==n)return{h:0,s:0,v:o};var s=e==o?t-i:i==o?e-t:i-e,r=e==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,d=(n-o)/n,h=n;return{h:a,s:d,v:h}};var v={split:function(e){var t={};return e.split(";").forEach(function(e){if(""!=e.trim()){var i=e.split(":"),o=i[0].trim(),n=i[1].trim();t[o]=n}}),t},join:function(e){return(0,h.default)(e).map(function(t){return t+": "+e[t]}).join("; ")}};t.addCssText=function(e,i){var o=v.split(e.style.cssText),n=v.split(i),s=t.extend(o,n);e.style.cssText=v.join(s)},t.removeCssText=function(e,t){var i=v.split(e.style.cssText),o=v.split(t);for(var n in o)o.hasOwnProperty(n)&&delete i[n];e.style.cssText=v.join(i)},t.HSVToRGB=function(e,t,i){var o,n,s,r=Math.floor(6*e),a=6*e-r,d=i*(1-t),h=i*(1-a*t),l=i*(1-(1-a)*t);switch(r%6){case 0:o=i,n=l,s=d;break;case 1:o=h,n=i,s=d;break;case 2:o=d,n=i,s=l;break;case 3:o=d,n=h,s=i;break;case 4:o=l,n=d,s=i;break;case 5:o=i,n=d,s=h}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},t.HSVToHex=function(e,i,o){var n=t.HSVToRGB(e,i,o);return t.RGBToHex(n.r,n.g,n.b)},t.hexToHSV=function(e){var i=t.hexToRGB(e);return t.RGBToHSV(i.r,i.g,i.b)},t.isValidHex=function(e){var t=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e);return t},t.isValidRGB=function(e){e=e.replace(" ","");var t=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(e);return t},t.isValidRGBA=function(e){e=e.replace(" ","");var t=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(e);return t},t.selectiveBridgeObject=function(e,i){if("object"==("undefined"==typeof i?"undefined":(0,u.default)(i))){for(var o=(0,a.default)(i),n=0;n0&&t(o,e[n-1])<0;n--)e[n]=e[n-1];e[n]=o}return e},t.mergeOptions=function(e,t,i){var o=(arguments.length>3&&void 0!==arguments[3]&&arguments[3],arguments.length>4&&void 0!==arguments[4]?arguments[4]:{});if(null===t[i])e[i]=(0,a.default)(o[i]);else if(void 0!==t[i])if("boolean"==typeof t[i])e[i].enabled=t[i];else{void 0===t[i].enabled&&(e[i].enabled=!0);for(var n in t[i])t[i].hasOwnProperty(n)&&(e[i][n]=t[i][n])}},t.binarySearchCustom=function(e,t,i,o){for(var n=1e4,s=0,r=0,a=e.length-1;r<=a&&s0)return"before"==o?Math.max(0,d-1):d;if(n(r,t)<0&&n(a,t)>0)return"before"==o?d:Math.min(e.length-1,d+1);n(r,t)<0?u=d+1:c=d-1,l++}return-1},t.easingFunctions={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutQuad:function(e){return e<.5?2*e*e:-1+(4-2*e)*e},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return--e*e*e+1},easeInOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1- --e*e*e*e},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1+--e*e*e*e*e},easeInOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}},t.getScrollBarWidth=function(){var e=document.createElement("p");e.style.width="100%",e.style.height="200px";var t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);var i=e.offsetWidth;t.style.overflow="scroll";var o=e.offsetWidth;return i==o&&(o=t.clientWidth),document.body.removeChild(t),i-o},t.topMost=function(e,t){var i=void 0;Array.isArray(t)||(t=[t]);var o=!0,n=!1,r=void 0;try{for(var a,d=(0,s.default)(e);!(o=(a=d.next()).done);o=!0){var h=a.value;if(h){i=h[t[0]];for(var l=1;l=e.length?(this._t=void 0,n(1)):"keys"==t?n(0,i):"values"==t?n(0,e[i]):n(0,[i,e[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t){e.exports={}},function(e,t,i){var o=i(10),n=i(12);e.exports=function(e){return o(n(e))}},function(e,t,i){var o=i(11);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==o(e)?e.split(""):Object(e)}},function(e,t){var i={}.toString;e.exports=function(e){return i.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,i){var o=i(14),n=i(15),s=i(30),r=i(20),a=i(31),d=i(8),h=i(32),l=i(46),u=i(48),c=i(47)("iterator"),f=!([].keys&&"next"in[].keys()),p="@@iterator",v="keys",g="values",y=function(){return this};e.exports=function(e,t,i,m,b,_,w){h(i,t,m);var k,x,O,M=function(e){if(!f&&e in C)return C[e];switch(e){case v:return function(){return new i(this,e)};case g:return function(){return new i(this,e)}}return function(){return new i(this,e)}},E=t+" Iterator",S=b==g,D=!1,C=e.prototype,T=C[c]||C[p]||b&&C[b],P=T||M(b),F=b?S?M("entries"):P:void 0,I="Array"==t?C.entries||T:T;if(I&&(O=u(I.call(new e)),O!==Object.prototype&&(l(O,E,!0),o||a(O,c)||r(O,c,y))),S&&T&&T.name!==g&&(D=!0,P=function(){return T.call(this)}),o&&!w||!f&&!D&&C[c]||r(C,c,P),d[t]=P,d[E]=y,b)if(k={values:S?P:M(g),keys:_?P:M(v),entries:F},w)for(x in k)x in C||s(C,x,k[x]);else n(n.P+n.F*(f||D),t,k);return k}},function(e,t){e.exports=!0},function(e,t,i){var o=i(16),n=i(17),s=i(18),r=i(20),a="prototype",d=function(e,t,i){var h,l,u,c=e&d.F,f=e&d.G,p=e&d.S,v=e&d.P,g=e&d.B,y=e&d.W,m=f?n:n[t]||(n[t]={}),b=m[a],_=f?o:p?o[t]:(o[t]||{})[a];f&&(i=t);for(h in i)l=!c&&_&&void 0!==_[h],l&&h in m||(u=l?_[h]:i[h],m[h]=f&&"function"!=typeof _[h]?i[h]:g&&l?s(u,o):y&&_[h]==u?function(e){var t=function(t,i,o){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,i)}return new e(t,i,o)}return e.apply(this,arguments)};return t[a]=e[a],t}(u):v&&"function"==typeof u?s(Function.call,u):u,v&&((m.virtual||(m.virtual={}))[h]=u,e&d.R&&b&&!b[h]&&r(b,h,u)))};d.F=1,d.G=2,d.S=4,d.P=8,d.B=16,d.W=32,d.U=64,d.R=128,e.exports=d},function(e,t){var i=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(e,t){var i=e.exports={version:"2.4.0"};"number"==typeof __e&&(__e=i)},function(e,t,i){var o=i(19);e.exports=function(e,t,i){if(o(e),void 0===t)return e;switch(i){case 1:return function(i){return e.call(t,i)};case 2:return function(i,o){return e.call(t,i,o)};case 3:return function(i,o,n){return e.call(t,i,o,n)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,i){var o=i(21),n=i(29);e.exports=i(25)?function(e,t,i){return o.f(e,t,n(1,i))}:function(e,t,i){return e[t]=i,e}},function(e,t,i){var o=i(22),n=i(24),s=i(28),r=Object.defineProperty;t.f=i(25)?Object.defineProperty:function(e,t,i){if(o(e),t=s(t,!0),o(i),n)try{return r(e,t,i)}catch(e){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(e[t]=i.value),e}},function(e,t,i){var o=i(23);e.exports=function(e){if(!o(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,i){e.exports=!i(25)&&!i(26)(function(){return 7!=Object.defineProperty(i(27)("div"),"a",{get:function(){return 7}}).a})},function(e,t,i){e.exports=!i(26)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,i){var o=i(23),n=i(16).document,s=o(n)&&o(n.createElement);e.exports=function(e){return s?n.createElement(e):{}}},function(e,t,i){var o=i(23);e.exports=function(e,t){if(!o(e))return e;var i,n;if(t&&"function"==typeof(i=e.toString)&&!o(n=i.call(e)))return n;if("function"==typeof(i=e.valueOf)&&!o(n=i.call(e)))return n;if(!t&&"function"==typeof(i=e.toString)&&!o(n=i.call(e)))return n;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,i){e.exports=i(20)},function(e,t){var i={}.hasOwnProperty;e.exports=function(e,t){return i.call(e,t)}},function(e,t,i){var o=i(33),n=i(29),s=i(46),r={};i(20)(r,i(47)("iterator"),function(){return this}),e.exports=function(e,t,i){e.prototype=o(r,{next:n(1,i)}),s(e,t+" Iterator")}},function(e,t,i){var o=i(22),n=i(34),s=i(44),r=i(41)("IE_PROTO"),a=function(){},d="prototype",h=function(){var e,t=i(27)("iframe"),o=s.length,n="<",r=">";for(t.style.display="none",i(45).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(n+"script"+r+"document.F=Object"+n+"/script"+r),e.close(),h=e.F;o--;)delete h[d][s[o]];return h()};e.exports=Object.create||function(e,t){var i;return null!==e?(a[d]=o(e),i=new a,a[d]=null,i[r]=e):i=h(),void 0===t?i:n(i,t)}},function(e,t,i){var o=i(21),n=i(22),s=i(35);e.exports=i(25)?Object.defineProperties:function(e,t){n(e);for(var i,r=s(t),a=r.length,d=0;a>d;)o.f(e,i=r[d++],t[i]);return e}},function(e,t,i){var o=i(36),n=i(44);e.exports=Object.keys||function(e){return o(e,n)}},function(e,t,i){var o=i(31),n=i(9),s=i(37)(!1),r=i(41)("IE_PROTO");e.exports=function(e,t){var i,a=n(e),d=0,h=[];for(i in a)i!=r&&o(a,i)&&h.push(i);for(;t.length>d;)o(a,i=t[d++])&&(~s(h,i)||h.push(i));return h}},function(e,t,i){var o=i(9),n=i(38),s=i(40);e.exports=function(e){return function(t,i,r){var a,d=o(t),h=n(d.length),l=s(r,h);if(e&&i!=i){for(;h>l;)if(a=d[l++],a!=a)return!0}else for(;h>l;l++)if((e||l in d)&&d[l]===i)return e||l||0;return!e&&-1}}},function(e,t,i){var o=i(39),n=Math.min;e.exports=function(e){return e>0?n(o(e),9007199254740991):0}},function(e,t){var i=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?o:i)(e)}},function(e,t,i){var o=i(39),n=Math.max,s=Math.min;e.exports=function(e,t){return e=o(e),e<0?n(e+t,0):s(e,t)}},function(e,t,i){var o=i(42)("keys"),n=i(43);e.exports=function(e){return o[e]||(o[e]=n(e))}},function(e,t,i){var o=i(16),n="__core-js_shared__",s=o[n]||(o[n]={});e.exports=function(e){return s[e]||(s[e]={})}},function(e,t){var i=0,o=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++i+o).toString(36))}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,i){e.exports=i(16).document&&document.documentElement},function(e,t,i){var o=i(21).f,n=i(31),s=i(47)("toStringTag");e.exports=function(e,t,i){e&&!n(e=i?e:e.prototype,s)&&o(e,s,{configurable:!0,value:t})}},function(e,t,i){var o=i(42)("wks"),n=i(43),s=i(16).Symbol,r="function"==typeof s,a=e.exports=function(e){return o[e]||(o[e]=r&&s[e]||(r?s:n)("Symbol."+e))};a.store=o},function(e,t,i){var o=i(31),n=i(49),s=i(41)("IE_PROTO"),r=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=n(e),o(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?r:null}},function(e,t,i){var o=i(12);e.exports=function(e){return Object(o(e))}},function(e,t,i){var o=i(51)(!0);i(13)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,i=this._i;return i>=t.length?{value:void 0,done:!0}:(e=o(t,i),this._i+=e.length,{value:e,done:!1})})},function(e,t,i){var o=i(39),n=i(12);e.exports=function(e){return function(t,i){var s,r,a=String(n(t)),d=o(i),h=a.length;return d<0||d>=h?e?"":void 0:(s=a.charCodeAt(d),s<55296||s>56319||d+1===h||(r=a.charCodeAt(d+1))<56320||r>57343?e?a.charAt(d):s:e?a.slice(d,d+2):(s-55296<<10)+(r-56320)+65536)}}},function(e,t,i){var o=i(22),n=i(53);e.exports=i(17).getIterator=function(e){var t=n(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return o(t.call(e))}},function(e,t,i){var o=i(54),n=i(47)("iterator"),s=i(8);e.exports=i(17).getIteratorMethod=function(e){if(void 0!=e)return e[n]||e["@@iterator"]||s[o(e)]}},function(e,t,i){var o=i(11),n=i(47)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,i,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=r(t=Object(e),n))?i:s?o(t):"Object"==(a=o(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,i){e.exports={default:i(56),__esModule:!0}},function(e,t,i){i(57);var o=i(17).Object;e.exports=function(e,t){return o.create(e,t)}},function(e,t,i){var o=i(15);o(o.S,"Object",{create:i(33)})},function(e,t,i){e.exports={default:i(59),__esModule:!0}},function(e,t,i){i(60),e.exports=i(17).Object.keys},function(e,t,i){var o=i(49),n=i(35);i(61)("keys",function(){return function(e){return n(o(e))}})},function(e,t,i){var o=i(15),n=i(17),s=i(26);e.exports=function(e,t){var i=(n.Object||{})[e]||Object[e],r={};r[e]=t(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(e,t,i){function o(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var n=i(63),s=o(n),r=i(66),a=o(r),d="function"==typeof a.default&&"symbol"==typeof s.default?function(e){return typeof e}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":typeof e};t.default="function"==typeof a.default&&"symbol"===d(s.default)?function(e){return"undefined"==typeof e?"undefined":d(e)}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":"undefined"==typeof e?"undefined":d(e)}},function(e,t,i){e.exports={default:i(64),__esModule:!0}},function(e,t,i){i(50),i(4),e.exports=i(65).f("iterator")},function(e,t,i){t.f=i(47)},function(e,t,i){e.exports={default:i(67),__esModule:!0}},function(e,t,i){i(68),i(79),i(80),i(81),e.exports=i(17).Symbol},function(e,t,i){var o=i(16),n=i(31),s=i(25),r=i(15),a=i(30),d=i(69).KEY,h=i(26),l=i(42),u=i(46),c=i(43),f=i(47),p=i(65),v=i(70),g=i(71),y=i(72),m=i(75),b=i(22),_=i(9),w=i(28),k=i(29),x=i(33),O=i(76),M=i(78),E=i(21),S=i(35),D=M.f,C=E.f,T=O.f,P=o.Symbol,F=o.JSON,I=F&&F.stringify,N="prototype",B=f("_hidden"),z=f("toPrimitive"),A={}.propertyIsEnumerable,R=l("symbol-registry"),j=l("symbols"),H=l("op-symbols"),L=Object[N],W="function"==typeof P,Y=o.QObject,V=!Y||!Y[N]||!Y[N].findChild,U=s&&h(function(){return 7!=x(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a})?function(e,t,i){var o=D(L,t);o&&delete L[t],C(e,t,i),o&&e!==L&&C(L,t,o)}:C,q=function(e){var t=j[e]=x(P[N]);return t._k=e,t},G=W&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},X=function(e,t,i){return e===L&&X(H,t,i),b(e),t=w(t,!0),b(i),n(j,t)?(i.enumerable?(n(e,B)&&e[B][t]&&(e[B][t]=!1),i=x(i,{enumerable:k(0,!1)})):(n(e,B)||C(e,B,k(1,{})),e[B][t]=!0),U(e,t,i)):C(e,t,i)},K=function(e,t){b(e);for(var i,o=y(t=_(t)),n=0,s=o.length;s>n;)X(e,i=o[n++],t[i]);return e},Z=function(e,t){return void 0===t?x(e):K(x(e),t)},Q=function(e){var t=A.call(this,e=w(e,!0));return!(this===L&&n(j,e)&&!n(H,e))&&(!(t||!n(this,e)||!n(j,e)||n(this,B)&&this[B][e])||t)},$=function(e,t){if(e=_(e),t=w(t,!0),e!==L||!n(j,t)||n(H,t)){var i=D(e,t);return!i||!n(j,t)||n(e,B)&&e[B][t]||(i.enumerable=!0),i}},J=function(e){for(var t,i=T(_(e)),o=[],s=0;i.length>s;)n(j,t=i[s++])||t==B||t==d||o.push(t);return o},ee=function(e){for(var t,i=e===L,o=T(i?H:_(e)),s=[],r=0;o.length>r;)!n(j,t=o[r++])||i&&!n(L,t)||s.push(j[t]);return s};W||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=c(arguments.length>0?arguments[0]:void 0),t=function(i){this===L&&t.call(H,i),n(this,B)&&n(this[B],e)&&(this[B][e]=!1),U(this,e,k(1,i))};return s&&V&&U(L,e,{configurable:!0,set:t}),q(e)},a(P[N],"toString",function(){return this._k}),M.f=$,E.f=X,i(77).f=O.f=J,i(74).f=Q,i(73).f=ee,s&&!i(14)&&a(L,"propertyIsEnumerable",Q,!0),p.f=function(e){return q(f(e))}),r(r.G+r.W+r.F*!W,{Symbol:P});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ie=0;te.length>ie;)f(te[ie++]);for(var te=S(f.store),ie=0;te.length>ie;)v(te[ie++]);r(r.S+r.F*!W,"Symbol",{for:function(e){return n(R,e+="")?R[e]:R[e]=P(e)},keyFor:function(e){if(G(e))return g(R,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){V=!0},useSimple:function(){V=!1}}),r(r.S+r.F*!W,"Object",{create:Z,defineProperty:X,defineProperties:K,getOwnPropertyDescriptor:$,getOwnPropertyNames:J,getOwnPropertySymbols:ee}),F&&r(r.S+r.F*(!W||h(function(){var e=P();return"[null]"!=I([e])||"{}"!=I({a:e})||"{}"!=I(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!G(e)){for(var t,i,o=[e],n=1;arguments.length>n;)o.push(arguments[n++]);return t=o[1],"function"==typeof t&&(i=t),!i&&m(t)||(t=function(e,t){if(i&&(t=i.call(this,e,t)),!G(t))return t}),o[1]=t,I.apply(F,o)}}}),P[N][z]||i(20)(P[N],z,P[N].valueOf),u(P,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(e,t,i){var o=i(43)("meta"),n=i(23),s=i(31),r=i(21).f,a=0,d=Object.isExtensible||function(){return!0},h=!i(26)(function(){return d(Object.preventExtensions({}))}),l=function(e){r(e,o,{value:{i:"O"+ ++a,w:{}}})},u=function(e,t){if(!n(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,o)){if(!d(e))return"F";if(!t)return"E";l(e)}return e[o].i},c=function(e,t){if(!s(e,o)){if(!d(e))return!0;if(!t)return!1;l(e)}return e[o].w},f=function(e){return h&&p.NEED&&d(e)&&!s(e,o)&&l(e),e},p=e.exports={KEY:o,NEED:!1,fastKey:u,getWeak:c,onFreeze:f}},function(e,t,i){var o=i(16),n=i(17),s=i(14),r=i(65),a=i(21).f;e.exports=function(e){var t=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:r.f(e)})}},function(e,t,i){var o=i(35),n=i(9);e.exports=function(e,t){for(var i,s=n(e),r=o(s),a=r.length,d=0;a>d;)if(s[i=r[d++]]===t)return i}},function(e,t,i){var o=i(35),n=i(73),s=i(74);e.exports=function(e){var t=o(e),i=n.f;if(i)for(var r,a=i(e),d=s.f,h=0;a.length>h;)d.call(e,r=a[h++])&&t.push(r);return t}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,i){var o=i(11);e.exports=Array.isArray||function(e){return"Array"==o(e)}},function(e,t,i){var o=i(9),n=i(77).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(e){try{return n(e)}catch(e){return r.slice()}};e.exports.f=function(e){return r&&"[object Window]"==s.call(e)?a(e):n(o(e))}},function(e,t,i){var o=i(36),n=i(44).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,n)}},function(e,t,i){var o=i(74),n=i(29),s=i(9),r=i(28),a=i(31),d=i(24),h=Object.getOwnPropertyDescriptor;t.f=i(25)?h:function(e,t){if(e=s(e),t=r(t,!0),d)try{return h(e,t)}catch(e){}if(a(e,t))return n(!o.f.call(e,t),e[t])}},function(e,t){},function(e,t,i){i(70)("asyncIterator")},function(e,t,i){i(70)("observable")},function(e,t,i){e.exports="undefined"!=typeof window&&window.moment||i(83)},function(e,t,i){(function(e){!function(t,i){e.exports=i()}(this,function(){function t(){return _o.apply(null,arguments)}function i(e){_o=e}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){var t;for(t in e)return!1;return!0}function r(e){return void 0===e}function a(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function h(e,t){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return E(i)?i(t):i.replace(/%s/i,t)}function z(e,t){var i=e.toLowerCase();Bo[i]=Bo[i+"s"]=Bo[t]=e}function A(e){return"string"==typeof e?Bo[e]||Bo[e.toLowerCase()]:void 0}function R(e){var t,i,o={};for(i in e)l(e,i)&&(t=A(i),t&&(o[t]=e[i]));return o}function j(e,t){zo[e]=t}function H(e){var t=[];for(var i in e)t.push({unit:i,priority:zo[i]});return t.sort(function(e,t){return e.priority-t.priority}),t}function L(e,i){return function(o){return null!=o?(Y(this,e,o),t.updateOffset(this,i),this):W(this,e)}}function W(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function Y(e,t,i){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](i)}function V(e){return e=A(e),E(this[e])?this[e]():this}function U(e,t){if("object"==typeof e){e=R(e);for(var i=H(e),o=0;o=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function G(e,t,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),e&&(Ho[e]=n),t&&(Ho[t[0]]=function(){return q(n.apply(this,arguments),t[1],t[2])}),i&&(Ho[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function X(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function K(e){var t,i,o=e.match(Ao);for(t=0,i=o.length;t=0&&Ro.test(e);)e=e.replace(Ro,i),Ro.lastIndex=0,o-=1;return e}function $(e,t,i){sn[e]=E(t)?t:function(e,o){return e&&i?i:t}}function J(e,t){return l(sn,e)?sn[e](t._strict,t._locale):new RegExp(ee(e))}function ee(e){return te(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,i,o,n){return t||i||o||n}))}function te(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ie(e,t){var i,o=t;for("string"==typeof e&&(e=[e]),a(t)&&(o=function(e,i){i[t]=w(e)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(e),a}function _e(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function we(e,t,i){var o=7+t-i,n=(7+_e(e,0,o).getUTCDay()-t)%7;return-n+o-1}function ke(e,t,i,o,n){var s,r,a=(7+i-o)%7,d=we(e,o,n),h=1+7*(t-1)+a+d;return h<=0?(s=e-1,r=ge(s)+h):h>ge(e)?(s=e+1,r=h-ge(e)):(s=e,r=h),{year:s,dayOfYear:r}}function xe(e,t,i){var o,n,s=we(e.year(),t,i),r=Math.floor((e.dayOfYear()-s-1)/7)+1;return r<1?(n=e.year()-1,o=r+Oe(n,t,i)):r>Oe(e.year(),t,i)?(o=r-Oe(e.year(),t,i),n=e.year()+1):(n=e.year(),o=r),{week:o,year:n}}function Oe(e,t,i){var o=we(e,t,i),n=we(e+1,t,i);return(ge(e)-o+n)/7}function Me(e){return xe(e,this._week.dow,this._week.doy).week}function Ee(){return this._week.dow}function Se(){return this._week.doy}function De(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Ce(e){var t=xe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Te(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Pe(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Fe(e,t){return e?o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ie(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Ne(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Be(e,t,i){var o,n,s,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=c([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===t?(n=gn.call(this._weekdaysParse,r),n!==-1?n:null):"ddd"===t?(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:null):(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null):"dddd"===t?(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null))):"ddd"===t?(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null))):(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:null)))}function ze(e,t,i){var o,n,s;if(this._weekdaysParseExact)return Be.call(this,e,t,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=c([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===t&&this._fullWeekdaysParse[o].test(e))return o;if(i&&"ddd"===t&&this._shortWeekdaysParse[o].test(e))return o;if(i&&"dd"===t&&this._minWeekdaysParse[o].test(e))return o;if(!i&&this._weekdaysParse[o].test(e))return o}}function Ae(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Te(e,this.localeData()),this.add(e-t,"d")):t}function Re(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function je(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Pe(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function He(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Ye.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Sn),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Le(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Ye.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Dn),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function We(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Ye.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Cn),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ye(){function e(e,t){return t.length-e.length}var t,i,o,n,s,r=[],a=[],d=[],h=[];for(t=0;t<7;t++)i=c([2e3,1]).day(t),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),d.push(s),h.push(o),h.push(n),h.push(s);for(r.sort(e),a.sort(e),d.sort(e),h.sort(e),t=0;t<7;t++)a[t]=te(a[t]),d[t]=te(d[t]),h[t]=te(h[t]);this._weekdaysRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ve(){return this.hours()%12||12}function Ue(){return this.hours()||24}function qe(e,t){G(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ge(e,t){return t._meridiemParse}function Xe(e){return"p"===(e+"").toLowerCase().charAt(0)}function Ke(e,t,i){return e>11?i?"pm":"PM":i?"am":"AM"}function Ze(e){return e?e.toLowerCase().replace("_","-"):e}function Qe(e){for(var t,i,o,n,s=0;s0;){if(o=$e(n.slice(0,t).join("-")))return o;if(i&&i.length>=t&&k(n,i,!0)>=t-1)break;t--}s++}return null}function $e(t){var i=null;if(!Nn[t]&&"undefined"!=typeof e&&e&&e.exports)try{i=Tn._abbr,!function(){var e=new Error('Cannot find module "./locale"');throw e.code="MODULE_NOT_FOUND",e}(),Je(i)}catch(e){}return Nn[t]}function Je(e,t){var i;return e&&(i=r(t)?it(e):et(e,t),i&&(Tn=i)),Tn._abbr}function et(e,t){if(null!==t){var i=In;if(t.abbr=e,null!=Nn[e])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=Nn[e]._config;else if(null!=t.parentLocale){if(null==Nn[t.parentLocale])return Bn[t.parentLocale]||(Bn[t.parentLocale]=[]),Bn[t.parentLocale].push({name:e,config:t}),null;i=Nn[t.parentLocale]._config}return Nn[e]=new C(D(i,t)),Bn[e]&&Bn[e].forEach(function(e){et(e.name,e.config)}),Je(e),Nn[e]}return delete Nn[e],null}function tt(e,t){if(null!=t){var i,o=In;null!=Nn[e]&&(o=Nn[e]._config),t=D(o,t),i=new C(t),i.parentLocale=Nn[e],Nn[e]=i,Je(e)}else null!=Nn[e]&&(null!=Nn[e].parentLocale?Nn[e]=Nn[e].parentLocale:null!=Nn[e]&&delete Nn[e]);return Nn[e]}function it(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Tn;if(!o(e)){if(t=$e(e))return t;e=[e]}return Qe(e)}function ot(){return Do(Nn)}function nt(e){var t,i=e._a;return i&&p(e).overflow===-2&&(t=i[dn]<0||i[dn]>11?dn:i[hn]<1||i[hn]>se(i[an],i[dn])?hn:i[ln]<0||i[ln]>24||24===i[ln]&&(0!==i[un]||0!==i[cn]||0!==i[fn])?ln:i[un]<0||i[un]>59?un:i[cn]<0||i[cn]>59?cn:i[fn]<0||i[fn]>999?fn:-1,p(e)._overflowDayOfYear&&(thn)&&(t=hn),p(e)._overflowWeeks&&t===-1&&(t=pn),p(e)._overflowWeekday&&t===-1&&(t=vn),p(e).overflow=t),e}function st(e){var t,i,o,n,s,r,a=e._i,d=zn.exec(a)||An.exec(a);if(d){for(p(e).iso=!0,t=0,i=jn.length;t10?"YYYY ":"YY "),s="HH:mm"+(i[4]?":ss":""),i[1]){var u=new Date(i[2]),c=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][u.getDay()];if(i[1].substr(0,3)!==c)return p(e).weekdayMismatch=!0,void(e._isValid=!1)}switch(i[5].length){case 2:0===d?a=" +0000":(d=l.indexOf(i[5][1].toUpperCase())-12,a=(d<0?" -":" +")+(""+d).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:a=h[i[5]];break;default:a=h[" GMT"]}i[5]=a,e._i=i.splice(1).join(""),r=" ZZ",e._f=o+n+s+r,ct(e),p(e).rfc2822=!0}else e._isValid=!1}function at(e){var i=Ln.exec(e._i);return null!==i?void(e._d=new Date(+i[1])):(st(e),void(e._isValid===!1&&(delete e._isValid,rt(e),e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e)))))}function dt(e,t,i){return null!=e?e:null!=t?t:i}function ht(e){var i=new Date(t.now());return e._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function lt(e){var t,i,o,n,s=[];if(!e._d){for(o=ht(e),e._w&&null==e._a[hn]&&null==e._a[dn]&&ut(e),null!=e._dayOfYear&&(n=dt(e._a[an],o[an]),(e._dayOfYear>ge(n)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),i=_e(n,0,e._dayOfYear),e._a[dn]=i.getUTCMonth(),e._a[hn]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=o[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ln]&&0===e._a[un]&&0===e._a[cn]&&0===e._a[fn]&&(e._nextDay=!0,e._a[ln]=0),e._d=(e._useUTC?_e:be).apply(null,s),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ln]=24)}}function ut(e){var t,i,o,n,s,r,a,d;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)s=1,r=4,i=dt(t.GG,e._a[an],xe(_t(),1,4).year),o=dt(t.W,1),n=dt(t.E,1),(n<1||n>7)&&(d=!0);else{s=e._locale._week.dow,r=e._locale._week.doy;var h=xe(_t(),s,r);i=dt(t.gg,e._a[an],h.year),o=dt(t.w,h.week),null!=t.d?(n=t.d,(n<0||n>6)&&(d=!0)):null!=t.e?(n=t.e+s,(t.e<0||t.e>6)&&(d=!0)):n=s}o<1||o>Oe(i,s,r)?p(e)._overflowWeeks=!0:null!=d?p(e)._overflowWeekday=!0:(a=ke(i,o,n,s,r),e._a[an]=a.year,e._dayOfYear=a.dayOfYear)}function ct(e){if(e._f===t.ISO_8601)return void st(e);if(e._f===t.RFC_2822)return void rt(e);e._a=[],p(e).empty=!0;var i,o,n,s,r,a=""+e._i,d=a.length,h=0;for(n=Q(e._f,e._locale).match(Ao)||[],i=0;i0&&p(e).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),h+=o.length),Ho[s]?(o?p(e).empty=!1:p(e).unusedTokens.push(s),ne(s,o,e)):e._strict&&!o&&p(e).unusedTokens.push(s);p(e).charsLeftOver=d-h,a.length>0&&p(e).unusedInput.push(a),e._a[ln]<=12&&p(e).bigHour===!0&&e._a[ln]>0&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[ln]=ft(e._locale,e._a[ln],e._meridiem),lt(e),nt(e)}function ft(e,t,i){var o;return null==i?t:null!=e.meridiemHour?e.meridiemHour(t,i):null!=e.isPM?(o=e.isPM(i),o&&t<12&&(t+=12),o||12!==t||(t=0),t):t}function pt(e){var t,i,o,n,s;if(0===e._f.length)return p(e).invalidFormat=!0,void(e._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Lt(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e={};if(y(e,this),e=yt(e),e._a){var t=e._isUTC?c(e._a):_t(e._a);this._isDSTShifted=this.isValid()&&k(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Wt(){return!!this.isValid()&&!this._isUTC}function Yt(){return!!this.isValid()&&this._isUTC}function Vt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ut(e,t){var i,o,n,s=e,r=null;return Dt(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:a(e)?(s={},t?s[t]=e:s.milliseconds=e):(r=Xn.exec(e))?(i="-"===r[1]?-1:1,s={y:0,d:w(r[hn])*i,h:w(r[ln])*i,m:w(r[un])*i,s:w(r[cn])*i,ms:w(Ct(1e3*r[fn]))*i}):(r=Kn.exec(e))?(i="-"===r[1]?-1:1,s={y:qt(r[2],i),M:qt(r[3],i),w:qt(r[4],i),d:qt(r[5],i),h:qt(r[6],i),m:qt(r[7],i),s:qt(r[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Xt(_t(s.from),_t(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new St(s),Dt(e)&&l(e,"_locale")&&(o._locale=e._locale),o}function qt(e,t){var i=e&&parseFloat(e.replace(",","."));return(isNaN(i)?0:i)*t}function Gt(e,t){var i={milliseconds:0,months:0};return i.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(i.months,"M").isAfter(t)&&--i.months,i.milliseconds=+t-+e.clone().add(i.months,"M"),i}function Xt(e,t){var i;return e.isValid()&&t.isValid()?(t=Ft(t,e),e.isBefore(t)?i=Gt(e,t):(i=Gt(t,e),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function Kt(e,t){return function(i,o){var n,s;return null===o||isNaN(+o)||(M(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Ut(i,o),Zt(this,n,e),this}}function Zt(e,i,o,n){var s=i._milliseconds,r=Ct(i._days),a=Ct(i._months);e.isValid()&&(n=null==n||n,s&&e._d.setTime(e._d.valueOf()+s*o),r&&Y(e,"Date",W(e,"Date")+r*o),a&&le(e,W(e,"Month")+a*o),n&&t.updateOffset(e,r||a))}function Qt(e,t){var i=e.diff(t,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function $t(e,i){var o=e||_t(),n=Ft(o,this).startOf("day"),s=t.calendarFormat(this,n)||"sameElse",r=i&&(E(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,_t(o)))}function Jt(){return new m(this)}function ei(e,t){var i=b(e)?e:_t(e);return!(!this.isValid()||!i.isValid())&&(t=A(r(t)?"millisecond":t),"millisecond"===t?this.valueOf()>i.valueOf():i.valueOf()9999?Z(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):E(Date.prototype.toISOString)?this.toDate().toISOString():Z(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function li(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var i="["+e+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",s=t+'[")]';return this.format(i+o+n+s)}function ui(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var i=Z(this,e);return this.localeData().postformat(i)}function ci(e,t){return this.isValid()&&(b(e)&&e.isValid()||_t(e).isValid())?Ut({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function fi(e){return this.from(_t(),e)}function pi(e,t){return this.isValid()&&(b(e)&&e.isValid()||_t(e).isValid())?Ut({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function vi(e){return this.to(_t(),e)}function gi(e){var t;return void 0===e?this._locale._abbr:(t=it(e),null!=t&&(this._locale=t),this)}function yi(){return this._locale}function mi(e){switch(e=A(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this}function bi(e){return e=A(e),void 0===e||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))}function _i(){return this._d.valueOf()-6e4*(this._offset||0)}function wi(){return Math.floor(this.valueOf()/1e3)}function ki(){return new Date(this.valueOf())}function xi(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Oi(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Mi(){return this.isValid()?this.toISOString():null}function Ei(){return v(this)}function Si(){return u({},p(this))}function Di(){return p(this).overflow}function Ci(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ti(e,t){G(0,[e,e.length],0,t)}function Pi(e){return Bi.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fi(e){return Bi.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Ii(){return Oe(this.year(),1,4)}function Ni(){var e=this.localeData()._week;return Oe(this.year(),e.dow,e.doy)}function Bi(e,t,i,o,n){var s;return null==e?xe(this,o,n).year:(s=Oe(e,o,n),t>s&&(t=s),zi.call(this,e,t,i,o,n))}function zi(e,t,i,o,n){var s=ke(e,t,i,o,n),r=_e(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Ai(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Ri(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function ji(e,t){t[fn]=w(1e3*("0."+e))}function Hi(){return this._isUTC?"UTC":""}function Li(){return this._isUTC?"Coordinated Universal Time":""}function Wi(e){return _t(1e3*e)}function Yi(){return _t.apply(null,arguments).parseZone()}function Vi(e){return e}function Ui(e,t,i,o){var n=it(),s=c().set(o,t);return n[i](s,e)}function qi(e,t,i){if(a(e)&&(t=e,e=void 0),e=e||"",null!=t)return Ui(e,t,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Ui(e,o,i,"month");return n}function Gi(e,t,i,o){"boolean"==typeof e?(a(t)&&(i=t,t=void 0),t=t||""):(t=e,i=t, -e=!1,a(t)&&(i=t,t=void 0),t=t||"");var n=it(),s=e?n._week.dow:0;if(null!=i)return Ui(t,(i+s)%7,o,"day");var r,d=[];for(r=0;r<7;r++)d[r]=Ui(t,(r+s)%7,o,"day");return d}function Xi(e,t){return qi(e,t,"months")}function Ki(e,t){return qi(e,t,"monthsShort")}function Zi(e,t,i){return Gi(e,t,i,"weekdays")}function Qi(e,t,i){return Gi(e,t,i,"weekdaysShort")}function $i(e,t,i){return Gi(e,t,i,"weekdaysMin")}function Ji(){var e=this._data;return this._milliseconds=rs(this._milliseconds),this._days=rs(this._days),this._months=rs(this._months),e.milliseconds=rs(e.milliseconds),e.seconds=rs(e.seconds),e.minutes=rs(e.minutes),e.hours=rs(e.hours),e.months=rs(e.months),e.years=rs(e.years),this}function eo(e,t,i,o){var n=Ut(t,i);return e._milliseconds+=o*n._milliseconds,e._days+=o*n._days,e._months+=o*n._months,e._bubble()}function to(e,t){return eo(this,e,t,1)}function io(e,t){return eo(this,e,t,-1)}function oo(e){return e<0?Math.floor(e):Math.ceil(e)}function no(){var e,t,i,o,n,s=this._milliseconds,r=this._days,a=this._months,d=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*oo(ro(a)+r),r=0,a=0),d.milliseconds=s%1e3,e=_(s/1e3),d.seconds=e%60,t=_(e/60),d.minutes=t%60,i=_(t/60),d.hours=i%24,r+=_(i/24),n=_(so(r)),a+=n,r-=oo(ro(n)),o=_(a/12),a%=12,d.days=r,d.months=a,d.years=o,this}function so(e){return 4800*e/146097}function ro(e){return 146097*e/4800}function ao(e){if(!this.isValid())return NaN;var t,i,o=this._milliseconds;if(e=A(e),"month"===e||"year"===e)return t=this._days+o/864e5,i=this._months+so(t),"month"===e?i:i/12;switch(t=this._days+Math.round(ro(this._months)),e){case"week":return t/7+o/6048e5;case"day":return t+o/864e5;case"hour":return 24*t+o/36e5;case"minute":return 1440*t+o/6e4;case"second":return 86400*t+o/1e3;case"millisecond":return Math.floor(864e5*t)+o;default:throw new Error("Unknown unit "+e)}}function ho(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN}function lo(e){return function(){return this.as(e)}}function uo(e){return e=A(e),this.isValid()?this[e+"s"]():NaN}function co(e){return function(){return this.isValid()?this._data[e]:NaN}}function fo(){return _(this.days()/7)}function po(e,t,i,o,n){return n.relativeTime(t||1,!!i,e,o)}function vo(e,t,i){var o=Ut(e).abs(),n=ks(o.as("s")),s=ks(o.as("m")),r=ks(o.as("h")),a=ks(o.as("d")),d=ks(o.as("M")),h=ks(o.as("y")),l=n<=xs.ss&&["s",n]||n0,l[4]=i,po.apply(null,l)}function go(e){return void 0===e?ks:"function"==typeof e&&(ks=e,!0)}function yo(e,t){return void 0!==xs[e]&&(void 0===t?xs[e]:(xs[e]=t,"s"===e&&(xs.ss=t-1),!0))}function mo(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),i=vo(this,!e,t);return e&&(i=t.pastFuture(+this,i)),t.postformat(i)}function bo(){if(!this.isValid())return this.localeData().invalidDate();var e,t,i,o=Os(this._milliseconds)/1e3,n=Os(this._days),s=Os(this._months);e=_(o/60),t=_(e/60),o%=60,e%=60,i=_(s/12),s%=12;var r=i,a=s,d=n,h=t,l=e,u=o,c=this.asSeconds();return c?(c<0?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(d?d+"D":"")+(h||l||u?"T":"")+(h?h+"H":"")+(l?l+"M":"")+(u?u+"S":""):"P0D"}var _o,wo;wo=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),i=t.length>>>0,o=0;o68?1900:2e3)};var kn=L("FullYear",!0);G("w",["ww",2],"wo","week"),G("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),j("week",5),j("isoWeek",5),$("w",qo),$("ww",qo,Wo),$("W",qo),$("WW",qo,Wo),oe(["w","ww","W","WW"],function(e,t,i,o){t[o.substr(0,1)]=w(e)});var xn={dow:0,doy:6};G("d",0,"do","day"),G("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),G("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),G("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),G("e",0,0,"weekday"),G("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),j("day",11),j("weekday",11),j("isoWeekday",11),$("d",qo),$("e",qo),$("E",qo),$("dd",function(e,t){return t.weekdaysMinRegex(e)}),$("ddd",function(e,t){return t.weekdaysShortRegex(e)}),$("dddd",function(e,t){return t.weekdaysRegex(e)}),oe(["dd","ddd","dddd"],function(e,t,i,o){var n=i._locale.weekdaysParse(e,o,i._strict);null!=n?t.d=n:p(i).invalidWeekday=e}),oe(["d","e","E"],function(e,t,i,o){t[o]=w(e)});var On="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Mn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),En="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Sn=nn,Dn=nn,Cn=nn;G("H",["HH",2],0,"hour"),G("h",["hh",2],0,Ve),G("k",["kk",2],0,Ue),G("hmm",0,0,function(){return""+Ve.apply(this)+q(this.minutes(),2)}),G("hmmss",0,0,function(){return""+Ve.apply(this)+q(this.minutes(),2)+q(this.seconds(),2)}),G("Hmm",0,0,function(){return""+this.hours()+q(this.minutes(),2)}),G("Hmmss",0,0,function(){return""+this.hours()+q(this.minutes(),2)+q(this.seconds(),2)}),qe("a",!0),qe("A",!1),z("hour","h"),j("hour",13),$("a",Ge),$("A",Ge),$("H",qo),$("h",qo),$("k",qo),$("HH",qo,Wo),$("hh",qo,Wo),$("kk",qo,Wo),$("hmm",Go),$("hmmss",Xo),$("Hmm",Go),$("Hmmss",Xo),ie(["H","HH"],ln),ie(["k","kk"],function(e,t,i){var o=w(e);t[ln]=24===o?0:o}),ie(["a","A"],function(e,t,i){i._isPm=i._locale.isPM(e),i._meridiem=e}),ie(["h","hh"],function(e,t,i){t[ln]=w(e),p(i).bigHour=!0}),ie("hmm",function(e,t,i){var o=e.length-2;t[ln]=w(e.substr(0,o)),t[un]=w(e.substr(o)),p(i).bigHour=!0}),ie("hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[ln]=w(e.substr(0,o)),t[un]=w(e.substr(o,2)),t[cn]=w(e.substr(n)),p(i).bigHour=!0}),ie("Hmm",function(e,t,i){var o=e.length-2;t[ln]=w(e.substr(0,o)),t[un]=w(e.substr(o))}),ie("Hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[ln]=w(e.substr(0,o)),t[un]=w(e.substr(o,2)),t[cn]=w(e.substr(n))});var Tn,Pn=/[ap]\.?m?\.?/i,Fn=L("Hours",!0),In={calendar:Co,longDateFormat:To,invalidDate:Po,ordinal:Fo,dayOfMonthOrdinalParse:Io,relativeTime:No,months:mn,monthsShort:bn,week:xn,weekdays:On,weekdaysMin:En,weekdaysShort:Mn,meridiemParse:Pn},Nn={},Bn={},zn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,An=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Rn=/Z|[+-]\d\d(?::?\d\d)?/,jn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Hn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ln=/^\/?Date\((\-?\d+)/i,Wn=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;t.createFromInputFallback=O("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),t.ISO_8601=function(){},t.RFC_2822=function(){};var Yn=O("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=_t.apply(null,arguments);return this.isValid()&&e.isValid()?ethis?this:e:g()}),Un=function(){return Date.now?Date.now():+new Date},qn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Tt("Z",":"),Tt("ZZ",""),$("Z",tn),$("ZZ",tn),ie(["Z","ZZ"],function(e,t,i){i._useUTC=!0,i._tzm=Pt(tn,e)});var Gn=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var Xn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Kn=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Ut.fn=St.prototype,Ut.invalid=Et;var Zn=Kt(1,"add"),Qn=Kt(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var $n=O("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});G(0,["gg",2],0,function(){return this.weekYear()%100}),G(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ti("gggg","weekYear"),Ti("ggggg","weekYear"),Ti("GGGG","isoWeekYear"),Ti("GGGGG","isoWeekYear"),z("weekYear","gg"),z("isoWeekYear","GG"),j("weekYear",1),j("isoWeekYear",1),$("G",Jo),$("g",Jo),$("GG",qo,Wo),$("gg",qo,Wo),$("GGGG",Zo,Vo),$("gggg",Zo,Vo),$("GGGGG",Qo,Uo),$("ggggg",Qo,Uo),oe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,i,o){t[o.substr(0,2)]=w(e)}),oe(["gg","GG"],function(e,i,o,n){i[n]=t.parseTwoDigitYear(e)}),G("Q",0,"Qo","quarter"),z("quarter","Q"),j("quarter",7),$("Q",Lo),ie("Q",function(e,t){t[dn]=3*(w(e)-1)}),G("D",["DD",2],"Do","date"),z("date","D"),j("date",9),$("D",qo),$("DD",qo,Wo),$("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ie(["D","DD"],hn),ie("Do",function(e,t){t[hn]=w(e.match(qo)[0],10)});var Jn=L("Date",!0);G("DDD",["DDDD",3],"DDDo","dayOfYear"),z("dayOfYear","DDD"),j("dayOfYear",4),$("DDD",Ko),$("DDDD",Yo),ie(["DDD","DDDD"],function(e,t,i){i._dayOfYear=w(e)}),G("m",["mm",2],0,"minute"),z("minute","m"),j("minute",14),$("m",qo),$("mm",qo,Wo),ie(["m","mm"],un);var es=L("Minutes",!1);G("s",["ss",2],0,"second"),z("second","s"),j("second",15),$("s",qo),$("ss",qo,Wo),ie(["s","ss"],cn);var ts=L("Seconds",!1);G("S",0,0,function(){return~~(this.millisecond()/100)}),G(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),G(0,["SSS",3],0,"millisecond"),G(0,["SSSS",4],0,function(){return 10*this.millisecond()}),G(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),G(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),G(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),G(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),G(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),z("millisecond","ms"),j("millisecond",16),$("S",Ko,Lo),$("SS",Ko,Wo),$("SSS",Ko,Yo);var is;for(is="SSSS";is.length<=9;is+="S")$(is,$o);for(is="S";is.length<=9;is+="S")ie(is,ji);var os=L("Milliseconds",!1);G("z",0,0,"zoneAbbr"),G("zz",0,0,"zoneName");var ns=m.prototype;ns.add=Zn,ns.calendar=$t,ns.clone=Jt,ns.diff=ri,ns.endOf=bi,ns.format=ui,ns.from=ci,ns.fromNow=fi,ns.to=pi,ns.toNow=vi,ns.get=V,ns.invalidAt=Di,ns.isAfter=ei,ns.isBefore=ti,ns.isBetween=ii,ns.isSame=oi,ns.isSameOrAfter=ni,ns.isSameOrBefore=si,ns.isValid=Ei,ns.lang=$n,ns.locale=gi,ns.localeData=yi,ns.max=Vn,ns.min=Yn,ns.parsingFlags=Si,ns.set=U,ns.startOf=mi,ns.subtract=Qn,ns.toArray=xi,ns.toObject=Oi,ns.toDate=ki,ns.toISOString=hi,ns.inspect=li,ns.toJSON=Mi,ns.toString=di,ns.unix=wi,ns.valueOf=_i,ns.creationData=Ci,ns.year=kn,ns.isLeapYear=me,ns.weekYear=Pi,ns.isoWeekYear=Fi,ns.quarter=ns.quarters=Ai,ns.month=ue,ns.daysInMonth=ce,ns.week=ns.weeks=De,ns.isoWeek=ns.isoWeeks=Ce,ns.weeksInYear=Ni,ns.isoWeeksInYear=Ii,ns.date=Jn,ns.day=ns.days=Ae,ns.weekday=Re,ns.isoWeekday=je,ns.dayOfYear=Ri,ns.hour=ns.hours=Fn,ns.minute=ns.minutes=es,ns.second=ns.seconds=ts,ns.millisecond=ns.milliseconds=os,ns.utcOffset=Nt,ns.utc=zt,ns.local=At,ns.parseZone=Rt,ns.hasAlignedHourOffset=jt,ns.isDST=Ht,ns.isLocal=Wt,ns.isUtcOffset=Yt,ns.isUtc=Vt,ns.isUTC=Vt,ns.zoneAbbr=Hi,ns.zoneName=Li,ns.dates=O("dates accessor is deprecated. Use date instead.",Jn),ns.months=O("months accessor is deprecated. Use month instead",ue),ns.years=O("years accessor is deprecated. Use year instead",kn),ns.zone=O("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Bt),ns.isDSTShifted=O("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Lt);var ss=C.prototype;ss.calendar=T,ss.longDateFormat=P,ss.invalidDate=F,ss.ordinal=I,ss.preparse=Vi,ss.postformat=Vi,ss.relativeTime=N,ss.pastFuture=B,ss.set=S,ss.months=re,ss.monthsShort=ae,ss.monthsParse=he,ss.monthsRegex=pe,ss.monthsShortRegex=fe,ss.week=Me,ss.firstDayOfYear=Se,ss.firstDayOfWeek=Ee,ss.weekdays=Fe,ss.weekdaysMin=Ne,ss.weekdaysShort=Ie,ss.weekdaysParse=ze,ss.weekdaysRegex=He,ss.weekdaysShortRegex=Le,ss.weekdaysMinRegex=We,ss.isPM=Xe,ss.meridiem=Ke,Je("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,i=1===w(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+i}}),t.lang=O("moment.lang is deprecated. Use moment.locale instead.",Je),t.langData=O("moment.langData is deprecated. Use moment.localeData instead.",it);var rs=Math.abs,as=lo("ms"),ds=lo("s"),hs=lo("m"),ls=lo("h"),us=lo("d"),cs=lo("w"),fs=lo("M"),ps=lo("y"),vs=co("milliseconds"),gs=co("seconds"),ys=co("minutes"),ms=co("hours"),bs=co("days"),_s=co("months"),ws=co("years"),ks=Math.round,xs={ss:44,s:45,m:45,h:22,d:26,M:11},Os=Math.abs,Ms=St.prototype;return Ms.isValid=Mt,Ms.abs=Ji,Ms.add=to,Ms.subtract=io,Ms.as=ao,Ms.asMilliseconds=as,Ms.asSeconds=ds,Ms.asMinutes=hs,Ms.asHours=ls,Ms.asDays=us,Ms.asWeeks=cs,Ms.asMonths=fs,Ms.asYears=ps,Ms.valueOf=ho,Ms._bubble=no,Ms.get=uo,Ms.milliseconds=vs,Ms.seconds=gs,Ms.minutes=ys,Ms.hours=ms,Ms.days=bs,Ms.weeks=fo,Ms.months=_s,Ms.years=ws,Ms.humanize=mo,Ms.toISOString=bo,Ms.toString=bo,Ms.toJSON=bo,Ms.locale=gi,Ms.localeData=yi,Ms.toIsoString=O("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",bo),Ms.lang=$n,G("X",0,0,"unix"),G("x",0,0,"valueOf"),$("x",Jo),$("X",on),ie("X",function(e,t,i){i._d=new Date(1e3*parseFloat(e,10))}),ie("x",function(e,t,i){i._d=new Date(w(e))}),t.version="2.18.1",i(_t),t.fn=ns,t.min=kt,t.max=xt,t.now=Un,t.utc=c,t.unix=Wi,t.months=Xi,t.isDate=d,t.locale=Je,t.invalid=g,t.duration=Ut,t.isMoment=b,t.weekdays=Zi,t.parseZone=Yi,t.localeData=it,t.isDuration=Dt,t.monthsShort=Ki,t.weekdaysMin=$i,t.defineLocale=et,t.updateLocale=tt,t.locales=ot,t.weekdaysShort=Qi,t.normalizeUnits=A,t.relativeTimeRounding=go,t.relativeTimeThreshold=yo,t.calendarFormat=Qt,t.prototype=ns,t})}).call(t,i(84)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){function i(e){throw new Error("Cannot find module '"+e+"'.")}i.keys=function(){return[]},i.resolve=i,e.exports=i,i.id=85},function(e,t){(function(t){function i(e,t,i){var o=t&&i||0,n=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){n<16&&(t[o+n++]=u[e])});n<16;)t[o+n++]=0;return t}function o(e,t){var i=t||0,o=l;return o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]}function n(e,t,i){var n=t&&i||0,s=t||[];e=e||{};var r=void 0!==e.clockseq?e.clockseq:v,a=void 0!==e.msecs?e.msecs:(new Date).getTime(),d=void 0!==e.nsecs?e.nsecs:y+1,h=a-g+(d-y)/1e4;if(h<0&&void 0===e.clockseq&&(r=r+1&16383),(h<0||a>g)&&void 0===e.nsecs&&(d=0),d>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");g=a,y=d,v=r,a+=122192928e5;var l=(1e4*(268435455&a)+d)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=e.node||p,f=0;f<6;f++)s[n+f]=c[f];return t?t:o(s)}function s(e,t,i){var n=t&&i||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;a++)t[n+a]=s[a];return t||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof t?t:null;if(a&&a.crypto&&crypto.getRandomValues){var d=new Uint8Array(16);r=function(){return crypto.getRandomValues(d),d}}if(!r){var h=new Array(16);r=function(){for(var e,t=0;t<16;t++)0===(3&t)&&(e=4294967296*Math.random()),h[t]=e>>>((3&t)<<3)&255;return h}}for(var l=[],u={},c=0;c<256;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var f=r(),p=[1|f[0],f[1],f[2],f[3],f[4],f[5]],v=16383&(f[6]<<8|f[7]),g=0,y=0,m=s;m.v1=n,m.v4=s,m.parse=i,m.unparse=o,e.exports=m}).call(t,function(){return this}())},function(e,t){t.prepareElements=function(e){for(var t in e)e.hasOwnProperty(t)&&(e[t].redundant=e[t].used,e[t].used=[])},t.cleanupElements=function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t].redundant){for(var i=0;i0?(o=t[e].redundant[0],t[e].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",e),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",e),t[e]={used:[],redundant:[]},i.appendChild(o)),t[e].used.push(o),o},t.getDOMElement=function(e,t,i,o){var n;return t.hasOwnProperty(e)?t[e].redundant.length>0?(n=t[e].redundant[0],t[e].redundant.shift()):(n=document.createElement(e),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(e),t[e]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),t[e].used.push(n),n},t.drawPoint=function(e,i,o,n,s,r){var a;if("circle"==o.style?(a=t.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",e),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=t.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",e-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var d=t.getSVGElement("text",n,s);r.xOffset&&(e+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(d.textContent=r.content),r.className&&d.setAttributeNS(null,"class",r.className+" vis-label"),d.setAttributeNS(null,"x",e),d.setAttributeNS(null,"y",i)}return a},t.drawBar=function(e,i,o,n,s,r,a,d){if(0!=n){n<0&&(n*=-1,i-=n);var h=t.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",e-.5*o),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",o),h.setAttributeNS(null,"height",n),h.setAttributeNS(null,"class",s),d&&h.setAttributeNS(null,"style",d)}}},function(e,t,i){function o(e){return e&&e.__esModule?e:{default:e}}function n(e,t){if(e&&!Array.isArray(e)&&(t=e,e=null),this._options=t||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=(0,l.default)(this._options.type),o=0,n=i.length;on?1:or)&&(s=d,r=h)}return s},n.prototype.min=function(e){var t,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(t=0,i=n.length;tthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var e=this;this._timeout=setTimeout(function(){e.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var e=this._queue.shift();e.fn.apply(e.context||e.fn,e.args||[])}},e.exports=i},function(e,t,i){function o(e){return e&&e.__esModule?e:{default:e}}function n(e,t){this._data=null,this._ids={},this.length=0,this._options=t||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(e)}var s=i(58),r=o(s),a=i(1),d=i(88);n.prototype.setData=function(e){var t,i,o,n,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),t=this._data.getIds({filter:this._options&&this._options.filter}),s=[],o=0,n=t.length;o=.1;)f=n[l++%s],f>h&&(f=h),c=Math.sqrt(f*f/(1+d*d)),c=r<0?-c:c,e+=c,t+=d*c,u===!0?this.lineTo(e,t):this.moveTo(e,t),h-=f,u=!u})},function(e,t){function i(e){if(e)return o(e)}function o(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},i.prototype.once=function(e,t){function i(){o.off(e,i),t.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=t,this.on(e,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[e];if(!i)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var o,n=0;n=0;i--){var a=s[i];a.nodes||(a.nodes=[]),a.nodes.indexOf(n)===-1&&a.nodes.push(n)}t.attr&&(n.attr=h(n.attr,t.attr))}function c(e,t){if(e.edges||(e.edges=[]),e.edges.push(t),e.edge){var i=h({},e.edge);t.attr=h(i,t.attr)}}function f(e,t,i,o,n){var s={from:t,to:i,type:o};return e.edge&&(s.attr=h({},e.edge)),s.attr=h(s.attr||{},n),s}function p(){for(j=I.NULL,R="";" "===A||"\t"===A||"\n"===A||"\r"===A;)r();do{var e=!1;if("#"===A){for(var t=z-1;" "===B.charAt(t)||"\t"===B.charAt(t);)t--;if("\n"===B.charAt(t)||""===B.charAt(t)){for(;""!=A&&"\n"!=A;)r();e=!0}}if("/"===A&&"/"===a()){for(;""!=A&&"\n"!=A;)r();e=!0}if("/"===A&&"*"===a()){for(;""!=A;){if("*"===A&&"/"===a()){r(),r();break}r()}e=!0}for(;" "===A||"\t"===A||"\n"===A||"\r"===A;)r()}while(e);if(""===A)return void(j=I.DELIMITER);var i=A+a();if(N[i])return j=I.DELIMITER,R=i,r(),void r();if(N[A])return j=I.DELIMITER,R=A,void r();if(d(A)||"-"===A){for(R+=A,r();d(A);)R+=A,r();return"false"===R?R=!1:"true"===R?R=!0:isNaN(Number(R))||(R=Number(R)),void(j=I.IDENTIFIER)}if('"'===A){for(r();""!=A&&('"'!=A||'"'===A&&'"'===a());)'"'===A?(R+=A,r()):"\\"===A&&"n"===a()?(R+="\n",r()):R+=A,r();if('"'!=A)throw x('End of string " expected');return r(),void(j=I.IDENTIFIER)}for(j=I.UNKNOWN;""!=A;)R+=A,r();throw new SyntaxError('Syntax error in part "'+O(R,30)+'"')}function v(){var e={};if(s(),p(),"strict"===R&&(e.strict=!0,p()),"graph"!==R&&"digraph"!==R||(e.type=R,p()),j===I.IDENTIFIER&&(e.id=R,p()),"{"!=R)throw x("Angle bracket { expected");if(p(),g(e),"}"!=R)throw x("Angle bracket } expected");if(p(),""!==R)throw x("End of file expected");return p(),delete e.node,delete e.edge,delete e.graph,e}function g(e){for(;""!==R&&"}"!=R;)y(e),";"===R&&p()}function y(e){var t=m(e);if(t)return void w(e,t);var i=b(e);if(!i){if(j!=I.IDENTIFIER)throw x("Identifier expected");var o=R;if(p(),"="===R){if(p(),j!=I.IDENTIFIER)throw x("Identifier expected");e[o]=R,p()}else _(e,o)}}function m(e){var t=null;if("subgraph"===R&&(t={},t.type="subgraph",p(),j===I.IDENTIFIER&&(t.id=R,p())),"{"===R){if(p(),t||(t={}),t.parent=e,t.node=e.node,t.edge=e.edge,t.graph=e.graph,g(t),"}"!=R)throw x("Angle bracket } expected");p(),delete t.node,delete t.edge,delete t.graph,delete t.parent,e.subgraphs||(e.subgraphs=[]),e.subgraphs.push(t)}return t}function b(e){return"node"===R?(p(),e.node=k(),"node"):"edge"===R?(p(),e.edge=k(),"edge"):"graph"===R?(p(),e.graph=k(),"graph"):null}function _(e,t){var i={id:t},o=k();o&&(i.attr=o),u(e,i),w(e,t)}function w(e,t){for(;"->"===R||"--"===R;){var i,o=R;p();var n=m(e);if(n)i=n;else{if(j!=I.IDENTIFIER)throw x("Identifier or subgraph expected");i=R,u(e,{id:i}),p()}var s=k(),r=f(e,t,i,o,s);c(e,r),t=i}}function k(){for(var e=null;"["===R;){for(p(),e={};""!==R&&"]"!=R;){if(j!=I.IDENTIFIER)throw x("Attribute name expected");var t=R;if(p(),"="!=R)throw x("Equal sign = expected");if(p(),j!=I.IDENTIFIER)throw x("Attribute value expected");var i=R;l(e,t,i),p(),","==R&&p()}if("]"!=R)throw x("Bracket ] expected");p()}return e}function x(e){return new SyntaxError(e+', got "'+O(R,30)+'" (char '+z+")")}function O(e,t){return e.length<=t?e:e.substr(0,27)+"..."}function M(e,t,i){Array.isArray(e)?e.forEach(function(e){Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}):Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}function E(e,t,i){for(var o=t.split("."),n=o.pop(),s=e,r=0;r":!0,"--":!0},B="",z=0,A="",R="",j=I.NULL,H=/[a-zA-Z_0-9.:#]/;t.parseDOT=n,t.DOTToGraph=D},function(e,t){function i(e,t){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==t&&(void 0!==t.fixed&&(n.nodes.fixed=t.fixed),void 0!==t.parseColor&&(n.nodes.parseColor=t.parseColor),void 0!==t.inheritColor&&(n.edges.inheritColor=t.inheritColor));for(var s=e.edges,r=e.nodes,a=0;a0?h._handlers[e]=o:(i.off(e,s),delete h._handlers[e]))}),h},h.emit=function(t,o){e=o.target,i.emit(t,o)},h.destroy=function(){var e=i.element.hammer,t=e.indexOf(h);t!==-1&&e.splice(t,1),e.length||delete i.element.hammer,h._handlers={},i.destroy()},h}})},function(e,t,i){var o;/*! Hammer.JS - v2.0.7 - 2016-04-22 +"use strict";!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.vis=t():e.vis=t()}(this,function(){return function(e){function t(o){if(i[o])return i[o].exports;var n=i[o]={exports:{},id:o,loaded:!1};return e[o].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){t.util=i(1),t.DOMutil=i(87),t.DataSet=i(88),t.DataView=i(92),t.Queue=i(91),t.Network=i(93),t.network={Images:i(104),dotparser:i(96),gephiParser:i(97),allOptions:i(179)},t.network.convertDot=function(e){return t.network.dotparser.DOTToGraph(e)},t.network.convertGephi=function(e,i){return t.network.gephiParser.parseGephi(e,i)},t.moment=i(82),t.Hammer=i(100),t.keycharm=i(99)},function(e,t,i){function o(e){return e&&e.__esModule?e:{default:e}}var n=i(2),s=o(n),r=i(55),a=o(r),d=i(58),h=o(d),l=i(62),u=o(l),c=i(82),f=i(86);t.isNumber=function(e){return e instanceof Number||"number"==typeof e},t.recursiveDOMDelete=function(e){if(e)for(;e.hasChildNodes()===!0;)t.recursiveDOMDelete(e.firstChild),e.removeChild(e.firstChild)},t.giveRange=function(e,t,i,o){if(t==e)return.5;var n=1/(t-e);return Math.max(0,(o-e)*n)},t.isString=function(e){return e instanceof String||"string"==typeof e},t.isDate=function(e){if(e instanceof Date)return!0;if(t.isString(e)){var i=p.exec(e);if(i)return!0;if(!isNaN(Date.parse(e)))return!0}return!1},t.randomUUID=function(){return f.v4()},t.assignAllKeys=function(e,t){for(var i in e)e.hasOwnProperty(i)&&"object"!==(0,u.default)(e[i])&&(e[i]=t)},t.fillIfDefined=function(e,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var n in e)void 0!==i[n]&&("object"!==(0,u.default)(i[n])?void 0!==i[n]&&null!==i[n]||void 0===e[n]||o!==!0?e[n]=i[n]:delete e[n]:"object"===(0,u.default)(e[n])&&t.fillIfDefined(e[n],i[n],o))},t.protoExtend=function(e,t){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&e.indexOf(s)==-1)if(o[s]&&o[s].constructor===Object)void 0===i[s]&&(i[s]={}),i[s].constructor===Object?t.deepExtend(i[s],o[s]):null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];else if(Array.isArray(o[s])){i[s]=[];for(var r=0;r=0&&(t="DOMMouseScroll"),e.addEventListener(t,i,o)):e.attachEvent("on"+t,i)},t.removeEventListener=function(e,t,i,o){e.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===t&&navigator.userAgent.indexOf("Firefox")>=0&&(t="DOMMouseScroll"),e.removeEventListener(t,i,o)):e.detachEvent("on"+t,i)},t.preventDefault=function(e){e||(e=window.event),e.preventDefault?e.preventDefault():e.returnValue=!1},t.getTarget=function(e){e||(e=window.event);var t;return e.target?t=e.target:e.srcElement&&(t=e.srcElement),void 0!=t.nodeType&&3==t.nodeType&&(t=t.parentNode),t},t.hasParent=function(e,t){for(var i=e;i;){if(i===t)return!0;i=i.parentNode}return!1},t.option={},t.option.asBoolean=function(e,t){return"function"==typeof e&&(e=e()),null!=e?0!=e:t||null},t.option.asNumber=function(e,t){return"function"==typeof e&&(e=e()),null!=e?Number(e)||t||null:t||null},t.option.asString=function(e,t){return"function"==typeof e&&(e=e()),null!=e?String(e):t||null},t.option.asSize=function(e,i){return"function"==typeof e&&(e=e()),t.isString(e)?e:t.isNumber(e)?e+"px":i||null},t.option.asElement=function(e,t){return"function"==typeof e&&(e=e()),e||t||null},t.hexToRGB=function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;e=e.replace(t,function(e,t,i,o){return t+t+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},t.overrideOpacity=function(e,i){if(e.indexOf("rgba")!=-1)return e;if(e.indexOf("rgb")!=-1){var o=e.substr(e.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=t.hexToRGB(e);return null==o?e:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},t.RGBToHex=function(e,t,i){return"#"+((1<<24)+(e<<16)+(t<<8)+i).toString(16).slice(1)},t.parseColor=function(e){var i;if(t.isString(e)===!0){if(t.isValidRGB(e)===!0){var o=e.substr(4).substr(0,e.length-5).split(",").map(function(e){return parseInt(e)});e=t.RGBToHex(o[0],o[1],o[2])}if(t.isValidHex(e)===!0){var n=t.hexToHSV(e),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=t.HSVToHex(r.h,r.s,r.v),d=t.HSVToHex(s.h,s.s,s.v);i={background:e,border:a,highlight:{background:d,border:a},hover:{background:d,border:a}}}else i={background:e,border:e,highlight:{background:e,border:e},hover:{background:e,border:e}}}else i={},i.background=e.background||void 0,i.border=e.border||void 0,t.isString(e.highlight)?i.highlight={border:e.highlight,background:e.highlight}:(i.highlight={},i.highlight.background=e.highlight&&e.highlight.background||void 0,i.highlight.border=e.highlight&&e.highlight.border||void 0),t.isString(e.hover)?i.hover={border:e.hover,background:e.hover}:(i.hover={},i.hover.background=e.hover&&e.hover.background||void 0,i.hover.border=e.hover&&e.hover.border||void 0);return i},t.RGBToHSV=function(e,t,i){e/=255,t/=255,i/=255;var o=Math.min(e,Math.min(t,i)),n=Math.max(e,Math.max(t,i));if(o==n)return{h:0,s:0,v:o};var s=e==o?t-i:i==o?e-t:i-e,r=e==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,d=(n-o)/n,h=n;return{h:a,s:d,v:h}};var v={split:function(e){var t={};return e.split(";").forEach(function(e){if(""!=e.trim()){var i=e.split(":"),o=i[0].trim(),n=i[1].trim();t[o]=n}}),t},join:function(e){return(0,h.default)(e).map(function(t){return t+": "+e[t]}).join("; ")}};t.addCssText=function(e,i){var o=v.split(e.style.cssText),n=v.split(i),s=t.extend(o,n);e.style.cssText=v.join(s)},t.removeCssText=function(e,t){var i=v.split(e.style.cssText),o=v.split(t);for(var n in o)o.hasOwnProperty(n)&&delete i[n];e.style.cssText=v.join(i)},t.HSVToRGB=function(e,t,i){var o,n,s,r=Math.floor(6*e),a=6*e-r,d=i*(1-t),h=i*(1-a*t),l=i*(1-(1-a)*t);switch(r%6){case 0:o=i,n=l,s=d;break;case 1:o=h,n=i,s=d;break;case 2:o=d,n=i,s=l;break;case 3:o=d,n=h,s=i;break;case 4:o=l,n=d,s=i;break;case 5:o=i,n=d,s=h}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},t.HSVToHex=function(e,i,o){var n=t.HSVToRGB(e,i,o);return t.RGBToHex(n.r,n.g,n.b)},t.hexToHSV=function(e){var i=t.hexToRGB(e);return t.RGBToHSV(i.r,i.g,i.b)},t.isValidHex=function(e){var t=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(e);return t},t.isValidRGB=function(e){e=e.replace(" ","");var t=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(e);return t},t.isValidRGBA=function(e){e=e.replace(" ","");var t=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(e);return t},t.selectiveBridgeObject=function(e,i){if("object"==("undefined"==typeof i?"undefined":(0,u.default)(i))){for(var o=(0,a.default)(i),n=0;n0&&t(o,e[n-1])<0;n--)e[n]=e[n-1];e[n]=o}return e},t.mergeOptions=function(e,t,i){var o=(arguments.length>3&&void 0!==arguments[3]&&arguments[3],arguments.length>4&&void 0!==arguments[4]?arguments[4]:{});if(null===t[i])e[i]=(0,a.default)(o[i]);else if(void 0!==t[i])if("boolean"==typeof t[i])e[i].enabled=t[i];else{void 0===t[i].enabled&&(e[i].enabled=!0);for(var n in t[i])t[i].hasOwnProperty(n)&&(e[i][n]=t[i][n])}},t.binarySearchCustom=function(e,t,i,o){for(var n=1e4,s=0,r=0,a=e.length-1;r<=a&&s0)return"before"==o?Math.max(0,d-1):d;if(n(r,t)<0&&n(a,t)>0)return"before"==o?d:Math.min(e.length-1,d+1);n(r,t)<0?u=d+1:c=d-1,l++}return-1},t.easingFunctions={linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutQuad:function(e){return e<.5?2*e*e:-1+(4-2*e)*e},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return--e*e*e+1},easeInOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1- --e*e*e*e},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1+--e*e*e*e*e},easeInOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}},t.getScrollBarWidth=function(){var e=document.createElement("p");e.style.width="100%",e.style.height="200px";var t=document.createElement("div");t.style.position="absolute",t.style.top="0px",t.style.left="0px",t.style.visibility="hidden",t.style.width="200px",t.style.height="150px",t.style.overflow="hidden",t.appendChild(e),document.body.appendChild(t);var i=e.offsetWidth;t.style.overflow="scroll";var o=e.offsetWidth;return i==o&&(o=t.clientWidth),document.body.removeChild(t),i-o},t.topMost=function(e,t){var i=void 0;Array.isArray(t)||(t=[t]);var o=!0,n=!1,r=void 0;try{for(var a,d=(0,s.default)(e);!(o=(a=d.next()).done);o=!0){var h=a.value;if(h){i=h[t[0]];for(var l=1;l=e.length?(this._t=void 0,n(1)):"keys"==t?n(0,i):"values"==t?n(0,e[i]):n(0,[i,e[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t){e.exports={}},function(e,t,i){var o=i(10),n=i(12);e.exports=function(e){return o(n(e))}},function(e,t,i){var o=i(11);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==o(e)?e.split(""):Object(e)}},function(e,t){var i={}.toString;e.exports=function(e){return i.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,i){var o=i(14),n=i(15),s=i(30),r=i(20),a=i(31),d=i(8),h=i(32),l=i(46),u=i(48),c=i(47)("iterator"),f=!([].keys&&"next"in[].keys()),p="@@iterator",v="keys",g="values",y=function(){return this};e.exports=function(e,t,i,m,b,_,w){h(i,t,m);var k,x,O,M=function(e){if(!f&&e in C)return C[e];switch(e){case v:return function(){return new i(this,e)};case g:return function(){return new i(this,e)}}return function(){return new i(this,e)}},E=t+" Iterator",S=b==g,D=!1,C=e.prototype,T=C[c]||C[p]||b&&C[b],P=T||M(b),F=b?S?M("entries"):P:void 0,I="Array"==t?C.entries||T:T;if(I&&(O=u(I.call(new e)),O!==Object.prototype&&O.next&&(l(O,E,!0),o||a(O,c)||r(O,c,y))),S&&T&&T.name!==g&&(D=!0,P=function(){return T.call(this)}),o&&!w||!f&&!D&&C[c]||r(C,c,P),d[t]=P,d[E]=y,b)if(k={values:S?P:M(g),keys:_?P:M(v),entries:F},w)for(x in k)x in C||s(C,x,k[x]);else n(n.P+n.F*(f||D),t,k);return k}},function(e,t){e.exports=!0},function(e,t,i){var o=i(16),n=i(17),s=i(18),r=i(20),a="prototype",d=function(e,t,i){var h,l,u,c=e&d.F,f=e&d.G,p=e&d.S,v=e&d.P,g=e&d.B,y=e&d.W,m=f?n:n[t]||(n[t]={}),b=m[a],_=f?o:p?o[t]:(o[t]||{})[a];f&&(i=t);for(h in i)l=!c&&_&&void 0!==_[h],l&&h in m||(u=l?_[h]:i[h],m[h]=f&&"function"!=typeof _[h]?i[h]:g&&l?s(u,o):y&&_[h]==u?function(e){var t=function(t,i,o){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,i)}return new e(t,i,o)}return e.apply(this,arguments)};return t[a]=e[a],t}(u):v&&"function"==typeof u?s(Function.call,u):u,v&&((m.virtual||(m.virtual={}))[h]=u,e&d.R&&b&&!b[h]&&r(b,h,u)))};d.F=1,d.G=2,d.S=4,d.P=8,d.B=16,d.W=32,d.U=64,d.R=128,e.exports=d},function(e,t){var i=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(e,t){var i=e.exports={version:"2.5.0"};"number"==typeof __e&&(__e=i)},function(e,t,i){var o=i(19);e.exports=function(e,t,i){if(o(e),void 0===t)return e;switch(i){case 1:return function(i){return e.call(t,i)};case 2:return function(i,o){return e.call(t,i,o)};case 3:return function(i,o,n){return e.call(t,i,o,n)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,i){var o=i(21),n=i(29);e.exports=i(25)?function(e,t,i){return o.f(e,t,n(1,i))}:function(e,t,i){return e[t]=i,e}},function(e,t,i){var o=i(22),n=i(24),s=i(28),r=Object.defineProperty;t.f=i(25)?Object.defineProperty:function(e,t,i){if(o(e),t=s(t,!0),o(i),n)try{return r(e,t,i)}catch(e){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(e[t]=i.value),e}},function(e,t,i){var o=i(23);e.exports=function(e){if(!o(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,i){e.exports=!i(25)&&!i(26)(function(){return 7!=Object.defineProperty(i(27)("div"),"a",{get:function(){return 7}}).a})},function(e,t,i){e.exports=!i(26)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,i){var o=i(23),n=i(16).document,s=o(n)&&o(n.createElement);e.exports=function(e){return s?n.createElement(e):{}}},function(e,t,i){var o=i(23);e.exports=function(e,t){if(!o(e))return e;var i,n;if(t&&"function"==typeof(i=e.toString)&&!o(n=i.call(e)))return n;if("function"==typeof(i=e.valueOf)&&!o(n=i.call(e)))return n;if(!t&&"function"==typeof(i=e.toString)&&!o(n=i.call(e)))return n;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,i){e.exports=i(20)},function(e,t){var i={}.hasOwnProperty;e.exports=function(e,t){return i.call(e,t)}},function(e,t,i){var o=i(33),n=i(29),s=i(46),r={};i(20)(r,i(47)("iterator"),function(){return this}),e.exports=function(e,t,i){e.prototype=o(r,{next:n(1,i)}),s(e,t+" Iterator")}},function(e,t,i){var o=i(22),n=i(34),s=i(44),r=i(41)("IE_PROTO"),a=function(){},d="prototype",h=function(){var e,t=i(27)("iframe"),o=s.length,n="<",r=">";for(t.style.display="none",i(45).appendChild(t),t.src="javascript:",e=t.contentWindow.document,e.open(),e.write(n+"script"+r+"document.F=Object"+n+"/script"+r),e.close(),h=e.F;o--;)delete h[d][s[o]];return h()};e.exports=Object.create||function(e,t){var i;return null!==e?(a[d]=o(e),i=new a,a[d]=null,i[r]=e):i=h(),void 0===t?i:n(i,t)}},function(e,t,i){var o=i(21),n=i(22),s=i(35);e.exports=i(25)?Object.defineProperties:function(e,t){n(e);for(var i,r=s(t),a=r.length,d=0;a>d;)o.f(e,i=r[d++],t[i]);return e}},function(e,t,i){var o=i(36),n=i(44);e.exports=Object.keys||function(e){return o(e,n)}},function(e,t,i){var o=i(31),n=i(9),s=i(37)(!1),r=i(41)("IE_PROTO");e.exports=function(e,t){var i,a=n(e),d=0,h=[];for(i in a)i!=r&&o(a,i)&&h.push(i);for(;t.length>d;)o(a,i=t[d++])&&(~s(h,i)||h.push(i));return h}},function(e,t,i){var o=i(9),n=i(38),s=i(40);e.exports=function(e){return function(t,i,r){var a,d=o(t),h=n(d.length),l=s(r,h);if(e&&i!=i){for(;h>l;)if(a=d[l++],a!=a)return!0}else for(;h>l;l++)if((e||l in d)&&d[l]===i)return e||l||0;return!e&&-1}}},function(e,t,i){var o=i(39),n=Math.min;e.exports=function(e){return e>0?n(o(e),9007199254740991):0}},function(e,t){var i=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?o:i)(e)}},function(e,t,i){var o=i(39),n=Math.max,s=Math.min;e.exports=function(e,t){return e=o(e),e<0?n(e+t,0):s(e,t)}},function(e,t,i){var o=i(42)("keys"),n=i(43);e.exports=function(e){return o[e]||(o[e]=n(e))}},function(e,t,i){var o=i(16),n="__core-js_shared__",s=o[n]||(o[n]={});e.exports=function(e){return s[e]||(s[e]={})}},function(e,t){var i=0,o=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++i+o).toString(36))}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,i){var o=i(16).document;e.exports=o&&o.documentElement},function(e,t,i){var o=i(21).f,n=i(31),s=i(47)("toStringTag");e.exports=function(e,t,i){e&&!n(e=i?e:e.prototype,s)&&o(e,s,{configurable:!0,value:t})}},function(e,t,i){var o=i(42)("wks"),n=i(43),s=i(16).Symbol,r="function"==typeof s,a=e.exports=function(e){return o[e]||(o[e]=r&&s[e]||(r?s:n)("Symbol."+e))};a.store=o},function(e,t,i){var o=i(31),n=i(49),s=i(41)("IE_PROTO"),r=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=n(e),o(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?r:null}},function(e,t,i){var o=i(12);e.exports=function(e){return Object(o(e))}},function(e,t,i){var o=i(51)(!0);i(13)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,i=this._i;return i>=t.length?{value:void 0,done:!0}:(e=o(t,i),this._i+=e.length,{value:e,done:!1})})},function(e,t,i){var o=i(39),n=i(12);e.exports=function(e){return function(t,i){var s,r,a=String(n(t)),d=o(i),h=a.length;return d<0||d>=h?e?"":void 0:(s=a.charCodeAt(d),s<55296||s>56319||d+1===h||(r=a.charCodeAt(d+1))<56320||r>57343?e?a.charAt(d):s:e?a.slice(d,d+2):(s-55296<<10)+(r-56320)+65536)}}},function(e,t,i){var o=i(22),n=i(53);e.exports=i(17).getIterator=function(e){var t=n(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return o(t.call(e))}},function(e,t,i){var o=i(54),n=i(47)("iterator"),s=i(8);e.exports=i(17).getIteratorMethod=function(e){if(void 0!=e)return e[n]||e["@@iterator"]||s[o(e)]}},function(e,t,i){var o=i(11),n=i(47)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(e,t){try{return e[t]}catch(e){}};e.exports=function(e){var t,i,a;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(i=r(t=Object(e),n))?i:s?o(t):"Object"==(a=o(t))&&"function"==typeof t.callee?"Arguments":a}},function(e,t,i){e.exports={default:i(56),__esModule:!0}},function(e,t,i){i(57);var o=i(17).Object;e.exports=function(e,t){return o.create(e,t)}},function(e,t,i){var o=i(15);o(o.S,"Object",{create:i(33)})},function(e,t,i){e.exports={default:i(59),__esModule:!0}},function(e,t,i){i(60),e.exports=i(17).Object.keys},function(e,t,i){var o=i(49),n=i(35);i(61)("keys",function(){return function(e){return n(o(e))}})},function(e,t,i){var o=i(15),n=i(17),s=i(26);e.exports=function(e,t){var i=(n.Object||{})[e]||Object[e],r={};r[e]=t(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(e,t,i){function o(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var n=i(63),s=o(n),r=i(66),a=o(r),d="function"==typeof a.default&&"symbol"==typeof s.default?function(e){return typeof e}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":typeof e};t.default="function"==typeof a.default&&"symbol"===d(s.default)?function(e){return"undefined"==typeof e?"undefined":d(e)}:function(e){return e&&"function"==typeof a.default&&e.constructor===a.default&&e!==a.default.prototype?"symbol":"undefined"==typeof e?"undefined":d(e)}},function(e,t,i){e.exports={default:i(64),__esModule:!0}},function(e,t,i){i(50),i(4),e.exports=i(65).f("iterator")},function(e,t,i){t.f=i(47)},function(e,t,i){e.exports={default:i(67),__esModule:!0}},function(e,t,i){i(68),i(79),i(80),i(81),e.exports=i(17).Symbol},function(e,t,i){var o=i(16),n=i(31),s=i(25),r=i(15),a=i(30),d=i(69).KEY,h=i(26),l=i(42),u=i(46),c=i(43),f=i(47),p=i(65),v=i(70),g=i(71),y=i(72),m=i(75),b=i(22),_=i(9),w=i(28),k=i(29),x=i(33),O=i(76),M=i(78),E=i(21),S=i(35),D=M.f,C=E.f,T=O.f,P=o.Symbol,F=o.JSON,I=F&&F.stringify,N="prototype",B=f("_hidden"),z=f("toPrimitive"),A={}.propertyIsEnumerable,R=l("symbol-registry"),j=l("symbols"),H=l("op-symbols"),L=Object[N],W="function"==typeof P,Y=o.QObject,V=!Y||!Y[N]||!Y[N].findChild,U=s&&h(function(){return 7!=x(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a})?function(e,t,i){var o=D(L,t);o&&delete L[t],C(e,t,i),o&&e!==L&&C(L,t,o)}:C,q=function(e){var t=j[e]=x(P[N]);return t._k=e,t},G=W&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},X=function(e,t,i){return e===L&&X(H,t,i),b(e),t=w(t,!0),b(i),n(j,t)?(i.enumerable?(n(e,B)&&e[B][t]&&(e[B][t]=!1),i=x(i,{enumerable:k(0,!1)})):(n(e,B)||C(e,B,k(1,{})),e[B][t]=!0),U(e,t,i)):C(e,t,i)},K=function(e,t){b(e);for(var i,o=y(t=_(t)),n=0,s=o.length;s>n;)X(e,i=o[n++],t[i]);return e},Z=function(e,t){return void 0===t?x(e):K(x(e),t)},Q=function(e){var t=A.call(this,e=w(e,!0));return!(this===L&&n(j,e)&&!n(H,e))&&(!(t||!n(this,e)||!n(j,e)||n(this,B)&&this[B][e])||t)},$=function(e,t){if(e=_(e),t=w(t,!0),e!==L||!n(j,t)||n(H,t)){var i=D(e,t);return!i||!n(j,t)||n(e,B)&&e[B][t]||(i.enumerable=!0),i}},J=function(e){for(var t,i=T(_(e)),o=[],s=0;i.length>s;)n(j,t=i[s++])||t==B||t==d||o.push(t);return o},ee=function(e){for(var t,i=e===L,o=T(i?H:_(e)),s=[],r=0;o.length>r;)!n(j,t=o[r++])||i&&!n(L,t)||s.push(j[t]);return s};W||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=c(arguments.length>0?arguments[0]:void 0),t=function(i){this===L&&t.call(H,i),n(this,B)&&n(this[B],e)&&(this[B][e]=!1),U(this,e,k(1,i))};return s&&V&&U(L,e,{configurable:!0,set:t}),q(e)},a(P[N],"toString",function(){return this._k}),M.f=$,E.f=X,i(77).f=O.f=J,i(74).f=Q,i(73).f=ee,s&&!i(14)&&a(L,"propertyIsEnumerable",Q,!0),p.f=function(e){return q(f(e))}),r(r.G+r.W+r.F*!W,{Symbol:P});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ie=0;te.length>ie;)f(te[ie++]);for(var oe=S(f.store),ne=0;oe.length>ne;)v(oe[ne++]);r(r.S+r.F*!W,"Symbol",{for:function(e){return n(R,e+="")?R[e]:R[e]=P(e)},keyFor:function(e){if(G(e))return g(R,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){V=!0},useSimple:function(){V=!1}}),r(r.S+r.F*!W,"Object",{create:Z,defineProperty:X,defineProperties:K,getOwnPropertyDescriptor:$,getOwnPropertyNames:J,getOwnPropertySymbols:ee}),F&&r(r.S+r.F*(!W||h(function(){var e=P();return"[null]"!=I([e])||"{}"!=I({a:e})||"{}"!=I(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!G(e)){for(var t,i,o=[e],n=1;arguments.length>n;)o.push(arguments[n++]);return t=o[1],"function"==typeof t&&(i=t),!i&&m(t)||(t=function(e,t){if(i&&(t=i.call(this,e,t)),!G(t))return t}),o[1]=t,I.apply(F,o)}}}),P[N][z]||i(20)(P[N],z,P[N].valueOf),u(P,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(e,t,i){var o=i(43)("meta"),n=i(23),s=i(31),r=i(21).f,a=0,d=Object.isExtensible||function(){return!0},h=!i(26)(function(){return d(Object.preventExtensions({}))}),l=function(e){r(e,o,{value:{i:"O"+ ++a,w:{}}})},u=function(e,t){if(!n(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!s(e,o)){if(!d(e))return"F";if(!t)return"E";l(e)}return e[o].i},c=function(e,t){if(!s(e,o)){if(!d(e))return!0;if(!t)return!1;l(e)}return e[o].w},f=function(e){return h&&p.NEED&&d(e)&&!s(e,o)&&l(e),e},p=e.exports={KEY:o,NEED:!1,fastKey:u,getWeak:c,onFreeze:f}},function(e,t,i){var o=i(16),n=i(17),s=i(14),r=i(65),a=i(21).f;e.exports=function(e){var t=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:r.f(e)})}},function(e,t,i){var o=i(35),n=i(9);e.exports=function(e,t){for(var i,s=n(e),r=o(s),a=r.length,d=0;a>d;)if(s[i=r[d++]]===t)return i}},function(e,t,i){var o=i(35),n=i(73),s=i(74);e.exports=function(e){var t=o(e),i=n.f;if(i)for(var r,a=i(e),d=s.f,h=0;a.length>h;)d.call(e,r=a[h++])&&t.push(r);return t}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,i){var o=i(11);e.exports=Array.isArray||function(e){return"Array"==o(e)}},function(e,t,i){var o=i(9),n=i(77).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(e){try{return n(e)}catch(e){return r.slice()}};e.exports.f=function(e){return r&&"[object Window]"==s.call(e)?a(e):n(o(e))}},function(e,t,i){var o=i(36),n=i(44).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return o(e,n)}},function(e,t,i){var o=i(74),n=i(29),s=i(9),r=i(28),a=i(31),d=i(24),h=Object.getOwnPropertyDescriptor;t.f=i(25)?h:function(e,t){if(e=s(e),t=r(t,!0),d)try{return h(e,t)}catch(e){}if(a(e,t))return n(!o.f.call(e,t),e[t])}},function(e,t){},function(e,t,i){i(70)("asyncIterator")},function(e,t,i){i(70)("observable")},function(e,t,i){e.exports="undefined"!=typeof window&&window.moment||i(83)},function(e,t,i){(function(e){!function(t,i){e.exports=i()}(this,function(){function t(){return _o.apply(null,arguments)}function i(e){_o=e}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function n(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function s(e){var t;for(t in e)return!1;return!0}function r(e){return void 0===e}function a(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function d(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function h(e,t){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return E(i)?i(t):i.replace(/%s/i,t)}function z(e,t){var i=e.toLowerCase();Bo[i]=Bo[i+"s"]=Bo[t]=e}function A(e){return"string"==typeof e?Bo[e]||Bo[e.toLowerCase()]:void 0}function R(e){var t,i,o={};for(i in e)l(e,i)&&(t=A(i),t&&(o[t]=e[i]));return o}function j(e,t){zo[e]=t}function H(e){var t=[];for(var i in e)t.push({unit:i,priority:zo[i]});return t.sort(function(e,t){return e.priority-t.priority}),t}function L(e,i){return function(o){return null!=o?(Y(this,e,o),t.updateOffset(this,i),this):W(this,e)}}function W(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function Y(e,t,i){e.isValid()&&e._d["set"+(e._isUTC?"UTC":"")+t](i)}function V(e){return e=A(e),E(this[e])?this[e]():this}function U(e,t){if("object"==typeof e){e=R(e);for(var i=H(e),o=0;o=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function G(e,t,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),e&&(Ho[e]=n),t&&(Ho[t[0]]=function(){return q(n.apply(this,arguments),t[1],t[2])}),i&&(Ho[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),e)})}function X(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function K(e){var t,i,o=e.match(Ao);for(t=0,i=o.length;t=0&&Ro.test(e);)e=e.replace(Ro,i),Ro.lastIndex=0,o-=1;return e}function $(e,t,i){sn[e]=E(t)?t:function(e,o){return e&&i?i:t}}function J(e,t){return l(sn,e)?sn[e](t._strict,t._locale):new RegExp(ee(e))}function ee(e){return te(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,i,o,n){return t||i||o||n}))}function te(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ie(e,t){var i,o=t;for("string"==typeof e&&(e=[e]),a(t)&&(o=function(e,i){i[t]=w(e)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(e),a}function _e(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&e>=0&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function we(e,t,i){var o=7+t-i,n=(7+_e(e,0,o).getUTCDay()-t)%7;return-n+o-1}function ke(e,t,i,o,n){var s,r,a=(7+i-o)%7,d=we(e,o,n),h=1+7*(t-1)+a+d;return h<=0?(s=e-1,r=ge(s)+h):h>ge(e)?(s=e+1,r=h-ge(e)):(s=e,r=h),{year:s,dayOfYear:r}}function xe(e,t,i){var o,n,s=we(e.year(),t,i),r=Math.floor((e.dayOfYear()-s-1)/7)+1;return r<1?(n=e.year()-1,o=r+Oe(n,t,i)):r>Oe(e.year(),t,i)?(o=r-Oe(e.year(),t,i),n=e.year()+1):(n=e.year(),o=r),{week:o,year:n}}function Oe(e,t,i){var o=we(e,t,i),n=we(e+1,t,i);return(ge(e)-o+n)/7}function Me(e){return xe(e,this._week.dow,this._week.doy).week}function Ee(){return this._week.dow}function Se(){return this._week.doy}function De(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")}function Ce(e){var t=xe(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")}function Te(e,t){return"string"!=typeof e?e:isNaN(e)?(e=t.weekdaysParse(e),"number"==typeof e?e:null):parseInt(e,10)}function Pe(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Fe(e,t){return e?o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ie(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort}function Ne(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin}function Be(e,t,i){var o,n,s,r=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=c([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===t?(n=gn.call(this._weekdaysParse,r),n!==-1?n:null):"ddd"===t?(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:null):(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null):"dddd"===t?(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null))):"ddd"===t?(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null))):(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:null)))}function ze(e,t,i){var o,n,s;if(this._weekdaysParseExact)return Be.call(this,e,t,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=c([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===t&&this._fullWeekdaysParse[o].test(e))return o;if(i&&"ddd"===t&&this._shortWeekdaysParse[o].test(e))return o;if(i&&"dd"===t&&this._minWeekdaysParse[o].test(e))return o;if(!i&&this._weekdaysParse[o].test(e))return o}}function Ae(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=Te(e,this.localeData()),this.add(e-t,"d")):t}function Re(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")}function je(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=Pe(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7}function He(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Ye.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Sn),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function Le(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Ye.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Dn),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function We(e){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Ye.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Cn),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ye(){function e(e,t){return t.length-e.length}var t,i,o,n,s,r=[],a=[],d=[],h=[];for(t=0;t<7;t++)i=c([2e3,1]).day(t),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),d.push(s),h.push(o),h.push(n),h.push(s);for(r.sort(e),a.sort(e),d.sort(e),h.sort(e),t=0;t<7;t++)a[t]=te(a[t]),d[t]=te(d[t]),h[t]=te(h[t]);this._weekdaysRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ve(){return this.hours()%12||12}function Ue(){return this.hours()||24}function qe(e,t){G(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ge(e,t){return t._meridiemParse}function Xe(e){return"p"===(e+"").toLowerCase().charAt(0)}function Ke(e,t,i){return e>11?i?"pm":"PM":i?"am":"AM"}function Ze(e){return e?e.toLowerCase().replace("_","-"):e}function Qe(e){for(var t,i,o,n,s=0;s0;){if(o=$e(n.slice(0,t).join("-")))return o;if(i&&i.length>=t&&k(n,i,!0)>=t-1)break;t--}s++}return null}function $e(t){var i=null;if(!Nn[t]&&"undefined"!=typeof e&&e&&e.exports)try{i=Tn._abbr,!function(){var e=new Error('Cannot find module "./locale"');throw e.code="MODULE_NOT_FOUND",e}(),Je(i)}catch(e){}return Nn[t]}function Je(e,t){var i;return e&&(i=r(t)?it(e):et(e,t),i&&(Tn=i)),Tn._abbr}function et(e,t){if(null!==t){var i=In;if(t.abbr=e,null!=Nn[e])M("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=Nn[e]._config;else if(null!=t.parentLocale){if(null==Nn[t.parentLocale])return Bn[t.parentLocale]||(Bn[t.parentLocale]=[]),Bn[t.parentLocale].push({name:e,config:t}),null;i=Nn[t.parentLocale]._config}return Nn[e]=new C(D(i,t)),Bn[e]&&Bn[e].forEach(function(e){et(e.name,e.config)}),Je(e),Nn[e]}return delete Nn[e],null}function tt(e,t){if(null!=t){var i,o=In;null!=Nn[e]&&(o=Nn[e]._config),t=D(o,t),i=new C(t),i.parentLocale=Nn[e],Nn[e]=i,Je(e)}else null!=Nn[e]&&(null!=Nn[e].parentLocale?Nn[e]=Nn[e].parentLocale:null!=Nn[e]&&delete Nn[e]);return Nn[e]}function it(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Tn;if(!o(e)){if(t=$e(e))return t;e=[e]}return Qe(e)}function ot(){return Do(Nn)}function nt(e){var t,i=e._a;return i&&p(e).overflow===-2&&(t=i[dn]<0||i[dn]>11?dn:i[hn]<1||i[hn]>se(i[an],i[dn])?hn:i[ln]<0||i[ln]>24||24===i[ln]&&(0!==i[un]||0!==i[cn]||0!==i[fn])?ln:i[un]<0||i[un]>59?un:i[cn]<0||i[cn]>59?cn:i[fn]<0||i[fn]>999?fn:-1,p(e)._overflowDayOfYear&&(thn)&&(t=hn),p(e)._overflowWeeks&&t===-1&&(t=pn),p(e)._overflowWeekday&&t===-1&&(t=vn),p(e).overflow=t),e}function st(e){var t,i,o,n,s,r,a=e._i,d=zn.exec(a)||An.exec(a);if(d){for(p(e).iso=!0,t=0,i=jn.length;t10?"YYYY ":"YY "),s="HH:mm"+(i[4]?":ss":""),i[1]){var u=new Date(i[2]),c=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][u.getDay()];if(i[1].substr(0,3)!==c)return p(e).weekdayMismatch=!0,void(e._isValid=!1)}switch(i[5].length){case 2:0===d?a=" +0000":(d=l.indexOf(i[5][1].toUpperCase())-12,a=(d<0?" -":" +")+(""+d).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:a=h[i[5]];break;default:a=h[" GMT"]}i[5]=a,e._i=i.splice(1).join(""),r=" ZZ",e._f=o+n+s+r,ct(e),p(e).rfc2822=!0}else e._isValid=!1}function at(e){var i=Ln.exec(e._i);return null!==i?void(e._d=new Date(+i[1])):(st(e),void(e._isValid===!1&&(delete e._isValid,rt(e),e._isValid===!1&&(delete e._isValid,t.createFromInputFallback(e)))))}function dt(e,t,i){return null!=e?e:null!=t?t:i}function ht(e){var i=new Date(t.now());return e._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function lt(e){var t,i,o,n,s=[];if(!e._d){for(o=ht(e),e._w&&null==e._a[hn]&&null==e._a[dn]&&ut(e),null!=e._dayOfYear&&(n=dt(e._a[an],o[an]),(e._dayOfYear>ge(n)||0===e._dayOfYear)&&(p(e)._overflowDayOfYear=!0),i=_e(n,0,e._dayOfYear),e._a[dn]=i.getUTCMonth(),e._a[hn]=i.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=s[t]=o[t];for(;t<7;t++)e._a[t]=s[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ln]&&0===e._a[un]&&0===e._a[cn]&&0===e._a[fn]&&(e._nextDay=!0,e._a[ln]=0),e._d=(e._useUTC?_e:be).apply(null,s),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ln]=24)}}function ut(e){var t,i,o,n,s,r,a,d;if(t=e._w,null!=t.GG||null!=t.W||null!=t.E)s=1,r=4,i=dt(t.GG,e._a[an],xe(_t(),1,4).year),o=dt(t.W,1),n=dt(t.E,1),(n<1||n>7)&&(d=!0);else{s=e._locale._week.dow,r=e._locale._week.doy;var h=xe(_t(),s,r);i=dt(t.gg,e._a[an],h.year),o=dt(t.w,h.week),null!=t.d?(n=t.d,(n<0||n>6)&&(d=!0)):null!=t.e?(n=t.e+s,(t.e<0||t.e>6)&&(d=!0)):n=s}o<1||o>Oe(i,s,r)?p(e)._overflowWeeks=!0:null!=d?p(e)._overflowWeekday=!0:(a=ke(i,o,n,s,r),e._a[an]=a.year,e._dayOfYear=a.dayOfYear)}function ct(e){if(e._f===t.ISO_8601)return void st(e);if(e._f===t.RFC_2822)return void rt(e);e._a=[],p(e).empty=!0;var i,o,n,s,r,a=""+e._i,d=a.length,h=0;for(n=Q(e._f,e._locale).match(Ao)||[],i=0;i0&&p(e).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),h+=o.length),Ho[s]?(o?p(e).empty=!1:p(e).unusedTokens.push(s),ne(s,o,e)):e._strict&&!o&&p(e).unusedTokens.push(s);p(e).charsLeftOver=d-h,a.length>0&&p(e).unusedInput.push(a),e._a[ln]<=12&&p(e).bigHour===!0&&e._a[ln]>0&&(p(e).bigHour=void 0),p(e).parsedDateParts=e._a.slice(0),p(e).meridiem=e._meridiem,e._a[ln]=ft(e._locale,e._a[ln],e._meridiem),lt(e),nt(e)}function ft(e,t,i){var o;return null==i?t:null!=e.meridiemHour?e.meridiemHour(t,i):null!=e.isPM?(o=e.isPM(i),o&&t<12&&(t+=12),o||12!==t||(t=0),t):t}function pt(e){var t,i,o,n,s;if(0===e._f.length)return p(e).invalidFormat=!0,void(e._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Lt(){if(!r(this._isDSTShifted))return this._isDSTShifted;var e={};if(y(e,this),e=yt(e),e._a){var t=e._isUTC?c(e._a):_t(e._a);this._isDSTShifted=this.isValid()&&k(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Wt(){return!!this.isValid()&&!this._isUTC}function Yt(){return!!this.isValid()&&this._isUTC}function Vt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ut(e,t){var i,o,n,s=e,r=null;return Dt(e)?s={ms:e._milliseconds,d:e._days,M:e._months}:a(e)?(s={},t?s[t]=e:s.milliseconds=e):(r=Xn.exec(e))?(i="-"===r[1]?-1:1,s={y:0,d:w(r[hn])*i,h:w(r[ln])*i,m:w(r[un])*i,s:w(r[cn])*i,ms:w(Ct(1e3*r[fn]))*i}):(r=Kn.exec(e))?(i="-"===r[1]?-1:1,s={y:qt(r[2],i),M:qt(r[3],i),w:qt(r[4],i),d:qt(r[5],i),h:qt(r[6],i),m:qt(r[7],i),s:qt(r[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Xt(_t(s.from),_t(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new St(s),Dt(e)&&l(e,"_locale")&&(o._locale=e._locale),o}function qt(e,t){var i=e&&parseFloat(e.replace(",","."));return(isNaN(i)?0:i)*t}function Gt(e,t){var i={milliseconds:0,months:0};return i.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(i.months,"M").isAfter(t)&&--i.months,i.milliseconds=+t-+e.clone().add(i.months,"M"),i}function Xt(e,t){var i;return e.isValid()&&t.isValid()?(t=Ft(t,e),e.isBefore(t)?i=Gt(e,t):(i=Gt(t,e),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function Kt(e,t){return function(i,o){var n,s;return null===o||isNaN(+o)||(M(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Ut(i,o),Zt(this,n,e),this}}function Zt(e,i,o,n){var s=i._milliseconds,r=Ct(i._days),a=Ct(i._months);e.isValid()&&(n=null==n||n,s&&e._d.setTime(e._d.valueOf()+s*o),r&&Y(e,"Date",W(e,"Date")+r*o),a&&le(e,W(e,"Month")+a*o),n&&t.updateOffset(e,r||a))}function Qt(e,t){var i=e.diff(t,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function $t(e,i){var o=e||_t(),n=Ft(o,this).startOf("day"),s=t.calendarFormat(this,n)||"sameElse",r=i&&(E(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,_t(o)))}function Jt(){return new m(this)}function ei(e,t){var i=b(e)?e:_t(e);return!(!this.isValid()||!i.isValid())&&(t=A(r(t)?"millisecond":t),"millisecond"===t?this.valueOf()>i.valueOf():i.valueOf()9999?Z(e,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):E(Date.prototype.toISOString)?this.toDate().toISOString():Z(e,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function li(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var i="["+e+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",s=t+'[")]';return this.format(i+o+n+s)}function ui(e){e||(e=this.isUtc()?t.defaultFormatUtc:t.defaultFormat);var i=Z(this,e);return this.localeData().postformat(i)}function ci(e,t){return this.isValid()&&(b(e)&&e.isValid()||_t(e).isValid())?Ut({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function fi(e){return this.from(_t(),e)}function pi(e,t){return this.isValid()&&(b(e)&&e.isValid()||_t(e).isValid())?Ut({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function vi(e){return this.to(_t(),e)}function gi(e){var t;return void 0===e?this._locale._abbr:(t=it(e),null!=t&&(this._locale=t),this)}function yi(){return this._locale}function mi(e){switch(e=A(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this}function bi(e){return e=A(e),void 0===e||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))}function _i(){return this._d.valueOf()-6e4*(this._offset||0)}function wi(){return Math.floor(this.valueOf()/1e3)}function ki(){return new Date(this.valueOf())}function xi(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function Oi(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Mi(){return this.isValid()?this.toISOString():null}function Ei(){return v(this)}function Si(){return u({},p(this))}function Di(){return p(this).overflow}function Ci(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ti(e,t){G(0,[e,e.length],0,t)}function Pi(e){return Bi.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fi(e){return Bi.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)}function Ii(){return Oe(this.year(),1,4)}function Ni(){var e=this.localeData()._week;return Oe(this.year(),e.dow,e.doy)}function Bi(e,t,i,o,n){var s;return null==e?xe(this,o,n).year:(s=Oe(e,o,n),t>s&&(t=s),zi.call(this,e,t,i,o,n))}function zi(e,t,i,o,n){var s=ke(e,t,i,o,n),r=_e(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Ai(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)}function Ri(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")}function ji(e,t){t[fn]=w(1e3*("0."+e))}function Hi(){return this._isUTC?"UTC":""}function Li(){ +return this._isUTC?"Coordinated Universal Time":""}function Wi(e){return _t(1e3*e)}function Yi(){return _t.apply(null,arguments).parseZone()}function Vi(e){return e}function Ui(e,t,i,o){var n=it(),s=c().set(o,t);return n[i](s,e)}function qi(e,t,i){if(a(e)&&(t=e,e=void 0),e=e||"",null!=t)return Ui(e,t,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Ui(e,o,i,"month");return n}function Gi(e,t,i,o){"boolean"==typeof e?(a(t)&&(i=t,t=void 0),t=t||""):(t=e,i=t,e=!1,a(t)&&(i=t,t=void 0),t=t||"");var n=it(),s=e?n._week.dow:0;if(null!=i)return Ui(t,(i+s)%7,o,"day");var r,d=[];for(r=0;r<7;r++)d[r]=Ui(t,(r+s)%7,o,"day");return d}function Xi(e,t){return qi(e,t,"months")}function Ki(e,t){return qi(e,t,"monthsShort")}function Zi(e,t,i){return Gi(e,t,i,"weekdays")}function Qi(e,t,i){return Gi(e,t,i,"weekdaysShort")}function $i(e,t,i){return Gi(e,t,i,"weekdaysMin")}function Ji(){var e=this._data;return this._milliseconds=rs(this._milliseconds),this._days=rs(this._days),this._months=rs(this._months),e.milliseconds=rs(e.milliseconds),e.seconds=rs(e.seconds),e.minutes=rs(e.minutes),e.hours=rs(e.hours),e.months=rs(e.months),e.years=rs(e.years),this}function eo(e,t,i,o){var n=Ut(t,i);return e._milliseconds+=o*n._milliseconds,e._days+=o*n._days,e._months+=o*n._months,e._bubble()}function to(e,t){return eo(this,e,t,1)}function io(e,t){return eo(this,e,t,-1)}function oo(e){return e<0?Math.floor(e):Math.ceil(e)}function no(){var e,t,i,o,n,s=this._milliseconds,r=this._days,a=this._months,d=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*oo(ro(a)+r),r=0,a=0),d.milliseconds=s%1e3,e=_(s/1e3),d.seconds=e%60,t=_(e/60),d.minutes=t%60,i=_(t/60),d.hours=i%24,r+=_(i/24),n=_(so(r)),a+=n,r-=oo(ro(n)),o=_(a/12),a%=12,d.days=r,d.months=a,d.years=o,this}function so(e){return 4800*e/146097}function ro(e){return 146097*e/4800}function ao(e){if(!this.isValid())return NaN;var t,i,o=this._milliseconds;if(e=A(e),"month"===e||"year"===e)return t=this._days+o/864e5,i=this._months+so(t),"month"===e?i:i/12;switch(t=this._days+Math.round(ro(this._months)),e){case"week":return t/7+o/6048e5;case"day":return t+o/864e5;case"hour":return 24*t+o/36e5;case"minute":return 1440*t+o/6e4;case"second":return 86400*t+o/1e3;case"millisecond":return Math.floor(864e5*t)+o;default:throw new Error("Unknown unit "+e)}}function ho(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN}function lo(e){return function(){return this.as(e)}}function uo(e){return e=A(e),this.isValid()?this[e+"s"]():NaN}function co(e){return function(){return this.isValid()?this._data[e]:NaN}}function fo(){return _(this.days()/7)}function po(e,t,i,o,n){return n.relativeTime(t||1,!!i,e,o)}function vo(e,t,i){var o=Ut(e).abs(),n=ks(o.as("s")),s=ks(o.as("m")),r=ks(o.as("h")),a=ks(o.as("d")),d=ks(o.as("M")),h=ks(o.as("y")),l=n<=xs.ss&&["s",n]||n0,l[4]=i,po.apply(null,l)}function go(e){return void 0===e?ks:"function"==typeof e&&(ks=e,!0)}function yo(e,t){return void 0!==xs[e]&&(void 0===t?xs[e]:(xs[e]=t,"s"===e&&(xs.ss=t-1),!0))}function mo(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),i=vo(this,!e,t);return e&&(i=t.pastFuture(+this,i)),t.postformat(i)}function bo(){if(!this.isValid())return this.localeData().invalidDate();var e,t,i,o=Os(this._milliseconds)/1e3,n=Os(this._days),s=Os(this._months);e=_(o/60),t=_(e/60),o%=60,e%=60,i=_(s/12),s%=12;var r=i,a=s,d=n,h=t,l=e,u=o,c=this.asSeconds();return c?(c<0?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(d?d+"D":"")+(h||l||u?"T":"")+(h?h+"H":"")+(l?l+"M":"")+(u?u+"S":""):"P0D"}var _o,wo;wo=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),i=t.length>>>0,o=0;o68?1900:2e3)};var kn=L("FullYear",!0);G("w",["ww",2],"wo","week"),G("W",["WW",2],"Wo","isoWeek"),z("week","w"),z("isoWeek","W"),j("week",5),j("isoWeek",5),$("w",qo),$("ww",qo,Wo),$("W",qo),$("WW",qo,Wo),oe(["w","ww","W","WW"],function(e,t,i,o){t[o.substr(0,1)]=w(e)});var xn={dow:0,doy:6};G("d",0,"do","day"),G("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),G("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),G("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),G("e",0,0,"weekday"),G("E",0,0,"isoWeekday"),z("day","d"),z("weekday","e"),z("isoWeekday","E"),j("day",11),j("weekday",11),j("isoWeekday",11),$("d",qo),$("e",qo),$("E",qo),$("dd",function(e,t){return t.weekdaysMinRegex(e)}),$("ddd",function(e,t){return t.weekdaysShortRegex(e)}),$("dddd",function(e,t){return t.weekdaysRegex(e)}),oe(["dd","ddd","dddd"],function(e,t,i,o){var n=i._locale.weekdaysParse(e,o,i._strict);null!=n?t.d=n:p(i).invalidWeekday=e}),oe(["d","e","E"],function(e,t,i,o){t[o]=w(e)});var On="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Mn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),En="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Sn=nn,Dn=nn,Cn=nn;G("H",["HH",2],0,"hour"),G("h",["hh",2],0,Ve),G("k",["kk",2],0,Ue),G("hmm",0,0,function(){return""+Ve.apply(this)+q(this.minutes(),2)}),G("hmmss",0,0,function(){return""+Ve.apply(this)+q(this.minutes(),2)+q(this.seconds(),2)}),G("Hmm",0,0,function(){return""+this.hours()+q(this.minutes(),2)}),G("Hmmss",0,0,function(){return""+this.hours()+q(this.minutes(),2)+q(this.seconds(),2)}),qe("a",!0),qe("A",!1),z("hour","h"),j("hour",13),$("a",Ge),$("A",Ge),$("H",qo),$("h",qo),$("k",qo),$("HH",qo,Wo),$("hh",qo,Wo),$("kk",qo,Wo),$("hmm",Go),$("hmmss",Xo),$("Hmm",Go),$("Hmmss",Xo),ie(["H","HH"],ln),ie(["k","kk"],function(e,t,i){var o=w(e);t[ln]=24===o?0:o}),ie(["a","A"],function(e,t,i){i._isPm=i._locale.isPM(e),i._meridiem=e}),ie(["h","hh"],function(e,t,i){t[ln]=w(e),p(i).bigHour=!0}),ie("hmm",function(e,t,i){var o=e.length-2;t[ln]=w(e.substr(0,o)),t[un]=w(e.substr(o)),p(i).bigHour=!0}),ie("hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[ln]=w(e.substr(0,o)),t[un]=w(e.substr(o,2)),t[cn]=w(e.substr(n)),p(i).bigHour=!0}),ie("Hmm",function(e,t,i){var o=e.length-2;t[ln]=w(e.substr(0,o)),t[un]=w(e.substr(o))}),ie("Hmmss",function(e,t,i){var o=e.length-4,n=e.length-2;t[ln]=w(e.substr(0,o)),t[un]=w(e.substr(o,2)),t[cn]=w(e.substr(n))});var Tn,Pn=/[ap]\.?m?\.?/i,Fn=L("Hours",!0),In={calendar:Co,longDateFormat:To,invalidDate:Po,ordinal:Fo,dayOfMonthOrdinalParse:Io,relativeTime:No,months:mn,monthsShort:bn,week:xn,weekdays:On,weekdaysMin:En,weekdaysShort:Mn,meridiemParse:Pn},Nn={},Bn={},zn=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,An=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Rn=/Z|[+-]\d\d(?::?\d\d)?/,jn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Hn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ln=/^\/?Date\((\-?\d+)/i,Wn=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;t.createFromInputFallback=O("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),t.ISO_8601=function(){},t.RFC_2822=function(){};var Yn=O("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=_t.apply(null,arguments);return this.isValid()&&e.isValid()?ethis?this:e:g()}),Un=function(){return Date.now?Date.now():+new Date},qn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Tt("Z",":"),Tt("ZZ",""),$("Z",tn),$("ZZ",tn),ie(["Z","ZZ"],function(e,t,i){i._useUTC=!0,i._tzm=Pt(tn,e)});var Gn=/([\+\-]|\d\d)/gi;t.updateOffset=function(){};var Xn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Kn=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Ut.fn=St.prototype,Ut.invalid=Et;var Zn=Kt(1,"add"),Qn=Kt(-1,"subtract");t.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",t.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var $n=O("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});G(0,["gg",2],0,function(){return this.weekYear()%100}),G(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ti("gggg","weekYear"),Ti("ggggg","weekYear"),Ti("GGGG","isoWeekYear"),Ti("GGGGG","isoWeekYear"),z("weekYear","gg"),z("isoWeekYear","GG"),j("weekYear",1),j("isoWeekYear",1),$("G",Jo),$("g",Jo),$("GG",qo,Wo),$("gg",qo,Wo),$("GGGG",Zo,Vo),$("gggg",Zo,Vo),$("GGGGG",Qo,Uo),$("ggggg",Qo,Uo),oe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,i,o){t[o.substr(0,2)]=w(e)}),oe(["gg","GG"],function(e,i,o,n){i[n]=t.parseTwoDigitYear(e)}),G("Q",0,"Qo","quarter"),z("quarter","Q"),j("quarter",7),$("Q",Lo),ie("Q",function(e,t){t[dn]=3*(w(e)-1)}),G("D",["DD",2],"Do","date"),z("date","D"),j("date",9),$("D",qo),$("DD",qo,Wo),$("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ie(["D","DD"],hn),ie("Do",function(e,t){t[hn]=w(e.match(qo)[0],10)});var Jn=L("Date",!0);G("DDD",["DDDD",3],"DDDo","dayOfYear"),z("dayOfYear","DDD"),j("dayOfYear",4),$("DDD",Ko),$("DDDD",Yo),ie(["DDD","DDDD"],function(e,t,i){i._dayOfYear=w(e)}),G("m",["mm",2],0,"minute"),z("minute","m"),j("minute",14),$("m",qo),$("mm",qo,Wo),ie(["m","mm"],un);var es=L("Minutes",!1);G("s",["ss",2],0,"second"),z("second","s"),j("second",15),$("s",qo),$("ss",qo,Wo),ie(["s","ss"],cn);var ts=L("Seconds",!1);G("S",0,0,function(){return~~(this.millisecond()/100)}),G(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),G(0,["SSS",3],0,"millisecond"),G(0,["SSSS",4],0,function(){return 10*this.millisecond()}),G(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),G(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),G(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),G(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),G(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),z("millisecond","ms"),j("millisecond",16),$("S",Ko,Lo),$("SS",Ko,Wo),$("SSS",Ko,Yo);var is;for(is="SSSS";is.length<=9;is+="S")$(is,$o);for(is="S";is.length<=9;is+="S")ie(is,ji);var os=L("Milliseconds",!1);G("z",0,0,"zoneAbbr"),G("zz",0,0,"zoneName");var ns=m.prototype;ns.add=Zn,ns.calendar=$t,ns.clone=Jt,ns.diff=ri,ns.endOf=bi,ns.format=ui,ns.from=ci,ns.fromNow=fi,ns.to=pi,ns.toNow=vi,ns.get=V,ns.invalidAt=Di,ns.isAfter=ei,ns.isBefore=ti,ns.isBetween=ii,ns.isSame=oi,ns.isSameOrAfter=ni,ns.isSameOrBefore=si,ns.isValid=Ei,ns.lang=$n,ns.locale=gi,ns.localeData=yi,ns.max=Vn,ns.min=Yn,ns.parsingFlags=Si,ns.set=U,ns.startOf=mi,ns.subtract=Qn,ns.toArray=xi,ns.toObject=Oi,ns.toDate=ki,ns.toISOString=hi,ns.inspect=li,ns.toJSON=Mi,ns.toString=di,ns.unix=wi,ns.valueOf=_i,ns.creationData=Ci,ns.year=kn,ns.isLeapYear=me,ns.weekYear=Pi,ns.isoWeekYear=Fi,ns.quarter=ns.quarters=Ai,ns.month=ue,ns.daysInMonth=ce,ns.week=ns.weeks=De,ns.isoWeek=ns.isoWeeks=Ce,ns.weeksInYear=Ni,ns.isoWeeksInYear=Ii,ns.date=Jn,ns.day=ns.days=Ae,ns.weekday=Re,ns.isoWeekday=je,ns.dayOfYear=Ri,ns.hour=ns.hours=Fn,ns.minute=ns.minutes=es,ns.second=ns.seconds=ts,ns.millisecond=ns.milliseconds=os,ns.utcOffset=Nt,ns.utc=zt,ns.local=At,ns.parseZone=Rt,ns.hasAlignedHourOffset=jt,ns.isDST=Ht,ns.isLocal=Wt,ns.isUtcOffset=Yt,ns.isUtc=Vt,ns.isUTC=Vt,ns.zoneAbbr=Hi,ns.zoneName=Li,ns.dates=O("dates accessor is deprecated. Use date instead.",Jn),ns.months=O("months accessor is deprecated. Use month instead",ue),ns.years=O("years accessor is deprecated. Use year instead",kn),ns.zone=O("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Bt),ns.isDSTShifted=O("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Lt);var ss=C.prototype;ss.calendar=T,ss.longDateFormat=P,ss.invalidDate=F,ss.ordinal=I,ss.preparse=Vi,ss.postformat=Vi,ss.relativeTime=N,ss.pastFuture=B,ss.set=S,ss.months=re,ss.monthsShort=ae,ss.monthsParse=he,ss.monthsRegex=pe,ss.monthsShortRegex=fe,ss.week=Me,ss.firstDayOfYear=Se,ss.firstDayOfWeek=Ee,ss.weekdays=Fe,ss.weekdaysMin=Ne,ss.weekdaysShort=Ie,ss.weekdaysParse=ze,ss.weekdaysRegex=He,ss.weekdaysShortRegex=Le,ss.weekdaysMinRegex=We,ss.isPM=Xe,ss.meridiem=Ke,Je("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,i=1===w(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th";return e+i}}),t.lang=O("moment.lang is deprecated. Use moment.locale instead.",Je),t.langData=O("moment.langData is deprecated. Use moment.localeData instead.",it);var rs=Math.abs,as=lo("ms"),ds=lo("s"),hs=lo("m"),ls=lo("h"),us=lo("d"),cs=lo("w"),fs=lo("M"),ps=lo("y"),vs=co("milliseconds"),gs=co("seconds"),ys=co("minutes"),ms=co("hours"),bs=co("days"),_s=co("months"),ws=co("years"),ks=Math.round,xs={ss:44,s:45,m:45,h:22,d:26,M:11},Os=Math.abs,Ms=St.prototype;return Ms.isValid=Mt,Ms.abs=Ji,Ms.add=to,Ms.subtract=io,Ms.as=ao,Ms.asMilliseconds=as,Ms.asSeconds=ds,Ms.asMinutes=hs,Ms.asHours=ls,Ms.asDays=us,Ms.asWeeks=cs,Ms.asMonths=fs,Ms.asYears=ps,Ms.valueOf=ho,Ms._bubble=no,Ms.get=uo,Ms.milliseconds=vs,Ms.seconds=gs,Ms.minutes=ys,Ms.hours=ms,Ms.days=bs,Ms.weeks=fo,Ms.months=_s,Ms.years=ws,Ms.humanize=mo,Ms.toISOString=bo,Ms.toString=bo,Ms.toJSON=bo,Ms.locale=gi,Ms.localeData=yi,Ms.toIsoString=O("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",bo),Ms.lang=$n,G("X",0,0,"unix"),G("x",0,0,"valueOf"),$("x",Jo),$("X",on),ie("X",function(e,t,i){i._d=new Date(1e3*parseFloat(e,10))}),ie("x",function(e,t,i){i._d=new Date(w(e))}),t.version="2.18.1",i(_t),t.fn=ns,t.min=kt,t.max=xt,t.now=Un,t.utc=c,t.unix=Wi,t.months=Xi,t.isDate=d,t.locale=Je,t.invalid=g,t.duration=Ut,t.isMoment=b,t.weekdays=Zi,t.parseZone=Yi,t.localeData=it,t.isDuration=Dt,t.monthsShort=Ki,t.weekdaysMin=$i,t.defineLocale=et,t.updateLocale=tt,t.locales=ot,t.weekdaysShort=Qi,t.normalizeUnits=A,t.relativeTimeRounding=go,t.relativeTimeThreshold=yo,t.calendarFormat=Qt,t.prototype=ns,t})}).call(t,i(84)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t){function i(e){throw new Error("Cannot find module '"+e+"'.")}i.keys=function(){return[]},i.resolve=i,e.exports=i,i.id=85},function(e,t){(function(t){function i(e,t,i){var o=t&&i||0,n=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,function(e){n<16&&(t[o+n++]=u[e])});n<16;)t[o+n++]=0;return t}function o(e,t){var i=t||0,o=l;return o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+"-"+o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]+o[e[i++]]}function n(e,t,i){var n=t&&i||0,s=t||[];e=e||{};var r=void 0!==e.clockseq?e.clockseq:v,a=void 0!==e.msecs?e.msecs:(new Date).getTime(),d=void 0!==e.nsecs?e.nsecs:y+1,h=a-g+(d-y)/1e4;if(h<0&&void 0===e.clockseq&&(r=r+1&16383),(h<0||a>g)&&void 0===e.nsecs&&(d=0),d>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");g=a,y=d,v=r,a+=122192928e5;var l=(1e4*(268435455&a)+d)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=e.node||p,f=0;f<6;f++)s[n+f]=c[f];return t?t:o(s)}function s(e,t,i){var n=t&&i||0;"string"==typeof e&&(t="binary"==e?new Array(16):null,e=null),e=e||{};var s=e.random||(e.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t)for(var a=0;a<16;a++)t[n+a]=s[a];return t||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof t?t:null;if(a&&a.crypto&&crypto.getRandomValues){var d=new Uint8Array(16);r=function(){return crypto.getRandomValues(d),d}}if(!r){var h=new Array(16);r=function(){for(var e,t=0;t<16;t++)0===(3&t)&&(e=4294967296*Math.random()),h[t]=e>>>((3&t)<<3)&255;return h}}for(var l=[],u={},c=0;c<256;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var f=r(),p=[1|f[0],f[1],f[2],f[3],f[4],f[5]],v=16383&(f[6]<<8|f[7]),g=0,y=0,m=s;m.v1=n,m.v4=s,m.parse=i,m.unparse=o,e.exports=m}).call(t,function(){return this}())},function(e,t){t.prepareElements=function(e){for(var t in e)e.hasOwnProperty(t)&&(e[t].redundant=e[t].used,e[t].used=[])},t.cleanupElements=function(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t].redundant){for(var i=0;i0?(o=t[e].redundant[0],t[e].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",e),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",e),t[e]={used:[],redundant:[]},i.appendChild(o)),t[e].used.push(o),o},t.getDOMElement=function(e,t,i,o){var n;return t.hasOwnProperty(e)?t[e].redundant.length>0?(n=t[e].redundant[0],t[e].redundant.shift()):(n=document.createElement(e),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(e),t[e]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),t[e].used.push(n),n},t.drawPoint=function(e,i,o,n,s,r){var a;if("circle"==o.style?(a=t.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",e),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=t.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",e-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var d=t.getSVGElement("text",n,s);r.xOffset&&(e+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(d.textContent=r.content),r.className&&d.setAttributeNS(null,"class",r.className+" vis-label"),d.setAttributeNS(null,"x",e),d.setAttributeNS(null,"y",i)}return a},t.drawBar=function(e,i,o,n,s,r,a,d){if(0!=n){n<0&&(n*=-1,i-=n);var h=t.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",e-.5*o),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",o),h.setAttributeNS(null,"height",n),h.setAttributeNS(null,"class",s),d&&h.setAttributeNS(null,"style",d)}}},function(e,t,i){function o(e){return e&&e.__esModule?e:{default:e}}function n(e,t){if(e&&!Array.isArray(e)&&(t=e,e=null),this._options=t||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=(0,l.default)(this._options.type),o=0,n=i.length;on?1:or)&&(s=d,r=h)}return s},n.prototype.min=function(e){var t,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(t=0,i=n.length;tthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var e=this;this._timeout=setTimeout(function(){e.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var e=this._queue.shift();e.fn.apply(e.context||e.fn,e.args||[])}},e.exports=i},function(e,t,i){function o(e){return e&&e.__esModule?e:{default:e}}function n(e,t){this._data=null,this._ids={},this.length=0,this._options=t||{},this._fieldId="id",this._subscribers={}; +var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(e)}var s=i(58),r=o(s),a=i(1),d=i(88);n.prototype.setData=function(e){var t,i,o,n,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),t=this._data.getIds({filter:this._options&&this._options.filter}),s=[],o=0,n=t.length;o=.1;)f=n[l++%s],f>h&&(f=h),c=Math.sqrt(f*f/(1+d*d)),c=r<0?-c:c,e+=c,t+=d*c,u===!0?this.lineTo(e,t):this.moveTo(e,t),h-=f,u=!u})},function(e,t){function i(e){if(e)return o(e)}function o(e){for(var t in i.prototype)e[t]=i.prototype[t];return e}e.exports=i,i.prototype.on=i.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks[e]=this._callbacks[e]||[]).push(t),this},i.prototype.once=function(e,t){function i(){o.off(e,i),t.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=t,this.on(e,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[e];if(!i)return this;if(1==arguments.length)return delete this._callbacks[e],this;for(var o,n=0;n=0;i--){var a=s[i];a.nodes||(a.nodes=[]),a.nodes.indexOf(n)===-1&&a.nodes.push(n)}t.attr&&(n.attr=h(n.attr,t.attr))}function c(e,t){if(e.edges||(e.edges=[]),e.edges.push(t),e.edge){var i=h({},e.edge);t.attr=h(i,t.attr)}}function f(e,t,i,o,n){var s={from:t,to:i,type:o};return e.edge&&(s.attr=h({},e.edge)),s.attr=h(s.attr||{},n),s}function p(){for(j=I.NULL,R="";" "===A||"\t"===A||"\n"===A||"\r"===A;)r();do{var e=!1;if("#"===A){for(var t=z-1;" "===B.charAt(t)||"\t"===B.charAt(t);)t--;if("\n"===B.charAt(t)||""===B.charAt(t)){for(;""!=A&&"\n"!=A;)r();e=!0}}if("/"===A&&"/"===a()){for(;""!=A&&"\n"!=A;)r();e=!0}if("/"===A&&"*"===a()){for(;""!=A;){if("*"===A&&"/"===a()){r(),r();break}r()}e=!0}for(;" "===A||"\t"===A||"\n"===A||"\r"===A;)r()}while(e);if(""===A)return void(j=I.DELIMITER);var i=A+a();if(N[i])return j=I.DELIMITER,R=i,r(),void r();if(N[A])return j=I.DELIMITER,R=A,void r();if(d(A)||"-"===A){for(R+=A,r();d(A);)R+=A,r();return"false"===R?R=!1:"true"===R?R=!0:isNaN(Number(R))||(R=Number(R)),void(j=I.IDENTIFIER)}if('"'===A){for(r();""!=A&&('"'!=A||'"'===A&&'"'===a());)'"'===A?(R+=A,r()):"\\"===A&&"n"===a()?(R+="\n",r()):R+=A,r();if('"'!=A)throw x('End of string " expected');return r(),void(j=I.IDENTIFIER)}for(j=I.UNKNOWN;""!=A;)R+=A,r();throw new SyntaxError('Syntax error in part "'+O(R,30)+'"')}function v(){var e={};if(s(),p(),"strict"===R&&(e.strict=!0,p()),"graph"!==R&&"digraph"!==R||(e.type=R,p()),j===I.IDENTIFIER&&(e.id=R,p()),"{"!=R)throw x("Angle bracket { expected");if(p(),g(e),"}"!=R)throw x("Angle bracket } expected");if(p(),""!==R)throw x("End of file expected");return p(),delete e.node,delete e.edge,delete e.graph,e}function g(e){for(;""!==R&&"}"!=R;)y(e),";"===R&&p()}function y(e){var t=m(e);if(t)return void w(e,t);var i=b(e);if(!i){if(j!=I.IDENTIFIER)throw x("Identifier expected");var o=R;if(p(),"="===R){if(p(),j!=I.IDENTIFIER)throw x("Identifier expected");e[o]=R,p()}else _(e,o)}}function m(e){var t=null;if("subgraph"===R&&(t={},t.type="subgraph",p(),j===I.IDENTIFIER&&(t.id=R,p())),"{"===R){if(p(),t||(t={}),t.parent=e,t.node=e.node,t.edge=e.edge,t.graph=e.graph,g(t),"}"!=R)throw x("Angle bracket } expected");p(),delete t.node,delete t.edge,delete t.graph,delete t.parent,e.subgraphs||(e.subgraphs=[]),e.subgraphs.push(t)}return t}function b(e){return"node"===R?(p(),e.node=k(),"node"):"edge"===R?(p(),e.edge=k(),"edge"):"graph"===R?(p(),e.graph=k(),"graph"):null}function _(e,t){var i={id:t},o=k();o&&(i.attr=o),u(e,i),w(e,t)}function w(e,t){for(;"->"===R||"--"===R;){var i,o=R;p();var n=m(e);if(n)i=n;else{if(j!=I.IDENTIFIER)throw x("Identifier or subgraph expected");i=R,u(e,{id:i}),p()}var s=k(),r=f(e,t,i,o,s);c(e,r),t=i}}function k(){for(var e=null;"["===R;){for(p(),e={};""!==R&&"]"!=R;){if(j!=I.IDENTIFIER)throw x("Attribute name expected");var t=R;if(p(),"="!=R)throw x("Equal sign = expected");if(p(),j!=I.IDENTIFIER)throw x("Attribute value expected");var i=R;l(e,t,i),p(),","==R&&p()}if("]"!=R)throw x("Bracket ] expected");p()}return e}function x(e){return new SyntaxError(e+', got "'+O(R,30)+'" (char '+z+")")}function O(e,t){return e.length<=t?e:e.substr(0,27)+"..."}function M(e,t,i){Array.isArray(e)?e.forEach(function(e){Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}):Array.isArray(t)?t.forEach(function(t){i(e,t)}):i(e,t)}function E(e,t,i){for(var o=t.split("."),n=o.pop(),s=e,r=0;r":!0,"--":!0},B="",z=0,A="",R="",j=I.NULL,H=/[a-zA-Z_0-9.:#]/;t.parseDOT=n,t.DOTToGraph=D},function(e,t){function i(e,t){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==t&&(void 0!==t.fixed&&(n.nodes.fixed=t.fixed),void 0!==t.parseColor&&(n.nodes.parseColor=t.parseColor),void 0!==t.inheritColor&&(n.edges.inheritColor=t.inheritColor));for(var s=e.edges,r=e.nodes,a=0;a0?h._handlers[e]=o:(i.off(e,s),delete h._handlers[e]))}),h},h.emit=function(t,o){e=o.target,i.emit(t,o)},h.destroy=function(){var e=i.element.hammer,t=e.indexOf(h);t!==-1&&e.splice(t,1),e.length||delete i.element.hammer,h._handlers={},i.destroy()},h}})},function(e,t,i){var o;/*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ * * Copyright (c) 2016 Jorik Tangelder; diff --git a/dist/vis-timeline-graph2d.min.js b/dist/vis-timeline-graph2d.min.js index 9c4d578c8..652d8fdea 100644 --- a/dist/vis-timeline-graph2d.min.js +++ b/dist/vis-timeline-graph2d.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.20.1 - * @date 2017-07-02 + * @version 4.20.1a + * @date 2017-08-14 * * @license * Copyright (C) 2011-2017 Almende B.V, http://almende.com @@ -22,19 +22,19 @@ * * Vis.js may be distributed under either license. */ -"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={exports:{},id:o,loaded:!1};return t[o].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(87),e.DataSet=i(88),e.DataView=i(92),e.Queue=i(91),e.Timeline=i(93),e.Graph2d=i(129),e.timeline={Core:i(102),DateUtil:i(101),Range:i(98),stack:i(106),TimeStep:i(104),components:{items:{Item:i(108),BackgroundItem:i(112),BoxItem:i(110),PointItem:i(111),RangeItem:i(107)},BackgroundGroup:i(109),Component:i(100),CurrentTime:i(124),CustomTime:i(122),DataAxis:i(131),DataScale:i(132),GraphGroup:i(133),Group:i(105),ItemSet:i(103),Legend:i(137),LineGraph:i(130),TimeAxis:i(119)}},e.moment=i(82),e.Hammer=i(95),e.keycharm=i(121)},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}var n=i(2),s=o(n),r=i(55),a=o(r),h=i(58),d=o(h),l=i(62),u=o(l),p=i(82),c=i(86);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;t.hasChildNodes()===!0;)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,o){if(e==t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var i=f.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return c.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!==(0,u.default)(t[i])&&(t[i]=e)},e.fillIfDefined=function(t,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var n in t)void 0!==i[n]&&("object"!==(0,u.default)(i[n])?void 0!==i[n]&&null!==i[n]||void 0===t[n]||o!==!0?t[n]=i[n]:delete t[n]:"object"===(0,u.default)(t[n])&&e.fillIfDefined(t[n],i[n],o))},e.protoExtend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&t.indexOf(s)==-1)if(o[s]&&o[s].constructor===Object)void 0===i[s]&&(i[s]={}),i[s].constructor===Object?e.deepExtend(i[s],o[s]):null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];else if(Array.isArray(o[s])){i[s]=[];for(var r=0;r=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(t.indexOf("rgba")!=-1)return t;if(t.indexOf("rgb")!=-1){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var m={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,d.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=m.split(t.style.cssText),n=m.split(i),s=e.extend(o,n);t.style.cssText=m.join(s)},e.removeCssText=function(t,e){var i=m.split(t.style.cssText),o=m.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=m.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==("undefined"==typeof i?"undefined":(0,u.default)(i))){for(var o=(0,a.default)(i),n=0;n0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=(arguments.length>3&&void 0!==arguments[3]&&arguments[3],arguments.length>4&&void 0!==arguments[4]?arguments[4]:{});if(null===e[i])t[i]=(0,a.default)(o[i]);else if(void 0!==e[i])if("boolean"==typeof e[i])t[i].enabled=e[i];else{void 0===e[i].enabled&&(t[i].enabled=!0);for(var n in e[i])e[i].hasOwnProperty(n)&&(t[i][n]=e[i][n])}},e.binarySearchCustom=function(t,e,i,o){for(var n=1e4,s=0,r=0,a=t.length-1;r<=a&&s0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?u=h+1:p=h-1,l++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,r=void 0;try{for(var a,h=(0,s.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;l=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports={}},function(t,e,i){var o=i(10),n=i(12);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(11);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==o(t)?t.split(""):Object(t)}},function(t,e){var i={}.toString;t.exports=function(t){return i.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,i){var o=i(14),n=i(15),s=i(30),r=i(20),a=i(31),h=i(8),d=i(32),l=i(46),u=i(48),p=i(47)("iterator"),c=!([].keys&&"next"in[].keys()),f="@@iterator",m="keys",g="values",v=function(){return this};t.exports=function(t,e,i,y,b,_,w){d(i,e,y);var x,D,S,k=function(t){if(!c&&t in O)return O[t];switch(t){case m:return function(){return new i(this,t)};case g:return function(){return new i(this,t)}}return function(){return new i(this,t)}},T=e+" Iterator",C=b==g,M=!1,O=t.prototype,E=O[p]||O[f]||b&&O[b],P=E||k(b),N=b?C?k("entries"):P:void 0,A="Array"==e?O.entries||E:E;if(A&&(S=u(A.call(new t)),S!==Object.prototype&&(l(S,T,!0),o||a(S,p)||r(S,p,v))),C&&E&&E.name!==g&&(M=!0,P=function(){return E.call(this)}),o&&!w||!c&&!M&&O[p]||r(O,p,P),h[e]=P,h[T]=v,b)if(x={values:C?P:k(g),keys:_?P:k(m),entries:N},w)for(D in x)D in O||s(O,D,x[D]);else n(n.P+n.F*(c||M),e,x);return x}},function(t,e){t.exports=!0},function(t,e,i){var o=i(16),n=i(17),s=i(18),r=i(20),a="prototype",h=function(t,e,i){var d,l,u,p=t&h.F,c=t&h.G,f=t&h.S,m=t&h.P,g=t&h.B,v=t&h.W,y=c?n:n[e]||(n[e]={}),b=y[a],_=c?o:f?o[e]:(o[e]||{})[a];c&&(i=e);for(d in i)l=!p&&_&&void 0!==_[d],l&&d in y||(u=l?_[d]:i[d],y[d]=c&&"function"!=typeof _[d]?i[d]:g&&l?s(u,o):v&&_[d]==u?function(t){var e=function(e,i,o){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,i)}return new t(e,i,o)}return t.apply(this,arguments)};return e[a]=t[a],e}(u):m&&"function"==typeof u?s(Function.call,u):u,m&&((y.virtual||(y.virtual={}))[d]=u,t&h.R&&b&&!b[d]&&r(b,d,u)))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,h.U=64,h.R=128,t.exports=h},function(t,e){var i=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(t,e){var i=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=i)},function(t,e,i){var o=i(19);t.exports=function(t,e,i){if(o(t),void 0===e)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 2:return function(i,o){return t.call(e,i,o)};case 3:return function(i,o,n){return t.call(e,i,o,n)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(21),n=i(29);t.exports=i(25)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var o=i(22),n=i(24),s=i(28),r=Object.defineProperty;e.f=i(25)?Object.defineProperty:function(t,e,i){if(o(t),e=s(e,!0),o(i),n)try{return r(t,e,i)}catch(t){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(t[e]=i.value),t}},function(t,e,i){var o=i(23);t.exports=function(t){if(!o(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,i){t.exports=!i(25)&&!i(26)(function(){return 7!=Object.defineProperty(i(27)("div"),"a",{get:function(){return 7}}).a})},function(t,e,i){t.exports=!i(26)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,i){var o=i(23),n=i(16).document,s=o(n)&&o(n.createElement);t.exports=function(t){return s?n.createElement(t):{}}},function(t,e,i){var o=i(23);t.exports=function(t,e){if(!o(t))return t;var i,n;if(e&&"function"==typeof(i=t.toString)&&!o(n=i.call(t)))return n;if("function"==typeof(i=t.valueOf)&&!o(n=i.call(t)))return n;if(!e&&"function"==typeof(i=t.toString)&&!o(n=i.call(t)))return n;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,i){t.exports=i(20)},function(t,e){var i={}.hasOwnProperty;t.exports=function(t,e){return i.call(t,e)}},function(t,e,i){var o=i(33),n=i(29),s=i(46),r={};i(20)(r,i(47)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(22),n=i(34),s=i(44),r=i(41)("IE_PROTO"),a=function(){},h="prototype",d=function(){var t,e=i(27)("iframe"),o=s.length,n="<",r=">";for(e.style.display="none",i(45).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(n+"script"+r+"document.F=Object"+n+"/script"+r),t.close(),d=t.F;o--;)delete d[h][s[o]];return d()};t.exports=Object.create||function(t,e){var i;return null!==t?(a[h]=o(t),i=new a,a[h]=null,i[r]=t):i=d(),void 0===e?i:n(i,e)}},function(t,e,i){var o=i(21),n=i(22),s=i(35);t.exports=i(25)?Object.defineProperties:function(t,e){n(t);for(var i,r=s(e),a=r.length,h=0;a>h;)o.f(t,i=r[h++],e[i]);return t}},function(t,e,i){var o=i(36),n=i(44);t.exports=Object.keys||function(t){return o(t,n)}},function(t,e,i){var o=i(31),n=i(9),s=i(37)(!1),r=i(41)("IE_PROTO");t.exports=function(t,e){var i,a=n(t),h=0,d=[];for(i in a)i!=r&&o(a,i)&&d.push(i);for(;e.length>h;)o(a,i=e[h++])&&(~s(d,i)||d.push(i));return d}},function(t,e,i){var o=i(9),n=i(38),s=i(40);t.exports=function(t){return function(e,i,r){var a,h=o(e),d=n(h.length),l=s(r,d);if(t&&i!=i){for(;d>l;)if(a=h[l++],a!=a)return!0}else for(;d>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}}},function(t,e,i){var o=i(39),n=Math.min;t.exports=function(t){return t>0?n(o(t),9007199254740991):0}},function(t,e){var i=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:i)(t)}},function(t,e,i){var o=i(39),n=Math.max,s=Math.min;t.exports=function(t,e){return t=o(t),t<0?n(t+e,0):s(t,e)}},function(t,e,i){var o=i(42)("keys"),n=i(43);t.exports=function(t){return o[t]||(o[t]=n(t))}},function(t,e,i){var o=i(16),n="__core-js_shared__",s=o[n]||(o[n]={});t.exports=function(t){return s[t]||(s[t]={})}},function(t,e){var i=0,o=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++i+o).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){t.exports=i(16).document&&document.documentElement},function(t,e,i){var o=i(21).f,n=i(31),s=i(47)("toStringTag");t.exports=function(t,e,i){t&&!n(t=i?t:t.prototype,s)&&o(t,s,{configurable:!0,value:e})}},function(t,e,i){var o=i(42)("wks"),n=i(43),s=i(16).Symbol,r="function"==typeof s,a=t.exports=function(t){return o[t]||(o[t]=r&&s[t]||(r?s:n)("Symbol."+t))};a.store=o},function(t,e,i){var o=i(31),n=i(49),s=i(41)("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=n(t),o(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},function(t,e,i){var o=i(12);t.exports=function(t){return Object(o(t))}},function(t,e,i){var o=i(51)(!0);i(13)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=o(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e,i){var o=i(39),n=i(12);t.exports=function(t){return function(e,i){var s,r,a=String(n(e)),h=o(i),d=a.length;return h<0||h>=d?t?"":void 0:(s=a.charCodeAt(h),s<55296||s>56319||h+1===d||(r=a.charCodeAt(h+1))<56320||r>57343?t?a.charAt(h):s:t?a.slice(h,h+2):(s-55296<<10)+(r-56320)+65536)}}},function(t,e,i){var o=i(22),n=i(53);t.exports=i(17).getIterator=function(t){var e=n(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return o(e.call(t))}},function(t,e,i){var o=i(54),n=i(47)("iterator"),s=i(8);t.exports=i(17).getIteratorMethod=function(t){if(void 0!=t)return t[n]||t["@@iterator"]||s[o(t)]}},function(t,e,i){var o=i(11),n=i(47)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=r(e=Object(t),n))?i:s?o(e):"Object"==(a=o(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,i){t.exports={default:i(56),__esModule:!0}},function(t,e,i){i(57);var o=i(17).Object;t.exports=function(t,e){return o.create(t,e)}},function(t,e,i){var o=i(15);o(o.S,"Object",{create:i(33)})},function(t,e,i){t.exports={default:i(59),__esModule:!0}},function(t,e,i){i(60),t.exports=i(17).Object.keys},function(t,e,i){var o=i(49),n=i(35);i(61)("keys",function(){return function(t){return n(o(t))}})},function(t,e,i){var o=i(15),n=i(17),s=i(26);t.exports=function(t,e){var i=(n.Object||{})[t]||Object[t],r={};r[t]=e(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var n=i(63),s=o(n),r=i(66),a=o(r),h="function"==typeof a.default&&"symbol"==typeof s.default?function(t){return typeof t}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":typeof t};e.default="function"==typeof a.default&&"symbol"===h(s.default)?function(t){return"undefined"==typeof t?"undefined":h(t)}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":"undefined"==typeof t?"undefined":h(t)}},function(t,e,i){t.exports={default:i(64),__esModule:!0}},function(t,e,i){i(50),i(4),t.exports=i(65).f("iterator")},function(t,e,i){e.f=i(47)},function(t,e,i){t.exports={default:i(67),__esModule:!0}},function(t,e,i){i(68),i(79),i(80),i(81),t.exports=i(17).Symbol},function(t,e,i){var o=i(16),n=i(31),s=i(25),r=i(15),a=i(30),h=i(69).KEY,d=i(26),l=i(42),u=i(46),p=i(43),c=i(47),f=i(65),m=i(70),g=i(71),v=i(72),y=i(75),b=i(22),_=i(9),w=i(28),x=i(29),D=i(33),S=i(76),k=i(78),T=i(21),C=i(35),M=k.f,O=T.f,E=S.f,P=o.Symbol,N=o.JSON,A=N&&N.stringify,I="prototype",R=c("_hidden"),L=c("toPrimitive"),F={}.propertyIsEnumerable,H=l("symbol-registry"),Y=l("symbols"),j=l("op-symbols"),G=Object[I],z="function"==typeof P,W=o.QObject,U=!W||!W[I]||!W[I].findChild,V=s&&d(function(){return 7!=D(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(t,e,i){var o=M(G,e);o&&delete G[e],O(t,e,i),o&&t!==G&&O(G,e,o)}:O,B=function(t){var e=Y[t]=D(P[I]);return e._k=t,e},q=z&&"symbol"==typeof P.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof P},X=function(t,e,i){return t===G&&X(j,e,i),b(t),e=w(e,!0),b(i),n(Y,e)?(i.enumerable?(n(t,R)&&t[R][e]&&(t[R][e]=!1),i=D(i,{enumerable:x(0,!1)})):(n(t,R)||O(t,R,x(1,{})),t[R][e]=!0),V(t,e,i)):O(t,e,i)},Z=function(t,e){b(t);for(var i,o=v(e=_(e)),n=0,s=o.length;s>n;)X(t,i=o[n++],e[i]);return t},K=function(t,e){return void 0===e?D(t):Z(D(t),e)},$=function(t){var e=F.call(this,t=w(t,!0));return!(this===G&&n(Y,t)&&!n(j,t))&&(!(e||!n(this,t)||!n(Y,t)||n(this,R)&&this[R][t])||e)},J=function(t,e){if(t=_(t),e=w(e,!0),t!==G||!n(Y,e)||n(j,e)){var i=M(t,e);return!i||!n(Y,e)||n(t,R)&&t[R][e]||(i.enumerable=!0),i}},Q=function(t){for(var e,i=E(_(t)),o=[],s=0;i.length>s;)n(Y,e=i[s++])||e==R||e==h||o.push(e);return o},tt=function(t){for(var e,i=t===G,o=E(i?j:_(t)),s=[],r=0;o.length>r;)!n(Y,e=o[r++])||i&&!n(G,e)||s.push(Y[e]);return s};z||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(i){this===G&&e.call(j,i),n(this,R)&&n(this[R],t)&&(this[R][t]=!1),V(this,t,x(1,i))};return s&&U&&V(G,t,{configurable:!0,set:e}),B(t)},a(P[I],"toString",function(){return this._k}),k.f=J,T.f=X,i(77).f=S.f=Q,i(74).f=$,i(73).f=tt,s&&!i(14)&&a(G,"propertyIsEnumerable",$,!0),f.f=function(t){return B(c(t))}),r(r.G+r.W+r.F*!z,{Symbol:P});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),it=0;et.length>it;)c(et[it++]);for(var et=C(c.store),it=0;et.length>it;)m(et[it++]);r(r.S+r.F*!z,"Symbol",{for:function(t){return n(H,t+="")?H[t]:H[t]=P(t)},keyFor:function(t){if(q(t))return g(H,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){U=!0},useSimple:function(){U=!1}}),r(r.S+r.F*!z,"Object",{create:K,defineProperty:X,defineProperties:Z,getOwnPropertyDescriptor:J,getOwnPropertyNames:Q,getOwnPropertySymbols:tt}),N&&r(r.S+r.F*(!z||d(function(){var t=P();return"[null]"!=A([t])||"{}"!=A({a:t})||"{}"!=A(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!q(t)){for(var e,i,o=[t],n=1;arguments.length>n;)o.push(arguments[n++]);return e=o[1],"function"==typeof e&&(i=e),!i&&y(e)||(e=function(t,e){if(i&&(e=i.call(this,t,e)),!q(e))return e}),o[1]=e,A.apply(N,o)}}}),P[I][L]||i(20)(P[I],L,P[I].valueOf),u(P,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(t,e,i){var o=i(43)("meta"),n=i(23),s=i(31),r=i(21).f,a=0,h=Object.isExtensible||function(){return!0},d=!i(26)(function(){return h(Object.preventExtensions({}))}),l=function(t){r(t,o,{value:{i:"O"+ ++a,w:{}}})},u=function(t,e){if(!n(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,o)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[o].i},p=function(t,e){if(!s(t,o)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[o].w},c=function(t){return d&&f.NEED&&h(t)&&!s(t,o)&&l(t),t},f=t.exports={KEY:o,NEED:!1,fastKey:u,getWeak:p,onFreeze:c}},function(t,e,i){var o=i(16),n=i(17),s=i(14),r=i(65),a=i(21).f;t.exports=function(t){var e=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:r.f(t)})}},function(t,e,i){var o=i(35),n=i(9);t.exports=function(t,e){for(var i,s=n(t),r=o(s),a=r.length,h=0;a>h;)if(s[i=r[h++]]===e)return i}},function(t,e,i){var o=i(35),n=i(73),s=i(74);t.exports=function(t){var e=o(t),i=n.f;if(i)for(var r,a=i(t),h=s.f,d=0;a.length>d;)h.call(t,r=a[d++])&&e.push(r);return e}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,i){var o=i(11);t.exports=Array.isArray||function(t){return"Array"==o(t)}},function(t,e,i){var o=i(9),n=i(77).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return n(t)}catch(t){return r.slice()}};t.exports.f=function(t){return r&&"[object Window]"==s.call(t)?a(t):n(o(t))}},function(t,e,i){var o=i(36),n=i(44).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,n)}},function(t,e,i){var o=i(74),n=i(29),s=i(9),r=i(28),a=i(31),h=i(24),d=Object.getOwnPropertyDescriptor;e.f=i(25)?d:function(t,e){if(t=s(t),e=r(e,!0),h)try{return d(t,e)}catch(t){}if(a(t,e))return n(!o.f.call(t,e),t[e])}},function(t,e){},function(t,e,i){i(70)("asyncIterator")},function(t,e,i){i(70)("observable")},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(83)},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return _o.apply(null,arguments)}function i(t){_o=t}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function n(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function s(t){var e;for(e in t)return!1;return!0}function r(t){return void 0===t}function a(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function h(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function d(t,e){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return T(i)?i(e):i.replace(/%s/i,e)}function L(t,e){var i=t.toLowerCase();Ro[i]=Ro[i+"s"]=Ro[e]=t}function F(t){return"string"==typeof t?Ro[t]||Ro[t.toLowerCase()]:void 0}function H(t){var e,i,o={};for(i in t)l(t,i)&&(e=F(i),e&&(o[e]=t[i]));return o}function Y(t,e){Lo[t]=e}function j(t){var e=[];for(var i in t)e.push({unit:i,priority:Lo[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function G(t,i){return function(o){return null!=o?(W(this,t,o),e.updateOffset(this,i),this):z(this,t)}}function z(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function W(t,e,i){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](i)}function U(t){return t=F(t),T(this[t])?this[t]():this}function V(t,e){if("object"==typeof t){t=H(t);for(var i=j(t),o=0;o=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function q(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(jo[t]=n),e&&(jo[e[0]]=function(){return B(n.apply(this,arguments),e[1],e[2])}),i&&(jo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function X(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function Z(t){var e,i,o=t.match(Fo);for(e=0,i=o.length;e=0&&Ho.test(t);)t=t.replace(Ho,i),Ho.lastIndex=0,o-=1;return t}function J(t,e,i){sn[t]=T(e)?e:function(t,o){return t&&i?i:e}}function Q(t,e){return l(sn,t)?sn[t](e._strict,e._locale):new RegExp(tt(t))}function tt(t){return et(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function et(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function it(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),a(e)&&(o=function(t,i){i[e]=w(t)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function wt(t,e,i){var o=7+e-i,n=(7+_t(t,0,o).getUTCDay()-e)%7;return-n+o-1}function xt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return d<=0?(s=t-1,r=gt(s)+d):d>gt(t)?(s=t+1,r=d-gt(t)):(s=t,r=d),{year:s,dayOfYear:r}}function Dt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?(n=t.year()-1,o=r+St(n,e,i)):r>St(t.year(),e,i)?(o=r-St(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function St(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(gt(t)-o+n)/7}function kt(t){return Dt(t,this._week.dow,this._week.doy).week}function Tt(){return this._week.dow}function Ct(){return this._week.doy}function Mt(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ot(t){var e=Dt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Et(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Nt(t,e){return t?o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone}function At(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function It(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Rt(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=p([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=gn.call(this._weekdaysParse,r),n!==-1?n:null):"ddd"===e?(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:null):(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null):"dddd"===e?(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null))):"ddd"===e?(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null))):(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:null)))}function Lt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return Rt.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=p([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function Ft(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Et(t,this.localeData()),this.add(t-e,"d")):e}function Ht(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Yt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function jt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Cn),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Gt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Mn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function zt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=On),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Wt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=p([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=et(a[e]),h[e]=et(h[e]),d[e]=et(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Ut(){return this.hours()%12||12}function Vt(){return this.hours()||24}function Bt(t,e){q(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qt(t,e){return e._meridiemParse}function Xt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Zt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Kt(t){return t?t.toLowerCase().replace("_","-"):t}function $t(t){for(var e,i,o,n,s=0;s0;){if(o=Jt(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&x(n,i,!0)>=e-1)break;e--}s++}return null}function Jt(e){var i=null;if(!In[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=En._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Qt(i)}catch(t){}return In[e]}function Qt(t,e){var i;return t&&(i=r(e)?ie(t):te(t,e),i&&(En=i)),En._abbr}function te(t,e){if(null!==e){var i=An;if(e.abbr=t,null!=In[t])k("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=In[t]._config;else if(null!=e.parentLocale){if(null==In[e.parentLocale])return Rn[e.parentLocale]||(Rn[e.parentLocale]=[]),Rn[e.parentLocale].push({name:t,config:e}),null;i=In[e.parentLocale]._config}return In[t]=new O(M(i,e)),Rn[t]&&Rn[t].forEach(function(t){te(t.name,t.config)}),Qt(t),In[t]}return delete In[t],null}function ee(t,e){if(null!=e){var i,o=An;null!=In[t]&&(o=In[t]._config),e=M(o,e),i=new O(e),i.parentLocale=In[t],In[t]=i,Qt(t)}else null!=In[t]&&(null!=In[t].parentLocale?In[t]=In[t].parentLocale:null!=In[t]&&delete In[t]);return In[t]}function ie(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return En;if(!o(t)){if(e=Jt(t))return e;t=[t]}return $t(t)}function oe(){return Mo(In)}function ne(t){var e,i=t._a;return i&&f(t).overflow===-2&&(e=i[hn]<0||i[hn]>11?hn:i[dn]<1||i[dn]>st(i[an],i[hn])?dn:i[ln]<0||i[ln]>24||24===i[ln]&&(0!==i[un]||0!==i[pn]||0!==i[cn])?ln:i[un]<0||i[un]>59?un:i[pn]<0||i[pn]>59?pn:i[cn]<0||i[cn]>999?cn:-1,f(t)._overflowDayOfYear&&(edn)&&(e=dn),f(t)._overflowWeeks&&e===-1&&(e=fn),f(t)._overflowWeekday&&e===-1&&(e=mn),f(t).overflow=e),t}function se(t){var e,i,o,n,s,r,a=t._i,h=Ln.exec(a)||Fn.exec(a);if(h){for(f(t).iso=!0,e=0,i=Yn.length;e10?"YYYY ":"YY "),s="HH:mm"+(i[4]?":ss":""),i[1]){var u=new Date(i[2]),p=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][u.getDay()];if(i[1].substr(0,3)!==p)return f(t).weekdayMismatch=!0,void(t._isValid=!1)}switch(i[5].length){case 2:0===h?a=" +0000":(h=l.indexOf(i[5][1].toUpperCase())-12,a=(h<0?" -":" +")+(""+h).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:a=d[i[5]];break;default:a=d[" GMT"]}i[5]=a,t._i=i.splice(1).join(""),r=" ZZ",t._f=o+n+s+r,pe(t),f(t).rfc2822=!0}else t._isValid=!1}function ae(t){var i=Gn.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(se(t),void(t._isValid===!1&&(delete t._isValid,re(t),t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t)))))}function he(t,e,i){return null!=t?t:null!=e?e:i}function de(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function le(t){var e,i,o,n,s=[];if(!t._d){for(o=de(t),t._w&&null==t._a[dn]&&null==t._a[hn]&&ue(t),null!=t._dayOfYear&&(n=he(t._a[an],o[an]),(t._dayOfYear>gt(n)||0===t._dayOfYear)&&(f(t)._overflowDayOfYear=!0),i=_t(n,0,t._dayOfYear),t._a[hn]=i.getUTCMonth(),t._a[dn]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[ln]&&0===t._a[un]&&0===t._a[pn]&&0===t._a[cn]&&(t._nextDay=!0,t._a[ln]=0),t._d=(t._useUTC?_t:bt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[ln]=24)}}function ue(t){var e,i,o,n,s,r,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,r=4,i=he(e.GG,t._a[an],Dt(_e(),1,4).year),o=he(e.W,1),n=he(e.E,1),(n<1||n>7)&&(h=!0);else{s=t._locale._week.dow,r=t._locale._week.doy;var d=Dt(_e(),s,r);i=he(e.gg,t._a[an],d.year),o=he(e.w,d.week),null!=e.d?(n=e.d,(n<0||n>6)&&(h=!0)):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s}o<1||o>St(i,s,r)?f(t)._overflowWeeks=!0:null!=h?f(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[an]=a.year,t._dayOfYear=a.dayOfYear)}function pe(t){if(t._f===e.ISO_8601)return void se(t);if(t._f===e.RFC_2822)return void re(t);t._a=[],f(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=$(t._f,t._locale).match(Fo)||[],i=0;i0&&f(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),jo[s]?(o?f(t).empty=!1:f(t).unusedTokens.push(s),nt(s,o,t)):t._strict&&!o&&f(t).unusedTokens.push(s);f(t).charsLeftOver=h-d,a.length>0&&f(t).unusedInput.push(a),t._a[ln]<=12&&f(t).bigHour===!0&&t._a[ln]>0&&(f(t).bigHour=void 0),f(t).parsedDateParts=t._a.slice(0),f(t).meridiem=t._meridiem,t._a[ln]=ce(t._locale,t._a[ln],t._meridiem),le(t),ne(t)}function ce(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function fe(t){var e,i,o,n,s;if(0===t._f.length)return f(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ge(){if(!r(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=ve(t),t._a){var e=t._isUTC?p(t._a):_e(t._a);this._isDSTShifted=this.isValid()&&x(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function ze(){return!!this.isValid()&&!this._isUTC}function We(){return!!this.isValid()&&this._isUTC}function Ue(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ve(t,e){var i,o,n,s=t,r=null;return Me(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:a(t)?(s={},e?s[e]=t:s.milliseconds=t):(r=Xn.exec(t))?(i="-"===r[1]?-1:1,s={y:0,d:w(r[dn])*i,h:w(r[ln])*i,m:w(r[un])*i,s:w(r[pn])*i,ms:w(Oe(1e3*r[cn]))*i}):(r=Zn.exec(t))?(i="-"===r[1]?-1:1,s={y:Be(r[2],i),M:Be(r[3],i),w:Be(r[4],i),d:Be(r[5],i),h:Be(r[6],i),m:Be(r[7],i),s:Be(r[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Xe(_e(s.from),_e(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ce(s),Me(t)&&l(t,"_locale")&&(o._locale=t._locale),o}function Be(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function qe(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Xe(t,e){var i;return t.isValid()&&e.isValid()?(e=Ne(e,t),t.isBefore(e)?i=qe(t,e):(i=qe(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function Ze(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(k(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Ve(i,o),Ke(this,n,t),this}}function Ke(t,i,o,n){var s=i._milliseconds,r=Oe(i._days),a=Oe(i._months);t.isValid()&&(n=null==n||n,s&&t._d.setTime(t._d.valueOf()+s*o),r&&W(t,"Date",z(t,"Date")+r*o),a&<(t,z(t,"Month")+a*o),n&&e.updateOffset(t,r||a))}function $e(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function Je(t,i){var o=t||_e(),n=Ne(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(T(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,_e(o)))}function Qe(){return new y(this)}function ti(t,e){var i=b(t)?t:_e(t);return!(!this.isValid()||!i.isValid())&&(e=F(r(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()9999?K(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):T(Date.prototype.toISOString)?this.toDate().toISOString():K(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function li(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",s=e+'[")]';return this.format(i+o+n+s)}function ui(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=K(this,t);return this.localeData().postformat(i)}function pi(t,e){return this.isValid()&&(b(t)&&t.isValid()||_e(t).isValid())?Ve({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function ci(t){return this.from(_e(),t)}function fi(t,e){return this.isValid()&&(b(t)&&t.isValid()||_e(t).isValid())?Ve({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function mi(t){return this.to(_e(),t)}function gi(t){var e;return void 0===t?this._locale._abbr:(e=ie(t),null!=e&&(this._locale=e),this)}function vi(){return this._locale}function yi(t){switch(t=F(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function bi(t){return t=F(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function _i(){return this._d.valueOf()-6e4*(this._offset||0)}function wi(){return Math.floor(this.valueOf()/1e3)}function xi(){return new Date(this.valueOf())}function Di(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Si(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function ki(){return this.isValid()?this.toISOString():null}function Ti(){return m(this)}function Ci(){return u({},f(this))}function Mi(){return f(this).overflow}function Oi(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ei(t,e){q(0,[t,t.length],0,e)}function Pi(t){return Ri.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Ni(t){return Ri.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Ai(){return St(this.year(),1,4)}function Ii(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function Ri(t,e,i,o,n){var s;return null==t?Dt(this,o,n).year:(s=St(t,o,n),e>s&&(e=s),Li.call(this,t,e,i,o,n))}function Li(t,e,i,o,n){var s=xt(t,e,i,o,n),r=_t(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Fi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Hi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function Yi(t,e){e[cn]=w(1e3*("0."+t))}function ji(){return this._isUTC?"UTC":""}function Gi(){return this._isUTC?"Coordinated Universal Time":""}function zi(t){return _e(1e3*t)}function Wi(){return _e.apply(null,arguments).parseZone()}function Ui(t){return t}function Vi(t,e,i,o){var n=ie(),s=p().set(o,e);return n[i](s,t)}function Bi(t,e,i){if(a(t)&&(e=t,t=void 0),t=t||"",null!=e)return Vi(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Vi(t,o,i,"month");return n; -}function qi(t,e,i,o){"boolean"==typeof t?(a(e)&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,a(e)&&(i=e,e=void 0),e=e||"");var n=ie(),s=t?n._week.dow:0;if(null!=i)return Vi(e,(i+s)%7,o,"day");var r,h=[];for(r=0;r<7;r++)h[r]=Vi(e,(r+s)%7,o,"day");return h}function Xi(t,e){return Bi(t,e,"months")}function Zi(t,e){return Bi(t,e,"monthsShort")}function Ki(t,e,i){return qi(t,e,i,"weekdays")}function $i(t,e,i){return qi(t,e,i,"weekdaysShort")}function Ji(t,e,i){return qi(t,e,i,"weekdaysMin")}function Qi(){var t=this._data;return this._milliseconds=rs(this._milliseconds),this._days=rs(this._days),this._months=rs(this._months),t.milliseconds=rs(t.milliseconds),t.seconds=rs(t.seconds),t.minutes=rs(t.minutes),t.hours=rs(t.hours),t.months=rs(t.months),t.years=rs(t.years),this}function to(t,e,i,o){var n=Ve(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function eo(t,e){return to(this,t,e,1)}function io(t,e){return to(this,t,e,-1)}function oo(t){return t<0?Math.floor(t):Math.ceil(t)}function no(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*oo(ro(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=_(s/1e3),h.seconds=t%60,e=_(t/60),h.minutes=e%60,i=_(e/60),h.hours=i%24,r+=_(i/24),n=_(so(r)),a+=n,r-=oo(ro(n)),o=_(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function so(t){return 4800*t/146097}function ro(t){return 146097*t/4800}function ao(t){if(!this.isValid())return NaN;var e,i,o=this._milliseconds;if(t=F(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+so(e),"month"===t?i:i/12;switch(e=this._days+Math.round(ro(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function ho(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN}function lo(t){return function(){return this.as(t)}}function uo(t){return t=F(t),this.isValid()?this[t+"s"]():NaN}function po(t){return function(){return this.isValid()?this._data[t]:NaN}}function co(){return _(this.days()/7)}function fo(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function mo(t,e,i){var o=Ve(t).abs(),n=xs(o.as("s")),s=xs(o.as("m")),r=xs(o.as("h")),a=xs(o.as("d")),h=xs(o.as("M")),d=xs(o.as("y")),l=n<=Ds.ss&&["s",n]||n0,l[4]=i,fo.apply(null,l)}function go(t){return void 0===t?xs:"function"==typeof t&&(xs=t,!0)}function vo(t,e){return void 0!==Ds[t]&&(void 0===e?Ds[t]:(Ds[t]=e,"s"===t&&(Ds.ss=e-1),!0))}function yo(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=mo(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function bo(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,o=Ss(this._milliseconds)/1e3,n=Ss(this._days),s=Ss(this._months);t=_(o/60),e=_(t/60),o%=60,t%=60,i=_(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o,p=this.asSeconds();return p?(p<0?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||u?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(u?u+"S":""):"P0D"}var _o,wo;wo=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var xn=G("FullYear",!0);q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),Y("week",5),Y("isoWeek",5),J("w",Bo),J("ww",Bo,zo),J("W",Bo),J("WW",Bo,zo),ot(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=w(t)});var Dn={dow:0,doy:6};q("d",0,"do","day"),q("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),q("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),q("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),Y("day",11),Y("weekday",11),Y("isoWeekday",11),J("d",Bo),J("e",Bo),J("E",Bo),J("dd",function(t,e){return e.weekdaysMinRegex(t)}),J("ddd",function(t,e){return e.weekdaysShortRegex(t)}),J("dddd",function(t,e){return e.weekdaysRegex(t)}),ot(["dd","ddd","dddd"],function(t,e,i,o){var n=i._locale.weekdaysParse(t,o,i._strict);null!=n?e.d=n:f(i).invalidWeekday=t}),ot(["d","e","E"],function(t,e,i,o){e[o]=w(t)});var Sn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),kn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Tn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Cn=nn,Mn=nn,On=nn;q("H",["HH",2],0,"hour"),q("h",["hh",2],0,Ut),q("k",["kk",2],0,Vt),q("hmm",0,0,function(){return""+Ut.apply(this)+B(this.minutes(),2)}),q("hmmss",0,0,function(){return""+Ut.apply(this)+B(this.minutes(),2)+B(this.seconds(),2)}),q("Hmm",0,0,function(){return""+this.hours()+B(this.minutes(),2)}),q("Hmmss",0,0,function(){return""+this.hours()+B(this.minutes(),2)+B(this.seconds(),2)}),Bt("a",!0),Bt("A",!1),L("hour","h"),Y("hour",13),J("a",qt),J("A",qt),J("H",Bo),J("h",Bo),J("k",Bo),J("HH",Bo,zo),J("hh",Bo,zo),J("kk",Bo,zo),J("hmm",qo),J("hmmss",Xo),J("Hmm",qo),J("Hmmss",Xo),it(["H","HH"],ln),it(["k","kk"],function(t,e,i){var o=w(t);e[ln]=24===o?0:o}),it(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),it(["h","hh"],function(t,e,i){e[ln]=w(t),f(i).bigHour=!0}),it("hmm",function(t,e,i){var o=t.length-2;e[ln]=w(t.substr(0,o)),e[un]=w(t.substr(o)),f(i).bigHour=!0}),it("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[ln]=w(t.substr(0,o)),e[un]=w(t.substr(o,2)),e[pn]=w(t.substr(n)),f(i).bigHour=!0}),it("Hmm",function(t,e,i){var o=t.length-2;e[ln]=w(t.substr(0,o)),e[un]=w(t.substr(o))}),it("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[ln]=w(t.substr(0,o)),e[un]=w(t.substr(o,2)),e[pn]=w(t.substr(n))});var En,Pn=/[ap]\.?m?\.?/i,Nn=G("Hours",!0),An={calendar:Oo,longDateFormat:Eo,invalidDate:Po,ordinal:No,dayOfMonthOrdinalParse:Ao,relativeTime:Io,months:yn,monthsShort:bn,week:Dn,weekdays:Sn,weekdaysMin:Tn,weekdaysShort:kn,meridiemParse:Pn},In={},Rn={},Ln=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Fn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Hn=/Z|[+-]\d\d(?::?\d\d)?/,Yn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],jn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Gn=/^\/?Date\((\-?\d+)/i,zn=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;e.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var Wn=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=_e.apply(null,arguments);return this.isValid()&&t.isValid()?tthis?this:t:g()}),Vn=function(){return Date.now?Date.now():+new Date},Bn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ee("Z",":"),Ee("ZZ",""),J("Z",en),J("ZZ",en),it(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Pe(en,t)});var qn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Xn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Zn=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Ve.fn=Ce.prototype,Ve.invalid=Te;var Kn=Ze(1,"add"),$n=Ze(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Jn=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});q(0,["gg",2],0,function(){return this.weekYear()%100}),q(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ei("gggg","weekYear"),Ei("ggggg","weekYear"),Ei("GGGG","isoWeekYear"),Ei("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),Y("weekYear",1),Y("isoWeekYear",1),J("G",Qo),J("g",Qo),J("GG",Bo,zo),J("gg",Bo,zo),J("GGGG",Ko,Uo),J("gggg",Ko,Uo),J("GGGGG",$o,Vo),J("ggggg",$o,Vo),ot(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=w(t)}),ot(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),q("Q",0,"Qo","quarter"),L("quarter","Q"),Y("quarter",7),J("Q",Go),it("Q",function(t,e){e[hn]=3*(w(t)-1)}),q("D",["DD",2],"Do","date"),L("date","D"),Y("date",9),J("D",Bo),J("DD",Bo,zo),J("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),it(["D","DD"],dn),it("Do",function(t,e){e[dn]=w(t.match(Bo)[0],10)});var Qn=G("Date",!0);q("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),Y("dayOfYear",4),J("DDD",Zo),J("DDDD",Wo),it(["DDD","DDDD"],function(t,e,i){i._dayOfYear=w(t)}),q("m",["mm",2],0,"minute"),L("minute","m"),Y("minute",14),J("m",Bo),J("mm",Bo,zo),it(["m","mm"],un);var ts=G("Minutes",!1);q("s",["ss",2],0,"second"),L("second","s"),Y("second",15),J("s",Bo),J("ss",Bo,zo),it(["s","ss"],pn);var es=G("Seconds",!1);q("S",0,0,function(){return~~(this.millisecond()/100)}),q(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,function(){return 10*this.millisecond()}),q(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),q(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),q(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),q(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),q(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),L("millisecond","ms"),Y("millisecond",16),J("S",Zo,Go),J("SS",Zo,zo),J("SSS",Zo,Wo);var is;for(is="SSSS";is.length<=9;is+="S")J(is,Jo);for(is="S";is.length<=9;is+="S")it(is,Yi);var os=G("Milliseconds",!1);q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var ns=y.prototype;ns.add=Kn,ns.calendar=Je,ns.clone=Qe,ns.diff=ri,ns.endOf=bi,ns.format=ui,ns.from=pi,ns.fromNow=ci,ns.to=fi,ns.toNow=mi,ns.get=U,ns.invalidAt=Mi,ns.isAfter=ti,ns.isBefore=ei,ns.isBetween=ii,ns.isSame=oi,ns.isSameOrAfter=ni,ns.isSameOrBefore=si,ns.isValid=Ti,ns.lang=Jn,ns.locale=gi,ns.localeData=vi,ns.max=Un,ns.min=Wn,ns.parsingFlags=Ci,ns.set=V,ns.startOf=yi,ns.subtract=$n,ns.toArray=Di,ns.toObject=Si,ns.toDate=xi,ns.toISOString=di,ns.inspect=li,ns.toJSON=ki,ns.toString=hi,ns.unix=wi,ns.valueOf=_i,ns.creationData=Oi,ns.year=xn,ns.isLeapYear=yt,ns.weekYear=Pi,ns.isoWeekYear=Ni,ns.quarter=ns.quarters=Fi,ns.month=ut,ns.daysInMonth=pt,ns.week=ns.weeks=Mt,ns.isoWeek=ns.isoWeeks=Ot,ns.weeksInYear=Ii,ns.isoWeeksInYear=Ai,ns.date=Qn,ns.day=ns.days=Ft,ns.weekday=Ht,ns.isoWeekday=Yt,ns.dayOfYear=Hi,ns.hour=ns.hours=Nn,ns.minute=ns.minutes=ts,ns.second=ns.seconds=es,ns.millisecond=ns.milliseconds=os,ns.utcOffset=Ie,ns.utc=Le,ns.local=Fe,ns.parseZone=He,ns.hasAlignedHourOffset=Ye,ns.isDST=je,ns.isLocal=ze,ns.isUtcOffset=We,ns.isUtc=Ue,ns.isUTC=Ue,ns.zoneAbbr=ji,ns.zoneName=Gi,ns.dates=S("dates accessor is deprecated. Use date instead.",Qn),ns.months=S("months accessor is deprecated. Use month instead",ut),ns.years=S("years accessor is deprecated. Use year instead",xn),ns.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Re),ns.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ge);var ss=O.prototype;ss.calendar=E,ss.longDateFormat=P,ss.invalidDate=N,ss.ordinal=A,ss.preparse=Ui,ss.postformat=Ui,ss.relativeTime=I,ss.pastFuture=R,ss.set=C,ss.months=rt,ss.monthsShort=at,ss.monthsParse=dt,ss.monthsRegex=ft,ss.monthsShortRegex=ct,ss.week=kt,ss.firstDayOfYear=Ct,ss.firstDayOfWeek=Tt,ss.weekdays=Nt,ss.weekdaysMin=It,ss.weekdaysShort=At,ss.weekdaysParse=Lt,ss.weekdaysRegex=jt,ss.weekdaysShortRegex=Gt,ss.weekdaysMinRegex=zt,ss.isPM=Xt,ss.meridiem=Zt,Qt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===w(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=S("moment.lang is deprecated. Use moment.locale instead.",Qt),e.langData=S("moment.langData is deprecated. Use moment.localeData instead.",ie);var rs=Math.abs,as=lo("ms"),hs=lo("s"),ds=lo("m"),ls=lo("h"),us=lo("d"),ps=lo("w"),cs=lo("M"),fs=lo("y"),ms=po("milliseconds"),gs=po("seconds"),vs=po("minutes"),ys=po("hours"),bs=po("days"),_s=po("months"),ws=po("years"),xs=Math.round,Ds={ss:44,s:45,m:45,h:22,d:26,M:11},Ss=Math.abs,ks=Ce.prototype;return ks.isValid=ke,ks.abs=Qi,ks.add=eo,ks.subtract=io,ks.as=ao,ks.asMilliseconds=as,ks.asSeconds=hs,ks.asMinutes=ds,ks.asHours=ls,ks.asDays=us,ks.asWeeks=ps,ks.asMonths=cs,ks.asYears=fs,ks.valueOf=ho,ks._bubble=no,ks.get=uo,ks.milliseconds=ms,ks.seconds=gs,ks.minutes=vs,ks.hours=ys,ks.days=bs,ks.weeks=co,ks.months=_s,ks.years=ws,ks.humanize=yo,ks.toISOString=bo,ks.toString=bo,ks.toJSON=bo,ks.locale=gi,ks.localeData=vi,ks.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",bo),ks.lang=Jn,q("X",0,0,"unix"),q("x",0,0,"valueOf"),J("x",Qo),J("X",on),it("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),it("x",function(t,e,i){i._d=new Date(w(t))}),e.version="2.18.1",i(_e),e.fn=ns,e.min=xe,e.max=De,e.now=Vn,e.utc=p,e.unix=zi,e.months=Xi,e.isDate=h,e.locale=Qt,e.invalid=g,e.duration=Ve,e.isMoment=b,e.weekdays=Ki,e.parseZone=Wi,e.localeData=ie,e.isDuration=Me,e.monthsShort=Zi,e.weekdaysMin=Ji,e.defineLocale=te,e.updateLocale=ee,e.locales=oe,e.weekdaysShort=$i,e.normalizeUnits=F,e.relativeTimeRounding=go,e.relativeTimeThreshold=vo,e.calendarFormat=$e,e.prototype=ns,e})}).call(e,i(84)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=85},function(t,e){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){n<16&&(e[o+n++]=u[t])});n<16;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:v+1,d=a-g+(h-v)/1e4;if(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||a>g)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");g=a,v=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var p=t.node||f,c=0;c<6;c++)s[n+c]=p[c];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;e<16;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},p=0;p<256;p++)l[p]=(p+256).toString(16).substr(1),u[l[p]]=p;var c=r(),f=[1|c[0],c[1],c[2],c[3],c[4],c[5]],m=16383&(c[6]<<8|c[7]),g=0,v=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){n<0&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=(0,l.default)(this._options.type),o=0,n=i.length;on?1:or)&&(s=h,r=d)}return s},n.prototype.min=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;ethis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var s=i(58),r=o(s),a=i(1),h=i(88);n.prototype.setData=function(t){var e,i,o,n,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),e=this._data.getIds({filter:this._options&&this._options.filter}),s=[],o=0,n=e.length;os)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=!e||void 0===e.animation||e.animation;this.range.setRange(r-a/2,r+a/2,{animation:h})}}},o.prototype.fit=function(t){var e,i=!t||void 0===t.animation||t.animation,o=this.itemsData&&this.itemsData.getDataSet();1===o.length&&void 0===o.get()[0].end?(e=this.getDataRange(),this.moveTo(e.min.valueOf(),{animation:i})):(e=this.getItemRange(),this.range.setRange(e.min,e.max,{animation:i}))},o.prototype.getItemRange=function(){var t=this.getDataRange(),e=null!==t.min?t.min.valueOf():null,i=null!==t.max?t.max.valueOf():null,o=null,n=null;if(null!=e&&null!=i){var r=function(t){return s.convert(t.data.start,"Date").valueOf()},a=function(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return s.convert(e,"Date").valueOf()},h=i-e;h<=0&&(h=10);var d=h/this.props.center.width;if(s.forEach(this.itemSet.items,function(t){t.groupShowing&&(t.show(),t.repositionX());var s=r(t),h=a(t);if(this.options.rtl)var l=s-(t.getWidthRight()+10)*d,u=h+(t.getWidthLeft()+10)*d;else var l=s-(t.getWidthLeft()+10)*d,u=h+(t.getWidthRight()+10)*d;li&&(i=u,n=t)}.bind(this)),o&&n){var l=o.getWidthLeft()+10,u=n.getWidthRight()+10,p=this.props.center.width-l-u;p>0&&(this.options.rtl?(e=r(o)-u*h/p,i=a(n)+l*h/p):(e=r(o)-l*h/p,i=a(n)+u*h/p))}}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=s.convert(i.start,"Date").valueOf(),n=s.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||oe)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY;if(this.options.rtl)var o=s.getAbsoluteRight(this.dom.centerContainer)-e;else var o=e-s.getAbsoluteLeft(this.dom.centerContainer);var n=i-s.getAbsoluteTop(this.dom.centerContainer),r=this.itemSet.itemFromTarget(t),a=this.itemSet.groupFromTarget(t),h=p.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),c=this._toTime(o),f=d?d(c,l,u):c,m=s.getTarget(t),g=null;return null!=r?g="item":null!=h?g="custom-time":s.hasParent(m,this.timeAxis.dom.foreground)?g="axis":this.timeAxis2&&s.hasParent(m,this.timeAxis2.dom.foreground)?g="axis":s.hasParent(m,this.itemSet.dom.labelSet)?g="group-label":s.hasParent(m,this.currentTime.bar)?g="current-time":s.hasParent(m,this.dom.center)&&(g="background"),{event:t,item:r?r.id:null,group:a?a.groupId:null,what:g,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:c,snappedTime:f}},o.prototype.toggleRollingMode=function(){this.range.rolling?this.range.stopRolling():(void 0==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())},t.exports=o},function(t,e){function i(t){if(t)return o(t)}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;n0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);e!==-1&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;/*! Hammer.JS - v2.0.7 - 2016-04-22 +"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={exports:{},id:o,loaded:!1};return t[o].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(87),e.DataSet=i(88),e.DataView=i(92),e.Queue=i(91),e.Timeline=i(93),e.Graph2d=i(129),e.timeline={Core:i(102),DateUtil:i(101),Range:i(98),stack:i(106),TimeStep:i(104),components:{items:{Item:i(108),BackgroundItem:i(112),BoxItem:i(110),PointItem:i(111),RangeItem:i(107)},BackgroundGroup:i(109),Component:i(100),CurrentTime:i(124),CustomTime:i(122),DataAxis:i(131),DataScale:i(132),GraphGroup:i(133),Group:i(105),ItemSet:i(103),Legend:i(137),LineGraph:i(130),TimeAxis:i(119)}},e.moment=i(82),e.Hammer=i(95),e.keycharm=i(121)},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}var n=i(2),s=o(n),r=i(55),a=o(r),h=i(58),d=o(h),l=i(62),u=o(l),p=i(82),c=i(86);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;t.hasChildNodes()===!0;)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,o){if(e==t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var i=f.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return c.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!==(0,u.default)(t[i])&&(t[i]=e)},e.fillIfDefined=function(t,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var n in t)void 0!==i[n]&&("object"!==(0,u.default)(i[n])?void 0!==i[n]&&null!==i[n]||void 0===t[n]||o!==!0?t[n]=i[n]:delete t[n]:"object"===(0,u.default)(t[n])&&e.fillIfDefined(t[n],i[n],o))},e.protoExtend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&t.indexOf(s)==-1)if(o[s]&&o[s].constructor===Object)void 0===i[s]&&(i[s]={}),i[s].constructor===Object?e.deepExtend(i[s],o[s]):null===o[s]&&void 0!==i[s]&&n===!0?delete i[s]:i[s]=o[s];else if(Array.isArray(o[s])){i[s]=[];for(var r=0;r=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(t.indexOf("rgba")!=-1)return t;if(t.indexOf("rgb")!=-1){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var m={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,d.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=m.split(t.style.cssText),n=m.split(i),s=e.extend(o,n);t.style.cssText=m.join(s)},e.removeCssText=function(t,e){var i=m.split(t.style.cssText),o=m.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=m.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==("undefined"==typeof i?"undefined":(0,u.default)(i))){for(var o=(0,a.default)(i),n=0;n0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=(arguments.length>3&&void 0!==arguments[3]&&arguments[3],arguments.length>4&&void 0!==arguments[4]?arguments[4]:{});if(null===e[i])t[i]=(0,a.default)(o[i]);else if(void 0!==e[i])if("boolean"==typeof e[i])t[i].enabled=e[i];else{void 0===e[i].enabled&&(t[i].enabled=!0);for(var n in e[i])e[i].hasOwnProperty(n)&&(t[i][n]=e[i][n])}},e.binarySearchCustom=function(t,e,i,o){for(var n=1e4,s=0,r=0,a=t.length-1;r<=a&&s0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?u=h+1:p=h-1,l++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,r=void 0;try{for(var a,h=(0,s.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;l=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports={}},function(t,e,i){var o=i(10),n=i(12);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(11);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==o(t)?t.split(""):Object(t)}},function(t,e){var i={}.toString;t.exports=function(t){return i.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,i){var o=i(14),n=i(15),s=i(30),r=i(20),a=i(31),h=i(8),d=i(32),l=i(46),u=i(48),p=i(47)("iterator"),c=!([].keys&&"next"in[].keys()),f="@@iterator",m="keys",g="values",v=function(){return this};t.exports=function(t,e,i,y,b,_,w){d(i,e,y);var x,D,S,k=function(t){if(!c&&t in O)return O[t];switch(t){case m:return function(){return new i(this,t)};case g:return function(){return new i(this,t)}}return function(){return new i(this,t)}},T=e+" Iterator",C=b==g,M=!1,O=t.prototype,E=O[p]||O[f]||b&&O[b],P=E||k(b),N=b?C?k("entries"):P:void 0,A="Array"==e?O.entries||E:E;if(A&&(S=u(A.call(new t)),S!==Object.prototype&&S.next&&(l(S,T,!0),o||a(S,p)||r(S,p,v))),C&&E&&E.name!==g&&(M=!0,P=function(){return E.call(this)}),o&&!w||!c&&!M&&O[p]||r(O,p,P),h[e]=P,h[T]=v,b)if(x={values:C?P:k(g),keys:_?P:k(m),entries:N},w)for(D in x)D in O||s(O,D,x[D]);else n(n.P+n.F*(c||M),e,x);return x}},function(t,e){t.exports=!0},function(t,e,i){var o=i(16),n=i(17),s=i(18),r=i(20),a="prototype",h=function(t,e,i){var d,l,u,p=t&h.F,c=t&h.G,f=t&h.S,m=t&h.P,g=t&h.B,v=t&h.W,y=c?n:n[e]||(n[e]={}),b=y[a],_=c?o:f?o[e]:(o[e]||{})[a];c&&(i=e);for(d in i)l=!p&&_&&void 0!==_[d],l&&d in y||(u=l?_[d]:i[d],y[d]=c&&"function"!=typeof _[d]?i[d]:g&&l?s(u,o):v&&_[d]==u?function(t){var e=function(e,i,o){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,i)}return new t(e,i,o)}return t.apply(this,arguments)};return e[a]=t[a],e}(u):m&&"function"==typeof u?s(Function.call,u):u,m&&((y.virtual||(y.virtual={}))[d]=u,t&h.R&&b&&!b[d]&&r(b,d,u)))};h.F=1,h.G=2,h.S=4,h.P=8,h.B=16,h.W=32,h.U=64,h.R=128,t.exports=h},function(t,e){var i=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(t,e){var i=t.exports={version:"2.5.0"};"number"==typeof __e&&(__e=i)},function(t,e,i){var o=i(19);t.exports=function(t,e,i){if(o(t),void 0===e)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 2:return function(i,o){return t.call(e,i,o)};case 3:return function(i,o,n){return t.call(e,i,o,n)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(21),n=i(29);t.exports=i(25)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var o=i(22),n=i(24),s=i(28),r=Object.defineProperty;e.f=i(25)?Object.defineProperty:function(t,e,i){if(o(t),e=s(e,!0),o(i),n)try{return r(t,e,i)}catch(t){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(t[e]=i.value),t}},function(t,e,i){var o=i(23);t.exports=function(t){if(!o(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,i){t.exports=!i(25)&&!i(26)(function(){return 7!=Object.defineProperty(i(27)("div"),"a",{get:function(){return 7}}).a})},function(t,e,i){t.exports=!i(26)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,i){var o=i(23),n=i(16).document,s=o(n)&&o(n.createElement);t.exports=function(t){return s?n.createElement(t):{}}},function(t,e,i){var o=i(23);t.exports=function(t,e){if(!o(t))return t;var i,n;if(e&&"function"==typeof(i=t.toString)&&!o(n=i.call(t)))return n;if("function"==typeof(i=t.valueOf)&&!o(n=i.call(t)))return n;if(!e&&"function"==typeof(i=t.toString)&&!o(n=i.call(t)))return n;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,i){t.exports=i(20)},function(t,e){var i={}.hasOwnProperty;t.exports=function(t,e){return i.call(t,e)}},function(t,e,i){var o=i(33),n=i(29),s=i(46),r={};i(20)(r,i(47)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(22),n=i(34),s=i(44),r=i(41)("IE_PROTO"),a=function(){},h="prototype",d=function(){var t,e=i(27)("iframe"),o=s.length,n="<",r=">";for(e.style.display="none",i(45).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(n+"script"+r+"document.F=Object"+n+"/script"+r),t.close(),d=t.F;o--;)delete d[h][s[o]];return d()};t.exports=Object.create||function(t,e){var i;return null!==t?(a[h]=o(t),i=new a,a[h]=null,i[r]=t):i=d(),void 0===e?i:n(i,e)}},function(t,e,i){var o=i(21),n=i(22),s=i(35);t.exports=i(25)?Object.defineProperties:function(t,e){n(t);for(var i,r=s(e),a=r.length,h=0;a>h;)o.f(t,i=r[h++],e[i]);return t}},function(t,e,i){var o=i(36),n=i(44);t.exports=Object.keys||function(t){return o(t,n)}},function(t,e,i){var o=i(31),n=i(9),s=i(37)(!1),r=i(41)("IE_PROTO");t.exports=function(t,e){var i,a=n(t),h=0,d=[];for(i in a)i!=r&&o(a,i)&&d.push(i);for(;e.length>h;)o(a,i=e[h++])&&(~s(d,i)||d.push(i));return d}},function(t,e,i){var o=i(9),n=i(38),s=i(40);t.exports=function(t){return function(e,i,r){var a,h=o(e),d=n(h.length),l=s(r,d);if(t&&i!=i){for(;d>l;)if(a=h[l++],a!=a)return!0}else for(;d>l;l++)if((t||l in h)&&h[l]===i)return t||l||0;return!t&&-1}}},function(t,e,i){var o=i(39),n=Math.min;t.exports=function(t){return t>0?n(o(t),9007199254740991):0}},function(t,e){var i=Math.ceil,o=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?o:i)(t)}},function(t,e,i){var o=i(39),n=Math.max,s=Math.min;t.exports=function(t,e){return t=o(t),t<0?n(t+e,0):s(t,e)}},function(t,e,i){var o=i(42)("keys"),n=i(43);t.exports=function(t){return o[t]||(o[t]=n(t))}},function(t,e,i){var o=i(16),n="__core-js_shared__",s=o[n]||(o[n]={});t.exports=function(t){return s[t]||(s[t]={})}},function(t,e){var i=0,o=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++i+o).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,i){var o=i(16).document;t.exports=o&&o.documentElement},function(t,e,i){var o=i(21).f,n=i(31),s=i(47)("toStringTag");t.exports=function(t,e,i){t&&!n(t=i?t:t.prototype,s)&&o(t,s,{configurable:!0,value:e})}},function(t,e,i){var o=i(42)("wks"),n=i(43),s=i(16).Symbol,r="function"==typeof s,a=t.exports=function(t){return o[t]||(o[t]=r&&s[t]||(r?s:n)("Symbol."+t))};a.store=o},function(t,e,i){var o=i(31),n=i(49),s=i(41)("IE_PROTO"),r=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=n(t),o(t,s)?t[s]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?r:null}},function(t,e,i){var o=i(12);t.exports=function(t){return Object(o(t))}},function(t,e,i){var o=i(51)(!0);i(13)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,i=this._i;return i>=e.length?{value:void 0,done:!0}:(t=o(e,i),this._i+=t.length,{value:t,done:!1})})},function(t,e,i){var o=i(39),n=i(12);t.exports=function(t){return function(e,i){var s,r,a=String(n(e)),h=o(i),d=a.length;return h<0||h>=d?t?"":void 0:(s=a.charCodeAt(h),s<55296||s>56319||h+1===d||(r=a.charCodeAt(h+1))<56320||r>57343?t?a.charAt(h):s:t?a.slice(h,h+2):(s-55296<<10)+(r-56320)+65536)}}},function(t,e,i){var o=i(22),n=i(53);t.exports=i(17).getIterator=function(t){var e=n(t);if("function"!=typeof e)throw TypeError(t+" is not iterable!");return o(e.call(t))}},function(t,e,i){var o=i(54),n=i(47)("iterator"),s=i(8);t.exports=i(17).getIteratorMethod=function(t){if(void 0!=t)return t[n]||t["@@iterator"]||s[o(t)]}},function(t,e,i){var o=i(11),n=i(47)("toStringTag"),s="Arguments"==o(function(){return arguments}()),r=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=r(e=Object(t),n))?i:s?o(e):"Object"==(a=o(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,i){t.exports={default:i(56),__esModule:!0}},function(t,e,i){i(57);var o=i(17).Object;t.exports=function(t,e){return o.create(t,e)}},function(t,e,i){var o=i(15);o(o.S,"Object",{create:i(33)})},function(t,e,i){t.exports={default:i(59),__esModule:!0}},function(t,e,i){i(60),t.exports=i(17).Object.keys},function(t,e,i){var o=i(49),n=i(35);i(61)("keys",function(){return function(t){return n(o(t))}})},function(t,e,i){var o=i(15),n=i(17),s=i(26);t.exports=function(t,e){var i=(n.Object||{})[t]||Object[t],r={};r[t]=e(i),o(o.S+o.F*s(function(){i(1)}),"Object",r)}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}e.__esModule=!0;var n=i(63),s=o(n),r=i(66),a=o(r),h="function"==typeof a.default&&"symbol"==typeof s.default?function(t){return typeof t}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":typeof t};e.default="function"==typeof a.default&&"symbol"===h(s.default)?function(t){return"undefined"==typeof t?"undefined":h(t)}:function(t){return t&&"function"==typeof a.default&&t.constructor===a.default&&t!==a.default.prototype?"symbol":"undefined"==typeof t?"undefined":h(t)}},function(t,e,i){t.exports={default:i(64),__esModule:!0}},function(t,e,i){i(50),i(4),t.exports=i(65).f("iterator")},function(t,e,i){e.f=i(47)},function(t,e,i){t.exports={default:i(67),__esModule:!0}},function(t,e,i){i(68),i(79),i(80),i(81),t.exports=i(17).Symbol},function(t,e,i){var o=i(16),n=i(31),s=i(25),r=i(15),a=i(30),h=i(69).KEY,d=i(26),l=i(42),u=i(46),p=i(43),c=i(47),f=i(65),m=i(70),g=i(71),v=i(72),y=i(75),b=i(22),_=i(9),w=i(28),x=i(29),D=i(33),S=i(76),k=i(78),T=i(21),C=i(35),M=k.f,O=T.f,E=S.f,P=o.Symbol,N=o.JSON,A=N&&N.stringify,I="prototype",R=c("_hidden"),L=c("toPrimitive"),F={}.propertyIsEnumerable,H=l("symbol-registry"),Y=l("symbols"),j=l("op-symbols"),G=Object[I],z="function"==typeof P,W=o.QObject,V=!W||!W[I]||!W[I].findChild,U=s&&d(function(){return 7!=D(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a})?function(t,e,i){var o=M(G,e);o&&delete G[e],O(t,e,i),o&&t!==G&&O(G,e,o)}:O,B=function(t){var e=Y[t]=D(P[I]);return e._k=t,e},q=z&&"symbol"==typeof P.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof P},X=function(t,e,i){return t===G&&X(j,e,i),b(t),e=w(e,!0),b(i),n(Y,e)?(i.enumerable?(n(t,R)&&t[R][e]&&(t[R][e]=!1),i=D(i,{enumerable:x(0,!1)})):(n(t,R)||O(t,R,x(1,{})),t[R][e]=!0),U(t,e,i)):O(t,e,i)},Z=function(t,e){b(t);for(var i,o=v(e=_(e)),n=0,s=o.length;s>n;)X(t,i=o[n++],e[i]);return t},K=function(t,e){return void 0===e?D(t):Z(D(t),e)},$=function(t){var e=F.call(this,t=w(t,!0));return!(this===G&&n(Y,t)&&!n(j,t))&&(!(e||!n(this,t)||!n(Y,t)||n(this,R)&&this[R][t])||e)},J=function(t,e){if(t=_(t),e=w(e,!0),t!==G||!n(Y,e)||n(j,e)){var i=M(t,e);return!i||!n(Y,e)||n(t,R)&&t[R][e]||(i.enumerable=!0),i}},Q=function(t){for(var e,i=E(_(t)),o=[],s=0;i.length>s;)n(Y,e=i[s++])||e==R||e==h||o.push(e);return o},tt=function(t){for(var e,i=t===G,o=E(i?j:_(t)),s=[],r=0;o.length>r;)!n(Y,e=o[r++])||i&&!n(G,e)||s.push(Y[e]);return s};z||(P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(i){this===G&&e.call(j,i),n(this,R)&&n(this[R],t)&&(this[R][t]=!1),U(this,t,x(1,i))};return s&&V&&U(G,t,{configurable:!0,set:e}),B(t)},a(P[I],"toString",function(){return this._k}),k.f=J,T.f=X,i(77).f=S.f=Q,i(74).f=$,i(73).f=tt,s&&!i(14)&&a(G,"propertyIsEnumerable",$,!0),f.f=function(t){return B(c(t))}),r(r.G+r.W+r.F*!z,{Symbol:P});for(var et="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),it=0;et.length>it;)c(et[it++]);for(var ot=C(c.store),nt=0;ot.length>nt;)m(ot[nt++]);r(r.S+r.F*!z,"Symbol",{for:function(t){return n(H,t+="")?H[t]:H[t]=P(t)},keyFor:function(t){if(q(t))return g(H,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){V=!0},useSimple:function(){V=!1}}),r(r.S+r.F*!z,"Object",{create:K,defineProperty:X,defineProperties:Z,getOwnPropertyDescriptor:J,getOwnPropertyNames:Q,getOwnPropertySymbols:tt}),N&&r(r.S+r.F*(!z||d(function(){var t=P();return"[null]"!=A([t])||"{}"!=A({a:t})||"{}"!=A(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!q(t)){for(var e,i,o=[t],n=1;arguments.length>n;)o.push(arguments[n++]);return e=o[1],"function"==typeof e&&(i=e),!i&&y(e)||(e=function(t,e){if(i&&(e=i.call(this,t,e)),!q(e))return e}),o[1]=e,A.apply(N,o)}}}),P[I][L]||i(20)(P[I],L,P[I].valueOf),u(P,"Symbol"),u(Math,"Math",!0),u(o.JSON,"JSON",!0)},function(t,e,i){var o=i(43)("meta"),n=i(23),s=i(31),r=i(21).f,a=0,h=Object.isExtensible||function(){return!0},d=!i(26)(function(){return h(Object.preventExtensions({}))}),l=function(t){r(t,o,{value:{i:"O"+ ++a,w:{}}})},u=function(t,e){if(!n(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!s(t,o)){if(!h(t))return"F";if(!e)return"E";l(t)}return t[o].i},p=function(t,e){if(!s(t,o)){if(!h(t))return!0;if(!e)return!1;l(t)}return t[o].w},c=function(t){return d&&f.NEED&&h(t)&&!s(t,o)&&l(t),t},f=t.exports={KEY:o,NEED:!1,fastKey:u,getWeak:p,onFreeze:c}},function(t,e,i){var o=i(16),n=i(17),s=i(14),r=i(65),a=i(21).f;t.exports=function(t){var e=n.Symbol||(n.Symbol=s?{}:o.Symbol||{});"_"==t.charAt(0)||t in e||a(e,t,{value:r.f(t)})}},function(t,e,i){var o=i(35),n=i(9);t.exports=function(t,e){for(var i,s=n(t),r=o(s),a=r.length,h=0;a>h;)if(s[i=r[h++]]===e)return i}},function(t,e,i){var o=i(35),n=i(73),s=i(74);t.exports=function(t){var e=o(t),i=n.f;if(i)for(var r,a=i(t),h=s.f,d=0;a.length>d;)h.call(t,r=a[d++])&&e.push(r);return e}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,i){var o=i(11);t.exports=Array.isArray||function(t){return"Array"==o(t)}},function(t,e,i){var o=i(9),n=i(77).f,s={}.toString,r="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],a=function(t){try{return n(t)}catch(t){return r.slice()}};t.exports.f=function(t){return r&&"[object Window]"==s.call(t)?a(t):n(o(t))}},function(t,e,i){var o=i(36),n=i(44).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,n)}},function(t,e,i){var o=i(74),n=i(29),s=i(9),r=i(28),a=i(31),h=i(24),d=Object.getOwnPropertyDescriptor;e.f=i(25)?d:function(t,e){if(t=s(t),e=r(e,!0),h)try{return d(t,e)}catch(t){}if(a(t,e))return n(!o.f.call(t,e),t[e])}},function(t,e){},function(t,e,i){i(70)("asyncIterator")},function(t,e,i){i(70)("observable")},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(83)},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return _o.apply(null,arguments)}function i(t){_o=t}function o(t){return t instanceof Array||"[object Array]"===Object.prototype.toString.call(t)}function n(t){return null!=t&&"[object Object]"===Object.prototype.toString.call(t)}function s(t){var e;for(e in t)return!1;return!0}function r(t){return void 0===t}function a(t){return"number"==typeof t||"[object Number]"===Object.prototype.toString.call(t)}function h(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function d(t,e){var i,o=[];for(i=0;i0)for(i=0;i0?"future":"past"];return T(i)?i(e):i.replace(/%s/i,e)}function L(t,e){var i=t.toLowerCase();Ro[i]=Ro[i+"s"]=Ro[e]=t}function F(t){return"string"==typeof t?Ro[t]||Ro[t.toLowerCase()]:void 0}function H(t){var e,i,o={};for(i in t)l(t,i)&&(e=F(i),e&&(o[e]=t[i]));return o}function Y(t,e){Lo[t]=e}function j(t){var e=[];for(var i in t)e.push({unit:i,priority:Lo[i]});return e.sort(function(t,e){return t.priority-e.priority}),e}function G(t,i){return function(o){return null!=o?(W(this,t,o),e.updateOffset(this,i),this):z(this,t)}}function z(t,e){return t.isValid()?t._d["get"+(t._isUTC?"UTC":"")+e]():NaN}function W(t,e,i){t.isValid()&&t._d["set"+(t._isUTC?"UTC":"")+e](i)}function V(t){return t=F(t),T(this[t])?this[t]():this}function U(t,e){if("object"==typeof t){t=H(t);for(var i=j(t),o=0;o=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function q(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(jo[t]=n),e&&(jo[e[0]]=function(){return B(n.apply(this,arguments),e[1],e[2])}),i&&(jo[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function X(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function Z(t){var e,i,o=t.match(Fo);for(e=0,i=o.length;e=0&&Ho.test(t);)t=t.replace(Ho,i),Ho.lastIndex=0,o-=1;return t}function J(t,e,i){sn[t]=T(e)?e:function(t,o){return t&&i?i:e}}function Q(t,e){return l(sn,t)?sn[t](e._strict,e._locale):new RegExp(tt(t))}function tt(t){return et(t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}))}function et(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function it(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),a(e)&&(o=function(t,i){i[e]=w(t)}),i=0;i=0&&isFinite(a.getFullYear())&&a.setFullYear(t),a}function _t(t){var e=new Date(Date.UTC.apply(null,arguments));return t<100&&t>=0&&isFinite(e.getUTCFullYear())&&e.setUTCFullYear(t),e}function wt(t,e,i){var o=7+e-i,n=(7+_t(t,0,o).getUTCDay()-e)%7;return-n+o-1}function xt(t,e,i,o,n){var s,r,a=(7+i-o)%7,h=wt(t,o,n),d=1+7*(e-1)+a+h;return d<=0?(s=t-1,r=gt(s)+d):d>gt(t)?(s=t+1,r=d-gt(t)):(s=t,r=d),{year:s,dayOfYear:r}}function Dt(t,e,i){var o,n,s=wt(t.year(),e,i),r=Math.floor((t.dayOfYear()-s-1)/7)+1;return r<1?(n=t.year()-1,o=r+St(n,e,i)):r>St(t.year(),e,i)?(o=r-St(t.year(),e,i),n=t.year()+1):(n=t.year(),o=r),{week:o,year:n}}function St(t,e,i){var o=wt(t,e,i),n=wt(t+1,e,i);return(gt(t)-o+n)/7}function kt(t){return Dt(t,this._week.dow,this._week.doy).week}function Tt(){return this._week.dow}function Ct(){return this._week.doy}function Mt(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function Ot(t){var e=Dt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function Et(t,e){return"string"!=typeof t?t:isNaN(t)?(t=e.weekdaysParse(t),"number"==typeof t?t:null):parseInt(t,10)}function Pt(t,e){return"string"==typeof t?e.weekdaysParse(t)%7||7:isNaN(t)?null:t}function Nt(t,e){return t?o(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(e)?"format":"standalone"][t.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone}function At(t){return t?this._weekdaysShort[t.day()]:this._weekdaysShort}function It(t){return t?this._weekdaysMin[t.day()]:this._weekdaysMin}function Rt(t,e,i){var o,n,s,r=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],o=0;o<7;++o)s=p([2e3,1]).day(o),this._minWeekdaysParse[o]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[o]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[o]=this.weekdays(s,"").toLocaleLowerCase();return i?"dddd"===e?(n=gn.call(this._weekdaysParse,r),n!==-1?n:null):"ddd"===e?(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:null):(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null):"dddd"===e?(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null))):"ddd"===e?(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:null))):(n=gn.call(this._minWeekdaysParse,r),n!==-1?n:(n=gn.call(this._weekdaysParse,r),n!==-1?n:(n=gn.call(this._shortWeekdaysParse,r),n!==-1?n:null)))}function Lt(t,e,i){var o,n,s;if(this._weekdaysParseExact)return Rt.call(this,t,e,i);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),o=0;o<7;o++){if(n=p([2e3,1]).day(o),i&&!this._fullWeekdaysParse[o]&&(this._fullWeekdaysParse[o]=new RegExp("^"+this.weekdays(n,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[o]=new RegExp("^"+this.weekdaysShort(n,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[o]=new RegExp("^"+this.weekdaysMin(n,"").replace(".",".?")+"$","i")),this._weekdaysParse[o]||(s="^"+this.weekdays(n,"")+"|^"+this.weekdaysShort(n,"")+"|^"+this.weekdaysMin(n,""),this._weekdaysParse[o]=new RegExp(s.replace(".",""),"i")),i&&"dddd"===e&&this._fullWeekdaysParse[o].test(t))return o;if(i&&"ddd"===e&&this._shortWeekdaysParse[o].test(t))return o;if(i&&"dd"===e&&this._minWeekdaysParse[o].test(t))return o;if(!i&&this._weekdaysParse[o].test(t))return o}}function Ft(t){if(!this.isValid())return null!=t?this:NaN;var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Et(t,this.localeData()),this.add(t-e,"d")):e}function Ht(t){if(!this.isValid())return null!=t?this:NaN;var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Yt(t){if(!this.isValid())return null!=t?this:NaN;if(null!=t){var e=Pt(t,this.localeData());return this.day(this.day()%7?e:e-7)}return this.day()||7}function jt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):(l(this,"_weekdaysRegex")||(this._weekdaysRegex=Cn),this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex)}function Gt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(l(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=Mn),this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function zt(t){return this._weekdaysParseExact?(l(this,"_weekdaysRegex")||Wt.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(l(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=On),this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Wt(){function t(t,e){return e.length-t.length}var e,i,o,n,s,r=[],a=[],h=[],d=[];for(e=0;e<7;e++)i=p([2e3,1]).day(e),o=this.weekdaysMin(i,""),n=this.weekdaysShort(i,""),s=this.weekdays(i,""),r.push(o),a.push(n),h.push(s),d.push(o),d.push(n),d.push(s);for(r.sort(t),a.sort(t),h.sort(t),d.sort(t),e=0;e<7;e++)a[e]=et(a[e]),h[e]=et(h[e]),d[e]=et(d[e]);this._weekdaysRegex=new RegExp("^("+d.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+r.join("|")+")","i")}function Vt(){return this.hours()%12||12}function Ut(){return this.hours()||24}function Bt(t,e){q(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function qt(t,e){return e._meridiemParse}function Xt(t){return"p"===(t+"").toLowerCase().charAt(0)}function Zt(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Kt(t){return t?t.toLowerCase().replace("_","-"):t}function $t(t){for(var e,i,o,n,s=0;s0;){if(o=Jt(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&x(n,i,!0)>=e-1)break;e--}s++}return null}function Jt(e){var i=null;if(!In[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=En._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Qt(i)}catch(t){}return In[e]}function Qt(t,e){var i;return t&&(i=r(e)?ie(t):te(t,e),i&&(En=i)),En._abbr}function te(t,e){if(null!==e){var i=An;if(e.abbr=t,null!=In[t])k("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),i=In[t]._config;else if(null!=e.parentLocale){if(null==In[e.parentLocale])return Rn[e.parentLocale]||(Rn[e.parentLocale]=[]),Rn[e.parentLocale].push({name:t,config:e}),null;i=In[e.parentLocale]._config}return In[t]=new O(M(i,e)),Rn[t]&&Rn[t].forEach(function(t){te(t.name,t.config)}),Qt(t),In[t]}return delete In[t],null}function ee(t,e){if(null!=e){var i,o=An;null!=In[t]&&(o=In[t]._config),e=M(o,e),i=new O(e),i.parentLocale=In[t],In[t]=i,Qt(t)}else null!=In[t]&&(null!=In[t].parentLocale?In[t]=In[t].parentLocale:null!=In[t]&&delete In[t]);return In[t]}function ie(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return En;if(!o(t)){if(e=Jt(t))return e;t=[t]}return $t(t)}function oe(){return Mo(In)}function ne(t){var e,i=t._a;return i&&f(t).overflow===-2&&(e=i[hn]<0||i[hn]>11?hn:i[dn]<1||i[dn]>st(i[an],i[hn])?dn:i[ln]<0||i[ln]>24||24===i[ln]&&(0!==i[un]||0!==i[pn]||0!==i[cn])?ln:i[un]<0||i[un]>59?un:i[pn]<0||i[pn]>59?pn:i[cn]<0||i[cn]>999?cn:-1,f(t)._overflowDayOfYear&&(edn)&&(e=dn),f(t)._overflowWeeks&&e===-1&&(e=fn),f(t)._overflowWeekday&&e===-1&&(e=mn),f(t).overflow=e),t}function se(t){var e,i,o,n,s,r,a=t._i,h=Ln.exec(a)||Fn.exec(a);if(h){for(f(t).iso=!0,e=0,i=Yn.length;e10?"YYYY ":"YY "),s="HH:mm"+(i[4]?":ss":""),i[1]){var u=new Date(i[2]),p=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][u.getDay()];if(i[1].substr(0,3)!==p)return f(t).weekdayMismatch=!0,void(t._isValid=!1)}switch(i[5].length){case 2:0===h?a=" +0000":(h=l.indexOf(i[5][1].toUpperCase())-12,a=(h<0?" -":" +")+(""+h).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:a=d[i[5]];break;default:a=d[" GMT"]}i[5]=a,t._i=i.splice(1).join(""),r=" ZZ",t._f=o+n+s+r,pe(t),f(t).rfc2822=!0}else t._isValid=!1}function ae(t){var i=Gn.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(se(t),void(t._isValid===!1&&(delete t._isValid,re(t),t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t)))))}function he(t,e,i){return null!=t?t:null!=e?e:i}function de(t){var i=new Date(e.now());return t._useUTC?[i.getUTCFullYear(),i.getUTCMonth(),i.getUTCDate()]:[i.getFullYear(),i.getMonth(),i.getDate()]}function le(t){var e,i,o,n,s=[];if(!t._d){for(o=de(t),t._w&&null==t._a[dn]&&null==t._a[hn]&&ue(t),null!=t._dayOfYear&&(n=he(t._a[an],o[an]),(t._dayOfYear>gt(n)||0===t._dayOfYear)&&(f(t)._overflowDayOfYear=!0),i=_t(n,0,t._dayOfYear),t._a[hn]=i.getUTCMonth(),t._a[dn]=i.getUTCDate()),e=0;e<3&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;e<7;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[ln]&&0===t._a[un]&&0===t._a[pn]&&0===t._a[cn]&&(t._nextDay=!0,t._a[ln]=0),t._d=(t._useUTC?_t:bt).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[ln]=24)}}function ue(t){var e,i,o,n,s,r,a,h;if(e=t._w,null!=e.GG||null!=e.W||null!=e.E)s=1,r=4,i=he(e.GG,t._a[an],Dt(_e(),1,4).year),o=he(e.W,1),n=he(e.E,1),(n<1||n>7)&&(h=!0);else{s=t._locale._week.dow,r=t._locale._week.doy;var d=Dt(_e(),s,r);i=he(e.gg,t._a[an],d.year),o=he(e.w,d.week),null!=e.d?(n=e.d,(n<0||n>6)&&(h=!0)):null!=e.e?(n=e.e+s,(e.e<0||e.e>6)&&(h=!0)):n=s}o<1||o>St(i,s,r)?f(t)._overflowWeeks=!0:null!=h?f(t)._overflowWeekday=!0:(a=xt(i,o,n,s,r),t._a[an]=a.year,t._dayOfYear=a.dayOfYear)}function pe(t){if(t._f===e.ISO_8601)return void se(t);if(t._f===e.RFC_2822)return void re(t);t._a=[],f(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=$(t._f,t._locale).match(Fo)||[],i=0;i0&&f(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),jo[s]?(o?f(t).empty=!1:f(t).unusedTokens.push(s),nt(s,o,t)):t._strict&&!o&&f(t).unusedTokens.push(s);f(t).charsLeftOver=h-d,a.length>0&&f(t).unusedInput.push(a),t._a[ln]<=12&&f(t).bigHour===!0&&t._a[ln]>0&&(f(t).bigHour=void 0),f(t).parsedDateParts=t._a.slice(0),f(t).meridiem=t._meridiem,t._a[ln]=ce(t._locale,t._a[ln],t._meridiem),le(t),ne(t)}function ce(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&e<12&&(e+=12),o||12!==e||(e=0),e):e}function fe(t){var e,i,o,n,s;if(0===t._f.length)return f(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ge(){if(!r(this._isDSTShifted))return this._isDSTShifted;var t={};if(v(t,this),t=ve(t),t._a){var e=t._isUTC?p(t._a):_e(t._a);this._isDSTShifted=this.isValid()&&x(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function ze(){return!!this.isValid()&&!this._isUTC}function We(){return!!this.isValid()&&this._isUTC}function Ve(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Ue(t,e){var i,o,n,s=t,r=null;return Me(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:a(t)?(s={},e?s[e]=t:s.milliseconds=t):(r=Xn.exec(t))?(i="-"===r[1]?-1:1,s={y:0,d:w(r[dn])*i,h:w(r[ln])*i,m:w(r[un])*i,s:w(r[pn])*i,ms:w(Oe(1e3*r[cn]))*i}):(r=Zn.exec(t))?(i="-"===r[1]?-1:1,s={y:Be(r[2],i),M:Be(r[3],i),w:Be(r[4],i),d:Be(r[5],i),h:Be(r[6],i),m:Be(r[7],i),s:Be(r[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Xe(_e(s.from),_e(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Ce(s),Me(t)&&l(t,"_locale")&&(o._locale=t._locale),o}function Be(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function qe(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Xe(t,e){var i;return t.isValid()&&e.isValid()?(e=Ne(e,t),t.isBefore(e)?i=qe(t,e):(i=qe(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i):{milliseconds:0,months:0}}function Ze(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(k(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Ue(i,o),Ke(this,n,t),this}}function Ke(t,i,o,n){var s=i._milliseconds,r=Oe(i._days),a=Oe(i._months);t.isValid()&&(n=null==n||n,s&&t._d.setTime(t._d.valueOf()+s*o),r&&W(t,"Date",z(t,"Date")+r*o),a&<(t,z(t,"Month")+a*o),n&&e.updateOffset(t,r||a))}function $e(t,e){var i=t.diff(e,"days",!0);return i<-6?"sameElse":i<-1?"lastWeek":i<0?"lastDay":i<1?"sameDay":i<2?"nextDay":i<7?"nextWeek":"sameElse"}function Je(t,i){var o=t||_e(),n=Ne(o,this).startOf("day"),s=e.calendarFormat(this,n)||"sameElse",r=i&&(T(i[s])?i[s].call(this,o):i[s]);return this.format(r||this.localeData().calendar(s,this,_e(o)))}function Qe(){return new y(this)}function ti(t,e){var i=b(t)?t:_e(t);return!(!this.isValid()||!i.isValid())&&(e=F(r(e)?"millisecond":e),"millisecond"===e?this.valueOf()>i.valueOf():i.valueOf()9999?K(t,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):T(Date.prototype.toISOString)?this.toDate().toISOString():K(t,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function li(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var t="moment",e="";this.isLocal()||(t=0===this.utcOffset()?"moment.utc":"moment.parseZone",e="Z");var i="["+t+'("]',o=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",n="-MM-DD[T]HH:mm:ss.SSS",s=e+'[")]';return this.format(i+o+n+s)}function ui(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var i=K(this,t);return this.localeData().postformat(i)}function pi(t,e){return this.isValid()&&(b(t)&&t.isValid()||_e(t).isValid())?Ue({to:this,from:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function ci(t){return this.from(_e(),t)}function fi(t,e){return this.isValid()&&(b(t)&&t.isValid()||_e(t).isValid())?Ue({from:this,to:t}).locale(this.locale()).humanize(!e):this.localeData().invalidDate()}function mi(t){return this.to(_e(),t)}function gi(t){var e;return void 0===t?this._locale._abbr:(e=ie(t),null!=e&&(this._locale=e),this)}function vi(){return this._locale}function yi(t){switch(t=F(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t&&this.weekday(0),"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this}function bi(t){return t=F(t),void 0===t||"millisecond"===t?this:("date"===t&&(t="day"),this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms"))}function _i(){return this._d.valueOf()-6e4*(this._offset||0)}function wi(){return Math.floor(this.valueOf()/1e3)}function xi(){return new Date(this.valueOf())}function Di(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Si(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function ki(){return this.isValid()?this.toISOString():null}function Ti(){return m(this)}function Ci(){return u({},f(this))}function Mi(){return f(this).overflow}function Oi(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Ei(t,e){q(0,[t,t.length],0,e)}function Pi(t){return Ri.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Ni(t){return Ri.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Ai(){return St(this.year(),1,4)}function Ii(){var t=this.localeData()._week;return St(this.year(),t.dow,t.doy)}function Ri(t,e,i,o,n){var s;return null==t?Dt(this,o,n).year:(s=St(t,o,n),e>s&&(e=s),Li.call(this,t,e,i,o,n))}function Li(t,e,i,o,n){var s=xt(t,e,i,o,n),r=_t(s.year,0,s.dayOfYear);return this.year(r.getUTCFullYear()),this.month(r.getUTCMonth()),this.date(r.getUTCDate()),this}function Fi(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Hi(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1; +return null==t?e:this.add(t-e,"d")}function Yi(t,e){e[cn]=w(1e3*("0."+t))}function ji(){return this._isUTC?"UTC":""}function Gi(){return this._isUTC?"Coordinated Universal Time":""}function zi(t){return _e(1e3*t)}function Wi(){return _e.apply(null,arguments).parseZone()}function Vi(t){return t}function Ui(t,e,i,o){var n=ie(),s=p().set(o,e);return n[i](s,t)}function Bi(t,e,i){if(a(t)&&(e=t,t=void 0),t=t||"",null!=e)return Ui(t,e,i,"month");var o,n=[];for(o=0;o<12;o++)n[o]=Ui(t,o,i,"month");return n}function qi(t,e,i,o){"boolean"==typeof t?(a(e)&&(i=e,e=void 0),e=e||""):(e=t,i=e,t=!1,a(e)&&(i=e,e=void 0),e=e||"");var n=ie(),s=t?n._week.dow:0;if(null!=i)return Ui(e,(i+s)%7,o,"day");var r,h=[];for(r=0;r<7;r++)h[r]=Ui(e,(r+s)%7,o,"day");return h}function Xi(t,e){return Bi(t,e,"months")}function Zi(t,e){return Bi(t,e,"monthsShort")}function Ki(t,e,i){return qi(t,e,i,"weekdays")}function $i(t,e,i){return qi(t,e,i,"weekdaysShort")}function Ji(t,e,i){return qi(t,e,i,"weekdaysMin")}function Qi(){var t=this._data;return this._milliseconds=rs(this._milliseconds),this._days=rs(this._days),this._months=rs(this._months),t.milliseconds=rs(t.milliseconds),t.seconds=rs(t.seconds),t.minutes=rs(t.minutes),t.hours=rs(t.hours),t.months=rs(t.months),t.years=rs(t.years),this}function to(t,e,i,o){var n=Ue(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function eo(t,e){return to(this,t,e,1)}function io(t,e){return to(this,t,e,-1)}function oo(t){return t<0?Math.floor(t):Math.ceil(t)}function no(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||s<=0&&r<=0&&a<=0||(s+=864e5*oo(ro(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=_(s/1e3),h.seconds=t%60,e=_(t/60),h.minutes=e%60,i=_(e/60),h.hours=i%24,r+=_(i/24),n=_(so(r)),a+=n,r-=oo(ro(n)),o=_(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function so(t){return 4800*t/146097}function ro(t){return 146097*t/4800}function ao(t){if(!this.isValid())return NaN;var e,i,o=this._milliseconds;if(t=F(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+so(e),"month"===t?i:i/12;switch(e=this._days+Math.round(ro(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function ho(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*w(this._months/12):NaN}function lo(t){return function(){return this.as(t)}}function uo(t){return t=F(t),this.isValid()?this[t+"s"]():NaN}function po(t){return function(){return this.isValid()?this._data[t]:NaN}}function co(){return _(this.days()/7)}function fo(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function mo(t,e,i){var o=Ue(t).abs(),n=xs(o.as("s")),s=xs(o.as("m")),r=xs(o.as("h")),a=xs(o.as("d")),h=xs(o.as("M")),d=xs(o.as("y")),l=n<=Ds.ss&&["s",n]||n0,l[4]=i,fo.apply(null,l)}function go(t){return void 0===t?xs:"function"==typeof t&&(xs=t,!0)}function vo(t,e){return void 0!==Ds[t]&&(void 0===e?Ds[t]:(Ds[t]=e,"s"===t&&(Ds.ss=e-1),!0))}function yo(t){if(!this.isValid())return this.localeData().invalidDate();var e=this.localeData(),i=mo(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function bo(){if(!this.isValid())return this.localeData().invalidDate();var t,e,i,o=Ss(this._milliseconds)/1e3,n=Ss(this._days),s=Ss(this._months);t=_(o/60),e=_(t/60),o%=60,t%=60,i=_(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o,p=this.asSeconds();return p?(p<0?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||u?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(u?u+"S":""):"P0D"}var _o,wo;wo=Array.prototype.some?Array.prototype.some:function(t){for(var e=Object(this),i=e.length>>>0,o=0;o68?1900:2e3)};var xn=G("FullYear",!0);q("w",["ww",2],"wo","week"),q("W",["WW",2],"Wo","isoWeek"),L("week","w"),L("isoWeek","W"),Y("week",5),Y("isoWeek",5),J("w",Bo),J("ww",Bo,zo),J("W",Bo),J("WW",Bo,zo),ot(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=w(t)});var Dn={dow:0,doy:6};q("d",0,"do","day"),q("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),q("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),q("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),q("e",0,0,"weekday"),q("E",0,0,"isoWeekday"),L("day","d"),L("weekday","e"),L("isoWeekday","E"),Y("day",11),Y("weekday",11),Y("isoWeekday",11),J("d",Bo),J("e",Bo),J("E",Bo),J("dd",function(t,e){return e.weekdaysMinRegex(t)}),J("ddd",function(t,e){return e.weekdaysShortRegex(t)}),J("dddd",function(t,e){return e.weekdaysRegex(t)}),ot(["dd","ddd","dddd"],function(t,e,i,o){var n=i._locale.weekdaysParse(t,o,i._strict);null!=n?e.d=n:f(i).invalidWeekday=t}),ot(["d","e","E"],function(t,e,i,o){e[o]=w(t)});var Sn="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),kn="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Tn="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Cn=nn,Mn=nn,On=nn;q("H",["HH",2],0,"hour"),q("h",["hh",2],0,Vt),q("k",["kk",2],0,Ut),q("hmm",0,0,function(){return""+Vt.apply(this)+B(this.minutes(),2)}),q("hmmss",0,0,function(){return""+Vt.apply(this)+B(this.minutes(),2)+B(this.seconds(),2)}),q("Hmm",0,0,function(){return""+this.hours()+B(this.minutes(),2)}),q("Hmmss",0,0,function(){return""+this.hours()+B(this.minutes(),2)+B(this.seconds(),2)}),Bt("a",!0),Bt("A",!1),L("hour","h"),Y("hour",13),J("a",qt),J("A",qt),J("H",Bo),J("h",Bo),J("k",Bo),J("HH",Bo,zo),J("hh",Bo,zo),J("kk",Bo,zo),J("hmm",qo),J("hmmss",Xo),J("Hmm",qo),J("Hmmss",Xo),it(["H","HH"],ln),it(["k","kk"],function(t,e,i){var o=w(t);e[ln]=24===o?0:o}),it(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),it(["h","hh"],function(t,e,i){e[ln]=w(t),f(i).bigHour=!0}),it("hmm",function(t,e,i){var o=t.length-2;e[ln]=w(t.substr(0,o)),e[un]=w(t.substr(o)),f(i).bigHour=!0}),it("hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[ln]=w(t.substr(0,o)),e[un]=w(t.substr(o,2)),e[pn]=w(t.substr(n)),f(i).bigHour=!0}),it("Hmm",function(t,e,i){var o=t.length-2;e[ln]=w(t.substr(0,o)),e[un]=w(t.substr(o))}),it("Hmmss",function(t,e,i){var o=t.length-4,n=t.length-2;e[ln]=w(t.substr(0,o)),e[un]=w(t.substr(o,2)),e[pn]=w(t.substr(n))});var En,Pn=/[ap]\.?m?\.?/i,Nn=G("Hours",!0),An={calendar:Oo,longDateFormat:Eo,invalidDate:Po,ordinal:No,dayOfMonthOrdinalParse:Ao,relativeTime:Io,months:yn,monthsShort:bn,week:Dn,weekdays:Sn,weekdaysMin:Tn,weekdaysShort:kn,meridiemParse:Pn},In={},Rn={},Ln=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Fn=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Hn=/Z|[+-]\d\d(?::?\d\d)?/,Yn=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],jn=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Gn=/^\/?Date\((\-?\d+)/i,zn=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;e.createFromInputFallback=S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),e.ISO_8601=function(){},e.RFC_2822=function(){};var Wn=S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var t=_e.apply(null,arguments);return this.isValid()&&t.isValid()?tthis?this:t:g()}),Un=function(){return Date.now?Date.now():+new Date},Bn=["year","quarter","month","week","day","hour","minute","second","millisecond"];Ee("Z",":"),Ee("ZZ",""),J("Z",en),J("ZZ",en),it(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Pe(en,t)});var qn=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Xn=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Zn=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Ue.fn=Ce.prototype,Ue.invalid=Te;var Kn=Ze(1,"add"),$n=Ze(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",e.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Jn=S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});q(0,["gg",2],0,function(){return this.weekYear()%100}),q(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Ei("gggg","weekYear"),Ei("ggggg","weekYear"),Ei("GGGG","isoWeekYear"),Ei("GGGGG","isoWeekYear"),L("weekYear","gg"),L("isoWeekYear","GG"),Y("weekYear",1),Y("isoWeekYear",1),J("G",Qo),J("g",Qo),J("GG",Bo,zo),J("gg",Bo,zo),J("GGGG",Ko,Vo),J("gggg",Ko,Vo),J("GGGGG",$o,Uo),J("ggggg",$o,Uo),ot(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=w(t)}),ot(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),q("Q",0,"Qo","quarter"),L("quarter","Q"),Y("quarter",7),J("Q",Go),it("Q",function(t,e){e[hn]=3*(w(t)-1)}),q("D",["DD",2],"Do","date"),L("date","D"),Y("date",9),J("D",Bo),J("DD",Bo,zo),J("Do",function(t,e){return t?e._dayOfMonthOrdinalParse||e._ordinalParse:e._dayOfMonthOrdinalParseLenient}),it(["D","DD"],dn),it("Do",function(t,e){e[dn]=w(t.match(Bo)[0],10)});var Qn=G("Date",!0);q("DDD",["DDDD",3],"DDDo","dayOfYear"),L("dayOfYear","DDD"),Y("dayOfYear",4),J("DDD",Zo),J("DDDD",Wo),it(["DDD","DDDD"],function(t,e,i){i._dayOfYear=w(t)}),q("m",["mm",2],0,"minute"),L("minute","m"),Y("minute",14),J("m",Bo),J("mm",Bo,zo),it(["m","mm"],un);var ts=G("Minutes",!1);q("s",["ss",2],0,"second"),L("second","s"),Y("second",15),J("s",Bo),J("ss",Bo,zo),it(["s","ss"],pn);var es=G("Seconds",!1);q("S",0,0,function(){return~~(this.millisecond()/100)}),q(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),q(0,["SSS",3],0,"millisecond"),q(0,["SSSS",4],0,function(){return 10*this.millisecond()}),q(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),q(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),q(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),q(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),q(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),L("millisecond","ms"),Y("millisecond",16),J("S",Zo,Go),J("SS",Zo,zo),J("SSS",Zo,Wo);var is;for(is="SSSS";is.length<=9;is+="S")J(is,Jo);for(is="S";is.length<=9;is+="S")it(is,Yi);var os=G("Milliseconds",!1);q("z",0,0,"zoneAbbr"),q("zz",0,0,"zoneName");var ns=y.prototype;ns.add=Kn,ns.calendar=Je,ns.clone=Qe,ns.diff=ri,ns.endOf=bi,ns.format=ui,ns.from=pi,ns.fromNow=ci,ns.to=fi,ns.toNow=mi,ns.get=V,ns.invalidAt=Mi,ns.isAfter=ti,ns.isBefore=ei,ns.isBetween=ii,ns.isSame=oi,ns.isSameOrAfter=ni,ns.isSameOrBefore=si,ns.isValid=Ti,ns.lang=Jn,ns.locale=gi,ns.localeData=vi,ns.max=Vn,ns.min=Wn,ns.parsingFlags=Ci,ns.set=U,ns.startOf=yi,ns.subtract=$n,ns.toArray=Di,ns.toObject=Si,ns.toDate=xi,ns.toISOString=di,ns.inspect=li,ns.toJSON=ki,ns.toString=hi,ns.unix=wi,ns.valueOf=_i,ns.creationData=Oi,ns.year=xn,ns.isLeapYear=yt,ns.weekYear=Pi,ns.isoWeekYear=Ni,ns.quarter=ns.quarters=Fi,ns.month=ut,ns.daysInMonth=pt,ns.week=ns.weeks=Mt,ns.isoWeek=ns.isoWeeks=Ot,ns.weeksInYear=Ii,ns.isoWeeksInYear=Ai,ns.date=Qn,ns.day=ns.days=Ft,ns.weekday=Ht,ns.isoWeekday=Yt,ns.dayOfYear=Hi,ns.hour=ns.hours=Nn,ns.minute=ns.minutes=ts,ns.second=ns.seconds=es,ns.millisecond=ns.milliseconds=os,ns.utcOffset=Ie,ns.utc=Le,ns.local=Fe,ns.parseZone=He,ns.hasAlignedHourOffset=Ye,ns.isDST=je,ns.isLocal=ze,ns.isUtcOffset=We,ns.isUtc=Ve,ns.isUTC=Ve,ns.zoneAbbr=ji,ns.zoneName=Gi,ns.dates=S("dates accessor is deprecated. Use date instead.",Qn),ns.months=S("months accessor is deprecated. Use month instead",ut),ns.years=S("years accessor is deprecated. Use year instead",xn),ns.zone=S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Re),ns.isDSTShifted=S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ge);var ss=O.prototype;ss.calendar=E,ss.longDateFormat=P,ss.invalidDate=N,ss.ordinal=A,ss.preparse=Vi,ss.postformat=Vi,ss.relativeTime=I,ss.pastFuture=R,ss.set=C,ss.months=rt,ss.monthsShort=at,ss.monthsParse=dt,ss.monthsRegex=ft,ss.monthsShortRegex=ct,ss.week=kt,ss.firstDayOfYear=Ct,ss.firstDayOfWeek=Tt,ss.weekdays=Nt,ss.weekdaysMin=It,ss.weekdaysShort=At,ss.weekdaysParse=Lt,ss.weekdaysRegex=jt,ss.weekdaysShortRegex=Gt,ss.weekdaysMinRegex=zt,ss.isPM=Xt,ss.meridiem=Zt,Qt("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===w(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=S("moment.lang is deprecated. Use moment.locale instead.",Qt),e.langData=S("moment.langData is deprecated. Use moment.localeData instead.",ie);var rs=Math.abs,as=lo("ms"),hs=lo("s"),ds=lo("m"),ls=lo("h"),us=lo("d"),ps=lo("w"),cs=lo("M"),fs=lo("y"),ms=po("milliseconds"),gs=po("seconds"),vs=po("minutes"),ys=po("hours"),bs=po("days"),_s=po("months"),ws=po("years"),xs=Math.round,Ds={ss:44,s:45,m:45,h:22,d:26,M:11},Ss=Math.abs,ks=Ce.prototype;return ks.isValid=ke,ks.abs=Qi,ks.add=eo,ks.subtract=io,ks.as=ao,ks.asMilliseconds=as,ks.asSeconds=hs,ks.asMinutes=ds,ks.asHours=ls,ks.asDays=us,ks.asWeeks=ps,ks.asMonths=cs,ks.asYears=fs,ks.valueOf=ho,ks._bubble=no,ks.get=uo,ks.milliseconds=ms,ks.seconds=gs,ks.minutes=vs,ks.hours=ys,ks.days=bs,ks.weeks=co,ks.months=_s,ks.years=ws,ks.humanize=yo,ks.toISOString=bo,ks.toString=bo,ks.toJSON=bo,ks.locale=gi,ks.localeData=vi,ks.toIsoString=S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",bo),ks.lang=Jn,q("X",0,0,"unix"),q("x",0,0,"valueOf"),J("x",Qo),J("X",on),it("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),it("x",function(t,e,i){i._d=new Date(w(t))}),e.version="2.18.1",i(_e),e.fn=ns,e.min=xe,e.max=De,e.now=Un,e.utc=p,e.unix=zi,e.months=Xi,e.isDate=h,e.locale=Qt,e.invalid=g,e.duration=Ue,e.isMoment=b,e.weekdays=Ki,e.parseZone=Wi,e.localeData=ie,e.isDuration=Me,e.monthsShort=Zi,e.weekdaysMin=Ji,e.defineLocale=te,e.updateLocale=ee,e.locales=oe,e.weekdaysShort=$i,e.normalizeUnits=F,e.relativeTimeRounding=go,e.relativeTimeThreshold=vo,e.calendarFormat=$e,e.prototype=ns,e})}).call(e,i(84)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=85},function(t,e){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){n<16&&(e[o+n++]=u[t])});n<16;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:v+1,d=a-g+(h-v)/1e4;if(d<0&&void 0===t.clockseq&&(r=r+1&16383),(d<0||a>g)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");g=a,v=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var p=t.node||f,c=0;c<6;c++)s[n+c]=p[c];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;a<16;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;e<16;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},p=0;p<256;p++)l[p]=(p+256).toString(16).substr(1),u[l[p]]=p;var c=r(),f=[1|c[0],c[1],c[2],c[3],c[4],c[5]],m=16383&(c[6]<<8|c[7]),g=0,v=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){n<0&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=(0,l.default)(this._options.type),o=0,n=i.length;on?1:or)&&(s=h,r=d)}return s},n.prototype.min=function(t){var e,i,o=this._data,n=(0,l.default)(o),s=null,r=null;for(e=0,i=n.length;ethis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function o(t){return t&&t.__esModule?t:{ +default:t}}function n(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var s=i(58),r=o(s),a=i(1),h=i(88);n.prototype.setData=function(t){var e,i,o,n,s;if(this._data){for(this._data.off&&this._data.off("*",this.listener),e=this._data.getIds({filter:this._options&&this._options.filter}),s=[],o=0,n=e.length;os)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=!e||void 0===e.animation||e.animation;this.range.setRange(r-a/2,r+a/2,{animation:h})}}},o.prototype.fit=function(t){var e,i=!t||void 0===t.animation||t.animation,o=this.itemsData&&this.itemsData.getDataSet();1===o.length&&void 0===o.get()[0].end?(e=this.getDataRange(),this.moveTo(e.min.valueOf(),{animation:i})):(e=this.getItemRange(),this.range.setRange(e.min,e.max,{animation:i}))},o.prototype.getItemRange=function(){var t=this.getDataRange(),e=null!==t.min?t.min.valueOf():null,i=null!==t.max?t.max.valueOf():null,o=null,n=null;if(null!=e&&null!=i){var r=function(t){return s.convert(t.data.start,"Date").valueOf()},a=function(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return s.convert(e,"Date").valueOf()},h=i-e;h<=0&&(h=10);var d=h/this.props.center.width;if(s.forEach(this.itemSet.items,function(t){t.groupShowing&&(t.show(),t.repositionX());var s=r(t),h=a(t);if(this.options.rtl)var l=s-(t.getWidthRight()+10)*d,u=h+(t.getWidthLeft()+10)*d;else var l=s-(t.getWidthLeft()+10)*d,u=h+(t.getWidthRight()+10)*d;li&&(i=u,n=t)}.bind(this)),o&&n){var l=o.getWidthLeft()+10,u=n.getWidthRight()+10,p=this.props.center.width-l-u;p>0&&(this.options.rtl?(e=r(o)-u*h/p,i=a(n)+l*h/p):(e=r(o)-l*h/p,i=a(n)+u*h/p))}}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=s.convert(i.start,"Date").valueOf(),n=s.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||oe)&&(e=n)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY;if(this.options.rtl)var o=s.getAbsoluteRight(this.dom.centerContainer)-e;else var o=e-s.getAbsoluteLeft(this.dom.centerContainer);var n=i-s.getAbsoluteTop(this.dom.centerContainer),r=this.itemSet.itemFromTarget(t),a=this.itemSet.groupFromTarget(t),h=p.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),c=this._toTime(o),f=d?d(c,l,u):c,m=s.getTarget(t),g=null;return null!=r?g="item":null!=h?g="custom-time":s.hasParent(m,this.timeAxis.dom.foreground)?g="axis":this.timeAxis2&&s.hasParent(m,this.timeAxis2.dom.foreground)?g="axis":s.hasParent(m,this.itemSet.dom.labelSet)?g="group-label":s.hasParent(m,this.currentTime.bar)?g="current-time":s.hasParent(m,this.dom.center)&&(g="background"),{event:t,item:r?r.id:null,group:a?a.groupId:null,what:g,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:c,snappedTime:f}},o.prototype.toggleRollingMode=function(){this.range.rolling?this.range.stopRolling():(void 0==this.options.rollingMode&&this.setOptions(this.options),this.range.startRolling())},t.exports=o},function(t,e){function i(t){if(t)return o(t)}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;n0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){var t=i.element.hammer,e=t.indexOf(d);e!==-1&&t.splice(e,1),t.length||delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;/*! Hammer.JS - v2.0.7 - 2016-04-22 * http://hammerjs.github.io/ * * Copyright (c) 2016 Jorik Tangelder; * Licensed under the MIT license */ -!function(n,s,r,a){function h(t,e,i){return setTimeout(c(t,i),e)}function d(t,e,i){return!!Array.isArray(t)&&(l(t,i[e],i),!0)}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function p(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&mt(o,i)}function c(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==yt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function g(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function v(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=A(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=I(o);e.timeStamp=wt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=H(a,h),e.distance=F(a,h),P(i,e),e.offsetDirection=L(e.deltaX,e.deltaY);var d=R(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=_t(d.x)>_t(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?Y(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,N(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==It&&s.eventType!==Lt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function N(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Ft&&(h>At||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=R(h,d,l);o=u.x,n=u.y,i=_t(u.x)>_t(u.y)?u.x:u.y,s=L(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function A(t){for(var e=[],i=0;i=_t(e)?t<0?Yt:jt:e<0?Gt:zt}function F(t,e,i){i||(i=Bt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function H(t,e,i){i||(i=Bt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function Y(t,e){return H(e[1],e[0],qt)+H(t[1],t[0],qt)}function j(t,e){return F(e[0],e[1],qt)/F(t[0],t[1],qt)}function G(){this.evEl=Zt,this.evWin=Kt,this.pressed=!1,C.apply(this,arguments)}function z(){this.evEl=Qt,this.evWin=te,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function W(){this.evTarget=ie,this.evWin=oe,this.started=!1,C.apply(this,arguments)}function U(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Lt|Ft)&&(i=D(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=se,this.targetIds={},C.apply(this,arguments)}function B(t,e){var i=x(t.touches),o=this.targetIds;if(e&(It|Rt)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===It)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,re)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,o=this.state;o<_e&&e(i.options.event+et(o)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),o>=_e&&e(i.options.event+et(o))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=De)},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return nt.prototype.attrTest.call(this,t)&&(this.state&ye||!(this.state&ye)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=it(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),p(rt,nt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ce]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ye)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),p(at,tt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ue]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(Lt|Ft)&&!n)this.reset();else if(t.eventType&It)this.reset(),this._timer=h(function(){this.state=we,this.tryEmit()},e.time,this);else if(t.eventType&Lt)return we;return De},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===we&&(t&&t.eventType&Lt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=wt(),this.manager.emit(this.options.event,this._input)))}}),p(ht,nt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ce]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ye)}}),p(dt,nt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Wt|Ut,pointers:1},getTouchAction:function(){return st.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Wt|Ut)?e=t.overallVelocity:i&Wt?e=t.overallVelocityX:i&Ut&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&_t(e)>this.options.velocity&&t.eventType&Lt},emit:function(t){var e=it(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(lt,tt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[pe]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distance1e3&&(i=1e3),e.body.dom.rollingModeBtn.style.visibility="hidden",e.currentTimeTimer=setTimeout(t,i)}var e=this;t()},n.prototype.stopRolling=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")},n.prototype.setRange=function(t,e,i,o){i||(i={}),i.byUser!==!0&&(i.byUser=!1);var n=this,s=void 0!=t?p.convert(t,"Date").valueOf():null,r=void 0!=e?p.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){var h=this.start,l=this.end,c="object"===(0,u.default)(i.animation)&&"duration"in i.animation?i.animation.duration:500,f="object"===(0,u.default)(i.animation)&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",g=p.easingFunctions[f];if(!g)throw new Error("Unknown easing function "+(0,d.default)(f)+". Choose from: "+(0,a.default)(p.easingFunctions).join(", "));var v=(new Date).valueOf(),y=!1,b=function t(){if(!n.props.touch.dragging){var e=(new Date).valueOf(),a=e-v,d=g(a/c),u=a>c,p=u||null===s?s:h+(s-h)*d,f=u||null===r?r:l+(r-l)*d;_=n._applyRange(p,f),m.updateHiddenDates(n.options.moment,n.body,n.options.hiddenDates),y=y||_;var b={start:new Date(n.start),end:new Date(n.end),byUser:i.byUser,event:i.event};if(_&&n.body.emitter.emit("rangechange",b),u){if(y&&(n.body.emitter.emit("rangechanged",b),o))return o()}else n.animationTimer=setTimeout(t,20)}};return b()}var _=this._applyRange(s,r);if(m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),_){var w={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",w),clearTimeout(n.timeoutID),n.timeoutID=setTimeout(function(){n.body.emitter.emit("rangechanged",w)},200),o)return o()}},n.prototype.getMillisecondsPerPixel=function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache},n.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},n.prototype._applyRange=function(t,e){var i,o=null!=t?p.convert(t,"Date").valueOf():this.start,n=null!=e?p.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?p.convert(this.options.max,"Date").valueOf():null,r=null!=this.options.min?p.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=r&&o=this.start-h&&n<=this.end?(o=this.start,n=this.end):(i=a-(n-o),o-=i/2,n+=i/2)}}if(null!==this.options.zoomMax){var d=parseFloat(this.options.zoomMax);d<0&&(d=0),n-o>d&&(this.end-this.start===d&&othis.end?(o=this.start,n=this.end):(i=n-o-d,o+=i/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},n.prototype.getRange=function(){return{start:this.start,end:this.end}},n.prototype.conversion=function(t,e){return n.conversion(this.start,this.end,t,e)},n.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},n.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},n.prototype._onDrag=function(t){if(t&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,n=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=n;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;if(this.options.rtl)var a=i/r*o;else var a=-i/r*o;var h=this.props.touch.start+a,d=this.props.touch.end+a,l=m.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),u=m.snapAwayFromHidden(this.body.hiddenDates,d,this.previousDelta-i,!0);if(l!=h||u!=d)return this.deltaDifference+=i,this.props.touch.start=l,this.props.touch.end=u,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,d);var p=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:p,end:c,byUser:!0,event:t}),this.body.emitter.emit("panmove")}},n.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))},n.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable){if(this.options.horizontalScroll){t.preventDefault();var i=e*(this.end-this.start)/20,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:t};this.setRange(o,n,s)}}else if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var r;r=e<0?1-e/5:1/(1+e/5);var a;if(this.rolling)a=this.start+(this.end-this.start)*this.options.rollingMode.offset;else{var h=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);a=this._pointerToDate(h)}this.zoom(r,a,e,t),t.preventDefault()}},n.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},n.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center)),this.stopRolling();var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;var h=m.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),d=m.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&d==a||(this.props.touch.start=h,this.props.touch.end=d,this.scaleOffset=1-t.scale,r=h,a=d);var l={animation:!1,byUser:!0,event:t};this.setRange(r,a,l),this.startToFront=!1,this.endToFront=!0}},n.prototype._isInsideRange=function(t){var e=t.center?t.center.x:t.clientX;if(this.options.rtl)var i=e-p.getAbsoluteLeft(this.body.dom.centerContainer);else var i=p.getAbsoluteRight(this.body.dom.centerContainer)-e;var o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},n.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},n.prototype.getPointer=function(t,e){return this.options.rtl?{x:p.getAbsoluteRight(e)-t.x,y:t.y-p.getAbsoluteTop(e)}:{x:t.x-p.getAbsoluteLeft(e),y:t.y-p.getAbsoluteTop(e)}},n.prototype.zoom=function(t,e,i,o){null==e&&(e=(this.start+this.end)/2);var n=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),r=n-s,a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0);var d=m.snapAwayFromHidden(this.body.hiddenDates,a,i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,-i,!0);d==a&&l==h||(a=d,h=l);var u={animation:!1,byUser:!0,event:o};this.setRange(a,h,u),this.startToFront=!1,this.endToFront=!0},n.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},n.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:null};this.setRange(o,n,s)},t.exports=n},function(t,e,i){i(95);e.onTouch=function(t,e){e.inputHandler=function(t){t.isFirst&&e(t)},t.on("hammer.input",e.inputHandler)},e.onRelease=function(t,e){return e.inputHandler=function(t){t.isFinal&&e(t)},t.on("hammer.input",e.inputHandler)},e.offTouch=function(t,e){t.off("hammer.input",e.inputHandler)},e.offRelease=e.offTouch,e.disablePreventDefaultVertically=function(t){var e="pan-y";return t.getTouchAction=function(){return[e]},t}},function(t,e,i){function o(t,e){this.options=null,this.props=null}var n=i(1);o.prototype.setOptions=function(t){t&&n.extend(this.options,t)},o.prototype.redraw=function(){return!1},o.prototype.destroy=function(){},o.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height; -return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=o},function(t,e){e.convertHiddenOptions=function(t,i,o){if(o&&!Array.isArray(o))return e.convertHiddenOptions(t,i,[o]);if(i.hiddenDates=[],o&&1==Array.isArray(o)){for(var n=0;n=4*a){var p=0,c=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-p,"days"),c.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),c.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(p,"months"),c.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(p,"years"),c.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;d=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(var o=0;o=r&&nt.range.end){var h={start:t.range.start,end:i};i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i);var n=t.range.conversion(o,r);return(i.valueOf()-n.offset)*n.scale}i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i);var n=t.range.conversion(o,r);return(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a),d=new Date(h+a+t.range.start);return d},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?o<0?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&t-1||h))return t.dataTransfer.dropEffect="move",h=!0,!1}function n(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var e=JSON.parse(t.dataTransfer.getData("text"));if(!e.content)return}catch(t){return!1}return h=!1,t.center={x:t.clientX,y:t.clientY},s.itemSet._onAddItem(t),s.emit("drop",s.getEventProperties(t)),!1}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",function(){this.initialDrawDone===!0&&this._redraw()}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));var s=this;this._origRedraw=this._redraw.bind(this),this._redraw=p.throttle(this._origRedraw),this.on("_change",function(t){s.itemSet&&s.itemSet.initialItemSetDrawn&&t&&1==t.queue?s._redraw():s._origRedraw()}),this.hammer=new l(this.dom.root);var r=this.hammer.get("pinch").set({enable:!0});u.disablePreventDefaultVertically(r),this.hammer.get("pan").set({threshold:5,direction:l.DIRECTION_HORIZONTAL}),this.listeners={};var a=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];a.forEach(function(t){var e=function(e){s.isActive()&&s.emit(t,e)};s.hammer.on(t,e),s.listeners[t]=e}),u.onTouch(this.hammer,function(t){s.emit("touch",t)}.bind(this)),u.onRelease(this.hammer,function(t){s.emit("release",t)}.bind(this)),this.dom.centerContainer.addEventListener?(this.dom.centerContainer.addEventListener("mousewheel",e.bind(this),!1),this.dom.centerContainer.addEventListener("DOMMouseScroll",e.bind(this),!1)):this.dom.centerContainer.attachEvent("onmousewheel",e.bind(this)),this.dom.left.parentNode.addEventListener("scroll",i.bind(this)),this.dom.right.parentNode.addEventListener("scroll",i.bind(this));var h=!1;if(this.dom.center.addEventListener("dragover",o.bind(this),!1),this.dom.center.addEventListener("drop",n.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},n.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","zoomKey","horizontalScroll","verticalScroll"];if(p.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),this.options.orientation={item:void 0,axis:void 0},"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===(0,h.default)(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new c(this.body);i.setOptions=function(t){var e=t?p.extend({},t):{};e.orientation="top",c.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);o!==-1&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&m.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new f(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=p.deepExtend({},this.options);this.components.forEach(function(t){p.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},n.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));i.length>0&&i[0].setCustomTime(t)},n.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));return e[0].getCustomTime()},n.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));if(i.length>0)return i[0].setCustomTitle(t)},n.prototype.getEventProperties=function(t){return{event:t}},n.prototype.addCustomTime=function(t,e){var i=void 0!==t?p.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+(0,r.default)(e)+" already exists");var n=new g(this.body,p.extend({},this.options,{time:i,id:e}));return this.customTimes.push(n),this.components.push(n),this._redraw(),e},n.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},n.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},n.prototype.fit=function(t,e){var i=this.getDataRange();if(null!==i.min||null!==i.max){var o=i.max-i.min,n=new Date(i.min.valueOf()-.01*o),s=new Date(i.max.valueOf()+.01*o),r=!t||void 0===t.animation||t.animation;this.range.setRange(n,s,{animation:r},e)}},n.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},n.prototype.setWindow=function(t,e,i,o){"function"==typeof arguments[2]&&(o=arguments[2],i={});var n;if(1==arguments.length){var s=arguments[0];n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n})}else if(2==arguments.length&&"function"==typeof arguments[1]){var s=arguments[0];o=arguments[1],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n},o)}else n=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:n},o)},n.prototype.moveTo=function(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.range.end-this.range.start,n=p.convert(t,"Date").valueOf(),s=n-o/2,r=n+o/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)},n.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},n.prototype.zoomIn=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=r/(1+t),h=(r-a)/2,d=n+h,l=s-h;this.setWindow(d,l,e,i)}},n.prototype.zoomOut=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=n-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}},n.prototype.redraw=function(){this._redraw()},n.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.offsetWidth){m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(p.addClassName(o.root,"vis-top"),p.removeClassName(o.root,"vis-bottom")):(p.removeClassName(o.root,"vis-top"),p.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=p.option.asSize(e.maxHeight,""),o.root.style.minHeight=p.option.asSize(e.minHeight,""),o.root.style.width=p.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top,i.borderRootHeight=o.root.offsetHeight-o.root.clientHeight,i.borderRootWidth=o.root.offsetWidth-o.root.clientWidth,0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(i.borderRootWidth=i.borderRootHeight),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var n=Math.max(i.left.height,i.center.height,i.right.height),s=i.top.height+n+i.bottom.height+i.borderRootHeight+i.border.top+i.border.bottom;o.root.style.height=p.option.asSize(e.height,s+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-i.borderRootHeight;var r=i.root.height-i.top.height-i.bottom.height-i.borderRootHeight;i.centerContainer.height=r,i.leftContainer.height=r,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-i.borderRootWidth,this.initialDrawDone||(i.scrollbarWidth=p.getScrollBarWidth()),e.verticalScroll?e.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),this._setDOM();var a=this._updateScrollTop();"top"!=e.orientation.item&&(a+=Math.max(i.centerContainer.height-i.center.height-i.border.top-i.border.bottom,0)),o.center.style.top=a+"px";var h=0==i.scrollTop?"hidden":"",d=i.scrollTop==i.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=h,o.shadowBottom.style.visibility=d,o.shadowTopLeft.style.visibility=h,o.shadowBottomLeft.style.visibility=d,o.shadowTopRight.style.visibility=h,o.shadowBottomRight.style.visibility=d,e.verticalScroll&&(o.rightContainer.className="vis-panel vis-right vis-vertical-scroll",o.leftContainer.className="vis-panel vis-left vis-vertical-scroll",o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden",o.left.style.top="0px",o.right.style.top="0px"),(!e.verticalScroll||i.center.heighti.centerContainer.height;this.hammer.get("pan").set({direction:u?l.DIRECTION_ALL:l.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});var c=5;if(t){if(this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTope&&o.push(h.id):h.lefti&&o.push(h.id)}return o},n.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;in)return}}if(i&&i!=this.groupTouchParams.group){var h=e.get(i.groupId),d=e.get(this.groupTouchParams.group.groupId);d&&h&&(this.options.groupOrderSwap(d,h,e),e.update(d),e.update(h));var u=e.getIds({order:this.options.groupOrder});if(!l.equalArray(u,this.groupTouchParams.originalOrder))for(var c=this.groupTouchParams.originalOrder,f=this.groupTouchParams.group.groupId,m=Math.min(c.length,u.length),g=0,v=0,y=0;g=m)break;if(u[g+v]!=f)if(c[g+y]!=f){var b=u.indexOf(c[g+y]),_=e.get(u[g+v]),w=e.get(c[g+y]);this.options.groupOrderSwap(_,w,e),e.update(_),e.update(w);var x=u[g+v];u[g+v]=c[g+y],u[b]=x,g++}else y=1;else v=1}}}},n.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=l.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!l.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,r=Math.min(s.length,n.length),a=0;a=r)break;var h=n.indexOf(s[a]),d=o.get(n[a]),u=o.get(s[a]);e.options.groupOrderSwap(d,u,o),o.update(d),o.update(u);var p=n[a];n[a]=s[a],n[h]=p,a++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},n.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},n.prototype._onMouseOver=function(t){var e=this.itemFromTarget(t);if(e){var i=this.itemFromRelatedTarget(t);if(e!==i){var o=e.getTitle();if(this.options.showTooltips&&o){null==this.popup&&(this.popup=new w(this.body.dom.root,this.options.tooltip.overflowMethod||"flip")),this.popup.setText(o);var n=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(n)+n.offsetLeft,t.clientY-l.getAbsoluteTop(n)+n.offsetTop),this.popup.show()}else null!=this.popup&&this.popup.hide();this.body.emitter.emit("itemover",{item:e.id,event:t})}}},n.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);if(e){var i=this.itemFromRelatedTarget(t);e!==i&&(null!=this.popup&&this.popup.hide(),this.body.emitter.emit("itemout",{item:e.id,event:t}))}},n.prototype._onMouseMove=function(t){var e=this.itemFromTarget(t);if(e&&this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden){var i=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(i)+i.offsetLeft,t.clientY-l.getAbsoluteTop(i)+i.offsetTop),this.popup.show()}},n.prototype._onMouseWheel=function(t){this.touchParams.itemIsDragging&&this._onDragEnd(t)},n.prototype._onUpdateItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this;if(t){var i=e.itemsData.get(t.id);this.options.onUpdate(i,function(t){t&&e.itemsData.getDataSet().update(t)})}}},n.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(!o){if(this.options.rtl)var n=l.getAbsoluteRight(this.dom.frame),s=n-t.center.x;else var n=l.getAbsoluteLeft(this.dom.frame),s=t.center.x-n;var r,a=this.body.util.toTime(s),h=this.body.util.getScale(),d=this.body.util.getStep();if("drop"==t.type){if(r=JSON.parse(t.dataTransfer.getData("text")),r.content=r.content?r.content:"new item",r.start=r.start?r.start:i?i(a,h,d):a,r.type=r.type||"box",r[this.itemsData._fieldId]=r.id||l.randomUUID(),"range"==r.type&&!r.end){var u=this.body.util.toTime(s+this.props.width/5);r.end=i?i(u,h,d):u}}else if(r={start:i?i(a,h,d):a,content:"new item"},r[this.itemsData._fieldId]=l.randomUUID(),"range"===this.options.type){var u=this.body.util.toTime(s+this.props.width/5);r.end=i?i(u,h,d):u}var p=this.groupFromTarget(t);p&&(r.group=p.groupId),r=this._cloneItemData(r),this.options.onAdd(r,function(i){i&&(e.itemsData.getDataSet().add(i),"drop"==t.type&&e.setSelection([i.id]))})}}},n.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],o=t.srcEvent&&t.srcEvent.shiftKey||!1;if(o&&this.options.multiselect){var s=this.itemsData.get(e.id).group,r=void 0;this.options.multiselectPerGroup&&i.length>0&&(r=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=r&&r!=s||i.push(e.id);var a=n._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||r==s){i=[];for(var h in this.items)if(this.items.hasOwnProperty(h)){var d=this.items[h],l=d.data.start,u=void 0!==d.data.end?d.data.end:l;!(l>=a.min&&u<=a.max)||this.options.multiselectPerGroup&&r!=this.itemsData.get(d.id).group||d instanceof _||i.push(d.id)}}}else{var p=i.indexOf(e.id);p==-1?i.push(e.id):i.splice(p,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},n._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},n.prototype.itemFromElement=function(t){for(var e=t;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},n.prototype.itemFromTarget=function(t){return this.itemFromElement(t.target)},n.prototype.itemFromRelatedTarget=function(t){return this.itemFromElement(t.relatedTarget)},n.prototype.groupFromTarget=function(t){var e=t.center?t.center.y:t.clientY,i=this.groupIds;i.length<=0&&this.groupsData&&(i=this.groupsData.getIds({order:this.options.groupOrder}));for(var o=0;oa&&ea)return s}else if(0===o&&e0&&this.current.milliseconds()0&&this.current.seconds()0&&this.current.minutes()0&&this.current.hours()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("week"==e)o.weekday()>2?(o.weekday(0),o.add(1,"week")):o.weekday(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return 1==t.date();case"week":return 1==t.date();case"month":return 0==t.month();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];switch(this.scale){case"week":if(this.isMajor()&&0!==t.weekday())return"";default:return e&&e.length>0?this.moment(t).format(e):""}},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)), -"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(s().add(1,"day"),"day")?" vis-tomorrow":t.isSame(s().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function n(t){return t.isSame(new Date,"year")?" vis-current-year":""}var s=this.moment,r=this.moment(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step,d=[];switch(this.scale){case"millisecond":d.push(e(a)),d.push(t(a.milliseconds()));break;case"second":d.push(e(a)),d.push(t(a.seconds()));break;case"minute":d.push(e(a)),d.push(t(a.minutes()));break;case"hour":d.push("vis-h"+a.hours()+this.step==4?"-h"+(a.hours()+4):""),d.push(e(a)),d.push(t(a.hours()));break;case"weekday":d.push("vis-"+a.format("dddd").toLowerCase()),d.push(e(a)),d.push(i(a)),d.push(t(a.date()));break;case"day":d.push("vis-day"+a.date()),d.push("vis-"+a.format("MMMM").toLowerCase()),d.push(e(a)),d.push(o(a)),d.push(this.step<=2?e(a):""),d.push(this.step<=2?"vis-"+a.format("dddd").toLowerCase():""),d.push(t(a.date()-1));break;case"week":d.push("vis-week"+a.format("w")),d.push(i(a)),d.push(t(a.week()));break;case"month":d.push("vis-"+a.format("MMMM").toLowerCase()),d.push(o(a)),d.push(t(a.month()));break;case"year":d.push("vis-year"+a.year()),d.push(n(a)),d.push(t(a.year()))}return d.filter(String).join(" ")},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e,i){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var o=this;this.itemSet.body.emitter.on("checkRangedItems",function(){o.checkRangedItems=!0}),this._create(),this.setData(e)}var s=i(58),r=o(s),a=i(1),h=i(106);i(107);n.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)},n.prototype.setData=function(t){var e,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object?i(t,this.dom.inner):void 0!==e&&null!==e?this.dom.inner.innerHTML=e:this.dom.inner.innerHTML=this.groupId||"";if(this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?a.removeClassName(this.dom.inner,"vis-hidden"):a.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups){this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),a.addClassName(this.dom.label,"vis-nesting-group");var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";this.showNested?(a.removeClassName(this.dom.label,o),a.addClassName(this.dom.label,"expanded")):(a.removeClassName(this.dom.label,"expanded"),a.addClassName(this.dom.label,o))}else if(this.nestedGroups){this.nestedGroups=null;var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";a.removeClassName(this.dom.label,o),a.removeClassName(this.dom.label,"expanded"),a.removeClassName(this.dom.label,"vis-nesting-group")}t&&t.nestedInGroup&&(a.addClassName(this.dom.label,"vis-nested-group"),this.itemSet.options&&this.itemSet.options.rtl?this.dom.inner.style.paddingRight="30px":this.dom.inner.style.paddingLeft="30px");var n=t&&t.className||null;n!=this.className&&(this.className&&(a.removeClassName(this.dom.label,this.className),a.removeClassName(this.dom.foreground,this.className),a.removeClassName(this.dom.background,this.className),a.removeClassName(this.dom.axis,this.className)),a.addClassName(this.dom.label,n),a.addClassName(this.dom.foreground,n),a.addClassName(this.dom.background,n),a.addClassName(this.dom.axis,n),this.className=n),this.style&&(a.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(a.addCssText(this.dom.label,t.style),this.style=t.style)},n.prototype.getLabelWidth=function(){return this.props.label.width},n.prototype.redraw=function(t,e,i){var o=!1,n=this.dom.marker.clientHeight;n!=this.lastMarkerHeight&&(this.lastMarkerHeight=n,a.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),this._calculateSubGroupHeights(e);var s=this.dom.foreground;this.top=s.offsetTop,this.right=s.offsetLeft,this.width=s.offsetWidth;var r=this.isVisible;this.isVisible=this._isGroupVisible(t,e);var d=i||this.stackDirty||this.isVisible&&!r;if(this._updateSubgroupsSizes(),d){if("function"==typeof this.itemSet.options.order){var l=this,u=!1;a.forEach(this.items,function(t){t.displayed||(t.redraw(),l.visibleItems.push(t)),t.repositionX(u)});var p=this.orderedItems.byStart.slice().sort(function(t,e){return l.itemSet.options.order(t.data,e.data)});h.stack(p,e,!0),this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,t)}else this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,t),this.itemSet.options.stack?h.stack(this.visibleItems,e,!0):h.nostack(this.visibleItems,e,this.subgroups,this.itemSet.options.stackSubgroups);this.stackDirty=!1}var c=this._calculateHeight(e),s=this.dom.foreground;this.top=s.offsetTop,this.right=s.offsetLeft,this.width=s.offsetWidth,o=a.updateProperty(this,"height",c)||o,o=a.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||o,o=a.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||o,this.dom.background.style.height=c+"px",this.dom.foreground.style.height=c+"px",this.dom.label.style.height=c+"px";for(var f=0,m=this.visibleItems.length;f0){var e=this;this.resetSubgroups(),a.forEach(this.visibleItems,function(i){void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=!0)})}},n.prototype._isGroupVisible=function(t,e){var i=this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop;return i},n.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,n=i[0].top+i[0].height;if(a.forEach(i,function(t){o=Math.min(o,t.top),n=Math.max(n,t.top+t.height)}),o>t.axis){var s=o-t.axis;n-=s,a.forEach(i,function(t){t.top-=s})}e=n+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},n.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},n.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},n.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),this.visibleItems.indexOf(t)==-1){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},n.prototype._addToSubgroup=function(t,e){e=e||t.data.subgroup,void 0!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),new Date(t.data.start)new Date(this.subgroups[e].end)&&(this.subgroups[e].end=t.data.end),this.subgroups[e].items.push(t)},n.prototype._updateSubgroupsSizes=function(){var t=this;if(t.subgroups)for(var e in t.subgroups){var i=t.subgroups[e].items[0].data.start,o=t.subgroups[e].items[0].data.end-1;t.subgroups[e].items.forEach(function(t){new Date(t.data.start)new Date(o)&&(o=t.data.end)}),t.subgroups[e].start=i,t.subgroups[e].end=new Date(o-1)}},n.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;i=0&&(i.items.splice(o,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}},n.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},n.prototype.order=function(){for(var t=a.toArray(this.items),e=[],i=[],o=0;o0)for(var l=0;lh}),1==this.checkRangedItems)for(this.checkRangedItems=!1,l=0;lh})}for(var l=0;l=0;s--){var r=e[s];if(n(r))break;void 0===o[r.id]&&(o[r.id]=!0,i.push(r))}for(var s=t+1;so[r].index&&e.collisionByTimes(o[n],o[r])){s=o[r];break}null!=s&&(o[n].top=s.top+s.height)}while(s)}for(var a=0;ae.right&&t.top-o.vertical+ie.top:t.left-o.horizontal+ie.left&&t.top-o.vertical+ie.top},e.collisionByTimes=function(t,e){return t.start<=e.start&&t.end>=e.start&&t.tope.top||e.start<=t.start&&e.end>=t.start&&e.topt.top}},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,this.options=i,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=(i(95),i(108));o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-range",o.prototype.isVisible=function(t){return this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.visibleFrame=document.createElement("div"),t.visibleFrame.className="vis-item-visible-frame",t.box.appendChild(t.visibleFrame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=this.editable.updateTime||this.editable.updateGroup,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");t.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(t.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintOnItemUpdateTimeTooltip(t.box),this._repaintDeleteButton(t.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end),r=void 0===this.data.align?this.options.align:this.data.align;void 0!==t&&t!==!0||(n<-o&&(n=-o),s>2*o&&(s=2*o));var a=Math.max(s-n+.5,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=a+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=a,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=a+"px",r){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(a-i,0)+"px":this.dom.content.style.left=Math.max(a-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((a-i)/2,0)+"px":this.dom.content.style.left=Math.max((a-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+e+"px)")}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.groupShowing=!0,this.dirty=!0,this.top=null,this.right=null,this.left=null,this.width=null,this.height=null,this.editable=null,this._updateEditStatus()}var s=i(62),r=o(s),a=i(58),h=o(a),d=i(95),l=i(1),u=i(82);n.prototype.stack=!0,n.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},n.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},n.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&null!=this.parent&&this.parent.itemSet._moveToGroup(this,t.group),this.parent.stackDirty=!0;var i=void 0!=t.subgroup&&this.data.subgroup!=t.subgroup;i&&null!=this.parent&&this.parent.changeSubgroup(this,this.data.subgroup,t.subgroup),this.data=t,this._updateEditStatus(),this.dirty=!0,this.displayed&&this.redraw()},n.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},n.prototype.isVisible=function(t){return!1},n.prototype.show=function(){return!1},n.prototype.hide=function(){return!1},n.prototype.redraw=function(){},n.prototype.repositionX=function(){},n.prototype.repositionY=function(){},n.prototype._repaintDragCenter=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragCenter){var t=this,e=document.createElement("div");e.className="vis-drag-center",e.dragCenterItem=this;var i=new d(e);i.on("tap",function(e){t.parent.itemSet.body.emitter.emit("click",{event:e,item:t.id})}),i.on("doubletap",function(e){e.stopPropagation(),t.parent.itemSet._onUpdateItem(t),t.parent.itemSet.body.emitter.emit("doubleClick",{event:e,item:t.id})}),this.dom.box?this.dom.dragLeft?this.dom.box.insertBefore(e,this.dom.dragLeft):this.dom.box.appendChild(e):this.dom.point&&this.dom.point.appendChild(e),this.dom.dragCenter=e}else!this.selected&&this.dom.dragCenter&&(this.dom.dragCenter.parentNode&&this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter),this.dom.dragCenter=null)},n.prototype._repaintDeleteButton=function(t){var e=(this.options.editable.overrideItems||null==this.editable)&&this.options.editable.remove||!this.options.editable.overrideItems&&null!=this.editable&&this.editable.remove;if(this.selected&&e&&!this.dom.deleteButton){var i=this,o=document.createElement("div");this.options.rtl?o.className="vis-delete-rtl":o.className="vis-delete",o.title="Delete this item",new d(o).on("tap",function(t){t.stopPropagation(),i.parent.removeFromDataSet(i)}),t.appendChild(o),this.dom.deleteButton=o}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},n.prototype._repaintOnItemUpdateTimeTooltip=function(t){if(this.options.tooltipOnItemUpdateTime){var e=(this.options.editable.updateTime||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.onItemUpdateTimeTooltip){var i=document.createElement("div");i.className="vis-onUpdateTime-tooltip",t.appendChild(i),this.dom.onItemUpdateTimeTooltip=i}else!this.selected&&this.dom.onItemUpdateTimeTooltip&&(this.dom.onItemUpdateTimeTooltip.parentNode&&this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip),this.dom.onItemUpdateTimeTooltip=null);if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?"visible":"hidden",this.options.rtl?this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right:this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left;var o,n=50,s=this.parent.itemSet.body.domProps.scrollTop;o="top"==this.options.orientation.item?this.top:this.parent.height-this.top-this.height;var r=o+this.parent.top-n<-s;r?(this.dom.onItemUpdateTimeTooltip.style.bottom="",this.dom.onItemUpdateTimeTooltip.style.top=this.height+2+"px"):(this.dom.onItemUpdateTimeTooltip.style.top="",this.dom.onItemUpdateTimeTooltip.style.bottom=this.height+2+"px");var a,h;this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template?(h=this.options.tooltipOnItemUpdateTime.template.bind(this),a=h(this.data)):(a="start: "+u(this.data.start).format("MM/DD/YYYY hh:mm"),this.data.end&&(a+="
end: "+u(this.data.end).format("MM/DD/YYYY hh:mm"))),this.dom.onItemUpdateTimeTooltip.innerHTML=a}}},n.prototype._updateContents=function(t){var e,i,o,n,s=this.parent.itemSet.itemsData.get(this.id),r=this.dom.box||this.dom.point,a=r.getElementsByClassName("vis-item-visible-frame")[0];if(this.options.visibleFrameTemplate?(n=this.options.visibleFrameTemplate.bind(this),o=n(s,r)):o="",a)if(o instanceof Object&&!(o instanceof Element))n(s,a);else{var h=this._contentToString(this.itemVisibleFrameContent)!==this._contentToString(o);if(h){if(o instanceof Element)a.innerHTML="",a.appendChild(o);else if(void 0!=o)a.innerHTML=o;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.itemVisibleFrameContent=o}}if(this.options.template?(i=this.options.template.bind(this),e=i(s,t,this.data)):e=this.data.content,e instanceof Object&&!(e instanceof Element))i(s,t);else{var h=this._contentToString(this.content)!==this._contentToString(e);if(h){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}}},n.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=(0,h.default)(this.data)}for(var i=0;it.start&&this.data.start.getTime()-ot.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-o/2t.start&&this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e,i=this.options.orientation.item;if(void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups;n[o].index;this.dom.box.style.height=this.parent.subgroups[o].height+"px","top"==i?this.dom.box.style.top=this.parent.top+this.parent.subgroups[o].top+"px":this.dom.box.style.top=this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof s?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=e+"px"},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(114),s=o(n),r=i(115),a=o(r),h=function(){function t(e,i){(0,s.default)(this,t),this.container=e,this.overflowMethod=i||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}return(0,a.default)(t,[{key:"setPosition",value:function(t,e){this.x=parseInt(t),this.y=parseInt(e)}},{key:"setText",value:function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t}},{key:"show",value:function(t){if(void 0===t&&(t=!0),t===!0){var e=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod){var a=!1,h=!0;this.y-en-this.padding&&(a=!0),s=a?this.x-i:this.x,r=h?this.y-e:this.y}else r=this.y-e,r+e+this.padding>o&&(r=o-e-this.padding),rn&&(s=n-i-this.padding),s=.4*y}if(this.options.showMinorLabels&&v){var T=this._repaintMinorText(c,_,t,w);T.style.width=x+"px"}m&&this.options.showMajorLabels?(c>0&&(void 0==D&&(D=c),T=this._repaintMajorText(c,s.getLabelMajor(),t,w)),b=this._repaintMajorLine(c,x,t,w)):v?b=this._repaintMinorLine(c,x,t,w):b&&(b.style.width=parseInt(b.style.width)+x+"px")}if(S!==k||p||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to "+k+" lines."),p=!0),this.options.showMajorLabels){var C=this.body.util.toTime(0),M=s.getLabelMajor(C),O=M.length*(this.props.majorCharWidth||10)+10;(void 0==D||O1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.printStyle=void 0;var n=i(89),s=o(n),r=i(62),a=o(r),h=i(58),d=o(h),l=i(114),u=o(l),p=i(115),c=o(p),f=i(1),m=!1,g=void 0,v="background: #FFeeee; color: #dd0000",y=function(){function t(){(0,u.default)(this,t)}return(0,c.default)(t,null,[{key:"validate",value:function(e,i,o){m=!1,g=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),m}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){void 0===o[e]&&void 0===o.__any__?t.getSuggestion(e,o,n):void 0===o[e]&&void 0!==o.__any__?"object"===t.getType(i[e])&&void 0!==o.__any__.__type__?t.checkFields(e,i,o,"__any__",o.__any__.__type__,n):t.checkFields(e,i,o,"__any__",o.__any__,n):void 0!==o[e].__type__?t.checkFields(e,i,o,e,o[e].__type__,n):t.checkFields(e,i,o,e,o[e],n)}},{key:"checkFields",value:function(e,i,o,n,s,r){var a=t.getType(i[e]),h=s[a];void 0!==h?"array"===t.getType(h)&&h.indexOf(i[e])===-1?(console.log('%cInvalid option detected in "'+e+'". Allowed values are:'+t.print(h)+' not "'+i[e]+'". '+t.printLocation(r,e),v),m=!0):"object"===a&&"__any__"!==n&&(r=f.copyAndExtendArray(r,e),t.parse(i[e],o[n],r)):void 0===s.any&&(console.log('%cInvalid type received for "'+e+'". Expected: '+t.print((0,d.default)(s))+". Received ["+a+'] "'+i[e]+'"'+t.printLocation(r,e),v),m=!0)}},{key:"getType",value:function(t){var e="undefined"==typeof t?"undefined":(0,a.default)(t);return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":t._isAMomentObject===!0?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,g,[],!0),r=8,a=4;void 0!==n.indexMatch?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n',v):s.distance<=a&&n.distance>s.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),v):n.distance<=r?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),v):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print((0,d.default)(i))+t.printLocation(o,e),v),m=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],h=e.toLowerCase(),d=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&n===!0){var p=t.findInOptions(e,i[l],f.copyAndExtendArray(o,l));s>p.distance&&(r=p.closestMatch,a=p.path,s=p.distance,d=p.indexMatch)}else l.toLowerCase().indexOf(h)!==-1&&(d=l),u=t.levenshteinDistance(e,l),s>u&&(r=l,a=f.copyArray(o),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:d}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;n3&&void 0!==arguments[3]?arguments[3]:1;(0,d.default)(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},p.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new c(n),this.wrapper=void 0}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===("undefined"==typeof t?"undefined":(0,a.default)(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),this.options.filter===!1&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,this.options.enabled===!0&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):e!==!0&&e.indexOf(n)===-1||(o=!0),o!==!1&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);if(this.options.showButton===!0){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?i-1:0),n=1;n2&&void 0!==arguments[2]&&arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,i===!0?o.innerHTML=""+t+":":o.innerHTML=t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&t.indexOf(e)!==-1&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(e*l),d=a.max,h="range increased"),a.value=e}else a.value=o;var u=document.createElement("input");u.className="vis-configuration vis-config-rangeinput",u.value=a.value;var p=this;a.onchange=function(){u.value=this.value,p._update(Number(this.value),i)},a.oninput=function(){u.value=this.value};var c=this._makeLabel(i[i.length-1],i),f=this._makeItem(i,c,a,u);""!==h&&this.popupHistory[f]!==d&&(this.popupHistory[f]=d,this._setupPopup(h,f))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=p.copyAndExtendArray(e,r);if("function"==typeof n&&(o=n(r,e),o===!1&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=i===!1)),o!==!1){s=!0;var d=this._getValue(h);if(a instanceof Array)this._handleArray(a,d,h);else if("string"==typeof a)this._makeTextInput(a,d,h);else if("boolean"==typeof a)this._makeCheckbox(a,d,h);else if(a instanceof Object){var l=!0;if(e.indexOf("physics")!==-1&&this.moduleOptions.physics.solver!==r&&(l=!1),l===!0)if(void 0!==a.enabled){var u=p.copyAndExtendArray(h,"enabled"),c=this._getValue(u);if(c===!0){var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,c,h)}else{var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+(0,s.default)(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;e0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,d.default)(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),p.isString(t)===!0){if(p.isValidRGB(t)===!0){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(p.isValidRGBA(t)===!0){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(p.isValidHex(t)===!0){var a=p.hexToRGB(t);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e===!0&&(this.previousColor=p.extend({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e===!0&&(this.initialColor=p.extend({},t)),this.color=t;var i=p.RGBToHSV(t.r,t.g,t.b),o=2*Math.PI,n=this.r*i.s,s=this.centerCoordinates.x+n*Math.sin(o*i.h),r=this.centerCoordinates.y+n*Math.cos(o*i.h);this.colorPickerSelector.style.left=s-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=r-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=p.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=p.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=p.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(this.generated===!1){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var a=2*Math.PI/360,h=1/360,d=1/this.r,l=void 0;for(s=0;s<360;s++)for(r=0;rr?r:t,e=null==e?r:e0&&l.push(u.screenToValue(n)),!c.hidden&&this.itemsData.length>0&&l.push(c.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new v(this,this.dom.container,g)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){this.id=a.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,stack:!1,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,sideBySide:!1,align:"center"},interpolation:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{},legend:{},groups:{visibility:{}}},this.options=a.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1,this.forceGraphUpdate=!0;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={}, -this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=a.option.asSize(-i.props.width),i.forceGraphUpdate=!0,i.redraw.call(i)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}var s=i(62),r=o(s),a=i(1),h=i(87),d=i(88),l=i(92),u=i(100),p=i(131),c=i(133),f=i(137),m=i(134),g=i(136),v=i(135),y="__ungrouped__";n.prototype=new u,n.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new p(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new p(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new f(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new f(this.body,this.options.legend,"right",this.options.groups),this.show()},n.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","stack","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var a={};for(this._getRelevantData(r,a,n,s),this._applySampling(r,a),e=0;e0)switch(t.options.style){case"line":l.hasOwnProperty(r[e])||(l[r[e]]=g.calcPath(a[r[e]],t)),g.draw(l[r[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||v.draw(a[r[e]],t,this.framework);break;case"bar":}}}return h.cleanupElements(this.svgElements),!1},n.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,0==o?t[a].y=t[a].orginalY+r.y:t[a].y=t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},n.prototype._getRelevantData=function(t,e,i,o){var n,s,r,h;if(t.length>0)for(s=0;s0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;l0){for(s=0;s0&&(n=this.groups[t[s]],r.stack===!0&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(o):h=h.concat(o):i[t[s]]=n.getYRange(o,t[s]));m.getStackedYRange(a,i,t,"__barStackLeft","left"),m.getStackedYRange(h,i,t,"__barStackRight","right")}},n.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=di?i:h,l=l=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),t.master===!0&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var a=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(a=this.props.titleCharHeight);var d=this.options.icons===!0?Math.max(this.options.iconWidth,a)+this.options.labelOffsetX+15:a+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-d&&this.options.visible===!0?(this.width=this.maxLabelSize+d,this.options.width=this.width+"px",h.cleanupElements(this.DOMelements.lines),h.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+d),this.options.width=this.width+"px",h.cleanupElements(this.DOMelements.lines),h.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(h.cleanupElements(this.DOMelements.lines),h.cleanupElements(this.DOMelements.labels),e=!1),e},n.prototype.convertValue=function(t){return this.scale.convertValue(t)},n.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},n.prototype._redrawLabel=function(t,e,i,o,n){var s=h.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=e,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>.5*(h.magnitudefactor*h.minorSteps[h.minorStepIdx])?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}i.prototype.setCharHeight=function(t){this.majorCharHeight=t},i.prototype.setHeight=function(t){this.containerHeight=t},i.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;i<0&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(n===!0)break}},i.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])===0},i.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},i.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},i.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},i.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},i.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&ue.x?1:-1})):this.itemsData=[]},n.prototype.getItems=function(){return this.itemsData},n.prototype.setZeroPosition=function(t){this.zeroPosition=t},n.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];a.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),a.mergeOptions(this.options,t,"interpolation"),a.mergeOptions(this.options,t,"drawPoints"),a.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==(0,r.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},n.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible||t.visible,this.style=t.style,this.setOptions(t.options)},n.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){var s=document.createElementNS("http://www.w3.org/2000/svg","svg");i={svg:s,svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":d.drawIcon(this,o,n,t,e,i);break;case"points":case"point":l.drawIcon(this,o,n,t,e,i);break;case"bar":h.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},n.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=t0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){var i=[];return i=1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o=e;if(i)for(var n=t.length-2;n>0;n--)o+=t[n][0]+","+t[n][1]+" ";else for(var n=1;n0&&(f=1/f),m=3*g*(g+v),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+p*n.screen_x+_*s.screen_x)*f,screen_y:(-b*o.screen_y+p*n.screen_y+_*s.screen_y)*f},h={screen_x:(y*n.screen_x+c*s.screen_x-b*r.screen_x)*m,screen_y:(y*n.screen_y+c*s.screen_y-b*r.screen_y)*m},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;i")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},n.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=(0,r.default)(this.groups);t.sort(function(t,e){return t\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",s=n.console&&(n.console.warn||n.console.log);return s&&s.call(n.console,o,i),t.apply(this,arguments)}}function p(t,e,i){var o,n=e.prototype;o=t.prototype=Object.create(n),o.constructor=t,o._super=n,i&&mt(o,i)}function c(t,e){return function(){return t.apply(e,arguments)}}function f(t,e){return typeof t==yt?t.apply(e?e[0]||a:a,e):t}function m(t,e){return t===a?e:t}function g(t,e,i){l(_(e),function(e){t.addEventListener(e,i,!1)})}function v(t,e,i){l(_(e),function(e){t.removeEventListener(e,i,!1)})}function y(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1}function b(t,e){return t.indexOf(e)>-1}function _(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function S(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=A(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=I(o);e.timeStamp=wt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=H(a,h),e.distance=F(a,h),P(i,e),e.offsetDirection=L(e.deltaX,e.deltaY);var d=R(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=d.x,e.overallVelocityY=d.y,e.overallVelocity=_t(d.x)>_t(d.y)?d.x:d.y,e.scale=r?j(r.pointers,o):1,e.rotation=r?Y(r.pointers,o):0,e.maxPointers=i.prevInput?e.pointers.length>i.prevInput.maxPointers?e.pointers.length:i.prevInput.maxPointers:e.pointers.length,N(i,e);var l=t.element;y(e.srcEvent.target,l)&&(l=e.srcEvent.target),e.target=l}function P(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};e.eventType!==It&&s.eventType!==Lt||(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function N(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Ft&&(h>At||r.velocity===a)){var d=e.deltaX-r.deltaX,l=e.deltaY-r.deltaY,u=R(h,d,l);o=u.x,n=u.y,i=_t(u.x)>_t(u.y)?u.x:u.y,s=L(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function A(t){for(var e=[],i=0;i=_t(e)?t<0?Yt:jt:e<0?Gt:zt}function F(t,e,i){i||(i=Bt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function H(t,e,i){i||(i=Bt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function Y(t,e){return H(e[1],e[0],qt)+H(t[1],t[0],qt)}function j(t,e){return F(e[0],e[1],qt)/F(t[0],t[1],qt)}function G(){this.evEl=Zt,this.evWin=Kt,this.pressed=!1,C.apply(this,arguments)}function z(){this.evEl=Qt,this.evWin=te,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function W(){this.evTarget=ie,this.evWin=oe,this.started=!1,C.apply(this,arguments)}function V(t,e){var i=x(t.touches),o=x(t.changedTouches);return e&(Lt|Ft)&&(i=D(i.concat(o),"identifier",!0)),[i,o]}function U(){this.evTarget=se,this.targetIds={},C.apply(this,arguments)}function B(t,e){var i=x(t.touches),o=this.targetIds;if(e&(It|Rt)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=x(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return y(t.target,h)}),e===It)for(n=0;n-1&&o.splice(t,1)};setTimeout(n,re)}}function K(t){for(var e=t.srcEvent.clientX,i=t.srcEvent.clientY,o=0;o-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(e,t)}var i=this,o=this.state;o<_e&&e(i.options.event+et(o)),e(i.options.event),t.additionalEvent&&e(t.additionalEvent),o>=_e&&e(i.options.event+et(o))},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=De)},canEmit:function(){for(var t=0;te.threshold&&n&e.direction},attrTest:function(t){return nt.prototype.attrTest.call(this,t)&&(this.state&ye||!(this.state&ye)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=it(t.direction);e&&(t.additionalEvent=this.options.event+e),this._super.emit.call(this,t)}}),p(rt,nt,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ce]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&ye)},emit:function(t){if(1!==t.scale){var e=t.scale<1?"in":"out";t.additionalEvent=this.options.event+e}this._super.emit.call(this,t)}}),p(at,tt,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ue]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(Lt|Ft)&&!n)this.reset();else if(t.eventType&It)this.reset(),this._timer=h(function(){this.state=we,this.tryEmit()},e.time,this);else if(t.eventType&Lt)return we;return De},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===we&&(t&&t.eventType&Lt?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=wt(),this.manager.emit(this.options.event,this._input)))}}),p(ht,nt,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ce]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&ye)}}),p(dt,nt,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:Wt|Vt,pointers:1},getTouchAction:function(){return st.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Wt|Vt)?e=t.overallVelocity:i&Wt?e=t.overallVelocityX:i&Vt&&(e=t.overallVelocityY),this._super.attrTest.call(this,t)&&i&t.offsetDirection&&t.distance>this.options.threshold&&t.maxPointers==this.options.pointers&&_t(e)>this.options.velocity&&t.eventType&Lt},emit:function(t){var e=it(t.offsetDirection);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(lt,tt,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[pe]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distance1e3&&(i=1e3),e.body.dom.rollingModeBtn.style.visibility="hidden",e.currentTimeTimer=setTimeout(t,i)}var e=this;t()},n.prototype.stopRolling=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),this.rolling=!1,this.body.dom.rollingModeBtn.style.visibility="visible")},n.prototype.setRange=function(t,e,i,o){i||(i={}),i.byUser!==!0&&(i.byUser=!1);var n=this,s=void 0!=t?p.convert(t,"Date").valueOf():null,r=void 0!=e?p.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),this.millisecondsPerPixelCache=void 0,i.animation){var h=this.start,l=this.end,c="object"===(0,u.default)(i.animation)&&"duration"in i.animation?i.animation.duration:500,f="object"===(0,u.default)(i.animation)&&"easingFunction"in i.animation?i.animation.easingFunction:"easeInOutQuad",g=p.easingFunctions[f];if(!g)throw new Error("Unknown easing function "+(0,d.default)(f)+". Choose from: "+(0,a.default)(p.easingFunctions).join(", "));var v=(new Date).valueOf(),y=!1,b=function t(){if(!n.props.touch.dragging){var e=(new Date).valueOf(),a=e-v,d=g(a/c),u=a>c,p=u||null===s?s:h+(s-h)*d,f=u||null===r?r:l+(r-l)*d;_=n._applyRange(p,f),m.updateHiddenDates(n.options.moment,n.body,n.options.hiddenDates),y=y||_;var b={start:new Date(n.start),end:new Date(n.end),byUser:i.byUser,event:i.event};if(_&&n.body.emitter.emit("rangechange",b),u){if(y&&(n.body.emitter.emit("rangechanged",b),o))return o()}else n.animationTimer=setTimeout(t,20)}};return b()}var _=this._applyRange(s,r);if(m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),_){var w={start:new Date(this.start),end:new Date(this.end),byUser:i.byUser,event:i.event};if(this.body.emitter.emit("rangechange",w),clearTimeout(n.timeoutID),n.timeoutID=setTimeout(function(){n.body.emitter.emit("rangechanged",w)},200),o)return o()}},n.prototype.getMillisecondsPerPixel=function(){return void 0===this.millisecondsPerPixelCache&&(this.millisecondsPerPixelCache=(this.end-this.start)/this.body.dom.center.clientWidth),this.millisecondsPerPixelCache},n.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},n.prototype._applyRange=function(t,e){var i,o=null!=t?p.convert(t,"Date").valueOf():this.start,n=null!=e?p.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?p.convert(this.options.max,"Date").valueOf():null,r=null!=this.options.min?p.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(ns&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=r&&o=this.start-h&&n<=this.end?(o=this.start,n=this.end):(i=a-(n-o),o-=i/2,n+=i/2)}}if(null!==this.options.zoomMax){var d=parseFloat(this.options.zoomMax);d<0&&(d=0),n-o>d&&(this.end-this.start===d&&othis.end?(o=this.start,n=this.end):(i=n-o-d,o+=i/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},n.prototype.getRange=function(){return{start:this.start,end:this.end}},n.prototype.conversion=function(t,e){return n.conversion(this.start,this.end,t,e)},n.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},n.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.stopRolling(),this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},n.prototype._onDrag=function(t){if(t&&this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,n=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=n;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height;if(this.options.rtl)var a=i/r*o;else var a=-i/r*o;var h=this.props.touch.start+a,d=this.props.touch.end+a,l=m.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),u=m.snapAwayFromHidden(this.body.hiddenDates,d,this.previousDelta-i,!0);if(l!=h||u!=d)return this.deltaDifference+=i,this.props.touch.start=l,this.props.touch.end=u,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,d);var p=new Date(this.start),c=new Date(this.end);this.body.emitter.emit("rangechange",{start:p,end:c,byUser:!0,event:t}),this.body.emitter.emit("panmove")}},n.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0,event:t}))},n.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),this.options.zoomKey&&!t[this.options.zoomKey]&&this.options.zoomable||!this.options.zoomable&&this.options.moveable){if(this.options.horizontalScroll){t.preventDefault();var i=e*(this.end-this.start)/20,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:t};this.setRange(o,n,s)}}else if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&e){var r;r=e<0?1-e/5:1/(1+e/5);var a;if(this.rolling)a=this.start+(this.end-this.start)*this.options.rollingMode.offset;else{var h=this.getPointer({x:t.clientX,y:t.clientY},this.body.dom.center);a=this._pointerToDate(h)}this.zoom(r,a,e,t),t.preventDefault()}},n.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},n.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=this.getPointer(t.center,this.body.dom.center)),this.stopRolling();var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),s=o-n,r=i-n+(this.props.touch.start-(i-n))*e,a=i+s+(this.props.touch.end-(i+s))*e;this.startToFront=1-e<=0,this.endToFront=e-1<=0;var h=m.snapAwayFromHidden(this.body.hiddenDates,r,1-e,!0),d=m.snapAwayFromHidden(this.body.hiddenDates,a,e-1,!0);h==r&&d==a||(this.props.touch.start=h,this.props.touch.end=d,this.scaleOffset=1-t.scale,r=h,a=d);var l={animation:!1,byUser:!0,event:t};this.setRange(r,a,l),this.startToFront=!1,this.endToFront=!0}},n.prototype._isInsideRange=function(t){var e=t.center?t.center.x:t.clientX;if(this.options.rtl)var i=e-p.getAbsoluteLeft(this.body.dom.centerContainer);else var i=p.getAbsoluteRight(this.body.dom.centerContainer)-e;var o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},n.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},n.prototype.getPointer=function(t,e){return this.options.rtl?{x:p.getAbsoluteRight(e)-t.x,y:t.y-p.getAbsoluteTop(e)}:{x:t.x-p.getAbsoluteLeft(e),y:t.y-p.getAbsoluteTop(e)}},n.prototype.zoom=function(t,e,i,o){null==e&&(e=(this.start+this.end)/2);var n=m.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=m.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),r=n-s,a=e-s+(this.start-(e-s))*t,h=e+r+(this.end-(e+r))*t;this.startToFront=!(i>0),this.endToFront=!(-i>0);var d=m.snapAwayFromHidden(this.body.hiddenDates,a,i,!0),l=m.snapAwayFromHidden(this.body.hiddenDates,h,-i,!0);d==a&&l==h||(a=d,h=l);var u={animation:!1,byUser:!0,event:o};this.setRange(a,h,u),this.startToFront=!1,this.endToFront=!0},n.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},n.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i,s={animation:!1,byUser:!0,event:null};this.setRange(o,n,s)},t.exports=n},function(t,e,i){i(95);e.onTouch=function(t,e){e.inputHandler=function(t){t.isFirst&&e(t)},t.on("hammer.input",e.inputHandler)},e.onRelease=function(t,e){return e.inputHandler=function(t){t.isFinal&&e(t)},t.on("hammer.input",e.inputHandler)},e.offTouch=function(t,e){t.off("hammer.input",e.inputHandler)},e.offRelease=e.offTouch,e.disablePreventDefaultVertically=function(t){var e="pan-y";return t.getTouchAction=function(){return[e]},t}},function(t,e,i){function o(t,e){this.options=null,this.props=null}var n=i(1);o.prototype.setOptions=function(t){t&&n.extend(this.options,t)},o.prototype.redraw=function(){return!1},o.prototype.destroy=function(){},o.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height; +return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=o},function(t,e){e.convertHiddenOptions=function(t,i,o){if(o&&!Array.isArray(o))return e.convertHiddenOptions(t,i,[o]);if(i.hiddenDates=[],o&&1==Array.isArray(o)){for(var n=0;n=4*a){var p=0,c=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-p,"days"),c.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),c.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(p,"months"),c.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(p,"years"),c.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;d=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(var o=0;o=r&&nt.range.end){var h={start:t.range.start,end:i};i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,h,i);var n=t.range.conversion(o,r);return(i.valueOf()-n.offset)*n.scale}i=e.correctTimeForHidden(t.options.moment,t.body.hiddenDates,t.range,i);var n=t.range.conversion(o,r);return(i.valueOf()-n.offset)*n.scale},e.toTime=function(t,i,o){if(0==t.body.hiddenDates.length){var n=t.range.conversion(o);return new Date(i/n.scale+n.offset)}var s=e.getHiddenDurationBetween(t.body.hiddenDates,t.range.start,t.range.end),r=t.range.end-t.range.start-s,a=r*i/o,h=e.getAccumulatedHiddenDuration(t.body.hiddenDates,t.range,a),d=new Date(h+a+t.range.start);return d},e.getHiddenDurationBetween=function(t,e,i){for(var o=0,n=0;n=e&&r=e&&r<=i&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?o<0?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&t-1||h))return t.dataTransfer.dropEffect="move",h=!0,!1}function n(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation();try{var e=JSON.parse(t.dataTransfer.getData("text"));if(!e.content)return}catch(t){return!1}return h=!1,t.center={x:t.clientX,y:t.clientY},s.itemSet._onAddItem(t),s.emit("drop",s.getEventProperties(t)),!1}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.rollingModeBtn=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.rollingModeBtn.className="vis-rolling-mode-btn",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.bottom),this.dom.root.appendChild(this.dom.rollingModeBtn),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.on("rangechange",function(){this.initialDrawDone===!0&&this._redraw()}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panmove",this._onDrag.bind(this));var s=this;this._origRedraw=this._redraw.bind(this),this._redraw=p.throttle(this._origRedraw),this.on("_change",function(t){s.itemSet&&s.itemSet.initialItemSetDrawn&&t&&1==t.queue?s._redraw():s._origRedraw()}),this.hammer=new l(this.dom.root);var r=this.hammer.get("pinch").set({enable:!0});u.disablePreventDefaultVertically(r),this.hammer.get("pan").set({threshold:5,direction:l.DIRECTION_HORIZONTAL}),this.listeners={};var a=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];a.forEach(function(t){var e=function(e){s.isActive()&&s.emit(t,e)};s.hammer.on(t,e),s.listeners[t]=e}),u.onTouch(this.hammer,function(t){s.emit("touch",t)}.bind(this)),u.onRelease(this.hammer,function(t){s.emit("release",t)}.bind(this)),this.dom.centerContainer.addEventListener?(this.dom.centerContainer.addEventListener("mousewheel",e.bind(this),!1),this.dom.centerContainer.addEventListener("DOMMouseScroll",e.bind(this),!1)):this.dom.centerContainer.attachEvent("onmousewheel",e.bind(this)),this.dom.left.parentNode.addEventListener("scroll",i.bind(this)),this.dom.right.parentNode.addEventListener("scroll",i.bind(this));var h=!1;if(this.dom.center.addEventListener("dragover",o.bind(this),!1),this.dom.center.addEventListener("drop",n.bind(this),!1),this.customTimes=[],this.touch={},this.redrawCount=0,this.initialDrawDone=!1,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},n.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","rtl","zoomKey","horizontalScroll","verticalScroll"];if(p.selectiveExtend(e,this.options,t),this.dom.rollingModeBtn.style.visibility="hidden",this.options.rtl&&(this.dom.container.style.direction="rtl",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical-rtl"),this.options.verticalScroll&&(this.options.rtl?this.dom.rightContainer.className="vis-panel vis-right vis-vertical-scroll":this.dom.leftContainer.className="vis-panel vis-left vis-vertical-scroll"),this.options.orientation={item:void 0,axis:void 0},"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"===(0,h.default)(t.orientation)&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new c(this.body);i.setOptions=function(t){var e=t?p.extend({},t):{};e.orientation="top",c.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);o!==-1&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&m.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new f(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=p.deepExtend({},this.options);this.components.forEach(function(t){p.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},n.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));i.length>0&&i[0].setCustomTime(t)},n.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));return e[0].getCustomTime()},n.prototype.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+(0,r.default)(e));if(i.length>0)return i[0].setCustomTitle(t)},n.prototype.getEventProperties=function(t){return{event:t}},n.prototype.addCustomTime=function(t,e){var i=void 0!==t?p.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+(0,r.default)(e)+" already exists");var n=new g(this.body,p.extend({},this.options,{time:i,id:e}));return this.customTimes.push(n),this.components.push(n),this._redraw(),e},n.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+(0,r.default)(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},n.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},n.prototype.fit=function(t,e){var i=this.getDataRange();if(null!==i.min||null!==i.max){var o=i.max-i.min,n=new Date(i.min.valueOf()-.01*o),s=new Date(i.max.valueOf()+.01*o),r=!t||void 0===t.animation||t.animation;this.range.setRange(n,s,{animation:r},e)}},n.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},n.prototype.setWindow=function(t,e,i,o){"function"==typeof arguments[2]&&(o=arguments[2],i={});var n;if(1==arguments.length){var s=arguments[0];n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n})}else if(2==arguments.length&&"function"==typeof arguments[1]){var s=arguments[0];o=arguments[1],n=void 0===s.animation||s.animation,this.range.setRange(s.start,s.end,{animation:n},o)}else n=!i||void 0===i.animation||i.animation,this.range.setRange(t,e,{animation:n},o)},n.prototype.moveTo=function(t,e,i){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.range.end-this.range.start,n=p.convert(t,"Date").valueOf(),s=n-o/2,r=n+o/2,a=!e||void 0===e.animation||e.animation;this.range.setRange(s,r,{animation:a},i)},n.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},n.prototype.zoomIn=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=r/(1+t),h=(r-a)/2,d=n+h,l=s-h;this.setWindow(d,l,e,i)}},n.prototype.zoomOut=function(t,e,i){if(!(!t||t<0||t>1)){"function"==typeof arguments[1]&&(i=arguments[1],e={});var o=this.getWindow(),n=o.start.valueOf(),s=o.end.valueOf(),r=s-n,a=n-r*t/2,h=s+r*t/2;this.setWindow(a,h,e,i)}},n.prototype.redraw=function(){this._redraw()},n.prototype._redraw=function(){this.redrawCount++;var t=!1,e=this.options,i=this.props,o=this.dom;if(o&&o.container&&0!=o.root.offsetWidth){m.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(p.addClassName(o.root,"vis-top"),p.removeClassName(o.root,"vis-bottom")):(p.removeClassName(o.root,"vis-top"),p.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=p.option.asSize(e.maxHeight,""),o.root.style.minHeight=p.option.asSize(e.minHeight,""),o.root.style.width=p.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top,i.borderRootHeight=o.root.offsetHeight-o.root.clientHeight,i.borderRootWidth=o.root.offsetWidth-o.root.clientWidth,0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(i.borderRootWidth=i.borderRootHeight),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var n=Math.max(i.left.height,i.center.height,i.right.height),s=i.top.height+n+i.bottom.height+i.borderRootHeight+i.border.top+i.border.bottom;o.root.style.height=p.option.asSize(e.height,s+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-i.borderRootHeight;var r=i.root.height-i.top.height-i.bottom.height-i.borderRootHeight;i.centerContainer.height=r,i.leftContainer.height=r,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-i.borderRootWidth,this.initialDrawDone||(i.scrollbarWidth=p.getScrollBarWidth()),e.verticalScroll?e.rtl?(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth+i.scrollbarWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth+i.scrollbarWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right):(i.left.width=o.leftContainer.clientWidth||-i.border.left,i.right.width=o.rightContainer.clientWidth||-i.border.right),this._setDOM();var a=this._updateScrollTop();"top"!=e.orientation.item&&(a+=Math.max(i.centerContainer.height-i.center.height-i.border.top-i.border.bottom,0)),o.center.style.top=a+"px";var h=0==i.scrollTop?"hidden":"",d=i.scrollTop==i.scrollTopMin?"hidden":"";o.shadowTop.style.visibility=h,o.shadowBottom.style.visibility=d,o.shadowTopLeft.style.visibility=h,o.shadowBottomLeft.style.visibility=d,o.shadowTopRight.style.visibility=h,o.shadowBottomRight.style.visibility=d,e.verticalScroll&&(o.rightContainer.className="vis-panel vis-right vis-vertical-scroll",o.leftContainer.className="vis-panel vis-left vis-vertical-scroll",o.shadowTopRight.style.visibility="hidden",o.shadowBottomRight.style.visibility="hidden",o.shadowTopLeft.style.visibility="hidden",o.shadowBottomLeft.style.visibility="hidden",o.left.style.top="0px",o.right.style.top="0px"),(!e.verticalScroll||i.center.heighti.centerContainer.height;this.hammer.get("pan").set({direction:u?l.DIRECTION_ALL:l.DIRECTION_HORIZONTAL}),this.components.forEach(function(e){t=e.redraw()||t});var c=5;if(t){if(this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTop0){var n=i.groupsData;i.groupsData instanceof p&&(n=i.groupsData.getDataSet()),n.get().forEach(function(t){t.nestedGroups&&(0!=t.showNested&&(t.showNested=!0),t.nestedGroups.forEach(function(e){var i=n.get(e);i&&(i.nestedInGroup=t.id,0==t.showNested&&(i.visible=!1),n.update(i))}),n.update(t))})}},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.popup=null,this.touchParams={},this.groupTouchParams={},this._create(),this.setOptions(e)}var s=i(55),r=o(s),a=i(62),h=o(a),d=i(95),l=i(1),u=i(88),p=i(92),c=i(104),f=i(100),m=i(105),g=i(109),v=i(110),y=i(111),b=i(107),_=i(112),w=i(113).default,x="__ungrouped__",D="__background__";n.prototype=new f,n.types={background:_,box:v,range:b,point:y},n.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var n=document.createElement("div");n.className="vis-labelset",this.dom.labelSet=n,this._updateUngrouped();var s=new g(D,null,this);s.show(),this.groups[D]=s,this.hammer=new d(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.get("pan").set({threshold:5,direction:d.DIRECTION_HORIZONTAL}),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.options.rtl?this.groupHammer=new d(this.body.dom.rightContainer):this.groupHammer=new d(this.body.dom.leftContainer),this.groupHammer.on("tap",this._onGroupClick.bind(this)),this.groupHammer.on("panstart",this._onGroupDragStart.bind(this)),this.groupHammer.on("panmove",this._onGroupDrag.bind(this)),this.groupHammer.on("panend",this._onGroupDragEnd.bind(this)),this.groupHammer.get("pan").set({threshold:5,direction:d.DIRECTION_VERTICAL}),this.body.dom.centerContainer.addEventListener("mouseover",this._onMouseOver.bind(this)),this.body.dom.centerContainer.addEventListener("mouseout",this._onMouseOut.bind(this)),this.body.dom.centerContainer.addEventListener("mousemove",this._onMouseMove.bind(this)),this.body.dom.centerContainer.addEventListener("contextmenu",this._onDragEnd.bind(this)),this.body.dom.centerContainer.addEventListener("mousewheel",this._onMouseWheel.bind(this)),this.show()},n.prototype.setOptions=function(t){if(t){var e=["type","rtl","align","order","stack","stackSubgroups","selectable","multiselect","multiselectPerGroup","groupOrder","dataAttributes","template","groupTemplate","visibleFrameTemplate","hide","snap","groupOrderSwap","showTooltips","tooltip","tooltipOnItemUpdateTime"];l.selectiveExtend(e,this.options,t),"itemsAlwaysDraggable"in t&&("boolean"==typeof t.itemsAlwaysDraggable?(this.options.itemsAlwaysDraggable.item=t.itemsAlwaysDraggable,this.options.itemsAlwaysDraggable.range=!1):"object"===(0,h.default)(t.itemsAlwaysDraggable)&&(l.selectiveExtend(["item","range"],this.options.itemsAlwaysDraggable,t.itemsAlwaysDraggable),this.options.itemsAlwaysDraggable.item||(this.options.itemsAlwaysDraggable.range=!1))),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"===(0,h.default)(t.orientation)&&"item"in t.orientation&&(this.options.orientation.item=t.orientation.item)), +"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"===(0,h.default)(t.margin)&&(l.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"===(0,h.default)(t.margin.item)&&l.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable,this.options.editable.overrideItems=!1):"object"===(0,h.default)(t.editable)&&l.selectiveExtend(["updateTime","updateGroup","add","remove","overrideItems"],this.options.editable,t.editable)),"groupEditable"in t&&("boolean"==typeof t.groupEditable?(this.options.groupEditable.order=t.groupEditable,this.options.groupEditable.add=t.groupEditable,this.options.groupEditable.remove=t.groupEditable):"object"===(0,h.default)(t.groupEditable)&&l.selectiveExtend(["order","add","remove"],this.options.groupEditable,t.groupEditable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup"].forEach(i),this.markDirty()}},n.prototype.markDirty=function(t){this.groupIds=[],t&&t.refreshItems&&l.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},n.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},n.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},n.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||(this.options.rtl?this.body.dom.right.appendChild(this.dom.labelSet):this.body.dom.left.appendChild(this.dom.labelSet))},n.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;ee&&o.push(h.id):h.lefti&&o.push(h.id)}return o},n.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;in)return}}if(i&&i!=this.groupTouchParams.group){var h=e.get(i.groupId),d=e.get(this.groupTouchParams.group.groupId);d&&h&&(this.options.groupOrderSwap(d,h,e),e.update(d),e.update(h));var u=e.getIds({order:this.options.groupOrder});if(!l.equalArray(u,this.groupTouchParams.originalOrder))for(var c=this.groupTouchParams.originalOrder,f=this.groupTouchParams.group.groupId,m=Math.min(c.length,u.length),g=0,v=0,y=0;g=m)break;if(u[g+v]!=f)if(c[g+y]!=f){var b=u.indexOf(c[g+y]),_=e.get(u[g+v]),w=e.get(c[g+y]);this.options.groupOrderSwap(_,w,e),e.update(_),e.update(w);var x=u[g+v];u[g+v]=c[g+y],u[b]=x,g++}else y=1;else v=1}}}},n.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=l.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!l.equalArray(n,e.groupTouchParams.originalOrder))for(var s=e.groupTouchParams.originalOrder,r=Math.min(s.length,n.length),a=0;a=r)break;var h=n.indexOf(s[a]),d=o.get(n[a]),u=o.get(s[a]);e.options.groupOrderSwap(d,u,o),o.update(d),o.update(u);var p=n[a];n[a]=s[a],n[h]=p,a++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},n.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},n.prototype._onMouseOver=function(t){var e=this.itemFromTarget(t);if(e){var i=this.itemFromRelatedTarget(t);if(e!==i){var o=e.getTitle();if(this.options.showTooltips&&o){null==this.popup&&(this.popup=new w(this.body.dom.root,this.options.tooltip.overflowMethod||"flip")),this.popup.setText(o);var n=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(n)+n.offsetLeft,t.clientY-l.getAbsoluteTop(n)+n.offsetTop),this.popup.show()}else null!=this.popup&&this.popup.hide();this.body.emitter.emit("itemover",{item:e.id,event:t})}}},n.prototype._onMouseOut=function(t){var e=this.itemFromTarget(t);if(e){var i=this.itemFromRelatedTarget(t);e!==i&&(null!=this.popup&&this.popup.hide(),this.body.emitter.emit("itemout",{item:e.id,event:t}))}},n.prototype._onMouseMove=function(t){var e=this.itemFromTarget(t);if(e&&this.options.showTooltips&&this.options.tooltip.followMouse&&this.popup&&!this.popup.hidden){var i=this.body.dom.centerContainer;this.popup.setPosition(t.clientX-l.getAbsoluteLeft(i)+i.offsetLeft,t.clientY-l.getAbsoluteTop(i)+i.offsetTop),this.popup.show()}},n.prototype._onMouseWheel=function(t){this.touchParams.itemIsDragging&&this._onDragEnd(t)},n.prototype._onUpdateItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this;if(t){var i=e.itemsData.get(t.id);this.options.onUpdate(i,function(t){t&&e.itemsData.getDataSet().update(t)})}}},n.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(!o){if(this.options.rtl)var n=l.getAbsoluteRight(this.dom.frame),s=n-t.center.x;else var n=l.getAbsoluteLeft(this.dom.frame),s=t.center.x-n;var r,a=this.body.util.toTime(s),h=this.body.util.getScale(),d=this.body.util.getStep();if("drop"==t.type){if(r=JSON.parse(t.dataTransfer.getData("text")),r.content=r.content?r.content:"new item",r.start=r.start?r.start:i?i(a,h,d):a,r.type=r.type||"box",r[this.itemsData._fieldId]=r.id||l.randomUUID(),"range"==r.type&&!r.end){var u=this.body.util.toTime(s+this.props.width/5);r.end=i?i(u,h,d):u}}else if(r={start:i?i(a,h,d):a,content:"new item"},r[this.itemsData._fieldId]=l.randomUUID(),"range"===this.options.type){var u=this.body.util.toTime(s+this.props.width/5);r.end=i?i(u,h,d):u}var p=this.groupFromTarget(t);p&&(r.group=p.groupId),r=this._cloneItemData(r),this.options.onAdd(r,function(i){i&&(e.itemsData.getDataSet().add(i),"drop"==t.type&&e.setSelection([i.id]))})}}},n.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],o=t.srcEvent&&t.srcEvent.shiftKey||!1;if(o&&this.options.multiselect){var s=this.itemsData.get(e.id).group,r=void 0;this.options.multiselectPerGroup&&i.length>0&&(r=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=r&&r!=s||i.push(e.id);var a=n._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||r==s){i=[];for(var h in this.items)if(this.items.hasOwnProperty(h)){var d=this.items[h],l=d.data.start,u=void 0!==d.data.end?d.data.end:l;!(l>=a.min&&u<=a.max)||this.options.multiselectPerGroup&&r!=this.itemsData.get(d.id).group||d instanceof _||i.push(d.id)}}}else{var p=i.indexOf(e.id);p==-1?i.push(e.id):i.splice(p,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},n._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},n.prototype.itemFromElement=function(t){for(var e=t;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},n.prototype.itemFromTarget=function(t){return this.itemFromElement(t.target)},n.prototype.itemFromRelatedTarget=function(t){return this.itemFromElement(t.relatedTarget)},n.prototype.groupFromTarget=function(t){var e=t.center?t.center.y:t.clientY,i=this.groupIds;i.length<=0&&this.groupsData&&(i=this.groupsData.getIds({order:this.options.groupOrder}));for(var o=0;oa&&ea)return s}else if(0===o&&e0&&this.current.milliseconds()0&&this.current.seconds()0&&this.current.minutes()0&&this.current.hours()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("week"==e)o.weekday()>2?(o.weekday(0),o.add(1,"week")):o.weekday(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.scale){case"year":case"month":case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.scale){case"week":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return 1==t.date();case"week":return 1==t.date();case"month":return 0==t.month();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)), +"function"==typeof this.format.minorLabels)return this.format.minorLabels(t,this.scale,this.step);var e=this.format.minorLabels[this.scale];switch(this.scale){case"week":if(this.isMajor()&&0!==t.weekday())return"";default:return e&&e.length>0?this.moment(t).format(e):""}},o.prototype.getLabelMajor=function(t){if(void 0==t&&(t=this.current),t instanceof Date&&(t=this.moment(t)),"function"==typeof this.format.majorLabels)return this.format.majorLabels(t,this.scale,this.step);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(s().add(1,"day"),"day")?" vis-tomorrow":t.isSame(s().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function n(t){return t.isSame(new Date,"year")?" vis-current-year":""}var s=this.moment,r=this.moment(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step,d=[];switch(this.scale){case"millisecond":d.push(e(a)),d.push(t(a.milliseconds()));break;case"second":d.push(e(a)),d.push(t(a.seconds()));break;case"minute":d.push(e(a)),d.push(t(a.minutes()));break;case"hour":d.push("vis-h"+a.hours()+this.step==4?"-h"+(a.hours()+4):""),d.push(e(a)),d.push(t(a.hours()));break;case"weekday":d.push("vis-"+a.format("dddd").toLowerCase()),d.push(e(a)),d.push(i(a)),d.push(t(a.date()));break;case"day":d.push("vis-day"+a.date()),d.push("vis-"+a.format("MMMM").toLowerCase()),d.push(e(a)),d.push(o(a)),d.push(this.step<=2?e(a):""),d.push(this.step<=2?"vis-"+a.format("dddd").toLowerCase():""),d.push(t(a.date()-1));break;case"week":d.push("vis-week"+a.format("w")),d.push(i(a)),d.push(t(a.week()));break;case"month":d.push("vis-"+a.format("MMMM").toLowerCase()),d.push(o(a)),d.push(t(a.month()));break;case"year":d.push("vis-year"+a.year()),d.push(n(a)),d.push(t(a.year()))}return d.filter(String).join(" ")},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e,i){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.isVisible=null,this.stackDirty=!0,e&&e.nestedGroups&&(this.nestedGroups=e.nestedGroups,0==e.showNested?this.showNested=!1:this.showNested=!0),this.nestedInGroup=null,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.itemsInRange=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var o=this;this.itemSet.body.emitter.on("checkRangedItems",function(){o.checkRangedItems=!0}),this._create(),this.setData(e)}var s=i(58),r=o(s),a=i(1),h=i(106);i(107);n.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.style.position="absolute",this.dom.marker.innerHTML="",this.dom.background.appendChild(this.dom.marker)},n.prototype.setData=function(t){var e,i;if(this.itemSet.options&&this.itemSet.options.groupTemplate?(i=this.itemSet.options.groupTemplate.bind(this),e=i(t,this.dom.inner)):e=t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else e instanceof Object?i(t,this.dom.inner):void 0!==e&&null!==e?this.dom.inner.innerHTML=e:this.dom.inner.innerHTML=this.groupId||"";if(this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?a.removeClassName(this.dom.inner,"vis-hidden"):a.addClassName(this.dom.inner,"vis-hidden"),t&&t.nestedGroups){this.nestedGroups&&this.nestedGroups==t.nestedGroups||(this.nestedGroups=t.nestedGroups),void 0===t.showNested&&void 0!==this.showNested||(0==t.showNested?this.showNested=!1:this.showNested=!0),a.addClassName(this.dom.label,"vis-nesting-group");var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";this.showNested?(a.removeClassName(this.dom.label,o),a.addClassName(this.dom.label,"expanded")):(a.removeClassName(this.dom.label,"expanded"),a.addClassName(this.dom.label,o))}else if(this.nestedGroups){this.nestedGroups=null;var o=this.itemSet.options.rtl?"collapsed-rtl":"collapsed";a.removeClassName(this.dom.label,o),a.removeClassName(this.dom.label,"expanded"),a.removeClassName(this.dom.label,"vis-nesting-group")}t&&t.nestedInGroup&&(a.addClassName(this.dom.label,"vis-nested-group"),this.itemSet.options&&this.itemSet.options.rtl?this.dom.inner.style.paddingRight="30px":this.dom.inner.style.paddingLeft="30px");var n=t&&t.className||null;n!=this.className&&(this.className&&(a.removeClassName(this.dom.label,this.className),a.removeClassName(this.dom.foreground,this.className),a.removeClassName(this.dom.background,this.className),a.removeClassName(this.dom.axis,this.className)),a.addClassName(this.dom.label,n),a.addClassName(this.dom.foreground,n),a.addClassName(this.dom.background,n),a.addClassName(this.dom.axis,n),this.className=n),this.style&&(a.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(a.addCssText(this.dom.label,t.style),this.style=t.style)},n.prototype.getLabelWidth=function(){return this.props.label.width},n.prototype.redraw=function(t,e,i){var o=!1,n=this.dom.marker.clientHeight;n!=this.lastMarkerHeight&&(this.lastMarkerHeight=n,a.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),this._calculateSubGroupHeights(e);var s=this.dom.foreground;this.top=s.offsetTop,this.right=s.offsetLeft,this.width=s.offsetWidth;var r=this.isVisible;this.isVisible=this._isGroupVisible(t,e);var d=i||this.stackDirty||this.isVisible&&!r;if(this._updateSubgroupsSizes(),d){if("function"==typeof this.itemSet.options.order){var l=this,u=!1;a.forEach(this.items,function(t){t.displayed||(t.redraw(),l.visibleItems.push(t)),t.repositionX(u)});var p=this.orderedItems.byStart.slice().sort(function(t,e){return l.itemSet.options.order(t.data,e.data)});h.stack(p,e,!0),this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,t)}else this.visibleItems=this._updateItemsInRange(this.orderedItems,this.visibleItems,t),this.itemSet.options.stack?h.stack(this.visibleItems,e,!0):h.nostack(this.visibleItems,e,this.subgroups,this.itemSet.options.stackSubgroups);this.stackDirty=!1}var c=this._calculateHeight(e),s=this.dom.foreground;this.top=s.offsetTop,this.right=s.offsetLeft,this.width=s.offsetWidth,o=a.updateProperty(this,"height",c)||o,o=a.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||o,o=a.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||o,this.dom.background.style.height=c+"px",this.dom.foreground.style.height=c+"px",this.dom.label.style.height=c+"px";for(var f=0,m=this.visibleItems.length;f0){var e=this;this.resetSubgroups(),a.forEach(this.visibleItems,function(i){void 0!==i.data.subgroup&&(e.subgroups[i.data.subgroup].height=Math.max(e.subgroups[i.data.subgroup].height,i.height+t.item.vertical),e.subgroups[i.data.subgroup].visible=!0)})}},n.prototype._isGroupVisible=function(t,e){var i=this.top<=t.body.domProps.centerContainer.height-t.body.domProps.scrollTop+e.axis&&this.top+this.height+e.axis>=-t.body.domProps.scrollTop;return i},n.prototype._calculateHeight=function(t){var e,i=this.visibleItems;if(i.length>0){var o=i[0].top,n=i[0].top+i[0].height;if(a.forEach(i,function(t){o=Math.min(o,t.top),n=Math.max(n,t.top+t.height)}),o>t.axis){var s=o-t.axis;n-=s,a.forEach(i,function(t){t.top-=s})}e=n+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},n.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},n.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},n.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),this.stackDirty=!0,void 0!==t.data.subgroup&&(this._addToSubgroup(t),this.orderSubgroups()),this.visibleItems.indexOf(t)==-1){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},n.prototype._addToSubgroup=function(t,e){e=e||t.data.subgroup,void 0!=e&&void 0===this.subgroups[e]&&(this.subgroups[e]={height:0,top:0,start:t.data.start,end:t.data.end,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),new Date(t.data.start)new Date(this.subgroups[e].end)&&(this.subgroups[e].end=t.data.end),this.subgroups[e].items.push(t)},n.prototype._updateSubgroupsSizes=function(){var t=this;if(t.subgroups)for(var e in t.subgroups){var i=t.subgroups[e].items[0].data.start,o=t.subgroups[e].items[0].data.end-1;t.subgroups[e].items.forEach(function(t){new Date(t.data.start)new Date(o)&&(o=t.data.end)}),t.subgroups[e].start=i,t.subgroups[e].end=new Date(o-1)}},n.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;i=0&&(i.items.splice(o,1),i.items.length?this._updateSubgroupsSizes():delete this.subgroups[e])}}},n.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},n.prototype.order=function(){for(var t=a.toArray(this.items),e=[],i=[],o=0;o0)for(var l=0;lh}),1==this.checkRangedItems)for(this.checkRangedItems=!1,l=0;lh})}for(var l=0;l=0;s--){var r=e[s];if(n(r))break;void 0===o[r.id]&&(o[r.id]=!0,i.push(r))}for(var s=t+1;so[r].index&&e.collisionByTimes(o[n],o[r])){s=o[r];break}null!=s&&(o[n].top=s.top+s.height)}while(s)}for(var a=0;ae.right&&t.top-o.vertical+ie.top:t.left-o.horizontal+ie.left&&t.top-o.vertical+ie.top},e.collisionByTimes=function(t,e){return t.start<=e.start&&t.end>=e.start&&t.tope.top||e.start<=t.start&&e.end>=t.start&&e.topt.top}},function(t,e,i){function o(t,e,i){if(this.props={content:{width:0}},this.overflow=!1,this.options=i,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var n=(i(95),i(108));o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-range",o.prototype.isVisible=function(t){return this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.visibleFrame=document.createElement("div"),t.visibleFrame.className="vis-item-visible-frame",t.box.appendChild(t.visibleFrame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=this.editable.updateTime||this.editable.updateGroup,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");t.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(t.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintOnItemUpdateTimeTooltip(t.box),this._repaintDeleteButton(t.box),this._repaintDragCenter(),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end),r=void 0===this.data.align?this.options.align:this.data.align;void 0!==t&&t!==!0||(n<-o&&(n=-o),s>2*o&&(s=2*o));var a=Math.max(s-n+.5,1);switch(this.overflow?(this.options.rtl?this.right=n:this.left=n,this.width=a+this.props.content.width,i=this.props.content.width):(this.options.rtl?this.right=n:this.left=n,this.width=a,i=Math.min(s-n,this.props.content.width)),this.options.rtl?this.dom.box.style.right=this.right+"px":this.dom.box.style.left=this.left+"px",this.dom.box.style.width=a+"px",r){case"left":this.options.rtl?this.dom.content.style.right="0":this.dom.content.style.left="0";break;case"right":this.options.rtl?this.dom.content.style.right=Math.max(a-i,0)+"px":this.dom.content.style.left=Math.max(a-i,0)+"px";break;case"center":this.options.rtl?this.dom.content.style.right=Math.max((a-i)/2,0)+"px":this.dom.content.style.left=Math.max((a-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:n<0?-n:0,this.options.rtl?this.dom.content.style.right=e+"px":(this.dom.content.style.left=e+"px",this.dom.content.style.width="calc(100% - "+e+"px)")}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragLeft||(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if((this.selected||this.options.itemsAlwaysDraggable.range)&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else this.selected||this.options.itemsAlwaysDraggable.range||!this.dom.dragRight||(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.groupShowing=!0,this.dirty=!0,this.top=null,this.right=null,this.left=null,this.width=null,this.height=null,this.editable=null,this._updateEditStatus()}var s=i(62),r=o(s),a=i(58),h=o(a),d=i(95),l=i(1),u=i(82);n.prototype.stack=!0,n.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},n.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},n.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&null!=this.parent&&this.parent.itemSet._moveToGroup(this,t.group),this.parent.stackDirty=!0;var i=void 0!=t.subgroup&&this.data.subgroup!=t.subgroup;i&&null!=this.parent&&this.parent.changeSubgroup(this,this.data.subgroup,t.subgroup),this.data=t,this._updateEditStatus(),this.dirty=!0,this.displayed&&this.redraw()},n.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},n.prototype.isVisible=function(t){return!1},n.prototype.show=function(){return!1},n.prototype.hide=function(){return!1},n.prototype.redraw=function(){},n.prototype.repositionX=function(){},n.prototype.repositionY=function(){},n.prototype._repaintDragCenter=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragCenter){var t=this,e=document.createElement("div");e.className="vis-drag-center",e.dragCenterItem=this;var i=new d(e);i.on("tap",function(e){t.parent.itemSet.body.emitter.emit("click",{event:e,item:t.id})}),i.on("doubletap",function(e){e.stopPropagation(),t.parent.itemSet._onUpdateItem(t),t.parent.itemSet.body.emitter.emit("doubleClick",{event:e,item:t.id})}),this.dom.box?this.dom.dragLeft?this.dom.box.insertBefore(e,this.dom.dragLeft):this.dom.box.appendChild(e):this.dom.point&&this.dom.point.appendChild(e),this.dom.dragCenter=e}else!this.selected&&this.dom.dragCenter&&(this.dom.dragCenter.parentNode&&this.dom.dragCenter.parentNode.removeChild(this.dom.dragCenter),this.dom.dragCenter=null)},n.prototype._repaintDeleteButton=function(t){var e=(this.options.editable.overrideItems||null==this.editable)&&this.options.editable.remove||!this.options.editable.overrideItems&&null!=this.editable&&this.editable.remove;if(this.selected&&e&&!this.dom.deleteButton){var i=this,o=document.createElement("div");this.options.rtl?o.className="vis-delete-rtl":o.className="vis-delete",o.title="Delete this item",new d(o).on("tap",function(t){t.stopPropagation(),i.parent.removeFromDataSet(i)}),t.appendChild(o),this.dom.deleteButton=o}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},n.prototype._repaintOnItemUpdateTimeTooltip=function(t){if(this.options.tooltipOnItemUpdateTime){var e=(this.options.editable.updateTime||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.onItemUpdateTimeTooltip){var i=document.createElement("div");i.className="vis-onUpdateTime-tooltip",t.appendChild(i),this.dom.onItemUpdateTimeTooltip=i}else!this.selected&&this.dom.onItemUpdateTimeTooltip&&(this.dom.onItemUpdateTimeTooltip.parentNode&&this.dom.onItemUpdateTimeTooltip.parentNode.removeChild(this.dom.onItemUpdateTimeTooltip),this.dom.onItemUpdateTimeTooltip=null);if(this.dom.onItemUpdateTimeTooltip){this.dom.onItemUpdateTimeTooltip.style.visibility=this.parent.itemSet.touchParams.itemIsDragging?"visible":"hidden",this.options.rtl?this.dom.onItemUpdateTimeTooltip.style.right=this.dom.content.style.right:this.dom.onItemUpdateTimeTooltip.style.left=this.dom.content.style.left;var o,n=50,s=this.parent.itemSet.body.domProps.scrollTop;o="top"==this.options.orientation.item?this.top:this.parent.height-this.top-this.height;var r=o+this.parent.top-n<-s;r?(this.dom.onItemUpdateTimeTooltip.style.bottom="",this.dom.onItemUpdateTimeTooltip.style.top=this.height+2+"px"):(this.dom.onItemUpdateTimeTooltip.style.top="",this.dom.onItemUpdateTimeTooltip.style.bottom=this.height+2+"px");var a,h;this.options.tooltipOnItemUpdateTime&&this.options.tooltipOnItemUpdateTime.template?(h=this.options.tooltipOnItemUpdateTime.template.bind(this),a=h(this.data)):(a="start: "+u(this.data.start).format("MM/DD/YYYY hh:mm"),this.data.end&&(a+="
end: "+u(this.data.end).format("MM/DD/YYYY hh:mm"))),this.dom.onItemUpdateTimeTooltip.innerHTML=a}}},n.prototype._updateContents=function(t){var e,i,o,n,s=this.parent.itemSet.itemsData.get(this.id),r=this.dom.box||this.dom.point,a=r.getElementsByClassName("vis-item-visible-frame")[0];if(this.options.visibleFrameTemplate?(n=this.options.visibleFrameTemplate.bind(this),o=n(s,r)):o="",a)if(o instanceof Object&&!(o instanceof Element))n(s,a);else{var h=this._contentToString(this.itemVisibleFrameContent)!==this._contentToString(o);if(h){if(o instanceof Element)a.innerHTML="",a.appendChild(o);else if(void 0!=o)a.innerHTML=o;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.itemVisibleFrameContent=o}}if(this.options.template?(i=this.options.template.bind(this),e=i(s,t,this.data)):e=this.data.content,e instanceof Object&&!(e instanceof Element))i(s,t);else{var h=this._contentToString(this.content)!==this._contentToString(e);if(h){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}}},n.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=(0,h.default)(this.data)}for(var i=0;it.start&&this.data.start.getTime()-ot.start&&this.data.start.getTime()t.start&&this.data.start.getTime()-o/2t.start&&this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e,i=this.options.orientation.item;if(void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups;n[o].index;this.dom.box.style.height=this.parent.subgroups[o].height+"px","top"==i?this.dom.box.style.top=this.parent.top+this.parent.subgroups[o].top+"px":this.dom.box.style.top=this.parent.top+this.parent.height-this.parent.subgroups[o].top-this.parent.subgroups[o].height+"px",this.dom.box.style.bottom=""}else this.parent instanceof s?(e=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.bottom="bottom"==i?"0":"",this.dom.box.style.top="top"==i?"0":""):(e=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=e+"px"},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=i(114),s=o(n),r=i(115),a=o(r),h=function(){function t(e,i){(0,s.default)(this,t),this.container=e,this.overflowMethod=i||"cap",this.x=0,this.y=0,this.padding=5,this.hidden=!1,this.frame=document.createElement("div"),this.frame.className="vis-tooltip",this.container.appendChild(this.frame)}return(0,a.default)(t,[{key:"setPosition",value:function(t,e){this.x=parseInt(t),this.y=parseInt(e)}},{key:"setText",value:function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t}},{key:"show",value:function(t){if(void 0===t&&(t=!0),t===!0){var e=this.frame.clientHeight,i=this.frame.clientWidth,o=this.frame.parentNode.clientHeight,n=this.frame.parentNode.clientWidth,s=0,r=0;if("flip"==this.overflowMethod){var a=!1,h=!0;this.y-en-this.padding&&(a=!0),s=a?this.x-i:this.x,r=h?this.y-e:this.y}else r=this.y-e,r+e+this.padding>o&&(r=o-e-this.padding),rn&&(s=n-i-this.padding),s=.4*y}if(this.options.showMinorLabels&&v){var T=this._repaintMinorText(c,_,t,w);T.style.width=x+"px"}m&&this.options.showMajorLabels?(c>0&&(void 0==D&&(D=c),T=this._repaintMajorText(c,s.getLabelMajor(),t,w)),b=this._repaintMajorLine(c,x,t,w)):v?b=this._repaintMinorLine(c,x,t,w):b&&(b.style.width=parseInt(b.style.width)+x+"px")}if(S!==k||p||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to "+k+" lines."),p=!0),this.options.showMajorLabels){var C=this.body.util.toTime(0),M=s.getLabelMajor(C),O=M.length*(this.props.majorCharWidth||10)+10;(void 0==D||O1e3&&(o=1e3),e.redraw(),e.body.emitter.emit("currentTimeTick"),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.printStyle=void 0;var n=i(89),s=o(n),r=i(62),a=o(r),h=i(58),d=o(h),l=i(114),u=o(l),p=i(115),c=o(p),f=i(1),m=!1,g=void 0,v="background: #FFeeee; color: #dd0000",y=function(){function t(){(0,u.default)(this,t)}return(0,c.default)(t,null,[{key:"validate",value:function(e,i,o){m=!1,g=i;var n=i;return void 0!==o&&(n=i[o]),t.parse(e,n,[]),m}},{key:"parse",value:function(e,i,o){for(var n in e)e.hasOwnProperty(n)&&t.check(n,e,i,o)}},{key:"check",value:function(e,i,o,n){void 0===o[e]&&void 0===o.__any__?t.getSuggestion(e,o,n):void 0===o[e]&&void 0!==o.__any__?"object"===t.getType(i[e])&&void 0!==o.__any__.__type__?t.checkFields(e,i,o,"__any__",o.__any__.__type__,n):t.checkFields(e,i,o,"__any__",o.__any__,n):void 0!==o[e].__type__?t.checkFields(e,i,o,e,o[e].__type__,n):t.checkFields(e,i,o,e,o[e],n)}},{key:"checkFields",value:function(e,i,o,n,s,r){var a=t.getType(i[e]),h=s[a];void 0!==h?"array"===t.getType(h)&&h.indexOf(i[e])===-1?(console.log('%cInvalid option detected in "'+e+'". Allowed values are:'+t.print(h)+' not "'+i[e]+'". '+t.printLocation(r,e),v),m=!0):"object"===a&&"__any__"!==n&&(r=f.copyAndExtendArray(r,e),t.parse(i[e],o[n],r)):void 0===s.any&&(console.log('%cInvalid type received for "'+e+'". Expected: '+t.print((0,d.default)(s))+". Received ["+a+'] "'+i[e]+'"'+t.printLocation(r,e),v),m=!0)}},{key:"getType",value:function(t){var e="undefined"==typeof t?"undefined":(0,a.default)(t);return"object"===e?null===t?"null":t instanceof Boolean?"boolean":t instanceof Number?"number":t instanceof String?"string":Array.isArray(t)?"array":t instanceof Date?"date":void 0!==t.nodeType?"dom":t._isAMomentObject===!0?"moment":"object":"number"===e?"number":"boolean"===e?"boolean":"string"===e?"string":void 0===e?"undefined":e}},{key:"getSuggestion",value:function(e,i,o){var n=t.findInOptions(e,i,o,!1),s=t.findInOptions(e,g,[],!0),r=8,a=4;void 0!==n.indexMatch?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+'Perhaps it was incomplete? Did you mean: "'+n.indexMatch+'"?\n\n',v):s.distance<=a&&n.distance>s.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),v):n.distance<=r?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),v):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print((0,d.default)(i))+t.printLocation(o,e),v),m=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],s=1e9,r="",a=[],h=e.toLowerCase(),d=void 0;for(var l in i){var u=void 0;if(void 0!==i[l].__type__&&n===!0){var p=t.findInOptions(e,i[l],f.copyAndExtendArray(o,l));s>p.distance&&(r=p.closestMatch,a=p.path,s=p.distance,d=p.indexMatch)}else l.toLowerCase().indexOf(h)!==-1&&(d=l),u=t.levenshteinDistance(e,l),s>u&&(r=l,a=f.copyArray(o),s=u)}return{closestMatch:r,path:a,distance:s,indexMatch:d}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"Problem value found at: \n",o="\n\n"+i+"options = {\n",n=0;n3&&void 0!==arguments[3]?arguments[3]:1;(0,d.default)(this,t),this.parent=e,this.changedOptions=[],this.container=i,this.allowCreation=!1,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},p.extend(this.options,this.defaultOptions),this.configureOptions=o,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new c(n),this.wrapper=void 0}return(0,u.default)(t,[{key:"setOptions",value:function(t){if(void 0!==t){this.popupHistory={},this._removePopup();var e=!0;"string"==typeof t?this.options.filter=t:t instanceof Array?this.options.filter=t.join():"object"===("undefined"==typeof t?"undefined":(0,a.default)(t))?(void 0!==t.container&&(this.options.container=t.container),void 0!==t.filter&&(this.options.filter=t.filter),void 0!==t.showButton&&(this.options.showButton=t.showButton),void 0!==t.enabled&&(e=t.enabled)):"boolean"==typeof t?(this.options.filter=!0,e=t):"function"==typeof t&&(this.options.filter=t,e=!0),this.options.filter===!1&&(e=!1),this.options.enabled=e}this._clean()}},{key:"setModuleOptions",value:function(t){this.moduleOptions=t,this.options.enabled===!0&&(this._clean(),void 0!==this.options.container&&(this.container=this.options.container),this._create())}},{key:"_create",value:function(){var t=this;this._clean(),this.changedOptions=[];var e=this.options.filter,i=0,o=!1;for(var n in this.configureOptions)this.configureOptions.hasOwnProperty(n)&&(this.allowCreation=!1,o=!1,"function"==typeof e?(o=e(n,[]),o=o||this._handleObject(this.configureOptions[n],[n],!0)):e!==!0&&e.indexOf(n)===-1||(o=!0),o!==!1&&(this.allowCreation=!0,i>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);if(this.options.showButton===!0){var s=document.createElement("div");s.className="vis-configuration vis-config-button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-configuration vis-config-button hover"},s.onmouseout=function(){s.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(s)}this._push()}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?i-1:0),n=1;n2&&void 0!==arguments[2]&&arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,i===!0?o.innerHTML=""+t+":":o.innerHTML=t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&t.indexOf(e)!==-1&&(n=t.indexOf(e));for(var s=0;ss&&1!==s&&(a.max=Math.ceil(e*l),d=a.max,h="range increased"),a.value=e}else a.value=o;var u=document.createElement("input");u.className="vis-configuration vis-config-rangeinput",u.value=a.value;var p=this;a.onchange=function(){u.value=this.value,p._update(Number(this.value),i)},a.oninput=function(){u.value=this.value};var c=this._makeLabel(i[i.length-1],i),f=this._makeItem(i,c,a,u);""!==h&&this.popupHistory[f]!==d&&(this.popupHistory[f]=d,this._setupPopup(h,f))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter1&&void 0!==arguments[1]?arguments[1]:[],i=arguments.length>2&&void 0!==arguments[2]&&arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],h=p.copyAndExtendArray(e,r);if("function"==typeof n&&(o=n(r,e),o===!1&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,h,!0),this.allowCreation=i===!1)),o!==!1){s=!0;var d=this._getValue(h);if(a instanceof Array)this._handleArray(a,d,h);else if("string"==typeof a)this._makeTextInput(a,d,h);else if("boolean"==typeof a)this._makeCheckbox(a,d,h);else if(a instanceof Object){var l=!0;if(e.indexOf("physics")!==-1&&this.moduleOptions.physics.solver!==r&&(l=!1),l===!0)if(void 0!==a.enabled){var u=p.copyAndExtendArray(h,"enabled"),c=this._getValue(u);if(c===!0){var f=this._makeLabel(r,h,!0);this._makeItem(h,f),s=this._handleObject(a,h)||s}else this._makeCheckbox(a,c,h)}else{var m=this._makeLabel(r,h,!0);this._makeItem(h,m),s=this._handleObject(a,h)||s}}else console.error("dont know how to handle",a,r,h)}}return s}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",i),this.initialized=!0,this.parent.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=i;t="true"===t||t,t="false"!==t&&t;for(var n=0;nvar options = "+(0,s.default)(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;e0&&void 0!==arguments[0]?arguments[0]:1;(0,a.default)(this,t),this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:144.5,y:144.5},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=function(){},this.closeCallback=function(){},this._create()}return(0,d.default)(t,[{key:"insertTo",value:function(t){void 0!==this.hammer&&(this.hammer.destroy(),this.hammer=void 0),this.container=t,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}},{key:"setUpdateCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker update callback is not a function.");this.updateCallback=t}},{key:"setCloseCallback",value:function(t){if("function"!=typeof t)throw new Error("Function attempted to set as colorPicker closing callback is not a function.");this.closeCallback=t}},{key:"_isColorString",value:function(t){var e={black:"#000000",navy:"#000080",darkblue:"#00008B",mediumblue:"#0000CD",blue:"#0000FF",darkgreen:"#006400",green:"#008000",teal:"#008080",darkcyan:"#008B8B",deepskyblue:"#00BFFF",darkturquoise:"#00CED1",mediumspringgreen:"#00FA9A",lime:"#00FF00",springgreen:"#00FF7F",aqua:"#00FFFF",cyan:"#00FFFF",midnightblue:"#191970",dodgerblue:"#1E90FF",lightseagreen:"#20B2AA",forestgreen:"#228B22",seagreen:"#2E8B57",darkslategray:"#2F4F4F",limegreen:"#32CD32",mediumseagreen:"#3CB371",turquoise:"#40E0D0",royalblue:"#4169E1",steelblue:"#4682B4",darkslateblue:"#483D8B",mediumturquoise:"#48D1CC",indigo:"#4B0082",darkolivegreen:"#556B2F",cadetblue:"#5F9EA0",cornflowerblue:"#6495ED",mediumaquamarine:"#66CDAA",dimgray:"#696969",slateblue:"#6A5ACD",olivedrab:"#6B8E23",slategray:"#708090",lightslategray:"#778899",mediumslateblue:"#7B68EE",lawngreen:"#7CFC00",chartreuse:"#7FFF00",aquamarine:"#7FFFD4",maroon:"#800000",purple:"#800080",olive:"#808000",gray:"#808080",skyblue:"#87CEEB",lightskyblue:"#87CEFA",blueviolet:"#8A2BE2",darkred:"#8B0000",darkmagenta:"#8B008B",saddlebrown:"#8B4513",darkseagreen:"#8FBC8F",lightgreen:"#90EE90",mediumpurple:"#9370D8",darkviolet:"#9400D3",palegreen:"#98FB98",darkorchid:"#9932CC",yellowgreen:"#9ACD32",sienna:"#A0522D",brown:"#A52A2A",darkgray:"#A9A9A9",lightblue:"#ADD8E6",greenyellow:"#ADFF2F",paleturquoise:"#AFEEEE",lightsteelblue:"#B0C4DE",powderblue:"#B0E0E6",firebrick:"#B22222",darkgoldenrod:"#B8860B",mediumorchid:"#BA55D3",rosybrown:"#BC8F8F",darkkhaki:"#BDB76B",silver:"#C0C0C0",mediumvioletred:"#C71585",indianred:"#CD5C5C",peru:"#CD853F",chocolate:"#D2691E",tan:"#D2B48C",lightgrey:"#D3D3D3",palevioletred:"#D87093",thistle:"#D8BFD8",orchid:"#DA70D6",goldenrod:"#DAA520",crimson:"#DC143C",gainsboro:"#DCDCDC",plum:"#DDA0DD",burlywood:"#DEB887",lightcyan:"#E0FFFF",lavender:"#E6E6FA",darksalmon:"#E9967A",violet:"#EE82EE",palegoldenrod:"#EEE8AA",lightcoral:"#F08080",khaki:"#F0E68C",aliceblue:"#F0F8FF",honeydew:"#F0FFF0",azure:"#F0FFFF",sandybrown:"#F4A460",wheat:"#F5DEB3",beige:"#F5F5DC",whitesmoke:"#F5F5F5",mintcream:"#F5FFFA",ghostwhite:"#F8F8FF",salmon:"#FA8072",antiquewhite:"#FAEBD7",linen:"#FAF0E6",lightgoldenrodyellow:"#FAFAD2",oldlace:"#FDF5E6",red:"#FF0000",fuchsia:"#FF00FF",magenta:"#FF00FF",deeppink:"#FF1493",orangered:"#FF4500",tomato:"#FF6347",hotpink:"#FF69B4",coral:"#FF7F50",darkorange:"#FF8C00",lightsalmon:"#FFA07A",orange:"#FFA500",lightpink:"#FFB6C1",pink:"#FFC0CB",gold:"#FFD700",peachpuff:"#FFDAB9",navajowhite:"#FFDEAD",moccasin:"#FFE4B5",bisque:"#FFE4C4",mistyrose:"#FFE4E1",blanchedalmond:"#FFEBCD",papayawhip:"#FFEFD5",lavenderblush:"#FFF0F5",seashell:"#FFF5EE",cornsilk:"#FFF8DC",lemonchiffon:"#FFFACD",floralwhite:"#FFFAF0",snow:"#FFFAFA",yellow:"#FFFF00",lightyellow:"#FFFFE0",ivory:"#FFFFF0",white:"#FFFFFF"};if("string"==typeof t)return e[t]}},{key:"setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if("none"!==t){var i=void 0,o=this._isColorString(t);if(void 0!==o&&(t=o),p.isString(t)===!0){if(p.isValidRGB(t)===!0){var n=t.substr(4).substr(0,t.length-5).split(",");i={r:n[0],g:n[1],b:n[2],a:1}}else if(p.isValidRGBA(t)===!0){var r=t.substr(5).substr(0,t.length-6).split(",");i={r:r[0],g:r[1],b:r[2],a:r[3]}}else if(p.isValidHex(t)===!0){var a=p.hexToRGB(t);i={r:a.r,g:a.g,b:a.b,a:1}}}else if(t instanceof Object&&void 0!==t.r&&void 0!==t.g&&void 0!==t.b){var h=void 0!==t.a?t.a:"1.0";i={r:t.r,g:t.g,b:t.b,a:h}}if(void 0===i)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+(0,s.default)(t));this._setColor(i,e)}}},{key:"show",value:function(){void 0!==this.closeCallback&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}},{key:"_hide",value:function(){var t=this,e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];e===!0&&(this.previousColor=p.extend({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",setTimeout(function(){void 0!==t.closeCallback&&(t.closeCallback(),t.closeCallback=void 0)},0)}},{key:"_save",value:function(){this.updateCallback(this.color),this.applied=!1,this._hide()}},{key:"_apply",value:function(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}},{key:"_loadLast",value:function(){void 0!==this.previousColor?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}},{key:"_setColor",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];e===!0&&(this.initialColor=p.extend({},t)),this.color=t;var i=p.RGBToHSV(t.r,t.g,t.b),o=2*Math.PI,n=this.r*i.s,s=this.centerCoordinates.x+n*Math.sin(o*i.h),r=this.centerCoordinates.y+n*Math.cos(o*i.h);this.colorPickerSelector.style.left=s-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=r-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(t)}},{key:"_setOpacity",value:function(t){this.color.a=t/100,this._updatePicker(this.color)}},{key:"_setBrightness",value:function(t){var e=p.RGBToHSV(this.color.r,this.color.g,this.color.b);e.v=t/100;var i=p.HSVToRGB(e.h,e.s,e.v);i.a=this.color.a,this.color=i,this._updatePicker()}},{key:"_updatePicker",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.color,e=p.RGBToHSV(t.r,t.g,t.b),i=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(i.webkitBackingStorePixelRatio||i.mozBackingStorePixelRatio||i.msBackingStorePixelRatio||i.oBackingStorePixelRatio||i.backingStorePixelRatio||1)),i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var o=this.colorPickerCanvas.clientWidth,n=this.colorPickerCanvas.clientHeight;i.clearRect(0,0,o,n),i.putImageData(this.hueCircle,0,0),i.fillStyle="rgba(0,0,0,"+(1-e.v)+")",i.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),i.fill(),this.brightnessRange.value=100*e.v,this.opacityRange.value=100*t.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}},{key:"_setSize",value:function(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}},{key:"_create",value:function(){if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){var t=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(e)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch(t){}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch(t){}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);var i=this;this.opacityRange.onchange=function(){i._setOpacity(this.value)},this.opacityRange.oninput=function(){i._setOpacity(this.value)},this.brightnessRange.onchange=function(){i._setBrightness(this.value)},this.brightnessRange.oninput=function(){i._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerHTML="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerHTML="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerHTML="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerHTML="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerHTML="cancel",this.cancelButton.onclick=this._hide.bind(this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerHTML="apply",this.applyButton.onclick=this._apply.bind(this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerHTML="save",this.saveButton.onclick=this._save.bind(this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerHTML="load last",this.loadButton.onclick=this._loadLast.bind(this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}},{key:"_bindHammer",value:function(){var t=this;this.drag={},this.pinch={},this.hammer=new l(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),u.onTouch(this.hammer,function(e){t._moveSelector(e)}),this.hammer.on("tap",function(e){t._moveSelector(e)}),this.hammer.on("panstart",function(e){t._moveSelector(e)}),this.hammer.on("panmove",function(e){t._moveSelector(e)}),this.hammer.on("panend",function(e){t._moveSelector(e)})}},{key:"_generateHueCircle",value:function(){if(this.generated===!1){var t=this.colorPickerCanvas.getContext("2d");void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.colorPickerCanvas.clientWidth,i=this.colorPickerCanvas.clientHeight;t.clearRect(0,0,e,i);var o=void 0,n=void 0,s=void 0,r=void 0;this.centerCoordinates={x:.5*e,y:.5*i},this.r=.49*e;var a=2*Math.PI/360,h=1/360,d=1/this.r,l=void 0;for(s=0;s<360;s++)for(r=0;rr?r:t,e=null==e?r:e0&&l.push(u.screenToValue(n)),!c.hidden&&this.itemsData.length>0&&l.push(c.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new v(this,this.dom.container,g)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}function n(t,e){this.id=a.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,stack:!1,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,sideBySide:!1,align:"center"},interpolation:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{},legend:{},groups:{visibility:{}}},this.options=a.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1,this.forceGraphUpdate=!0;var i=this;this.itemsData=null, +this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=a.option.asSize(-i.props.width),i.forceGraphUpdate=!0,i.redraw.call(i)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups}}var s=i(62),r=o(s),a=i(1),h=i(87),d=i(88),l=i(92),u=i(100),p=i(131),c=i(133),f=i(137),m=i(134),g=i(136),v=i(135),y="__ungrouped__";n.prototype=new u,n.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new p(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new p(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new f(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new f(this.body,this.options.legend,"right",this.options.groups),this.show()},n.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","stack","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var a={};for(this._getRelevantData(r,a,n,s),this._applySampling(r,a),e=0;e0)switch(t.options.style){case"line":l.hasOwnProperty(r[e])||(l[r[e]]=g.calcPath(a[r[e]],t)),g.draw(l[r[e]],t,this.framework);case"point":case"points":"point"!=t.options.style&&"points"!=t.options.style&&1!=t.options.drawPoints.enabled||v.draw(a[r[e]],t,this.framework);break;case"bar":}}}return h.cleanupElements(this.svgElements),!1},n.prototype._stack=function(t,e){var i,o,n,s,r;i=0;for(var a=0;at[a].x){r=e[h],s=0==h?r:e[h-1],i=h;break}}void 0===r&&(s=e[e.length-1],r=e[e.length-1]),o=r.x-s.x,n=r.y-s.y,0==o?t[a].y=t[a].orginalY+r.y:t[a].y=t[a].orginalY+n/o*(t[a].x-s.x)+s.y}},n.prototype._getRelevantData=function(t,e,i,o){var n,s,r,h;if(t.length>0)for(s=0;s0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=new Array(r),l=0;l0){for(s=0;s0&&(n=this.groups[t[s]],r.stack===!0&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(o):h=h.concat(o):i[t[s]]=n.getYRange(o,t[s]));m.getStackedYRange(a,i,t,"__barStackLeft","left"),m.getStackedYRange(h,i,t,"__barStackRight","right")}},n.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=di?i:h,l=l=0&&t._redrawLabel(o-2,e.val,i,"vis-y-axis vis-major",t.props.majorCharHeight),t.master===!0&&(n?t._redrawLine(o,i,"vis-grid vis-horizontal vis-major",t.options.majorLinesOffset,t.props.majorLineWidth):t._redrawLine(o,i,"vis-grid vis-horizontal vis-minor",t.options.minorLinesOffset,t.props.minorLineWidth))});var a=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(a=this.props.titleCharHeight);var d=this.options.icons===!0?Math.max(this.options.iconWidth,a)+this.options.labelOffsetX+15:a+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-d&&this.options.visible===!0?(this.width=this.maxLabelSize+d,this.options.width=this.width+"px",h.cleanupElements(this.DOMelements.lines),h.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+d),this.options.width=this.width+"px",h.cleanupElements(this.DOMelements.lines),h.cleanupElements(this.DOMelements.labels),this.redraw(),e=!0):(h.cleanupElements(this.DOMelements.lines),h.cleanupElements(this.DOMelements.labels),e=!1),e},n.prototype.convertValue=function(t){return this.scale.convertValue(t)},n.prototype.screenToValue=function(t){return this.scale.screenToValue(t)},n.prototype._redrawLabel=function(t,e,i,o,n){var s=h.getDOMElement("div",this.DOMelements.labels,this.dom.frame);s.className=o,s.innerHTML=e,"left"===i?(s.style.left="-"+this.options.labelOffsetX+"px",s.style.textAlign="right"):(s.style.right="-"+this.options.labelOffsetX+"px",s.style.textAlign="left"),s.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var r=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize6&&void 0!==arguments[6]&&arguments[6],a=arguments.length>7&&void 0!==arguments[7]&&arguments[7];if(this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.customLines=null,this.containerHeight=n,this.majorCharHeight=s,this._start=t,this._end=e,this.scale=1,this.minorStepIdx=-1,this.magnitudefactor=1,this.determineScale(),this.zeroAlign=r,this.autoScaleStart=i,this.autoScaleEnd=o,this.formattingFunction=a,i||o){var h=this,d=function(t){var e=t-t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx]);return t%(h.magnitudefactor*h.minorSteps[h.minorStepIdx])>.5*(h.magnitudefactor*h.minorSteps[h.minorStepIdx])?e+h.magnitudefactor*h.minorSteps[h.minorStepIdx]:e};i&&(this._start-=2*this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._start=d(this._start)),o&&(this._end+=this.magnitudefactor*this.minorSteps[this.minorStepIdx],this._end=d(this._end)),this.determineScale()}}i.prototype.setCharHeight=function(t){this.majorCharHeight=t},i.prototype.setHeight=function(t){this.containerHeight=t},i.prototype.determineScale=function(){var t=this._end-this._start;this.scale=this.containerHeight/t;var e=this.majorCharHeight/this.scale,i=t>0?Math.round(Math.log(t)/Math.LN10):0;this.minorStepIdx=-1,this.magnitudefactor=Math.pow(10,i);var o=0;i<0&&(o=i);for(var n=!1,s=o;Math.abs(s)<=Math.abs(i);s++){this.magnitudefactor=Math.pow(10,s);for(var r=0;r=e){n=!0,this.minorStepIdx=r;break}}if(n===!0)break}},i.prototype.is_major=function(t){return t%(this.magnitudefactor*this.majorSteps[this.minorStepIdx])===0},i.prototype.getStep=function(){return this.magnitudefactor*this.minorSteps[this.minorStepIdx]},i.prototype.getFirstMajor=function(){var t=this.magnitudefactor*this.majorSteps[this.minorStepIdx];return this.convertValue(this._start+(t-this._start%t)%t)},i.prototype.formatValue=function(t){var e=t.toPrecision(5);return"function"==typeof this.formattingFunction&&(e=this.formattingFunction(t)),"number"==typeof e?""+e:"string"==typeof e?e:t.toPrecision(5)},i.prototype.getLines=function(){for(var t=[],e=this.getStep(),i=(e-this._start%e)%e,o=this._start+i;this._end-o>1e-5;o+=e)o!=this._start&&t.push({major:this.is_major(o),y:this.convertValue(o),val:this.formatValue(o)});return t},i.prototype.followScale=function(t){var e=this.minorStepIdx,i=this._start,o=this._end,n=this,s=function(){n.magnitudefactor*=2},r=function(){n.magnitudefactor/=2};t.minorStepIdx<=1&&this.minorStepIdx<=1||t.minorStepIdx>1&&this.minorStepIdx>1||(t.minorStepIdxo+1e-5)r(),d=!1;else{if(!this.autoScaleStart&&this._start=0)){r(),d=!1;continue}console.warn("Can't adhere to given 'min' range, due to zeroalign")}this.autoScaleStart&&this.autoScaleEnd&&ue.x?1:-1})):this.itemsData=[]},n.prototype.getItems=function(){return this.itemsData},n.prototype.setZeroPosition=function(t){this.zeroPosition=t},n.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart","zIndex","excludeFromStacking","excludeFromLegend"];a.selectiveDeepExtend(e,this.options,t),"function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),a.mergeOptions(this.options,t,"interpolation"),a.mergeOptions(this.options,t,"drawPoints"),a.mergeOptions(this.options,t,"shaded"),t.interpolation&&"object"==(0,r.default)(t.interpolation)&&t.interpolation.parametrization&&("uniform"==t.interpolation.parametrization?this.options.interpolation.alpha=0:"chordal"==t.interpolation.parametrization?this.options.interpolation.alpha=1:(this.options.interpolation.parametrization="centripetal",this.options.interpolation.alpha=.5))}},n.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"vis-graph-group"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible||t.visible,this.style=t.style,this.setOptions(t.options)},n.prototype.getLegend=function(t,e,i,o,n){if(void 0==i||null==i){var s=document.createElementNS("http://www.w3.org/2000/svg","svg");i={svg:s,svgElements:{},options:this.options,groups:[this]}}switch(void 0!=o&&null!=o||(o=0),void 0!=n&&null!=n||(n=.5*e),this.options.style){case"line":d.drawIcon(this,o,n,t,e,i);break;case"points":case"point":l.drawIcon(this,o,n,t,e,i);break;case"bar":h.drawIcon(this,o,n,t,e,i)}return{icon:i.svg,label:this.content,orientation:this.options.yAxisOrientation}},n.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,o=0;ot[o].y?t[o].y:e,i=i0&&(i=Math.min(i,Math.abs(e[o-1].screen_x-e[o].screen_x))),0===i&&(void 0===t[e[o].screen_x]&&(t[e[o].screen_x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].screen_x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=t0){t.sort(function(t,e){return t.screen_x===e.screen_x?t.groupIde[s].screen_y?e[s].screen_y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0){var i=[];return i=1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t)}},o.drawIcon=function(t,e,i,o,s,r){var a,h,d=.5*s,l=n.getSVGElement("rect",r.svgElements,r.svg);if(l.setAttributeNS(null,"x",e),l.setAttributeNS(null,"y",i-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","vis-outline"),a=n.getSVGElement("path",r.svgElements,r.svg),a.setAttributeNS(null,"class",t.className),void 0!==t.style&&a.setAttributeNS(null,"style",t.style),a.setAttributeNS(null,"d","M"+e+","+i+" L"+(e+o)+","+i),1==t.options.shaded.enabled&&(h=n.getSVGElement("path",r.svgElements,r.svg),"top"==t.options.shaded.orientation?h.setAttributeNS(null,"d","M"+e+", "+(i-d)+"L"+e+","+i+" L"+(e+o)+","+i+" L"+(e+o)+","+(i-d)):h.setAttributeNS(null,"d","M"+e+","+i+" L"+e+","+(i+d)+" L"+(e+o)+","+(i+d)+"L"+(e+o)+","+i),h.setAttributeNS(null,"class",t.className+" vis-icon-fill"),void 0!==t.options.shaded.style&&""!==t.options.shaded.style&&h.setAttributeNS(null,"style",t.options.shaded.style)),1==t.options.drawPoints.enabled){var u={style:t.options.drawPoints.style,styles:t.options.drawPoints.styles,size:t.options.drawPoints.size,className:t.className};n.drawPoint(e+.5*o,i,u,r.svgElements,r.svg)}},o.drawShading=function(t,e,i,o){if(1==e.options.shaded.enabled){var s=Number(o.svg.style.height.replace("px","")),r=n.getSVGElement("path",o.svgElements,o.svg),a="L";1==e.options.interpolation.enabled&&(a="C");var h,d=0;d="top"==e.options.shaded.orientation?0:"bottom"==e.options.shaded.orientation?s:Math.min(Math.max(0,e.zeroPosition),s),h="group"==e.options.shaded.orientation&&null!=i&&void 0!=i?"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" L"+i[i.length-1][0]+","+i[i.length-1][1]+" "+this.serializePath(i,a,!0)+i[0][0]+","+i[0][1]+" Z":"M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,a,!1)+" V"+d+" H"+t[0][0]+" Z",r.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&r.setAttributeNS(null,"style",e.options.shaded.style),r.setAttributeNS(null,"d",h)}},o.draw=function(t,e,i){if(null!=t&&void 0!=t){var o=n.getSVGElement("path",i.svgElements,i.svg);o.setAttributeNS(null,"class",e.className),void 0!==e.style&&o.setAttributeNS(null,"style",e.style);var s="L";1==e.options.interpolation.enabled&&(s="C"),o.setAttributeNS(null,"d","M"+t[0][0]+","+t[0][1]+" "+this.serializePath(t,s,!1))}},o.serializePath=function(t,e,i){if(t.length<2)return"";var o=e;if(i)for(var n=t.length-2;n>0;n--)o+=t[n][0]+","+t[n][1]+" ";else for(var n=1;n0&&(f=1/f),m=3*g*(g+v),m>0&&(m=1/m),a={screen_x:(-b*o.screen_x+p*n.screen_x+_*s.screen_x)*f,screen_y:(-b*o.screen_y+p*n.screen_y+_*s.screen_y)*f},h={screen_x:(y*n.screen_x+c*s.screen_x-b*r.screen_x)*m,screen_y:(y*n.screen_y+c*s.screen_y-b*r.screen_y)*m},0==a.screen_x&&0==a.screen_y&&(a=n),0==h.screen_x&&0==h.screen_y&&(h=s),x.push([a.screen_x,a.screen_y]),x.push([h.screen_x,h.screen_y]),x.push([s.screen_x,s.screen_y]);return x},o._linear=function(t){for(var e=[],i=0;i")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},n.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=(0,r.default)(this.groups);t.sort(function(t,e){return t 2 && arguments[2] !== undefined ? arguments[2] : false; @@ -247,12 +247,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Extend object a with the properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Object} a - * @param {... Object} b - * @return {Object} a + /** + * Extend object a with the properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Object} a + * @param {... Object} b + * @return {Object} a */ exports.protoExtend = function (a, b) { for (var i = 1; i < arguments.length; i++) { @@ -264,12 +264,12 @@ return /******/ (function(modules) { // webpackBootstrap return a; }; - /** - * Extend object a with the properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Object} a - * @param {... Object} b - * @return {Object} a + /** + * Extend object a with the properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Object} a + * @param {... Object} b + * @return {Object} a */ exports.extend = function (a, b) { for (var i = 1; i < arguments.length; i++) { @@ -283,13 +283,13 @@ return /******/ (function(modules) { // webpackBootstrap return a; }; - /** - * Extend object a with selected properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Array.} props - * @param {Object} a - * @param {Object} b - * @return {Object} a + /** + * Extend object a with selected properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Array.} props + * @param {Object} a + * @param {Object} b + * @return {Object} a */ exports.selectiveExtend = function (props, a, b) { if (!Array.isArray(props)) { @@ -309,13 +309,13 @@ return /******/ (function(modules) { // webpackBootstrap return a; }; - /** - * Extend object a with selected properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Array.} props - * @param {Object} a - * @param {Object} b - * @return {Object} a + /** + * Extend object a with selected properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Array.} props + * @param {Object} a + * @param {Object} b + * @return {Object} a */ exports.selectiveDeepExtend = function (props, a, b) { var allowDeletion = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; @@ -357,13 +357,13 @@ return /******/ (function(modules) { // webpackBootstrap return a; }; - /** - * Extend object a with selected properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Array.} props - * @param {Object} a - * @param {Object} b - * @return {Object} a + /** + * Extend object a with selected properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Array.} props + * @param {Object} a + * @param {Object} b + * @return {Object} a */ exports.selectiveNotDeepExtend = function (props, a, b) { var allowDeletion = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; @@ -406,14 +406,14 @@ return /******/ (function(modules) { // webpackBootstrap return a; }; - /** - * Deep extend an object a with the properties of object b - * @param {Object} a - * @param {Object} b - * @param [Boolean] protoExtend --> optional parameter. If true, the prototype values will also be extended. - * (ie. the options objects that inherit from others will also get the inherited options) - * @param [Boolean] global --> optional parameter. If true, the values of fields that are null will not deleted - * @returns {Object} + /** + * Deep extend an object a with the properties of object b + * @param {Object} a + * @param {Object} b + * @param [Boolean] protoExtend --> optional parameter. If true, the prototype values will also be extended. + * (ie. the options objects that inherit from others will also get the inherited options) + * @param [Boolean] global --> optional parameter. If true, the values of fields that are null will not deleted + * @returns {Object} */ exports.deepExtend = function (a, b, protoExtend, allowDeletion) { for (var prop in b) { @@ -448,12 +448,12 @@ return /******/ (function(modules) { // webpackBootstrap return a; }; - /** - * Test whether all elements in two arrays are equal. - * @param {Array} a - * @param {Array} b - * @return {boolean} Returns true if both arrays have the same length and same - * elements. + /** + * Test whether all elements in two arrays are equal. + * @param {Array} a + * @param {Array} b + * @return {boolean} Returns true if both arrays have the same length and same + * elements. */ exports.equalArray = function (a, b) { if (a.length != b.length) return false; @@ -465,14 +465,14 @@ return /******/ (function(modules) { // webpackBootstrap return true; }; - /** - * Convert an object to another type - * @param {Boolean | Number | String | Date | Moment | Null | undefined} object - * @param {String | undefined} type Name of the type. Available types: - * 'Boolean', 'Number', 'String', - * 'Date', 'Moment', ISODate', 'ASPDate'. - * @return {*} object - * @throws Error + /** + * Convert an object to another type + * @param {Boolean | Number | String | Date | Moment | Null | undefined} object + * @param {String | undefined} type Name of the type. Available types: + * 'Boolean', 'Number', 'String', + * 'Date', 'Moment', ISODate', 'ASPDate'. + * @return {*} object + * @throws Error */ exports.convert = function (object, type) { var match; @@ -598,10 +598,10 @@ return /******/ (function(modules) { // webpackBootstrap // code from http://momentjs.com/ var ASPDateRegex = /^\/?Date\((\-?\d+)/i; - /** - * Get the type of an object, for example exports.getType([]) returns 'Array' - * @param {*} object - * @return {String} type + /** + * Get the type of an object, for example exports.getType([]) returns 'Array' + * @param {*} object + * @return {String} type */ exports.getType = function (object) { var type = typeof object === 'undefined' ? 'undefined' : (0, _typeof3['default'])(object); @@ -639,12 +639,12 @@ return /******/ (function(modules) { // webpackBootstrap return type; }; - /** - * Used to extend an array and copy it. This is used to propagate paths recursively. - * - * @param arr - * @param newValue - * @returns {Array} + /** + * Used to extend an array and copy it. This is used to propagate paths recursively. + * + * @param arr + * @param newValue + * @returns {Array} */ exports.copyAndExtendArray = function (arr, newValue) { var newArr = []; @@ -655,12 +655,12 @@ return /******/ (function(modules) { // webpackBootstrap return newArr; }; - /** - * Used to extend an array and copy it. This is used to propagate paths recursively. - * - * @param arr - * @param newValue - * @returns {Array} + /** + * Used to extend an array and copy it. This is used to propagate paths recursively. + * + * @param arr + * @param newValue + * @returns {Array} */ exports.copyArray = function (arr) { var newArr = []; @@ -670,11 +670,11 @@ return /******/ (function(modules) { // webpackBootstrap return newArr; }; - /** - * Retrieve the absolute left value of a DOM element - * @param {Element} elem A dom element, for example a div - * @return {number} left The absolute left position of this element - * in the browser page. + /** + * Retrieve the absolute left value of a DOM element + * @param {Element} elem A dom element, for example a div + * @return {number} left The absolute left position of this element + * in the browser page. */ exports.getAbsoluteLeft = function (elem) { return elem.getBoundingClientRect().left; @@ -684,20 +684,20 @@ return /******/ (function(modules) { // webpackBootstrap return elem.getBoundingClientRect().right; }; - /** - * Retrieve the absolute top value of a DOM element - * @param {Element} elem A dom element, for example a div - * @return {number} top The absolute top position of this element - * in the browser page. + /** + * Retrieve the absolute top value of a DOM element + * @param {Element} elem A dom element, for example a div + * @return {number} top The absolute top position of this element + * in the browser page. */ exports.getAbsoluteTop = function (elem) { return elem.getBoundingClientRect().top; }; - /** - * add a className to the given elements style - * @param {Element} elem - * @param {String} className + /** + * add a className to the given elements style + * @param {Element} elem + * @param {String} className */ exports.addClassName = function (elem, classNames) { var classes = elem.className.split(' '); @@ -708,10 +708,10 @@ return /******/ (function(modules) { // webpackBootstrap elem.className = classes.join(' '); }; - /** - * add a className to the given elements style - * @param {Element} elem - * @param {String} className + /** + * add a className to the given elements style + * @param {Element} elem + * @param {String} className */ exports.removeClassName = function (elem, classNames) { var classes = elem.className.split(' '); @@ -722,14 +722,14 @@ return /******/ (function(modules) { // webpackBootstrap elem.className = classes.join(' '); }; - /** - * For each method for both arrays and objects. - * In case of an array, the built-in Array.forEach() is applied. - * In case of an Object, the method loops over all properties of the object. - * @param {Object | Array} object An Object or Array - * @param {function} callback Callback method, called for each item in - * the object or array with three parameters: - * callback(value, index, object) + /** + * For each method for both arrays and objects. + * In case of an array, the built-in Array.forEach() is applied. + * In case of an Object, the method loops over all properties of the object. + * @param {Object | Array} object An Object or Array + * @param {function} callback Callback method, called for each item in + * the object or array with three parameters: + * callback(value, index, object) */ exports.forEach = function (object, callback) { var i, len; @@ -748,11 +748,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Convert an object into an array: all objects properties are put into the - * array. The resulting array is unordered. - * @param {Object} object - * @param {Array} array + /** + * Convert an object into an array: all objects properties are put into the + * array. The resulting array is unordered. + * @param {Object} object + * @param {Array} array */ exports.toArray = function (object) { var array = []; @@ -764,12 +764,12 @@ return /******/ (function(modules) { // webpackBootstrap return array; }; - /** - * Update a property in an object - * @param {Object} object - * @param {String} key - * @param {*} value - * @return {Boolean} changed + /** + * Update a property in an object + * @param {Object} object + * @param {String} key + * @param {*} value + * @return {Boolean} changed */ exports.updateProperty = function (object, key, value) { if (object[key] !== value) { @@ -780,10 +780,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Throttle the given function to be only executed once per animation frame - * @param {function} fn - * @returns {function} Returns the throttled function + /** + * Throttle the given function to be only executed once per animation frame + * @param {function} fn + * @returns {function} Returns the throttled function */ exports.throttle = function (fn) { var scheduled = false; @@ -799,13 +799,13 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Add and event listener. Works for all browsers - * @param {Element} element An html element - * @param {string} action The action, for example "click", - * without the prefix "on" - * @param {function} listener The callback function to be executed - * @param {boolean} [useCapture] + /** + * Add and event listener. Works for all browsers + * @param {Element} element An html element + * @param {string} action The action, for example "click", + * without the prefix "on" + * @param {function} listener The callback function to be executed + * @param {boolean} [useCapture] */ exports.addEventListener = function (element, action, listener, useCapture) { if (element.addEventListener) { @@ -821,12 +821,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Remove an event listener from an element - * @param {Element} element An html dom element - * @param {string} action The name of the event, for example "mousedown" - * @param {function} listener The listener function - * @param {boolean} [useCapture] + /** + * Remove an event listener from an element + * @param {Element} element An html dom element + * @param {string} action The name of the event, for example "mousedown" + * @param {function} listener The listener function + * @param {boolean} [useCapture] */ exports.removeEventListener = function (element, action, listener, useCapture) { if (element.removeEventListener) { @@ -844,8 +844,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Cancels the event if it is cancelable, without stopping further propagation of the event. + /** + * Cancels the event if it is cancelable, without stopping further propagation of the event. */ exports.preventDefault = function (event) { if (!event) event = window.event; @@ -857,10 +857,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get HTML element which is the target of the event - * @param {Event} event - * @return {Element} target element + /** + * Get HTML element which is the target of the event + * @param {Event} event + * @return {Element} target element */ exports.getTarget = function (event) { // code from http://www.quirksmode.org/js/events_properties.html @@ -884,10 +884,10 @@ return /******/ (function(modules) { // webpackBootstrap return target; }; - /** - * Check if given element contains given parent somewhere in the DOM tree - * @param {Element} element - * @param {Element} parent + /** + * Check if given element contains given parent somewhere in the DOM tree + * @param {Element} element + * @param {Element} parent */ exports.hasParent = function (element, parent) { var e = element; @@ -904,11 +904,11 @@ return /******/ (function(modules) { // webpackBootstrap exports.option = {}; - /** - * Convert a value into a boolean - * @param {Boolean | function | undefined} value - * @param {Boolean} [defaultValue] - * @returns {Boolean} bool + /** + * Convert a value into a boolean + * @param {Boolean | function | undefined} value + * @param {Boolean} [defaultValue] + * @returns {Boolean} bool */ exports.option.asBoolean = function (value, defaultValue) { if (typeof value == 'function') { @@ -922,11 +922,11 @@ return /******/ (function(modules) { // webpackBootstrap return defaultValue || null; }; - /** - * Convert a value into a number - * @param {Boolean | function | undefined} value - * @param {Number} [defaultValue] - * @returns {Number} number + /** + * Convert a value into a number + * @param {Boolean | function | undefined} value + * @param {Number} [defaultValue] + * @returns {Number} number */ exports.option.asNumber = function (value, defaultValue) { if (typeof value == 'function') { @@ -940,11 +940,11 @@ return /******/ (function(modules) { // webpackBootstrap return defaultValue || null; }; - /** - * Convert a value into a string - * @param {String | function | undefined} value - * @param {String} [defaultValue] - * @returns {String} str + /** + * Convert a value into a string + * @param {String | function | undefined} value + * @param {String} [defaultValue] + * @returns {String} str */ exports.option.asString = function (value, defaultValue) { if (typeof value == 'function') { @@ -958,11 +958,11 @@ return /******/ (function(modules) { // webpackBootstrap return defaultValue || null; }; - /** - * Convert a size or location into a string with pixels or a percentage - * @param {String | Number | function | undefined} value - * @param {String} [defaultValue] - * @returns {String} size + /** + * Convert a size or location into a string with pixels or a percentage + * @param {String | Number | function | undefined} value + * @param {String} [defaultValue] + * @returns {String} size */ exports.option.asSize = function (value, defaultValue) { if (typeof value == 'function') { @@ -978,11 +978,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Convert a value into a DOM element - * @param {HTMLElement | function | undefined} value - * @param {HTMLElement} [defaultValue] - * @returns {HTMLElement | null} dom + /** + * Convert a value into a DOM element + * @param {HTMLElement | function | undefined} value + * @param {HTMLElement} [defaultValue] + * @returns {HTMLElement | null} dom */ exports.option.asElement = function (value, defaultValue) { if (typeof value == 'function') { @@ -992,11 +992,11 @@ return /******/ (function(modules) { // webpackBootstrap return value || defaultValue || null; }; - /** - * http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb - * - * @param {String} hex - * @returns {{r: *, g: *, b: *}} | 255 range + /** + * http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb + * + * @param {String} hex + * @returns {{r: *, g: *, b: *}} | 255 range */ exports.hexToRGB = function (hex) { // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") @@ -1012,11 +1012,11 @@ return /******/ (function(modules) { // webpackBootstrap } : null; }; - /** - * This function takes color in hex format or rgb() or rgba() format and overrides the opacity. Returns rgba() string. - * @param color - * @param opacity - * @returns {*} + /** + * This function takes color in hex format or rgb() or rgba() format and overrides the opacity. Returns rgba() string. + * @param color + * @param opacity + * @returns {*} */ exports.overrideOpacity = function (color, opacity) { if (color.indexOf("rgba") != -1) { @@ -1034,23 +1034,23 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * - * @param red 0 -- 255 - * @param green 0 -- 255 - * @param blue 0 -- 255 - * @returns {string} - * @constructor + /** + * + * @param red 0 -- 255 + * @param green 0 -- 255 + * @param blue 0 -- 255 + * @returns {string} + * @constructor */ exports.RGBToHex = function (red, green, blue) { return "#" + ((1 << 24) + (red << 16) + (green << 8) + blue).toString(16).slice(1); }; - /** - * Parse a color property into an object with border, background, and - * highlight colors - * @param {Object | String} color - * @return {Object} colorObject + /** + * Parse a color property into an object with border, background, and + * highlight colors + * @param {Object | String} color + * @return {Object} colorObject */ exports.parseColor = function (color) { var c; @@ -1124,14 +1124,14 @@ return /******/ (function(modules) { // webpackBootstrap return c; }; - /** - * http://www.javascripter.net/faq/rgb2hsv.htm - * - * @param red - * @param green - * @param blue - * @returns {*} - * @constructor + /** + * http://www.javascripter.net/faq/rgb2hsv.htm + * + * @param red + * @param green + * @param blue + * @returns {*} + * @constructor */ exports.RGBToHSV = function (red, green, blue) { red = red / 255;green = green / 255;blue = blue / 255; @@ -1177,10 +1177,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Append a string with css styles to an element - * @param {Element} element - * @param {String} cssText + /** + * Append a string with css styles to an element + * @param {Element} element + * @param {String} cssText */ exports.addCssText = function (element, cssText) { var currentStyles = cssUtil.split(element.style.cssText); @@ -1190,10 +1190,10 @@ return /******/ (function(modules) { // webpackBootstrap element.style.cssText = cssUtil.join(styles); }; - /** - * Remove a string with css styles from an element - * @param {Element} element - * @param {String} cssText + /** + * Remove a string with css styles from an element + * @param {Element} element + * @param {String} cssText */ exports.removeCssText = function (element, cssText) { var styles = cssUtil.split(element.style.cssText); @@ -1208,13 +1208,13 @@ return /******/ (function(modules) { // webpackBootstrap element.style.cssText = cssUtil.join(styles); }; - /** - * https://gist.github.com/mjijackson/5311256 - * @param h - * @param s - * @param v - * @returns {{r: number, g: number, b: number}} - * @constructor + /** + * https://gist.github.com/mjijackson/5311256 + * @param h + * @param s + * @param v + * @returns {{r: number, g: number, b: number}} + * @constructor */ exports.HSVToRGB = function (h, s, v) { var r, g, b; @@ -1269,12 +1269,12 @@ return /******/ (function(modules) { // webpackBootstrap return isOk; }; - /** - * This recursively redirects the prototype of JSON objects to the referenceObject - * This is used for default options. - * - * @param referenceObject - * @returns {*} + /** + * This recursively redirects the prototype of JSON objects to the referenceObject + * This is used for default options. + * + * @param referenceObject + * @returns {*} */ exports.selectiveBridgeObject = function (fields, referenceObject) { if ((typeof referenceObject === 'undefined' ? 'undefined' : (0, _typeof3['default'])(referenceObject)) == "object") { @@ -1292,12 +1292,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * This recursively redirects the prototype of JSON objects to the referenceObject - * This is used for default options. - * - * @param referenceObject - * @returns {*} + /** + * This recursively redirects the prototype of JSON objects to the referenceObject + * This is used for default options. + * + * @param referenceObject + * @returns {*} */ exports.bridgeObject = function (referenceObject) { if ((typeof referenceObject === 'undefined' ? 'undefined' : (0, _typeof3['default'])(referenceObject)) == "object") { @@ -1315,12 +1315,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * This method provides a stable sort implementation, very fast for presorted data - * - * @param a the array - * @param a order comparator - * @returns {the array} + /** + * This method provides a stable sort implementation, very fast for presorted data + * + * @param a the array + * @param a order comparator + * @returns {the array} */ exports.insertSort = function (a, compare) { for (var i = 0; i < a.length; i++) { @@ -1333,13 +1333,13 @@ return /******/ (function(modules) { // webpackBootstrap return a; }; - /** - * this is used to set the options of subobjects in the options object. A requirement of these subobjects - * is that they have an 'enabled' element which is optional for the user but mandatory for the program. - * - * @param [object] mergeTarget | this is either this.options or the options used for the groups. - * @param [object] options | options - * @param [String] option | this is the option key in the options argument + /** + * this is used to set the options of subobjects in the options object. A requirement of these subobjects + * is that they have an 'enabled' element which is optional for the user but mandatory for the program. + * + * @param [object] mergeTarget | this is either this.options or the options used for the groups. + * @param [object] options | options + * @param [String] option | this is the option key in the options argument */ exports.mergeOptions = function (mergeTarget, options, option) { var allowDeletion = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; @@ -1365,16 +1365,16 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * This function does a binary search for a visible item in a sorted list. If we find a visible item, the code that uses - * this function will then iterate in both directions over this sorted list to find all visible items. - * - * @param {Item[]} orderedItems | Items ordered by start - * @param {function} comparator | -1 is lower, 0 is equal, 1 is higher - * @param {String} field - * @param {String} field2 - * @returns {number} - * @private + /** + * This function does a binary search for a visible item in a sorted list. If we find a visible item, the code that uses + * this function will then iterate in both directions over this sorted list to find all visible items. + * + * @param {Item[]} orderedItems | Items ordered by start + * @param {function} comparator | -1 is lower, 0 is equal, 1 is higher + * @param {String} field + * @param {String} field2 + * @returns {number} + * @private */ exports.binarySearchCustom = function (orderedItems, comparator, field, field2) { var maxIterations = 10000; @@ -1406,18 +1406,18 @@ return /******/ (function(modules) { // webpackBootstrap return -1; }; - /** - * This function does a binary search for a specific value in a sorted array. If it does not exist but is in between of - * two values, we return either the one before or the one after, depending on user input - * If it is found, we return the index, else -1. - * - * @param {Array} orderedItems - * @param {{start: number, end: number}} target - * @param {String} field - * @param {String} sidePreference 'before' or 'after' - * @param {function} comparator an optional comparator, returning -1,0,1 for <,==,>. - * @returns {number} - * @private + /** + * This function does a binary search for a specific value in a sorted array. If it does not exist but is in between of + * two values, we return either the one before or the one after, depending on user input + * If it is found, we return the index, else -1. + * + * @param {Array} orderedItems + * @param {{start: number, end: number}} target + * @param {String} field + * @param {String} sidePreference 'before' or 'after' + * @param {function} comparator an optional comparator, returning -1,0,1 for <,==,>. + * @returns {number} + * @private */ exports.binarySearchValue = function (orderedItems, target, field, sidePreference, comparator) { var maxIterations = 10000; @@ -1463,10 +1463,10 @@ return /******/ (function(modules) { // webpackBootstrap return -1; }; - /* - * Easing Functions - inspired from http://gizma.com/easing/ - * only considering the t value for the range [0, 1] => [0, 1] - * https://gist.github.com/gre/1650294 + /* + * Easing Functions - inspired from http://gizma.com/easing/ + * only considering the t value for the range [0, 1] => [0, 1] + * https://gist.github.com/gre/1650294 */ exports.easingFunctions = { // no easing, no acceleration @@ -1608,53 +1608,61 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(50); module.exports = __webpack_require__(52); + /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(5); - var global = __webpack_require__(16) - , hide = __webpack_require__(20) - , Iterators = __webpack_require__(8) - , TO_STRING_TAG = __webpack_require__(47)('toStringTag'); - - for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ - var NAME = collections[i] - , Collection = global[NAME] - , proto = Collection && Collection.prototype; - if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); + var global = __webpack_require__(16); + var hide = __webpack_require__(20); + var Iterators = __webpack_require__(8); + var TO_STRING_TAG = __webpack_require__(47)('toStringTag'); + + var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + + 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + + 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + + 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + + 'TextTrackList,TouchList').split(','); + + for (var i = 0; i < DOMIterables.length; i++) { + var NAME = DOMIterables[i]; + var Collection = global[NAME]; + var proto = Collection && Collection.prototype; + if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); Iterators[NAME] = Iterators.Array; } + /***/ }), /* 5 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; - var addToUnscopables = __webpack_require__(6) - , step = __webpack_require__(7) - , Iterators = __webpack_require__(8) - , toIObject = __webpack_require__(9); + var addToUnscopables = __webpack_require__(6); + var step = __webpack_require__(7); + var Iterators = __webpack_require__(8); + var toIObject = __webpack_require__(9); // 22.1.3.4 Array.prototype.entries() // 22.1.3.13 Array.prototype.keys() // 22.1.3.29 Array.prototype.values() // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(13)(Array, 'Array', function(iterated, kind){ + module.exports = __webpack_require__(13)(Array, 'Array', function (iterated, kind) { this._t = toIObject(iterated); // target this._i = 0; // next index this._k = kind; // kind // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ + }, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + if (!O || index >= O.length) { this._t = undefined; return step(1); } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); return step(0, [index, O[index]]); }, 'values'); @@ -1665,174 +1673,185 @@ return /******/ (function(modules) { // webpackBootstrap addToUnscopables('values'); addToUnscopables('entries'); + /***/ }), /* 6 */ /***/ (function(module, exports) { - module.exports = function(){ /* empty */ }; + module.exports = function () { /* empty */ }; + /***/ }), /* 7 */ /***/ (function(module, exports) { - module.exports = function(done, value){ - return {value: value, done: !!done}; + module.exports = function (done, value) { + return { value: value, done: !!done }; }; + /***/ }), /* 8 */ /***/ (function(module, exports) { module.exports = {}; + /***/ }), /* 9 */ /***/ (function(module, exports, __webpack_require__) { // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(10) - , defined = __webpack_require__(12); - module.exports = function(it){ + var IObject = __webpack_require__(10); + var defined = __webpack_require__(12); + module.exports = function (it) { return IObject(defined(it)); }; + /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { // fallback for non-array-like ES3 and non-enumerable old V8 strings var cof = __webpack_require__(11); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ + // eslint-disable-next-line no-prototype-builtins + module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { return cof(it) == 'String' ? it.split('') : Object(it); }; + /***/ }), /* 11 */ /***/ (function(module, exports) { var toString = {}.toString; - module.exports = function(it){ + module.exports = function (it) { return toString.call(it).slice(8, -1); }; + /***/ }), /* 12 */ /***/ (function(module, exports) { // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); + module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; + /***/ }), /* 13 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; - var LIBRARY = __webpack_require__(14) - , $export = __webpack_require__(15) - , redefine = __webpack_require__(30) - , hide = __webpack_require__(20) - , has = __webpack_require__(31) - , Iterators = __webpack_require__(8) - , $iterCreate = __webpack_require__(32) - , setToStringTag = __webpack_require__(46) - , getPrototypeOf = __webpack_require__(48) - , ITERATOR = __webpack_require__(47)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - - var returnThis = function(){ return this; }; - - module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ + var LIBRARY = __webpack_require__(14); + var $export = __webpack_require__(15); + var redefine = __webpack_require__(30); + var hide = __webpack_require__(20); + var has = __webpack_require__(31); + var Iterators = __webpack_require__(8); + var $iterCreate = __webpack_require__(32); + var setToStringTag = __webpack_require__(46); + var getPrototypeOf = __webpack_require__(48); + var ITERATOR = __webpack_require__(47)('iterator'); + var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` + var FF_ITERATOR = '@@iterator'; + var KEYS = 'keys'; + var VALUES = 'values'; + + var returnThis = function () { return this; }; + + module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; + var getMethod = function (kind) { + if (!BUGGY && kind in proto) return proto[kind]; + switch (kind) { + case KEYS: return function keys() { return new Constructor(this, kind); }; + case VALUES: return function values() { return new Constructor(this, kind); }; + } return function entries() { return new Constructor(this, kind); }; }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined - , $anyNative = NAME == 'Array' ? proto.entries || $native : $native - , methods, key, IteratorPrototype; + var TAG = NAME + ' Iterator'; + var DEF_VALUES = DEFAULT == VALUES; + var VALUES_BUG = false; + var proto = Base.prototype; + var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; + var $default = $native || getMethod(DEFAULT); + var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; + var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; + var methods, key, IteratorPrototype; // Fix native - if($anyNative){ - IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); - if(IteratorPrototype !== Object.prototype){ + if ($anyNative) { + IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); + if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { // Set @@toStringTag to native iterators setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines - if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); + if (!LIBRARY && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis); } } // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native && $native.name !== VALUES){ + if (DEF_VALUES && $native && $native.name !== VALUES) { VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; + $default = function values() { return $native.call(this); }; } // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ + if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { hide(proto, ITERATOR, $default); } // Plug for library Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ + Iterators[TAG] = returnThis; + if (DEFAULT) { methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), entries: $entries }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); + if (FORCED) for (key in methods) { + if (!(key in proto)) redefine(proto, key, methods[key]); } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); } return methods; }; + /***/ }), /* 14 */ /***/ (function(module, exports) { module.exports = true; + /***/ }), /* 15 */ /***/ (function(module, exports, __webpack_require__) { - var global = __webpack_require__(16) - , core = __webpack_require__(17) - , ctx = __webpack_require__(18) - , hide = __webpack_require__(20) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ + var global = __webpack_require__(16); + var core = __webpack_require__(17); + var ctx = __webpack_require__(18); + var hide = __webpack_require__(20); + var PROTOTYPE = 'prototype'; + + var $export = function (type, name, source) { + var IS_FORCED = type & $export.F; + var IS_GLOBAL = type & $export.G; + var IS_STATIC = type & $export.S; + var IS_PROTO = type & $export.P; + var IS_BIND = type & $export.B; + var IS_WRAP = type & $export.W; + var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); + var expProto = exports[PROTOTYPE]; + var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; + var key, own, out; + if (IS_GLOBAL) source = name; + for (key in source) { // contains in native own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; + if (own && key in exports) continue; // export native or passed out = own ? target[key] : source[key]; // prevent global pollution for namespaces @@ -1840,11 +1859,11 @@ return /******/ (function(modules) { // webpackBootstrap // bind timers to global for call from export context : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; + : IS_WRAP && target[key] == out ? (function (C) { + var F = function (a, b, c) { + if (this instanceof C) { + switch (arguments.length) { + case 0: return new C(); case 1: return new C(a); case 2: return new C(a, b); } return new C(a, b, c); @@ -1855,10 +1874,10 @@ return /******/ (function(modules) { // webpackBootstrap // make static versions for prototype methods })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ + if (IS_PROTO) { (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); + if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); } } }; @@ -1870,24 +1889,29 @@ return /******/ (function(modules) { // webpackBootstrap $export.B = 16; // bind $export.W = 32; // wrap $export.U = 64; // safe - $export.R = 128; // real proto method for `library` + $export.R = 128; // real proto method for `library` module.exports = $export; + /***/ }), /* 16 */ /***/ (function(module, exports) { // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef + ? window : typeof self != 'undefined' && self.Math == Math ? self + // eslint-disable-next-line no-new-func + : Function('return this')(); + if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef + /***/ }), /* 17 */ /***/ (function(module, exports) { - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef + var core = module.exports = { version: '2.5.0' }; + if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef + /***/ }), /* 18 */ @@ -1895,127 +1919,137 @@ return /******/ (function(modules) { // webpackBootstrap // optional / simple context binding var aFunction = __webpack_require__(19); - module.exports = function(fn, that, length){ + module.exports = function (fn, that, length) { aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ + if (that === undefined) return fn; + switch (length) { + case 1: return function (a) { return fn.call(that, a); }; - case 2: return function(a, b){ + case 2: return function (a, b) { return fn.call(that, a, b); }; - case 3: return function(a, b, c){ + case 3: return function (a, b, c) { return fn.call(that, a, b, c); }; } - return function(/* ...args */){ + return function (/* ...args */) { return fn.apply(that, arguments); }; }; + /***/ }), /* 19 */ /***/ (function(module, exports) { - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); + module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); return it; }; + /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { - var dP = __webpack_require__(21) - , createDesc = __webpack_require__(29); - module.exports = __webpack_require__(25) ? function(object, key, value){ + var dP = __webpack_require__(21); + var createDesc = __webpack_require__(29); + module.exports = __webpack_require__(25) ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ + } : function (object, key, value) { object[key] = value; return object; }; + /***/ }), /* 21 */ /***/ (function(module, exports, __webpack_require__) { - var anObject = __webpack_require__(22) - , IE8_DOM_DEFINE = __webpack_require__(24) - , toPrimitive = __webpack_require__(28) - , dP = Object.defineProperty; + var anObject = __webpack_require__(22); + var IE8_DOM_DEFINE = __webpack_require__(24); + var toPrimitive = __webpack_require__(28); + var dP = Object.defineProperty; - exports.f = __webpack_require__(25) ? Object.defineProperty : function defineProperty(O, P, Attributes){ + exports.f = __webpack_require__(25) ? Object.defineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); - if(IE8_DOM_DEFINE)try { + if (IE8_DOM_DEFINE) try { return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; + } catch (e) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; return O; }; + /***/ }), /* 22 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(23); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); + module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); return it; }; + /***/ }), /* 23 */ /***/ (function(module, exports) { - module.exports = function(it){ + module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; + /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { - module.exports = !__webpack_require__(25) && !__webpack_require__(26)(function(){ - return Object.defineProperty(__webpack_require__(27)('div'), 'a', {get: function(){ return 7; }}).a != 7; + module.exports = !__webpack_require__(25) && !__webpack_require__(26)(function () { + return Object.defineProperty(__webpack_require__(27)('div'), 'a', { get: function () { return 7; } }).a != 7; }); + /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(26)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; + module.exports = !__webpack_require__(26)(function () { + return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); + /***/ }), /* 26 */ /***/ (function(module, exports) { - module.exports = function(exec){ + module.exports = function (exec) { try { return !!exec(); - } catch(e){ + } catch (e) { return true; } }; + /***/ }), /* 27 */ /***/ (function(module, exports, __webpack_require__) { - var isObject = __webpack_require__(23) - , document = __webpack_require__(16).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ + var isObject = __webpack_require__(23); + var document = __webpack_require__(16).document; + // typeof document.createElement is 'object' in old IE + var is = isObject(document) && isObject(document.createElement); + module.exports = function (it) { return is ? document.createElement(it) : {}; }; + /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { @@ -2024,81 +2058,86 @@ return /******/ (function(modules) { // webpackBootstrap var isObject = __webpack_require__(23); // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; + module.exports = function (it, S) { + if (!isObject(it)) return it; var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; + if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; throw TypeError("Can't convert object to primitive value"); }; + /***/ }), /* 29 */ /***/ (function(module, exports) { - module.exports = function(bitmap, value){ + module.exports = function (bitmap, value) { return { - enumerable : !(bitmap & 1), + enumerable: !(bitmap & 1), configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value + writable: !(bitmap & 4), + value: value }; }; + /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(20); + /***/ }), /* 31 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ + module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; + /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; - var create = __webpack_require__(33) - , descriptor = __webpack_require__(29) - , setToStringTag = __webpack_require__(46) - , IteratorPrototype = {}; + var create = __webpack_require__(33); + var descriptor = __webpack_require__(29); + var setToStringTag = __webpack_require__(46); + var IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(20)(IteratorPrototype, __webpack_require__(47)('iterator'), function(){ return this; }); + __webpack_require__(20)(IteratorPrototype, __webpack_require__(47)('iterator'), function () { return this; }); - module.exports = function(Constructor, NAME, next){ - Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); + module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); setToStringTag(Constructor, NAME + ' Iterator'); }; + /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - var anObject = __webpack_require__(22) - , dPs = __webpack_require__(34) - , enumBugKeys = __webpack_require__(44) - , IE_PROTO = __webpack_require__(41)('IE_PROTO') - , Empty = function(){ /* empty */ } - , PROTOTYPE = 'prototype'; + var anObject = __webpack_require__(22); + var dPs = __webpack_require__(34); + var enumBugKeys = __webpack_require__(44); + var IE_PROTO = __webpack_require__(41)('IE_PROTO'); + var Empty = function () { /* empty */ }; + var PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype - var createDict = function(){ + var createDict = function () { // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(27)('iframe') - , i = enumBugKeys.length - , lt = '<' - , gt = '>' - , iframeDocument; + var iframe = __webpack_require__(27)('iframe'); + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; iframe.style.display = 'none'; __webpack_require__(45).appendChild(iframe); iframe.src = 'javascript:'; // eslint-disable-line no-script-url @@ -2109,15 +2148,15 @@ return /******/ (function(modules) { // webpackBootstrap iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); iframeDocument.close(); createDict = iframeDocument.F; - while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; + while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; return createDict(); }; - module.exports = Object.create || function create(O, Properties){ + module.exports = Object.create || function create(O, Properties) { var result; - if(O !== null){ + if (O !== null) { Empty[PROTOTYPE] = anObject(O); - result = new Empty; + result = new Empty(); Empty[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; @@ -2130,145 +2169,157 @@ return /******/ (function(modules) { // webpackBootstrap /* 34 */ /***/ (function(module, exports, __webpack_require__) { - var dP = __webpack_require__(21) - , anObject = __webpack_require__(22) - , getKeys = __webpack_require__(35); + var dP = __webpack_require__(21); + var anObject = __webpack_require__(22); + var getKeys = __webpack_require__(35); - module.exports = __webpack_require__(25) ? Object.defineProperties : function defineProperties(O, Properties){ + module.exports = __webpack_require__(25) ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); - var keys = getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)dP.f(O, P = keys[i++], Properties[P]); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + while (length > i) dP.f(O, P = keys[i++], Properties[P]); return O; }; + /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(36) - , enumBugKeys = __webpack_require__(44); + var $keys = __webpack_require__(36); + var enumBugKeys = __webpack_require__(44); - module.exports = Object.keys || function keys(O){ + module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; + /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { - var has = __webpack_require__(31) - , toIObject = __webpack_require__(9) - , arrayIndexOf = __webpack_require__(37)(false) - , IE_PROTO = __webpack_require__(41)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); + var has = __webpack_require__(31); + var toIObject = __webpack_require__(9); + var arrayIndexOf = __webpack_require__(37)(false); + var IE_PROTO = __webpack_require__(41)('IE_PROTO'); + + module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ + while (names.length > i) if (has(O, key = names[i++])) { ~arrayIndexOf(result, key) || result.push(key); } return result; }; + /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { // false -> Array#indexOf // true -> Array#includes - var toIObject = __webpack_require__(9) - , toLength = __webpack_require__(38) - , toIndex = __webpack_require__(40); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; + var toIObject = __webpack_require__(9); + var toLength = __webpack_require__(38); + var toAbsoluteIndex = __webpack_require__(40); + module.exports = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ + // eslint-disable-next-line no-self-compare + if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; + // eslint-disable-next-line no-self-compare + if (value != value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) if (IS_INCLUDES || index in O) { + if (O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; + /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.15 ToLength - var toInteger = __webpack_require__(39) - , min = Math.min; - module.exports = function(it){ + var toInteger = __webpack_require__(39); + var min = Math.min; + module.exports = function (it) { return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 }; + /***/ }), /* 39 */ /***/ (function(module, exports) { // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ + var ceil = Math.ceil; + var floor = Math.floor; + module.exports = function (it) { return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); }; + /***/ }), /* 40 */ /***/ (function(module, exports, __webpack_require__) { - var toInteger = __webpack_require__(39) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ + var toInteger = __webpack_require__(39); + var max = Math.max; + var min = Math.min; + module.exports = function (index, length) { index = toInteger(index); return index < 0 ? max(index + length, 0) : min(index, length); }; + /***/ }), /* 41 */ /***/ (function(module, exports, __webpack_require__) { - var shared = __webpack_require__(42)('keys') - , uid = __webpack_require__(43); - module.exports = function(key){ + var shared = __webpack_require__(42)('keys'); + var uid = __webpack_require__(43); + module.exports = function (key) { return shared[key] || (shared[key] = uid(key)); }; + /***/ }), /* 42 */ /***/ (function(module, exports, __webpack_require__) { - var global = __webpack_require__(16) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ + var global = __webpack_require__(16); + var SHARED = '__core-js_shared__'; + var store = global[SHARED] || (global[SHARED] = {}); + module.exports = function (key) { return store[key] || (store[key] = {}); }; + /***/ }), /* 43 */ /***/ (function(module, exports) { - var id = 0 - , px = Math.random(); - module.exports = function(key){ + var id = 0; + var px = Math.random(); + module.exports = function (key) { return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); }; + /***/ }), /* 44 */ /***/ (function(module, exports) { @@ -2278,105 +2329,113 @@ return /******/ (function(modules) { // webpackBootstrap 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' ).split(','); + /***/ }), /* 45 */ /***/ (function(module, exports, __webpack_require__) { - module.exports = __webpack_require__(16).document && document.documentElement; + var document = __webpack_require__(16).document; + module.exports = document && document.documentElement; + /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { - var def = __webpack_require__(21).f - , has = __webpack_require__(31) - , TAG = __webpack_require__(47)('toStringTag'); + var def = __webpack_require__(21).f; + var has = __webpack_require__(31); + var TAG = __webpack_require__(47)('toStringTag'); - module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); + module.exports = function (it, tag, stat) { + if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); }; + /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { - var store = __webpack_require__(42)('wks') - , uid = __webpack_require__(43) - , Symbol = __webpack_require__(16).Symbol - , USE_SYMBOL = typeof Symbol == 'function'; + var store = __webpack_require__(42)('wks'); + var uid = __webpack_require__(43); + var Symbol = __webpack_require__(16).Symbol; + var USE_SYMBOL = typeof Symbol == 'function'; - var $exports = module.exports = function(name){ + var $exports = module.exports = function (name) { return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); }; $exports.store = store; + /***/ }), /* 48 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) - var has = __webpack_require__(31) - , toObject = __webpack_require__(49) - , IE_PROTO = __webpack_require__(41)('IE_PROTO') - , ObjectProto = Object.prototype; + var has = __webpack_require__(31); + var toObject = __webpack_require__(49); + var IE_PROTO = __webpack_require__(41)('IE_PROTO'); + var ObjectProto = Object.prototype; - module.exports = Object.getPrototypeOf || function(O){ + module.exports = Object.getPrototypeOf || function (O) { O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == 'function' && O instanceof O.constructor) { return O.constructor.prototype; } return O instanceof Object ? ObjectProto : null; }; + /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { // 7.1.13 ToObject(argument) var defined = __webpack_require__(12); - module.exports = function(it){ + module.exports = function (it) { return Object(defined(it)); }; + /***/ }), /* 50 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; - var $at = __webpack_require__(51)(true); + var $at = __webpack_require__(51)(true); // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(13)(String, 'String', function(iterated){ + __webpack_require__(13)(String, 'String', function (iterated) { this._t = String(iterated); // target this._i = 0; // next index // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function(){ - var O = this._t - , index = this._i - , point; - if(index >= O.length)return {value: undefined, done: true}; + }, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { value: undefined, done: true }; point = $at(O, index); this._i += point.length; - return {value: point, done: false}; + return { value: point, done: false }; }); + /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { - var toInteger = __webpack_require__(39) - , defined = __webpack_require__(12); + var toInteger = __webpack_require__(39); + var defined = __webpack_require__(12); // true -> String#at // false -> String#codePointAt - module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; + module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; a = s.charCodeAt(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a @@ -2384,49 +2443,52 @@ return /******/ (function(modules) { // webpackBootstrap }; }; + /***/ }), /* 52 */ /***/ (function(module, exports, __webpack_require__) { - var anObject = __webpack_require__(22) - , get = __webpack_require__(53); - module.exports = __webpack_require__(17).getIterator = function(it){ + var anObject = __webpack_require__(22); + var get = __webpack_require__(53); + module.exports = __webpack_require__(17).getIterator = function (it) { var iterFn = get(it); - if(typeof iterFn != 'function')throw TypeError(it + ' is not iterable!'); + if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!'); return anObject(iterFn.call(it)); }; + /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { - var classof = __webpack_require__(54) - , ITERATOR = __webpack_require__(47)('iterator') - , Iterators = __webpack_require__(8); - module.exports = __webpack_require__(17).getIteratorMethod = function(it){ - if(it != undefined)return it[ITERATOR] + var classof = __webpack_require__(54); + var ITERATOR = __webpack_require__(47)('iterator'); + var Iterators = __webpack_require__(8); + module.exports = __webpack_require__(17).getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; }; + /***/ }), /* 54 */ /***/ (function(module, exports, __webpack_require__) { // getting tag from 19.1.3.6 Object.prototype.toString() - var cof = __webpack_require__(11) - , TAG = __webpack_require__(47)('toStringTag') - // ES3 wrong here - , ARG = cof(function(){ return arguments; }()) == 'Arguments'; + var cof = __webpack_require__(11); + var TAG = __webpack_require__(47)('toStringTag'); + // ES3 wrong here + var ARG = cof(function () { return arguments; }()) == 'Arguments'; // fallback for IE11 Script Access Denied error - var tryGet = function(it, key){ + var tryGet = function (it, key) { try { return it[key]; - } catch(e){ /* empty */ } + } catch (e) { /* empty */ } }; - module.exports = function(it){ + module.exports = function (it) { var O, T, B; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case @@ -2437,6 +2499,7 @@ return /******/ (function(modules) { // webpackBootstrap : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; }; + /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { @@ -2449,17 +2512,19 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(57); var $Object = __webpack_require__(17).Object; - module.exports = function create(P, D){ + module.exports = function create(P, D) { return $Object.create(P, D); }; + /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { - var $export = __webpack_require__(15) + var $export = __webpack_require__(15); // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - $export($export.S, 'Object', {create: __webpack_require__(33)}); + $export($export.S, 'Object', { create: __webpack_require__(33) }); + /***/ }), /* 58 */ @@ -2474,35 +2539,38 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(60); module.exports = __webpack_require__(17).Object.keys; + /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 Object.keys(O) - var toObject = __webpack_require__(49) - , $keys = __webpack_require__(35); + var toObject = __webpack_require__(49); + var $keys = __webpack_require__(35); - __webpack_require__(61)('keys', function(){ - return function keys(it){ + __webpack_require__(61)('keys', function () { + return function keys(it) { return $keys(toObject(it)); }; }); + /***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) { // most Object methods by ES6 should accept primitives - var $export = __webpack_require__(15) - , core = __webpack_require__(17) - , fails = __webpack_require__(26); - module.exports = function(KEY, exec){ - var fn = (core.Object || {})[KEY] || Object[KEY] - , exp = {}; + var $export = __webpack_require__(15); + var core = __webpack_require__(17); + var fails = __webpack_require__(26); + module.exports = function (KEY, exec) { + var fn = (core.Object || {})[KEY] || Object[KEY]; + var exp = {}; exp[KEY] = exec(fn); - $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp); + $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); }; + /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { @@ -2543,12 +2611,14 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(4); module.exports = __webpack_require__(65).f('iterator'); + /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { exports.f = __webpack_require__(47); + /***/ }), /* 66 */ /***/ (function(module, exports, __webpack_require__) { @@ -2565,195 +2635,196 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(81); module.exports = __webpack_require__(17).Symbol; + /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { 'use strict'; // ECMAScript 6 symbols shim - var global = __webpack_require__(16) - , has = __webpack_require__(31) - , DESCRIPTORS = __webpack_require__(25) - , $export = __webpack_require__(15) - , redefine = __webpack_require__(30) - , META = __webpack_require__(69).KEY - , $fails = __webpack_require__(26) - , shared = __webpack_require__(42) - , setToStringTag = __webpack_require__(46) - , uid = __webpack_require__(43) - , wks = __webpack_require__(47) - , wksExt = __webpack_require__(65) - , wksDefine = __webpack_require__(70) - , keyOf = __webpack_require__(71) - , enumKeys = __webpack_require__(72) - , isArray = __webpack_require__(75) - , anObject = __webpack_require__(22) - , toIObject = __webpack_require__(9) - , toPrimitive = __webpack_require__(28) - , createDesc = __webpack_require__(29) - , _create = __webpack_require__(33) - , gOPNExt = __webpack_require__(76) - , $GOPD = __webpack_require__(78) - , $DP = __webpack_require__(21) - , $keys = __webpack_require__(35) - , gOPD = $GOPD.f - , dP = $DP.f - , gOPN = gOPNExt.f - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , PROTOTYPE = 'prototype' - , HIDDEN = wks('_hidden') - , TO_PRIMITIVE = wks('toPrimitive') - , isEnum = {}.propertyIsEnumerable - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , OPSymbols = shared('op-symbols') - , ObjectProto = Object[PROTOTYPE] - , USE_NATIVE = typeof $Symbol == 'function' - , QObject = global.QObject; + var global = __webpack_require__(16); + var has = __webpack_require__(31); + var DESCRIPTORS = __webpack_require__(25); + var $export = __webpack_require__(15); + var redefine = __webpack_require__(30); + var META = __webpack_require__(69).KEY; + var $fails = __webpack_require__(26); + var shared = __webpack_require__(42); + var setToStringTag = __webpack_require__(46); + var uid = __webpack_require__(43); + var wks = __webpack_require__(47); + var wksExt = __webpack_require__(65); + var wksDefine = __webpack_require__(70); + var keyOf = __webpack_require__(71); + var enumKeys = __webpack_require__(72); + var isArray = __webpack_require__(75); + var anObject = __webpack_require__(22); + var toIObject = __webpack_require__(9); + var toPrimitive = __webpack_require__(28); + var createDesc = __webpack_require__(29); + var _create = __webpack_require__(33); + var gOPNExt = __webpack_require__(76); + var $GOPD = __webpack_require__(78); + var $DP = __webpack_require__(21); + var $keys = __webpack_require__(35); + var gOPD = $GOPD.f; + var dP = $DP.f; + var gOPN = gOPNExt.f; + var $Symbol = global.Symbol; + var $JSON = global.JSON; + var _stringify = $JSON && $JSON.stringify; + var PROTOTYPE = 'prototype'; + var HIDDEN = wks('_hidden'); + var TO_PRIMITIVE = wks('toPrimitive'); + var isEnum = {}.propertyIsEnumerable; + var SymbolRegistry = shared('symbol-registry'); + var AllSymbols = shared('symbols'); + var OPSymbols = shared('op-symbols'); + var ObjectProto = Object[PROTOTYPE]; + var USE_NATIVE = typeof $Symbol == 'function'; + var QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function(){ + var setSymbolDesc = DESCRIPTORS && $fails(function () { return _create(dP({}, 'a', { - get: function(){ return dP(this, 'a', {value: 7}).a; } + get: function () { return dP(this, 'a', { value: 7 }).a; } })).a != 7; - }) ? function(it, key, D){ + }) ? function (it, key, D) { var protoDesc = gOPD(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; + if (protoDesc) delete ObjectProto[key]; dP(it, key, D); - if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); + if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); } : dP; - var wrap = function(tag){ + var wrap = function (tag) { var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); sym._k = tag; return sym; }; - var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ + var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { return typeof it == 'symbol'; - } : function(it){ + } : function (it) { return it instanceof $Symbol; }; - var $defineProperty = function defineProperty(it, key, D){ - if(it === ObjectProto)$defineProperty(OPSymbols, key, D); + var $defineProperty = function defineProperty(it, key, D) { + if (it === ObjectProto) $defineProperty(OPSymbols, key, D); anObject(it); key = toPrimitive(key, true); anObject(D); - if(has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); + if (has(AllSymbols, key)) { + if (!D.enumerable) { + if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); it[HIDDEN][key] = true; } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); + if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; + D = _create(D, { enumerable: createDesc(0, false) }); } return setSymbolDesc(it, key, D); } return dP(it, key, D); }; - var $defineProperties = function defineProperties(it, P){ + var $defineProperties = function defineProperties(it, P) { anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); + var keys = enumKeys(P = toIObject(P)); + var i = 0; + var l = keys.length; + var key; + while (l > i) $defineProperty(it, key = keys[i++], P[key]); return it; }; - var $create = function create(it, P){ + var $create = function create(it, P) { return P === undefined ? _create(it) : $defineProperties(_create(it), P); }; - var $propertyIsEnumerable = function propertyIsEnumerable(key){ + var $propertyIsEnumerable = function propertyIsEnumerable(key) { var E = isEnum.call(this, key = toPrimitive(key, true)); - if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; + if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - it = toIObject(it); + var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { + it = toIObject(it); key = toPrimitive(key, true); - if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; + if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; var D = gOPD(it, key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; + if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; return D; }; - var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = gOPN(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); + var $getOwnPropertyNames = function getOwnPropertyNames(it) { + var names = gOPN(toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); } return result; }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var IS_OP = it === ObjectProto - , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); + var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { + var IS_OP = it === ObjectProto; + var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); + var result = []; + var i = 0; + var key; + while (names.length > i) { + if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); } return result; }; // 19.4.1.1 Symbol([description]) - if(!USE_NATIVE){ - $Symbol = function Symbol(){ - if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); + if (!USE_NATIVE) { + $Symbol = function Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function(value){ - if(this === ObjectProto)$set.call(OPSymbols, value); - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; + var $set = function (value) { + if (this === ObjectProto) $set.call(OPSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; setSymbolDesc(this, tag, createDesc(1, value)); }; - if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); + if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); return wrap(tag); }; - redefine($Symbol[PROTOTYPE], 'toString', function toString(){ + redefine($Symbol[PROTOTYPE], 'toString', function toString() { return this._k; }); $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; + $DP.f = $defineProperty; __webpack_require__(77).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(74).f = $propertyIsEnumerable; + __webpack_require__(74).f = $propertyIsEnumerable; __webpack_require__(73).f = $getOwnPropertySymbols; - if(DESCRIPTORS && !__webpack_require__(14)){ + if (DESCRIPTORS && !__webpack_require__(14)) { redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); } - wksExt.f = function(name){ + wksExt.f = function (name) { return wrap(wks(name)); - } + }; } - $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); + $export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - for(var symbols = ( + for (var es6Symbols = ( // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' - ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); + ).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); + for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { // 19.4.2.1 Symbol.for(key) - 'for': function(key){ + 'for': function (key) { return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); }, // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - if(isSymbol(key))return keyOf(SymbolRegistry, key); + keyFor: function keyFor(key) { + if (isSymbol(key)) return keyOf(SymbolRegistry, key); throw TypeError(key + ' is not a symbol!'); }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } + useSetter: function () { setter = true; }, + useSimple: function () { setter = false; } }); $export($export.S + $export.F * !USE_NATIVE, 'Object', { @@ -2772,24 +2843,24 @@ return /******/ (function(modules) { // webpackBootstrap }); // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ + $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { var S = $Symbol(); // MS Edge converts symbol values to JSON as {} // WebKit converts symbol values to JSON as null // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; + return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; })), 'JSON', { - stringify: function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , replacer, $replacer; - while(arguments.length > i)args.push(arguments[i++]); + stringify: function stringify(it) { + if (it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + var args = [it]; + var i = 1; + var replacer, $replacer; + while (arguments.length > i) args.push(arguments[i++]); replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; + if (typeof replacer == 'function') $replacer = replacer; + if ($replacer || !isArray(replacer)) replacer = function (key, value) { + if ($replacer) value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; }; args[1] = replacer; return _stringify.apply($JSON, args); @@ -2805,156 +2876,164 @@ return /******/ (function(modules) { // webpackBootstrap // 24.3.3 JSON[@@toStringTag] setToStringTag(global.JSON, 'JSON', true); + /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { - var META = __webpack_require__(43)('meta') - , isObject = __webpack_require__(23) - , has = __webpack_require__(31) - , setDesc = __webpack_require__(21).f - , id = 0; - var isExtensible = Object.isExtensible || function(){ + var META = __webpack_require__(43)('meta'); + var isObject = __webpack_require__(23); + var has = __webpack_require__(31); + var setDesc = __webpack_require__(21).f; + var id = 0; + var isExtensible = Object.isExtensible || function () { return true; }; - var FREEZE = !__webpack_require__(26)(function(){ + var FREEZE = !__webpack_require__(26)(function () { return isExtensible(Object.preventExtensions({})); }); - var setMeta = function(it){ - setDesc(it, META, {value: { + var setMeta = function (it) { + setDesc(it, META, { value: { i: 'O' + ++id, // object ID w: {} // weak collections IDs - }}); + } }); }; - var fastKey = function(it, create){ + var fastKey = function (it, create) { // return primitive with prefix - if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if(!has(it, META)){ + if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + if (!has(it, META)) { // can't set metadata to uncaught frozen object - if(!isExtensible(it))return 'F'; + if (!isExtensible(it)) return 'F'; // not necessary to add metadata - if(!create)return 'E'; + if (!create) return 'E'; // add missing metadata setMeta(it); // return object ID } return it[META].i; }; - var getWeak = function(it, create){ - if(!has(it, META)){ + var getWeak = function (it, create) { + if (!has(it, META)) { // can't set metadata to uncaught frozen object - if(!isExtensible(it))return true; + if (!isExtensible(it)) return true; // not necessary to add metadata - if(!create)return false; + if (!create) return false; // add missing metadata setMeta(it); // return hash weak collections IDs } return it[META].w; }; // add metadata on freeze-family methods calling - var onFreeze = function(it){ - if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); + var onFreeze = function (it) { + if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); return it; }; var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, onFreeze: onFreeze }; + /***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) { - var global = __webpack_require__(16) - , core = __webpack_require__(17) - , LIBRARY = __webpack_require__(14) - , wksExt = __webpack_require__(65) - , defineProperty = __webpack_require__(21).f; - module.exports = function(name){ + var global = __webpack_require__(16); + var core = __webpack_require__(17); + var LIBRARY = __webpack_require__(14); + var wksExt = __webpack_require__(65); + var defineProperty = __webpack_require__(21).f; + module.exports = function (name) { var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); + if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); }; + /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { - var getKeys = __webpack_require__(35) - , toIObject = __webpack_require__(9); - module.exports = function(object, el){ - var O = toIObject(object) - , keys = getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; + var getKeys = __webpack_require__(35); + var toIObject = __webpack_require__(9); + module.exports = function (object, el) { + var O = toIObject(object); + var keys = getKeys(O); + var length = keys.length; + var index = 0; + var key; + while (length > index) if (O[key = keys[index++]] === el) return key; }; + /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { // all enumerable object keys, includes symbols - var getKeys = __webpack_require__(35) - , gOPS = __webpack_require__(73) - , pIE = __webpack_require__(74); - module.exports = function(it){ - var result = getKeys(it) - , getSymbols = gOPS.f; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = pIE.f - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); + var getKeys = __webpack_require__(35); + var gOPS = __webpack_require__(73); + var pIE = __webpack_require__(74); + module.exports = function (it) { + var result = getKeys(it); + var getSymbols = gOPS.f; + if (getSymbols) { + var symbols = getSymbols(it); + var isEnum = pIE.f; + var i = 0; + var key; + while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); } return result; }; + /***/ }), /* 73 */ /***/ (function(module, exports) { exports.f = Object.getOwnPropertySymbols; + /***/ }), /* 74 */ /***/ (function(module, exports) { exports.f = {}.propertyIsEnumerable; + /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { // 7.2.2 IsArray(argument) var cof = __webpack_require__(11); - module.exports = Array.isArray || function isArray(arg){ + module.exports = Array.isArray || function isArray(arg) { return cof(arg) == 'Array'; }; + /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(9) - , gOPN = __webpack_require__(77).f - , toString = {}.toString; + var toIObject = __webpack_require__(9); + var gOPN = __webpack_require__(77).f; + var toString = {}.toString; var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; - var getWindowNames = function(it){ + var getWindowNames = function (it) { try { return gOPN(it); - } catch(e){ + } catch (e) { return windowNames.slice(); } }; - module.exports.f = function getOwnPropertyNames(it){ + module.exports.f = function getOwnPropertyNames(it) { return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); }; @@ -2964,34 +3043,36 @@ return /******/ (function(modules) { // webpackBootstrap /***/ (function(module, exports, __webpack_require__) { // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) - var $keys = __webpack_require__(36) - , hiddenKeys = __webpack_require__(44).concat('length', 'prototype'); + var $keys = __webpack_require__(36); + var hiddenKeys = __webpack_require__(44).concat('length', 'prototype'); - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ + exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return $keys(O, hiddenKeys); }; + /***/ }), /* 78 */ /***/ (function(module, exports, __webpack_require__) { - var pIE = __webpack_require__(74) - , createDesc = __webpack_require__(29) - , toIObject = __webpack_require__(9) - , toPrimitive = __webpack_require__(28) - , has = __webpack_require__(31) - , IE8_DOM_DEFINE = __webpack_require__(24) - , gOPD = Object.getOwnPropertyDescriptor; + var pIE = __webpack_require__(74); + var createDesc = __webpack_require__(29); + var toIObject = __webpack_require__(9); + var toPrimitive = __webpack_require__(28); + var has = __webpack_require__(31); + var IE8_DOM_DEFINE = __webpack_require__(24); + var gOPD = Object.getOwnPropertyDescriptor; - exports.f = __webpack_require__(25) ? gOPD : function getOwnPropertyDescriptor(O, P){ + exports.f = __webpack_require__(25) ? gOPD : function getOwnPropertyDescriptor(O, P) { O = toIObject(O); P = toPrimitive(P, true); - if(IE8_DOM_DEFINE)try { + if (IE8_DOM_DEFINE) try { return gOPD(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); + } catch (e) { /* empty */ } + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); }; + /***/ }), /* 79 */ /***/ (function(module, exports) { @@ -3004,12 +3085,14 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(70)('asyncIterator'); + /***/ }), /* 81 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(70)('observable'); + /***/ }), /* 82 */ /***/ (function(module, exports, __webpack_require__) { @@ -7774,10 +7857,10 @@ return /******/ (function(modules) { // webpackBootstrap // DOM utility methods - /** - * this prepares the JSON container for allocating SVG elements - * @param JSONcontainer - * @private + /** + * this prepares the JSON container for allocating SVG elements + * @param JSONcontainer + * @private */ exports.prepareElements = function (JSONcontainer) { // cleanup the redundant svgElements; @@ -7789,12 +7872,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * this cleans up all the unused SVG elements. By asking for the parentNode, we only need to supply the JSON container from - * which to remove the redundant elements. - * - * @param JSONcontainer - * @private + /** + * this cleans up all the unused SVG elements. By asking for the parentNode, we only need to supply the JSON container from + * which to remove the redundant elements. + * + * @param JSONcontainer + * @private */ exports.cleanupElements = function (JSONcontainer) { // cleanup the redundant svgElements; @@ -7810,9 +7893,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Ensures that all elements are removed first up so they can be recreated cleanly - * @param JSONcontainer + /** + * Ensures that all elements are removed first up so they can be recreated cleanly + * @param JSONcontainer */ exports.resetElements = function (JSONcontainer) { exports.prepareElements(JSONcontainer); @@ -7820,15 +7903,15 @@ return /******/ (function(modules) { // webpackBootstrap exports.prepareElements(JSONcontainer); }; - /** - * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer - * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this. - * - * @param elementType - * @param JSONcontainer - * @param svgContainer - * @returns {*} - * @private + /** + * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer + * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this. + * + * @param elementType + * @param JSONcontainer + * @param svgContainer + * @returns {*} + * @private */ exports.getSVGElement = function (elementType, JSONcontainer, svgContainer) { var element; @@ -7854,15 +7937,15 @@ return /******/ (function(modules) { // webpackBootstrap return element; }; - /** - * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer - * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this. - * - * @param elementType - * @param JSONcontainer - * @param DOMContainer - * @returns {*} - * @private + /** + * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer + * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this. + * + * @param elementType + * @param JSONcontainer + * @param DOMContainer + * @returns {*} + * @private */ exports.getDOMElement = function (elementType, JSONcontainer, DOMContainer, insertBefore) { var element; @@ -7896,18 +7979,18 @@ return /******/ (function(modules) { // webpackBootstrap return element; }; - /** - * Draw a point object. This is a separate function because it can also be called by the legend. - * The reason the JSONcontainer and the target SVG svgContainer have to be supplied is so the legend can use these functions - * as well. - * - * @param x - * @param y - * @param groupTemplate: A template containing the necessary information to draw the datapoint e.g., {style: 'circle', size: 5, className: 'className' } - * @param JSONcontainer - * @param svgContainer - * @param labelObj - * @returns {*} + /** + * Draw a point object. This is a separate function because it can also be called by the legend. + * The reason the JSONcontainer and the target SVG svgContainer have to be supplied is so the legend can use these functions + * as well. + * + * @param x + * @param y + * @param groupTemplate: A template containing the necessary information to draw the datapoint e.g., {style: 'circle', size: 5, className: 'className' } + * @param JSONcontainer + * @param svgContainer + * @param labelObj + * @returns {*} */ exports.drawPoint = function (x, y, groupTemplate, JSONcontainer, svgContainer, labelObj) { var point; @@ -7954,12 +8037,12 @@ return /******/ (function(modules) { // webpackBootstrap return point; }; - /** - * draw a bar SVG element centered on the X coordinate - * - * @param x - * @param y - * @param className + /** + * draw a bar SVG element centered on the X coordinate + * + * @param x + * @param y + * @param className */ exports.drawBar = function (x, y, width, height, className, JSONcontainer, svgContainer, style) { if (height != 0) { @@ -8002,47 +8085,47 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); var Queue = __webpack_require__(92); - /** - * DataSet - * - * Usage: - * var dataSet = new DataSet({ - * fieldId: '_id', - * type: { - * // ... - * } - * }); - * - * dataSet.add(item); - * dataSet.add(data); - * dataSet.update(item); - * dataSet.update(data); - * dataSet.remove(id); - * dataSet.remove(ids); - * var data = dataSet.get(); - * var data = dataSet.get(id); - * var data = dataSet.get(ids); - * var data = dataSet.get(ids, options, data); - * dataSet.clear(); - * - * A data set can: - * - add/remove/update data - * - gives triggers upon changes in the data - * - can import/export data in various data formats - * - * @param {Array} [data] Optional array with initial data - * @param {Object} [options] Available options: - * {String} fieldId Field name of the id in the - * items, 'id' by default. - * {Object.} [type] - * {String[]} [fields] field names to be returned - * {function} [filter] filter items - * {String | function} [order] Order the items by a field name or custom sort function. - * @throws Error + /** + * Get a data item or multiple items. + * + * Usage: + * + * get() + * get(options: Object) + * + * get(id: Number | String) + * get(id: Number | String, options: Object) + * + * get(ids: Number[] | String[]) + * get(ids: Number[] | String[], options: Object) + * + * Where: + * + * {Number | String} id The id of an item + * {Number[] | String{}} ids An array with ids of items + * {Object} options An Object with options. Available options: + * {String} [returnType] Type of data to be returned. + * Can be 'Array' (default) or 'Object'. + * {Object.} [type] + * {String[]} [fields] field names to be returned + * {function} [filter] filter items + * {String | function} [order] Order the items by a field name or custom sort function. + * @throws Error */ DataSet.prototype.get = function (args) { var me = this; @@ -8419,13 +8502,13 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get ids of all items or from a filtered set of items. - * @param {Object} [options] An Object with options. Available options: - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. - * @return {Array} ids + /** + * Get ids of all items or from a filtered set of items. + * @param {Object} [options] An Object with options. Available options: + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. + * @return {Array} ids */ DataSet.prototype.getIds = function (options) { var data = this._data, @@ -8496,23 +8579,23 @@ return /******/ (function(modules) { // webpackBootstrap return ids; }; - /** - * Returns the DataSet itself. Is overwritten for example by the DataView, - * which returns the DataSet it is connected to instead. + /** + * Returns the DataSet itself. Is overwritten for example by the DataView, + * which returns the DataSet it is connected to instead. */ DataSet.prototype.getDataSet = function () { return this; }; - /** - * Execute a callback function for every item in the dataset. - * @param {function} callback - * @param {Object} [options] Available options: - * {Object.} [type] - * {String[]} [fields] filter fields - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. + /** + * Execute a callback function for every item in the dataset. + * @param {function} callback + * @param {Object} [options] Available options: + * {Object.} [type] + * {String[]} [fields] filter fields + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. */ DataSet.prototype.forEach = function (callback, options) { var filter = options && options.filter, @@ -8545,16 +8628,16 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Map every item in the dataset. - * @param {function} callback - * @param {Object} [options] Available options: - * {Object.} [type] - * {String[]} [fields] filter fields - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. - * @return {Object[]} mappedItems + /** + * Map every item in the dataset. + * @param {function} callback + * @param {Object} [options] Available options: + * {Object.} [type] + * {String[]} [fields] filter fields + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. + * @return {Object[]} mappedItems */ DataSet.prototype.map = function (callback, options) { var filter = options && options.filter, @@ -8584,12 +8667,12 @@ return /******/ (function(modules) { // webpackBootstrap return mappedItems; }; - /** - * Filter the fields of an item - * @param {Object | null} item - * @param {String[]} fields Field names - * @return {Object | null} filteredItem or null if no item is provided - * @private + /** + * Filter the fields of an item + * @param {Object | null} item + * @param {String[]} fields Field names + * @return {Object | null} filteredItem or null if no item is provided + * @private */ DataSet.prototype._filterFields = function (item, fields) { if (!item) { @@ -8622,11 +8705,11 @@ return /******/ (function(modules) { // webpackBootstrap return filteredItem; }; - /** - * Sort the provided array with items - * @param {Object[]} items - * @param {String | function} order A field name or custom sort function. - * @private + /** + * Sort the provided array with items + * @param {Object[]} items + * @param {String | function} order A field name or custom sort function. + * @private */ DataSet.prototype._sort = function (items, order) { if (util.isString(order)) { @@ -8648,12 +8731,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Remove an object by pointer or by id - * @param {String | Number | Object | Array} id Object or id, or an array with - * objects or ids to be removed - * @param {String} [senderId] Optional sender id - * @return {Array} removedIds + /** + * Remove an object by pointer or by id + * @param {String | Number | Object | Array} id Object or id, or an array with + * objects or ids to be removed + * @param {String} [senderId] Optional sender id + * @return {Array} removedIds */ DataSet.prototype.remove = function (id, senderId) { var removedIds = [], @@ -8685,11 +8768,11 @@ return /******/ (function(modules) { // webpackBootstrap return removedIds; }; - /** - * Remove an item by its id - * @param {Number | String | Object} id id or item - * @returns {Number | String | null} id - * @private + /** + * Remove an item by its id + * @param {Number | String | Object} id id or item + * @returns {Number | String | null} id + * @private */ DataSet.prototype._remove = function (id) { var item, ident; @@ -8711,10 +8794,10 @@ return /******/ (function(modules) { // webpackBootstrap return null; }; - /** - * Clear the data - * @param {String} [senderId] Optional sender id - * @return {Array} removedIds The ids of all removed items + /** + * Clear the data + * @param {String} [senderId] Optional sender id + * @return {Array} removedIds The ids of all removed items */ DataSet.prototype.clear = function (senderId) { var i, len; @@ -8733,10 +8816,10 @@ return /******/ (function(modules) { // webpackBootstrap return ids; }; - /** - * Find the item with maximum value of a specified field - * @param {String} field - * @return {Object | null} item Item containing max value, or null if no items + /** + * Find the item with maximum value of a specified field + * @param {String} field + * @return {Object | null} item Item containing max value, or null if no items */ DataSet.prototype.max = function (field) { var data = this._data, @@ -8759,10 +8842,10 @@ return /******/ (function(modules) { // webpackBootstrap return max; }; - /** - * Find the item with minimum value of a specified field - * @param {String} field - * @return {Object | null} item Item containing max value, or null if no items + /** + * Find the item with minimum value of a specified field + * @param {String} field + * @return {Object | null} item Item containing max value, or null if no items */ DataSet.prototype.min = function (field) { var data = this._data, @@ -8785,12 +8868,12 @@ return /******/ (function(modules) { // webpackBootstrap return min; }; - /** - * Find all distinct values of a specified field - * @param {String} field - * @return {Array} values Array containing all distinct values. If data items - * do not contain the specified field are ignored. - * The returned array is unordered. + /** + * Find all distinct values of a specified field + * @param {String} field + * @return {Array} values Array containing all distinct values. If data items + * do not contain the specified field are ignored. + * The returned array is unordered. */ DataSet.prototype.distinct = function (field) { var data = this._data; @@ -8826,11 +8909,11 @@ return /******/ (function(modules) { // webpackBootstrap return values; }; - /** - * Add a single item. Will fail when an item with the same id already exists. - * @param {Object} item - * @return {String} id - * @private + /** + * Add a single item. Will fail when an item with the same id already exists. + * @param {Object} item + * @return {String} id + * @private */ DataSet.prototype._addItem = function (item) { var id = item[this._fieldId]; @@ -8862,12 +8945,12 @@ return /******/ (function(modules) { // webpackBootstrap return id; }; - /** - * Get an item. Fields can be converted to a specific type - * @param {String} id - * @param {Object.} [types] field types to convert - * @return {Object | null} item - * @private + /** + * Get an item. Fields can be converted to a specific type + * @param {String} id + * @param {Object.} [types] field types to convert + * @return {Object | null} item + * @private */ DataSet.prototype._getItem = function (id, types) { var field, value, i, len; @@ -8904,13 +8987,13 @@ return /******/ (function(modules) { // webpackBootstrap return converted; }; - /** - * Update a single item: merge with existing item. - * Will fail when the item has no id, or when there does not exist an item - * with the same id. - * @param {Object} item - * @return {String} id - * @private + /** + * Update a single item: merge with existing item. + * Will fail when the item has no id, or when there does not exist an item + * with the same id. + * @param {Object} item + * @return {String} id + * @private */ DataSet.prototype._updateItem = function (item) { var id = item[this._fieldId]; @@ -8946,30 +9029,31 @@ return /******/ (function(modules) { // webpackBootstrap /* 91 */ /***/ (function(module, exports, __webpack_require__) { - var core = __webpack_require__(17) - , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify}); - module.exports = function stringify(it){ // eslint-disable-line no-unused-vars + var core = __webpack_require__(17); + var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify }); + module.exports = function stringify(it) { // eslint-disable-line no-unused-vars return $JSON.stringify.apply($JSON, arguments); }; + /***/ }), /* 92 */ /***/ (function(module, exports) { 'use strict'; - /** - * A queue - * @param {Object} options - * Available options: - * - delay: number When provided, the queue will be flushed - * automatically after an inactivity of this delay - * in milliseconds. - * Default value is null. - * - max: number When the queue exceeds the given maximum number - * of entries, the queue is flushed automatically. - * Default value of max is Infinity. - * @constructor + /** + * A queue + * @param {Object} options + * Available options: + * - delay: number When provided, the queue will be flushed + * automatically after an inactivity of this delay + * in milliseconds. + * Default value is null. + * - max: number When the queue exceeds the given maximum number + * of entries, the queue is flushed automatically. + * Default value of max is Infinity. + * @constructor */ function Queue(options) { // options @@ -8984,18 +9068,18 @@ return /******/ (function(modules) { // webpackBootstrap this.setOptions(options); } - /** - * Update the configuration of the queue - * @param {Object} options - * Available options: - * - delay: number When provided, the queue will be flushed - * automatically after an inactivity of this delay - * in milliseconds. - * Default value is null. - * - max: number When the queue exceeds the given maximum number - * of entries, the queue is flushed automatically. - * Default value of max is Infinity. - * @param options + /** + * Update the configuration of the queue + * @param {Object} options + * Available options: + * - delay: number When provided, the queue will be flushed + * automatically after an inactivity of this delay + * in milliseconds. + * Default value is null. + * - max: number When the queue exceeds the given maximum number + * of entries, the queue is flushed automatically. + * Default value of max is Infinity. + * @param options */ Queue.prototype.setOptions = function (options) { if (options && typeof options.delay !== 'undefined') { @@ -9008,24 +9092,24 @@ return /******/ (function(modules) { // webpackBootstrap this._flushIfNeeded(); }; - /** - * Extend an object with queuing functionality. - * The object will be extended with a function flush, and the methods provided - * in options.replace will be replaced with queued ones. - * @param {Object} object - * @param {Object} options - * Available options: - * - replace: Array. - * A list with method names of the methods - * on the object to be replaced with queued ones. - * - delay: number When provided, the queue will be flushed - * automatically after an inactivity of this delay - * in milliseconds. - * Default value is null. - * - max: number When the queue exceeds the given maximum number - * of entries, the queue is flushed automatically. - * Default value of max is Infinity. - * @return {Queue} Returns the created queue + /** + * Extend an object with queuing functionality. + * The object will be extended with a function flush, and the methods provided + * in options.replace will be replaced with queued ones. + * @param {Object} object + * @param {Object} options + * Available options: + * - replace: Array. + * A list with method names of the methods + * on the object to be replaced with queued ones. + * - delay: number When provided, the queue will be flushed + * automatically after an inactivity of this delay + * in milliseconds. + * Default value is null. + * - max: number When the queue exceeds the given maximum number + * of entries, the queue is flushed automatically. + * Default value of max is Infinity. + * @return {Queue} Returns the created queue */ Queue.extend = function (object, options) { var queue = new Queue(options); @@ -9061,9 +9145,9 @@ return /******/ (function(modules) { // webpackBootstrap return queue; }; - /** - * Destroy the queue. The queue will first flush all queued actions, and in - * case it has extended an object, will restore the original object. + /** + * Destroy the queue. The queue will first flush all queued actions, and in + * case it has extended an object, will restore the original object. */ Queue.prototype.destroy = function () { this.flush(); @@ -9083,10 +9167,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Replace a method on an object with a queued version - * @param {Object} object Object having the method - * @param {string} method The method name + /** + * Replace a method on an object with a queued version + * @param {Object} object Object having the method + * @param {string} method The method name */ Queue.prototype.replace = function (object, method) { var me = this; @@ -9111,9 +9195,9 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Queue a call - * @param {function | {fn: function, args: Array} | {fn: function, args: Array, context: Object}} entry + /** + * Queue a call + * @param {function | {fn: function, args: Array} | {fn: function, args: Array, context: Object}} entry */ Queue.prototype.queue = function (entry) { if (typeof entry === 'function') { @@ -9125,9 +9209,9 @@ return /******/ (function(modules) { // webpackBootstrap this._flushIfNeeded(); }; - /** - * Check whether the queue needs to be flushed - * @private + /** + * Check whether the queue needs to be flushed + * @private */ Queue.prototype._flushIfNeeded = function () { // flush when the maximum is exceeded. @@ -9145,8 +9229,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Flush all queued calls + /** + * Flush all queued calls */ Queue.prototype.flush = function () { while (this._queue.length > 0) { @@ -9172,15 +9256,15 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); var DataSet = __webpack_require__(89); - /** - * DataView - * - * a dataview offers a filtered view on a dataset or an other dataview. - * - * @param {DataSet | DataView} data - * @param {Object} [options] Available options: see method get - * - * @constructor DataView + /** + * DataView + * + * a dataview offers a filtered view on a dataset or an other dataview. + * + * @param {DataSet | DataView} data + * @param {Object} [options] Available options: see method get + * + * @constructor DataView */ function DataView(data, options) { this._data = null; @@ -9201,9 +9285,9 @@ return /******/ (function(modules) { // webpackBootstrap // TODO: implement a function .config() to dynamically update things like configured filter // and trigger changes accordingly - /** - * Set a data source for the view - * @param {DataSet | DataView} data + /** + * Set a data source for the view + * @param {DataSet | DataView} data */ DataView.prototype.setData = function (data) { var ids, id, i, len, items; @@ -9249,9 +9333,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Refresh the DataView. Useful when the DataView has a filter function - * containing a variable parameter. + /** + * Refresh the DataView. Useful when the DataView has a filter function + * containing a variable parameter. */ DataView.prototype.refresh = function () { var id, i, len; @@ -9293,39 +9377,39 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get data from the data view - * - * Usage: - * - * get() - * get(options: Object) - * get(options: Object, data: Array | DataTable) - * - * get(id: Number) - * get(id: Number, options: Object) - * get(id: Number, options: Object, data: Array | DataTable) - * - * get(ids: Number[]) - * get(ids: Number[], options: Object) - * get(ids: Number[], options: Object, data: Array | DataTable) - * - * Where: - * - * {Number | String} id The id of an item - * {Number[] | String{}} ids An array with ids of items - * {Object} options An Object with options. Available options: - * {String} [type] Type of data to be returned. Can - * be 'DataTable' or 'Array' (default) - * {Object.} [convert] - * {String[]} [fields] field names to be returned - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. - * {Array | DataTable} [data] If provided, items will be appended to this - * array or table. Required in case of Google - * DataTable. - * @param args + /** + * Get data from the data view + * + * Usage: + * + * get() + * get(options: Object) + * get(options: Object, data: Array | DataTable) + * + * get(id: Number) + * get(id: Number, options: Object) + * get(id: Number, options: Object, data: Array | DataTable) + * + * get(ids: Number[]) + * get(ids: Number[], options: Object) + * get(ids: Number[], options: Object, data: Array | DataTable) + * + * Where: + * + * {Number | String} id The id of an item + * {Number[] | String{}} ids An array with ids of items + * {Object} options An Object with options. Available options: + * {String} [type] Type of data to be returned. Can + * be 'DataTable' or 'Array' (default) + * {Object.} [convert] + * {String[]} [fields] field names to be returned + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. + * {Array | DataTable} [data] If provided, items will be appended to this + * array or table. Required in case of Google + * DataTable. + * @param args */ DataView.prototype.get = function (args) { var me = this; @@ -9365,13 +9449,13 @@ return /******/ (function(modules) { // webpackBootstrap return this._data && this._data.get.apply(this._data, getArguments); }; - /** - * Get ids of all items or from a filtered set of items. - * @param {Object} [options] An Object with options. Available options: - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. - * @return {Array} ids + /** + * Get ids of all items or from a filtered set of items. + * @param {Object} [options] An Object with options. Available options: + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. + * @return {Array} ids */ DataView.prototype.getIds = function (options) { var ids; @@ -9403,16 +9487,16 @@ return /******/ (function(modules) { // webpackBootstrap return ids; }; - /** - * Map every item in the dataset. - * @param {function} callback - * @param {Object} [options] Available options: - * {Object.} [type] - * {String[]} [fields] filter fields - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. - * @return {Object[]} mappedItems + /** + * Map every item in the dataset. + * @param {function} callback + * @param {Object} [options] Available options: + * {Object.} [type] + * {String[]} [fields] filter fields + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. + * @return {Object[]} mappedItems */ DataView.prototype.map = function (callback, options) { var mappedItems = []; @@ -9443,10 +9527,10 @@ return /******/ (function(modules) { // webpackBootstrap return mappedItems; }; - /** - * Get the DataSet to which this DataView is connected. In case there is a chain - * of multiple DataViews, the root DataSet of this chain is returned. - * @return {DataSet} dataSet + /** + * Get the DataSet to which this DataView is connected. In case there is a chain + * of multiple DataViews, the root DataSet of this chain is returned. + * @return {DataSet} dataSet */ DataView.prototype.getDataSet = function () { var dataSet = this; @@ -9456,14 +9540,14 @@ return /******/ (function(modules) { // webpackBootstrap return dataSet || null; }; - /** - * Event listener. Will propagate all events from the connected data set to - * the subscribers of the DataView, but will filter the items and only trigger - * when there are changes in the filtered data set. - * @param {String} event - * @param {Object | null} params - * @param {String} senderId - * @private + /** + * Event listener. Will propagate all events from the connected data set to + * the subscribers of the DataView, but will filter the items and only trigger + * when there are changes in the filtered data set. + * @param {String} event + * @param {Object | null} params + * @param {String} senderId + * @private */ DataView.prototype._onEvent = function (event, params, senderId) { var i, len, id, item; @@ -9587,23 +9671,23 @@ return /******/ (function(modules) { // webpackBootstrap /// enumerate the available styles Graph3d.STYLE = Settings.STYLE; - /** - * Following label is used in the settings to describe values which should be - * determined by the code while running, from the current data and graph style. - * - * Using 'undefined' directly achieves the same thing, but this is more - * descriptive by describing the intent. + /** + * Following label is used in the settings to describe values which should be + * determined by the code while running, from the current data and graph style. + * + * Using 'undefined' directly achieves the same thing, but this is more + * descriptive by describing the intent. */ var autoByDefault = undefined; - /** - * Default values for option settings. - * - * These are the values used when a Graph3d instance is initialized without - * custom settings. - * - * If a field is not in this list, a default value of 'autoByDefault' is assumed, - * which is just an alias for 'undefined'. + /** + * Default values for option settings. + * + * These are the values used when a Graph3d instance is initialized without + * custom settings. + * + * If a field is not in this list, a default value of 'autoByDefault' is assumed, + * which is just an alias for 'undefined'. */ var DEFAULTS = { width: '400px', @@ -9705,16 +9789,16 @@ return /******/ (function(modules) { // webpackBootstrap // ----------------------------------------------------------------------------- - /** - * @constructor Graph3d - * Graph3d displays data in 3d. - * - * Graph3d is developed in javascript as a Google Visualization Chart. - * - * @param {Element} container The DOM element in which the Graph3d will - * be created. Normally a div element. - * @param {DataSet | DataView | Array} [data] - * @param {Object} [options] + /** + * @constructor Graph3d + * Graph3d displays data in 3d. + * + * Graph3d is developed in javascript as a Google Visualization Chart. + * + * @param {Element} container The DOM element in which the Graph3d will + * be created. Normally a div element. + * @param {DataSet | DataView | Array} [data] + * @param {Object} [options] */ function Graph3d(container, data, options) { if (!(this instanceof Graph3d)) { @@ -9753,8 +9837,8 @@ return /******/ (function(modules) { // webpackBootstrap // Extend Graph3d with an Emitter mixin Emitter(Graph3d.prototype); - /** - * Calculate the scaling values, dependent on the range in x, y, and z direction + /** + * Calculate the scaling values, dependent on the range in x, y, and z direction */ Graph3d.prototype._setScale = function () { this.scale = new Point3d(1 / this.xRange.range(), 1 / this.yRange.range(), 1 / this.zRange.range()); @@ -9786,26 +9870,26 @@ return /******/ (function(modules) { // webpackBootstrap this.camera.setArmLocation(xCenter, yCenter, zCenter); }; - /** - * Convert a 3D location to a 2D location on screen - * Source: ttp://en.wikipedia.org/wiki/3D_projection - * - * @param {Point3d} point3d A 3D point with parameters x, y, z - * @returns {Point2d} point2d A 2D point with parameters x, y + /** + * Convert a 3D location to a 2D location on screen + * Source: ttp://en.wikipedia.org/wiki/3D_projection + * + * @param {Point3d} point3d A 3D point with parameters x, y, z + * @returns {Point2d} point2d A 2D point with parameters x, y */ Graph3d.prototype._convert3Dto2D = function (point3d) { var translation = this._convertPointToTranslation(point3d); return this._convertTranslationToScreen(translation); }; - /** - * Convert a 3D location its translation seen from the camera - * Source: http://en.wikipedia.org/wiki/3D_projection - * - * @param {Point3d} point3d A 3D point with parameters x, y, z - * @returns {Point3d} translation A 3D point with parameters x, y, z This is - * the translation of the point, seen from the - * camera. + /** + * Convert a 3D location its translation seen from the camera + * Source: http://en.wikipedia.org/wiki/3D_projection + * + * @param {Point3d} point3d A 3D point with parameters x, y, z + * @returns {Point3d} translation A 3D point with parameters x, y, z This is + * the translation of the point, seen from the + * camera. */ Graph3d.prototype._convertPointToTranslation = function (point3d) { var cameraLocation = this.camera.getCameraLocation(), @@ -9835,13 +9919,13 @@ return /******/ (function(modules) { // webpackBootstrap return new Point3d(dx, dy, dz); }; - /** - * Convert a translation point to a point on the screen - * - * @param {Point3d} translation A 3D point with parameters x, y, z This is - * the translation of the point, seen from the - * camera. - * @returns {Point2d} point2d A 2D point with parameters x, y + /** + * Convert a translation point to a point on the screen + * + * @param {Point3d} translation A 3D point with parameters x, y, z This is + * the translation of the point, seen from the + * camera. + * @returns {Point2d} point2d A 2D point with parameters x, y */ Graph3d.prototype._convertTranslationToScreen = function (translation) { var ex = this.eye.x, @@ -9867,8 +9951,8 @@ return /******/ (function(modules) { // webpackBootstrap return new Point2d(this.currentXCenter + bx * this.frame.canvas.clientWidth, this.currentYCenter - by * this.frame.canvas.clientWidth); }; - /** - * Calculate the translations and screen positions of all points + /** + * Calculate the translations and screen positions of all points */ Graph3d.prototype._calcTranslations = function (points) { for (var i = 0; i < points.length; i++) { @@ -9888,10 +9972,10 @@ return /******/ (function(modules) { // webpackBootstrap points.sort(sortDepth); }; - /** - * Check if the state is consistent for the use of the value field. - * - * Throws if a problem is detected. + /** + * Check if the state is consistent for the use of the value field. + * + * Throws if a problem is detected. */ Graph3d.prototype._checkValueField = function (data) { @@ -9955,8 +10039,8 @@ return /******/ (function(modules) { // webpackBootstrap this._setScale(); }; - /** - * Return all data values as a list of Point3d objects + /** + * Return all data values as a list of Point3d objects */ Graph3d.prototype.getDataPoints = function (data) { var dataPoints = []; @@ -9984,12 +10068,12 @@ return /******/ (function(modules) { // webpackBootstrap return dataPoints; }; - /** - * Filter the data based on the current filter - * - * @param {Array} data - * @returns {Array} dataPoints Array with point objects which can be drawn on - * screen + /** + * Filter the data based on the current filter + * + * @param {Array} data + * @returns {Array} dataPoints Array with point objects which can be drawn on + * screen */ Graph3d.prototype._getDataPoints = function (data) { // TODO: store the created matrix dataPoints in the filters instead of @@ -10052,12 +10136,12 @@ return /******/ (function(modules) { // webpackBootstrap return dataPoints; }; - /** - * Create the main frame for the Graph3d. - * - * This function is executed once when a Graph3d object is created. The frame - * contains a canvas, and this canvas contains all objects like the axis and - * nodes. + /** + * Create the main frame for the Graph3d. + * + * This function is executed once when a Graph3d object is created. The frame + * contains a canvas, and this canvas contains all objects like the axis and + * nodes. */ Graph3d.prototype.create = function () { // remove all elements from the container element. @@ -10119,8 +10203,8 @@ return /******/ (function(modules) { // webpackBootstrap this.containerElement.appendChild(this.frame); }; - /** - * Set a new size for the graph + /** + * Set a new size for the graph */ Graph3d.prototype._setSize = function (width, height) { this.frame.style.width = width; @@ -10129,8 +10213,8 @@ return /******/ (function(modules) { // webpackBootstrap this._resizeCanvas(); }; - /** - * Resize the canvas to the current size of the frame + /** + * Resize the canvas to the current size of the frame */ Graph3d.prototype._resizeCanvas = function () { this.frame.canvas.style.width = '100%'; @@ -10143,8 +10227,8 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.filter.style.width = this.frame.canvas.clientWidth - 2 * 10 + 'px'; }; - /** - * Start animation + /** + * Start animation */ Graph3d.prototype.animationStart = function () { if (!this.frame.filter || !this.frame.filter.slider) throw new Error('No animation available'); @@ -10152,8 +10236,8 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.filter.slider.play(); }; - /** - * Stop animation + /** + * Stop animation */ Graph3d.prototype.animationStop = function () { if (!this.frame.filter || !this.frame.filter.slider) return; @@ -10161,11 +10245,11 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.filter.slider.stop(); }; - /** - * Resize the center position based on the current values in this.xCenter - * and this.yCenter (which are strings with a percentage or a value - * in pixels). The center positions are the variables this.currentXCenter - * and this.currentYCenter + /** + * Resize the center position based on the current values in this.xCenter + * and this.yCenter (which are strings with a percentage or a value + * in pixels). The center positions are the variables this.currentXCenter + * and this.currentYCenter */ Graph3d.prototype._resizeCenter = function () { // calculate the horizontal center position @@ -10183,11 +10267,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Retrieve the current camera rotation - * - * @returns {object} An object with parameters horizontal, vertical, and - * distance + /** + * Retrieve the current camera rotation + * + * @returns {object} An object with parameters horizontal, vertical, and + * distance */ Graph3d.prototype.getCameraPosition = function () { var pos = this.camera.getArmRotation(); @@ -10195,8 +10279,8 @@ return /******/ (function(modules) { // webpackBootstrap return pos; }; - /** - * Load data into the 3D Graph + /** + * Load data into the 3D Graph */ Graph3d.prototype._readData = function (data) { // read the data @@ -10214,10 +10298,10 @@ return /******/ (function(modules) { // webpackBootstrap this._redrawFilter(); }; - /** - * Replace the dataset of the Graph3d - * - * @param {Array | DataSet | DataView} data + /** + * Replace the dataset of the Graph3d + * + * @param {Array | DataSet | DataView} data */ Graph3d.prototype.setData = function (data) { this._readData(data); @@ -10229,10 +10313,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Update the options. Options will be merged with current options - * - * @param {Object} options + /** + * Update the options. Options will be merged with current options + * + * @param {Object} options */ Graph3d.prototype.setOptions = function (options) { var cameraPosition = undefined; @@ -10253,8 +10337,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Determine which point drawing method to use for the current graph style. + /** + * Determine which point drawing method to use for the current graph style. */ Graph3d.prototype.setPointDrawingMethod = function () { var method = undefined; @@ -10297,8 +10381,8 @@ return /******/ (function(modules) { // webpackBootstrap this._pointDrawingMethod = method; }; - /** - * Redraw the Graph. + /** + * Redraw the Graph. */ Graph3d.prototype.redraw = function () { if (this.dataPoints === undefined) { @@ -10317,8 +10401,8 @@ return /******/ (function(modules) { // webpackBootstrap this._redrawLegend(); }; - /** - * Get drawing context without exposing canvas + /** + * Get drawing context without exposing canvas */ Graph3d.prototype._getContext = function () { var canvas = this.frame.canvas; @@ -10330,8 +10414,8 @@ return /******/ (function(modules) { // webpackBootstrap return ctx; }; - /** - * Clear the canvas before redrawing + /** + * Clear the canvas before redrawing */ Graph3d.prototype._redrawClear = function () { var canvas = this.frame.canvas; @@ -10344,8 +10428,8 @@ return /******/ (function(modules) { // webpackBootstrap return this.frame.clientWidth * this.dotSizeRatio; }; - /** - * Get legend width + /** + * Get legend width */ Graph3d.prototype._getLegendWidth = function () { var width; @@ -10362,8 +10446,8 @@ return /******/ (function(modules) { // webpackBootstrap return width; }; - /** - * Redraw the legend based on size, dot color, or surface height + /** + * Redraw the legend based on size, dot color, or surface height */ Graph3d.prototype._redrawLegend = function () { @@ -10467,8 +10551,8 @@ return /******/ (function(modules) { // webpackBootstrap ctx.fillText(label, right, bottom + this.margin); }; - /** - * Redraw the filter + /** + * Redraw the filter */ Graph3d.prototype._redrawFilter = function () { this.frame.filter.innerHTML = ''; @@ -10503,8 +10587,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Redraw the slider + /** + * Redraw the slider */ Graph3d.prototype._redrawSlider = function () { if (this.frame.filter.slider !== undefined) { @@ -10512,8 +10596,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Redraw common information + /** + * Redraw common information */ Graph3d.prototype._redrawInfo = function () { if (this.dataFilter) { @@ -10531,10 +10615,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Draw a line between 2d points 'from' and 'to'. - * - * If stroke style specified, set that as well. + /** + * Draw a line between 2d points 'from' and 'to'. + * + * If stroke style specified, set that as well. */ Graph3d.prototype._line = function (ctx, from, to, strokeStyle) { if (strokeStyle !== undefined) { @@ -10605,13 +10689,13 @@ return /******/ (function(modules) { // webpackBootstrap ctx.fillText(text, point2d.x - offset, point2d.y); }; - /** - - - /** - * Draw a line between 2d points 'from' and 'to'. - * - * If stroke style specified, set that as well. + /** + + + /** + * Draw a line between 2d points 'from' and 'to'. + * + * If stroke style specified, set that as well. */ Graph3d.prototype._line3d = function (ctx, from, to, strokeStyle) { var from2d = this._convert3Dto2D(from); @@ -10620,8 +10704,8 @@ return /******/ (function(modules) { // webpackBootstrap this._line(ctx, from2d, to2d, strokeStyle); }; - /** - * Redraw the axis + /** + * Redraw the axis */ Graph3d.prototype._redrawAxis = function () { var ctx = this._getContext(), @@ -10812,11 +10896,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Calculate the color based on the given value. - * @param {Number} H Hue, a value be between 0 and 360 - * @param {Number} S Saturation, a value between 0 and 1 - * @param {Number} V Value, a value between 0 and 1 + /** + * Calculate the color based on the given value. + * @param {Number} H Hue, a value be between 0 and 360 + * @param {Number} S Saturation, a value between 0 and 1 + * @param {Number} V Value, a value between 0 and 1 */ Graph3d.prototype._hsv2rgb = function (H, S, V) { var R, G, B, C, Hi, X; @@ -10863,8 +10947,8 @@ return /******/ (function(modules) { // webpackBootstrap // ----------------------------------------------------------------------------- - /** - * Draw a bar element in the view with the given properties. + /** + * Draw a bar element in the view with the given properties. */ Graph3d.prototype._redrawBar = function (ctx, point, xWidth, yWidth, color, borderColor) { var i, j, surface; @@ -10922,12 +11006,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Draw a polygon using the passed points and fill it with the passed style and stroke. - * - * @param points an array of points. - * @param fillStyle optional; the fill style to set - * @param strokeStyle optional; the stroke style to set + /** + * Draw a polygon using the passed points and fill it with the passed style and stroke. + * + * @param points an array of points. + * @param fillStyle optional; the fill style to set + * @param strokeStyle optional; the stroke style to set */ Graph3d.prototype._polygon = function (ctx, points, fillStyle, strokeStyle) { if (points.length < 2) { @@ -10953,8 +11037,8 @@ return /******/ (function(modules) { // webpackBootstrap ctx.stroke(); // TODO: only draw stroke when strokeWidth > 0 }; - /** - * @param size optional; if not specified use value from 'this._dotSize()` + /** + * @param size optional; if not specified use value from 'this._dotSize()` */ Graph3d.prototype._drawCircle = function (ctx, point, color, borderColor, size) { var radius = this._calcRadius(point, size); @@ -10968,8 +11052,8 @@ return /******/ (function(modules) { // webpackBootstrap ctx.stroke(); }; - /** - * Determine the colors for the 'regular' graph styles. + /** + * Determine the colors for the 'regular' graph styles. */ Graph3d.prototype._getColorsRegular = function (point) { // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 @@ -10983,14 +11067,14 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Get the colors for the 'color' graph styles. - * These styles are currently: 'bar-color' and 'dot-color' - * Color may be set as a string representation of HTML color, like #ff00ff, - * or calculated from a number, for example, distance from this point - * The first option is useful when we have some pre-given legend, to which we have to adjust ourselves - * The second option is useful when we are interested in automatically setting the color, from some value, - * using some color scale + /** + * Get the colors for the 'color' graph styles. + * These styles are currently: 'bar-color' and 'dot-color' + * Color may be set as a string representation of HTML color, like #ff00ff, + * or calculated from a number, for example, distance from this point + * The first option is useful when we have some pre-given legend, to which we have to adjust ourselves + * The second option is useful when we are interested in automatically setting the color, from some value, + * using some color scale */ Graph3d.prototype._getColorsColor = function (point) { // calculate the color based on the value @@ -11010,9 +11094,9 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Get the colors for the 'size' graph styles. - * These styles are currently: 'bar-size' and 'dot-size' + /** + * Get the colors for the 'size' graph styles. + * These styles are currently: 'bar-size' and 'dot-size' */ Graph3d.prototype._getColorsSize = function () { return { @@ -11021,12 +11105,12 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Determine the size of a point on-screen, as determined by the - * distance to the camera. - * - * @param size the size that needs to be translated to screen coordinates. - * optional; if not passed, use the default point size. + /** + * Determine the size of a point on-screen, as determined by the + * distance to the camera. + * + * @param size the size that needs to be translated to screen coordinates. + * optional; if not passed, use the default point size. */ Graph3d.prototype._calcRadius = function (point, size) { if (size === undefined) { @@ -11051,8 +11135,8 @@ return /******/ (function(modules) { // webpackBootstrap // ----------------------------------------------------------------------------- - /** - * Draw single datapoint for graph style 'bar'. + /** + * Draw single datapoint for graph style 'bar'. */ Graph3d.prototype._redrawBarGraphPoint = function (ctx, point) { var xWidth = this.xBarWidth / 2; @@ -11062,8 +11146,8 @@ return /******/ (function(modules) { // webpackBootstrap this._redrawBar(ctx, point, xWidth, yWidth, colors.fill, colors.border); }; - /** - * Draw single datapoint for graph style 'bar-color'. + /** + * Draw single datapoint for graph style 'bar-color'. */ Graph3d.prototype._redrawBarColorGraphPoint = function (ctx, point) { var xWidth = this.xBarWidth / 2; @@ -11073,8 +11157,8 @@ return /******/ (function(modules) { // webpackBootstrap this._redrawBar(ctx, point, xWidth, yWidth, colors.fill, colors.border); }; - /** - * Draw single datapoint for graph style 'bar-size'. + /** + * Draw single datapoint for graph style 'bar-size'. */ Graph3d.prototype._redrawBarSizeGraphPoint = function (ctx, point) { // calculate size for the bar @@ -11087,8 +11171,8 @@ return /******/ (function(modules) { // webpackBootstrap this._redrawBar(ctx, point, xWidth, yWidth, colors.fill, colors.border); }; - /** - * Draw single datapoint for graph style 'dot'. + /** + * Draw single datapoint for graph style 'dot'. */ Graph3d.prototype._redrawDotGraphPoint = function (ctx, point) { var colors = this._getColorsRegular(point); @@ -11096,8 +11180,8 @@ return /******/ (function(modules) { // webpackBootstrap this._drawCircle(ctx, point, colors.fill, colors.border); }; - /** - * Draw single datapoint for graph style 'dot-line'. + /** + * Draw single datapoint for graph style 'dot-line'. */ Graph3d.prototype._redrawDotLineGraphPoint = function (ctx, point) { // draw a vertical line from the XY-plane to the graph value @@ -11108,8 +11192,8 @@ return /******/ (function(modules) { // webpackBootstrap this._redrawDotGraphPoint(ctx, point); }; - /** - * Draw single datapoint for graph style 'dot-color'. + /** + * Draw single datapoint for graph style 'dot-color'. */ Graph3d.prototype._redrawDotColorGraphPoint = function (ctx, point) { var colors = this._getColorsColor(point); @@ -11117,8 +11201,8 @@ return /******/ (function(modules) { // webpackBootstrap this._drawCircle(ctx, point, colors.fill, colors.border); }; - /** - * Draw single datapoint for graph style 'dot-size'. + /** + * Draw single datapoint for graph style 'dot-size'. */ Graph3d.prototype._redrawDotSizeGraphPoint = function (ctx, point) { var dotSize = this._dotSize(); @@ -11133,8 +11217,8 @@ return /******/ (function(modules) { // webpackBootstrap this._drawCircle(ctx, point, colors.fill, colors.border, size); }; - /** - * Draw single datapoint for graph style 'surface'. + /** + * Draw single datapoint for graph style 'surface'. */ Graph3d.prototype._redrawSurfaceGraphPoint = function (ctx, point) { var right = point.pointRight; @@ -11193,8 +11277,8 @@ return /******/ (function(modules) { // webpackBootstrap this._polygon(ctx, points, fillStyle, strokeStyle); }; - /** - * Helper method for _redrawGridGraphPoint() + /** + * Helper method for _redrawGridGraphPoint() */ Graph3d.prototype._drawGridLine = function (ctx, from, to) { if (from === undefined || to === undefined) { @@ -11210,16 +11294,16 @@ return /******/ (function(modules) { // webpackBootstrap this._line(ctx, from.screen, to.screen); }; - /** - * Draw single datapoint for graph style 'Grid'. + /** + * Draw single datapoint for graph style 'Grid'. */ Graph3d.prototype._redrawGridGraphPoint = function (ctx, point) { this._drawGridLine(ctx, point, point.pointRight); this._drawGridLine(ctx, point, point.pointTop); }; - /** - * Draw single datapoint for graph style 'line'. + /** + * Draw single datapoint for graph style 'line'. */ Graph3d.prototype._redrawLineGraphPoint = function (ctx, point) { if (point.pointNext === undefined) { @@ -11232,9 +11316,9 @@ return /******/ (function(modules) { // webpackBootstrap this._line(ctx, point.screen, point.pointNext.screen); }; - /** - * Draw all datapoints for currently selected graph style. - * + /** + * Draw all datapoints for currently selected graph style. + * */ Graph3d.prototype._redrawDataGraph = function () { var ctx = this._getContext(); @@ -11256,10 +11340,10 @@ return /******/ (function(modules) { // webpackBootstrap // End methods for drawing points per graph style. // ----------------------------------------------------------------------------- - /** - * Store startX, startY and startOffset for mouse operations - * - * @param {Event} event The event that occurred + /** + * Store startX, startY and startOffset for mouse operations + * + * @param {Event} event The event that occurred */ Graph3d.prototype._storeMousePosition = function (event) { // get mouse position (different code for IE and all other browsers) @@ -11269,10 +11353,10 @@ return /******/ (function(modules) { // webpackBootstrap this._startCameraOffset = this.camera.getOffset(); }; - /** - * Start a moving operation inside the provided parent element - * @param {Event} event The event that occurred (required for - * retrieving the mouse position) + /** + * Start a moving operation inside the provided parent element + * @param {Event} event The event that occurred (required for + * retrieving the mouse position) */ Graph3d.prototype._onMouseDown = function (event) { event = event || window.event; @@ -11310,10 +11394,10 @@ return /******/ (function(modules) { // webpackBootstrap util.preventDefault(event); }; - /** - * Perform moving operating. - * This function activated from within the funcion Graph.mouseDown(). - * @param {Event} event Well, eehh, the event + /** + * Perform moving operating. + * This function activated from within the funcion Graph.mouseDown(). + * @param {Event} event Well, eehh, the event */ Graph3d.prototype._onMouseMove = function (event) { this.moving = true; @@ -11369,10 +11453,10 @@ return /******/ (function(modules) { // webpackBootstrap util.preventDefault(event); }; - /** - * Stop moving operating. - * This function activated from within the funcion Graph.mouseDown(). - * @param {event} event The event + /** + * Stop moving operating. + * This function activated from within the funcion Graph.mouseDown(). + * @param {event} event The event */ Graph3d.prototype._onMouseUp = function (event) { this.frame.style.cursor = 'auto'; @@ -11384,8 +11468,8 @@ return /******/ (function(modules) { // webpackBootstrap util.preventDefault(event); }; - /** - * @param {event} event The event + /** + * @param {event} event The event */ Graph3d.prototype._onClick = function (event) { if (!this.onclick_callback) return; @@ -11402,9 +11486,9 @@ return /******/ (function(modules) { // webpackBootstrap util.preventDefault(event); }; - /** - * After having moved the mouse, a tooltip should pop up when the mouse is resting on a data point - * @param {Event} event A mouse move event + /** + * After having moved the mouse, a tooltip should pop up when the mouse is resting on a data point + * @param {Event} event A mouse move event */ Graph3d.prototype._onTooltip = function (event) { var delay = 300; // ms @@ -11452,8 +11536,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Event handler for touchstart event on mobile devices + /** + * Event handler for touchstart event on mobile devices */ Graph3d.prototype._onTouchStart = function (event) { this.touchDown = true; @@ -11471,15 +11555,15 @@ return /******/ (function(modules) { // webpackBootstrap this._onMouseDown(event); }; - /** - * Event handler for touchmove event on mobile devices + /** + * Event handler for touchmove event on mobile devices */ Graph3d.prototype._onTouchMove = function (event) { this._onMouseMove(event); }; - /** - * Event handler for touchend event on mobile devices + /** + * Event handler for touchend event on mobile devices */ Graph3d.prototype._onTouchEnd = function (event) { this.touchDown = false; @@ -11490,10 +11574,10 @@ return /******/ (function(modules) { // webpackBootstrap this._onMouseUp(event); }; - /** - * Event handler for mouse wheel event, used to zoom the graph - * Code from http://adomas.org/javascript-mouse-wheel/ - * @param {event} event The event + /** + * Event handler for mouse wheel event, used to zoom the graph + * Code from http://adomas.org/javascript-mouse-wheel/ + * @param {event} event The event */ Graph3d.prototype._onWheel = function (event) { if (!event) /* For IE. */ @@ -11534,14 +11618,14 @@ return /******/ (function(modules) { // webpackBootstrap util.preventDefault(event); }; - /** - * Test whether a point lies inside given 2D triangle - * - * @param {Point2d} point - * @param {Point2d[]} triangle - * @returns {boolean} true if given point lies inside or on the edge of the - * triangle, false otherwise - * @private + /** + * Test whether a point lies inside given 2D triangle + * + * @param {Point2d} point + * @param {Point2d[]} triangle + * @returns {boolean} true if given point lies inside or on the edge of the + * triangle, false otherwise + * @private */ Graph3d.prototype._insideTriangle = function (point, triangle) { var a = triangle[0], @@ -11560,14 +11644,14 @@ return /******/ (function(modules) { // webpackBootstrap return (as == 0 || bs == 0 || as == bs) && (bs == 0 || cs == 0 || bs == cs) && (as == 0 || cs == 0 || as == cs); }; - /** - * Find a data point close to given screen position (x, y) - * - * @param {Number} x - * @param {Number} y - * @returns {Object | null} The closest data point or null if not close to any - * data point - * @private + /** + * Find a data point close to given screen position (x, y) + * + * @param {Number} x + * @param {Number} y + * @returns {Object | null} The closest data point or null if not close to any + * data point + * @private */ Graph3d.prototype._dataPointFromXY = function (x, y) { var i, @@ -11618,20 +11702,20 @@ return /******/ (function(modules) { // webpackBootstrap return closestDataPoint; }; - /** - * Determine if the given style has bars - * - * @param {number} style the style to check - * @returns {boolean} true if bar style, false otherwise + /** + * Determine if the given style has bars + * + * @param {number} style the style to check + * @returns {boolean} true if bar style, false otherwise */ Graph3d.prototype.hasBars = function (style) { return style == Graph3d.STYLE.BAR || style == Graph3d.STYLE.BARCOLOR || style == Graph3d.STYLE.BARSIZE; }; - /** - * Display a tooltip for given data point - * @param {Object} dataPoint - * @private + /** + * Display a tooltip for given data point + * @param {Object} dataPoint + * @private */ Graph3d.prototype._showTooltip = function (dataPoint) { var content, line, dot; @@ -11696,9 +11780,9 @@ return /******/ (function(modules) { // webpackBootstrap dot.style.top = dataPoint.screen.y - dotHeight / 2 + 'px'; }; - /** - * Hide the tooltip when displayed - * @private + /** + * Hide the tooltip when displayed + * @private */ Graph3d.prototype._hideTooltip = function () { if (this.tooltip) { @@ -11717,22 +11801,22 @@ return /******/ (function(modules) { // webpackBootstrap /**--------------------------------------------------------------------------**/ - /** - * Get the horizontal mouse position from a mouse event - * - * @param {Event} event - * @returns {Number} mouse x + /** + * Get the horizontal mouse position from a mouse event + * + * @param {Event} event + * @returns {Number} mouse x */ function getMouseX(event) { if ('clientX' in event) return event.clientX; return event.targetTouches[0] && event.targetTouches[0].clientX || 0; } - /** - * Get the vertical mouse position from a mouse event - * - * @param {Event} event - * @returns {Number} mouse y + /** + * Get the vertical mouse position from a mouse event + * + * @param {Event} event + * @returns {Number} mouse y */ function getMouseY(event) { if ('clientY' in event) return event.clientY; @@ -11743,31 +11827,31 @@ return /******/ (function(modules) { // webpackBootstrap // Public methods for specific settings // ----------------------------------------------------------------------------- - /** - * Set the rotation and distance of the camera - * - * @param {Object} pos An object with the camera position - * @param {?Number} pos.horizontal The horizontal rotation, between 0 and 2*PI. - * Optional, can be left undefined. - * @param {?Number} pos.vertical The vertical rotation, between 0 and 0.5*PI. - * if vertical=0.5*PI, the graph is shown from - * the top. Optional, can be left undefined. - * @param {?Number} pos.distance The (normalized) distance of the camera to the - * center of the graph, a value between 0.71 and - * 5.0. Optional, can be left undefined. + /** + * Set the rotation and distance of the camera + * + * @param {Object} pos An object with the camera position + * @param {?Number} pos.horizontal The horizontal rotation, between 0 and 2*PI. + * Optional, can be left undefined. + * @param {?Number} pos.vertical The vertical rotation, between 0 and 0.5*PI. + * if vertical=0.5*PI, the graph is shown from + * the top. Optional, can be left undefined. + * @param {?Number} pos.distance The (normalized) distance of the camera to the + * center of the graph, a value between 0.71 and + * 5.0. Optional, can be left undefined. */ Graph3d.prototype.setCameraPosition = function (pos) { Settings.setCameraPosition(pos, this); this.redraw(); }; - /** - * Set a new size for the graph - * - * @param {string} width Width in pixels or percentage (for example '800px' - * or '50%') - * @param {string} height Height in pixels or percentage (for example '400px' - * or '30%') + /** + * Set a new size for the graph + * + * @param {string} width Width in pixels or percentage (for example '800px' + * or '50%') + * @param {string} height Height in pixels or percentage (for example '400px' + * or '30%') */ Graph3d.prototype.setSize = function (width, height) { this._setSize(width, height); @@ -11794,6 +11878,7 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(97); module.exports = __webpack_require__(17).Object.assign; + /***/ }), /* 97 */ /***/ (function(module, exports, __webpack_require__) { @@ -11801,7 +11886,8 @@ return /******/ (function(modules) { // webpackBootstrap // 19.1.3.1 Object.assign(target, source) var $export = __webpack_require__(15); - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(98)}); + $export($export.S + $export.F, 'Object', { assign: __webpack_require__(98) }); + /***/ }), /* 98 */ @@ -11809,38 +11895,40 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(35) - , gOPS = __webpack_require__(73) - , pIE = __webpack_require__(74) - , toObject = __webpack_require__(49) - , IObject = __webpack_require__(10) - , $assign = Object.assign; + var getKeys = __webpack_require__(35); + var gOPS = __webpack_require__(73); + var pIE = __webpack_require__(74); + var toObject = __webpack_require__(49); + var IObject = __webpack_require__(10); + var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(26)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; + module.exports = !$assign || __webpack_require__(26)(function () { + var A = {}; + var B = {}; + // eslint-disable-next-line no-undef + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); + K.split('').forEach(function (k) { B[k] = k; }); return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; } return T; } : $assign; + /***/ }), /* 99 */ /***/ (function(module, exports) { @@ -12017,11 +12105,11 @@ return /******/ (function(modules) { // webpackBootstrap "use strict"; - /** - * @prototype Point3d - * @param {Number} [x] - * @param {Number} [y] - * @param {Number} [z] + /** + * @prototype Point3d + * @param {Number} [x] + * @param {Number} [y] + * @param {Number} [z] */ function Point3d(x, y, z) { this.x = x !== undefined ? x : 0; @@ -12029,11 +12117,11 @@ return /******/ (function(modules) { // webpackBootstrap this.z = z !== undefined ? z : 0; }; - /** - * Subtract the two provided points, returns a-b - * @param {Point3d} a - * @param {Point3d} b - * @return {Point3d} a-b + /** + * Subtract the two provided points, returns a-b + * @param {Point3d} a + * @param {Point3d} b + * @return {Point3d} a-b */ Point3d.subtract = function (a, b) { var sub = new Point3d(); @@ -12043,11 +12131,11 @@ return /******/ (function(modules) { // webpackBootstrap return sub; }; - /** - * Add the two provided points, returns a+b - * @param {Point3d} a - * @param {Point3d} b - * @return {Point3d} a+b + /** + * Add the two provided points, returns a+b + * @param {Point3d} a + * @param {Point3d} b + * @return {Point3d} a+b */ Point3d.add = function (a, b) { var sum = new Point3d(); @@ -12057,22 +12145,22 @@ return /******/ (function(modules) { // webpackBootstrap return sum; }; - /** - * Calculate the average of two 3d points - * @param {Point3d} a - * @param {Point3d} b - * @return {Point3d} The average, (a+b)/2 + /** + * Calculate the average of two 3d points + * @param {Point3d} a + * @param {Point3d} b + * @return {Point3d} The average, (a+b)/2 */ Point3d.avg = function (a, b) { return new Point3d((a.x + b.x) / 2, (a.y + b.y) / 2, (a.z + b.z) / 2); }; - /** - * Calculate the cross product of the two provided points, returns axb - * Documentation: http://en.wikipedia.org/wiki/Cross_product - * @param {Point3d} a - * @param {Point3d} b - * @return {Point3d} cross product axb + /** + * Calculate the cross product of the two provided points, returns axb + * Documentation: http://en.wikipedia.org/wiki/Cross_product + * @param {Point3d} a + * @param {Point3d} b + * @return {Point3d} cross product axb */ Point3d.crossProduct = function (a, b) { var crossproduct = new Point3d(); @@ -12084,9 +12172,9 @@ return /******/ (function(modules) { // webpackBootstrap return crossproduct; }; - /** - * Rtrieve the length of the vector (or the distance from this point to the origin - * @return {Number} length + /** + * Rtrieve the length of the vector (or the distance from this point to the origin + * @return {Number} length */ Point3d.prototype.length = function () { return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z); @@ -12100,10 +12188,10 @@ return /******/ (function(modules) { // webpackBootstrap "use strict"; - /** - * @prototype Point2d - * @param {Number} [x] - * @param {Number} [y] + /** + * @prototype Point2d + * @param {Number} [x] + * @param {Number} [y] */ function Point2d(x, y) { this.x = x !== undefined ? x : 0; @@ -12126,15 +12214,15 @@ return /******/ (function(modules) { // webpackBootstrap var Point3d = __webpack_require__(100); - /** - * @class Camera - * The camera is mounted on a (virtual) camera arm. The camera arm can rotate - * The camera is always looking in the direction of the origin of the arm. - * This way, the camera always rotates around one fixed point, the location - * of the camera arm. - * - * Documentation: - * http://en.wikipedia.org/wiki/3D_projection + /** + * @class Camera + * The camera is mounted on a (virtual) camera arm. The camera arm can rotate + * The camera is always looking in the direction of the origin of the arm. + * This way, the camera always rotates around one fixed point, the location + * of the camera arm. + * + * Documentation: + * http://en.wikipedia.org/wiki/3D_projection */ function Camera() { this.armLocation = new Point3d(); @@ -12151,10 +12239,10 @@ return /******/ (function(modules) { // webpackBootstrap this.calculateCameraOrientation(); } - /** - * Set offset camera in camera coordinates - * @param {Number} x offset by camera horisontal - * @param {Number} y offset by camera vertical + /** + * Set offset camera in camera coordinates + * @param {Number} x offset by camera horisontal + * @param {Number} y offset by camera vertical */ Camera.prototype.setOffset = function (x, y) { var abs = Math.abs, @@ -12173,19 +12261,19 @@ return /******/ (function(modules) { // webpackBootstrap this.calculateCameraOrientation(); }; - /** - * Get camera offset by horizontal and vertical - * @return {Point3d} x - horizontal offset, y - vertical offset, z - not used + /** + * Get camera offset by horizontal and vertical + * @return {Point3d} x - horizontal offset, y - vertical offset, z - not used */ Camera.prototype.getOffset = function (x, y) { return this.cameraOffset; }; - /** - * Set the location (origin) of the arm - * @param {Number} x Normalized value of x - * @param {Number} y Normalized value of y - * @param {Number} z Normalized value of z + /** + * Set the location (origin) of the arm + * @param {Number} x Normalized value of x + * @param {Number} y Normalized value of y + * @param {Number} z Normalized value of z */ Camera.prototype.setArmLocation = function (x, y, z) { this.armLocation.x = x; @@ -12195,13 +12283,13 @@ return /******/ (function(modules) { // webpackBootstrap this.calculateCameraOrientation(); }; - /** - * Set the rotation of the camera arm - * @param {Number} horizontal The horizontal rotation, between 0 and 2*PI. - * Optional, can be left undefined. - * @param {Number} vertical The vertical rotation, between 0 and 0.5*PI - * if vertical=0.5*PI, the graph is shown from the - * top. Optional, can be left undefined. + /** + * Set the rotation of the camera arm + * @param {Number} horizontal The horizontal rotation, between 0 and 2*PI. + * Optional, can be left undefined. + * @param {Number} vertical The vertical rotation, between 0 and 0.5*PI + * if vertical=0.5*PI, the graph is shown from the + * top. Optional, can be left undefined. */ Camera.prototype.setArmRotation = function (horizontal, vertical) { if (horizontal !== undefined) { @@ -12219,9 +12307,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Retrieve the current arm rotation - * @return {object} An object with parameters horizontal and vertical + /** + * Retrieve the current arm rotation + * @return {object} An object with parameters horizontal and vertical */ Camera.prototype.getArmRotation = function () { var rot = {}; @@ -12231,9 +12319,9 @@ return /******/ (function(modules) { // webpackBootstrap return rot; }; - /** - * Set the (normalized) length of the camera arm. - * @param {Number} length A length between 0.71 and 5.0 + /** + * Set the (normalized) length of the camera arm. + * @param {Number} length A length between 0.71 and 5.0 */ Camera.prototype.setArmLength = function (length) { if (length === undefined) return; @@ -12250,33 +12338,33 @@ return /******/ (function(modules) { // webpackBootstrap this.calculateCameraOrientation(); }; - /** - * Retrieve the arm length - * @return {Number} length + /** + * Retrieve the arm length + * @return {Number} length */ Camera.prototype.getArmLength = function () { return this.armLength; }; - /** - * Retrieve the camera location - * @return {Point3d} cameraLocation + /** + * Retrieve the camera location + * @return {Point3d} cameraLocation */ Camera.prototype.getCameraLocation = function () { return this.cameraLocation; }; - /** - * Retrieve the camera rotation - * @return {Point3d} cameraRotation + /** + * Retrieve the camera rotation + * @return {Point3d} cameraRotation */ Camera.prototype.getCameraRotation = function () { return this.cameraRotation; }; - /** - * Calculate the location and rotation of the camera based on the - * position and orientation of the camera arm + /** + * Calculate the location and rotation of the camera based on the + * position and orientation of the camera arm */ Camera.prototype.calculateCameraOrientation = function () { // calculate location of the camera @@ -12317,6 +12405,7 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(105); module.exports = __webpack_require__(17).Math.sign; + /***/ }), /* 105 */ /***/ (function(module, exports, __webpack_require__) { @@ -12324,17 +12413,20 @@ return /******/ (function(modules) { // webpackBootstrap // 20.2.2.28 Math.sign(x) var $export = __webpack_require__(15); - $export($export.S, 'Math', {sign: __webpack_require__(106)}); + $export($export.S, 'Math', { sign: __webpack_require__(106) }); + /***/ }), /* 106 */ /***/ (function(module, exports) { // 20.2.2.28 Math.sign(x) - module.exports = Math.sign || function sign(x){ + module.exports = Math.sign || function sign(x) { + // eslint-disable-next-line no-self-compare return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; }; + /***/ }), /* 107 */ /***/ (function(module, exports, __webpack_require__) { @@ -12343,12 +12435,12 @@ return /******/ (function(modules) { // webpackBootstrap var DataView = __webpack_require__(93); - /** - * @class Filter - * - * @param {DataGroup} dataGroup the data group - * @param {Number} column The index of the column to be filtered - * @param {Graph} graph The graph + /** + * @class Filter + * + * @param {DataGroup} dataGroup the data group + * @param {Number} column The index of the column to be filtered + * @param {Graph} graph The graph */ function Filter(dataGroup, column, graph) { this.data = dataGroup.getDataSet(); @@ -12379,17 +12471,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Return the label - * @return {string} label + /** + * Return the label + * @return {string} label */ Filter.prototype.isLoaded = function () { return this.loaded; }; - /** - * Return the loaded progress - * @return {Number} percentage between 0 and 100 + /** + * Return the loaded progress + * @return {Number} percentage between 0 and 100 */ Filter.prototype.getLoadedProgress = function () { var len = this.values.length; @@ -12402,25 +12494,25 @@ return /******/ (function(modules) { // webpackBootstrap return Math.round(i / len * 100); }; - /** - * Return the label - * @return {string} label + /** + * Return the label + * @return {string} label */ Filter.prototype.getLabel = function () { return this.graph.filterLabel; }; - /** - * Return the columnIndex of the filter - * @return {Number} columnIndex + /** + * Return the columnIndex of the filter + * @return {Number} columnIndex */ Filter.prototype.getColumn = function () { return this.column; }; - /** - * Return the currently selected value. Returns undefined if there is no selection - * @return {*} value + /** + * Return the currently selected value. Returns undefined if there is no selection + * @return {*} value */ Filter.prototype.getSelectedValue = function () { if (this.index === undefined) return undefined; @@ -12428,18 +12520,18 @@ return /******/ (function(modules) { // webpackBootstrap return this.values[this.index]; }; - /** - * Retrieve all values of the filter - * @return {Array} values + /** + * Retrieve all values of the filter + * @return {Array} values */ Filter.prototype.getValues = function () { return this.values; }; - /** - * Retrieve one value of the filter - * @param {Number} index - * @return {*} value + /** + * Retrieve one value of the filter + * @param {Number} index + * @return {*} value */ Filter.prototype.getValue = function (index) { if (index >= this.values.length) throw new Error('Index out of range'); @@ -12447,10 +12539,10 @@ return /******/ (function(modules) { // webpackBootstrap return this.values[index]; }; - /** - * Retrieve the (filtered) dataPoints for the currently selected filter index - * @param {Number} [index] (optional) - * @return {Array} dataPoints + /** + * Retrieve the (filtered) dataPoints for the currently selected filter index + * @param {Number} [index] (optional) + * @return {Array} dataPoints */ Filter.prototype._getDataPoints = function (index) { if (index === undefined) index = this.index; @@ -12476,17 +12568,17 @@ return /******/ (function(modules) { // webpackBootstrap return dataPoints; }; - /** - * Set a callback function when the filter is fully loaded. + /** + * Set a callback function when the filter is fully loaded. */ Filter.prototype.setOnLoadCallback = function (callback) { this.onLoadCallback = callback; }; - /** - * Add a value to the list with available values for this filter - * No double entries will be created. - * @param {Number} index + /** + * Add a value to the list with available values for this filter + * No double entries will be created. + * @param {Number} index */ Filter.prototype.selectValue = function (index) { if (index >= this.values.length) throw new Error('Index out of range'); @@ -12495,9 +12587,9 @@ return /******/ (function(modules) { // webpackBootstrap this.value = this.values[index]; }; - /** - * Load all filtered rows in the background one by one - * Start this method without providing an index! + /** + * Load all filtered rows in the background one by one + * Start this method without providing an index! */ Filter.prototype.loadInBackground = function (index) { if (index === undefined) index = 0; @@ -12549,14 +12641,14 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); - /** - * @constructor Slider - * - * An html slider control with start/stop/prev/next buttons - * @param {Element} container The element where the slider will be created - * @param {Object} options Available options: - * {boolean} visible If true (default) the - * slider is visible. + /** + * @constructor Slider + * + * An html slider control with start/stop/prev/next buttons + * @param {Element} container The element where the slider will be created + * @param {Object} options Available options: + * {boolean} visible If true (default) the + * slider is visible. */ function Slider(container, options) { if (container === undefined) { @@ -12633,8 +12725,8 @@ return /******/ (function(modules) { // webpackBootstrap this.playLoop = true; } - /** - * Select the previous index + /** + * Select the previous index */ Slider.prototype.prev = function () { var index = this.getIndex(); @@ -12644,8 +12736,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Select the next index + /** + * Select the next index */ Slider.prototype.next = function () { var index = this.getIndex(); @@ -12655,8 +12747,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Select the next index + /** + * Select the next index */ Slider.prototype.playNext = function () { var start = new Date(); @@ -12685,8 +12777,8 @@ return /******/ (function(modules) { // webpackBootstrap }, interval); }; - /** - * Toggle start or stop playing + /** + * Toggle start or stop playing */ Slider.prototype.togglePlay = function () { if (this.playTimeout === undefined) { @@ -12696,8 +12788,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Start playing + /** + * Start playing */ Slider.prototype.play = function () { // Test whether already playing @@ -12710,8 +12802,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Stop playing + /** + * Stop playing */ Slider.prototype.stop = function () { clearInterval(this.playTimeout); @@ -12722,42 +12814,42 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set a callback function which will be triggered when the value of the - * slider bar has changed. + /** + * Set a callback function which will be triggered when the value of the + * slider bar has changed. */ Slider.prototype.setOnChangeCallback = function (callback) { this.onChangeCallback = callback; }; - /** - * Set the interval for playing the list - * @param {Number} interval The interval in milliseconds + /** + * Set the interval for playing the list + * @param {Number} interval The interval in milliseconds */ Slider.prototype.setPlayInterval = function (interval) { this.playInterval = interval; }; - /** - * Retrieve the current play interval - * @return {Number} interval The interval in milliseconds + /** + * Retrieve the current play interval + * @return {Number} interval The interval in milliseconds */ Slider.prototype.getPlayInterval = function (interval) { return this.playInterval; }; - /** - * Set looping on or off - * @pararm {boolean} doLoop If true, the slider will jump to the start when - * the end is passed, and will jump to the end - * when the start is passed. + /** + * Set looping on or off + * @pararm {boolean} doLoop If true, the slider will jump to the start when + * the end is passed, and will jump to the end + * when the start is passed. */ Slider.prototype.setPlayLoop = function (doLoop) { this.playLoop = doLoop; }; - /** - * Execute the onchange callback function + /** + * Execute the onchange callback function */ Slider.prototype.onChange = function () { if (this.onChangeCallback !== undefined) { @@ -12765,8 +12857,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * redraw the slider on the correct place + /** + * redraw the slider on the correct place */ Slider.prototype.redraw = function () { if (this.frame) { @@ -12780,9 +12872,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set the list with values for the slider - * @param {Array} values A javascript array with values (any type) + /** + * Set the list with values for the slider + * @param {Array} values A javascript array with values (any type) */ Slider.prototype.setValues = function (values) { this.values = values; @@ -12790,9 +12882,9 @@ return /******/ (function(modules) { // webpackBootstrap if (this.values.length > 0) this.setIndex(0);else this.index = undefined; }; - /** - * Select a value by its index - * @param {Number} index + /** + * Select a value by its index + * @param {Number} index */ Slider.prototype.setIndex = function (index) { if (index < this.values.length) { @@ -12805,17 +12897,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * retrieve the index of the currently selected vaue - * @return {Number} index + /** + * retrieve the index of the currently selected vaue + * @return {Number} index */ Slider.prototype.getIndex = function () { return this.index; }; - /** - * retrieve the currently selected value - * @return {*} value + /** + * retrieve the currently selected value + * @return {*} value */ Slider.prototype.get = function () { return this.values[this.index]; @@ -12895,30 +12987,30 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - /** - * @prototype StepNumber - * The class StepNumber is an iterator for Numbers. You provide a start and end - * value, and a best step size. StepNumber itself rounds to fixed values and - * a finds the step that best fits the provided step. - * - * If prettyStep is true, the step size is chosen as close as possible to the - * provided step, but being a round value like 1, 2, 5, 10, 20, 50, .... - * - * Example usage: - * var step = new StepNumber(0, 10, 2.5, true); - * step.start(); - * while (!step.end()) { - * alert(step.getCurrent()); - * step.next(); - * } - * - * Version: 1.0 - * - * @param {Number} start The start value - * @param {Number} end The end value - * @param {Number} step Optional. Step size. Must be a positive value. - * @param {boolean} prettyStep Optional. If true, the step size is rounded - * To a pretty step size (like 1, 2, 5, 10, 20, 50, ...) + /** + * @prototype StepNumber + * The class StepNumber is an iterator for Numbers. You provide a start and end + * value, and a best step size. StepNumber itself rounds to fixed values and + * a finds the step that best fits the provided step. + * + * If prettyStep is true, the step size is chosen as close as possible to the + * provided step, but being a round value like 1, 2, 5, 10, 20, 50, .... + * + * Example usage: + * var step = new StepNumber(0, 10, 2.5, true); + * step.start(); + * while (!step.end()) { + * alert(step.getCurrent()); + * step.next(); + * } + * + * Version: 1.0 + * + * @param {Number} start The start value + * @param {Number} end The end value + * @param {Number} step Optional. Step size. Must be a positive value. + * @param {boolean} prettyStep Optional. If true, the step size is rounded + * To a pretty step size (like 1, 2, 5, 10, 20, 50, ...) */ function StepNumber(start, end, step, prettyStep) { // set default values @@ -12932,23 +13024,23 @@ return /******/ (function(modules) { // webpackBootstrap this.setRange(start, end, step, prettyStep); }; - /** - * Check for input values, to prevent disasters from happening - * - * Source: http://stackoverflow.com/a/1830844 + /** + * Check for input values, to prevent disasters from happening + * + * Source: http://stackoverflow.com/a/1830844 */ StepNumber.prototype.isNumeric = function (n) { return !isNaN(parseFloat(n)) && isFinite(n); }; - /** - * Set a new range: start, end and step. - * - * @param {Number} start The start value - * @param {Number} end The end value - * @param {Number} step Optional. Step size. Must be a positive value. - * @param {boolean} prettyStep Optional. If true, the step size is rounded - * To a pretty step size (like 1, 2, 5, 10, 20, 50, ...) + /** + * Set a new range: start, end and step. + * + * @param {Number} start The start value + * @param {Number} end The end value + * @param {Number} step Optional. Step size. Must be a positive value. + * @param {boolean} prettyStep Optional. If true, the step size is rounded + * To a pretty step size (like 1, 2, 5, 10, 20, 50, ...) */ StepNumber.prototype.setRange = function (start, end, step, prettyStep) { if (!this.isNumeric(start)) { @@ -12967,11 +13059,11 @@ return /******/ (function(modules) { // webpackBootstrap this.setStep(step, prettyStep); }; - /** - * Set a new step size - * @param {Number} step New step size. Must be a positive value - * @param {boolean} prettyStep Optional. If true, the provided step is rounded - * to a pretty step size (like 1, 2, 5, 10, 20, 50, ...) + /** + * Set a new step size + * @param {Number} step New step size. Must be a positive value + * @param {boolean} prettyStep Optional. If true, the provided step is rounded + * to a pretty step size (like 1, 2, 5, 10, 20, 50, ...) */ StepNumber.prototype.setStep = function (step, prettyStep) { if (step === undefined || step <= 0) return; @@ -12981,12 +13073,12 @@ return /******/ (function(modules) { // webpackBootstrap if (this.prettyStep === true) this._step = StepNumber.calculatePrettyStep(step);else this._step = step; }; - /** - * Calculate a nice step size, closest to the desired step size. - * Returns a value in one of the ranges 1*10^n, 2*10^n, or 5*10^n, where n is an - * integer Number. For example 1, 2, 5, 10, 20, 50, etc... - * @param {Number} step Desired step size - * @return {Number} Nice step size + /** + * Calculate a nice step size, closest to the desired step size. + * Returns a value in one of the ranges 1*10^n, 2*10^n, or 5*10^n, where n is an + * integer Number. For example 1, 2, 5, 10, 20, 50, etc... + * @param {Number} step Desired step size + * @return {Number} Nice step size */ StepNumber.calculatePrettyStep = function (step) { var log10 = function log10(x) { @@ -13011,30 +13103,30 @@ return /******/ (function(modules) { // webpackBootstrap return prettyStep; }; - /** - * returns the current value of the step - * @return {Number} current value + /** + * returns the current value of the step + * @return {Number} current value */ StepNumber.prototype.getCurrent = function () { return parseFloat(this._current.toPrecision(this.precision)); }; - /** - * returns the current step size - * @return {Number} current step size + /** + * returns the current step size + * @return {Number} current step size */ StepNumber.prototype.getStep = function () { return this._step; }; - /** - * Set the current to its starting value. - * - * By default, this will be the largest value smaller than start, which - * is a multiple of the step size. - * - * Parameters checkFirst is optional, default false. - * If set to true, move the current value one step if smaller than start. + /** + * Set the current to its starting value. + * + * By default, this will be the largest value smaller than start, which + * is a multiple of the step size. + * + * Parameters checkFirst is optional, default false. + * If set to true, move the current value one step if smaller than start. */ StepNumber.prototype.start = function (checkFirst) { if (checkFirst === undefined) { @@ -13050,16 +13142,16 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Do a step, add the step size to the current value + /** + * Do a step, add the step size to the current value */ StepNumber.prototype.next = function () { this._current += this._step; }; - /** - * Returns true whether the end is reached - * @return {boolean} True if the current value has passed the end value. + /** + * Returns true whether the end is reached + * @return {boolean} True if the current value has passed the end value. */ StepNumber.prototype.end = function () { return this._current > this._end; @@ -13073,27 +13165,27 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - /** - * @prototype Range - * - * Helper class to make working with related min and max values easier. - * - * The range is inclusive; a given value is considered part of the range if: - * - * this.min <= value <= this.max + /** + * @prototype Range + * + * Helper class to make working with related min and max values easier. + * + * The range is inclusive; a given value is considered part of the range if: + * + * this.min <= value <= this.max */ function Range() { this.min = undefined; this.max = undefined; } - /** - * Adjust the range so that the passed value fits in it. - * - * If the value is outside of the current extremes, adjust - * the min or max so that the value is within the range. - * - * @param {number} value Numeric value to fit in range + /** + * Adjust the range so that the passed value fits in it. + * + * If the value is outside of the current extremes, adjust + * the min or max so that the value is within the range. + * + * @param {number} value Numeric value to fit in range */ Range.prototype.adjust = function (value) { if (value === undefined) return; @@ -13107,25 +13199,25 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Adjust the current range so that the passed range fits in it. - * - * @param {Range} range Range instance to fit in current instance + /** + * Adjust the current range so that the passed range fits in it. + * + * @param {Range} range Range instance to fit in current instance */ Range.prototype.combine = function (range) { this.add(range.min); this.add(range.max); }; - /** - * Expand the range by the given value - * - * min will be lowered by given value; - * max will be raised by given value - * - * Shrinking by passing a negative value is allowed. - * - * @param {number} val Amount by which to expand or shrink current range with + /** + * Expand the range by the given value + * + * min will be lowered by given value; + * max will be raised by given value + * + * Shrinking by passing a negative value is allowed. + * + * @param {number} val Amount by which to expand or shrink current range with */ Range.prototype.expand = function (val) { if (val === undefined) { @@ -13145,19 +13237,19 @@ return /******/ (function(modules) { // webpackBootstrap this.max = newMax; }; - /** - * Determine the full range width of current instance. - * - * @returns {num} The calculated width of this range + /** + * Determine the full range width of current instance. + * + * @returns {num} The calculated width of this range */ Range.prototype.range = function () { return this.max - this.min; }; - /** - * Determine the central point of current instance. - * - * @returns {number} the value in the middle of min and max + /** + * Determine the central point of current instance. + * + * @returns {number} the value in the middle of min and max */ Range.prototype.center = function () { return (this.min + this.max) / 2; @@ -13213,29 +13305,29 @@ return /******/ (function(modules) { // webpackBootstrap 'bar-size': STYLE.BARSIZE }; - /** - * Field names in the options hash which are of relevance to the user. - * - * Specifically, these are the fields which require no special handling, - * and can be directly copied over. + /** + * Field names in the options hash which are of relevance to the user. + * + * Specifically, these are the fields which require no special handling, + * and can be directly copied over. */ var OPTIONKEYS = ['width', 'height', 'filterLabel', 'legendLabel', 'xLabel', 'yLabel', 'zLabel', 'xValueLabel', 'yValueLabel', 'zValueLabel', 'showXAxis', 'showYAxis', 'showZAxis', 'showGrid', 'showPerspective', 'showShadow', 'keepAspectRatio', 'verticalRatio', 'dotSizeRatio', 'dotSizeMinFraction', 'dotSizeMaxFraction', 'showAnimationControls', 'animationInterval', 'animationPreload', 'animationAutoStart', 'axisColor', 'gridColor', 'xCenter', 'yCenter']; - /** - * Field names in the options hash which are of relevance to the user. - * - * Same as OPTIONKEYS, but internally these fields are stored with - * prefix 'default' in the name. + /** + * Field names in the options hash which are of relevance to the user. + * + * Same as OPTIONKEYS, but internally these fields are stored with + * prefix 'default' in the name. */ var PREFIXEDOPTIONKEYS = ['xBarWidth', 'yBarWidth', 'valueMin', 'valueMax', 'xMin', 'xMax', 'xStep', 'yMin', 'yMax', 'yStep', 'zMin', 'zMax', 'zStep']; // Placeholder for DEFAULTS reference var DEFAULTS = undefined; - /** - * Check if given hash is empty. - * - * Source: http://stackoverflow.com/a/679937 + /** + * Check if given hash is empty. + * + * Source: http://stackoverflow.com/a/679937 */ function isEmpty(obj) { for (var prop in obj) { @@ -13245,10 +13337,10 @@ return /******/ (function(modules) { // webpackBootstrap return true; } - /** - * Make first letter of parameter upper case. - * - * Source: http://stackoverflow.com/a/1026087 + /** + * Make first letter of parameter upper case. + * + * Source: http://stackoverflow.com/a/1026087 */ function capitalize(str) { if (str === undefined || str === "" || typeof str != "string") { @@ -13258,8 +13350,8 @@ return /******/ (function(modules) { // webpackBootstrap return str.charAt(0).toUpperCase() + str.slice(1); } - /** - * Add a prefix to a field name, taking style guide into account + /** + * Add a prefix to a field name, taking style guide into account */ function prefixFieldName(prefix, fieldName) { if (prefix === undefined || prefix === "") { @@ -13269,19 +13361,19 @@ return /******/ (function(modules) { // webpackBootstrap return prefix + capitalize(fieldName); } - /** - * Forcibly copy fields from src to dst in a controlled manner. - * - * A given field in dst will always be overwitten. If this field - * is undefined or not present in src, the field in dst will - * be explicitly set to undefined. - * - * The intention here is to be able to reset all option fields. - * - * Only the fields mentioned in array 'fields' will be handled. - * - * @param fields array with names of fields to copy - * @param prefix optional; prefix to use for the target fields. + /** + * Forcibly copy fields from src to dst in a controlled manner. + * + * A given field in dst will always be overwitten. If this field + * is undefined or not present in src, the field in dst will + * be explicitly set to undefined. + * + * The intention here is to be able to reset all option fields. + * + * Only the fields mentioned in array 'fields' will be handled. + * + * @param fields array with names of fields to copy + * @param prefix optional; prefix to use for the target fields. */ function forceCopy(src, dst, fields, prefix) { var srcKey; @@ -13295,14 +13387,14 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Copy fields from src to dst in a safe and controlled manner. - * - * Only the fields mentioned in array 'fields' will be copied over, - * and only if these are actually defined. - * - * @param fields array with names of fields to copy - * @param prefix optional; prefix to use for the target fields. + /** + * Copy fields from src to dst in a safe and controlled manner. + * + * Only the fields mentioned in array 'fields' will be copied over, + * and only if these are actually defined. + * + * @param fields array with names of fields to copy + * @param prefix optional; prefix to use for the target fields. */ function safeCopy(src, dst, fields, prefix) { var srcKey; @@ -13318,14 +13410,14 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Initialize dst with the values in src. - * - * src is the hash with the default values. - * A reference DEFAULTS to this hash is stored locally for - * further handling. - * - * For now, dst is assumed to be a Graph3d instance. + /** + * Initialize dst with the values in src. + * + * src is the hash with the default values. + * A reference DEFAULTS to this hash is stored locally for + * further handling. + * + * For now, dst is assumed to be a Graph3d instance. */ function setDefaults(src, dst) { if (src === undefined || isEmpty(src)) { @@ -13373,10 +13465,10 @@ return /******/ (function(modules) { // webpackBootstrap setSpecialSettings(options, dst); } - /** - * Special handling for certain parameters - * - * 'Special' here means: setting requires more than a simple copy + /** + * Special handling for certain parameters + * + * 'Special' here means: setting requires more than a simple copy */ function setSpecialSettings(src, dst) { if (src.backgroundColor !== undefined) { @@ -13402,11 +13494,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Set the value of setting 'showLegend' - * - * This depends on the value of the style fields, so it must be called - * after the style field has been initialized. + /** + * Set the value of setting 'showLegend' + * + * This depends on the value of the style fields, so it must be called + * after the style field has been initialized. */ function setShowLegend(showLegend, dst) { if (showLegend === undefined) { @@ -13426,11 +13518,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Retrieve the style index from given styleName - * @param {string} styleName Style name such as 'dot', 'grid', 'dot-line' - * @return {Number} styleNumber Enumeration value representing the style, or -1 - * when not found + /** + * Retrieve the style index from given styleName + * @param {string} styleName Style name such as 'dot', 'grid', 'dot-line' + * @return {Number} styleNumber Enumeration value representing the style, or -1 + * when not found */ function getStyleNumberByName(styleName) { var number = STYLENAME[styleName]; @@ -13442,10 +13534,10 @@ return /******/ (function(modules) { // webpackBootstrap return number; } - /** - * Check if given number is a valid style number. - * - * @return true if valid, false otherwise + /** + * Check if given number is a valid style number. + * + * @return true if valid, false otherwise */ function checkStyleNumber(style) { var valid = false; @@ -13485,9 +13577,9 @@ return /******/ (function(modules) { // webpackBootstrap dst.style = styleNumber; } - /** - * Set the background styling for the graph - * @param {string | {fill: string, stroke: string, strokeWidth: string}} backgroundColor + /** + * Set the background styling for the graph + * @param {string | {fill: string, stroke: string, strokeWidth: string}} backgroundColor */ function setBackgroundColor(backgroundColor, dst) { var fill = 'white'; @@ -13567,35 +13659,35 @@ return /******/ (function(modules) { // webpackBootstrap var Point3d = __webpack_require__(100); var Range = __webpack_require__(110); - /** - * Creates a container for all data of one specific 3D-graph. - * - * On construction, the container is totally empty; the data - * needs to be initialized with method initializeData(). - * Failure to do so will result in the following exception begin thrown - * on instantiation of Graph3D: - * - * Error: Array, DataSet, or DataView expected - * - * @constructor + /** + * Creates a container for all data of one specific 3D-graph. + * + * On construction, the container is totally empty; the data + * needs to be initialized with method initializeData(). + * Failure to do so will result in the following exception begin thrown + * on instantiation of Graph3D: + * + * Error: Array, DataSet, or DataView expected + * + * @constructor */ function DataGroup() { this.dataTable = null; // The original data table } - /** - * Initializes the instance from the passed data. - * - * Calculates minimum and maximum values and column index values. - * - * The graph3d instance is used internally to access the settings for - * the given instance. - * TODO: Pass settings only instead. - * - * @param {Graph3D} graph3d Reference to the calling Graph3D instance. - * @param {Array | DataSet | DataView} rawData The data containing the items for - * the Graph. - * @param {Number} style Style Number + /** + * Initializes the instance from the passed data. + * + * Calculates minimum and maximum values and column index values. + * + * The graph3d instance is used internally to access the settings for + * the given instance. + * TODO: Pass settings only instead. + * + * @param {Graph3D} graph3d Reference to the calling Graph3D instance. + * @param {Array | DataSet | DataView} rawData The data containing the items for + * the Graph. + * @param {Number} style Style Number */ DataGroup.prototype.initializeData = function (graph3d, rawData, style) { // unsubscribe from the dataTable @@ -13663,19 +13755,19 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Collect the range settings for the given data column. - * - * This internal method is intended to make the range - * initalization more generic. - * - * TODO: if/when combined settings per axis defined, get rid of this. - * - * @private - * - * @param {'x'|'y'|'z'} column The data column to process - * @param {Graph3D} graph3d Reference to the calling Graph3D instance; - * required for access to settings + /** + * Collect the range settings for the given data column. + * + * This internal method is intended to make the range + * initalization more generic. + * + * TODO: if/when combined settings per axis defined, get rid of this. + * + * @private + * + * @param {'x'|'y'|'z'} column The data column to process + * @param {Graph3D} graph3d Reference to the calling Graph3D instance; + * required for access to settings */ DataGroup.prototype._collectRangeSettings = function (column, graph3d) { var index = ['x', 'y', 'z'].indexOf(column); @@ -13696,18 +13788,18 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Initializes the settings per given column. - * - * TODO: if/when combined settings per axis defined, rewrite this. - * - * @private - * - * @param {DataSet | DataView} data The data containing the items for the Graph - * @param {'x'|'y'|'z'} column The data column to process - * @param {Graph3D} graph3d Reference to the calling Graph3D instance; - * required for access to settings - * @param {Boolean} withBars True if initializing for bar graph + /** + * Initializes the settings per given column. + * + * TODO: if/when combined settings per axis defined, rewrite this. + * + * @private + * + * @param {DataSet | DataView} data The data containing the items for the Graph + * @param {'x'|'y'|'z'} column The data column to process + * @param {Graph3D} graph3d Reference to the calling Graph3D instance; + * required for access to settings + * @param {Boolean} withBars True if initializing for bar graph */ DataGroup.prototype._initializeRange = function (data, column, graph3d, withBars) { var NUMSTEPS = 5; @@ -13724,15 +13816,15 @@ return /******/ (function(modules) { // webpackBootstrap this[settings.step_label] = settings.step !== undefined ? settings.step : range.range() / NUMSTEPS; }; - /** - * Creates a list with all the different values in the data for the given column. - * - * If no data passed, use the internal data of this instance. - * - * @param {'x'|'y'|'z'} column The data column to process - * @param {DataSet|DataView|undefined} data The data containing the items for the Graph - * - * @returns {Array} All distinct values in the given column data, sorted ascending. + /** + * Creates a list with all the different values in the data for the given column. + * + * If no data passed, use the internal data of this instance. + * + * @param {'x'|'y'|'z'} column The data column to process + * @param {DataSet|DataView|undefined} data The data containing the items for the Graph + * + * @returns {Array} All distinct values in the given column data, sorted ascending. */ DataGroup.prototype.getDistinctValues = function (column, data) { if (data === undefined) { @@ -13753,15 +13845,15 @@ return /******/ (function(modules) { // webpackBootstrap }); }; - /** - * Determine the smallest difference between the values for given - * column in the passed data set. - * - * @param {DataSet|DataView|undefined} data The data containing the items for the Graph - * @param {'x'|'y'|'z'} column The data column to process - * - * @returns {Number|null} Smallest difference value or - * null, if it can't be determined. + /** + * Determine the smallest difference between the values for given + * column in the passed data set. + * + * @param {DataSet|DataView|undefined} data The data containing the items for the Graph + * @param {'x'|'y'|'z'} column The data column to process + * + * @returns {Number|null} Smallest difference value or + * null, if it can't be determined. */ DataGroup.prototype.getSmallestDifference = function (data, column) { var values = this.getDistinctValues(data, column); @@ -13781,13 +13873,13 @@ return /******/ (function(modules) { // webpackBootstrap return smallest_diff; }; - /** - * Get the absolute min/max values for the passed data column. - * - * @param {DataSet|DataView|undefined} data The data containing the items for the Graph - * @param {'x'|'y'|'z'} column The data column to process - * - * @returns {Range} A Range instance with min/max members properly set. + /** + * Get the absolute min/max values for the passed data column. + * + * @param {DataSet|DataView|undefined} data The data containing the items for the Graph + * @param {'x'|'y'|'z'} column The data column to process + * + * @returns {Range} A Range instance with min/max members properly set. */ DataGroup.prototype.getColumnRange = function (data, column) { var range = new Range(); @@ -13801,23 +13893,23 @@ return /******/ (function(modules) { // webpackBootstrap return range; }; - /** - * Determines the number of rows in the current data. - * - * @returns {Number} + /** + * Determines the number of rows in the current data. + * + * @returns {Number} */ DataGroup.prototype.getNumberOfRows = function () { return this.dataTable.length; }; - /** - * Set default values for range - * - * The default values override the range values, if defined. - * - * Because it's possible that only defaultMin or defaultMax is set, it's better - * to pass in a range already set with the min/max set from the data. Otherwise, - * it's quite hard to process the min/max properly. + /** + * Set default values for range + * + * The default values override the range values, if defined. + * + * Because it's possible that only defaultMin or defaultMax is set, it's better + * to pass in a range already set with the min/max set from the data. Otherwise, + * it's quite hard to process the min/max properly. */ DataGroup.prototype._setRangeDefaults = function (range, defaultMin, defaultMax) { if (defaultMin !== undefined) { @@ -13842,8 +13934,8 @@ return /******/ (function(modules) { // webpackBootstrap return this.dataSet; }; - /** - * Reload the data + /** + * Reload the data */ DataGroup.prototype.reload = function () { if (this.dataTable) { @@ -17038,14 +17130,14 @@ return /******/ (function(modules) { // webpackBootstrap var Configurator = __webpack_require__(147)['default']; var Validator = __webpack_require__(145)['default']; - /** - * Create a timeline visualization - * @param {HTMLElement} container - * @param {vis.DataSet | vis.DataView | Array} [items] - * @param {vis.DataSet | vis.DataView | Array} [groups] - * @param {Object} [options] See Timeline.setOptions for the available options. - * @constructor - * @extends Core + /** + * Create a timeline visualization + * @param {HTMLElement} container + * @param {vis.DataSet | vis.DataView | Array} [items] + * @param {vis.DataSet | vis.DataView | Array} [groups] + * @param {Object} [options] See Timeline.setOptions for the available options. + * @constructor + * @extends Core */ function Timeline(container, items, groups, options) { @@ -17223,21 +17315,21 @@ return /******/ (function(modules) { // webpackBootstrap // Extend the functionality from Core Timeline.prototype = new Core(); - /** - * Load a configurator - * @return {Object} - * @private + /** + * Load a configurator + * @return {Object} + * @private */ Timeline.prototype._createConfigurator = function () { return new Configurator(this, this.dom.container, configureOptions); }; - /** - * Force a redraw. The size of all items will be recalculated. - * Can be useful to manually redraw when option autoResize=false and the window - * has been resized, or when the items CSS has been changed. - * - * Note: this function will be overridden on construction with a trottled version + /** + * Force a redraw. The size of all items will be recalculated. + * Can be useful to manually redraw when option autoResize=false and the window + * has been resized, or when the items CSS has been changed. + * + * Note: this function will be overridden on construction with a trottled version */ Timeline.prototype.redraw = function () { this.itemSet && this.itemSet.markDirty({ refreshItems: true }); @@ -17269,9 +17361,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set items - * @param {vis.DataSet | Array | null} items + /** + * Set items + * @param {vis.DataSet | Array | null} items */ Timeline.prototype.setItems = function (items) { // convert to type DataSet when needed @@ -17295,9 +17387,9 @@ return /******/ (function(modules) { // webpackBootstrap this.itemSet && this.itemSet.setItems(newDataSet); }; - /** - * Set groups - * @param {vis.DataSet | Array} groups + /** + * Set groups + * @param {vis.DataSet | Array} groups */ Timeline.prototype.setGroups = function (groups) { // convert to type DataSet when needed @@ -17320,9 +17412,9 @@ return /******/ (function(modules) { // webpackBootstrap this.itemSet.setGroups(newDataSet); }; - /** - * Set both items and groups in one go - * @param {{items: Array | vis.DataSet, groups: Array | vis.DataSet}} data + /** + * Set both items and groups in one go + * @param {{items: Array | vis.DataSet, groups: Array | vis.DataSet}} data */ Timeline.prototype.setData = function (data) { if (data && data.groups) { @@ -17334,22 +17426,22 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set selected items by their id. Replaces the current selection - * Unknown id's are silently ignored. - * @param {string[] | string} [ids] An array with zero or more id's of the items to be - * selected. If ids is an empty array, all items will be - * unselected. - * @param {Object} [options] Available options: - * `focus: boolean` - * If true, focus will be set to the selected item(s) - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. - * Only applicable when option focus is true. + /** + * Set selected items by their id. Replaces the current selection + * Unknown id's are silently ignored. + * @param {string[] | string} [ids] An array with zero or more id's of the items to be + * selected. If ids is an empty array, all items will be + * unselected. + * @param {Object} [options] Available options: + * `focus: boolean` + * If true, focus will be set to the selected item(s) + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + * Only applicable when option focus is true. */ Timeline.prototype.setSelection = function (ids, options) { this.itemSet && this.itemSet.setSelection(ids); @@ -17359,25 +17451,25 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get the selected items by their id - * @return {Array} ids The ids of the selected items + /** + * Get the selected items by their id + * @return {Array} ids The ids of the selected items */ Timeline.prototype.getSelection = function () { return this.itemSet && this.itemSet.getSelection() || []; }; - /** - * Adjust the visible window such that the selected item (or multiple items) - * are centered on screen. - * @param {String | String[]} id An item id or array with item ids - * @param {Object} [options] Available options: - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. + /** + * Adjust the visible window such that the selected item (or multiple items) + * are centered on screen. + * @param {String | String[]} id An item id or array with item ids + * @param {Object} [options] Available options: + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. */ Timeline.prototype.focus = function (id, options) { if (!this.itemsData || id == undefined) return; @@ -17418,15 +17510,15 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set Timeline window such that it fits all items - * @param {Object} [options] Available options: - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. + /** + * Set Timeline window such that it fits all items + * @param {Object} [options] Available options: + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. */ Timeline.prototype.fit = function (options) { var animation = options && options.animation !== undefined ? options.animation : true; @@ -17444,10 +17536,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Determine the range of the items, taking into account their actual width - * and a margin of 10 pixels on both sides. - * @return {{min: Date | null, max: Date | null}} + /** + * Determine the range of the items, taking into account their actual width + * and a margin of 10 pixels on both sides. + * @return {{min: Date | null, max: Date | null}} */ Timeline.prototype.getItemRange = function () { // get a rough approximation for the range based on the items start and end dates @@ -17526,9 +17618,9 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Calculate the data range of the items start and end dates - * @returns {{min: Date | null, max: Date | null}} + /** + * Calculate the data range of the items start and end dates + * @returns {{min: Date | null, max: Date | null}} */ Timeline.prototype.getDataRange = function () { var min = null; @@ -17554,11 +17646,11 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Generate Timeline related information from an event - * @param {Event} event - * @return {Object} An object with related information, like on which area - * The event happened, whether clicked on an item, etc. + /** + * Generate Timeline related information from an event + * @param {Event} event + * @return {Object} An object with related information, like on which area + * The event happened, whether clicked on an item, etc. */ Timeline.prototype.getEventProperties = function (event) { var clientX = event.center ? event.center.x : event.clientX; @@ -17612,8 +17704,8 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Toggle Timeline rolling mode + /** + * Toggle Timeline rolling mode */ Timeline.prototype.toggleRollingMode = function () { @@ -17655,13 +17747,13 @@ return /******/ (function(modules) { // webpackBootstrap var Component = __webpack_require__(121); var DateUtil = __webpack_require__(122); - /** - * @constructor Range - * A Range controls a numeric range with a start and end value. - * The Range adjusts the range based on mouse events or programmatic changes, - * and triggers events when the range is changing or has been changed. - * @param {{dom: Object, domProps: Object, emitter: Emitter}} body - * @param {Object} [options] See description at Range.setOptions + /** + * @constructor Range + * A Range controls a numeric range with a start and end value. + * The Range adjusts the range based on mouse events or programmatic changes, + * and triggers events when the range is changing or has been changed. + * @param {{dom: Object, domProps: Object, emitter: Emitter}} body + * @param {Object} [options] See description at Range.setOptions */ function Range(body, options) { var now = moment().hours(0).minutes(0).seconds(0).milliseconds(0); @@ -17729,21 +17821,21 @@ return /******/ (function(modules) { // webpackBootstrap Range.prototype = new Component(); - /** - * Set options for the range controller - * @param {Object} options Available options: - * {Number | Date | String} start Start date for the range - * {Number | Date | String} end End date for the range - * {Number} min Minimum value for start - * {Number} max Maximum value for end - * {Number} zoomMin Set a minimum value for - * (end - start). - * {Number} zoomMax Set a maximum value for - * (end - start). - * {Boolean} moveable Enable moving of the range - * by dragging. True by default - * {Boolean} zoomable Enable zooming of the range - * by pinching/scrolling. True by default + /** + * Set options for the range controller + * @param {Object} options Available options: + * {Number | Date | String} start Start date for the range + * {Number | Date | String} end End date for the range + * {Number} min Minimum value for start + * {Number} max Maximum value for end + * {Number} zoomMin Set a minimum value for + * (end - start). + * {Number} zoomMax Set a maximum value for + * (end - start). + * {Boolean} moveable Enable moving of the range + * by dragging. True by default + * {Boolean} zoomable Enable zooming of the range + * by pinching/scrolling. True by default */ Range.prototype.setOptions = function (options) { if (options) { @@ -17761,9 +17853,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Test whether direction has a valid value - * @param {String} direction 'horizontal' or 'vertical' + /** + * Test whether direction has a valid value + * @param {String} direction 'horizontal' or 'vertical' */ function validateDirection(direction) { if (direction != 'horizontal' && direction != 'vertical') { @@ -17771,8 +17863,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Start auto refreshing the current time bar + /** + * Start auto refreshing the current time bar */ Range.prototype.startRolling = function () { var me = this; @@ -17807,8 +17899,8 @@ return /******/ (function(modules) { // webpackBootstrap update(); }; - /** - * Stop auto refreshing the current time bar + /** + * Stop auto refreshing the current time bar */ Range.prototype.stopRolling = function () { if (this.currentTimeTimer !== undefined) { @@ -17818,21 +17910,21 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set a new start and end range - * @param {Date | Number | String} [start] - * @param {Date | Number | String} [end] - * @param {Object} options Available options: - * {Boolean | {duration: number, easingFunction: string}} [animation=false] - * If true, the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. - * {Boolean} [byUser=false] - * {Event} event Mouse event - * {Function} a callback funtion to be executed at the end of this function - * + /** + * Set a new start and end range + * @param {Date | Number | String} [start] + * @param {Date | Number | String} [end] + * @param {Object} options Available options: + * {Boolean | {duration: number, easingFunction: string}} [animation=false] + * If true, the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + * {Boolean} [byUser=false] + * {Event} event Mouse event + * {Function} a callback funtion to be executed at the end of this function + * */ Range.prototype.setRange = function (start, end, options, callback) { @@ -17925,8 +18017,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get the number of milliseconds per pixel. + /** + * Get the number of milliseconds per pixel. */ Range.prototype.getMillisecondsPerPixel = function () { if (this.millisecondsPerPixelCache === undefined) { @@ -17935,9 +18027,9 @@ return /******/ (function(modules) { // webpackBootstrap return this.millisecondsPerPixelCache; }; - /** - * Stop an animation - * @private + /** + * Stop an animation + * @private */ Range.prototype._cancelAnimation = function () { if (this.animationTimer) { @@ -17946,14 +18038,14 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set a new start and end range. This method is the same as setRange, but - * does not trigger a range change and range changed event, and it returns - * true when the range is changed - * @param {Number} [start] - * @param {Number} [end] - * @return {Boolean} changed - * @private + /** + * Set a new start and end range. This method is the same as setRange, but + * does not trigger a range change and range changed event, and it returns + * true when the range is changed + * @param {Number} [start] + * @param {Number} [end] + * @return {Boolean} changed + * @private */ Range.prototype._applyRange = function (start, end) { var newStart = start != null ? util.convert(start, 'Date').valueOf() : this.start, @@ -18062,9 +18154,9 @@ return /******/ (function(modules) { // webpackBootstrap return changed; }; - /** - * Retrieve the current range. - * @return {Object} An object with start and end properties + /** + * Retrieve the current range. + * @return {Object} An object with start and end properties */ Range.prototype.getRange = function () { return { @@ -18073,23 +18165,23 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Calculate the conversion offset and scale for current range, based on - * the provided width - * @param {Number} width - * @returns {{offset: number, scale: number}} conversion + /** + * Calculate the conversion offset and scale for current range, based on + * the provided width + * @param {Number} width + * @returns {{offset: number, scale: number}} conversion */ Range.prototype.conversion = function (width, totalHidden) { return Range.conversion(this.start, this.end, width, totalHidden); }; - /** - * Static method to calculate the conversion offset and scale for a range, - * based on the provided start, end, and width - * @param {Number} start - * @param {Number} end - * @param {Number} width - * @returns {{offset: number, scale: number}} conversion + /** + * Static method to calculate the conversion offset and scale for a range, + * based on the provided start, end, and width + * @param {Number} start + * @param {Number} end + * @param {Number} width + * @returns {{offset: number, scale: number}} conversion */ Range.conversion = function (start, end, width, totalHidden) { if (totalHidden === undefined) { @@ -18108,10 +18200,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Start dragging horizontally or vertically - * @param {Event} event - * @private + /** + * Start dragging horizontally or vertically + * @param {Event} event + * @private */ Range.prototype._onDragStart = function (event) { this.deltaDifference = 0; @@ -18138,10 +18230,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Perform dragging operation - * @param {Event} event - * @private + /** + * Perform dragging operation + * @param {Event} event + * @private */ Range.prototype._onDrag = function (event) { if (!event) return; @@ -18206,10 +18298,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('panmove'); }; - /** - * Stop dragging operation - * @param {event} event - * @private + /** + * Stop dragging operation + * @param {event} event + * @private */ Range.prototype._onDragEnd = function (event) { if (!this.props.touch.dragging) return; @@ -18236,11 +18328,11 @@ return /******/ (function(modules) { // webpackBootstrap }); }; - /** - * Event handler for mouse wheel event, used to zoom - * Code from http://adomas.org/javascript-mouse-wheel/ - * @param {Event} event - * @private + /** + * Event handler for mouse wheel event, used to zoom + * Code from http://adomas.org/javascript-mouse-wheel/ + * @param {Event} event + * @private */ Range.prototype._onMouseWheel = function (event) { // retrieve delta @@ -18315,9 +18407,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Start of a touch gesture - * @private + /** + * Start of a touch gesture + * @private */ Range.prototype._onTouch = function (event) { this.props.touch.start = this.start; @@ -18328,10 +18420,10 @@ return /******/ (function(modules) { // webpackBootstrap this.deltaDifference = 0; }; - /** - * Handle pinch event - * @param {Event} event - * @private + /** + * Handle pinch event + * @param {Event} event + * @private */ Range.prototype._onPinch = function (event) { // only allow zooming when configured as zoomable and moveable @@ -18381,12 +18473,12 @@ return /******/ (function(modules) { // webpackBootstrap this.endToFront = true; // revert to default }; - /** - * Test whether the mouse from a mouse event is inside the visible window, - * between the current start and end date - * @param {Object} event - * @return {boolean} Returns true when inside the visible window - * @private + /** + * Test whether the mouse from a mouse event is inside the visible window, + * between the current start and end date + * @param {Object} event + * @return {boolean} Returns true when inside the visible window + * @private */ Range.prototype._isInsideRange = function (event) { // calculate the time where the mouse is, check whether inside @@ -18402,11 +18494,11 @@ return /******/ (function(modules) { // webpackBootstrap return time >= this.start && time <= this.end; }; - /** - * Helper function to calculate the center date for zooming - * @param {{x: Number, y: Number}} pointer - * @return {number} date - * @private + /** + * Helper function to calculate the center date for zooming + * @param {{x: Number, y: Number}} pointer + * @return {number} date + * @private */ Range.prototype._pointerToDate = function (pointer) { var conversion; @@ -18423,12 +18515,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get the pointer location relative to the location of the dom element - * @param {{x: Number, y: Number}} touch - * @param {Element} element HTML DOM element - * @return {{x: Number, y: Number}} pointer - * @private + /** + * Get the pointer location relative to the location of the dom element + * @param {{x: Number, y: Number}} touch + * @param {Element} element HTML DOM element + * @return {{x: Number, y: Number}} pointer + * @private */ Range.prototype.getPointer = function (touch, element) { if (this.options.rtl) { @@ -18444,15 +18536,15 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Zoom the range the given scale in or out. Start and end date will - * be adjusted, and the timeline will be redrawn. You can optionally give a - * date around which to zoom. - * For example, try scale = 0.9 or 1.1 - * @param {Number} scale Scaling factor. Values above 1 will zoom out, - * values below 1 will zoom in. - * @param {Number} [center] Value representing a date around which will - * be zoomed. + /** + * Zoom the range the given scale in or out. Start and end date will + * be adjusted, and the timeline will be redrawn. You can optionally give a + * date around which to zoom. + * For example, try scale = 0.9 or 1.1 + * @param {Number} scale Scaling factor. Values above 1 will zoom out, + * values below 1 will zoom in. + * @param {Number} [center] Value representing a date around which will + * be zoomed. */ Range.prototype.zoom = function (scale, center, delta, event) { // if centerDate is not provided, take it half between start Date and end Date @@ -18489,11 +18581,11 @@ return /******/ (function(modules) { // webpackBootstrap this.endToFront = true; // revert to default }; - /** - * Move the range with a given delta to the left or right. Start and end - * value will be adjusted. For example, try delta = 0.1 or -0.1 - * @param {Number} delta Moving amount. Positive value will move right, - * negative value will move left + /** + * Move the range with a given delta to the left or right. Start and end + * value will be adjusted. For example, try delta = 0.1 or -0.1 + * @param {Number} delta Moving amount. Positive value will move right, + * negative value will move left */ Range.prototype.move = function (delta) { // zoom start Date and end Date relative to the centerDate @@ -18509,9 +18601,9 @@ return /******/ (function(modules) { // webpackBootstrap this.end = newEnd; }; - /** - * Move the range to a new center point - * @param {Number} moveTo New center point of the range + /** + * Move the range to a new center point + * @param {Number} moveTo New center point of the range */ Range.prototype.moveTo = function (moveTo) { var center = (this.start + this.end) / 2; @@ -18540,10 +18632,10 @@ return /******/ (function(modules) { // webpackBootstrap var Hammer = __webpack_require__(113); - /** - * Register a touch event, taking place before a gesture - * @param {Hammer} hammer A hammer instance - * @param {function} callback Callback, called as callback(event) + /** + * Register a touch event, taking place before a gesture + * @param {Hammer} hammer A hammer instance + * @param {function} callback Callback, called as callback(event) */ exports.onTouch = function (hammer, callback) { callback.inputHandler = function (event) { @@ -18555,10 +18647,10 @@ return /******/ (function(modules) { // webpackBootstrap hammer.on('hammer.input', callback.inputHandler); }; - /** - * Register a release event, taking place after a gesture - * @param {Hammer} hammer A hammer instance - * @param {function} callback Callback, called as callback(event) + /** + * Register a release event, taking place after a gesture + * @param {Hammer} hammer A hammer instance + * @param {function} callback Callback, called as callback(event) */ exports.onRelease = function (hammer, callback) { callback.inputHandler = function (event) { @@ -18570,30 +18662,30 @@ return /******/ (function(modules) { // webpackBootstrap return hammer.on('hammer.input', callback.inputHandler); }; - /** - * Unregister a touch event, taking place before a gesture - * @param {Hammer} hammer A hammer instance - * @param {function} callback Callback, called as callback(event) + /** + * Unregister a touch event, taking place before a gesture + * @param {Hammer} hammer A hammer instance + * @param {function} callback Callback, called as callback(event) */ exports.offTouch = function (hammer, callback) { hammer.off('hammer.input', callback.inputHandler); }; - /** - * Unregister a release event, taking place before a gesture - * @param {Hammer} hammer A hammer instance - * @param {function} callback Callback, called as callback(event) + /** + * Unregister a release event, taking place before a gesture + * @param {Hammer} hammer A hammer instance + * @param {function} callback Callback, called as callback(event) */ exports.offRelease = exports.offTouch; - /** - * Hack the PinchRecognizer such that it doesn't prevent default behavior - * for vertical panning. - * - * Yeah ... this is quite a hack ... see https://github.com/hammerjs/hammer.js/issues/932 - * - * @param {Hammer.Pinch} pinchRecognizer - * @return {Hammer.Pinch} returns the pinchRecognizer + /** + * Hack the PinchRecognizer such that it doesn't prevent default behavior + * for vertical panning. + * + * Yeah ... this is quite a hack ... see https://github.com/hammerjs/hammer.js/issues/932 + * + * @param {Hammer.Pinch} pinchRecognizer + * @return {Hammer.Pinch} returns the pinchRecognizer */ exports.disablePreventDefaultVertically = function (pinchRecognizer) { var TOUCH_ACTION_PAN_Y = 'pan-y'; @@ -18614,20 +18706,20 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); - /** - * Prototype for visual components - * @param {{dom: Object, domProps: Object, emitter: Emitter, range: Range}} [body] - * @param {Object} [options] + /** + * Prototype for visual components + * @param {{dom: Object, domProps: Object, emitter: Emitter, range: Range}} [body] + * @param {Object} [options] */ function Component(body, options) { this.options = null; this.props = null; } - /** - * Set options for the component. The new options will be merged into the - * current options. - * @param {Object} options + /** + * Set options for the component. The new options will be merged into the + * current options. + * @param {Object} options */ Component.prototype.setOptions = function (options) { if (options) { @@ -18635,27 +18727,27 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Repaint the component - * @return {boolean} Returns true if the component is resized + /** + * Repaint the component + * @return {boolean} Returns true if the component is resized */ Component.prototype.redraw = function () { // should be implemented by the component return false; }; - /** - * Destroy the component. Cleanup DOM and event listeners + /** + * Destroy the component. Cleanup DOM and event listeners */ Component.prototype.destroy = function () { // should be implemented by the component }; - /** - * Test whether the component is resized since the last time _isResized() was - * called. - * @return {Boolean} Returns true if the component is resized - * @protected + /** + * Test whether the component is resized since the last time _isResized() was + * called. + * @return {Boolean} Returns true if the component is resized + * @protected */ Component.prototype._isResized = function () { var resized = this.props._previousWidth !== this.props.width || this.props._previousHeight !== this.props.height; @@ -18674,12 +18766,12 @@ return /******/ (function(modules) { // webpackBootstrap "use strict"; - /** - * used in Core to convert the options into a volatile variable - * - * @param {function} moment - * @param {Object} body - * @param {Array | Object} hiddenDates + /** + * used in Core to convert the options into a volatile variable + * + * @param {function} moment + * @param {Object} body + * @param {Array | Object} hiddenDates */ exports.convertHiddenOptions = function (moment, body, hiddenDates) { if (hiddenDates && !Array.isArray(hiddenDates)) { @@ -18704,11 +18796,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * create new entrees for the repeating hidden dates - * @param {function} moment - * @param {Object} body - * @param {Array | Object} hiddenDates + /** + * create new entrees for the repeating hidden dates + * @param {function} moment + * @param {Object} body + * @param {Array | Object} hiddenDates */ exports.updateHiddenDates = function (moment, body, hiddenDates) { if (hiddenDates && !Array.isArray(hiddenDates)) { @@ -18855,10 +18947,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * remove duplicates from the hidden dates list. Duplicates are evil. They mess everything up. - * Scales with N^2 - * @param body + /** + * remove duplicates from the hidden dates list. Duplicates are evil. They mess everything up. + * Scales with N^2 + * @param body */ exports.removeDuplicates = function (body) { var hiddenDates = body.hiddenDates; @@ -18902,11 +18994,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Used in TimeStep to avoid the hidden times. - * @param {function} moment - * @param {TimeStep} timeStep - * @param previousTime + /** + * Used in TimeStep to avoid the hidden times. + * @param {function} moment + * @param {TimeStep} timeStep + * @param previousTime */ exports.stepOverHiddenDates = function (moment, timeStep, previousTime) { var stepInHidden = false; @@ -18959,12 +19051,12 @@ return /******/ (function(modules) { // webpackBootstrap // } //}; - /** - * replaces the Core toScreen methods - * @param Core - * @param time - * @param width - * @returns {number} + /** + * replaces the Core toScreen methods + * @param Core + * @param time + * @param width + * @returns {number} */ exports.toScreen = function (Core, time, width) { if (Core.body.hiddenDates.length == 0) { @@ -18996,13 +19088,13 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Replaces the core toTime methods - * @param body - * @param range - * @param x - * @param width - * @returns {Date} + /** + * Replaces the core toTime methods + * @param body + * @param range + * @param x + * @param width + * @returns {Date} */ exports.toTime = function (Core, x, width) { if (Core.body.hiddenDates.length == 0) { @@ -19019,12 +19111,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Support function - * - * @param hiddenDates - * @param range - * @returns {number} + /** + * Support function + * + * @param hiddenDates + * @param range + * @returns {number} */ exports.getHiddenDurationBetween = function (hiddenDates, start, end) { var duration = 0; @@ -19039,13 +19131,13 @@ return /******/ (function(modules) { // webpackBootstrap return duration; }; - /** - * Support function - * - * @param hiddenDates - * @param start - * @param end - * @returns {number} + /** + * Support function + * + * @param hiddenDates + * @param start + * @param end + * @returns {number} */ exports.getHiddenDurationBeforeStart = function (hiddenDates, start, end) { var duration = 0; @@ -19060,13 +19152,13 @@ return /******/ (function(modules) { // webpackBootstrap return duration; }; - /** - * Support function - * @param moment - * @param hiddenDates - * @param range - * @param time - * @returns {{duration: number, time: *, offset: number}} + /** + * Support function + * @param moment + * @param hiddenDates + * @param range + * @param time + * @returns {{duration: number, time: *, offset: number}} */ exports.correctTimeForHidden = function (moment, hiddenDates, range, time) { time = moment(time).toDate().valueOf(); @@ -19091,13 +19183,13 @@ return /******/ (function(modules) { // webpackBootstrap return timeOffset; }; - /** - * sum the duration from start to finish, including the hidden duration, - * until the required amount has been reached, return the accumulated hidden duration - * @param hiddenDates - * @param range - * @param time - * @returns {{duration: number, time: *, offset: number}} + /** + * sum the duration from start to finish, including the hidden duration, + * until the required amount has been reached, return the accumulated hidden duration + * @param hiddenDates + * @param range + * @param time + * @returns {{duration: number, time: *, offset: number}} */ exports.getAccumulatedHiddenDuration = function (hiddenDates, range, requiredDuration) { var hiddenDuration = 0; @@ -19122,13 +19214,13 @@ return /******/ (function(modules) { // webpackBootstrap return hiddenDuration; }; - /** - * used to step over to either side of a hidden block. Correction is disabled on tablets, might be set to true - * @param hiddenDates - * @param time - * @param direction - * @param correctionEnabled - * @returns {*} + /** + * used to step over to either side of a hidden block. Correction is disabled on tablets, might be set to true + * @param hiddenDates + * @param time + * @param direction + * @param correctionEnabled + * @returns {*} */ exports.snapAwayFromHidden = function (hiddenDates, time, direction, correctionEnabled) { var isHidden = exports.isHidden(time, hiddenDates); @@ -19151,12 +19243,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Check if a time is hidden - * - * @param time - * @param hiddenDates - * @returns {{hidden: boolean, startDate: Window.start, endDate: *}} + /** + * Check if a time is hidden + * + * @param time + * @param hiddenDates + * @returns {{hidden: boolean, startDate: Window.start, endDate: *}} */ exports.isHidden = function (time, hiddenDates) { for (var i = 0; i < hiddenDates.length; i++) { @@ -19200,21 +19292,21 @@ return /******/ (function(modules) { // webpackBootstrap var DateUtil = __webpack_require__(122); var CustomTime = __webpack_require__(142); - /** - * Create a timeline visualization - * @constructor + /** + * Create a timeline visualization + * @constructor */ function Core() {} // turn Core into an event emitter Emitter(Core.prototype); - /** - * Create the main DOM for the Core: a root panel containing left, right, - * top, bottom, content, and background panel. - * @param {Element} container The container element where the Core will - * be attached. - * @protected + /** + * Create the main DOM for the Core: a root panel containing left, right, + * top, bottom, content, and background panel. + * @param {Element} container The container element where the Core will + * be attached. + * @protected */ Core.prototype._create = function (container) { this.dom = {}; @@ -19474,30 +19566,30 @@ return /******/ (function(modules) { // webpackBootstrap container.appendChild(this.dom.root); }; - /** - * Set options. Options will be passed to all components loaded in the Timeline. - * @param {Object} [options] - * {String} orientation - * Vertical orientation for the Timeline, - * can be 'bottom' (default) or 'top'. - * {String | Number} width - * Width for the timeline, a number in pixels or - * a css string like '1000px' or '75%'. '100%' by default. - * {String | Number} height - * Fixed height for the Timeline, a number in pixels or - * a css string like '400px' or '75%'. If undefined, - * The Timeline will automatically size such that - * its contents fit. - * {String | Number} minHeight - * Minimum height for the Timeline, a number in pixels or - * a css string like '400px' or '75%'. - * {String | Number} maxHeight - * Maximum height for the Timeline, a number in pixels or - * a css string like '400px' or '75%'. - * {Number | Date | String} start - * Start date for the visible window - * {Number | Date | String} end - * End date for the visible window + /** + * Set options. Options will be passed to all components loaded in the Timeline. + * @param {Object} [options] + * {String} orientation + * Vertical orientation for the Timeline, + * can be 'bottom' (default) or 'top'. + * {String | Number} width + * Width for the timeline, a number in pixels or + * a css string like '1000px' or '75%'. '100%' by default. + * {String | Number} height + * Fixed height for the Timeline, a number in pixels or + * a css string like '400px' or '75%'. If undefined, + * The Timeline will automatically size such that + * its contents fit. + * {String | Number} minHeight + * Minimum height for the Timeline, a number in pixels or + * a css string like '400px' or '75%'. + * {String | Number} maxHeight + * Maximum height for the Timeline, a number in pixels or + * a css string like '400px' or '75%'. + * {Number | Date | String} start + * Start date for the visible window + * {Number | Date | String} end + * End date for the visible window */ Core.prototype.setOptions = function (options) { if (options) { @@ -19614,16 +19706,16 @@ return /******/ (function(modules) { // webpackBootstrap this._redraw(); }; - /** - * Returns true when the Timeline is active. - * @returns {boolean} + /** + * Returns true when the Timeline is active. + * @returns {boolean} */ Core.prototype.isActive = function () { return !this.activator || this.activator.active; }; - /** - * Destroy the Core, clean up all DOM elements and event listeners. + /** + * Destroy the Core, clean up all DOM elements and event listeners. */ Core.prototype.destroy = function () { // unbind datasets @@ -19665,10 +19757,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body = null; }; - /** - * Set a custom time bar - * @param {Date} time - * @param {number} [id=undefined] Optional id of the custom time bar to be adjusted. + /** + * Set a custom time bar + * @param {Date} time + * @param {number} [id=undefined] Optional id of the custom time bar to be adjusted. */ Core.prototype.setCustomTime = function (time, id) { var customTimes = this.customTimes.filter(function (component) { @@ -19684,10 +19776,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Retrieve the current custom time. - * @param {number} [id=undefined] Id of the custom time bar. - * @return {Date | undefined} customTime + /** + * Retrieve the current custom time. + * @param {number} [id=undefined] Id of the custom time bar. + * @return {Date | undefined} customTime */ Core.prototype.getCustomTime = function (id) { var customTimes = this.customTimes.filter(function (component) { @@ -19700,10 +19792,10 @@ return /******/ (function(modules) { // webpackBootstrap return customTimes[0].getCustomTime(); }; - /** - * Set a custom title for the custom time bar. - * @param {String} [title] Custom title - * @param {number} [id=undefined] Id of the custom time bar. + /** + * Set a custom title for the custom time bar. + * @param {String} [title] Custom title + * @param {number} [id=undefined] Id of the custom time bar. */ Core.prototype.setCustomTimeTitle = function (title, id) { var customTimes = this.customTimes.filter(function (component) { @@ -19718,25 +19810,25 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Retrieve meta information from an event. - * Should be overridden by classes extending Core - * @param {Event} event - * @return {Object} An object with related information. + /** + * Retrieve meta information from an event. + * Should be overridden by classes extending Core + * @param {Event} event + * @return {Object} An object with related information. */ Core.prototype.getEventProperties = function (event) { return { event: event }; }; - /** - * Add custom vertical bar - * @param {Date | String | Number} [time] A Date, unix timestamp, or - * ISO date string. Time point where - * the new bar should be placed. - * If not provided, `new Date()` will - * be used. - * @param {Number | String} [id=undefined] Id of the new bar. Optional - * @return {Number | String} Returns the id of the new bar + /** + * Add custom vertical bar + * @param {Date | String | Number} [time] A Date, unix timestamp, or + * ISO date string. Time point where + * the new bar should be placed. + * If not provided, `new Date()` will + * be used. + * @param {Number | String} [id=undefined] Id of the new bar. Optional + * @return {Number | String} Returns the id of the new bar */ Core.prototype.addCustomTime = function (time, id) { var timestamp = time !== undefined ? util.convert(time, 'Date').valueOf() : new Date(); @@ -19760,10 +19852,10 @@ return /******/ (function(modules) { // webpackBootstrap return id; }; - /** - * Remove previously added custom bar - * @param {int} id ID of the custom bar to be removed - * @return {boolean} True if the bar exists and is removed, false otherwise + /** + * Remove previously added custom bar + * @param {int} id ID of the custom bar to be removed + * @return {boolean} True if the bar exists and is removed, false otherwise */ Core.prototype.removeCustomTime = function (id) { var customTimes = this.customTimes.filter(function (bar) { @@ -19781,24 +19873,24 @@ return /******/ (function(modules) { // webpackBootstrap }.bind(this)); }; - /** - * Get the id's of the currently visible items. - * @returns {Array} The ids of the visible items + /** + * Get the id's of the currently visible items. + * @returns {Array} The ids of the visible items */ Core.prototype.getVisibleItems = function () { return this.itemSet && this.itemSet.getVisibleItems() || []; }; - /** - * Set Core window such that it fits all items - * @param {Object} [options] Available options: - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. - * @param {Function} a callback funtion to be executed at the end of this function + /** + * Set Core window such that it fits all items + * @param {Object} [options] Available options: + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + * @param {Function} a callback funtion to be executed at the end of this function */ Core.prototype.fit = function (options, callback) { var range = this.getDataRange(); @@ -19816,37 +19908,37 @@ return /******/ (function(modules) { // webpackBootstrap this.range.setRange(min, max, { animation: animation }, callback); }; - /** - * Calculate the data range of the items start and end dates - * @returns {{min: Date | null, max: Date | null}} - * @protected + /** + * Calculate the data range of the items start and end dates + * @returns {{min: Date | null, max: Date | null}} + * @protected */ Core.prototype.getDataRange = function () { // must be implemented by Timeline and Graph2d throw new Error('Cannot invoke abstract method getDataRange'); }; - /** - * Set the visible window. Both parameters are optional, you can change only - * start or only end. Syntax: - * - * TimeLine.setWindow(start, end) - * TimeLine.setWindow(start, end, options) - * TimeLine.setWindow(range) - * - * Where start and end can be a Date, number, or string, and range is an - * object with properties start and end. - * - * @param {Date | Number | String | Object} [start] Start date of visible window - * @param {Date | Number | String} [end] End date of visible window - * @param {Object} [options] Available options: - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. - * @param {Function} a callback funtion to be executed at the end of this function + /** + * Set the visible window. Both parameters are optional, you can change only + * start or only end. Syntax: + * + * TimeLine.setWindow(start, end) + * TimeLine.setWindow(start, end, options) + * TimeLine.setWindow(range) + * + * Where start and end can be a Date, number, or string, and range is an + * object with properties start and end. + * + * @param {Date | Number | String | Object} [start] Start date of visible window + * @param {Date | Number | String} [end] End date of visible window + * @param {Object} [options] Available options: + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + * @param {Function} a callback funtion to be executed at the end of this function */ Core.prototype.setWindow = function (start, end, options, callback) { if (typeof arguments[2] == "function") { @@ -19869,17 +19961,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Move the window such that given time is centered on screen. - * @param {Date | Number | String} time - * @param {Object} [options] Available options: - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. - * @param {Function} a callback funtion to be executed at the end of this function + /** + * Move the window such that given time is centered on screen. + * @param {Date | Number | String} time + * @param {Object} [options] Available options: + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + * @param {Function} a callback funtion to be executed at the end of this function */ Core.prototype.moveTo = function (time, options, callback) { if (typeof arguments[1] == "function") { @@ -19896,9 +19988,9 @@ return /******/ (function(modules) { // webpackBootstrap this.range.setRange(start, end, { animation: animation }, callback); }; - /** - * Get the visible window - * @return {{start: Date, end: Date}} Visible range + /** + * Get the visible window + * @return {{start: Date, end: Date}} Visible range */ Core.prototype.getWindow = function () { var range = this.range.getRange(); @@ -19908,17 +20000,17 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Zoom in the window such that given time is centered on screen. - * @param {Number} percentage - must be between [0..1] - * @param {Object} [options] Available options: - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. - * @param {Function} a callback funtion to be executed at the end of this function + /** + * Zoom in the window such that given time is centered on screen. + * @param {Number} percentage - must be between [0..1] + * @param {Object} [options] Available options: + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + * @param {Function} a callback funtion to be executed at the end of this function */ Core.prototype.zoomIn = function (percentage, options, callback) { if (!percentage || percentage < 0 || percentage > 1) return; @@ -19938,17 +20030,17 @@ return /******/ (function(modules) { // webpackBootstrap this.setWindow(newStart, newEnd, options, callback); }; - /** - * Zoom out the window such that given time is centered on screen. - * @param {Number} percentage - must be between [0..1] - * @param {Object} [options] Available options: - * `animation: boolean | {duration: number, easingFunction: string}` - * If true (default), the range is animated - * smoothly to the new window. An object can be - * provided to specify duration and easing function. - * Default duration is 500 ms, and default easing - * function is 'easeInOutQuad'. - * @param {Function} a callback funtion to be executed at the end of this function + /** + * Zoom out the window such that given time is centered on screen. + * @param {Number} percentage - must be between [0..1] + * @param {Object} [options] Available options: + * `animation: boolean | {duration: number, easingFunction: string}` + * If true (default), the range is animated + * smoothly to the new window. An object can be + * provided to specify duration and easing function. + * Default duration is 500 ms, and default easing + * function is 'easeInOutQuad'. + * @param {Function} a callback funtion to be executed at the end of this function */ Core.prototype.zoomOut = function (percentage, options, callback) { if (!percentage || percentage < 0 || percentage > 1) return; @@ -19966,19 +20058,19 @@ return /******/ (function(modules) { // webpackBootstrap this.setWindow(newStart, newEnd, options, callback); }; - /** - * Force a redraw. Can be overridden by implementations of Core - * - * Note: this function will be overridden on construction with a trottled version + /** + * Force a redraw. Can be overridden by implementations of Core + * + * Note: this function will be overridden on construction with a trottled version */ Core.prototype.redraw = function () { this._redraw(); }; - /** - * Redraw for internal use. Redraws all components. See also the public - * method redraw. - * @protected + /** + * Redraw for internal use. Redraws all components. See also the public + * method redraw. + * @protected */ Core.prototype._redraw = function () { this.redrawCount++; @@ -20194,12 +20286,12 @@ return /******/ (function(modules) { // webpackBootstrap throw new Error('Function repaint is deprecated. Use redraw instead.'); }; - /** - * Set a current time. This can be used for example to ensure that a client's - * time is synchronized with a shared server time. - * Only applicable when option `showCurrentTime` is true. - * @param {Date | String | Number} time A Date, unix timestamp, or - * ISO date string. + /** + * Set a current time. This can be used for example to ensure that a client's + * time is synchronized with a shared server time. + * Only applicable when option `showCurrentTime` is true. + * @param {Date | String | Number} time A Date, unix timestamp, or + * ISO date string. */ Core.prototype.setCurrentTime = function (time) { if (!this.currentTime) { @@ -20209,10 +20301,10 @@ return /******/ (function(modules) { // webpackBootstrap this.currentTime.setCurrentTime(time); }; - /** - * Get the current time. - * Only applicable when option `showCurrentTime` is true. - * @return {Date} Returns the current time. + /** + * Get the current time. + * Only applicable when option `showCurrentTime` is true. + * @return {Date} Returns the current time. */ Core.prototype.getCurrentTime = function () { if (!this.currentTime) { @@ -20222,22 +20314,22 @@ return /******/ (function(modules) { // webpackBootstrap return this.currentTime.getCurrentTime(); }; - /** - * Convert a position on screen (pixels) to a datetime - * @param {int} x Position on the screen in pixels - * @return {Date} time The datetime the corresponds with given position x - * @protected + /** + * Convert a position on screen (pixels) to a datetime + * @param {int} x Position on the screen in pixels + * @return {Date} time The datetime the corresponds with given position x + * @protected */ // TODO: move this function to Range Core.prototype._toTime = function (x) { return DateUtil.toTime(this, x, this.props.center.width); }; - /** - * Convert a position on the global screen (pixels) to a datetime - * @param {int} x Position on the screen in pixels - * @return {Date} time The datetime the corresponds with given position x - * @protected + /** + * Convert a position on the global screen (pixels) to a datetime + * @param {int} x Position on the screen in pixels + * @return {Date} time The datetime the corresponds with given position x + * @protected */ // TODO: move this function to Range Core.prototype._toGlobalTime = function (x) { @@ -20246,25 +20338,25 @@ return /******/ (function(modules) { // webpackBootstrap //return new Date(x / conversion.scale + conversion.offset); }; - /** - * Convert a datetime (Date object) into a position on the screen - * @param {Date} time A date - * @return {int} x The position on the screen in pixels which corresponds - * with the given date. - * @protected + /** + * Convert a datetime (Date object) into a position on the screen + * @param {Date} time A date + * @return {int} x The position on the screen in pixels which corresponds + * with the given date. + * @protected */ // TODO: move this function to Range Core.prototype._toScreen = function (time) { return DateUtil.toScreen(this, time, this.props.center.width); }; - /** - * Convert a datetime (Date object) into a position on the root - * This is used to get the pixel density estimate for the screen, not the center panel - * @param {Date} time A date - * @return {int} x The position on root in pixels which corresponds - * with the given date. - * @protected + /** + * Convert a datetime (Date object) into a position on the root + * This is used to get the pixel density estimate for the screen, not the center panel + * @param {Date} time A date + * @return {int} x The position on root in pixels which corresponds + * with the given date. + * @protected */ // TODO: move this function to Range Core.prototype._toGlobalScreen = function (time) { @@ -20273,9 +20365,9 @@ return /******/ (function(modules) { // webpackBootstrap //return (time.valueOf() - conversion.offset) * conversion.scale; }; - /** - * Initialize watching when option autoResize is true - * @private + /** + * Initialize watching when option autoResize is true + * @private */ Core.prototype._initAutoResize = function () { if (this.options.autoResize == true) { @@ -20285,10 +20377,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Watch for changes in the size of the container. On resize, the Panel will - * automatically redraw itself. - * @private + /** + * Watch for changes in the size of the container. On resize, the Panel will + * automatically redraw itself. + * @private */ Core.prototype._startAutoResize = function () { var me = this; @@ -20329,9 +20421,9 @@ return /******/ (function(modules) { // webpackBootstrap this.watchTimer = setInterval(this._onResize, 1000); }; - /** - * Stop watching for a resize of the frame. - * @private + /** + * Stop watching for a resize of the frame. + * @private */ Core.prototype._stopAutoResize = function () { if (this.watchTimer) { @@ -20346,29 +20438,29 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Start moving the timeline vertically - * @param {Event} event - * @private + /** + * Start moving the timeline vertically + * @param {Event} event + * @private */ Core.prototype._onTouch = function (event) { this.touch.allowDragging = true; this.touch.initialScrollTop = this.props.scrollTop; }; - /** - * Start moving the timeline vertically - * @param {Event} event - * @private + /** + * Start moving the timeline vertically + * @param {Event} event + * @private */ Core.prototype._onPinch = function (event) { this.touch.allowDragging = false; }; - /** - * Move the timeline vertically - * @param {Event} event - * @private + /** + * Move the timeline vertically + * @param {Event} event + * @private */ Core.prototype._onDrag = function (event) { if (!event) return; @@ -20391,11 +20483,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Apply a scrollTop - * @param {Number} scrollTop - * @returns {Number} scrollTop Returns the applied scrollTop - * @private + /** + * Apply a scrollTop + * @param {Number} scrollTop + * @returns {Number} scrollTop Returns the applied scrollTop + * @private */ Core.prototype._setScrollTop = function (scrollTop) { this.props.scrollTop = scrollTop; @@ -20403,10 +20495,10 @@ return /******/ (function(modules) { // webpackBootstrap return this.props.scrollTop; }; - /** - * Update the current scrollTop when the height of the containers has been changed - * @returns {Number} scrollTop Returns the applied scrollTop - * @private + /** + * Update the current scrollTop when the height of the containers has been changed + * @returns {Number} scrollTop Returns the applied scrollTop + * @private */ Core.prototype._updateScrollTop = function () { // recalculate the scrollTopMin @@ -20432,19 +20524,19 @@ return /******/ (function(modules) { // webpackBootstrap return this.props.scrollTop; }; - /** - * Get the current scrollTop - * @returns {number} scrollTop - * @private + /** + * Get the current scrollTop + * @returns {number} scrollTop + * @private */ Core.prototype._getScrollTop = function () { return this.props.scrollTop; }; - /** - * Load a configurator - * @return {Object} - * @private + /** + * Load a configurator + * @return {Object} + * @private */ Core.prototype._createConfigurator = function () { throw new Error('Cannot invoke abstract method _createConfigurator'); @@ -20485,14 +20577,14 @@ return /******/ (function(modules) { // webpackBootstrap var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items var BACKGROUND = '__background__'; // reserved group id for background items without group - /** - * An ItemSet holds a set of items and ranges which can be displayed in a - * range. The width is determined by the parent of the ItemSet, and the height - * is determined by the size of the items. - * @param {{dom: Object, domProps: Object, emitter: Emitter, range: Range}} body - * @param {Object} [options] See ItemSet.setOptions for the available options. - * @constructor ItemSet - * @extends Component + /** + * An ItemSet holds a set of items and ranges which can be displayed in a + * range. The width is determined by the parent of the ItemSet, and the height + * is determined by the size of the items. + * @param {{dom: Object, domProps: Object, emitter: Emitter, range: Range}} body + * @param {Object} [options] See ItemSet.setOptions for the available options. + * @constructor ItemSet + * @extends Component */ function ItemSet(body, options) { this.body = body; @@ -20615,6 +20707,33 @@ return /******/ (function(modules) { // webpackBootstrap this.groupListeners = { 'add': function add(event, params, senderId) { me._onAddGroups(params.items); + + if (me.groupsData && me.groupsData.length > 0) { + var groupsData = me.groupsData; + if (me.groupsData instanceof DataView) { + groupsData = me.groupsData.getDataSet(); + } + + groupsData.get().forEach(function (groupData) { + if (groupData.nestedGroups) { + if (groupData.showNested != false) { + groupData.showNested = true; + } + groupData.nestedGroups.forEach(function (nestedGroupId) { + var updatedNestedGroup = groupsData.get(nestedGroupId); + if (!updatedNestedGroup) { + return; + } + updatedNestedGroup.nestedInGroup = groupData.id; + if (groupData.showNested == false) { + updatedNestedGroup.visible = false; + } + groupsData.update(updatedNestedGroup); + }); + groupsData.update(groupData); + } + }); + } }, 'update': function update(event, params, senderId) { me._onUpdateGroups(params.items); @@ -20651,8 +20770,8 @@ return /******/ (function(modules) { // webpackBootstrap point: PointItem }; - /** - * Create the HTML DOM for the ItemSet + /** + * Create the HTML DOM for the ItemSet */ ItemSet.prototype._create = function () { var frame = document.createElement('div'); @@ -20740,69 +20859,69 @@ return /******/ (function(modules) { // webpackBootstrap this.show(); }; - /** - * Set options for the ItemSet. Existing options will be extended/overwritten. - * @param {Object} [options] The following options are available: - * {String} type - * Default type for the items. Choose from 'box' - * (default), 'point', 'range', or 'background'. - * The default style can be overwritten by - * individual items. - * {String} align - * Alignment for the items, only applicable for - * BoxItem. Choose 'center' (default), 'left', or - * 'right'. - * {String} orientation.item - * Orientation of the item set. Choose 'top' or - * 'bottom' (default). - * {Function} groupOrder - * A sorting function for ordering groups - * {Boolean} stack - * If true (default), items will be stacked on - * top of each other. - * {Number} margin.axis - * Margin between the axis and the items in pixels. - * Default is 20. - * {Number} margin.item.horizontal - * Horizontal margin between items in pixels. - * Default is 10. - * {Number} margin.item.vertical - * Vertical Margin between items in pixels. - * Default is 10. - * {Number} margin.item - * Margin between items in pixels in both horizontal - * and vertical direction. Default is 10. - * {Number} margin - * Set margin for both axis and items in pixels. - * {Boolean} selectable - * If true (default), items can be selected. - * {Boolean} multiselect - * If true, multiple items can be selected. - * False by default. - * {Boolean} editable - * Set all editable options to true or false - * {Boolean} editable.updateTime - * Allow dragging an item to an other moment in time - * {Boolean} editable.updateGroup - * Allow dragging an item to an other group - * {Boolean} editable.add - * Allow creating new items on double tap - * {Boolean} editable.remove - * Allow removing items by clicking the delete button - * top right of a selected item. - * {Function(item: Item, callback: Function)} onAdd - * Callback function triggered when an item is about to be added: - * when the user double taps an empty space in the Timeline. - * {Function(item: Item, callback: Function)} onUpdate - * Callback function fired when an item is about to be updated. - * This function typically has to show a dialog where the user - * change the item. If not implemented, nothing happens. - * {Function(item: Item, callback: Function)} onMove - * Fired when an item has been moved. If not implemented, - * the move action will be accepted. - * {Function(item: Item, callback: Function)} onRemove - * Fired when an item is about to be deleted. - * If not implemented, the item will be always removed. + /** + * Set options for the ItemSet. Existing options will be extended/overwritten. + * @param {Object} [options] The following options are available: + * {String} type + * Default type for the items. Choose from 'box' + * (default), 'point', 'range', or 'background'. + * The default style can be overwritten by + * individual items. + * {String} align + * Alignment for the items, only applicable for + * BoxItem. Choose 'center' (default), 'left', or + * 'right'. + * {String} orientation.item + * Orientation of the item set. Choose 'top' or + * 'bottom' (default). + * {Function} groupOrder + * A sorting function for ordering groups + * {Boolean} stack + * If true (default), items will be stacked on + * top of each other. + * {Number} margin.axis + * Margin between the axis and the items in pixels. + * Default is 20. + * {Number} margin.item.horizontal + * Horizontal margin between items in pixels. + * Default is 10. + * {Number} margin.item.vertical + * Vertical Margin between items in pixels. + * Default is 10. + * {Number} margin.item + * Margin between items in pixels in both horizontal + * and vertical direction. Default is 10. + * {Number} margin + * Set margin for both axis and items in pixels. + * {Boolean} selectable + * If true (default), items can be selected. + * {Boolean} multiselect + * If true, multiple items can be selected. + * False by default. + * {Boolean} editable + * Set all editable options to true or false + * {Boolean} editable.updateTime + * Allow dragging an item to an other moment in time + * {Boolean} editable.updateGroup + * Allow dragging an item to an other group + * {Boolean} editable.add + * Allow creating new items on double tap + * {Boolean} editable.remove + * Allow removing items by clicking the delete button + * top right of a selected item. + * {Function(item: Item, callback: Function)} onAdd + * Callback function triggered when an item is about to be added: + * when the user double taps an empty space in the Timeline. + * {Function(item: Item, callback: Function)} onUpdate + * Callback function fired when an item is about to be updated. + * This function typically has to show a dialog where the user + * change the item. If not implemented, nothing happens. + * {Function(item: Item, callback: Function)} onMove + * Fired when an item has been moved. If not implemented, + * the move action will be accepted. + * {Function(item: Item, callback: Function)} onRemove + * Fired when an item is about to be deleted. + * If not implemented, the item will be always removed. */ ItemSet.prototype.setOptions = function (options) { if (options) { @@ -20888,10 +21007,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Mark the ItemSet dirty so it will refresh everything with next redraw. - * Optionally, all items can be marked as dirty and be refreshed. - * @param {{refreshItems: boolean}} [options] + /** + * Mark the ItemSet dirty so it will refresh everything with next redraw. + * Optionally, all items can be marked as dirty and be refreshed. + * @param {{refreshItems: boolean}} [options] */ ItemSet.prototype.markDirty = function (options) { this.groupIds = []; @@ -20904,8 +21023,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Destroy the ItemSet + /** + * Destroy the ItemSet */ ItemSet.prototype.destroy = function () { this.hide(); @@ -20918,8 +21037,8 @@ return /******/ (function(modules) { // webpackBootstrap this.conversion = null; }; - /** - * Hide the component from the DOM + /** + * Hide the component from the DOM */ ItemSet.prototype.hide = function () { // remove the frame containing the items @@ -20938,9 +21057,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Show the component in the DOM (when not already visible). - * @return {Boolean} changed + /** + * Show the component in the DOM (when not already visible). + * @return {Boolean} changed */ ItemSet.prototype.show = function () { // show frame containing the items @@ -20963,12 +21082,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set selected items by their id. Replaces the current selection - * Unknown id's are silently ignored. - * @param {string[] | string} [ids] An array with zero or more id's of the items to be - * selected, or a single item id. If ids is undefined - * or an empty array, all items will be unselected. + /** + * Set selected items by their id. Replaces the current selection + * Unknown id's are silently ignored. + * @param {string[] | string} [ids] An array with zero or more id's of the items to be + * selected, or a single item id. If ids is undefined + * or an empty array, all items will be unselected. */ ItemSet.prototype.setSelection = function (ids) { var i, ii, id, item; @@ -20995,17 +21114,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get the selected items by their id - * @return {Array} ids The ids of the selected items + /** + * Get the selected items by their id + * @return {Array} ids The ids of the selected items */ ItemSet.prototype.getSelection = function () { return this.selection.concat([]); }; - /** - * Get the id's of the currently visible items. - * @returns {Array} The ids of the visible items + /** + * Get the id's of the currently visible items. + * @returns {Array} The ids of the visible items */ ItemSet.prototype.getVisibleItems = function () { var range = this.body.range.getRange(); @@ -21045,10 +21164,10 @@ return /******/ (function(modules) { // webpackBootstrap return ids; }; - /** - * Deselect a selected item - * @param {String | Number} id - * @private + /** + * Deselect a selected item + * @param {String | Number} id + * @private */ ItemSet.prototype._deselect = function (id) { var selection = this.selection; @@ -21061,9 +21180,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Repaint the component - * @return {boolean} Returns true if the component is resized + /** + * Repaint the component + * @return {boolean} Returns true if the component is resized */ ItemSet.prototype.redraw = function () { var margin = this.options.margin, @@ -21150,10 +21269,10 @@ return /******/ (function(modules) { // webpackBootstrap return resized; }; - /** - * Get the first group, aligned with the axis - * @return {Group | null} firstGroup - * @private + /** + * Get the first group, aligned with the axis + * @return {Group | null} firstGroup + * @private */ ItemSet.prototype._firstGroup = function () { var firstGroupIndex = this.options.orientation.item == 'top' ? 0 : this.groupIds.length - 1; @@ -21163,10 +21282,10 @@ return /******/ (function(modules) { // webpackBootstrap return firstGroup || null; }; - /** - * Create or delete the group holding all ungrouped items. This group is used when - * there are no groups specified. - * @protected + /** + * Create or delete the group holding all ungrouped items. This group is used when + * there are no groups specified. + * @protected */ ItemSet.prototype._updateUngrouped = function () { var ungrouped = this.groups[UNGROUPED]; @@ -21209,17 +21328,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get the element for the labelset - * @return {HTMLElement} labelSet + /** + * Get the element for the labelset + * @return {HTMLElement} labelSet */ ItemSet.prototype.getLabelSet = function () { return this.dom.labelSet; }; - /** - * Set items - * @param {vis.DataSet | null} items + /** + * Set items + * @param {vis.DataSet | null} items */ ItemSet.prototype.setItems = function (items) { var me = this, @@ -21264,17 +21383,17 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_change', { queue: true }); }; - /** - * Get the current items - * @returns {vis.DataSet | null} + /** + * Get the current items + * @returns {vis.DataSet | null} */ ItemSet.prototype.getItems = function () { return this.itemsData; }; - /** - * Set groups - * @param {vis.DataSet} groups + /** + * Set groups + * @param {vis.DataSet} groups */ ItemSet.prototype.setGroups = function (groups) { var me = this, @@ -21341,17 +21460,17 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_change', { queue: true }); }; - /** - * Get the current groups - * @returns {vis.DataSet | null} groups + /** + * Get the current groups + * @returns {vis.DataSet | null} groups */ ItemSet.prototype.getGroups = function () { return this.groupsData; }; - /** - * Remove an item by its id - * @param {String | Number} id + /** + * Remove an item by its id + * @param {String | Number} id */ ItemSet.prototype.removeItem = function (id) { var item = this.itemsData.get(id), @@ -21370,21 +21489,21 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get the time of an item based on it's data and options.type - * @param {Object} itemData - * @returns {string} Returns the type - * @private + /** + * Get the time of an item based on it's data and options.type + * @param {Object} itemData + * @returns {string} Returns the type + * @private */ ItemSet.prototype._getType = function (itemData) { return itemData.type || this.options.type || (itemData.end ? 'range' : 'box'); }; - /** - * Get the group id for an item - * @param {Object} itemData - * @returns {string} Returns the groupId - * @private + /** + * Get the group id for an item + * @param {Object} itemData + * @returns {string} Returns the groupId + * @private */ ItemSet.prototype._getGroupId = function (itemData) { var type = this._getType(itemData); @@ -21395,10 +21514,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Handle updated items - * @param {Number[]} ids - * @protected + /** + * Handle updated items + * @param {Number[]} ids + * @protected */ ItemSet.prototype._onUpdate = function (ids) { var me = this; @@ -21447,17 +21566,17 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_change', { queue: true }); }; - /** - * Handle added items - * @param {Number[]} ids - * @protected + /** + * Handle added items + * @param {Number[]} ids + * @protected */ ItemSet.prototype._onAdd = ItemSet.prototype._onUpdate; - /** - * Handle removed items - * @param {Number[]} ids - * @protected + /** + * Handle removed items + * @param {Number[]} ids + * @protected */ ItemSet.prototype._onRemove = function (ids) { var count = 0; @@ -21477,9 +21596,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Update the order of item in all groups - * @private + /** + * Update the order of item in all groups + * @private */ ItemSet.prototype._order = function () { // reorder the items in all groups @@ -21489,19 +21608,19 @@ return /******/ (function(modules) { // webpackBootstrap }); }; - /** - * Handle updated groups - * @param {Number[]} ids - * @private + /** + * Handle updated groups + * @param {Number[]} ids + * @private */ ItemSet.prototype._onUpdateGroups = function (ids) { this._onAddGroups(ids); }; - /** - * Handle changed groups (added or updated) - * @param {Number[]} ids - * @private + /** + * Handle changed groups (added or updated) + * @param {Number[]} ids + * @private */ ItemSet.prototype._onAddGroups = function (ids) { var me = this; @@ -21525,6 +21644,7 @@ return /******/ (function(modules) { // webpackBootstrap me.groups[id] = group; // add items with this groupId to the new group + //TODO - must be recursive jobrian for (var itemId in me.items) { if (me.items.hasOwnProperty(itemId)) { var item = me.items[itemId]; @@ -21545,10 +21665,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_change', { queue: true }); }; - /** - * Handle removed groups - * @param {Number[]} ids - * @private + /** + * Handle removed groups + * @param {Number[]} ids + * @private */ ItemSet.prototype._onRemoveGroups = function (ids) { var groups = this.groups; @@ -21566,10 +21686,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_change', { queue: true }); }; - /** - * Reorder the groups if needed - * @return {boolean} changed - * @private + /** + * Reorder the groups if needed + * @return {boolean} changed + * @private */ ItemSet.prototype._orderGroups = function () { if (this.groupsData) { @@ -21602,10 +21722,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Reorder the nested groups - * @return {boolean} changed - * @private + /** + * Reorder the nested groups + * @return {boolean} changed + * @private */ ItemSet.prototype._orderNestedGroups = function (groupIds) { var newGroupIdsOrder = []; @@ -21615,6 +21735,7 @@ return /******/ (function(modules) { // webpackBootstrap if (!groupData.nestedInGroup) { newGroupIdsOrder.push(groupId); } + //must recursively sort groups - jobrian if (groupData.nestedGroups) { var nestedGroups = this.groupsData.get({ filter: function filter(nestedGroup) { @@ -21631,10 +21752,10 @@ return /******/ (function(modules) { // webpackBootstrap return newGroupIdsOrder; }; - /** - * Add a new item - * @param {Item} item - * @private + /** + * Add a new item + * @param {Item} item + * @private */ ItemSet.prototype._addItem = function (item) { this.items[item.id] = item; @@ -21652,11 +21773,11 @@ return /******/ (function(modules) { // webpackBootstrap if (group) group.add(item); }; - /** - * Update an existing item - * @param {Item} item - * @param {Object} itemData - * @private + /** + * Update an existing item + * @param {Item} item + * @param {Object} itemData + * @private */ ItemSet.prototype._updateItem = function (item, itemData) { // update the items data (will redraw the item when displayed) @@ -21671,11 +21792,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Delete an item from the ItemSet: remove it from the DOM, from the map - * with items, and from the map with visible items, and from the selection - * @param {Item} item - * @private + /** + * Delete an item from the ItemSet: remove it from the DOM, from the map + * with items, and from the map with visible items, and from the selection + * @param {Item} item + * @private */ ItemSet.prototype._removeItem = function (item) { // remove from DOM @@ -21692,11 +21813,11 @@ return /******/ (function(modules) { // webpackBootstrap item.parent && item.parent.remove(item); }; - /** - * Create an array containing all items being a range (having an end date) - * @param array - * @returns {Array} - * @private + /** + * Create an array containing all items being a range (having an end date) + * @param array + * @returns {Array} + * @private */ ItemSet.prototype._constructByEndArray = function (array) { var endArray = []; @@ -21709,15 +21830,15 @@ return /******/ (function(modules) { // webpackBootstrap return endArray; }; - /** - * Register the clicked item on touch, before dragStart is initiated. - * - * dragStart is initiated from a mousemove event, AFTER the mouse/touch is - * already moving. Therefore, the mouse/touch can sometimes be above an other - * DOM element than the item itself. - * - * @param {Event} event - * @private + /** + * Register the clicked item on touch, before dragStart is initiated. + * + * dragStart is initiated from a mousemove event, AFTER the mouse/touch is + * already moving. Therefore, the mouse/touch can sometimes be above an other + * DOM element than the item itself. + * + * @param {Event} event + * @private */ ItemSet.prototype._onTouch = function (event) { // store the touched item, used in _onDragStart @@ -21727,11 +21848,11 @@ return /******/ (function(modules) { // webpackBootstrap this.touchParams.itemProps = null; }; - /** - * Given an group id, returns the index it has. - * - * @param {Number} groupID - * @private + /** + * Given an group id, returns the index it has. + * + * @param {Number} groupID + * @private */ ItemSet.prototype._getGroupIndex = function (groupId) { for (var i = 0; i < this.groupIds.length; i++) { @@ -21739,10 +21860,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Start dragging the selected events - * @param {Event} event - * @private + /** + * Start dragging the selected events + * @param {Event} event + * @private */ ItemSet.prototype._onDragStart = function (event) { if (this.touchParams.itemIsDragging) { @@ -21816,10 +21937,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Start creating a new range item by dragging. - * @param {Event} event - * @private + /** + * Start creating a new range item by dragging. + * @param {Event} event + * @private */ ItemSet.prototype._onDragStartAddItem = function (event) { var snap = this.options.snap || null; @@ -21874,10 +21995,10 @@ return /******/ (function(modules) { // webpackBootstrap event.stopPropagation(); }; - /** - * Drag selected items - * @param {Event} event - * @private + /** + * Drag selected items + * @param {Event} event + * @private */ ItemSet.prototype._onDrag = function (event) { if (this.touchParams.itemProps) { @@ -22009,11 +22130,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Move an item to another group - * @param {Item} item - * @param {String | Number} groupId - * @private + /** + * Move an item to another group + * @param {Item} item + * @param {String | Number} groupId + * @private */ ItemSet.prototype._moveToGroup = function (item, groupId) { var group = this.groups[groupId]; @@ -22029,10 +22150,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * End of dragging selected items - * @param {Event} event - * @private + /** + * End of dragging selected items + * @param {Event} event + * @private */ ItemSet.prototype._onDragEnd = function (event) { this.touchParams.itemIsDragging = false; @@ -22089,18 +22210,20 @@ return /******/ (function(modules) { // webpackBootstrap groupsData = this.groupsData.getDataSet(); } - group.showNested = !group.showNested; + var nestingGroup = groupsData.get(group.groupId); + nestingGroup.showNested = !nestingGroup.showNested; var nestedGroups = groupsData.get(group.nestedGroups).map(function (nestedGroup) { if (nestedGroup.visible == undefined) { nestedGroup.visible = true; } - nestedGroup.visible = !!group.showNested; + nestedGroup.visible = !!nestingGroup.showNested; return nestedGroup; }); - groupsData.update(nestedGroups); - if (group.showNested) { + groupsData.update(nestedGroups.concat(nestingGroup)); + + if (nestingGroup.showNested) { util.removeClassName(group.dom.label, 'collapsed'); util.addClassName(group.dom.label, 'expanded'); } else { @@ -22283,10 +22406,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Handle selecting/deselecting an item when tapping it - * @param {Event} event - * @private + /** + * Handle selecting/deselecting an item when tapping it + * @param {Event} event + * @private */ ItemSet.prototype._onSelectItem = function (event) { if (!this.options.selectable) return; @@ -22316,10 +22439,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Handle hovering an item - * @param {Event} event - * @private + /** + * Handle hovering an item + * @param {Event} event + * @private */ ItemSet.prototype._onMouseOver = function (event) { var item = this.itemFromTarget(event); @@ -22390,10 +22513,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Handle mousewheel - * @param event - * @private + /** + * Handle mousewheel + * @param event + * @private */ ItemSet.prototype._onMouseWheel = function (event) { if (this.touchParams.itemIsDragging) { @@ -22401,10 +22524,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Handle updates of an item on double tap - * @param event - * @private + /** + * Handle updates of an item on double tap + * @param event + * @private */ ItemSet.prototype._onUpdateItem = function (item) { if (!this.options.selectable) return; @@ -22423,10 +22546,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Handle creation of an item on double tap - * @param event - * @private + /** + * Handle creation of an item on double tap + * @param event + * @private */ ItemSet.prototype._onAddItem = function (event) { if (!this.options.selectable) return; @@ -22496,10 +22619,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Handle selecting/deselecting multiple items when holding an item - * @param {Event} event - * @private + /** + * Handle selecting/deselecting multiple items when holding an item + * @param {Event} event + * @private */ ItemSet.prototype._onMultiSelectItem = function (event) { if (!this.options.selectable) return; @@ -22568,11 +22691,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Calculate the time range of a list of items - * @param {Array.} itemsData - * @return {{min: Date, max: Date}} Returns the range of the provided items - * @private + /** + * Calculate the time range of a list of items + * @param {Array.} itemsData + * @return {{min: Date, max: Date}} Returns the range of the provided items + * @private */ ItemSet._getItemRange = function (itemsData) { var max = null; @@ -22600,11 +22723,11 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Find an item from an element: - * searches for the attribute 'timeline-item' in the element's tree - * @param {HTMLElement} element - * @return {Item | null} item + /** + * Find an item from an element: + * searches for the attribute 'timeline-item' in the element's tree + * @param {HTMLElement} element + * @return {Item | null} item */ ItemSet.prototype.itemFromElement = function (element) { var cur = element; @@ -22618,31 +22741,31 @@ return /******/ (function(modules) { // webpackBootstrap return null; }; - /** - * Find an item from an event target: - * searches for the attribute 'timeline-item' in the event target's element tree - * @param {Event} event - * @return {Item | null} item + /** + * Find an item from an event target: + * searches for the attribute 'timeline-item' in the event target's element tree + * @param {Event} event + * @return {Item | null} item */ ItemSet.prototype.itemFromTarget = function (event) { return this.itemFromElement(event.target); }; - /** - * Find an item from an event's related target: - * searches for the attribute 'timeline-item' in the related target's element tree - * @param {Event} event - * @return {Item | null} item + /** + * Find an item from an event's related target: + * searches for the attribute 'timeline-item' in the related target's element tree + * @param {Event} event + * @return {Item | null} item */ ItemSet.prototype.itemFromRelatedTarget = function (event) { return this.itemFromElement(event.relatedTarget); }; - /** - * Find the Group from an event target: - * searches for the attribute 'timeline-group' in the event target's element tree - * @param {Event} event - * @return {Group | null} group + /** + * Find the Group from an event target: + * searches for the attribute 'timeline-group' in the event target's element tree + * @param {Event} event + * @return {Group | null} group */ ItemSet.prototype.groupFromTarget = function (event) { var clientY = event.center ? event.center.y : event.clientY; @@ -22677,11 +22800,11 @@ return /******/ (function(modules) { // webpackBootstrap return null; }; - /** - * Find the ItemSet from an event target: - * searches for the attribute 'timeline-itemset' in the event target's element tree - * @param {Event} event - * @return {ItemSet | null} item + /** + * Find the ItemSet from an event target: + * searches for the attribute 'timeline-itemset' in the event target's element tree + * @param {Event} event + * @return {ItemSet | null} item */ ItemSet.itemSetFromTarget = function (event) { var target = event.target; @@ -22695,14 +22818,14 @@ return /******/ (function(modules) { // webpackBootstrap return null; }; - /** - * Clone the data of an item, and "normalize" it: convert the start and end date - * to the type (Date, Moment, ...) configured in the DataSet. If not configured, - * start and end are converted to Date. - * @param {Object} itemData, typically `item.data` - * @param {string} [type] Optional Date type. If not provided, the type from the DataSet is taken - * @return {Object} The cloned object - * @private + /** + * Clone the data of an item, and "normalize" it: convert the start and end date + * to the type (Date, Moment, ...) configured in the DataSet. If not configured, + * start and end are converted to Date. + * @param {Object} itemData, typically `item.data` + * @param {string} [type] Optional Date type. If not provided, the type from the DataSet is taken + * @return {Object} The cloned object + * @private */ ItemSet.prototype._cloneItemData = function (itemData, type) { var clone = util.extend({}, itemData); @@ -22734,31 +22857,31 @@ return /******/ (function(modules) { // webpackBootstrap var DateUtil = __webpack_require__(122); var util = __webpack_require__(1); - /** - * @constructor TimeStep - * The class TimeStep is an iterator for dates. You provide a start date and an - * end date. The class itself determines the best scale (step size) based on the - * provided start Date, end Date, and minimumStep. - * - * If minimumStep is provided, the step size is chosen as close as possible - * to the minimumStep but larger than minimumStep. If minimumStep is not - * provided, the scale is set to 1 DAY. - * The minimumStep should correspond with the onscreen size of about 6 characters - * - * Alternatively, you can set a scale by hand. - * After creation, you can initialize the class by executing first(). Then you - * can iterate from the start date to the end date via next(). You can check if - * the end date is reached with the function hasNext(). After each step, you can - * retrieve the current date via getCurrent(). - * The TimeStep has scales ranging from milliseconds, seconds, minutes, hours, - * days, to years. - * - * Version: 1.2 - * - * @param {Date} [start] The start date, for example new Date(2010, 9, 21) - * or new Date(2010, 9, 21, 23, 45, 00) - * @param {Date} [end] The end date - * @param {Number} [minimumStep] Optional. Minimum step size in milliseconds + /** + * @constructor TimeStep + * The class TimeStep is an iterator for dates. You provide a start date and an + * end date. The class itself determines the best scale (step size) based on the + * provided start Date, end Date, and minimumStep. + * + * If minimumStep is provided, the step size is chosen as close as possible + * to the minimumStep but larger than minimumStep. If minimumStep is not + * provided, the scale is set to 1 DAY. + * The minimumStep should correspond with the onscreen size of about 6 characters + * + * Alternatively, you can set a scale by hand. + * After creation, you can initialize the class by executing first(). Then you + * can iterate from the start date to the end date via next(). You can check if + * the end date is reached with the function hasNext(). After each step, you can + * retrieve the current date via getCurrent(). + * The TimeStep has scales ranging from milliseconds, seconds, minutes, hours, + * days, to years. + * + * Version: 1.2 + * + * @param {Date} [start] The start date, for example new Date(2010, 9, 21) + * or new Date(2010, 9, 21, 23, 45, 00) + * @param {Date} [end] The end date + * @param {Number} [minimumStep] Optional. Minimum step size in milliseconds */ function TimeStep(start, end, minimumStep, hiddenDates) { this.moment = moment; @@ -22816,10 +22939,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set custom constructor function for moment. Can be used to set dates - * to UTC or to set a utcOffset. - * @param {function} moment + /** + * Set custom constructor function for moment. Can be used to set dates + * to UTC or to set a utcOffset. + * @param {function} moment */ TimeStep.prototype.setMoment = function (moment) { this.moment = moment; @@ -22830,26 +22953,26 @@ return /******/ (function(modules) { // webpackBootstrap this._end = this.moment(this._end.valueOf()); }; - /** - * Set custom formatting for the minor an major labels of the TimeStep. - * Both `minorLabels` and `majorLabels` are an Object with properties: - * 'millisecond', 'second', 'minute', 'hour', 'weekday', 'day', 'week', 'month', 'year'. - * @param {{minorLabels: Object, majorLabels: Object}} format + /** + * Set custom formatting for the minor an major labels of the TimeStep. + * Both `minorLabels` and `majorLabels` are an Object with properties: + * 'millisecond', 'second', 'minute', 'hour', 'weekday', 'day', 'week', 'month', 'year'. + * @param {{minorLabels: Object, majorLabels: Object}} format */ TimeStep.prototype.setFormat = function (format) { var defaultFormat = util.deepExtend({}, TimeStep.FORMAT); this.format = util.deepExtend(defaultFormat, format); }; - /** - * Set a new range - * If minimumStep is provided, the step size is chosen as close as possible - * to the minimumStep but larger than minimumStep. If minimumStep is not - * provided, the scale is set to 1 DAY. - * The minimumStep should correspond with the onscreen size of about 6 characters - * @param {Date} [start] The start date and time. - * @param {Date} [end] The end date and time. - * @param {int} [minimumStep] Optional. Minimum step size in milliseconds + /** + * Set a new range + * If minimumStep is provided, the step size is chosen as close as possible + * to the minimumStep but larger than minimumStep. If minimumStep is not + * provided, the scale is set to 1 DAY. + * The minimumStep should correspond with the onscreen size of about 6 characters + * @param {Date} [start] The start date and time. + * @param {Date} [end] The end date and time. + * @param {int} [minimumStep] Optional. Minimum step size in milliseconds */ TimeStep.prototype.setRange = function (start, end, minimumStep) { if (!(start instanceof Date) || !(end instanceof Date)) { @@ -22864,17 +22987,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set the range iterator to the start date. + /** + * Set the range iterator to the start date. */ TimeStep.prototype.start = function () { this.current = this._start.clone(); this.roundToMinor(); }; - /** - * Round the current date to the first minor date value - * This must be executed once when the current date is set to start Date + /** + * Round the current date to the first minor date value + * This must be executed once when the current date is set to start Date */ TimeStep.prototype.roundToMinor = function () { // round to floor @@ -22929,16 +23052,16 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Check if the there is a next step - * @return {boolean} true if the current date has not passed the end date + /** + * Check if the there is a next step + * @return {boolean} true if the current date has not passed the end date */ TimeStep.prototype.hasNext = function () { return this.current.valueOf() <= this._end.valueOf(); }; - /** - * Do the next step + /** + * Do the next step */ TimeStep.prototype.next = function () { var prev = this.current.valueOf(); @@ -23031,25 +23154,25 @@ return /******/ (function(modules) { // webpackBootstrap DateUtil.stepOverHiddenDates(this.moment, this, prev); }; - /** - * Get the current datetime - * @return {Moment} current The current date + /** + * Get the current datetime + * @return {Moment} current The current date */ TimeStep.prototype.getCurrent = function () { return this.current; }; - /** - * Set a custom scale. Autoscaling will be disabled. - * For example setScale('minute', 5) will result - * in minor steps of 5 minutes, and major steps of an hour. - * - * @param {{scale: string, step: number}} params - * An object containing two properties: - * - A string 'scale'. Choose from 'millisecond', 'second', - * 'minute', 'hour', 'weekday', 'day', 'week', 'month', 'year'. - * - A number 'step'. A step size, by default 1. - * Choose for example 1, 2, 5, or 10. + /** + * Set a custom scale. Autoscaling will be disabled. + * For example setScale('minute', 5) will result + * in minor steps of 5 minutes, and major steps of an hour. + * + * @param {{scale: string, step: number}} params + * An object containing two properties: + * - A string 'scale'. Choose from 'millisecond', 'second', + * 'minute', 'hour', 'weekday', 'day', 'week', 'month', 'year'. + * - A number 'step'. A step size, by default 1. + * Choose for example 1, 2, 5, or 10. */ TimeStep.prototype.setScale = function (params) { if (params && typeof params.scale == 'string') { @@ -23059,17 +23182,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Enable or disable autoscaling - * @param {boolean} enable If true, autoascaling is set true + /** + * Enable or disable autoscaling + * @param {boolean} enable If true, autoascaling is set true */ TimeStep.prototype.setAutoScale = function (enable) { this.autoScale = enable; }; - /** - * Automatically determine the scale that bests fits the provided minimum step - * @param {Number} [minimumStep] The minimum step size in milliseconds + /** + * Automatically determine the scale that bests fits the provided minimum step + * @param {Number} [minimumStep] The minimum step size in milliseconds */ TimeStep.prototype.setMinimumStep = function (minimumStep) { if (minimumStep == undefined) { @@ -23176,15 +23299,15 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Snap a date to a rounded value. - * The snap intervals are dependent on the current scale and step. - * Static function - * @param {Date} date the date to be snapped. - * @param {string} scale Current scale, can be 'millisecond', 'second', - * 'minute', 'hour', 'weekday, 'day', 'week', 'month', 'year'. - * @param {number} step Current step (1, 2, 4, 5, ... - * @return {Date} snappedDate + /** + * Snap a date to a rounded value. + * The snap intervals are dependent on the current scale and step. + * Static function + * @param {Date} date the date to be snapped. + * @param {string} scale Current scale, can be 'millisecond', 'second', + * 'minute', 'hour', 'weekday, 'day', 'week', 'month', 'year'. + * @param {number} step Current step (1, 2, 4, 5, ... + * @return {Date} snappedDate */ TimeStep.snap = function (date, scale, step) { var clone = moment(date); @@ -23292,10 +23415,10 @@ return /******/ (function(modules) { // webpackBootstrap return clone; }; - /** - * Check if the current value is a major value (for example when the step - * is DAY, a major value is each first day of the MONTH) - * @return {boolean} true if current date is major, else false. + /** + * Check if the current value is a major value (for example when the step + * is DAY, a major value is each first day of the MONTH) + * @return {boolean} true if current date is major, else false. */ TimeStep.prototype.isMajor = function () { if (this.switchedYear == true) { @@ -23362,11 +23485,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Returns formatted text for the minor axislabel, depending on the current - * date and the scale. For example when scale is MINUTE, the current time is - * formatted as "hh:mm". - * @param {Date} [date] custom date. if not provided, current date is taken + /** + * Returns formatted text for the minor axislabel, depending on the current + * date and the scale. For example when scale is MINUTE, the current time is + * formatted as "hh:mm". + * @param {Date} [date] custom date. if not provided, current date is taken */ TimeStep.prototype.getLabelMinor = function (date) { if (date == undefined) { @@ -23392,11 +23515,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Returns formatted text for the major axis label, depending on the current - * date and the scale. For example when scale is MINUTE, the major scale is - * hours, and the hour will be formatted as "hh". - * @param {Date} [date] custom date. if not provided, current date is taken + /** + * Returns formatted text for the major axis label, depending on the current + * date and the scale. For example when scale is MINUTE, the major scale is + * hours, and the hour will be formatted as "hh". + * @param {Date} [date] custom date. if not provided, current date is taken */ TimeStep.prototype.getLabelMajor = function (date) { if (date == undefined) { @@ -23520,11 +23643,11 @@ return /******/ (function(modules) { // webpackBootstrap var stack = __webpack_require__(127); var RangeItem = __webpack_require__(128); - /** - * @constructor Group - * @param {Number | String} groupId - * @param {Object} data - * @param {ItemSet} itemSet + /** + * @constructor Group + * @param {Number | String} groupId + * @param {Object} data + * @param {ItemSet} itemSet */ function Group(groupId, data, itemSet) { this.groupId = groupId; @@ -23573,9 +23696,9 @@ return /******/ (function(modules) { // webpackBootstrap this.setData(data); } - /** - * Create DOM elements for the group - * @private + /** + * Create DOM elements for the group + * @private */ Group.prototype._create = function () { var label = document.createElement('div'); @@ -23612,9 +23735,9 @@ return /******/ (function(modules) { // webpackBootstrap this.dom.background.appendChild(this.dom.marker); }; - /** - * Set the group data for this group - * @param {Object} data Group data, can contain properties content and className + /** + * Set the group data for this group + * @param {Object} data Group data, can contain properties content and className */ Group.prototype.setData = function (data) { // update contents @@ -23717,20 +23840,20 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get the width of the group label - * @return {number} width + /** + * Get the width of the group label + * @return {number} width */ Group.prototype.getLabelWidth = function () { return this.props.label.width; }; - /** - * Repaint this group - * @param {{start: number, end: number}} range - * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin - * @param {boolean} [forceRestack=false] Force restacking of all items - * @return {boolean} Returns true if the group is resized + /** + * Repaint this group + * @param {{start: number, end: number}} range + * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin + * @param {boolean} [forceRestack=false] Force restacking of all items + * @return {boolean} Returns true if the group is resized */ Group.prototype.redraw = function (range, margin, forceRestack) { var resized = false; @@ -23835,9 +23958,9 @@ return /******/ (function(modules) { // webpackBootstrap return resized; }; - /** - * recalculate the height of the subgroups - * @private + /** + * recalculate the height of the subgroups + * @private */ Group.prototype._calculateSubGroupHeights = function (margin) { if ((0, _keys2['default'])(this.subgroups).length > 0) { @@ -23854,20 +23977,20 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * check if group is visible - * @private + /** + * check if group is visible + * @private */ Group.prototype._isGroupVisible = function (range, margin) { var isVisible = this.top <= range.body.domProps.centerContainer.height - range.body.domProps.scrollTop + margin.axis && this.top + this.height + margin.axis >= -range.body.domProps.scrollTop; return isVisible; }; - /** - * recalculate the height of the group - * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin - * @returns {number} Returns the height - * @private + /** + * recalculate the height of the group + * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin + * @returns {number} Returns the height + * @private */ Group.prototype._calculateHeight = function (margin) { // recalculate the height of the group @@ -23897,8 +24020,8 @@ return /******/ (function(modules) { // webpackBootstrap return height; }; - /** - * Show this group: attach to the DOM + /** + * Show this group: attach to the DOM */ Group.prototype.show = function () { if (!this.dom.label.parentNode) { @@ -23918,8 +24041,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Hide this group: remove from the DOM + /** + * Hide this group: remove from the DOM */ Group.prototype.hide = function () { var label = this.dom.label; @@ -23943,9 +24066,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Add an item to the group - * @param {Item} item + /** + * Add an item to the group + * @param {Item} item */ Group.prototype.add = function (item) { this.items[item.id] = item; @@ -24044,9 +24167,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Remove an item from the group - * @param {Item} item + /** + * Remove an item from the group + * @param {Item} item */ Group.prototype.remove = function (item) { delete this.items[item.id]; @@ -24082,16 +24205,16 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Remove an item from the corresponding DataSet - * @param {Item} item + /** + * Remove an item from the corresponding DataSet + * @param {Item} item */ Group.prototype.removeFromDataSet = function (item) { this.itemSet.removeItem(item.id); }; - /** - * Reorder the items + /** + * Reorder the items */ Group.prototype.order = function () { var array = util.toArray(this.items); @@ -24113,13 +24236,13 @@ return /******/ (function(modules) { // webpackBootstrap stack.orderByEnd(this.orderedItems.byEnd); }; - /** - * Update the visible items - * @param {{byStart: Item[], byEnd: Item[]}} orderedItems All items ordered by start date and by end date - * @param {Item[]} visibleItems The previously visible items. - * @param {{start: number, end: number}} range Visible range - * @return {Item[]} visibleItems The new visible items. - * @private + /** + * Update the visible items + * @param {{byStart: Item[], byEnd: Item[]}} orderedItems All items ordered by start date and by end date + * @param {Item[]} visibleItems The previously visible items. + * @param {{start: number, end: number}} range Visible range + * @return {Item[]} visibleItems The new visible items. + * @private */ Group.prototype._updateItemsInRange = function (orderedItems, oldVisibleItems, range) { var visibleItems = []; @@ -24213,16 +24336,16 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * this function is very similar to the _checkIfInvisible() but it does not - * return booleans, hides the item if it should not be seen and always adds to - * the visibleItems. - * this one is for brute forcing and hiding. - * - * @param {Item} item - * @param {Array} visibleItems - * @param {{start:number, end:number}} range - * @private + /** + * this function is very similar to the _checkIfInvisible() but it does not + * return booleans, hides the item if it should not be seen and always adds to + * the visibleItems. + * this one is for brute forcing and hiding. + * + * @param {Item} item + * @param {Array} visibleItems + * @param {{start:number, end:number}} range + * @private */ Group.prototype._checkIfVisible = function (item, visibleItems, range) { if (item.isVisible(range)) { @@ -24235,16 +24358,16 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * this function is very similar to the _checkIfInvisible() but it does not - * return booleans, hides the item if it should not be seen and always adds to - * the visibleItems. - * this one is for brute forcing and hiding. - * - * @param {Item} item - * @param {Array} visibleItems - * @param {{start:number, end:number}} range - * @private + /** + * this function is very similar to the _checkIfInvisible() but it does not + * return booleans, hides the item if it should not be seen and always adds to + * the visibleItems. + * this one is for brute forcing and hiding. + * + * @param {Item} item + * @param {Array} visibleItems + * @param {{start:number, end:number}} range + * @private */ Group.prototype._checkIfVisibleWithReference = function (item, visibleItems, visibleItemsLookup, range) { if (item.isVisible(range)) { @@ -24274,9 +24397,9 @@ return /******/ (function(modules) { // webpackBootstrap // Utility functions for ordering and stacking of items var EPSILON = 0.001; // used when checking collisions, to prevent round-off errors - /** - * Order items by their start data - * @param {Item[]} items + /** + * Order items by their start data + * @param {Item[]} items */ exports.orderByStart = function (items) { items.sort(function (a, b) { @@ -24284,10 +24407,10 @@ return /******/ (function(modules) { // webpackBootstrap }); }; - /** - * Order items by their end date. If they have no end date, their start date - * is used. - * @param {Item[]} items + /** + * Order items by their end date. If they have no end date, their start date + * is used. + * @param {Item[]} items */ exports.orderByEnd = function (items) { items.sort(function (a, b) { @@ -24298,16 +24421,16 @@ return /******/ (function(modules) { // webpackBootstrap }); }; - /** - * Adjust vertical positions of the items such that they don't overlap each - * other. - * @param {Item[]} items - * All visible items - * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin - * Margins between items and between items and the axis. - * @param {boolean} [force=false] - * If true, all items will be repositioned. If false (default), only - * items having a top===null will be re-stacked + /** + * Adjust vertical positions of the items such that they don't overlap each + * other. + * @param {Item[]} items + * All visible items + * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin + * Margins between items and between items and the axis. + * @param {boolean} [force=false] + * If true, all items will be repositioned. If false (default), only + * items having a top===null will be re-stacked */ exports.stack = function (items, margin, force) { if (force) { @@ -24345,14 +24468,14 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Adjust vertical positions of the items without stacking them - * @param {Item[]} items - * All visible items - * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin - * Margins between items and between items and the axis. - * @param {subgroups[]} subgroups - * All subgroups + /** + * Adjust vertical positions of the items without stacking them + * @param {Item[]} items + * All visible items + * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin + * Margins between items and between items and the axis. + * @param {subgroups[]} subgroups + * All subgroups */ exports.nostack = function (items, margin, subgroups, stackSubgroups) { for (var i = 0; i < items.length; i++) { @@ -24376,13 +24499,13 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Adjust vertical positions of the subgroups such that they don't overlap each - * other. - * @param {subgroups[]} subgroups - * All subgroups - * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin - * Margins between items and between items and the axis. + /** + * Adjust vertical positions of the subgroups such that they don't overlap each + * other. + * @param {subgroups[]} subgroups + * All subgroups + * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin + * Margins between items and between items and the axis. */ exports.stackSubgroups = function (items, margin, subgroups) { for (var subgroup in subgroups) { @@ -24414,16 +24537,16 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Test if the two provided items collide - * The items must have parameters left, width, top, and height. - * @param {Item} a The first item - * @param {Item} b The second item - * @param {{horizontal: number, vertical: number}} margin - * An object containing a horizontal and vertical - * minimum required margin. - * @param {boolean} rtl - * @return {boolean} true if a and b collide, else false + /** + * Test if the two provided items collide + * The items must have parameters left, width, top, and height. + * @param {Item} a The first item + * @param {Item} b The second item + * @param {{horizontal: number, vertical: number}} margin + * An object containing a horizontal and vertical + * minimum required margin. + * @param {boolean} rtl + * @return {boolean} true if a and b collide, else false */ exports.collision = function (a, b, margin, rtl) { if (rtl) { @@ -24433,12 +24556,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Test if the two provided objects collide - * The objects must have parameters start, end, top, and height. - * @param {Object} a The first Object - * @param {Object} b The second Object - * @return {boolean} true if a and b collide, else false + /** + * Test if the two provided objects collide + * The objects must have parameters start, end, top, and height. + * @param {Object} a The first Object + * @param {Object} b The second Object + * @return {boolean} true if a and b collide, else false */ exports.collisionByTimes = function (a, b) { return a.start <= b.start && a.end >= b.start && a.top < b.top + b.height && a.top + a.height > b.top || b.start <= a.start && b.end >= a.start && b.top < a.top + a.height && b.top + b.height > a.top; @@ -24453,15 +24576,15 @@ return /******/ (function(modules) { // webpackBootstrap var Hammer = __webpack_require__(113); var Item = __webpack_require__(129); - /** - * @constructor RangeItem - * @extends Item - * @param {Object} data Object containing parameters start, end - * content, className. - * @param {{toScreen: function, toTime: function}} conversion - * Conversion functions from time to screen and vice versa - * @param {Object} [options] Configuration options - * // TODO: describe options + /** + * @constructor RangeItem + * @extends Item + * @param {Object} data Object containing parameters start, end + * content, className. + * @param {{toScreen: function, toTime: function}} conversion + * Conversion functions from time to screen and vice versa + * @param {Object} [options] Configuration options + * // TODO: describe options */ function RangeItem(data, conversion, options) { this.props = { @@ -24488,18 +24611,18 @@ return /******/ (function(modules) { // webpackBootstrap RangeItem.prototype.baseClassName = 'vis-item vis-range'; - /** - * Check whether this item is visible inside given range - * @returns {{start: Number, end: Number}} range with a timestamp for start and end - * @returns {boolean} True if visible + /** + * Check whether this item is visible inside given range + * @returns {{start: Number, end: Number}} range with a timestamp for start and end + * @returns {boolean} True if visible */ RangeItem.prototype.isVisible = function (range) { // determine visibility return this.data.start < range.end && this.data.end > range.start; }; - /** - * Repaint the item + /** + * Repaint the item */ RangeItem.prototype.redraw = function () { var dom = this.dom; @@ -24582,9 +24705,9 @@ return /******/ (function(modules) { // webpackBootstrap this._repaintDragRight(); }; - /** - * Show the item in the DOM (when not already visible). The items DOM will - * be created when needed. + /** + * Show the item in the DOM (when not already visible). The items DOM will + * be created when needed. */ RangeItem.prototype.show = function () { if (!this.displayed) { @@ -24592,9 +24715,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Hide the item from the DOM (when visible) - * @return {Boolean} changed + /** + * Hide the item from the DOM (when visible) + * @return {Boolean} changed */ RangeItem.prototype.hide = function () { if (this.displayed) { @@ -24608,14 +24731,14 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Reposition the item horizontally - * @param {boolean} [limitSize=true] If true (default), the width of the range - * item will be limited, as the browser cannot - * display very wide divs. This means though - * that the applied left and width may - * not correspond to the ranges start and end - * @Override + /** + * Reposition the item horizontally + * @param {boolean} [limitSize=true] If true (default), the width of the range + * item will be limited, as the browser cannot + * display very wide divs. This means though + * that the applied left and width may + * not correspond to the ranges start and end + * @Override */ RangeItem.prototype.repositionX = function (limitSize) { var parentWidth = this.parent.width; @@ -24718,9 +24841,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Reposition the item vertically - * @Override + /** + * Reposition the item vertically + * @Override */ RangeItem.prototype.repositionY = function () { var orientation = this.options.orientation.item; @@ -24733,9 +24856,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Repaint a drag area on the left side of the range when the range is selected - * @protected + /** + * Repaint a drag area on the left side of the range when the range is selected + * @protected */ RangeItem.prototype._repaintDragLeft = function () { if ((this.selected || this.options.itemsAlwaysDraggable.range) && this.options.editable.updateTime && !this.dom.dragLeft) { @@ -24755,9 +24878,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Repaint a drag area on the right side of the range when the range is selected - * @protected + /** + * Repaint a drag area on the right side of the range when the range is selected + * @protected */ RangeItem.prototype._repaintDragRight = function () { if ((this.selected || this.options.itemsAlwaysDraggable.range) && this.options.editable.updateTime && !this.dom.dragRight) { @@ -24799,14 +24922,14 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); var moment = __webpack_require__(82); - /** - * @constructor Item - * @param {Object} data Object containing (optional) parameters type, - * start, end, content, group, className. - * @param {{toScreen: function, toTime: function}} conversion - * Conversion functions from time to screen and vice versa - * @param {Object} options Configuration options - * // TODO: describe available options + /** + * @constructor Item + * @param {Object} data Object containing (optional) parameters type, + * start, end, content, group, className. + * @param {{toScreen: function, toTime: function}} conversion + * Conversion functions from time to screen and vice versa + * @param {Object} options Configuration options + * // TODO: describe available options */ function Item(data, conversion, options) { this.id = null; @@ -24832,8 +24955,8 @@ return /******/ (function(modules) { // webpackBootstrap Item.prototype.stack = true; - /** - * Select current item + /** + * Select current item */ Item.prototype.select = function () { this.selected = true; @@ -24841,8 +24964,8 @@ return /******/ (function(modules) { // webpackBootstrap if (this.displayed) this.redraw(); }; - /** - * Unselect current item + /** + * Unselect current item */ Item.prototype.unselect = function () { this.selected = false; @@ -24850,10 +24973,10 @@ return /******/ (function(modules) { // webpackBootstrap if (this.displayed) this.redraw(); }; - /** - * Set data for the item. Existing data will be updated. The id should not - * be changed. When the item is displayed, it will be redrawn immediately. - * @param {Object} data + /** + * Set data for the item. Existing data will be updated. The id should not + * be changed. When the item is displayed, it will be redrawn immediately. + * @param {Object} data */ Item.prototype.setData = function (data) { var groupChanged = data.group != undefined && this.data.group != data.group; @@ -24873,9 +24996,9 @@ return /******/ (function(modules) { // webpackBootstrap if (this.displayed) this.redraw(); }; - /** - * Set a parent for the item - * @param {Group} parent + /** + * Set a parent for the item + * @param {Group} parent */ Item.prototype.setParent = function (parent) { if (this.displayed) { @@ -24889,55 +25012,55 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Check whether this item is visible inside given range - * @returns {{start: Number, end: Number}} range with a timestamp for start and end - * @returns {boolean} True if visible + /** + * Check whether this item is visible inside given range + * @returns {{start: Number, end: Number}} range with a timestamp for start and end + * @returns {boolean} True if visible */ Item.prototype.isVisible = function (range) { return false; }; - /** - * Show the Item in the DOM (when not already visible) - * @return {Boolean} changed + /** + * Show the Item in the DOM (when not already visible) + * @return {Boolean} changed */ Item.prototype.show = function () { return false; }; - /** - * Hide the Item from the DOM (when visible) - * @return {Boolean} changed + /** + * Hide the Item from the DOM (when visible) + * @return {Boolean} changed */ Item.prototype.hide = function () { return false; }; - /** - * Repaint the item + /** + * Repaint the item */ Item.prototype.redraw = function () { // should be implemented by the item }; - /** - * Reposition the Item horizontally + /** + * Reposition the Item horizontally */ Item.prototype.repositionX = function () { // should be implemented by the item }; - /** - * Reposition the Item vertically + /** + * Reposition the Item vertically */ Item.prototype.repositionY = function () { // should be implemented by the item }; - /** - * Repaint a drag area on the center of the item when the item is selected - * @protected + /** + * Repaint a drag area on the center of the item when the item is selected + * @protected */ Item.prototype._repaintDragCenter = function () { if (this.selected && this.options.editable.updateTime && !this.dom.dragCenter) { @@ -24983,10 +25106,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Repaint a delete button on the top right of the item when the item is selected - * @param {HTMLElement} anchor - * @protected + /** + * Repaint a delete button on the top right of the item when the item is selected + * @param {HTMLElement} anchor + * @protected */ Item.prototype._repaintDeleteButton = function (anchor) { var editable = (this.options.editable.overrideItems || this.editable == null) && this.options.editable.remove || !this.options.editable.overrideItems && this.editable != null && this.editable.remove; @@ -25021,10 +25144,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Repaint a onChange tooltip on the top right of the item when the item is selected - * @param {HTMLElement} anchor - * @protected + /** + * Repaint a onChange tooltip on the top right of the item when the item is selected + * @param {HTMLElement} anchor + * @protected */ Item.prototype._repaintOnItemUpdateTimeTooltip = function (anchor) { if (!this.options.tooltipOnItemUpdateTime) return; @@ -25100,10 +25223,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set HTML contents for the item - * @param {Element} element HTML element to fill with the contents - * @private + /** + * Set HTML contents for the item + * @param {Element} element HTML element to fill with the contents + * @private */ Item.prototype._updateContents = function (element) { var content; @@ -25173,10 +25296,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Process dataAttributes timeline option and set as data- attributes on dom.content - * @param {Element} element HTML element to which the attributes will be attached - * @private + /** + * Process dataAttributes timeline option and set as data- attributes on dom.content + * @param {Element} element HTML element to which the attributes will be attached + * @private */ Item.prototype._updateDataAttributes = function (element) { if (this.options.dataAttributes && this.options.dataAttributes.length > 0) { @@ -25203,10 +25326,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Update custom styles of the element - * @param element - * @private + /** + * Update custom styles of the element + * @param element + * @private */ Item.prototype._updateStyle = function (element) { // remove old styles @@ -25222,11 +25345,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Stringify the items contents - * @param {string | Element | undefined} content - * @returns {string | undefined} - * @private + /** + * Stringify the items contents + * @param {string | Element | undefined} content + * @returns {string | undefined} + * @private */ Item.prototype._contentToString = function (content) { if (typeof content === 'string') return content; @@ -25234,8 +25357,8 @@ return /******/ (function(modules) { // webpackBootstrap return content; }; - /** - * Update the editability of this item. + /** + * Update the editability of this item. */ Item.prototype._updateEditStatus = function () { if (this.options) { @@ -25269,25 +25392,25 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Return the width of the item left from its start date - * @return {number} + /** + * Return the width of the item left from its start date + * @return {number} */ Item.prototype.getWidthLeft = function () { return 0; }; - /** - * Return the width of the item right from the max of its start and end date - * @return {number} + /** + * Return the width of the item right from the max of its start and end date + * @return {number} */ Item.prototype.getWidthRight = function () { return 0; }; - /** - * Return the title of the item - * @return {string | undefined} + /** + * Return the title of the item + * @return {string | undefined} */ Item.prototype.getTitle = function () { return this.data.title; @@ -25310,11 +25433,11 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); var Group = __webpack_require__(126); - /** - * @constructor BackgroundGroup - * @param {Number | String} groupId - * @param {Object} data - * @param {ItemSet} itemSet + /** + * @constructor BackgroundGroup + * @param {Number | String} groupId + * @param {Object} data + * @param {ItemSet} itemSet */ function BackgroundGroup(groupId, data, itemSet) { Group.call(this, groupId, data, itemSet); @@ -25327,12 +25450,12 @@ return /******/ (function(modules) { // webpackBootstrap BackgroundGroup.prototype = (0, _create2['default'])(Group.prototype); - /** - * Repaint this group - * @param {{start: number, end: number}} range - * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin - * @param {boolean} [forceRestack=false] Force restacking of all items - * @return {boolean} Returns true if the group is resized + /** + * Repaint this group + * @param {{start: number, end: number}} range + * @param {{item: {horizontal: number, vertical: number}, axis: number}} margin + * @param {boolean} [forceRestack=false] Force restacking of all items + * @return {boolean} Returns true if the group is resized */ BackgroundGroup.prototype.redraw = function (range, margin, forceRestack) { var resized = false; @@ -25354,8 +25477,8 @@ return /******/ (function(modules) { // webpackBootstrap return resized; }; - /** - * Show this group: attach to the DOM + /** + * Show this group: attach to the DOM */ BackgroundGroup.prototype.show = function () { if (!this.dom.background.parentNode) { @@ -25374,15 +25497,15 @@ return /******/ (function(modules) { // webpackBootstrap var Item = __webpack_require__(129); var util = __webpack_require__(1); - /** - * @constructor BoxItem - * @extends Item - * @param {Object} data Object containing parameters start - * content, className. - * @param {{toScreen: function, toTime: function}} conversion - * Conversion functions from time to screen and vice versa - * @param {Object} [options] Configuration options - * // TODO: describe available options + /** + * @constructor BoxItem + * @extends Item + * @param {Object} data Object containing parameters start + * content, className. + * @param {{toScreen: function, toTime: function}} conversion + * Conversion functions from time to screen and vice versa + * @param {Object} [options] Configuration options + * // TODO: describe available options */ function BoxItem(data, conversion, options) { this.props = { @@ -25408,10 +25531,10 @@ return /******/ (function(modules) { // webpackBootstrap BoxItem.prototype = new Item(null, null, null); - /** - * Check whether this item is visible inside given range - * @param {{start: Number, end: Number}} range with a timestamp for start and end - * @returns {boolean} True if visible + /** + * Check whether this item is visible inside given range + * @param {{start: Number, end: Number}} range with a timestamp for start and end + * @returns {boolean} True if visible */ BoxItem.prototype.isVisible = function (range) { // determine visibility @@ -25430,8 +25553,8 @@ return /******/ (function(modules) { // webpackBootstrap return isVisible; }; - /** - * Repaint the item + /** + * Repaint the item */ BoxItem.prototype.redraw = function () { var dom = this.dom; @@ -25533,9 +25656,9 @@ return /******/ (function(modules) { // webpackBootstrap this._repaintDeleteButton(dom.box); }; - /** - * Show the item in the DOM (when not already displayed). The items DOM will - * be created when needed. + /** + * Show the item in the DOM (when not already displayed). The items DOM will + * be created when needed. */ BoxItem.prototype.show = function () { if (!this.displayed) { @@ -25543,8 +25666,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Hide the item from the DOM (when visible) + /** + * Hide the item from the DOM (when visible) */ BoxItem.prototype.hide = function () { if (this.displayed) { @@ -25558,9 +25681,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Reposition the item horizontally - * @Override + /** + * Reposition the item horizontally + * @Override */ BoxItem.prototype.repositionX = function () { var start = this.conversion.toScreen(this.data.start); @@ -25619,9 +25742,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Reposition the item vertically - * @Override + /** + * Reposition the item vertically + * @Override */ BoxItem.prototype.repositionY = function () { var orientation = this.options.orientation.item; @@ -25648,17 +25771,17 @@ return /******/ (function(modules) { // webpackBootstrap dot.style.top = -this.props.dot.height / 2 + 'px'; }; - /** - * Return the width of the item left from its start date - * @return {number} + /** + * Return the width of the item left from its start date + * @return {number} */ BoxItem.prototype.getWidthLeft = function () { return this.width / 2; }; - /** - * Return the width of the item right from its start date - * @return {number} + /** + * Return the width of the item right from its start date + * @return {number} */ BoxItem.prototype.getWidthRight = function () { return this.width / 2; @@ -25674,15 +25797,15 @@ return /******/ (function(modules) { // webpackBootstrap var Item = __webpack_require__(129); - /** - * @constructor PointItem - * @extends Item - * @param {Object} data Object containing parameters start - * content, className. - * @param {{toScreen: function, toTime: function}} conversion - * Conversion functions from time to screen and vice versa - * @param {Object} [options] Configuration options - * // TODO: describe available options + /** + * @constructor PointItem + * @extends Item + * @param {Object} data Object containing parameters start + * content, className. + * @param {{toScreen: function, toTime: function}} conversion + * Conversion functions from time to screen and vice versa + * @param {Object} [options] Configuration options + * // TODO: describe available options */ function PointItem(data, conversion, options) { this.props = { @@ -25710,10 +25833,10 @@ return /******/ (function(modules) { // webpackBootstrap PointItem.prototype = new Item(null, null, null); - /** - * Check whether this item is visible inside given range - * @param {{start: Number, end: Number}} range with a timestamp for start and end - * @returns {boolean} True if visible + /** + * Check whether this item is visible inside given range + * @param {{start: Number, end: Number}} range with a timestamp for start and end + * @returns {boolean} True if visible */ PointItem.prototype.isVisible = function (range) { // determine visibility @@ -25722,8 +25845,8 @@ return /******/ (function(modules) { // webpackBootstrap return this.data.start.getTime() + widthInMs > range.start && this.data.start < range.end; }; - /** - * Repaint the item + /** + * Repaint the item */ PointItem.prototype.redraw = function () { var dom = this.dom; @@ -25812,9 +25935,9 @@ return /******/ (function(modules) { // webpackBootstrap this._repaintDeleteButton(dom.point); }; - /** - * Show the item in the DOM (when not already visible). The items DOM will - * be created when needed. + /** + * Show the item in the DOM (when not already visible). The items DOM will + * be created when needed. */ PointItem.prototype.show = function () { if (!this.displayed) { @@ -25822,8 +25945,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Hide the item from the DOM (when visible) + /** + * Hide the item from the DOM (when visible) */ PointItem.prototype.hide = function () { if (this.displayed) { @@ -25835,9 +25958,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Reposition the item horizontally - * @Override + /** + * Reposition the item horizontally + * @Override */ PointItem.prototype.repositionX = function () { var start = this.conversion.toScreen(this.data.start); @@ -25855,9 +25978,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Reposition the item vertically - * @Override + /** + * Reposition the item vertically + * @Override */ PointItem.prototype.repositionY = function () { var orientation = this.options.orientation.item; @@ -25869,17 +25992,17 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Return the width of the item left from its start date - * @return {number} + /** + * Return the width of the item left from its start date + * @return {number} */ PointItem.prototype.getWidthLeft = function () { return this.props.dot.width; }; - /** - * Return the width of the item right from its start date - * @return {number} + /** + * Return the width of the item right from its start date + * @return {number} */ PointItem.prototype.getWidthRight = function () { return this.props.dot.width; @@ -25898,15 +26021,15 @@ return /******/ (function(modules) { // webpackBootstrap var BackgroundGroup = __webpack_require__(130); var RangeItem = __webpack_require__(128); - /** - * @constructor BackgroundItem - * @extends Item - * @param {Object} data Object containing parameters start, end - * content, className. - * @param {{toScreen: function, toTime: function}} conversion - * Conversion functions from time to screen and vice versa - * @param {Object} [options] Configuration options - * // TODO: describe options + /** + * @constructor BackgroundItem + * @extends Item + * @param {Object} data Object containing parameters start, end + * content, className. + * @param {{toScreen: function, toTime: function}} conversion + * Conversion functions from time to screen and vice versa + * @param {Object} [options] Configuration options + * // TODO: describe options */ // TODO: implement support for the BackgroundItem just having a start, then being displayed as a sort of an annotation function BackgroundItem(data, conversion, options) { @@ -25935,18 +26058,18 @@ return /******/ (function(modules) { // webpackBootstrap BackgroundItem.prototype.baseClassName = 'vis-item vis-background'; BackgroundItem.prototype.stack = false; - /** - * Check whether this item is visible inside given range - * @returns {{start: Number, end: Number}} range with a timestamp for start and end - * @returns {boolean} True if visible + /** + * Check whether this item is visible inside given range + * @returns {{start: Number, end: Number}} range with a timestamp for start and end + * @returns {boolean} True if visible */ BackgroundItem.prototype.isVisible = function (range) { // determine visibility return this.data.start < range.end && this.data.end > range.start; }; - /** - * Repaint the item + /** + * Repaint the item */ BackgroundItem.prototype.redraw = function () { var dom = this.dom; @@ -26013,27 +26136,27 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Show the item in the DOM (when not already visible). The items DOM will - * be created when needed. + /** + * Show the item in the DOM (when not already visible). The items DOM will + * be created when needed. */ BackgroundItem.prototype.show = RangeItem.prototype.show; - /** - * Hide the item from the DOM (when visible) - * @return {Boolean} changed + /** + * Hide the item from the DOM (when visible) + * @return {Boolean} changed */ BackgroundItem.prototype.hide = RangeItem.prototype.hide; - /** - * Reposition the item horizontally - * @Override + /** + * Reposition the item horizontally + * @Override */ BackgroundItem.prototype.repositionX = RangeItem.prototype.repositionX; - /** - * Reposition the item vertically - * @Override + /** + * Reposition the item vertically + * @Override */ BackgroundItem.prototype.repositionY = function (margin) { var height; @@ -26096,10 +26219,10 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - /** - * Popup is a class to create a popup window with some text - * @param {Element} container The container object. - * @param {string} overflowMethod How the popup should act to overflowing ('flip' or 'cap') + /** + * Popup is a class to create a popup window with some text + * @param {Element} container The container object. + * @param {string} overflowMethod How the popup should act to overflowing ('flip' or 'cap') */ var Popup = function () { function Popup(container, overflowMethod) { @@ -26119,9 +26242,9 @@ return /******/ (function(modules) { // webpackBootstrap this.container.appendChild(this.frame); } - /** - * @param {number} x Horizontal position of the popup window - * @param {number} y Vertical position of the popup window + /** + * @param {number} x Horizontal position of the popup window + * @param {number} y Vertical position of the popup window */ @@ -26132,9 +26255,9 @@ return /******/ (function(modules) { // webpackBootstrap this.y = parseInt(y); } - /** - * Set the content for the popup window. This can be HTML code or text. - * @param {string | Element} content + /** + * Set the content for the popup window. This can be HTML code or text. + * @param {string | Element} content */ }, { @@ -26148,9 +26271,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Show the popup window - * @param {boolean} [doShow] Show or hide the window + /** + * Show the popup window + * @param {boolean} [doShow] Show or hide the window */ }, { @@ -26219,8 +26342,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Hide the popup window + /** + * Hide the popup window */ }, { @@ -26230,8 +26353,8 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.style.visibility = "hidden"; } - /** - * Remove the popup window + /** + * Remove the popup window */ }, { @@ -26303,17 +26426,19 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(139); var $Object = __webpack_require__(17).Object; - module.exports = function defineProperty(it, key, desc){ + module.exports = function defineProperty(it, key, desc) { return $Object.defineProperty(it, key, desc); }; + /***/ }), /* 139 */ /***/ (function(module, exports, __webpack_require__) { var $export = __webpack_require__(15); // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) - $export($export.S + $export.F * !__webpack_require__(25), 'Object', {defineProperty: __webpack_require__(21).f}); + $export($export.S + $export.F * !__webpack_require__(25), 'Object', { defineProperty: __webpack_require__(21).f }); + /***/ }), /* 140 */ @@ -26333,13 +26458,13 @@ return /******/ (function(modules) { // webpackBootstrap var DateUtil = __webpack_require__(122); var moment = __webpack_require__(82); - /** - * A horizontal time axis - * @param {{dom: Object, domProps: Object, emitter: Emitter, range: Range}} body - * @param {Object} [options] See TimeAxis.setOptions for the available - * options. - * @constructor TimeAxis - * @extends Component + /** + * A horizontal time axis + * @param {{dom: Object, domProps: Object, emitter: Emitter, range: Range}} body + * @param {Object} [options] See TimeAxis.setOptions for the available + * options. + * @constructor TimeAxis + * @extends Component */ function TimeAxis(body, options) { this.dom = { @@ -26385,13 +26510,13 @@ return /******/ (function(modules) { // webpackBootstrap TimeAxis.prototype = new Component(); - /** - * Set options for the TimeAxis. - * Parameters will be merged in current options. - * @param {Object} options Available options: - * {string} [orientation.axis] - * {boolean} [showMinorLabels] - * {boolean} [showMajorLabels] + /** + * Set options for the TimeAxis. + * Parameters will be merged in current options. + * @param {Object} options Available options: + * {string} [orientation.axis] + * {boolean} [showMinorLabels] + * {boolean} [showMajorLabels] */ TimeAxis.prototype.setOptions = function (options) { if (options) { @@ -26422,8 +26547,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Create the HTML DOM for the TimeAxis + /** + * Create the HTML DOM for the TimeAxis */ TimeAxis.prototype._create = function () { this.dom.foreground = document.createElement('div'); @@ -26433,8 +26558,8 @@ return /******/ (function(modules) { // webpackBootstrap this.dom.background.className = 'vis-time-axis vis-background'; }; - /** - * Destroy the TimeAxis + /** + * Destroy the TimeAxis */ TimeAxis.prototype.destroy = function () { // remove from DOM @@ -26448,9 +26573,9 @@ return /******/ (function(modules) { // webpackBootstrap this.body = null; }; - /** - * Repaint the component - * @return {boolean} Returns true if the component is resized + /** + * Repaint the component + * @return {boolean} Returns true if the component is resized */ TimeAxis.prototype.redraw = function () { var props = this.props; @@ -26503,9 +26628,9 @@ return /******/ (function(modules) { // webpackBootstrap return this._isResized() || parentChanged; }; - /** - * Repaint major and minor text labels and vertical grid lines - * @private + /** + * Repaint major and minor text labels and vertical grid lines + * @private */ TimeAxis.prototype._repaintLabels = function () { var orientation = this.options.orientation.axis; @@ -26633,14 +26758,14 @@ return /******/ (function(modules) { // webpackBootstrap }); }; - /** - * Create a minor label for the axis at position x - * @param {Number} x - * @param {String} text - * @param {String} orientation "top" or "bottom" (default) - * @param {String} className - * @return {Element} Returns the HTML element of the created label - * @private + /** + * Create a minor label for the axis at position x + * @param {Number} x + * @param {String} text + * @param {String} orientation "top" or "bottom" (default) + * @param {String} className + * @return {Element} Returns the HTML element of the created label + * @private */ TimeAxis.prototype._repaintMinorText = function (x, text, orientation, className) { // reuse redundant label @@ -26670,14 +26795,14 @@ return /******/ (function(modules) { // webpackBootstrap return label; }; - /** - * Create a Major label for the axis at position x - * @param {Number} x - * @param {String} text - * @param {String} orientation "top" or "bottom" (default) - * @param {String} className - * @return {Element} Returns the HTML element of the created label - * @private + /** + * Create a Major label for the axis at position x + * @param {Number} x + * @param {String} text + * @param {String} orientation "top" or "bottom" (default) + * @param {String} className + * @return {Element} Returns the HTML element of the created label + * @private */ TimeAxis.prototype._repaintMajorText = function (x, text, orientation, className) { // reuse redundant label @@ -26707,14 +26832,14 @@ return /******/ (function(modules) { // webpackBootstrap return label; }; - /** - * Create a minor line for the axis at position x - * @param {Number} x - * @param {Number} width - * @param {String} orientation "top" or "bottom" (default) - * @param {String} className - * @return {Element} Returns the created line - * @private + /** + * Create a minor line for the axis at position x + * @param {Number} x + * @param {Number} width + * @param {String} orientation "top" or "bottom" (default) + * @param {String} className + * @return {Element} Returns the created line + * @private */ TimeAxis.prototype._repaintMinorLine = function (x, width, orientation, className) { // reuse redundant line @@ -26746,14 +26871,14 @@ return /******/ (function(modules) { // webpackBootstrap return line; }; - /** - * Create a Major line for the axis at position x - * @param {Number} x - * @param {Number} width - * @param {String} orientation "top" or "bottom" (default) - * @param {String} className - * @return {Element} Returns the created line - * @private + /** + * Create a Major line for the axis at position x + * @param {Number} x + * @param {Number} width + * @param {String} orientation "top" or "bottom" (default) + * @param {String} className + * @return {Element} Returns the created line + * @private */ TimeAxis.prototype._repaintMajorLine = function (x, width, orientation, className) { // reuse redundant line @@ -26787,10 +26912,10 @@ return /******/ (function(modules) { // webpackBootstrap return line; }; - /** - * Determine the size of text on the axis (both major and minor axis). - * The size is calculated only once and then cached in this.props. - * @private + /** + * Determine the size of text on the axis (both major and minor axis). + * The size is calculated only once and then cached in this.props. + * @private */ TimeAxis.prototype._calculateCharSize = function () { // Note: We calculate char size with every redraw. Size may change, for @@ -26836,15 +26961,15 @@ return /******/ (function(modules) { // webpackBootstrap var Hammer = __webpack_require__(113); var util = __webpack_require__(1); - /** - * Turn an element into an clickToUse element. - * When not active, the element has a transparent overlay. When the overlay is - * clicked, the mode is changed to active. - * When active, the element is displayed with a blue border around it, and - * the interactive contents of the element can be used. When clicked outside - * the element, the elements mode is changed to inactive. - * @param {Element} container - * @constructor + /** + * Turn an element into an clickToUse element. + * When not active, the element has a transparent overlay. When the overlay is + * clicked, the mode is changed to active. + * When active, the element is displayed with a blue border around it, and + * the interactive contents of the element can be used. When clicked outside + * the element, the elements mode is changed to inactive. + * @param {Element} container + * @constructor */ function Activator(container) { this.active = false; @@ -26895,8 +27020,8 @@ return /******/ (function(modules) { // webpackBootstrap // The currently active activator Activator.current = null; - /** - * Destroy the activator. Cleans up all created DOM and event listeners + /** + * Destroy the activator. Cleans up all created DOM and event listeners */ Activator.prototype.destroy = function () { this.deactivate(); @@ -26915,9 +27040,9 @@ return /******/ (function(modules) { // webpackBootstrap // FIXME: cleaning up hammer instances doesn't work (Timeline not removed from memory) }; - /** - * Activate the element - * Overlay is hidden, element is decorated with a blue shadow border + /** + * Activate the element + * Overlay is hidden, element is decorated with a blue shadow border */ Activator.prototype.activate = function () { // we allow only one active activator at a time @@ -26938,9 +27063,9 @@ return /******/ (function(modules) { // webpackBootstrap this.keycharm.bind('esc', this.escListener); }; - /** - * Deactivate the element - * Overlay is displayed on top of the element + /** + * Deactivate the element + * Overlay is displayed on top of the element */ Activator.prototype.deactivate = function () { this.active = false; @@ -26952,10 +27077,10 @@ return /******/ (function(modules) { // webpackBootstrap this.emit('deactivate'); }; - /** - * Handle a tap event: activate the container - * @param event - * @private + /** + * Handle a tap event: activate the container + * @param event + * @private */ Activator.prototype._onTapOverlay = function (event) { // activate the container @@ -26963,14 +27088,14 @@ return /******/ (function(modules) { // webpackBootstrap event.stopPropagation(); }; - /** - * Test whether the element has the requested parent element somewhere in - * its chain of parent nodes. - * @param {HTMLElement} element - * @param {HTMLElement} parent - * @returns {boolean} Returns true when the parent is found somewhere in the - * chain of parent nodes. - * @private + /** + * Test whether the element has the requested parent element somewhere in + * its chain of parent nodes. + * @param {HTMLElement} element + * @param {HTMLElement} parent + * @returns {boolean} Returns true when the parent is found somewhere in the + * chain of parent nodes. + * @private */ function _hasParent(element, parent) { while (element) { @@ -26996,15 +27121,15 @@ return /******/ (function(modules) { // webpackBootstrap var moment = __webpack_require__(82); var locales = __webpack_require__(143); - /** - * A custom time bar - * @param {{range: Range, dom: Object}} body - * @param {Object} [options] Available parameters: - * {number | string} id - * {string} locales - * {string} locale - * @constructor CustomTime - * @extends Component + /** + * A custom time bar + * @param {{range: Range, dom: Object}} body + * @param {Object} [options] Available parameters: + * {number | string} id + * {string} locales + * {string} locale + * @constructor CustomTime + * @extends Component */ function CustomTime(body, options) { @@ -27036,12 +27161,12 @@ return /******/ (function(modules) { // webpackBootstrap CustomTime.prototype = new Component(); - /** - * Set options for the component. Options will be merged in current options. - * @param {Object} options Available parameters: - * {number | string} id - * {string} locales - * {string} locale + /** + * Set options for the component. Options will be merged in current options. + * @param {Object} options Available parameters: + * {number | string} id + * {string} locales + * {string} locale */ CustomTime.prototype.setOptions = function (options) { if (options) { @@ -27050,9 +27175,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Create the DOM for the custom time - * @private + /** + * Create the DOM for the custom time + * @private */ CustomTime.prototype._create = function () { var bar = document.createElement('div'); @@ -27093,8 +27218,8 @@ return /******/ (function(modules) { // webpackBootstrap this.hammer.get('pan').set({ threshold: 5, direction: Hammer.DIRECTION_HORIZONTAL }); }; - /** - * Destroy the CustomTime bar + /** + * Destroy the CustomTime bar */ CustomTime.prototype.destroy = function () { this.hide(); @@ -27105,9 +27230,9 @@ return /******/ (function(modules) { // webpackBootstrap this.body = null; }; - /** - * Repaint the component - * @return {boolean} Returns true if the component is resized + /** + * Repaint the component + * @return {boolean} Returns true if the component is resized */ CustomTime.prototype.redraw = function () { var parent = this.body.dom.backgroundVertical; @@ -27145,8 +27270,8 @@ return /******/ (function(modules) { // webpackBootstrap return false; }; - /** - * Remove the CustomTime from the DOM + /** + * Remove the CustomTime from the DOM */ CustomTime.prototype.hide = function () { // remove the line from the DOM @@ -27155,35 +27280,35 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set custom time. - * @param {Date | number | string} time + /** + * Set custom time. + * @param {Date | number | string} time */ CustomTime.prototype.setCustomTime = function (time) { this.customTime = util.convert(time, 'Date'); this.redraw(); }; - /** - * Retrieve the current custom time. - * @return {Date} customTime + /** + * Retrieve the current custom time. + * @return {Date} customTime */ CustomTime.prototype.getCustomTime = function () { return new Date(this.customTime.valueOf()); }; - /** - * Set custom title. - * @param {Date | number | string} title + /** + * Set custom title. + * @param {Date | number | string} title */ CustomTime.prototype.setCustomTitle = function (title) { this.options.title = title; }; - /** - * Start moving horizontally - * @param {Event} event - * @private + /** + * Start moving horizontally + * @param {Event} event + * @private */ CustomTime.prototype._onDragStart = function (event) { this.eventParams.dragging = true; @@ -27192,10 +27317,10 @@ return /******/ (function(modules) { // webpackBootstrap event.stopPropagation(); }; - /** - * Perform moving operating. - * @param {Event} event - * @private + /** + * Perform moving operating. + * @param {Event} event + * @private */ CustomTime.prototype._onDrag = function (event) { if (!this.eventParams.dragging) return; @@ -27215,10 +27340,10 @@ return /******/ (function(modules) { // webpackBootstrap event.stopPropagation(); }; - /** - * Stop moving operating. - * @param {Event} event - * @private + /** + * Stop moving operating. + * @param {Event} event + * @private */ CustomTime.prototype._onDragEnd = function (event) { if (!this.eventParams.dragging) return; @@ -27233,11 +27358,11 @@ return /******/ (function(modules) { // webpackBootstrap event.stopPropagation(); }; - /** - * Find a custom time from an event target: - * searches for the attribute 'custom-time' in the event target's element tree - * @param {Event} event - * @return {CustomTime | null} customTime + /** + * Find a custom time from an event target: + * searches for the attribute 'custom-time' in the event target's element tree + * @param {Event} event + * @return {CustomTime | null} customTime */ CustomTime.customTimeFromTarget = function (event) { var target = event.target; @@ -27317,13 +27442,13 @@ return /******/ (function(modules) { // webpackBootstrap var moment = __webpack_require__(82); var locales = __webpack_require__(143); - /** - * A current time bar - * @param {{range: Range, dom: Object, domProps: Object}} body - * @param {Object} [options] Available parameters: - * {Boolean} [showCurrentTime] - * @constructor CurrentTime - * @extends Component + /** + * A current time bar + * @param {{range: Range, dom: Object, domProps: Object}} body + * @param {Object} [options] Available parameters: + * {Boolean} [showCurrentTime] + * @constructor CurrentTime + * @extends Component */ function CurrentTime(body, options) { this.body = body; @@ -27347,9 +27472,9 @@ return /******/ (function(modules) { // webpackBootstrap CurrentTime.prototype = new Component(); - /** - * Create the HTML DOM for the current time bar - * @private + /** + * Create the HTML DOM for the current time bar + * @private */ CurrentTime.prototype._create = function () { var bar = document.createElement('div'); @@ -27361,8 +27486,8 @@ return /******/ (function(modules) { // webpackBootstrap this.bar = bar; }; - /** - * Destroy the CurrentTime bar + /** + * Destroy the CurrentTime bar */ CurrentTime.prototype.destroy = function () { this.options.showCurrentTime = false; @@ -27371,10 +27496,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body = null; }; - /** - * Set options for the component. Options will be merged in current options. - * @param {Object} options Available parameters: - * {boolean} [showCurrentTime] + /** + * Set options for the component. Options will be merged in current options. + * @param {Object} options Available parameters: + * {boolean} [showCurrentTime] */ CurrentTime.prototype.setOptions = function (options) { if (options) { @@ -27383,9 +27508,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Repaint the component - * @return {boolean} Returns true if the component is resized + /** + * Repaint the component + * @return {boolean} Returns true if the component is resized */ CurrentTime.prototype.redraw = function () { if (this.options.showCurrentTime) { @@ -27431,8 +27556,8 @@ return /******/ (function(modules) { // webpackBootstrap return false; }; - /** - * Start auto refreshing the current time bar + /** + * Start auto refreshing the current time bar */ CurrentTime.prototype.start = function () { var me = this; @@ -27456,8 +27581,8 @@ return /******/ (function(modules) { // webpackBootstrap update(); }; - /** - * Stop auto refreshing the current time bar + /** + * Stop auto refreshing the current time bar */ CurrentTime.prototype.stop = function () { if (this.currentTimeTimer !== undefined) { @@ -27466,11 +27591,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set a current time. This can be used for example to ensure that a client's - * time is synchronized with a shared server time. - * @param {Date | String | Number} time A Date, unix timestamp, or - * ISO date string. + /** + * Set a current time. This can be used for example to ensure that a client's + * time is synchronized with a shared server time. + * @param {Date | String | Number} time A Date, unix timestamp, or + * ISO date string. */ CurrentTime.prototype.setCurrentTime = function (time) { var t = util.convert(time, 'Date').valueOf(); @@ -27479,9 +27604,9 @@ return /******/ (function(modules) { // webpackBootstrap this.redraw(); }; - /** - * Get the current time. - * @return {Date} Returns the current time. + /** + * Get the current time. + * @return {Date} Returns the current time. */ CurrentTime.prototype.getCurrentTime = function () { return new Date(new Date().valueOf() + this.offset); @@ -27527,8 +27652,8 @@ return /******/ (function(modules) { // webpackBootstrap var errorFound = false; var allOptions = void 0; var printStyle = 'background: #FFeeee; color: #dd0000'; - /** - * Used to validate options. + /** + * Used to validate options. */ var Validator = function () { @@ -27536,11 +27661,11 @@ return /******/ (function(modules) { // webpackBootstrap (0, _classCallCheck3['default'])(this, Validator); } - /** - * Main function to be called - * @param options - * @param subObject - * @returns {boolean} + /** + * Main function to be called + * @param options + * @param subObject + * @returns {boolean} */ @@ -27557,11 +27682,11 @@ return /******/ (function(modules) { // webpackBootstrap return errorFound; } - /** - * Will traverse an object recursively and check every value - * @param options - * @param referenceOptions - * @param path + /** + * Will traverse an object recursively and check every value + * @param options + * @param referenceOptions + * @param path */ }, { @@ -27574,12 +27699,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Check every value. If the value is an object, call the parse function on that object. - * @param option - * @param options - * @param referenceOptions - * @param path + /** + * Check every value. If the value is an object, call the parse function on that object. + * @param option + * @param options + * @param referenceOptions + * @param path */ }, { @@ -27606,14 +27731,14 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * - * @param {String} option | the option property - * @param {Object} options | The supplied options object - * @param {Object} referenceOptions | The reference options containing all options and their allowed formats - * @param {String} referenceOption | Usually this is the same as option, except when handling an __any__ tag. - * @param {String} refOptionType | This is the type object from the reference options - * @param {Array} path | where in the object is the option + /** + * + * @param {String} option | the option property + * @param {Object} options | The supplied options object + * @param {Object} referenceOptions | The reference options containing all options and their allowed formats + * @param {String} referenceOption | Usually this is the same as option, except when handling an __any__ tag. + * @param {String} refOptionType | This is the type object from the reference options + * @param {Array} path | where in the object is the option */ }, { @@ -27705,13 +27830,13 @@ return /******/ (function(modules) { // webpackBootstrap errorFound = true; } - /** - * traverse the options in search for a match. - * @param option - * @param options - * @param path - * @param recursive - * @returns {{closestMatch: string, path: Array, distance: number}} + /** + * traverse the options in search for a match. + * @param option + * @param options + * @param path + * @param recursive + * @returns {{closestMatch: string, path: Array, distance: number}} */ }, { @@ -27780,11 +27905,11 @@ return /******/ (function(modules) { // webpackBootstrap // Compute the edit distance between the two given strings // http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#JavaScript - /* - Copyright (c) 2011 Andrei Mackenzie - Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + /* + Copyright (c) 2011 Andrei Mackenzie + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ }, { @@ -27838,12 +27963,12 @@ return /******/ (function(modules) { // webpackBootstrap Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This object contains all possible options. It will check if the types are correct, if required if the option is one - * of the allowed values. - * - * __any__ means that the name of the property does not matter. - * __type__ is a required field for all objects and contains the allowed types of all objects + /** + * This object contains all possible options. It will check if the types are correct, if required if the option is one + * of the allowed values. + * + * __any__ means that the name of the property does not matter. + * __type__ is a required field for all objects and contains the allowed types of all objects */ var string = 'string'; var bool = 'boolean'; @@ -28138,19 +28263,19 @@ return /******/ (function(modules) { // webpackBootstrap var ColorPicker = __webpack_require__(148)['default']; - /** - * The way this works is for all properties of this.possible options, you can supply the property name in any form to list the options. - * Boolean options are recognised as Boolean - * Number options should be written as array: [default value, min value, max value, stepsize] - * Colors should be written as array: ['color', '#ffffff'] - * Strings with should be written as array: [option1, option2, option3, ..] - * - * The options are matched with their counterparts in each of the modules and the values used in the configuration are - * - * @param parentModule | the location where parentModule.setOptions() can be called - * @param defaultContainer | the default container of the module - * @param configureOptions | the fully configured and predefined options set found in allOptions.js - * @param pixelRatio | canvas pixel ratio + /** + * The way this works is for all properties of this.possible options, you can supply the property name in any form to list the options. + * Boolean options are recognised as Boolean + * Number options should be written as array: [default value, min value, max value, stepsize] + * Colors should be written as array: ['color', '#ffffff'] + * Strings with should be written as array: [option1, option2, option3, ..] + * + * The options are matched with their counterparts in each of the modules and the values used in the configuration are + * + * @param parentModule | the location where parentModule.setOptions() can be called + * @param defaultContainer | the default container of the module + * @param configureOptions | the fully configured and predefined options set found in allOptions.js + * @param pixelRatio | canvas pixel ratio */ var Configurator = function () { @@ -28184,11 +28309,11 @@ return /******/ (function(modules) { // webpackBootstrap this.wrapper = undefined; } - /** - * refresh all options. - * Because all modules parse their options by themselves, we just use their options. We copy them here. - * - * @param options + /** + * refresh all options. + * Because all modules parse their options by themselves, we just use their options. We copy them here. + * + * @param options */ @@ -28246,9 +28371,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Create all DOM elements - * @private + /** + * Create all DOM elements + * @private */ }, { @@ -28315,9 +28440,9 @@ return /******/ (function(modules) { // webpackBootstrap //~ this.colorPicker.insertTo(this.container); } - /** - * draw all DOM elements on the screen - * @private + /** + * draw all DOM elements on the screen + * @private */ }, { @@ -28333,9 +28458,9 @@ return /******/ (function(modules) { // webpackBootstrap this._showPopupIfNeeded(); } - /** - * delete all DOM elements - * @private + /** + * delete all DOM elements + * @private */ }, { @@ -28354,11 +28479,11 @@ return /******/ (function(modules) { // webpackBootstrap this._removePopup(); } - /** - * get the value from the actualOptions if it exists - * @param {array} path | where to look for the actual option - * @returns {*} - * @private + /** + * get the value from the actualOptions if it exists + * @param {array} path | where to look for the actual option + * @returns {*} + * @private */ }, { @@ -28376,11 +28501,11 @@ return /******/ (function(modules) { // webpackBootstrap return base; } - /** - * all option elements are wrapped in an item - * @param path - * @param domElements - * @private + /** + * all option elements are wrapped in an item + * @param path + * @param domElements + * @private */ }, { @@ -28403,10 +28528,10 @@ return /******/ (function(modules) { // webpackBootstrap return 0; } - /** - * header for major subjects - * @param name - * @private + /** + * header for major subjects + * @param name + * @private */ }, { @@ -28418,13 +28543,13 @@ return /******/ (function(modules) { // webpackBootstrap this._makeItem([], div); } - /** - * make a label, if it is an object label, it gets different styling. - * @param name - * @param path - * @param objectLabel - * @returns {HTMLElement} - * @private + /** + * make a label, if it is an object label, it gets different styling. + * @param name + * @param path + * @param objectLabel + * @returns {HTMLElement} + * @private */ }, { @@ -28442,12 +28567,12 @@ return /******/ (function(modules) { // webpackBootstrap return div; } - /** - * make a dropdown list for multiple possible string optoins - * @param arr - * @param value - * @param path - * @private + /** + * make a dropdown list for multiple possible string optoins + * @param arr + * @param value + * @param path + * @private */ }, { @@ -28481,12 +28606,12 @@ return /******/ (function(modules) { // webpackBootstrap this._makeItem(path, label, select); } - /** - * make a range object for numeric options - * @param arr - * @param value - * @param path - * @private + /** + * make a range object for numeric options + * @param arr + * @param value + * @param path + * @private */ }, { @@ -28552,11 +28677,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * prepare the popup - * @param string - * @param index - * @private + /** + * prepare the popup + * @param string + * @param index + * @private */ }, { @@ -28577,9 +28702,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * remove the popup from the dom - * @private + /** + * remove the popup from the dom + * @private */ }, { @@ -28593,9 +28718,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Show the popup if it is needed. - * @private + /** + * Show the popup if it is needed. + * @private */ }, { @@ -28618,12 +28743,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * make a checkbox for boolean options. - * @param defaultValue - * @param value - * @param path - * @private + /** + * make a checkbox for boolean options. + * @param defaultValue + * @param value + * @param path + * @private */ }, { @@ -28655,12 +28780,12 @@ return /******/ (function(modules) { // webpackBootstrap this._makeItem(path, label, checkbox); } - /** - * make a text input field for string options. - * @param defaultValue - * @param value - * @param path - * @private + /** + * make a text input field for string options. + * @param defaultValue + * @param value + * @param path + * @private */ }, { @@ -28683,12 +28808,12 @@ return /******/ (function(modules) { // webpackBootstrap this._makeItem(path, label, checkbox); } - /** - * make a color field with a color picker for color fields - * @param arr - * @param value - * @param path - * @private + /** + * make a color field with a color picker for color fields + * @param arr + * @param value + * @param path + * @private */ }, { @@ -28716,13 +28841,13 @@ return /******/ (function(modules) { // webpackBootstrap this._makeItem(path, label, div); } - /** - * used by the color buttons to call the color picker. - * @param event - * @param value - * @param div - * @param path - * @private + /** + * used by the color buttons to call the color picker. + * @param event + * @param value + * @param div + * @param path + * @private */ }, { @@ -28751,11 +28876,11 @@ return /******/ (function(modules) { // webpackBootstrap }); } - /** - * parse an object and draw the correct items - * @param obj - * @param path - * @private + /** + * parse an object and draw the correct items + * @param obj + * @param path + * @private */ }, { @@ -28831,13 +28956,13 @@ return /******/ (function(modules) { // webpackBootstrap return visibleInSet; } - /** - * handle the array type of option - * @param optionName - * @param arr - * @param value - * @param path - * @private + /** + * handle the array type of option + * @param optionName + * @param arr + * @param value + * @param path + * @private */ }, { @@ -28861,11 +28986,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * called to update the network with the new settings. - * @param value - * @param path - * @private + /** + * called to update the network with the new settings. + * @param value + * @param path + * @private */ }, { @@ -28976,9 +29101,9 @@ return /******/ (function(modules) { // webpackBootstrap this._create(); } - /** - * this inserts the colorPicker into a div from the DOM - * @param container + /** + * this inserts the colorPicker into a div from the DOM + * @param container */ @@ -28996,9 +29121,9 @@ return /******/ (function(modules) { // webpackBootstrap this._setSize(); } - /** - * the callback is executed on apply and save. Bind it to the application - * @param callback + /** + * the callback is executed on apply and save. Bind it to the application + * @param callback */ }, { @@ -29011,9 +29136,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * the callback is executed on apply and save. Bind it to the application - * @param callback + /** + * the callback is executed on apply and save. Bind it to the application + * @param callback */ }, { @@ -29034,17 +29159,17 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Set the color of the colorPicker - * Supported formats: - * 'red' --> HTML color string - * '#ffffff' --> hex string - * 'rbg(255,255,255)' --> rgb string - * 'rgba(255,255,255,1.0)' --> rgba string - * {r:255,g:255,b:255} --> rgb object - * {r:255,g:255,b:255,a:1.0} --> rgba object - * @param color - * @param setInitial + /** + * Set the color of the colorPicker + * Supported formats: + * 'red' --> HTML color string + * '#ffffff' --> hex string + * 'rbg(255,255,255)' --> rgb string + * 'rgba(255,255,255,1.0)' --> rgba string + * {r:255,g:255,b:255} --> rgb object + * {r:255,g:255,b:255,a:1.0} --> rgba object + * @param color + * @param setInitial */ }, { @@ -29093,9 +29218,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * this shows the color picker. - * The hue circle is constructed once and stored. + /** + * this shows the color picker. + * The hue circle is constructed once and stored. */ }, { @@ -29113,11 +29238,11 @@ return /******/ (function(modules) { // webpackBootstrap // ------------------------------------------ PRIVATE ----------------------------- // - /** - * Hide the picker. Is called by the cancel button. - * Optional boolean to store the previous color for easy access later on. - * @param storePrevious - * @private + /** + * Hide the picker. Is called by the cancel button. + * Optional boolean to store the previous color for easy access later on. + * @param storePrevious + * @private */ }, { @@ -29148,9 +29273,9 @@ return /******/ (function(modules) { // webpackBootstrap }, 0); } - /** - * bound to the save button. Saves and hides. - * @private + /** + * bound to the save button. Saves and hides. + * @private */ }, { @@ -29161,9 +29286,9 @@ return /******/ (function(modules) { // webpackBootstrap this._hide(); } - /** - * Bound to apply button. Saves but does not close. Is undone by the cancel button. - * @private + /** + * Bound to apply button. Saves but does not close. Is undone by the cancel button. + * @private */ }, { @@ -29174,9 +29299,9 @@ return /******/ (function(modules) { // webpackBootstrap this._updatePicker(this.color); } - /** - * load the color from the previous session. - * @private + /** + * load the color from the previous session. + * @private */ }, { @@ -29189,11 +29314,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * set the color, place the picker - * @param rgba - * @param setInitial - * @private + /** + * set the color, place the picker + * @param rgba + * @param setInitial + * @private */ }, { @@ -29220,10 +29345,10 @@ return /******/ (function(modules) { // webpackBootstrap this._updatePicker(rgba); } - /** - * bound to opacity control - * @param value - * @private + /** + * bound to opacity control + * @param value + * @private */ }, { @@ -29233,10 +29358,10 @@ return /******/ (function(modules) { // webpackBootstrap this._updatePicker(this.color); } - /** - * bound to brightness control - * @param value - * @private + /** + * bound to brightness control + * @param value + * @private */ }, { @@ -29250,10 +29375,10 @@ return /******/ (function(modules) { // webpackBootstrap this._updatePicker(); } - /** - * update the color picker. A black circle overlays the hue circle to mimic the brightness decreasing. - * @param rgba - * @private + /** + * update the color picker. A black circle overlays the hue circle to mimic the brightness decreasing. + * @param rgba + * @private */ }, { @@ -29285,9 +29410,9 @@ return /******/ (function(modules) { // webpackBootstrap this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; } - /** - * used by create to set the size of the canvas. - * @private + /** + * used by create to set the size of the canvas. + * @private */ }, { @@ -29300,10 +29425,10 @@ return /******/ (function(modules) { // webpackBootstrap this.colorPickerCanvas.height = 289 * this.pixelRatio; } - /** - * create all dom elements - * TODO: cleanup, lots of similar dom elements - * @private + /** + * create all dom elements + * TODO: cleanup, lots of similar dom elements + * @private */ }, { @@ -29431,9 +29556,9 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.appendChild(this.loadButton); } - /** - * bind hammer to the color picker - * @private + /** + * bind hammer to the color picker + * @private */ }, { @@ -29463,9 +29588,9 @@ return /******/ (function(modules) { // webpackBootstrap }); } - /** - * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown. - * @private + /** + * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown. + * @private */ }, { @@ -29512,11 +29637,11 @@ return /******/ (function(modules) { // webpackBootstrap this.generated = true; } - /** - * move the selector. This is called by hammer functions. - * - * @param event - * @private + /** + * move the selector. This is called by hammer functions. + * + * @param event + * @private */ }, { @@ -29588,13 +29713,13 @@ return /******/ (function(modules) { // webpackBootstrap var Configurator = __webpack_require__(147)['default']; var Validator = __webpack_require__(145)['default']; - /** - * Create a timeline visualization - * @param {HTMLElement} container - * @param {vis.DataSet | Array} [items] - * @param {Object} [options] See Graph2d.setOptions for the available options. - * @constructor - * @extends Core + /** + * Create a timeline visualization + * @param {HTMLElement} container + * @param {vis.DataSet | Array} [items] + * @param {Object} [options] See Graph2d.setOptions for the available options. + * @constructor + * @extends Core */ function Graph2d(container, items, groups, options) { // if the third element is options, the forth is groups (optionally); @@ -29719,9 +29844,9 @@ return /******/ (function(modules) { // webpackBootstrap Core.prototype.setOptions.call(this, options); }; - /** - * Set items - * @param {vis.DataSet | Array | null} items + /** + * Set items + * @param {vis.DataSet | Array | null} items */ Graph2d.prototype.setItems = function (items) { var initialLoad = this.itemsData == null; @@ -29757,9 +29882,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set groups - * @param {vis.DataSet | Array} groups + /** + * Set groups + * @param {vis.DataSet | Array} groups */ Graph2d.prototype.setGroups = function (groups) { // convert to type DataSet when needed @@ -29777,11 +29902,11 @@ return /******/ (function(modules) { // webpackBootstrap this.linegraph.setGroups(newDataSet); }; - /** - * Returns an object containing an SVG element with the icon of the group (size determined by iconWidth and iconHeight), the label of the group (content) and the yAxisOrientation of the group (left or right). - * @param groupId - * @param width - * @param height + /** + * Returns an object containing an SVG element with the icon of the group (size determined by iconWidth and iconHeight), the label of the group (content) and the yAxisOrientation of the group (left or right). + * @param groupId + * @param width + * @param height */ Graph2d.prototype.getLegend = function (groupId, width, height) { if (width === undefined) { @@ -29797,10 +29922,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * This checks if the visible option of the supplied group (by ID) is true or false. - * @param groupId - * @returns {*} + /** + * This checks if the visible option of the supplied group (by ID) is true or false. + * @param groupId + * @returns {*} */ Graph2d.prototype.isGroupVisible = function (groupId) { if (this.linegraph.groups[groupId] !== undefined) { @@ -29810,11 +29935,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get the data range of the item set. - * @returns {{min: Date, max: Date}} range A range with a start and end Date. - * When no minimum is found, min==null - * When no maximum is found, max==null + /** + * Get the data range of the item set. + * @returns {{min: Date, max: Date}} range A range with a start and end Date. + * When no minimum is found, min==null + * When no maximum is found, max==null */ Graph2d.prototype.getDataRange = function () { var min = null; @@ -29840,11 +29965,11 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Generate Timeline related information from an event - * @param {Event} event - * @return {Object} An object with related information, like on which area - * The event happened, whether clicked on an item, etc. + /** + * Generate Timeline related information from an event + * @param {Event} event + * @return {Object} An object with related information, like on which area + * The event happened, whether clicked on an item, etc. */ Graph2d.prototype.getEventProperties = function (event) { var clientX = event.center ? event.center.x : event.clientX; @@ -29899,10 +30024,10 @@ return /******/ (function(modules) { // webpackBootstrap }; }; - /** - * Load a configurator - * @return {Object} - * @private + /** + * Load a configurator + * @return {Object} + * @private */ Graph2d.prototype._createConfigurator = function () { return new Configurator(this, this.dom.container, configureOptions); @@ -29936,12 +30061,12 @@ return /******/ (function(modules) { // webpackBootstrap var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items - /** - * This is the constructor of the LineGraph. It requires a Timeline body and options. - * - * @param body - * @param options - * @constructor + /** + * This is the constructor of the LineGraph. It requires a Timeline body and options. + * + * @param body + * @param options + * @constructor */ function LineGraph(body, options) { this.id = util.randomUUID(); @@ -30046,8 +30171,8 @@ return /******/ (function(modules) { // webpackBootstrap LineGraph.prototype = new Component(); - /** - * Create the HTML DOM for the ItemSet + /** + * Create the HTML DOM for the ItemSet */ LineGraph.prototype._create = function () { var frame = document.createElement('div'); @@ -30076,9 +30201,9 @@ return /******/ (function(modules) { // webpackBootstrap this.show(); }; - /** - * set the options of the LineGraph. the mergeOptions is used for subObjects that have an enabled element. - * @param {object} options + /** + * set the options of the LineGraph. the mergeOptions is used for subObjects that have an enabled element. + * @param {object} options */ LineGraph.prototype.setOptions = function (options) { if (options) { @@ -30139,8 +30264,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Hide the component from the DOM + /** + * Hide the component from the DOM */ LineGraph.prototype.hide = function () { // remove the frame containing the items @@ -30149,9 +30274,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Show the component in the DOM (when not already visible). - * @return {Boolean} changed + /** + * Show the component in the DOM (when not already visible). + * @return {Boolean} changed */ LineGraph.prototype.show = function () { // show frame containing the items @@ -30160,9 +30285,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set items - * @param {vis.DataSet | null} items + /** + * Set items + * @param {vis.DataSet | null} items */ LineGraph.prototype.setItems = function (items) { var me = this, @@ -30202,9 +30327,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set groups - * @param {vis.DataSet} groups + /** + * Set groups + * @param {vis.DataSet} groups */ LineGraph.prototype.setGroups = function (groups) { var me = this; @@ -30262,10 +30387,10 @@ return /******/ (function(modules) { // webpackBootstrap this._onUpdateGroups(groupIds); }; - /** - * this cleans the group out off the legends and the dataaxis, updates the ungrouped and updates the graph - * @param {Array} groupIds - * @private + /** + * this cleans the group out off the legends and the dataaxis, updates the ungrouped and updates the graph + * @param {Array} groupIds + * @private */ LineGraph.prototype._onRemoveGroups = function (groupIds) { for (var i = 0; i < groupIds.length; i++) { @@ -30275,10 +30400,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit("_change", { queue: true }); }; - /** - * this cleans the group out off the legends and the dataaxis - * @param groupId - * @private + /** + * this cleans the group out off the legends and the dataaxis + * @param groupId + * @private */ LineGraph.prototype._removeGroup = function (groupId) { if (this.groups.hasOwnProperty(groupId)) { @@ -30295,12 +30420,12 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * update a group object with the group dataset entree - * - * @param group - * @param groupId - * @private + /** + * update a group object with the group dataset entree + * + * @param group + * @param groupId + * @private */ LineGraph.prototype._updateGroup = function (group, groupId) { if (!this.groups.hasOwnProperty(groupId)) { @@ -30332,12 +30457,12 @@ return /******/ (function(modules) { // webpackBootstrap this.legendRight.redraw(); }; - /** - * this updates all groups, it is used when there is an update the the itemset. - * - * @param {Array} ids - * @param {Array} groupIds - * @private + /** + * this updates all groups, it is used when there is an update the the itemset. + * + * @param {Array} ids + * @param {Array} groupIds + * @private */ LineGraph.prototype._updateAllGroupData = function (ids, groupIds) { if (this.itemsData != null) { @@ -30442,9 +30567,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Redraw the component, mandatory function - * @return {boolean} Returns true if the component is resized + /** + * Redraw the component, mandatory function + * @return {boolean} Returns true if the component is resized */ LineGraph.prototype.redraw = function () { var resized = false; @@ -30530,9 +30655,9 @@ return /******/ (function(modules) { // webpackBootstrap return groupIds; }; - /** - * Update and redraw the graph. - * + /** + * Update and redraw the graph. + * */ LineGraph.prototype._updateGraph = function () { // reset the svg elements @@ -30706,18 +30831,18 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * first select and preprocess the data from the datasets. - * the groups have their preselection of data, we now loop over this data to see - * what data we need to draw. Sorted data is much faster. - * more optimization is possible by doing the sampling before and using the binary search - * to find the end date to determine the increment. - * - * @param {array} groupIds - * @param {object} groupsData - * @param {date} minDate - * @param {date} maxDate - * @private + /** + * first select and preprocess the data from the datasets. + * the groups have their preselection of data, we now loop over this data to see + * what data we need to draw. Sorted data is much faster. + * more optimization is possible by doing the sampling before and using the binary search + * to find the end date to determine the increment. + * + * @param {array} groupIds + * @param {object} groupsData + * @param {date} minDate + * @param {date} maxDate + * @private */ LineGraph.prototype._getRelevantData = function (groupIds, groupsData, minDate, maxDate) { var group, i, j, item; @@ -30749,11 +30874,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * - * @param groupIds - * @param groupsData - * @private + /** + * + * @param groupIds + * @param groupsData + * @private */ LineGraph.prototype._applySampling = function (groupIds, groupsData) { var group; @@ -30785,13 +30910,13 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * - * - * @param {array} groupIds - * @param {object} groupsData - * @param {object} groupRanges | this is being filled here - * @private + /** + * + * + * @param {array} groupIds + * @param {object} groupsData + * @param {object} groupRanges | this is being filled here + * @private */ LineGraph.prototype._getYRanges = function (groupIds, groupsData, groupRanges) { var groupData, group, i; @@ -30823,11 +30948,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * this sets the Y ranges for the Y axis. It also determines which of the axis should be shown or hidden. - * @param {Array} groupIds - * @param {Object} groupRanges - * @private + /** + * this sets the Y ranges for the Y axis. It also determines which of the axis should be shown or hidden. + * @param {Array} groupIds + * @param {Object} groupRanges + * @private */ LineGraph.prototype._updateYAxis = function (groupIds, groupRanges) { var resized = false; @@ -30919,13 +31044,13 @@ return /******/ (function(modules) { // webpackBootstrap return resized; }; - /** - * This shows or hides the Y axis if needed. If there is a change, the changed event is emitted by the updateYAxis function - * - * @param {boolean} axisUsed - * @returns {boolean} - * @private - * @param axis + /** + * This shows or hides the Y axis if needed. If there is a change, the changed event is emitted by the updateYAxis function + * + * @param {boolean} axisUsed + * @returns {boolean} + * @private + * @param axis */ LineGraph.prototype._toggleAxisVisiblity = function (axisUsed, axis) { var changed = false; @@ -30943,14 +31068,14 @@ return /******/ (function(modules) { // webpackBootstrap return changed; }; - /** - * This uses the DataAxis object to generate the correct X coordinate on the SVG window. It uses the - * util function toScreen to get the x coordinate from the timestamp. It also pre-filters the data and get the minMax ranges for - * the yAxis. - * - * @param datapoints - * @returns {Array} - * @private + /** + * This uses the DataAxis object to generate the correct X coordinate on the SVG window. It uses the + * util function toScreen to get the x coordinate from the timestamp. It also pre-filters the data and get the minMax ranges for + * the yAxis. + * + * @param datapoints + * @returns {Array} + * @private */ LineGraph.prototype._convertXcoordinates = function (datapoints) { var toScreen = this.body.util.toScreen; @@ -30965,15 +31090,15 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * This uses the DataAxis object to generate the correct X coordinate on the SVG window. It uses the - * util function toScreen to get the x coordinate from the timestamp. It also pre-filters the data and get the minMax ranges for - * the yAxis. - * - * @param datapoints - * @param group - * @returns {Array} - * @private + /** + * This uses the DataAxis object to generate the correct X coordinate on the SVG window. It uses the + * util function toScreen to get the x coordinate from the timestamp. It also pre-filters the data and get the minMax ranges for + * the yAxis. + * + * @param datapoints + * @param group + * @returns {Array} + * @private */ LineGraph.prototype._convertYcoordinates = function (datapoints, group) { var axis = this.yAxisLeft; @@ -31005,13 +31130,13 @@ return /******/ (function(modules) { // webpackBootstrap var DOMutil = __webpack_require__(88); var Component = __webpack_require__(121); var DataScale = __webpack_require__(152); - /** - * A horizontal time axis - * @param {Object} [options] See DataAxis.setOptions for the available - * options. - * @constructor DataAxis - * @extends Component - * @param body + /** + * A horizontal time axis + * @param {Object} [options] See DataAxis.setOptions for the available + * options. + * @constructor DataAxis + * @extends Component + * @param body */ function DataAxis(body, options, svg, linegraphOptions) { this.id = util.randomUUID(); @@ -31131,8 +31256,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Create the HTML DOM for the DataAxis + /** + * Create the HTML DOM for the DataAxis */ DataAxis.prototype._create = function () { this.dom.frame = document.createElement('div'); @@ -31194,8 +31319,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Create the HTML DOM for the DataAxis + /** + * Create the HTML DOM for the DataAxis */ DataAxis.prototype.show = function () { this.hidden = false; @@ -31212,8 +31337,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Create the HTML DOM for the DataAxis + /** + * Create the HTML DOM for the DataAxis */ DataAxis.prototype.hide = function () { this.hidden = true; @@ -31226,20 +31351,20 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Set a range (start and end) - * @param end - * @param start - * @param end + /** + * Set a range (start and end) + * @param end + * @param start + * @param end */ DataAxis.prototype.setRange = function (start, end) { this.range.start = start; this.range.end = end; }; - /** - * Repaint the component - * @return {boolean} Returns true if the component is resized + /** + * Repaint the component + * @return {boolean} Returns true if the component is resized */ DataAxis.prototype.redraw = function () { var resized = false; @@ -31321,9 +31446,9 @@ return /******/ (function(modules) { // webpackBootstrap return resized; }; - /** - * Repaint major and minor text labels and vertical grid lines - * @private + /** + * Repaint major and minor text labels and vertical grid lines + * @private */ DataAxis.prototype._redrawLabels = function () { var _this = this; @@ -31417,14 +31542,14 @@ return /******/ (function(modules) { // webpackBootstrap return this.scale.screenToValue(x); }; - /** - * Create a label for the axis at position x - * @private - * @param y - * @param text - * @param orientation - * @param className - * @param characterHeight + /** + * Create a label for the axis at position x + * @private + * @param y + * @param text + * @param orientation + * @param className + * @param characterHeight */ DataAxis.prototype._redrawLabel = function (y, text, orientation, className, characterHeight) { // reuse redundant label @@ -31449,13 +31574,13 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Create a minor line for the axis at position y - * @param y - * @param orientation - * @param className - * @param offset - * @param width + /** + * Create a minor line for the axis at position y + * @param y + * @param orientation + * @param className + * @param offset + * @param width */ DataAxis.prototype._redrawLine = function (y, orientation, className, offset, width) { if (this.master === true) { @@ -31474,10 +31599,10 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Create a title for the axis - * @private - * @param orientation + /** + * Create a title for the axis + * @private + * @param orientation */ DataAxis.prototype._redrawTitle = function (orientation) { DOMutil.prepareElements(this.DOMelements.title); @@ -31506,10 +31631,10 @@ return /******/ (function(modules) { // webpackBootstrap DOMutil.cleanupElements(this.DOMelements.title); }; - /** - * Determine the size of text on the axis (both major and minor axis). - * The size is calculated only once and then cached in this.props. - * @private + /** + * Determine the size of text on the axis (both major and minor axis). + * The size is calculated only once and then cached in this.props. + * @private */ DataAxis.prototype._calculateCharSize = function () { // determine the char width and height on the minor axis @@ -31561,8 +31686,8 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - /** - * Created by ludo on 25-1-16. + /** + * Created by ludo on 25-1-16. */ function DataScale(start, end, autoScaleStart, autoScaleEnd, containerHeight, majorCharHeight) { @@ -31815,15 +31940,15 @@ return /******/ (function(modules) { // webpackBootstrap var Lines = __webpack_require__(156); var Points = __webpack_require__(155); - /** - * /** - * @param {object} group | the object of the group from the dataset - * @param {string} groupId | ID of the group - * @param {object} options | the default options - * @param {array} groupsUsingDefaultStyles | this array has one entree. - * It is passed as an array so it is passed by reference. - * It enumerates through the default styles - * @constructor + /** + * /** + * @param {object} group | the object of the group from the dataset + * @param {string} groupId | ID of the group + * @param {object} options | the default options + * @param {array} groupsUsingDefaultStyles | this array has one entree. + * It is passed as an array so it is passed by reference. + * It enumerates through the default styles + * @constructor */ function GraphGroup(group, groupId, options, groupsUsingDefaultStyles) { this.id = groupId; @@ -31840,9 +31965,9 @@ return /******/ (function(modules) { // webpackBootstrap this.visible = group.visible === undefined ? true : group.visible; } - /** - * this loads a reference to all items in this group into this group. - * @param {array} items + /** + * this loads a reference to all items in this group into this group. + * @param {array} items */ GraphGroup.prototype.setItems = function (items) { if (items != null) { @@ -31861,17 +31986,17 @@ return /******/ (function(modules) { // webpackBootstrap return this.itemsData; }; - /** - * this is used for barcharts and shading, this way, we only have to calculate it once. - * @param pos + /** + * this is used for barcharts and shading, this way, we only have to calculate it once. + * @param pos */ GraphGroup.prototype.setZeroPosition = function (pos) { this.zeroPosition = pos; }; - /** - * set the options of the graph group over the default options. - * @param options + /** + * set the options of the graph group over the default options. + * @param options */ GraphGroup.prototype.setOptions = function (options) { if (options !== undefined) { @@ -31906,9 +32031,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * this updates the current group class with the latest group dataset entree, used in _updateGroup in linegraph - * @param group + /** + * this updates the current group class with the latest group dataset entree, used in _updateGroup in linegraph + * @param group */ GraphGroup.prototype.update = function (group) { this.group = group; @@ -31919,12 +32044,12 @@ return /******/ (function(modules) { // webpackBootstrap this.setOptions(group.options); }; - /** - * return the legend entree for this group. - * - * @param iconWidth - * @param iconHeight - * @returns {{icon: HTMLElement, label: (group.content|*|string), orientation: (.options.yAxisOrientation|*)}} + /** + * return the legend entree for this group. + * + * @param iconWidth + * @param iconHeight + * @returns {{icon: HTMLElement, label: (group.content|*|string), orientation: (.options.yAxisOrientation|*)}} */ GraphGroup.prototype.getLegend = function (iconWidth, iconHeight, framework, x, y) { if (framework == undefined || framework == null) { @@ -32009,11 +32134,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * draw a bar graph - * - * @param groupIds - * @param processedGroupData + /** + * draw a bar graph + * + * @param groupIds + * @param processedGroupData */ Bargraph.draw = function (groupIds, processedGroupData, framework) { var combinedData = []; @@ -32126,11 +32251,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Fill the intersections object with counters of how many datapoints share the same x coordinates - * @param intersections - * @param combinedData - * @private + /** + * Fill the intersections object with counters of how many datapoints share the same x coordinates + * @param intersections + * @param combinedData + * @private */ Bargraph._getDataIntersections = function (intersections, combinedData) { // get intersections @@ -32156,14 +32281,14 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Get the width and offset for bargraphs based on the coredistance between datapoints - * - * @param coreDistance - * @param group - * @param minWidth - * @returns {{width: Number, offset: Number}} - * @private + /** + * Get the width and offset for bargraphs based on the coredistance between datapoints + * + * @param coreDistance + * @param group + * @param minWidth + * @returns {{width: Number, offset: Number}} + * @private */ Bargraph._getSafeDrawData = function (coreDistance, group, minWidth) { var width, offset; @@ -32256,14 +32381,14 @@ return /******/ (function(modules) { // webpackBootstrap function Points(groupId, options) {} - /** - * draw the data points - * - * @param {Array} dataset - * @param {Object} JSONcontainer - * @param {Object} svg | SVG DOM element - * @param {GraphGroup} group - * @param {Number} [offset] + /** + * draw the data points + * + * @param {Array} dataset + * @param {Object} JSONcontainer + * @param {Object} svg | SVG DOM element + * @param {GraphGroup} group + * @param {Number} [offset] */ Points.draw = function (dataset, group, framework, offset) { offset = offset || 0; @@ -32423,11 +32548,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * draw a line graph - * - * @param dataset - * @param group + /** + * draw a line graph + * + * @param dataset + * @param group */ Line.draw = function (pathArray, group, framework) { if (pathArray != null && pathArray != undefined) { @@ -32464,12 +32589,12 @@ return /******/ (function(modules) { // webpackBootstrap return d; }; - /** - * This uses an uniform parametrization of the interpolation algorithm: - * 'On the Parameterization of Catmull-Rom Curves' by Cem Yuksel et al. - * @param data - * @returns {string} - * @private + /** + * This uses an uniform parametrization of the interpolation algorithm: + * 'On the Parameterization of Catmull-Rom Curves' by Cem Yuksel et al. + * @param data + * @returns {string} + * @private */ Line._catmullRomUniform = function (data) { // catmull rom @@ -32510,16 +32635,16 @@ return /******/ (function(modules) { // webpackBootstrap return d; }; - /** - * This uses either the chordal or centripetal parameterization of the catmull-rom algorithm. - * By default, the centripetal parameterization is used because this gives the nicest results. - * These parameterizations are relatively heavy because the distance between 4 points have to be calculated. - * - * One optimization can be used to reuse distances since this is a sliding window approach. - * @param data - * @param group - * @returns {string} - * @private + /** + * This uses either the chordal or centripetal parameterization of the catmull-rom algorithm. + * By default, the centripetal parameterization is used because this gives the nicest results. + * These parameterizations are relatively heavy because the distance between 4 points have to be calculated. + * + * One optimization can be used to reuse distances since this is a sliding window approach. + * @param data + * @param group + * @returns {string} + * @private */ Line._catmullRom = function (data, group) { var alpha = group.options.interpolation.alpha; @@ -32595,11 +32720,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * this generates the SVG path for a linear drawing between datapoints. - * @param data - * @returns {string} - * @private + /** + * this generates the SVG path for a linear drawing between datapoints. + * @param data + * @returns {string} + * @private */ Line._linear = function (data) { // linear @@ -32628,8 +32753,8 @@ return /******/ (function(modules) { // webpackBootstrap var DOMutil = __webpack_require__(88); var Component = __webpack_require__(121); - /** - * Legend for Graph2d + /** + * Legend for Graph2d */ function Legend(body, options, side, linegraphOptions) { this.body = body; @@ -32713,8 +32838,8 @@ return /******/ (function(modules) { // webpackBootstrap this.dom.frame.appendChild(this.dom.textArea); }; - /** - * Hide the component from the DOM + /** + * Hide the component from the DOM */ Legend.prototype.hide = function () { // remove the frame containing the items @@ -32723,9 +32848,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Show the component in the DOM (when not already visible). - * @return {Boolean} changed + /** + * Show the component in the DOM (when not already visible). + * @return {Boolean} changed */ Legend.prototype.show = function () { // show frame containing the items @@ -32846,12 +32971,12 @@ return /******/ (function(modules) { // webpackBootstrap Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This object contains all possible options. It will check if the types are correct, if required if the option is one - * of the allowed values. - * - * __any__ means that the name of the property does not matter. - * __type__ is a required field for all objects and contains the allowed types of all objects + /** + * This object contains all possible options. It will check if the types are correct, if required if the option is one + * of the allowed values. + * + * __any__ means that the name of the property does not matter. + * __type__ is a required field for all objects and contains the allowed types of all objects */ var string = 'string'; var bool = 'boolean'; @@ -33200,16 +33325,16 @@ return /******/ (function(modules) { // webpackBootstrap var KamadaKawai = __webpack_require__(231)['default']; - /** - * @constructor Network - * Create a network visualization, displaying nodes and edges. - * - * @param {Element} container The DOM element in which the Network will - * be created. Normally a div element. - * @param {Object} data An object containing parameters - * {Array} nodes - * {Array} edges - * @param {Object} options Options + /** + * @constructor Network + * Create a network visualization, displaying nodes and edges. + * + * @param {Element} container The DOM element in which the Network will + * be created. Normally a div element. + * @param {Object} data An object containing parameters + * {Array} nodes + * {Array} edges + * @param {Object} options Options */ function Network(container, data, options) { var _this = this; @@ -33227,17 +33352,17 @@ return /******/ (function(modules) { // webpackBootstrap }; util.extend(this.options, this.defaultOptions); - /** - * Containers for nodes and edges. - * - * 'edges' and 'nodes' contain the full definitions of all the network elements. - * 'nodeIndices' and 'edgeIndices' contain the id's of the active elements. - * - * The distinction is important, because a defined node need not be active, i.e. - * visible on the canvas. This happens in particular when clusters are defined, in - * that case there will be nodes and edges not displayed. - * The bottom line is that all code with actions related to visibility, *must* use - * 'nodeIndices' and 'edgeIndices', not 'nodes' and 'edges' directly. + /** + * Containers for nodes and edges. + * + * 'edges' and 'nodes' contain the full definitions of all the network elements. + * 'nodeIndices' and 'edgeIndices' contain the id's of the active elements. + * + * The distinction is important, because a defined node need not be active, i.e. + * visible on the canvas. This happens in particular when clusters are defined, in + * that case there will be nodes and edges not displayed. + * The bottom line is that all code with actions related to visibility, *must* use + * 'nodeIndices' and 'edgeIndices', not 'nodes' and 'edges' directly. */ this.body = { container: container, @@ -33321,9 +33446,9 @@ return /******/ (function(modules) { // webpackBootstrap // Extend Network with an Emitter mixin Emitter(Network.prototype); - /** - * Set options - * @param {Object} options + /** + * Set options + * @param {Object} options */ Network.prototype.setOptions = function (options) { var _this2 = this; @@ -33417,9 +33542,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Update the this.body.nodeIndices with the most recent node index list - * @private + /** + * Update the this.body.nodeIndices with the most recent node index list + * @private */ Network.prototype._updateVisibleIndices = function () { var nodes = this.body.nodes; @@ -33444,8 +33569,8 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Bind all events + /** + * Bind all events */ Network.prototype.bindEventListeners = function () { var _this3 = this; @@ -33470,15 +33595,15 @@ return /******/ (function(modules) { // webpackBootstrap }); }; - /** - * Set nodes and edges, and optionally options as well. - * - * @param {Object} data Object containing parameters: - * {Array | DataSet | DataView} [nodes] Array with nodes - * {Array | DataSet | DataView} [edges] Array with edges - * {String} [dot] String containing data in DOT format - * {String} [gephi] String containing data in gephi JSON format - * {Options} [options] Object with options + /** + * Set nodes and edges, and optionally options as well. + * + * @param {Object} data Object containing parameters: + * {Array | DataSet | DataView} [nodes] Array with nodes + * {Array | DataSet | DataView} [edges] Array with edges + * {String} [dot] String containing data in DOT format + * {String} [gephi] String containing data in gephi JSON format + * {Options} [options] Object with options */ Network.prototype.setData = function (data) { // reset the physics engine. @@ -33522,11 +33647,11 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit("initPhysics"); }; - /** - * Cleans up all bindings of the network, removing it fully from the memory IF the variable is set to null after calling this function. - * var network = new vis.Network(..); - * network.destroy(); - * network = null; + /** + * Cleans up all bindings of the network, removing it fully from the memory IF the variable is set to null after calling this function. + * var network = new vis.Network(..); + * network.destroy(); + * network = null; */ Network.prototype.destroy = function () { this.body.emitter.emit("destroy"); @@ -33561,13 +33686,13 @@ return /******/ (function(modules) { // webpackBootstrap util.recursiveDOMDelete(this.body.container); }; - /** - * Update the values of all object in the given array according to the current - * value range of the objects in the array. - * @param {Object} obj An object containing a set of Edges or Nodes - * The objects must have a method getValue() and - * setValueRange(min, max). - * @private + /** + * Update the values of all object in the given array according to the current + * value range of the objects in the array. + * @param {Object} obj An object containing a set of Edges or Nodes + * The objects must have a method getValue() and + * setValueRange(min, max). + * @private */ Network.prototype._updateValueRange = function (obj) { var id; @@ -33597,9 +33722,9 @@ return /******/ (function(modules) { // webpackBootstrap } }; - /** - * Returns true when the Network is active. - * @returns {boolean} + /** + * Returns true when the Network is active. + * @returns {boolean} */ Network.prototype.isActive = function () { return !this.activator || this.activator.active; @@ -33769,13 +33894,13 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - /** - * Canvas shapes used by Network + /** + * Canvas shapes used by Network */ if (typeof CanvasRenderingContext2D !== 'undefined') { - /** - * Draw a circle shape + /** + * Draw a circle shape */ CanvasRenderingContext2D.prototype.circle = function (x, y, r) { this.beginPath(); @@ -33783,11 +33908,11 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; - /** - * Draw a square shape - * @param {Number} x horizontal center - * @param {Number} y vertical center - * @param {Number} r size, width and height of the square + /** + * Draw a square shape + * @param {Number} x horizontal center + * @param {Number} y vertical center + * @param {Number} r size, width and height of the square */ CanvasRenderingContext2D.prototype.square = function (x, y, r) { this.beginPath(); @@ -33795,11 +33920,11 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; - /** - * Draw a triangle shape - * @param {Number} x horizontal center - * @param {Number} y vertical center - * @param {Number} r radius, half the length of the sides of the triangle + /** + * Draw a triangle shape + * @param {Number} x horizontal center + * @param {Number} y vertical center + * @param {Number} r radius, half the length of the sides of the triangle */ CanvasRenderingContext2D.prototype.triangle = function (x, y, r) { // http://en.wikipedia.org/wiki/Equilateral_triangle @@ -33822,11 +33947,11 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; - /** - * Draw a triangle shape in downward orientation - * @param {Number} x horizontal center - * @param {Number} y vertical center - * @param {Number} r radius + /** + * Draw a triangle shape in downward orientation + * @param {Number} x horizontal center + * @param {Number} y vertical center + * @param {Number} r radius */ CanvasRenderingContext2D.prototype.triangleDown = function (x, y, r) { // http://en.wikipedia.org/wiki/Equilateral_triangle @@ -33848,11 +33973,11 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; - /** - * Draw a star shape, a star with 5 points - * @param {Number} x horizontal center - * @param {Number} y vertical center - * @param {Number} r radius, half the length of the sides of the triangle + /** + * Draw a star shape, a star with 5 points + * @param {Number} x horizontal center + * @param {Number} y vertical center + * @param {Number} r radius, half the length of the sides of the triangle */ CanvasRenderingContext2D.prototype.star = function (x, y, r) { // http://www.html5canvastutorials.com/labs/html5-canvas-star-spinner/ @@ -33870,11 +33995,11 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; - /** - * Draw a Diamond shape - * @param {Number} x horizontal center - * @param {Number} y vertical center - * @param {Number} r radius, half the length of the sides of the triangle + /** + * Draw a Diamond shape + * @param {Number} x horizontal center + * @param {Number} y vertical center + * @param {Number} r radius, half the length of the sides of the triangle */ CanvasRenderingContext2D.prototype.diamond = function (x, y, r) { // http://www.html5canvastutorials.com/labs/html5-canvas-star-spinner/ @@ -33888,8 +34013,8 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; - /** - * http://stackoverflow.com/questions/1255512/how-to-draw-a-rounded-rectangle-on-html-canvas + /** + * http://stackoverflow.com/questions/1255512/how-to-draw-a-rounded-rectangle-on-html-canvas */ CanvasRenderingContext2D.prototype.roundRect = function (x, y, w, h, r) { var r2d = Math.PI / 180; @@ -33912,10 +34037,10 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; - /** - * http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas - * - * Postfix '_vis' added to discern it from standard method ellipse(). + /** + * http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas + * + * Postfix '_vis' added to discern it from standard method ellipse(). */ CanvasRenderingContext2D.prototype.ellipse_vis = function (x, y, w, h) { var kappa = .5522848, @@ -33940,8 +34065,8 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; - /** - * http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas + /** + * http://stackoverflow.com/questions/2172798/how-to-draw-an-oval-in-html5-canvas */ CanvasRenderingContext2D.prototype.database = function (x, y, w, h) { var f = 1 / 3; @@ -33982,8 +34107,8 @@ return /******/ (function(modules) { // webpackBootstrap this.lineTo(x, ym); }; - /** - * Draw an arrow at the end of a line with the given angle. + /** + * Draw an arrow at the end of a line with the given angle. */ CanvasRenderingContext2D.prototype.arrowEndpoint = function (x, y, angle, length) { // tail @@ -34010,8 +34135,8 @@ return /******/ (function(modules) { // webpackBootstrap this.closePath(); }; - /** - * Draw an circle an the end of an line with the given angle. + /** + * Draw an circle an the end of an line with the given angle. */ CanvasRenderingContext2D.prototype.circleEndpoint = function (x, y, angle, length) { var radius = length * 0.4; @@ -34020,11 +34145,11 @@ return /******/ (function(modules) { // webpackBootstrap this.circle(xc, yc, radius); }; - /** - * Sets up the dashedLine functionality for drawing - * Original code came from http://stackoverflow.com/questions/4576724/dotted-stroke-in-canvas - * @author David Jordan - * @date 2012-08-08 + /** + * Sets up the dashedLine functionality for drawing + * Original code came from http://stackoverflow.com/questions/4576724/dotted-stroke-in-canvas + * @author David Jordan + * @date 2012-08-08 */ CanvasRenderingContext2D.prototype.dashedLine = function (x, y, x2, y2, pattern) { this.beginPath(); @@ -34075,41 +34200,41 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - /** - * Parse a text source containing data in DOT language into a JSON object. - * The object contains two lists: one with nodes and one with edges. - * - * DOT language reference: http://www.graphviz.org/doc/info/lang.html - * - * DOT language attributes: http://graphviz.org/content/attrs - * - * @param {String} data Text containing a graph in DOT-notation - * @return {Object} graph An object containing two parameters: - * {Object[]} nodes - * {Object[]} edges - * - * ------------------------------------------- - * TODO - * ==== - * - * For label handling, this is an incomplete implementation. From docs (quote #3015): - * - * > the escape sequences "\n", "\l" and "\r" divide the label into lines, centered, - * > left-justified, and right-justified, respectively. - * - * Source: http://www.graphviz.org/content/attrs#kescString - * - * > As another aid for readability, dot allows double-quoted strings to span multiple physical - * > lines using the standard C convention of a backslash immediately preceding a newline - * > character - * > In addition, double-quoted strings can be concatenated using a '+' operator. - * > As HTML strings can contain newline characters, which are used solely for formatting, - * > the language does not allow escaped newlines or concatenation operators to be used - * > within them. - * - * - Currently, only '\\n' is handled - * - Note that text explicitly says 'labels'; the dot parser currently handles escape - * sequences in **all** strings. + /** + * Parse a text source containing data in DOT language into a JSON object. + * The object contains two lists: one with nodes and one with edges. + * + * DOT language reference: http://www.graphviz.org/doc/info/lang.html + * + * DOT language attributes: http://graphviz.org/content/attrs + * + * @param {String} data Text containing a graph in DOT-notation + * @return {Object} graph An object containing two parameters: + * {Object[]} nodes + * {Object[]} edges + * + * ------------------------------------------- + * TODO + * ==== + * + * For label handling, this is an incomplete implementation. From docs (quote #3015): + * + * > the escape sequences "\n", "\l" and "\r" divide the label into lines, centered, + * > left-justified, and right-justified, respectively. + * + * Source: http://www.graphviz.org/content/attrs#kescString + * + * > As another aid for readability, dot allows double-quoted strings to span multiple physical + * > lines using the standard C convention of a backslash immediately preceding a newline + * > character + * > In addition, double-quoted strings can be concatenated using a '+' operator. + * > As HTML strings can contain newline characters, which are used solely for formatting, + * > the language does not allow escaped newlines or concatenation operators to be used + * > within them. + * + * - Currently, only '\\n' is handled + * - Note that text explicitly says 'labels'; the dot parser currently handles escape + * sequences in **all** strings. */ function parseDOT(data) { dot = data; @@ -34158,49 +34283,49 @@ return /******/ (function(modules) { // webpackBootstrap var token = ''; // current token var tokenType = TOKENTYPE.NULL; // type of the token - /** - * Get the first character from the dot file. - * The character is stored into the char c. If the end of the dot file is - * reached, the function puts an empty string in c. + /** + * Get the first character from the dot file. + * The character is stored into the char c. If the end of the dot file is + * reached, the function puts an empty string in c. */ function first() { index = 0; c = dot.charAt(0); } - /** - * Get the next character from the dot file. - * The character is stored into the char c. If the end of the dot file is - * reached, the function puts an empty string in c. + /** + * Get the next character from the dot file. + * The character is stored into the char c. If the end of the dot file is + * reached, the function puts an empty string in c. */ function next() { index++; c = dot.charAt(index); } - /** - * Preview the next character from the dot file. - * @return {String} cNext + /** + * Preview the next character from the dot file. + * @return {String} cNext */ function nextPreview() { return dot.charAt(index + 1); } - /** - * Test whether given character is alphabetic or numeric - * @param {String} c - * @return {Boolean} isAlphaNumeric + /** + * Test whether given character is alphabetic or numeric + * @param {String} c + * @return {Boolean} isAlphaNumeric */ var regexAlphaNumeric = /[a-zA-Z_0-9.:#]/; function isAlphaNumeric(c) { return regexAlphaNumeric.test(c); } - /** - * Merge all options of object b into object b - * @param {Object} a - * @param {Object} b - * @return {Object} a + /** + * Merge all options of object b into object b + * @param {Object} a + * @param {Object} b + * @return {Object} a */ function merge(a, b) { if (!a) { @@ -34217,17 +34342,17 @@ return /******/ (function(modules) { // webpackBootstrap return a; } - /** - * Set a value in an object, where the provided parameter name can be a - * path with nested parameters. For example: - * - * var obj = {a: 2}; - * setValue(obj, 'b.c', 3); // obj = {a: 2, b: {c: 3}} - * - * @param {Object} obj - * @param {String} path A parameter name or dot-separated parameter path, - * like "color.highlight.border". - * @param {*} value + /** + * Set a value in an object, where the provided parameter name can be a + * path with nested parameters. For example: + * + * var obj = {a: 2}; + * setValue(obj, 'b.c', 3); // obj = {a: 2, b: {c: 3}} + * + * @param {Object} obj + * @param {String} path A parameter name or dot-separated parameter path, + * like "color.highlight.border". + * @param {*} value */ function setValue(obj, path, value) { var keys = path.split('.'); @@ -34247,11 +34372,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Add a node to a graph object. If there is already a node with - * the same id, their attributes will be merged. - * @param {Object} graph - * @param {Object} node + /** + * Add a node to a graph object. If there is already a node with + * the same id, their attributes will be merged. + * @param {Object} graph + * @param {Object} node */ function addNode(graph, node) { var i, len; @@ -34304,10 +34429,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Add an edge to a graph object - * @param {Object} graph - * @param {Object} edge + /** + * Add an edge to a graph object + * @param {Object} graph + * @param {Object} edge */ function addEdge(graph, edge) { if (!graph.edges) { @@ -34320,14 +34445,14 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Create an edge to a graph object - * @param {Object} graph - * @param {String | Number | Object} from - * @param {String | Number | Object} to - * @param {String} type - * @param {Object | null} attr - * @return {Object} edge + /** + * Create an edge to a graph object + * @param {Object} graph + * @param {String | Number | Object} from + * @param {String | Number | Object} to + * @param {String} type + * @param {Object | null} attr + * @return {Object} edge */ function createEdge(graph, from, to, type, attr) { var edge = { @@ -34344,9 +34469,9 @@ return /******/ (function(modules) { // webpackBootstrap return edge; } - /** - * Get next token in the current dot file. - * The token and token type are available as token and tokenType + /** + * Get next token in the current dot file. + * The token and token type are available as token and tokenType */ function getToken() { tokenType = TOKENTYPE.NULL; @@ -34485,9 +34610,9 @@ return /******/ (function(modules) { // webpackBootstrap throw new SyntaxError('Syntax error in part "' + chop(token, 30) + '"'); } - /** - * Parse a graph. - * @returns {Object} graph + /** + * Parse a graph. + * @returns {Object} graph */ function parseGraph() { var graph = {}; @@ -34542,9 +34667,9 @@ return /******/ (function(modules) { // webpackBootstrap return graph; } - /** - * Parse a list with statements. - * @param {Object} graph + /** + * Parse a list with statements. + * @param {Object} graph */ function parseStatements(graph) { while (token !== '' && token != '}') { @@ -34555,11 +34680,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Parse a single statement. Can be a an attribute statement, node - * statement, a series of node statements and edge statements, or a - * parameter. - * @param {Object} graph + /** + * Parse a single statement. Can be a an attribute statement, node + * statement, a series of node statements and edge statements, or a + * parameter. + * @param {Object} graph */ function parseStatement(graph) { // parse subgraph @@ -34598,10 +34723,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Parse a subgraph - * @param {Object} graph parent graph object - * @return {Object | null} subgraph + /** + * Parse a subgraph + * @param {Object} graph parent graph object + * @return {Object | null} subgraph */ function parseSubgraph(graph) { var subgraph = null; @@ -34656,14 +34781,14 @@ return /******/ (function(modules) { // webpackBootstrap return subgraph; } - /** - * parse an attribute statement like "node [shape=circle fontSize=16]". - * Available keywords are 'node', 'edge', 'graph'. - * The previous list with default attributes will be replaced - * @param {Object} graph - * @returns {String | null} keyword Returns the name of the parsed attribute - * (node, edge, graph), or null if nothing - * is parsed. + /** + * parse an attribute statement like "node [shape=circle fontSize=16]". + * Available keywords are 'node', 'edge', 'graph'. + * The previous list with default attributes will be replaced + * @param {Object} graph + * @returns {String | null} keyword Returns the name of the parsed attribute + * (node, edge, graph), or null if nothing + * is parsed. */ function parseAttributeStatement(graph) { // attribute statements @@ -34690,10 +34815,10 @@ return /******/ (function(modules) { // webpackBootstrap return null; } - /** - * parse a node statement - * @param {Object} graph - * @param {String | Number} id + /** + * parse a node statement + * @param {Object} graph + * @param {String | Number} id */ function parseNodeStatement(graph, id) { // node statement @@ -34710,10 +34835,10 @@ return /******/ (function(modules) { // webpackBootstrap parseEdge(graph, id); } - /** - * Parse an edge or a series of edges - * @param {Object} graph - * @param {String | Number} from Id of the from node + /** + * Parse an edge or a series of edges + * @param {Object} graph + * @param {String | Number} from Id of the from node */ function parseEdge(graph, from) { while (token === '->' || token === '--') { @@ -34746,10 +34871,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Parse a set with attributes, - * for example [label="1.000", shape=solid] - * @return {Object | null} attr + /** + * Parse a set with attributes, + * for example [label="1.000", shape=solid] + * @return {Object | null} attr */ function parseAttributeList() { var attr = null; @@ -34790,30 +34915,30 @@ return /******/ (function(modules) { // webpackBootstrap return attr; } - /** - * Create a syntax error with extra information on current token and index. - * @param {String} message - * @returns {SyntaxError} err + /** + * Create a syntax error with extra information on current token and index. + * @param {String} message + * @returns {SyntaxError} err */ function newSyntaxError(message) { return new SyntaxError(message + ', got "' + chop(token, 30) + '" (char ' + index + ')'); } - /** - * Chop off text after a maximum length - * @param {String} text - * @param {Number} maxLength - * @returns {String} + /** + * Chop off text after a maximum length + * @param {String} text + * @param {Number} maxLength + * @returns {String} */ function chop(text, maxLength) { return text.length <= maxLength ? text : text.substr(0, 27) + '...'; } - /** - * Execute a function fn for each pair of elements in two arrays - * @param {Array | *} array1 - * @param {Array | *} array2 - * @param {function} fn + /** + * Execute a function fn for each pair of elements in two arrays + * @param {Array | *} array1 + * @param {Array | *} array2 + * @param {function} fn */ function forEach2(array1, array2, fn) { if (Array.isArray(array1)) { @@ -34837,14 +34962,14 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Set a nested property on an object - * When nested objects are missing, they will be created. - * For example setProp({}, 'font.color', 'red') will return {font: {color: 'red'}} - * @param {Object} object - * @param {string} path A dot separated string like 'font.color' - * @param {*} value Value for the property - * @return {Object} Returns the original object, allows for chaining. + /** + * Set a nested property on an object + * When nested objects are missing, they will be created. + * For example setProp({}, 'font.color', 'red') will return {font: {color: 'red'}} + * @param {Object} object + * @param {string} path A dot separated string like 'font.color' + * @param {*} value Value for the property + * @return {Object} Returns the original object, allows for chaining. */ function setProp(object, path, value) { var names = path.split('.'); @@ -34866,11 +34991,11 @@ return /******/ (function(modules) { // webpackBootstrap return object; } - /** - * Convert an object with DOT attributes to their vis.js equivalents. - * @param {Object} attr Object with DOT attributes - * @param {Object} mapping - * @return {Object} Returns an object with vis.js attributes + /** + * Convert an object with DOT attributes to their vis.js equivalents. + * @param {Object} attr Object with DOT attributes + * @param {Object} mapping + * @return {Object} Returns an object with vis.js attributes */ function convertAttr(attr, mapping) { var converted = {}; @@ -34893,11 +35018,11 @@ return /******/ (function(modules) { // webpackBootstrap return converted; } - /** - * Convert a string containing a graph in DOT language into a map containing - * with nodes and edges in the format of graph. - * @param {String} data Text containing a graph in DOT-notation - * @return {Object} graphData + /** + * Convert a string containing a graph in DOT language into a map containing + * with nodes and edges in the format of graph. + * @param {String} data Text containing a graph in DOT-notation + * @return {Object} graphData */ function DOTToGraph(data) { // parse the DOT file @@ -34925,10 +35050,10 @@ return /******/ (function(modules) { // webpackBootstrap // copy the edges if (dotData.edges) { - /** - * Convert an edge in DOT format to an edge with VisGraph format - * @param {Object} dotEdge - * @returns {Object} graphEdge + /** + * Convert an edge in DOT format to an edge with VisGraph format + * @param {Object} dotEdge + * @returns {Object} graphEdge */ var convertEdge = function convertEdge(dotEdge) { var graphEdge = { @@ -35233,9 +35358,9 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - /** - * @class Images - * This class loads images and keeps them stored. + /** + * @class Images + * This class loads images and keeps them stored. */ var Images = function () { function Images(callback) { @@ -35246,10 +35371,10 @@ return /******/ (function(modules) { // webpackBootstrap this.callback = callback; } - /** - * @param {string} url The original Url that failed to load, if the broken image is successfully loaded it will be added to the cache using this Url as the key so that subsequent requests for this Url will return the broken image - * @param {string} brokenUrl Url the broken image to try and load - * @return {Image} imageToLoadBrokenUrlOn The image object + /** + * @param {string} url The original Url that failed to load, if the broken image is successfully loaded it will be added to the cache using this Url as the key so that subsequent requests for this Url will return the broken image + * @param {string} brokenUrl Url the broken image to try and load + * @return {Image} imageToLoadBrokenUrlOn The image object */ @@ -35273,8 +35398,8 @@ return /******/ (function(modules) { // webpackBootstrap imageToLoadBrokenUrlOn.image.src = brokenUrl; } - /** - * @return {Image} imageToRedrawWith The images that will be passed to the callback when it is invoked + /** + * @return {Image} imageToRedrawWith The images that will be passed to the callback when it is invoked */ }, { @@ -35285,10 +35410,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * @param {string} url Url of the image - * @param {string} brokenUrl Url of an image to use if the url image is not found - * @return {Image} img The image object + /** + * @param {string} url Url of the image + * @param {string} brokenUrl Url of an image to use if the url image is not found + * @return {Image} img The image object */ }, { @@ -35329,12 +35454,12 @@ return /******/ (function(modules) { // webpackBootstrap return img; } - /** - * IE11 fix -- thanks dponch! - * - * Local helper function - * - * @private + /** + * IE11 fix -- thanks dponch! + * + * Local helper function + * + * @private */ }, { @@ -35373,14 +35498,14 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - /** - * Associates a canvas to a given image, containing a number of renderings - * of the image at various sizes. - * - * This technique is known as 'mipmapping'. - * - * NOTE: Images can also be of type 'data:svg+xml`. This code also works - * for svg, but the mipmapping may not be necessary. + /** + * Associates a canvas to a given image, containing a number of renderings + * of the image at various sizes. + * + * This technique is known as 'mipmapping'. + * + * NOTE: Images can also be of type 'data:svg+xml`. This code also works + * for svg, but the mipmapping may not be necessary. */ var CachedImage = function () { function CachedImage(image) { @@ -35392,8 +35517,8 @@ return /******/ (function(modules) { // webpackBootstrap this.canvas = document.createElement('canvas'); } - /** - * Called when the image has been succesfully loaded. + /** + * Called when the image has been succesfully loaded. */ @@ -35421,8 +35546,8 @@ return /******/ (function(modules) { // webpackBootstrap this._fillMipMap(); } - /** - * @return {Boolean} true if init() has been called, false otherwise. + /** + * @return {Boolean} true if init() has been called, false otherwise. */ }, { @@ -35431,22 +35556,22 @@ return /******/ (function(modules) { // webpackBootstrap return this.coordinates !== undefined; } - /** - * Redraw main image in various sizes to the context. - * - * The rationale behind this is to reduce artefacts due to interpolation - * at differing zoom levels. - * - * Source: http://stackoverflow.com/q/18761404/1223531 - * - * This methods takes the resizing out of the drawing loop, in order to - * reduce performance overhead. - * - * TODO: The code assumes that a 2D context can always be gotten. This is - * not necessarily true! OTOH, if not true then usage of this class - * is senseless. - * - * @private + /** + * Redraw main image in various sizes to the context. + * + * The rationale behind this is to reduce artefacts due to interpolation + * at differing zoom levels. + * + * Source: http://stackoverflow.com/q/18761404/1223531 + * + * This methods takes the resizing out of the drawing loop, in order to + * reduce performance overhead. + * + * TODO: The code assumes that a 2D context can always be gotten. This is + * not necessarily true! OTOH, if not true then usage of this class + * is senseless. + * + * @private */ }, { @@ -35467,16 +35592,16 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Draw the image, using the mipmap if necessary. - * - * MipMap is only used if param factor > 2; otherwise, original bitmap - * is resized. This is also used to skip mipmap usage, e.g. by setting factor = 1 - * - * Credits to 'Alex de Mulder' for original implementation. - * - * ctx {Context} context on which to draw zoomed image - * factor {Float} scale factor at which to draw + /** + * Draw the image, using the mipmap if necessary. + * + * MipMap is only used if param factor > 2; otherwise, original bitmap + * is resized. This is also used to skip mipmap usage, e.g. by setting factor = 1 + * + * Credits to 'Alex de Mulder' for original implementation. + * + * ctx {Context} context on which to draw zoomed image + * factor {Float} scale factor at which to draw */ }, { @@ -35504,12 +35629,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Check if image is loaded - * - * Source: http://stackoverflow.com/a/1977898/1223531 - * - * @private + /** + * Check if image is loaded + * + * Source: http://stackoverflow.com/a/1977898/1223531 + * + * @private */ }, { @@ -35563,9 +35688,9 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); - /** - * @class Groups - * This class can store groups and options specific for groups. + /** + * @class Groups + * This class can store groups and options specific for groups. */ var Groups = function () { @@ -35626,8 +35751,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Clear all groups + /** + * Clear all groups */ }, { @@ -35637,11 +35762,11 @@ return /******/ (function(modules) { // webpackBootstrap this.groupsArray = []; } - /** - * get group options of a groupname. If groupname is not found, a new group - * is added. - * @param {*} groupname Can be a number, string, Date, etc. - * @return {Object} group The created group, containing all group options + /** + * get group options of a groupname. If groupname is not found, a new group + * is added. + * @param {*} groupname Can be a number, string, Date, etc. + * @return {Object} group The created group, containing all group options */ }, { @@ -35669,12 +35794,12 @@ return /******/ (function(modules) { // webpackBootstrap return group; } - /** - * Add a custom group style - * @param {String} groupName - * @param {Object} style An object containing borderColor, - * backgroundColor, etc. - * @return {Object} group The created group object + /** + * Add a custom group style + * @param {String} groupName + * @param {Object} style An object containing borderColor, + * backgroundColor, etc. + * @return {Object} group The created group object */ }, { @@ -35923,10 +36048,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Set a data set with nodes for the network - * @param {Array | DataSet | DataView} nodes The data containing the nodes. - * @private + /** + * Set a data set with nodes for the network + * @param {Array | DataSet | DataView} nodes The data containing the nodes. + * @private */ }, { @@ -35974,10 +36099,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Add nodes - * @param {Number[] | String[]} ids - * @private + /** + * Add nodes + * @param {Number[] | String[]} ids + * @private */ }, { @@ -36002,10 +36127,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Update existing nodes, or create them when not yet existing - * @param {Number[] | String[]} ids - * @private + /** + * Update existing nodes, or create them when not yet existing + * @param {Number[] | String[]} ids + * @private */ }, { @@ -36034,10 +36159,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Remove existing nodes. If nodes do not exist, the method will just ignore it. - * @param {Number[] | String[]} ids - * @private + /** + * Remove existing nodes. If nodes do not exist, the method will just ignore it. + * @param {Number[] | String[]} ids + * @private */ }, { @@ -36053,10 +36178,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit("_dataChanged"); } - /** - * create a node - * @param properties - * @param constructorClass + /** + * create a node + * @param properties + * @param constructorClass */ }, { @@ -36088,10 +36213,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Returns the positions of the nodes. - * @param ids --> optional, can be array of nodeIds, can be string - * @returns {{}} + /** + * Returns the positions of the nodes. + * @param ids --> optional, can be array of nodeIds, can be string + * @returns {{}} */ }, { @@ -36121,8 +36246,8 @@ return /******/ (function(modules) { // webpackBootstrap return dataArray; } - /** - * Load the XY positions of the nodes into the dataset. + /** + * Load the XY positions of the nodes into the dataset. */ }, { @@ -36143,10 +36268,10 @@ return /******/ (function(modules) { // webpackBootstrap dataset.update(dataArray); } - /** - * get the bounding box of a node. - * @param nodeId - * @returns {j|*} + /** + * get the bounding box of a node. + * @param nodeId + * @returns {j|*} */ }, { @@ -36157,12 +36282,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Get the Ids of nodes connected to this node. - * @param nodeId - * @param direction {String|undefined} values 'from' and 'to' select respectively parent and child nodes only. - * Any other value returns both parent and child nodes. - * @returns {Array} + /** + * Get the Ids of nodes connected to this node. + * @param nodeId + * @param direction {String|undefined} values 'from' and 'to' select respectively parent and child nodes only. + * Any other value returns both parent and child nodes. + * @returns {Array} */ }, { @@ -36192,10 +36317,10 @@ return /******/ (function(modules) { // webpackBootstrap return nodeList; } - /** - * Get the ids of the edges connected to this node. - * @param nodeId - * @returns {*} + /** + * Get the ids of the edges connected to this node. + * @param nodeId + * @returns {*} */ }, { @@ -36213,11 +36338,11 @@ return /******/ (function(modules) { // webpackBootstrap return edgeList; } - /** - * Move a node. - * @param String nodeId - * @param Number x - * @param Number y + /** + * Move a node. + * @param String nodeId + * @param Number x + * @param Number y */ }, { @@ -36288,30 +36413,30 @@ return /******/ (function(modules) { // webpackBootstrap var _require = __webpack_require__(145), printStyle = _require.printStyle; - /** - * @class Node - * A node. A node can be connected to other nodes via one or multiple edges. - * @param {object} options An object containing options for the node. All - * options are optional, except for the id. - * {number} id Id of the node. Required - * {string} label Text label for the node - * {number} x Horizontal position of the node - * {number} y Vertical position of the node - * {string} shape Node shape, available: - * "database", "circle", "ellipse", - * "box", "image", "text", "dot", - * "star", "triangle", "triangleDown", - * "square", "icon" - * {string} image An image url - * {string} title An title text, can be HTML - * {anytype} group A group name or number - * @param {Network.Images} imagelist A list with images. Only needed - * when the node has an image - * @param {Network.Groups} grouplist A list with groups. Needed for - * retrieving group options - * @param {Object} constants An object with default values for - * example for the color - * + /** + * @class Node + * A node. A node can be connected to other nodes via one or multiple edges. + * @param {object} options An object containing options for the node. All + * options are optional, except for the id. + * {number} id Id of the node. Required + * {string} label Text label for the node + * {number} x Horizontal position of the node + * {number} y Vertical position of the node + * {string} shape Node shape, available: + * "database", "circle", "ellipse", + * "box", "image", "text", "dot", + * "star", "triangle", "triangleDown", + * "square", "icon" + * {string} image An image url + * {string} title An title text, can be HTML + * {anytype} group A group name or number + * @param {Network.Images} imagelist A list with images. Only needed + * when the node has an image + * @param {Network.Groups} grouplist A list with groups. Needed for + * retrieving group options + * @param {Object} constants An object with default values for + * example for the color + * */ @@ -36345,9 +36470,9 @@ return /******/ (function(modules) { // webpackBootstrap this.setOptions(options); } - /** - * Attach a edge to the node - * @param {Edge} edge + /** + * Attach a edge to the node + * @param {Edge} edge */ @@ -36359,9 +36484,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Detach a edge from the node - * @param {Edge} edge + /** + * Detach a edge from the node + * @param {Edge} edge */ }, { @@ -36373,10 +36498,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Set or overwrite options for the node - * @param {Object} options an object with options - * @param {Object} constants and object with default, global options + /** + * Set or overwrite options for the node + * @param {Object} options an object with options + * @param {Object} constants and object with default, global options */ }, { @@ -36445,13 +36570,13 @@ return /******/ (function(modules) { // webpackBootstrap return false; } - /** - * Load the images from the options, for the nodes that need them. - * - * TODO: The imageObj members should be moved to CircularImageBase. - * It's the only place where they are required. - * - * @private + /** + * Load the images from the options, for the nodes that need them. + * + * TODO: The imageObj members should be moved to CircularImageBase. + * It's the only place where they are required. + * + * @private */ }, { @@ -36487,13 +36612,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This process all possible shorthands in the new options and makes sure that the parentOptions are fully defined. - * Static so it can also be used by the handler. - * @param parentOptions - * @param newOptions - * @param allowDeletion - * @param globalOptions + /** + * This process all possible shorthands in the new options and makes sure that the parentOptions are fully defined. + * Static so it can also be used by the handler. + * @param parentOptions + * @param newOptions + * @param allowDeletion + * @param globalOptions */ }, { @@ -36625,8 +36750,8 @@ return /******/ (function(modules) { // webpackBootstrap this.needsRefresh(); } - /** - * select this node + /** + * select this node */ }, { @@ -36636,8 +36761,8 @@ return /******/ (function(modules) { // webpackBootstrap this.needsRefresh(); } - /** - * unselect this node + /** + * unselect this node */ }, { @@ -36647,8 +36772,8 @@ return /******/ (function(modules) { // webpackBootstrap this.needsRefresh(); } - /** - * Reset the calculated size of the node, forces it to recalculate its size + /** + * Reset the calculated size of the node, forces it to recalculate its size */ }, { @@ -36657,10 +36782,10 @@ return /******/ (function(modules) { // webpackBootstrap this.shape.refreshNeeded = true; } - /** - * get the title of this node. - * @return {string} title The title of the node, or undefined when no title - * has been set. + /** + * get the title of this node. + * @return {string} title The title of the node, or undefined when no title + * has been set. */ }, { @@ -36669,11 +36794,11 @@ return /******/ (function(modules) { // webpackBootstrap return this.options.title; } - /** - * Calculate the distance to the border of the Node - * @param {CanvasRenderingContext2D} ctx - * @param {Number} angle Angle in radians - * @returns {number} distance Distance to the border in pixels + /** + * Calculate the distance to the border of the Node + * @param {CanvasRenderingContext2D} ctx + * @param {Number} angle Angle in radians + * @returns {number} distance Distance to the border in pixels */ }, { @@ -36682,9 +36807,9 @@ return /******/ (function(modules) { // webpackBootstrap return this.shape.distanceToBorder(ctx, angle); } - /** - * Check if this node has a fixed x and y position - * @return {boolean} true if fixed, false if not + /** + * Check if this node has a fixed x and y position + * @return {boolean} true if fixed, false if not */ }, { @@ -36693,9 +36818,9 @@ return /******/ (function(modules) { // webpackBootstrap return this.options.fixed.x && this.options.fixed.y; } - /** - * check if this node is selecte - * @return {boolean} selected True if node is selected, else false + /** + * check if this node is selecte + * @return {boolean} selected True if node is selected, else false */ }, { @@ -36704,9 +36829,9 @@ return /******/ (function(modules) { // webpackBootstrap return this.selected; } - /** - * Retrieve the value of the node. Can be undefined - * @return {Number} value + /** + * Retrieve the value of the node. Can be undefined + * @return {Number} value */ }, { @@ -36715,11 +36840,11 @@ return /******/ (function(modules) { // webpackBootstrap return this.options.value; } - /** - * Adjust the value range of the node. The node will adjust it's size - * based on its value. - * @param {Number} min - * @param {Number} max + /** + * Adjust the value range of the node. The node will adjust it's size + * based on its value. + * @param {Number} min + * @param {Number} max */ }, { @@ -36741,10 +36866,10 @@ return /******/ (function(modules) { // webpackBootstrap this.updateLabelModule(); } - /** - * Draw this node in the given canvas - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx + /** + * Draw this node in the given canvas + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx */ }, { @@ -36754,8 +36879,8 @@ return /******/ (function(modules) { // webpackBootstrap this.shape.draw(ctx, this.x, this.y, this.selected, this.hover, values); } - /** - * Update the bounding box of the shape + /** + * Update the bounding box of the shape */ }, { @@ -36764,10 +36889,10 @@ return /******/ (function(modules) { // webpackBootstrap this.shape.updateBoundingBox(this.x, this.y, ctx); } - /** - * Recalculate the size of this node in the given canvas - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx + /** + * Recalculate the size of this node in the given canvas + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx */ }, { @@ -36777,10 +36902,10 @@ return /******/ (function(modules) { // webpackBootstrap this.shape.resize(ctx, this.selected, this.hover, values); } - /** - * Check if this object is overlapping with the provided object - * @param {Object} obj an object with parameters left, top, right, bottom - * @return {boolean} True if location is located on node + /** + * Check if this object is overlapping with the provided object + * @param {Object} obj an object with parameters left, top, right, bottom + * @return {boolean} True if location is located on node */ }, { @@ -36789,10 +36914,10 @@ return /******/ (function(modules) { // webpackBootstrap return this.shape.left < obj.right && this.shape.left + this.shape.width > obj.left && this.shape.top < obj.bottom && this.shape.top + this.shape.height > obj.top; } - /** - * Check if this object is overlapping with the provided object - * @param {Object} obj an object with parameters left, top, right, bottom - * @return {boolean} True if location is located on node + /** + * Check if this object is overlapping with the provided object + * @param {Object} obj an object with parameters left, top, right, bottom + * @return {boolean} True if location is located on node */ }, { @@ -36801,10 +36926,10 @@ return /******/ (function(modules) { // webpackBootstrap return this.shape.boundingBox.left < obj.right && this.shape.boundingBox.right > obj.left && this.shape.boundingBox.top < obj.bottom && this.shape.boundingBox.bottom > obj.top; } - /** - * Check valid values for mass - * - * The mass may not be negative or zero. If it is, reset to 1 + /** + * Check valid values for mass + * + * The mass may not be negative or zero. If it is, reset to 1 */ }], [{ @@ -37034,15 +37159,15 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Collapse the font options for the multi-font to single objects, from - * the chain of option objects passed. - * - * If an option for a specific multi-font is not present, the parent - * option is checked for the given option. - * - * NOTE: naming of 'groupOptions' is a misnomer; the actual value passed - * is the new values to set from setOptions(). + /** + * Collapse the font options for the multi-font to single objects, from + * the chain of option objects passed. + * + * If an option for a specific multi-font is not present, the parent + * option is checked for the given option. + * + * NOTE: naming of 'groupOptions' is a misnomer; the actual value passed + * is the new values to set from setOptions(). */ }, { @@ -37050,15 +37175,15 @@ return /******/ (function(modules) { // webpackBootstrap value: function propagateFonts(options, groupOptions, defaultOptions) { if (!this.fontOptions.multi) return; - /** - * Resolve the font options path. - * If valid, return a reference to the object in question. - * Otherwise, just return null. - * - * param 'mod' is optional. - * - * options {Object} base object to determine path from - * mod {string|undefined} if present, sub path for the mod-font + /** + * Resolve the font options path. + * If valid, return a reference to the object in question. + * Otherwise, just return null. + * + * param 'mod' is optional. + * + * options {Object} base object to determine path from + * mod {string|undefined} if present, sub path for the mod-font */ var pathP = function pathP(options, mod) { if (!options || !options.font) return null; @@ -37073,11 +37198,11 @@ return /******/ (function(modules) { // webpackBootstrap return opt; }; - /** - * Get property value from options.font[mod][property] if present. - * If mod not passed, use property value from options.font[property]. - * - * @return value if found, null otherwise. + /** + * Get property value from options.font[mod][property] if present. + * If mod not passed, use property value from options.font[property]. + * + * @return value if found, null otherwise. */ var getP = function getP(options, mod, property) { var opt = pathP(options, mod); @@ -37163,13 +37288,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Main function. This is called from anything that wants to draw a label. - * @param ctx - * @param x - * @param y - * @param selected - * @param baseline + /** + * Main function. This is called from anything that wants to draw a label. + * @param ctx + * @param x + * @param y + * @param selected + * @param baseline */ }, { @@ -37193,10 +37318,10 @@ return /******/ (function(modules) { // webpackBootstrap this._drawText(ctx, selected, hover, x, y, baseline); } - /** - * Draws the label background - * @param {CanvasRenderingContext2D} ctx - * @private + /** + * Draws the label background + * @param {CanvasRenderingContext2D} ctx + * @private */ }, { @@ -37228,12 +37353,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * - * @param ctx - * @param x - * @param baseline - * @private + /** + * + * @param ctx + * @param x + * @param baseline + * @private */ }, { @@ -37329,13 +37454,13 @@ return /******/ (function(modules) { // webpackBootstrap return [x, yLine]; } - /** - * fade in when relative scale is between threshold and threshold - 1. - * If the relative scale would be smaller than threshold -1 the draw function would have returned before coming here. - * - * @param viewFontSize - * @returns {*[]} - * @private + /** + * fade in when relative scale is between threshold and threshold - 1. + * If the relative scale would be smaller than threshold -1 the draw function would have returned before coming here. + * + * @param viewFontSize + * @returns {*[]} + * @private */ }, { @@ -37351,11 +37476,11 @@ return /******/ (function(modules) { // webpackBootstrap return [fontColor, strokeColor]; } - /** - * - * @param ctx - * @param selected - * @returns {{width: number, height: number}} + /** + * + * @param ctx + * @param selected + * @returns {{width: number, height: number}} */ }, { @@ -37372,13 +37497,13 @@ return /******/ (function(modules) { // webpackBootstrap }; } - /** - * - * @param ctx - * @param selected - * @param x - * @param y - * @param baseline + /** + * + * @param ctx + * @param selected + * @param x + * @param y + * @param baseline */ }, { @@ -37402,8 +37527,8 @@ return /******/ (function(modules) { // webpackBootstrap this.labelDirty = false; } - /** - * normalize the markup system + /** + * normalize the markup system */ }, { @@ -37418,11 +37543,11 @@ return /******/ (function(modules) { // webpackBootstrap return system; } - /** - * Explodes a piece of text into single-font blocks using a given markup - * @param text - * @param markupSystem - * @returns [{ text, mod }] + /** + * Explodes a piece of text into single-font blocks using a given markup + * @param text + * @param markupSystem + * @returns [{ text, mod }] */ }, { @@ -37714,11 +37839,11 @@ return /******/ (function(modules) { // webpackBootstrap return selected !== this.fontOptions.selectedState && hover !== this.fontOptions.hoverState; } - /** - * This explodes the label string into lines and sets the width, height and number of lines. - * @param ctx - * @param selected - * @private + /** + * This explodes the label string into lines and sets the width, height and number of lines. + * @param ctx + * @param selected + * @private */ }, { @@ -37881,17 +38006,17 @@ return /******/ (function(modules) { // webpackBootstrap parentOptions.vadjust = Number(parentOptions.vadjust); } - /** - * If in-variable is a string, parse it as a font specifier. - * - * Note that following is not done here and have to be done after the call: - * - No number conversion (size) - * - Not all font options are set (vadjust, mod) - * - * @param inOptions {Object} font options to parse - * @param outOptions {Object} out-parameter, object in which to store the parse results (if any) - * - * @return true if font parsed as string, false otherwise + /** + * If in-variable is a string, parse it as a font specifier. + * + * Note that following is not done here and have to be done after the call: + * - No number conversion (size) + * - Not all font options are set (vadjust, mod) + * + * @param inOptions {Object} font options to parse + * @param outOptions {Object} out-parameter, object in which to store the parse results (if any) + * + * @return true if font parsed as string, false otherwise */ }, { @@ -37983,20 +38108,23 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(50); module.exports = __webpack_require__(174); + /***/ }), /* 174 */ /***/ (function(module, exports, __webpack_require__) { - var classof = __webpack_require__(54) - , ITERATOR = __webpack_require__(47)('iterator') - , Iterators = __webpack_require__(8); - module.exports = __webpack_require__(17).isIterable = function(it){ + var classof = __webpack_require__(54); + var ITERATOR = __webpack_require__(47)('iterator'); + var Iterators = __webpack_require__(8); + module.exports = __webpack_require__(17).isIterable = function (it) { var O = Object(it); return O[ITERATOR] !== undefined || '@@iterator' in O + // eslint-disable-next-line no-prototype-builtins || Iterators.hasOwnProperty(classof(O)); }; + /***/ }), /* 175 */ /***/ (function(module, exports, __webpack_require__) { @@ -38107,20 +38235,22 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(178); module.exports = __webpack_require__(17).Object.getPrototypeOf; + /***/ }), /* 178 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.2.9 Object.getPrototypeOf(O) - var toObject = __webpack_require__(49) - , $getPrototypeOf = __webpack_require__(48); + var toObject = __webpack_require__(49); + var $getPrototypeOf = __webpack_require__(48); - __webpack_require__(61)('getPrototypeOf', function(){ - return function getPrototypeOf(it){ + __webpack_require__(61)('getPrototypeOf', function () { + return function getPrototypeOf(it) { return $getPrototypeOf(toObject(it)); }; }); + /***/ }), /* 179 */ /***/ (function(module, exports, __webpack_require__) { @@ -38194,13 +38324,15 @@ return /******/ (function(modules) { // webpackBootstrap __webpack_require__(183); module.exports = __webpack_require__(17).Object.setPrototypeOf; + /***/ }), /* 183 */ /***/ (function(module, exports, __webpack_require__) { // 19.1.3.19 Object.setPrototypeOf(O, proto) var $export = __webpack_require__(15); - $export($export.S, 'Object', {setPrototypeOf: __webpack_require__(184).set}); + $export($export.S, 'Object', { setPrototypeOf: __webpack_require__(184).set }); + /***/ }), /* 184 */ @@ -38208,23 +38340,23 @@ return /******/ (function(modules) { // webpackBootstrap // Works with __proto__ only. Old v8 can't work with null proto objects. /* eslint-disable no-proto */ - var isObject = __webpack_require__(23) - , anObject = __webpack_require__(22); - var check = function(O, proto){ + var isObject = __webpack_require__(23); + var anObject = __webpack_require__(22); + var check = function (O, proto) { anObject(O); - if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); }; module.exports = { set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function(test, buggy, set){ + function (test, buggy, set) { try { set = __webpack_require__(18)(Function.call, __webpack_require__(78).f(Object.prototype, '__proto__').set, 2); set(test, []); buggy = !(test instanceof Array); - } catch(e){ buggy = true; } - return function setPrototypeOf(O, proto){ + } catch (e) { buggy = true; } + return function setPrototypeOf(O, proto) { check(O, proto); - if(buggy)O.__proto__ = proto; + if (buggy) O.__proto__ = proto; else set(O, proto); return O; }; @@ -38232,6 +38364,7 @@ return /******/ (function(modules) { // webpackBootstrap check: check }; + /***/ }), /* 185 */ /***/ (function(module, exports, __webpack_require__) { @@ -38355,10 +38488,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Determine if the shape of a node needs to be recalculated. - * - * @protected + /** + * Determine if the shape of a node needs to be recalculated. + * + * @protected */ }, { @@ -38420,11 +38553,11 @@ return /******/ (function(modules) { // webpackBootstrap this.boundingBox.right += margin; } - /** - * Actual implementation of this method call. - * - * Doing it like this makes it easier to override - * in the child classes. + /** + * Actual implementation of this method call. + * + * Doing it like this makes it easier to override + * in the child classes. */ }, { @@ -38443,10 +38576,10 @@ return /******/ (function(modules) { // webpackBootstrap this.boundingBox.right = this.left + this.width; } - /** - * Default implementation of this method call. - * - * This acts as a stub which can be overridden. + /** + * Default implementation of this method call. + * + * This acts as a stub which can be overridden. */ }, { @@ -38596,18 +38729,18 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - /** - * NOTE: This is a bad base class - * - * Child classes are: - * - * Image - uses *only* image methods - * Circle - uses *only* _drawRawCircle - * CircleImage - uses all - * - * TODO: Refactor, move _drawRawCircle to different module, derive Circle from NodeBase - * Rename this to ImageBase - * Consolidate common code in Image and CircleImage to base class + /** + * NOTE: This is a bad base class + * + * Child classes are: + * + * Image - uses *only* image methods + * Circle - uses *only* _drawRawCircle + * CircleImage - uses all + * + * TODO: Refactor, move _drawRawCircle to different module, derive Circle from NodeBase + * Rename this to ImageBase + * Consolidate common code in Image and CircleImage to base class */ var CircleImageBase = function (_NodeBase) { (0, _inherits3['default'])(CircleImageBase, _NodeBase); @@ -38632,17 +38765,17 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Set the images for this node. - * - * The images can be updated after the initial setting of options; - * therefore, this method needs to be reentrant. - * - * For correct working in error cases, it is necessary to properly set - * field 'nodes.brokenImage' in the options. - * - * @param {Image} imageObj required; main image to show for this node - * @param {Image|undefined} optional; image to show when node is selected + /** + * Set the images for this node. + * + * The images can be updated after the initial setting of options; + * therefore, this method needs to be reentrant. + * + * For correct working in error cases, it is necessary to properly set + * field 'nodes.brokenImage' in the options. + * + * @param {Image} imageObj required; main image to show for this node + * @param {Image|undefined} optional; image to show when node is selected */ }, { @@ -38657,12 +38790,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Set selection and switch between the base and the selected image. - * - * Do the switch only if imageObjAlt exists. - * - * @param {true|false} selected value of new selected state for current node + /** + * Set selection and switch between the base and the selected image. + * + * Do the switch only if imageObjAlt exists. + * + * @param {true|false} selected value of new selected state for current node */ }, { @@ -38678,10 +38811,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Adjust the node dimensions for a loaded image. - * - * Pre: this.imageObj is valid + /** + * Adjust the node dimensions for a loaded image. + * + * Pre: this.imageObj is valid */ }, { @@ -40109,11 +40242,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Load edges by reading the data table - * @param {Array | DataSet | DataView} edges The data containing the edges. - * @private - * @private + /** + * Load edges by reading the data table + * @param {Array | DataSet | DataView} edges The data containing the edges. + * @private + * @private */ }, { @@ -40165,10 +40298,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Add edges - * @param {Number[] | String[]} ids - * @private + /** + * Add edges + * @param {Number[] | String[]} ids + * @private */ }, { @@ -40198,10 +40331,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Update existing edges, or create them when not yet existing - * @param {Number[] | String[]} ids - * @private + /** + * Update existing edges, or create them when not yet existing + * @param {Number[] | String[]} ids + * @private */ }, { @@ -40234,10 +40367,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Remove existing edges. Non existing ids will be ignored - * @param {Number[] | String[]} ids - * @private + /** + * Remove existing edges. Non existing ids will be ignored + * @param {Number[] | String[]} ids + * @private */ }, { @@ -40277,9 +40410,9 @@ return /******/ (function(modules) { // webpackBootstrap return new Edge(properties, this.body, this.options, this.defaultOptions, this.edgeOptions); } - /** - * Reconnect all edges - * @private + /** + * Reconnect all edges + * @private */ }, { @@ -40365,20 +40498,20 @@ return /******/ (function(modules) { // webpackBootstrap var BezierEdgeStatic = __webpack_require__(208)['default']; var StraightEdge = __webpack_require__(209)['default']; - /** - * @class Edge - * - * A edge connects two nodes - * @param {Object} properties Object with options. Must contain - * At least options from and to. - * Available options: from (number), - * to (number), label (string, color (string), - * width (number), style (string), - * length (number), title (string) - * @param {Network} network A Network object, used to find and edge to - * nodes. - * @param {Object} constants An object with default values for - * example for the color + /** + * @class Edge + * + * A edge connects two nodes + * @param {Object} properties Object with options. Must contain + * At least options from and to. + * Available options: from (number), + * to (number), label (string, color (string), + * width (number), style (string), + * length (number), title (string) + * @param {Network} network A Network object, used to find and edge to + * nodes. + * @param {Object} constants An object with default values for + * example for the color */ var Edge = function () { @@ -40416,10 +40549,10 @@ return /******/ (function(modules) { // webpackBootstrap this.setOptions(options); } - /** - * Set or overwrite options for the edge - * @param {Object} options an object with options - * @param doNotEmit + /** + * Set or overwrite options for the edge + * @param {Object} options an object with options + * @param doNotEmit */ @@ -40557,8 +40690,8 @@ return /******/ (function(modules) { // webpackBootstrap return values; } - /** - * update the options in the label module + /** + * update the options in the label module */ }, { @@ -40572,9 +40705,9 @@ return /******/ (function(modules) { // webpackBootstrap this.labelModule.choosify(this.edgeOptions, options, this.defaultOptions); } - /** - * update the edge type, set the options - * @returns {boolean} + /** + * update the edge type, set the options + * @returns {boolean} */ }, { @@ -40611,8 +40744,8 @@ return /******/ (function(modules) { // webpackBootstrap return dataChanged; } - /** - * Connect an edge to its nodes + /** + * Connect an edge to its nodes */ }, { @@ -40639,8 +40772,8 @@ return /******/ (function(modules) { // webpackBootstrap this.edgeType.connect(); } - /** - * Disconnect an edge from its nodes + /** + * Disconnect an edge from its nodes */ }, { @@ -40658,10 +40791,10 @@ return /******/ (function(modules) { // webpackBootstrap this.connected = false; } - /** - * get the title of this edge. - * @return {string} title The title of the edge, or undefined when no title - * has been set. + /** + * get the title of this edge. + * @return {string} title The title of the edge, or undefined when no title + * has been set. */ }, { @@ -40670,9 +40803,9 @@ return /******/ (function(modules) { // webpackBootstrap return this.title; } - /** - * check if this node is selecte - * @return {boolean} selected True if node is selected, else false + /** + * check if this node is selecte + * @return {boolean} selected True if node is selected, else false */ }, { @@ -40681,9 +40814,9 @@ return /******/ (function(modules) { // webpackBootstrap return this.selected; } - /** - * Retrieve the value of the edge. Can be undefined - * @return {Number} value + /** + * Retrieve the value of the edge. Can be undefined + * @return {Number} value */ }, { @@ -40692,12 +40825,12 @@ return /******/ (function(modules) { // webpackBootstrap return this.options.value; } - /** - * Adjust the value range of the edge. The edge will adjust it's width - * based on its value. - * @param {Number} min - * @param {Number} max - * @param total + /** + * Adjust the value range of the edge. The edge will adjust it's width + * based on its value. + * @param {Number} min + * @param {Number} max + * @param total */ }, { @@ -40734,11 +40867,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Redraw a edge - * Draw this edge in the given canvas - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx + /** + * Redraw a edge + * Draw this edge in the given canvas + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx */ }, { @@ -40835,10 +40968,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Check if this object is overlapping with the provided object - * @param {Object} obj an object with parameters left, top - * @return {boolean} True if location is located on the edge + /** + * Check if this object is overlapping with the provided object + * @param {Object} obj an object with parameters left, top + * @return {boolean} True if location is located on the edge */ }, { @@ -40861,10 +40994,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Rotates the canvas so the text is most readable - * @param {CanvasRenderingContext2D} ctx - * @private + /** + * Rotates the canvas so the text is most readable + * @param {CanvasRenderingContext2D} ctx + * @private */ }, { @@ -40882,14 +41015,14 @@ return /******/ (function(modules) { // webpackBootstrap ctx.rotate(angleInDegrees); } - /** - * Get a point on a circle - * @param {Number} x - * @param {Number} y - * @param {Number} radius - * @param {Number} percentage. Value between 0 (line start) and 1 (line end) - * @return {Object} point - * @private + /** + * Get a point on a circle + * @param {Number} x + * @param {Number} y + * @param {Number} radius + * @param {Number} percentage. Value between 0 (line start) and 1 (line end) + * @return {Object} point + * @private */ }, { @@ -40912,9 +41045,9 @@ return /******/ (function(modules) { // webpackBootstrap this.selected = false; } - /** - * cleans all required things on delete - * @returns {*} + /** + * cleans all required things on delete + * @returns {*} */ }, { @@ -41069,10 +41202,10 @@ return /******/ (function(modules) { // webpackBootstrap return (0, _possibleConstructorReturn3['default'])(this, (CubicBezierEdge.__proto__ || (0, _getPrototypeOf2['default'])(CubicBezierEdge)).call(this, options, body, labelModule)); } - /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private */ @@ -41133,12 +41266,12 @@ return /******/ (function(modules) { // webpackBootstrap return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via1, via2); } - /** - * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way - * @param percentage - * @param via - * @returns {{x: number, y: number}} - * @private + /** + * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way + * @param percentage + * @param via + * @returns {{x: number, y: number}} + * @private */ }, { @@ -41210,18 +41343,18 @@ return /******/ (function(modules) { // webpackBootstrap return (0, _possibleConstructorReturn3['default'])(this, (CubicBezierEdgeBase.__proto__ || (0, _getPrototypeOf2['default'])(CubicBezierEdgeBase)).call(this, options, body, labelModule)); } - /** - * Calculate the distance between a point (x3,y3) and a line segment from - * (x1,y1) to (x2,y2). - * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment - * https://en.wikipedia.org/wiki/B%C3%A9zier_curve - * @param {number} x1 from x - * @param {number} y1 from y - * @param {number} x2 to x - * @param {number} y2 to y - * @param {number} x3 point to check x - * @param {number} y3 point to check y - * @private + /** + * Calculate the distance between a point (x3,y3) and a line segment from + * (x1,y1) to (x2,y2). + * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment + * https://en.wikipedia.org/wiki/B%C3%A9zier_curve + * @param {number} x1 from x + * @param {number} y1 from y + * @param {number} x2 to x + * @param {number} y2 to y + * @param {number} x3 point to check x + * @param {number} y3 point to check y + * @private */ @@ -41306,18 +41439,18 @@ return /******/ (function(modules) { // webpackBootstrap return (0, _possibleConstructorReturn3['default'])(this, (BezierEdgeBase.__proto__ || (0, _getPrototypeOf2['default'])(BezierEdgeBase)).call(this, options, body, labelModule)); } - /** - * This function uses binary search to look for the point where the bezier curve crosses the border of the node. - * - * @param nearNode - * @param ctx - * @param viaNode - * @param nearNode - * @param ctx - * @param viaNode - * @param nearNode - * @param ctx - * @param viaNode + /** + * This function uses binary search to look for the point where the bezier curve crosses the border of the node. + * + * @param nearNode + * @param ctx + * @param viaNode + * @param nearNode + * @param ctx + * @param viaNode + * @param nearNode + * @param ctx + * @param viaNode */ @@ -41371,17 +41504,17 @@ return /******/ (function(modules) { // webpackBootstrap return pos; } - /** - * Calculate the distance between a point (x3,y3) and a line segment from - * (x1,y1) to (x2,y2). - * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment - * @param {number} x1 from x - * @param {number} y1 from y - * @param {number} x2 to x - * @param {number} y2 to y - * @param {number} x3 point to check x - * @param {number} y3 point to check y - * @private + /** + * Calculate the distance between a point (x3,y3) and a line segment from + * (x1,y1) to (x2,y2). + * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment + * @param {number} x1 from x + * @param {number} y1 from y + * @param {number} x2 to x + * @param {number} y2 to y + * @param {number} x3 point to check x + * @param {number} y3 point to check y + * @private */ }, { @@ -41411,18 +41544,18 @@ return /******/ (function(modules) { // webpackBootstrap return minDistance; } - /** - * Draw a bezier curve between two nodes - * - * The method accepts zero, one or two control points. - * Passing zero control points just draws a straight line - * - * @param {CanvasRenderingContext2D} ctx - * @param {Object} values | options for shadow drawing - * @param {Object|undefined} viaNode1 | first control point for curve drawing - * @param {Object|undefined} viaNode2 | second control point for curve drawing - * - * @protected + /** + * Draw a bezier curve between two nodes + * + * The method accepts zero, one or two control points. + * Passing zero control points just draws a straight line + * + * @param {CanvasRenderingContext2D} ctx + * @param {Object} values | options for shadow drawing + * @param {Object|undefined} viaNode1 | first control point for curve drawing + * @param {Object|undefined} viaNode2 | second control point for curve drawing + * + * @protected */ }, { @@ -41521,12 +41654,12 @@ return /******/ (function(modules) { // webpackBootstrap this.id = this.options.id; } - /** - * Redraw a edge as a line - * Draw this edge in the given canvas - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx - * @private + /** + * Redraw a edge as a line + * Draw this edge in the given canvas + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx + * @private */ }, { @@ -41670,14 +41803,14 @@ return /******/ (function(modules) { // webpackBootstrap return [x, y, radius]; } - /** - * Get a point on a circle - * @param {Number} x - * @param {Number} y - * @param {Number} radius - * @param {Number} percentage. Value between 0 (line start) and 1 (line end) - * @return {Object} point - * @private + /** + * Get a point on a circle + * @param {Number} x + * @param {Number} y + * @param {Number} radius + * @param {Number} percentage. Value between 0 (line start) and 1 (line end) + * @return {Object} point + * @private */ }, { @@ -41690,13 +41823,13 @@ return /******/ (function(modules) { // webpackBootstrap }; } - /** - * This function uses binary search to look for the point where the circle crosses the border of the node. - * @param node - * @param ctx - * @param options - * @returns {*} - * @private + /** + * This function uses binary search to look for the point where the circle crosses the border of the node. + * @param node + * @param ctx + * @param options + * @returns {*} + * @private */ }, { @@ -41750,11 +41883,11 @@ return /******/ (function(modules) { // webpackBootstrap return pos; } - /** - * Get the line width of the edge. Depends on width and whether one of the - * connected nodes is selected. - * @return {Number} width - * @private + /** + * Get the line width of the edge. Depends on width and whether one of the + * connected nodes is selected. + * @return {Number} width + * @private */ }, { @@ -41808,13 +41941,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Draw a line from a node to itself, a circle - * @param {CanvasRenderingContext2D} ctx - * @param {Number} x - * @param {Number} y - * @param {Number} radius - * @private + /** + * Draw a line from a node to itself, a circle + * @param {CanvasRenderingContext2D} ctx + * @param {Number} x + * @param {Number} y + * @param {Number} radius + * @private */ }, { @@ -41832,17 +41965,17 @@ return /******/ (function(modules) { // webpackBootstrap this.disableShadow(ctx, values); } - /** - * Calculate the distance between a point (x3,y3) and a line segment from - * (x1,y1) to (x2,y2). - * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment - * @param {number} x1 - * @param {number} y1 - * @param {number} x2 - * @param {number} y2 - * @param {number} x3 - * @param {number} y3 - * @private + /** + * Calculate the distance between a point (x3,y3) and a line segment from + * (x1,y1) to (x2,y2). + * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} x3 + * @param {number} y3 + * @private */ }, { @@ -41898,11 +42031,11 @@ return /******/ (function(modules) { // webpackBootstrap return Math.sqrt(dx * dx + dy * dy); } - /** - * - * @param ctx - * @param position - * @param viaNode + /** + * + * @param ctx + * @param position + * @param viaNode */ }, { @@ -41982,12 +42115,12 @@ return /******/ (function(modules) { // webpackBootstrap return { point: arrowPoint, core: arrowCore, angle: angle, length: length, type: type }; } - /** - * - * @param ctx - * @param selected - * @param hover - * @param arrowData + /** + * + * @param ctx + * @param selected + * @param hover + * @param arrowData */ }, { @@ -42138,9 +42271,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * remove the support nodes - * @returns {boolean} + /** + * remove the support nodes + * @returns {boolean} */ }, { @@ -42155,12 +42288,12 @@ return /******/ (function(modules) { // webpackBootstrap return false; } - /** - * Bezier curves require an anchor point to calculate the smooth flow. These points are nodes. These nodes are invisible but - * are used for the force calculation. - * - * The changed data is not called, if needed, it is returned by the main edge constructor. - * @private + /** + * Bezier curves require an anchor point to calculate the smooth flow. These points are nodes. These nodes are invisible but + * are used for the force calculation. + * + * The changed data is not called, if needed, it is returned by the main edge constructor. + * @private */ }, { @@ -42192,10 +42325,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private */ }, { @@ -42209,12 +42342,12 @@ return /******/ (function(modules) { // webpackBootstrap return this.via; } - /** - * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way - * @param percentage - * @param viaNode - * @returns {{x: number, y: number}} - * @private + /** + * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way + * @param percentage + * @param viaNode + * @returns {{x: number, y: number}} + * @private */ }, { @@ -42303,10 +42436,10 @@ return /******/ (function(modules) { // webpackBootstrap return (0, _possibleConstructorReturn3['default'])(this, (BezierEdgeStatic.__proto__ || (0, _getPrototypeOf2['default'])(BezierEdgeStatic)).call(this, options, body, labelModule)); } - /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private */ @@ -42321,10 +42454,10 @@ return /******/ (function(modules) { // webpackBootstrap return this._getViaCoordinates(); } - /** - * We do not use the to and fromPoints here to make the via nodes the same as edges without arrows. - * @returns {{x: undefined, y: undefined}} - * @private + /** + * We do not use the to and fromPoints here to make the via nodes the same as edges without arrows. + * @returns {{x: undefined, y: undefined}} + * @private */ }, { @@ -42455,12 +42588,12 @@ return /******/ (function(modules) { // webpackBootstrap return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, viaNode); } - /** - * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way - * @param percentage - * @param viaNode - * @returns {{x: number, y: number}} - * @private + /** + * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way + * @param percentage + * @param viaNode + * @returns {{x: number, y: number}} + * @private */ }, { @@ -42524,10 +42657,10 @@ return /******/ (function(modules) { // webpackBootstrap return (0, _possibleConstructorReturn3['default'])(this, (StraightEdge.__proto__ || (0, _getPrototypeOf2['default'])(StraightEdge)).call(this, options, body, labelModule)); } - /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private */ @@ -42549,12 +42682,12 @@ return /******/ (function(modules) { // webpackBootstrap return undefined; } - /** - * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way - * @param percentage - * @param via - * @returns {{x: number, y: number}} - * @private + /** + * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way + * @param percentage + * @param via + * @returns {{x: number, y: number}} + * @private */ }, { @@ -42635,13 +42768,13 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); var NetworkUtil = __webpack_require__(211)['default']; - /** - * Container for derived data on current network, relating to hierarchy. - * - * Local, private class. - * - * TODO: Perhaps move more code for hierarchy state handling to this class. - * Till now, only the required and most obvious has been done. + /** + * Container for derived data on current network, relating to hierarchy. + * + * Local, private class. + * + * TODO: Perhaps move more code for hierarchy state handling to this class. + * Till now, only the required and most obvious has been done. */ var HierarchicalStatus = function () { @@ -42656,8 +42789,8 @@ return /******/ (function(modules) { // webpackBootstrap this.isTree = false; } - /** - * Add the relation between given nodes to the current state. + /** + * Add the relation between given nodes to the current state. */ @@ -42675,12 +42808,12 @@ return /******/ (function(modules) { // webpackBootstrap this.parentReference[childNodeId].push(parentNodeId); } - /** - * Check if the current state is for a tree or forest network. - * - * This is the case if every node has at most one parent. - * - * Pre: parentReference init'ed properly for current network + /** + * Check if the current state is for a tree or forest network. + * + * This is the case if every node has at most one parent. + * + * Pre: parentReference init'ed properly for current network */ }, { @@ -42696,10 +42829,10 @@ return /******/ (function(modules) { // webpackBootstrap this.isTree = true; } - /** - * Ensure level for given id is defined. - * - * Sets level to zero for given node id if not already present + /** + * Ensure level for given id is defined. + * + * Sets level to zero for given node id if not already present */ }, { @@ -42710,10 +42843,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * get the maximum level of a branch. - * - * TODO: Never entered; find a test case to test this! + /** + * get the maximum level of a branch. + * + * TODO: Never entered; find a test case to test this! */ }, { @@ -42755,8 +42888,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Small util method to set the minimum levels of the nodes to zero. + /** + * Small util method to set the minimum levels of the nodes to zero. */ }, { @@ -42782,8 +42915,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Get the min and max xy-coordinates of a given tree + /** + * Get the min and max xy-coordinates of a given tree */ }, { @@ -43012,9 +43145,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Use Kamada Kawai to position nodes. This is quite a heavy algorithm so if there are a lot of nodes we - * cluster them first to reduce the amount. + /** + * Use Kamada Kawai to position nodes. This is quite a heavy algorithm so if there are a lot of nodes we + * cluster them first to reduce the amount. */ }, { @@ -43107,9 +43240,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Move all the nodes towards to the center so gravitational pull wil not move the nodes away from view - * @private + /** + * Move all the nodes towards to the center so gravitational pull wil not move the nodes away from view + * @private */ }, { @@ -43146,11 +43279,11 @@ return /******/ (function(modules) { // webpackBootstrap return this.initialRandomSeed; } - /** - * This is the main function to layout the nodes in a hierarchical way. - * It checks if the node details are supplied correctly - * - * @private + /** + * This is the main function to layout the nodes in a hierarchical way. + * It checks if the node details are supplied correctly + * + * @private */ }, { @@ -43226,8 +43359,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * @private + /** + * @private */ }, { @@ -43642,13 +43775,13 @@ return /******/ (function(modules) { // webpackBootstrap shiftTrees(); } - /** - * This gives the space around the node. IF a map is supplied, it will only check against nodes NOT in the map. - * This is used to only get the distances to nodes outside of a branch. - * @param node - * @param map - * @returns {*[]} - * @private + /** + * This gives the space around the node. IF a map is supplied, it will only check against nodes NOT in the map. + * This is used to only get the distances to nodes outside of a branch. + * @param node + * @param map + * @returns {*[]} + * @private */ }, { @@ -43687,10 +43820,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * We use this method to center a parent node and check if it does not cross other nodes when it does. - * @param node - * @private + /** + * We use this method to center a parent node and check if it does not cross other nodes when it does. + * @param node + * @private */ }, { @@ -43723,11 +43856,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This function places the nodes on the canvas based on the hierarchial distribution. - * - * @param {Object} distribution | obtained by the function this._getDistribution() - * @private + /** + * This function places the nodes on the canvas based on the hierarchial distribution. + * + * @param {Object} distribution | obtained by the function this._getDistribution() + * @private */ }, { @@ -43763,13 +43896,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This is a recursively called function to enumerate the branches from the largest hubs and place the nodes - * on a X position that ensures there will be no overlap. - * - * @param parentId - * @param parentLevel - * @private + /** + * This is a recursively called function to enumerate the branches from the largest hubs and place the nodes + * on a X position that ensures there will be no overlap. + * + * @param parentId + * @param parentLevel + * @private */ }, { @@ -43820,13 +43953,13 @@ return /******/ (function(modules) { // webpackBootstrap this._setPositionForHierarchy(this.body.nodes[parentId], center, parentLevel); } - /** - * This method checks for overlap and if required shifts the branch. It also keeps records of positioned nodes. - * Finally it will call _placeBranchNodes to place the branch nodes. - * @param node - * @param level - * @param pos - * @private + /** + * This method checks for overlap and if required shifts the branch. It also keeps records of positioned nodes. + * Finally it will call _placeBranchNodes to place the branch nodes. + * @param node + * @param level + * @param pos + * @private */ }, { @@ -43854,10 +43987,10 @@ return /******/ (function(modules) { // webpackBootstrap this._placeBranchNodes(node.id, level); } - /** - * Receives an array with node indices and returns an array with the actual node references. - * Used for sorting based on node properties. - * @param idArray + /** + * Receives an array with node indices and returns an array with the actual node references. + * Used for sorting based on node properties. + * @param idArray */ }, { @@ -43870,11 +44003,11 @@ return /******/ (function(modules) { // webpackBootstrap return array; } - /** - * This function get the distribution of levels based on hubsize - * - * @returns {Object} - * @private + /** + * This function get the distribution of levels based on hubsize + * + * @returns {Object} + * @private */ }, { @@ -43907,11 +44040,11 @@ return /******/ (function(modules) { // webpackBootstrap return distribution; } - /** - * Return the active (i.e. visible) edges for this node - * - * @returns {array} Array of edge instances - * @private + /** + * Return the active (i.e. visible) edges for this node + * + * @returns {array} Array of edge instances + * @private */ }, { @@ -43929,11 +44062,11 @@ return /******/ (function(modules) { // webpackBootstrap return result; } - /** - * Get the hubsizes for all active nodes. - * - * @returns {number} - * @private + /** + * Get the hubsizes for all active nodes. + * + * @returns {number} + * @private */ }, { @@ -43961,10 +44094,10 @@ return /******/ (function(modules) { // webpackBootstrap return result; } - /** - * this function allocates nodes in levels based on the recursive branching from the largest hubs. - * - * @private + /** + * this function allocates nodes in levels based on the recursive branching from the largest hubs. + * + * @private */ }, { @@ -43994,11 +44127,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * TODO: release feature - * TODO: Determine if this feature is needed at all - * - * @private + /** + * TODO: release feature + * TODO: Determine if this feature is needed at all + * + * @private */ }, { @@ -44029,11 +44162,11 @@ return /******/ (function(modules) { // webpackBootstrap this.hierarchical.setMinLevelToZero(this.body.nodes); } - /** - * this function allocates nodes in levels based on the direction of the edges - * - * @param hubsize - * @private + /** + * this function allocates nodes in levels based on the direction of the edges + * + * @param hubsize + * @private */ }, { @@ -44060,9 +44193,9 @@ return /******/ (function(modules) { // webpackBootstrap this.hierarchical.setMinLevelToZero(this.body.nodes); } - /** - * Update the bookkeeping of parent and child. - * @private + /** + * Update the bookkeeping of parent and child. + * @private */ }, { @@ -44080,11 +44213,11 @@ return /******/ (function(modules) { // webpackBootstrap this.hierarchical.checkIfTree(); } - /** - * Crawl over the entire network and use a callback on each node couple that is connected to each other. - * @param callback | will receive nodeA, nodeB and the connecting edge. A and B are distinct. - * @param startingNodeId - * @private + /** + * Crawl over the entire network and use a callback on each node couple that is connected to each other. + * @param callback | will receive nodeA, nodeB and the connecting edge. A and B are distinct. + * @param startingNodeId + * @private */ }, { @@ -44148,11 +44281,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Shift a branch a certain distance - * @param parentId - * @param diff - * @private + /** + * Shift a branch a certain distance + * @param parentId + * @param diff + * @private */ }, { @@ -44182,12 +44315,12 @@ return /******/ (function(modules) { // webpackBootstrap shifter(parentId); } - /** - * Find a common parent between branches. - * @param childA - * @param childB - * @returns {{foundParent, withChild}} - * @private + /** + * Find a common parent between branches. + * @param childA + * @param childB + * @returns {{foundParent, withChild}} + * @private */ }, { @@ -44227,12 +44360,12 @@ return /******/ (function(modules) { // webpackBootstrap return findParent(parents, childB); } - /** - * Abstract the getting of the position so we won't have to repeat the check for direction all the time - * @param node - * @param position - * @param level - * @private + /** + * Abstract the getting of the position so we won't have to repeat the check for direction all the time + * @param node + * @param position + * @param level + * @private */ }, { @@ -44261,12 +44394,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Utility function to cut down on typing this all the time. - * - * TODO: use this in all applicable situations in this class. - * - * @private + /** + * Utility function to cut down on typing this all the time. + * + * TODO: use this in all applicable situations in this class. + * + * @private */ }, { @@ -44275,11 +44408,11 @@ return /******/ (function(modules) { // webpackBootstrap return this.options.hierarchical.direction === 'UD' || this.options.hierarchical.direction === 'DU'; } - /** - * Abstract the getting of the position of a node so we do not have to repeat the direction check all the time. - * @param node - * @returns {number|*} - * @private + /** + * Abstract the getting of the position of a node so we do not have to repeat the direction check all the time. + * @param node + * @returns {number|*} + * @private */ }, { @@ -44292,10 +44425,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Use the x or y value to sort the array, allowing users to specify order. - * @param nodeArray - * @private + /** + * Use the x or y value to sort the array, allowing users to specify order. + * @param nodeArray + * @private */ }, { @@ -44314,12 +44447,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Get the type of static smooth curve in case it is required. - * - * The return value is the type to use to translate dynamic curves to - * another type, in the case of hierarchical layout. Dynamic curves do - * not work for that layout type. + /** + * Get the type of static smooth curve in case it is required. + * + * The return value is the type to use to translate dynamic curves to + * another type, in the case of hierarchical layout. Dynamic curves do + * not work for that layout type. */ }, { @@ -44334,13 +44467,13 @@ return /******/ (function(modules) { // webpackBootstrap return type; } - /** - * Determine the center position of a branch from the passed list of child nodes - * - * This takes into account the positions of all the child nodes. - * @param childNodes {array} Array of either child nodes or node id's - * @return {number} - * @private + /** + * Determine the center position of a branch from the passed list of child nodes + * + * This takes into account the positions of all the child nodes. + * @param childNodes {array} Array of either child nodes or node id's + * @return {number} + * @private */ }, { @@ -44398,8 +44531,8 @@ return /******/ (function(modules) { // webpackBootstrap (0, _classCallCheck3["default"])(this, NetworkUtil); } - /** - * Find the center position of the network considering the bounding boxes + /** + * Find the center position of the network considering the bounding boxes */ @@ -44437,8 +44570,8 @@ return /******/ (function(modules) { // webpackBootstrap return { minX: minX, maxX: maxX, minY: minY, maxY: maxY }; } - /** - * Find the center position of the network + /** + * Find the center position of the network */ }, { @@ -44475,9 +44608,9 @@ return /******/ (function(modules) { // webpackBootstrap return { minX: minX, maxX: maxX, minY: minY, maxY: maxY }; } - /** - * @param {object} range = {minX: minX, maxX: maxX, minY: minY, maxY: maxY}; - * @returns {{x: number, y: number}} + /** + * @param {object} range = {minX: minX, maxX: maxX, minY: minY, maxY: maxY}; + * @returns {{x: number, y: number}} */ }, { @@ -44487,11 +44620,11 @@ return /******/ (function(modules) { // webpackBootstrap y: 0.5 * (range.maxY + range.minY) }; } - /** - * This returns a clone of the options or options of the edge or node to be used for construction of new edges or check functions for new nodes. - * @param item - * @param type - * @returns {{}} + /** + * This returns a clone of the options or options of the edge or node to be used for construction of new edges or check functions for new nodes. + * @param item + * @param type + * @returns {{}} */ }, { @@ -44677,9 +44810,9 @@ return /******/ (function(modules) { // webpackBootstrap // this.body.emitter.on("afterDrawing", (ctx) => {this._drawForces(ctx);}); } - /** - * set the physics options - * @param options + /** + * set the physics options + * @param options */ }, { @@ -44711,8 +44844,8 @@ return /******/ (function(modules) { // webpackBootstrap this.init(); } - /** - * configure the engine. + /** + * configure the engine. */ }, { @@ -44745,8 +44878,8 @@ return /******/ (function(modules) { // webpackBootstrap this.modelOptions = options; } - /** - * initialize the engine + /** + * initialize the engine */ }, { @@ -44767,8 +44900,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Start the simulation + /** + * Start the simulation */ }, { @@ -44792,8 +44925,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Stop the simulation, force stabilization. + /** + * Stop the simulation, force stabilization. */ }, { @@ -44814,9 +44947,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * The viewFunction inserts this step into each render loop. It calls the physics tick and handles the cleanup at stabilized. - * + /** + * The viewFunction inserts this step into each render loop. It calls the physics tick and handles the cleanup at stabilized. + * */ }, { @@ -44840,9 +44973,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * trigger the stabilized event. - * @private + /** + * trigger the stabilized event. + * @private */ }, { @@ -44861,10 +44994,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * A single simulation step (or 'tick') in the physics simulation - * - * @private + /** + * A single simulation step (or 'tick') in the physics simulation + * + * @private */ }, { @@ -44940,10 +45073,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Nodes and edges can have the physics toggles on or off. A collection of indices is created here so we can skip the check all the time. - * - * @private + /** + * Nodes and edges can have the physics toggles on or off. A collection of indices is created here so we can skip the check all the time. + * + * @private */ }, { @@ -44992,8 +45125,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Revert the simulation one step. This is done so after stabilization, every new start of the simulation will also say stabilized. + /** + * Revert the simulation one step. This is done so after stabilization, every new start of the simulation will also say stabilized. */ }, { @@ -45022,8 +45155,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This compares the reference state to the current state + /** + * This compares the reference state to the current state */ }, { @@ -45051,9 +45184,9 @@ return /******/ (function(modules) { // webpackBootstrap return true; } - /** - * move the nodes one timestep and check if they are stabilized - * @returns {boolean} + /** + * move the nodes one timestep and check if they are stabilized + * @returns {boolean} */ }, { @@ -45080,13 +45213,13 @@ return /******/ (function(modules) { // webpackBootstrap this.stabilized = maxNodeVelocity < this.options.minVelocity; } - /** - * Perform the actual step - * - * @param nodeId - * @param maxVelocity - * @returns {number} - * @private + /** + * Perform the actual step + * + * @param nodeId + * @param maxVelocity + * @returns {number} + * @private */ }, { @@ -45126,8 +45259,8 @@ return /******/ (function(modules) { // webpackBootstrap return totalVelocity; } - /** - * calculate the forces for one physics iteration. + /** + * calculate the forces for one physics iteration. */ }, { @@ -45138,11 +45271,11 @@ return /******/ (function(modules) { // webpackBootstrap this.edgesSolver.solve(); } - /** - * When initializing and stabilizing, we can freeze nodes with a predefined position. This greatly speeds up stabilization - * because only the supportnodes for the smoothCurves have to settle. - * - * @private + /** + * When initializing and stabilizing, we can freeze nodes with a predefined position. This greatly speeds up stabilization + * because only the supportnodes for the smoothCurves have to settle. + * + * @private */ }, { @@ -45160,10 +45293,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Unfreezes the nodes that have been frozen by _freezeDefinedNodes. - * - * @private + /** + * Unfreezes the nodes that have been frozen by _freezeDefinedNodes. + * + * @private */ }, { @@ -45181,8 +45314,8 @@ return /******/ (function(modules) { // webpackBootstrap this.freezeCache = {}; } - /** - * Find a stable position for all nodes + /** + * Find a stable position for all nodes */ }, { @@ -45229,9 +45362,9 @@ return /******/ (function(modules) { // webpackBootstrap }, 0); } - /** - * One batch of stabilization - * @private + /** + * One batch of stabilization + * @private */ }, { @@ -45270,9 +45403,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Wrap up the stabilization, fit and emit the events. - * @private + /** + * Wrap up the stabilization, fit and emit the events. + * @private */ }, { @@ -45380,11 +45513,11 @@ return /******/ (function(modules) { // webpackBootstrap return x - Math.floor(x); } - /** - * This function calculates the forces the nodes apply on each other based on a gravitational model. - * The Barnes Hut method is used to speed up this N-body simulation. - * - * @private + /** + * This function calculates the forces the nodes apply on each other based on a gravitational model. + * The Barnes Hut method is used to speed up this N-body simulation. + * + * @private */ }, { @@ -45416,13 +45549,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This function traverses the barnesHutTree. It checks when it can approximate distant nodes with their center of mass. - * If a region contains a single node, we check if it is not itself, then we apply the force. - * - * @param parentBranch - * @param node - * @private + /** + * This function traverses the barnesHutTree. It checks when it can approximate distant nodes with their center of mass. + * If a region contains a single node, we check if it is not itself, then we apply the force. + * + * @param parentBranch + * @param node + * @private */ }, { @@ -45462,15 +45595,15 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Calculate the forces based on the distance. - * - * @param distance - * @param dx - * @param dy - * @param node - * @param parentBranch - * @private + /** + * Calculate the forces based on the distance. + * + * @param distance + * @param dx + * @param dy + * @param node + * @param parentBranch + * @private */ }, { @@ -45495,12 +45628,12 @@ return /******/ (function(modules) { // webpackBootstrap this.physicsBody.forces[node.id].y += fy; } - /** - * This function constructs the barnesHut tree recursively. It creates the root, splits it and starts placing the nodes. - * - * @param nodes - * @param nodeIndices - * @private + /** + * This function constructs the barnesHut tree recursively. It creates the root, splits it and starts placing the nodes. + * + * @param nodes + * @param nodeIndices + * @private */ }, { @@ -45582,12 +45715,12 @@ return /******/ (function(modules) { // webpackBootstrap return barnesHutTree; } - /** - * this updates the mass of a branch. this is increased by adding a node. - * - * @param parentBranch - * @param node - * @private + /** + * this updates the mass of a branch. this is increased by adding a node. + * + * @param parentBranch + * @param node + * @private */ }, { @@ -45607,13 +45740,13 @@ return /******/ (function(modules) { // webpackBootstrap parentBranch.maxWidth = parentBranch.maxWidth < biggestSize ? biggestSize : parentBranch.maxWidth; } - /** - * determine in which branch the node will be placed. - * - * @param parentBranch - * @param node - * @param skipMassUpdate - * @private + /** + * determine in which branch the node will be placed. + * + * @param parentBranch + * @param node + * @param skipMassUpdate + * @private */ }, { @@ -45645,13 +45778,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * actually place the node in a region (or branch) - * - * @param parentBranch - * @param node - * @param region - * @private + /** + * actually place the node in a region (or branch) + * + * @param parentBranch + * @param node + * @param region + * @private */ }, { @@ -45683,12 +45816,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * this function splits a branch into 4 sub branches. If the branch contained a node, we place it in the subbranch - * after the split is complete. - * - * @param parentBranch - * @private + /** + * this function splits a branch into 4 sub branches. If the branch contained a node, we place it in the subbranch + * after the split is complete. + * + * @param parentBranch + * @private */ }, { @@ -45714,15 +45847,15 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This function subdivides the region into four new segments. - * Specifically, this inserts a single new segment. - * It fills the children section of the parentBranch - * - * @param parentBranch - * @param region - * @param parentRange - * @private + /** + * This function subdivides the region into four new segments. + * Specifically, this inserts a single new segment. + * It fills the children section of the parentBranch + * + * @param parentBranch + * @param region + * @param parentRange + * @private */ }, { @@ -45776,12 +45909,12 @@ return /******/ (function(modules) { // webpackBootstrap //--------------------------- DEBUGGING BELOW ---------------------------// - /** - * This function is for debugging purposed, it draws the tree. - * - * @param ctx - * @param color - * @private + /** + * This function is for debugging purposed, it draws the tree. + * + * @param ctx + * @param color + * @private */ }, { @@ -45795,13 +45928,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This function is for debugging purposes. It draws the branches recursively. - * - * @param branch - * @param ctx - * @param color - * @private + /** + * This function is for debugging purposes. It draws the branches recursively. + * + * @param branch + * @param ctx + * @param color + * @private */ }, { @@ -45838,11 +45971,11 @@ return /******/ (function(modules) { // webpackBootstrap ctx.lineTo(branch.range.minX, branch.range.minY); ctx.stroke(); - /* - if (branch.mass > 0) { - ctx.circle(branch.centerOfMass.x, branch.centerOfMass.y, 3*branch.mass); - ctx.stroke(); - } + /* + if (branch.mass > 0) { + ctx.circle(branch.centerOfMass.x, branch.centerOfMass.y, 3*branch.mass); + ctx.stroke(); + } */ } }]); @@ -45885,11 +46018,11 @@ return /******/ (function(modules) { // webpackBootstrap value: function setOptions(options) { this.options = options; } - /** - * Calculate the forces the nodes apply on each other based on a repulsion field. - * This field is linearly approximated. - * - * @private + /** + * Calculate the forces the nodes apply on each other based on a repulsion field. + * This field is linearly approximated. + * + * @private */ }, { @@ -45985,11 +46118,11 @@ return /******/ (function(modules) { // webpackBootstrap this.options = options; } - /** - * Calculate the forces the nodes apply on each other based on a repulsion field. - * This field is linearly approximated. - * - * @private + /** + * Calculate the forces the nodes apply on each other based on a repulsion field. + * This field is linearly approximated. + * + * @private */ }, { @@ -46081,10 +46214,10 @@ return /******/ (function(modules) { // webpackBootstrap this.options = options; } - /** - * This function calculates the springforces on the nodes, accounting for the support nodes. - * - * @private + /** + * This function calculates the springforces on the nodes, accounting for the support nodes. + * + * @private */ }, { @@ -46123,13 +46256,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This is the code actually performing the calculation for the function above. - * - * @param node1 - * @param node2 - * @param edgeLength - * @private + /** + * This is the code actually performing the calculation for the function above. + * + * @param node1 + * @param node2 + * @param edgeLength + * @private */ }, { @@ -46197,10 +46330,10 @@ return /******/ (function(modules) { // webpackBootstrap this.options = options; } - /** - * This function calculates the springforces on the nodes, accounting for the support nodes. - * - * @private + /** + * This function calculates the springforces on the nodes, accounting for the support nodes. + * + * @private */ }, { @@ -46352,9 +46485,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Calculate the forces based on the distance. - * @private + /** + * Calculate the forces based on the distance. + * @private */ }, { @@ -46414,15 +46547,15 @@ return /******/ (function(modules) { // webpackBootstrap return (0, _possibleConstructorReturn3["default"])(this, (ForceAtlas2BasedRepulsionSolver.__proto__ || (0, _getPrototypeOf2["default"])(ForceAtlas2BasedRepulsionSolver)).call(this, body, physicsBody, options)); } - /** - * Calculate the forces based on the distance. - * - * @param distance - * @param dx - * @param dy - * @param node - * @param parentBranch - * @private + /** + * Calculate the forces based on the distance. + * + * @param distance + * @param dx + * @param dy + * @param node + * @param parentBranch + * @private */ @@ -46498,9 +46631,9 @@ return /******/ (function(modules) { // webpackBootstrap return (0, _possibleConstructorReturn3["default"])(this, (ForceAtlas2BasedCentralGravitySolver.__proto__ || (0, _getPrototypeOf2["default"])(ForceAtlas2BasedCentralGravitySolver)).call(this, body, physicsBody, options)); } - /** - * Calculate the forces based on the distance. - * @private + /** + * Calculate the forces based on the distance. + * @private */ @@ -46571,10 +46704,10 @@ return /******/ (function(modules) { // webpackBootstrap }); } - /** - * - * @param hubsize - * @param options + /** + * + * @param hubsize + * @param options */ @@ -46603,10 +46736,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_dataChanged'); } - /** - * loop over all nodes, check if they adhere to the condition and cluster if needed. - * @param options - * @param refreshData + /** + * loop over all nodes, check if they adhere to the condition and cluster if needed. + * @param options + * @param refreshData */ }, { @@ -46646,11 +46779,11 @@ return /******/ (function(modules) { // webpackBootstrap this._cluster(childNodesObj, childEdgesObj, options, refreshData); } - /** - * Cluster all nodes in the network that have only X edges - * @param edgeCount - * @param options - * @param refreshData + /** + * Cluster all nodes in the network that have only X edges + * @param edgeCount + * @param options + * @param refreshData */ }, { @@ -46730,10 +46863,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Cluster all nodes in the network that have only 1 edge - * @param options - * @param refreshData + /** + * Cluster all nodes in the network that have only 1 edge + * @param options + * @param refreshData */ }, { @@ -46744,10 +46877,10 @@ return /******/ (function(modules) { // webpackBootstrap this.clusterByEdgeCount(1, options, refreshData); } - /** - * Cluster all nodes in the network that have only 2 edge - * @param options - * @param refreshData + /** + * Cluster all nodes in the network that have only 2 edge + * @param options + * @param refreshData */ }, { @@ -46758,11 +46891,11 @@ return /******/ (function(modules) { // webpackBootstrap this.clusterByEdgeCount(2, options, refreshData); } - /** - * suck all connected nodes of a node into the node. - * @param nodeId - * @param options - * @param refreshData + /** + * suck all connected nodes of a node into the node. + * @param nodeId + * @param options + * @param refreshData */ }, { @@ -46841,15 +46974,15 @@ return /******/ (function(modules) { // webpackBootstrap this._cluster(childNodesObj, childEdgesObj, options, refreshData); } - /** - * This function creates the edges that will be attached to the cluster - * It looks for edges that are connected to the nodes from the "outside' of the cluster. - * - * @param childNodesObj - * @param childEdgesObj - * @param clusterNodeProperties - * @param clusterEdgeProperties - * @private + /** + * This function creates the edges that will be attached to the cluster + * It looks for edges that are connected to the nodes from the "outside' of the cluster. + * + * @param childNodesObj + * @param childEdgesObj + * @param clusterNodeProperties + * @param clusterEdgeProperties + * @private */ }, { @@ -46932,12 +47065,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This function checks the options that can be supplied to the different cluster functions - * for certain fields and inserts defaults if needed - * @param options - * @returns {*} - * @private + /** + * This function checks the options that can be supplied to the different cluster functions + * for certain fields and inserts defaults if needed + * @param options + * @returns {*} + * @private */ }, { @@ -46955,13 +47088,13 @@ return /******/ (function(modules) { // webpackBootstrap return options; } - /** - * - * @param {Object} childNodesObj | object with node objects, id as keys, same as childNodes except it also contains a source node - * @param {Object} childEdgesObj | object with edge objects, id as keys - * @param {Array} options | object with {clusterNodeProperties, clusterEdgeProperties, processProperties} - * @param {Boolean} refreshData | when true, do not wrap up - * @private + /** + * + * @param {Object} childNodesObj | object with node objects, id as keys, same as childNodes except it also contains a source node + * @param {Object} childEdgesObj | object with edge objects, id as keys + * @param {Array} options | object with {clusterNodeProperties, clusterEdgeProperties, processProperties} + * @param {Boolean} refreshData | when true, do not wrap up + * @private */ }, { @@ -47105,10 +47238,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Check if a node is a cluster. - * @param nodeId - * @returns {*} + /** + * Check if a node is a cluster. + * @param nodeId + * @returns {*} */ }, { @@ -47122,11 +47255,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * get the position of the cluster node based on what's inside - * @param {object} childNodesObj | object with node objects, id as keys - * @returns {{x: number, y: number}} - * @private + /** + * get the position of the cluster node based on what's inside + * @param {object} childNodesObj | object with node objects, id as keys + * @returns {{x: number, y: number}} + * @private */ }, { @@ -47149,10 +47282,10 @@ return /******/ (function(modules) { // webpackBootstrap return { x: 0.5 * (minX + maxX), y: 0.5 * (minY + maxY) }; } - /** - * Open a cluster by calling this function. - * @param {String} clusterNodeId | the ID of the cluster node - * @param {Boolean} refreshData | wrap up afterwards if not true + /** + * Open a cluster by calling this function. + * @param {String} clusterNodeId | the ID of the cluster node + * @param {Boolean} refreshData | wrap up afterwards if not true */ }, { @@ -47317,13 +47450,13 @@ return /******/ (function(modules) { // webpackBootstrap return nodesArray; } - /** - * Get the stack clusterId's that a certain node resides in. cluster A -> cluster B -> cluster C -> node - * - * If a node can't be found in the chain, return an empty array. - * - * @param {string|number} nodeId - * @returns {Array} + /** + * Get the stack clusterId's that a certain node resides in. cluster A -> cluster B -> cluster C -> node + * + * If a node can't be found in the chain, return an empty array. + * + * @param {string|number} nodeId + * @returns {Array} */ }, { @@ -47351,10 +47484,10 @@ return /******/ (function(modules) { // webpackBootstrap return stack; } - /** - * Using a clustered nodeId, update with the new options - * @param clusteredNodeId - * @param {object} newOptions + /** + * Using a clustered nodeId, update with the new options + * @param clusteredNodeId + * @param {object} newOptions */ }, { @@ -47374,10 +47507,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_dataChanged'); } - /** - * Using a base edgeId, update all related clustered edges with the new options - * @param startEdgeId - * @param {object} newOptions + /** + * Using a base edgeId, update all related clustered edges with the new options + * @param startEdgeId + * @param {object} newOptions */ }, { @@ -47401,10 +47534,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_dataChanged'); } - /** - * Get a stack of clusterEdgeId's (+base edgeid) that a base edge is the same as. cluster edge C -> cluster edge B -> cluster edge A -> base edge(edgeId) - * @param edgeId - * @returns {Array} + /** + * Get a stack of clusterEdgeId's (+base edgeid) that a base edge is the same as. cluster edge C -> cluster edge B -> cluster edge A -> base edge(edgeId) + * @param edgeId + * @returns {Array} */ }, { @@ -47423,10 +47556,10 @@ return /******/ (function(modules) { // webpackBootstrap return stack; } - /** - * Get the base edge id of clusterEdgeId. cluster edge (clusteredEdgeId) -> cluster edge B -> cluster edge C -> base edge - * @param clusteredEdgeId - * @returns baseEdgeId + /** + * Get the base edge id of clusterEdgeId. cluster edge (clusteredEdgeId) -> cluster edge B -> cluster edge C -> base edge + * @param clusteredEdgeId + * @returns baseEdgeId */ }, { @@ -47446,12 +47579,12 @@ return /******/ (function(modules) { // webpackBootstrap return baseEdgeId; } - /** - * Get the Id the node is connected to - * @param edge - * @param nodeId - * @returns {*} - * @private + /** + * Get the Id the node is connected to + * @param edge + * @param nodeId + * @returns {*} + * @private */ }, { @@ -47466,11 +47599,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * We determine how many connections denote an important hub. - * We take the mean + 2*std as the important hub size. (Assuming a normal distribution of data, ~2.2%) - * - * @private + /** + * We determine how many connections denote an important hub. + * We take the mean + 2*std as the important hub size. (Assuming a normal distribution of data, ~2.2%) + * + * @private */ }, { @@ -47543,8 +47676,8 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - /** - * + /** + * */ var Cluster = function (_Node) { (0, _inherits3['default'])(Cluster, _Node); @@ -47707,9 +47840,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Redraw the network with the current data - * chart will be resized too. + /** + * Redraw the network with the current data + * chart will be resized too. */ }, { @@ -47719,10 +47852,10 @@ return /******/ (function(modules) { // webpackBootstrap this._redraw(); } - /** - * Redraw the network with the current data - * @param hidden | used to get the first estimate of the node sizes. only the nodes are drawn after which they are quickly drawn over. - * @private + /** + * Redraw the network with the current data + * @param hidden | used to get the first estimate of the node sizes. only the nodes are drawn after which they are quickly drawn over. + * @private */ }, { @@ -47803,12 +47936,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Redraw all nodes - * - * @param {CanvasRenderingContext2D} ctx - * @param {Boolean} [alwaysShow] - * @private + /** + * Redraw all nodes + * + * @param {CanvasRenderingContext2D} ctx + * @param {Boolean} [alwaysShow] + * @private */ }, { @@ -47836,12 +47969,12 @@ return /******/ (function(modules) { // webpackBootstrap ctx.restore(); } - /** - * Redraw all nodes - * - * @param {CanvasRenderingContext2D} ctx 2D context of a HTML canvas - * @param {Boolean} [alwaysShow] - * @private + /** + * Redraw all nodes + * + * @param {CanvasRenderingContext2D} ctx 2D context of a HTML canvas + * @param {Boolean} [alwaysShow] + * @private */ }, { @@ -47885,10 +48018,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Redraw all edges - * @param {CanvasRenderingContext2D} ctx 2D context of a HTML canvas - * @private + /** + * Redraw all edges + * @param {CanvasRenderingContext2D} ctx 2D context of a HTML canvas + * @private */ }, { @@ -47906,10 +48039,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Determine if the browser requires a setTimeout or a requestAnimationFrame. This was required because - * some implementations (safari and IE9) did not support requestAnimationFrame - * @private + /** + * Determine if the browser requires a setTimeout or a requestAnimationFrame. This was required because + * some implementations (safari and IE9) did not support requestAnimationFrame + * @private */ }, { @@ -47962,12 +48095,12 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); - /** - * Create the main frame for the Network. - * This function is executed once when a Network object is created. The frame - * contains a canvas, and this canvas contains all objects like the axis and - * nodes. - * @private + /** + * Create the main frame for the Network. + * This function is executed once when a Network object is created. The frame + * contains a canvas, and this canvas contains all objects like the axis and + * nodes. + * @private */ var Canvas = function () { @@ -48054,9 +48187,9 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit("_redraw"); } - /** - * Get and store the cameraState - * @private + /** + * Get and store the cameraState + * @private */ }, { @@ -48075,9 +48208,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Set the cameraState - * @private + /** + * Set the cameraState + * @private */ }, { @@ -48127,8 +48260,8 @@ return /******/ (function(modules) { // webpackBootstrap throw new Error('Could not use the value supplied for width or height:' + value); } - /** - * Create the HTML + /** + * Create the HTML */ }, { @@ -48172,9 +48305,9 @@ return /******/ (function(modules) { // webpackBootstrap this._bindHammer(); } - /** - * This function binds hammer, it can be repeated over and over due to the uniqueness check. - * @private + /** + * This function binds hammer, it can be repeated over and over due to the uniqueness check. + * @private */ }, { @@ -48240,12 +48373,12 @@ return /******/ (function(modules) { // webpackBootstrap }); } - /** - * Set a new size for the network - * @param {string} width Width in pixels or percentage (for example '800px' - * or '50%') - * @param {string} height Height in pixels or percentage (for example '400px' - * or '30%') + /** + * Set a new size for the network + * @param {string} width Width in pixels or percentage (for example '800px' + * or '50%') + * @param {string} height Height in pixels or percentage (for example '400px' + * or '30%') */ }, { @@ -48341,10 +48474,10 @@ return /******/ (function(modules) { // webpackBootstrap return this.frame.canvas.getContext("2d"); } - /** - * Determine the pixel ratio for various browsers. - * - * @private + /** + * Determine the pixel ratio for various browsers. + * + * @private */ }, { @@ -48358,10 +48491,10 @@ return /******/ (function(modules) { // webpackBootstrap return (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); } - /** - * Lazy determination of pixel ratio. - * - * @private + /** + * Lazy determination of pixel ratio. + * + * @private */ }, { @@ -48370,8 +48503,8 @@ return /******/ (function(modules) { // webpackBootstrap this.pixelRatio = this._determinePixelRatio(); } - /** - * Set the transform in the contained context, based on its pixelRatio + /** + * Set the transform in the contained context, based on its pixelRatio */ }, { @@ -48385,12 +48518,12 @@ return /******/ (function(modules) { // webpackBootstrap ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); } - /** - * Convert the X coordinate in DOM-space (coordinate point in browser relative to the container div) to - * the X coordinate in canvas-space (the simulation sandbox, which the camera looks upon) - * @param {number} x - * @returns {number} - * @private + /** + * Convert the X coordinate in DOM-space (coordinate point in browser relative to the container div) to + * the X coordinate in canvas-space (the simulation sandbox, which the camera looks upon) + * @param {number} x + * @returns {number} + * @private */ }, { @@ -48399,12 +48532,12 @@ return /******/ (function(modules) { // webpackBootstrap return (x - this.body.view.translation.x) / this.body.view.scale; } - /** - * Convert the X coordinate in canvas-space (the simulation sandbox, which the camera looks upon) to - * the X coordinate in DOM-space (coordinate point in browser relative to the container div) - * @param {number} x - * @returns {number} - * @private + /** + * Convert the X coordinate in canvas-space (the simulation sandbox, which the camera looks upon) to + * the X coordinate in DOM-space (coordinate point in browser relative to the container div) + * @param {number} x + * @returns {number} + * @private */ }, { @@ -48413,12 +48546,12 @@ return /******/ (function(modules) { // webpackBootstrap return x * this.body.view.scale + this.body.view.translation.x; } - /** - * Convert the Y coordinate in DOM-space (coordinate point in browser relative to the container div) to - * the Y coordinate in canvas-space (the simulation sandbox, which the camera looks upon) - * @param {number} y - * @returns {number} - * @private + /** + * Convert the Y coordinate in DOM-space (coordinate point in browser relative to the container div) to + * the Y coordinate in canvas-space (the simulation sandbox, which the camera looks upon) + * @param {number} y + * @returns {number} + * @private */ }, { @@ -48427,12 +48560,12 @@ return /******/ (function(modules) { // webpackBootstrap return (y - this.body.view.translation.y) / this.body.view.scale; } - /** - * Convert the Y coordinate in canvas-space (the simulation sandbox, which the camera looks upon) to - * the Y coordinate in DOM-space (coordinate point in browser relative to the container div) - * @param {number} y - * @returns {number} - * @private + /** + * Convert the Y coordinate in canvas-space (the simulation sandbox, which the camera looks upon) to + * the Y coordinate in DOM-space (coordinate point in browser relative to the container div) + * @param {number} y + * @returns {number} + * @private */ }, { @@ -48441,11 +48574,11 @@ return /******/ (function(modules) { // webpackBootstrap return y * this.body.view.scale + this.body.view.translation.y; } - /** - * - * @param {object} pos = {x: number, y: number} - * @returns {{x: number, y: number}} - * @constructor + /** + * + * @param {object} pos = {x: number, y: number} + * @returns {{x: number, y: number}} + * @constructor */ }, { @@ -48454,11 +48587,11 @@ return /******/ (function(modules) { // webpackBootstrap return { x: this._XconvertCanvasToDOM(pos.x), y: this._YconvertCanvasToDOM(pos.y) }; } - /** - * - * @param {object} pos = {x: number, y: number} - * @returns {{x: number, y: number}} - * @constructor + /** + * + * @param {object} pos = {x: number, y: number} + * @returns {{x: number, y: number}} + * @constructor */ }, { @@ -48533,10 +48666,10 @@ return /******/ (function(modules) { // webpackBootstrap this.options = options; } - /** - * This function zooms out to fit all data on screen based on amount of nodes - * @param {Object} Options - * @param {Boolean} [initialZoom] | zoom based on fitted formula or range, true = fitted, default = false; + /** + * This function zooms out to fit all data on screen based on amount of nodes + * @param {Object} Options + * @param {Boolean} [initialZoom] | zoom based on fitted formula or range, true = fitted, default = false; */ }, { @@ -48601,11 +48734,11 @@ return /******/ (function(modules) { // webpackBootstrap // animation - /** - * Center a node in view. - * - * @param {Number} nodeId - * @param {Number} [options] + /** + * Center a node in view. + * + * @param {Number} nodeId + * @param {Number} [options] */ }, { @@ -48624,12 +48757,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * - * @param {Object} options | options.offset = {x:Number, y:Number} // offset from the center in DOM pixels - * | options.scale = Number // scale to move to - * | options.position = {x:Number, y:Number} // position to move to - * | options.animation = {duration:Number, easingFunction:String} || Boolean // position to move to + /** + * + * @param {Object} options | options.offset = {x:Number, y:Number} // offset from the center in DOM pixels + * | options.scale = Number // scale to move to + * | options.position = {x:Number, y:Number} // position to move to + * | options.animation = {duration:Number, easingFunction:String} || Boolean // position to move to */ }, { @@ -48673,16 +48806,16 @@ return /******/ (function(modules) { // webpackBootstrap this.animateView(options); } - /** - * - * @param {Object} options | options.offset = {x:Number, y:Number} // offset from the center in DOM pixels - * | options.time = Number // animation time in milliseconds - * | options.scale = Number // scale to animate to - * | options.position = {x:Number, y:Number} // position to animate to - * | options.easingFunction = String // linear, easeInQuad, easeOutQuad, easeInOutQuad, - * // easeInCubic, easeOutCubic, easeInOutCubic, - * // easeInQuart, easeOutQuart, easeInOutQuart, - * // easeInQuint, easeOutQuint, easeInOutQuint + /** + * + * @param {Object} options | options.offset = {x:Number, y:Number} // offset from the center in DOM pixels + * | options.time = Number // animation time in milliseconds + * | options.scale = Number // scale to animate to + * | options.position = {x:Number, y:Number} // position to animate to + * | options.easingFunction = String // linear, easeInQuad, easeOutQuad, easeInOutQuad, + * // easeInCubic, easeOutCubic, easeInOutCubic, + * // easeInQuart, easeOutQuart, easeInOutQuart, + * // easeInQuint, easeOutQuint, easeInOutQuint */ }, { @@ -48742,9 +48875,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * used to animate smoothly by hijacking the redraw function. - * @private + /** + * used to animate smoothly by hijacking the redraw function. + * @private */ }, { @@ -48774,10 +48907,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * - * @param easingTime - * @private + /** + * + * @param easingTime + * @private */ }, { @@ -48931,11 +49064,11 @@ return /******/ (function(modules) { // webpackBootstrap this.navigationHandler.setOptions(this.options); } - /** - * Get the pointer location from a touch location - * @param {{x: Number, y: Number}} touch - * @return {{x: Number, y: Number}} pointer - * @private + /** + * Get the pointer location from a touch location + * @param {{x: Number, y: Number}} touch + * @return {{x: Number, y: Number}} pointer + * @private */ }, { @@ -48947,10 +49080,10 @@ return /******/ (function(modules) { // webpackBootstrap }; } - /** - * On start of a touch gesture, store the pointer - * @param event - * @private + /** + * On start of a touch gesture, store the pointer + * @param event + * @private */ }, { @@ -48965,9 +49098,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * handle tap/click event: select/unselect a node - * @private + /** + * handle tap/click event: select/unselect a node + * @private */ }, { @@ -48980,9 +49113,9 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionHandler._generateClickEvent('click', event, pointer); } - /** - * handle doubletap event - * @private + /** + * handle doubletap event + * @private */ }, { @@ -48992,9 +49125,9 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionHandler._generateClickEvent('doubleClick', event, pointer); } - /** - * handle long tap event: multi select nodes - * @private + /** + * handle long tap event: multi select nodes + * @private */ }, { @@ -49009,10 +49142,10 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionHandler._generateClickEvent('hold', event, pointer); } - /** - * handle the release of the screen - * - * @private + /** + * handle the release of the screen + * + * @private */ }, { @@ -49032,19 +49165,19 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionHandler._generateClickEvent('oncontext', event, pointer); } - /** - * Select and deselect nodes depending current selection change. - * - * For changing nodes, select/deselect events are fired. - * - * NOTE: For a given edge, if one connecting node is deselected and with the same - * click the other node is selected, no events for the edge will fire. - * It was selected and it will remain selected. - * - * TODO: This is all SelectionHandler calls; the method should be moved to there. - * - * @param pointer - * @param add + /** + * Select and deselect nodes depending current selection change. + * + * For changing nodes, select/deselect events are fired. + * + * NOTE: For a given edge, if one connecting node is deselected and with the same + * click the other node is selected, no events for the edge will fire. + * It was selected and it will remain selected. + * + * TODO: This is all SelectionHandler calls; the method should be moved to there. + * + * @param pointer + * @param add */ }, { @@ -49092,13 +49225,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Remove all node and edge id's from the first set that are present in the second one. - * - * @param firstSet - * @param secondSet - * @returns {{nodes: array, edges: array}} - * @private + /** + * Remove all node and edge id's from the first set that are present in the second one. + * + * @param firstSet + * @param secondSet + * @returns {{nodes: array, edges: array}} + * @private */ }, { @@ -49123,11 +49256,11 @@ return /******/ (function(modules) { // webpackBootstrap }; } - /** - * This function is called by onDragStart. - * It is separated out because we can then overload it for the datamanipulation system. - * - * @private + /** + * This function is called by onDragStart. + * It is separated out because we can then overload it for the datamanipulation system. + * + * @private */ }, { @@ -49185,9 +49318,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * handle drag event - * @private + /** + * handle drag event + * @private */ }, { @@ -49246,9 +49379,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * handle drag start event - * @private + /** + * handle drag start event + * @private */ }, { @@ -49270,10 +49403,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Handle pinch event - * @param event - * @private + /** + * Handle pinch event + * @param event + * @private */ }, { @@ -49291,12 +49424,12 @@ return /******/ (function(modules) { // webpackBootstrap this.zoom(scale, pointer); } - /** - * Zoom the network in or out - * @param {Number} scale a number around 1, and between 0.01 and 10 - * @param {{x: Number, y: Number}} pointer Position on screen - * @return {Number} appliedScale scale is limited within the boundaries - * @private + /** + * Zoom the network in or out + * @param {Number} scale a number around 1, and between 0.01 and 10 + * @param {{x: Number, y: Number}} pointer Position on screen + * @return {Number} appliedScale scale is limited within the boundaries + * @private */ }, { @@ -49343,12 +49476,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Event handler for mouse wheel event, used to zoom the timeline - * See http://adomas.org/javascript-mouse-wheel/ - * https://github.com/EightMedia/hammer.js/issues/256 - * @param {MouseEvent} event - * @private + /** + * Event handler for mouse wheel event, used to zoom the timeline + * See http://adomas.org/javascript-mouse-wheel/ + * https://github.com/EightMedia/hammer.js/issues/256 + * @param {MouseEvent} event + * @private */ }, { @@ -49392,10 +49525,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Mouse move handler for checking whether the title moves over a node with a title. - * @param {Event} event - * @private + /** + * Mouse move handler for checking whether the title moves over a node with a title. + * @param {Event} event + * @private */ }, { @@ -49438,8 +49571,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Adding hover highlights + /** + * Adding hover highlights */ if (this.options.hover === true) { // adding hover highlights @@ -49451,13 +49584,13 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Check if there is an element on the given position in the network - * (a node or edge). If so, and if this element has a title, - * show a popup window with its title. - * - * @param {{x:Number, y:Number}} pointer - * @private + /** + * Check if there is an element on the given position in the network + * (a node or edge). If so, and if this element has a title, + * show a popup window with its title. + * + * @param {{x:Number, y:Number}} pointer + * @private */ }, { @@ -49547,11 +49680,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Check if the popup must be hidden, which is the case when the mouse is no - * longer hovering on the object - * @param {{x:Number, y:Number}} pointer - * @private + /** + * Check if the popup must be hidden, which is the case when the mouse is no + * longer hovering on the object + * @param {{x:Number, y:Number}} pointer + * @private */ }, { @@ -49686,13 +49819,13 @@ return /******/ (function(modules) { // webpackBootstrap this.iconsCreated = false; } - /** - * Creation of the navigation controls nodes. They are drawn over the rest of the nodes and are not affected by scale and translation - * they have a triggerFunction which is called on click. If the position of the navigation controls is dependent - * on this.frame.canvas.clientWidth or this.frame.canvas.clientHeight, we flag horizontalAlignLeft and verticalAlignTop false. - * This means that the location will be corrected by the _relocateNavigation function on a size change of the canvas. - * - * @private + /** + * Creation of the navigation controls nodes. They are drawn over the rest of the nodes and are not affected by scale and translation + * they have a triggerFunction which is called on click. If the position of the navigation controls is dependent + * on this.frame.canvas.clientWidth or this.frame.canvas.clientHeight, we flag horizontalAlignLeft and verticalAlignTop false. + * This means that the location will be corrected by the _relocateNavigation function on a size change of the canvas. + * + * @private */ }, { @@ -49754,10 +49887,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * this stops all movement induced by the navigation buttons - * - * @private + /** + * this stops all movement induced by the navigation buttons + * + * @private */ }, { @@ -49770,10 +49903,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * this stops all movement induced by the navigation buttons - * - * @private + /** + * this stops all movement induced by the navigation buttons + * + * @private */ }, { @@ -49836,8 +49969,8 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('zoom', { direction: '-', scale: this.body.view.scale, pointer: null }); } - /** - * bind all keys using keycharm. + /** + * bind all keys using keycharm. */ }, { @@ -50000,11 +50133,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * handles the selection part of the tap; - * - * @param {Object} pointer - * @private + /** + * handles the selection part of the tap; + * + * @param {Object} pointer + * @private */ }, { @@ -50092,11 +50225,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * retrieve all nodes overlapping with given object - * @param {Object} object An object with parameters left, top, right, bottom - * @return {Number[]} An array with id's of the overlapping nodes - * @private + /** + * retrieve all nodes overlapping with given object + * @param {Object} object An object with parameters left, top, right, bottom + * @return {Number[]} An array with id's of the overlapping nodes + * @private */ }, { @@ -50113,12 +50246,12 @@ return /******/ (function(modules) { // webpackBootstrap return overlappingNodes; } - /** - * Return a position object in canvasspace from a single point in screenspace - * - * @param pointer - * @returns {{left: number, top: number, right: number, bottom: number}} - * @private + /** + * Return a position object in canvasspace from a single point in screenspace + * + * @param pointer + * @returns {{left: number, top: number, right: number, bottom: number}} + * @private */ }, { @@ -50133,11 +50266,11 @@ return /******/ (function(modules) { // webpackBootstrap }; } - /** - * Get the top node at the passed point (like a click) - * - * @param {{x: Number, y: Number}} pointer - * @return {Node | undefined} node + /** + * Get the top node at the passed point (like a click) + * + * @param {{x: Number, y: Number}} pointer + * @return {Node | undefined} node */ }, { @@ -50161,11 +50294,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * retrieve all edges overlapping with given object, selector is around center - * @param {Object} object An object with parameters left, top, right, bottom - * @return {Number[]} An array with id's of the overlapping nodes - * @private + /** + * retrieve all edges overlapping with given object, selector is around center + * @param {Object} object An object with parameters left, top, right, bottom + * @return {Number[]} An array with id's of the overlapping nodes + * @private */ }, { @@ -50180,11 +50313,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * retrieve all nodes overlapping with given object - * @param {Object} object An object with parameters left, top, right, bottom - * @return {Number[]} An array with id's of the overlapping nodes - * @private + /** + * retrieve all nodes overlapping with given object + * @param {Object} object An object with parameters left, top, right, bottom + * @return {Number[]} An array with id's of the overlapping nodes + * @private */ }, { @@ -50195,11 +50328,11 @@ return /******/ (function(modules) { // webpackBootstrap return overlappingEdges; } - /** - * Get the edges nearest to the passed point (like a click) - * - * @param {{x: Number, y: Number}} pointer - * @return {Edge | undefined} node + /** + * Get the edges nearest to the passed point (like a click) + * + * @param {{x: Number, y: Number}} pointer + * @return {Edge | undefined} node */ }, { @@ -50238,11 +50371,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Add object to the selection array. - * - * @param obj - * @private + /** + * Add object to the selection array. + * + * @param obj + * @private */ }, { @@ -50255,11 +50388,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Add object to the selection array. - * - * @param obj - * @private + /** + * Add object to the selection array. + * + * @param obj + * @private */ }, { @@ -50272,11 +50405,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Remove a single option from selection. - * - * @param {Object} obj - * @private + /** + * Remove a single option from selection. + * + * @param {Object} obj + * @private */ }, { @@ -50290,8 +50423,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Unselect all. The selectionObj is useful for this. + /** + * Unselect all. The selectionObj is useful for this. */ }, { @@ -50311,11 +50444,11 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionObj = { nodes: {}, edges: {} }; } - /** - * return the number of selected nodes - * - * @returns {number} - * @private + /** + * return the number of selected nodes + * + * @returns {number} + * @private */ }, { @@ -50330,11 +50463,11 @@ return /******/ (function(modules) { // webpackBootstrap return count; } - /** - * return the selected node - * - * @returns {number} - * @private + /** + * return the selected node + * + * @returns {number} + * @private */ }, { @@ -50348,11 +50481,11 @@ return /******/ (function(modules) { // webpackBootstrap return undefined; } - /** - * return the selected edge - * - * @returns {number} - * @private + /** + * return the selected edge + * + * @returns {number} + * @private */ }, { @@ -50366,11 +50499,11 @@ return /******/ (function(modules) { // webpackBootstrap return undefined; } - /** - * return the number of selected edges - * - * @returns {number} - * @private + /** + * return the number of selected edges + * + * @returns {number} + * @private */ }, { @@ -50385,11 +50518,11 @@ return /******/ (function(modules) { // webpackBootstrap return count; } - /** - * return the number of selected objects. - * - * @returns {number} - * @private + /** + * return the number of selected objects. + * + * @returns {number} + * @private */ }, { @@ -50409,11 +50542,11 @@ return /******/ (function(modules) { // webpackBootstrap return count; } - /** - * Check if anything is selected - * - * @returns {boolean} - * @private + /** + * Check if anything is selected + * + * @returns {boolean} + * @private */ }, { @@ -50432,11 +50565,11 @@ return /******/ (function(modules) { // webpackBootstrap return true; } - /** - * check if one of the selected nodes is a cluster. - * - * @returns {boolean} - * @private + /** + * check if one of the selected nodes is a cluster. + * + * @returns {boolean} + * @private */ }, { @@ -50452,11 +50585,11 @@ return /******/ (function(modules) { // webpackBootstrap return false; } - /** - * select the edges connected to the node that is being selected - * - * @param {Node} node - * @private + /** + * select the edges connected to the node that is being selected + * + * @param {Node} node + * @private */ }, { @@ -50469,11 +50602,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * select the edges connected to the node that is being selected - * - * @param {Node} node - * @private + /** + * select the edges connected to the node that is being selected + * + * @param {Node} node + * @private */ }, { @@ -50486,11 +50619,11 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * unselect the edges connected to the node that is being selected - * - * @param {Node} node - * @private + /** + * unselect the edges connected to the node that is being selected + * + * @param {Node} node + * @private */ }, { @@ -50503,12 +50636,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This is called when someone clicks on a node. either select or deselect it. - * If there is an existing selection and we don't want to append to it, clear the existing selection - * - * @param {Node || Edge} object - * @private + /** + * This is called when someone clicks on a node. either select or deselect it. + * If there is an existing selection and we don't want to append to it, clear the existing selection + * + * @param {Node || Edge} object + * @private */ }, { @@ -50524,12 +50657,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * This is called when someone clicks on a node. either select or deselect it. - * If there is an existing selection and we don't want to append to it, clear the existing selection - * - * @param {Node || Edge} object - * @private + /** + * This is called when someone clicks on a node. either select or deselect it. + * If there is an existing selection and we don't want to append to it, clear the existing selection + * + * @param {Node || Edge} object + * @private */ }, { @@ -50587,10 +50720,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * - * retrieve the currently selected objects - * @return {{nodes: Array., edges: Array.}} selection + /** + * + * retrieve the currently selected objects + * @return {{nodes: Array., edges: Array.}} selection */ }, { @@ -50601,11 +50734,11 @@ return /******/ (function(modules) { // webpackBootstrap return { nodes: nodeIds, edges: edgeIds }; } - /** - * - * retrieve the currently selected nodes - * @return {String[]} selection An array with the ids of the - * selected nodes. + /** + * + * retrieve the currently selected nodes + * @return {String[]} selection An array with the ids of the + * selected nodes. */ }, { @@ -50622,11 +50755,11 @@ return /******/ (function(modules) { // webpackBootstrap return idArray; } - /** - * - * retrieve the currently selected edges - * @return {Array} selection An array with the ids of the - * selected nodes. + /** + * + * retrieve the currently selected edges + * @return {Array} selection An array with the ids of the + * selected nodes. */ }, { @@ -50643,10 +50776,10 @@ return /******/ (function(modules) { // webpackBootstrap return idArray; } - /** - * Updates the current selection - * @param {{nodes: Array., edges: Array.}} Selection - * @param {Object} options Options + /** + * Updates the current selection + * @param {{nodes: Array., edges: Array.}} Selection + * @param {Object} options Options */ }, { @@ -50689,11 +50822,11 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_requestRedraw'); } - /** - * select zero or more nodes with the option to highlight edges - * @param {Number[] | String[]} selection An array with the ids of the - * selected nodes. - * @param {boolean} [highlightEdges] + /** + * select zero or more nodes with the option to highlight edges + * @param {Number[] | String[]} selection An array with the ids of the + * selected nodes. + * @param {boolean} [highlightEdges] */ }, { @@ -50706,10 +50839,10 @@ return /******/ (function(modules) { // webpackBootstrap this.setSelection({ nodes: selection }, { highlightEdges: highlightEdges }); } - /** - * select zero or more edges - * @param {Number[] | String[]} selection An array with the ids of the - * selected nodes. + /** + * select zero or more edges + * @param {Number[] | String[]} selection An array with the ids of the + * selected nodes. */ }, { @@ -50720,9 +50853,9 @@ return /******/ (function(modules) { // webpackBootstrap this.setSelection({ edges: selection }); } - /** - * Validate the selection: remove ids of nodes which no longer exist - * @private + /** + * Validate the selection: remove ids of nodes which no longer exist + * @private */ }, { @@ -50785,10 +50918,10 @@ return /******/ (function(modules) { // webpackBootstrap var Hammer = __webpack_require__(113); var hammerUtil = __webpack_require__(120); - /** - * clears the toolbar div element of children - * - * @private + /** + * clears the toolbar div element of children + * + * @private */ var ManipulationSystem = function () { @@ -50843,9 +50976,9 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.on('_resetData', this._restore.bind(this)); } - /** - * If something changes in the data during editing, switch back to the initial datamanipulation state and close all edit modes. - * @private + /** + * If something changes in the data during editing, switch back to the initial datamanipulation state and close all edit modes. + * @private */ @@ -50861,9 +50994,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Set the Options - * @param options + /** + * Set the Options + * @param options */ }, { @@ -50896,10 +51029,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Enable or disable edit-mode. Draws the DOM required and cleans up after itself. - * - * @private + /** + * Enable or disable edit-mode. Draws the DOM required and cleans up after itself. + * + * @private */ }, { @@ -50938,10 +51071,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Creates the main toolbar. Removes functions bound to the select event. Binds all the buttons of the toolbar. - * - * @private + /** + * Creates the main toolbar. Removes functions bound to the select event. Binds all the buttons of the toolbar. + * + * @private */ }, { @@ -51021,8 +51154,8 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_redraw'); } - /** - * Create the toolbar for adding Nodes + /** + * Create the toolbar for adding Nodes */ }, { @@ -51051,8 +51184,8 @@ return /******/ (function(modules) { // webpackBootstrap this._temporaryBindEvent('click', this._performAddNode.bind(this)); } - /** - * call the bound function to handle the editing of the node. The node has to be selected. + /** + * call the bound function to handle the editing of the node. The node has to be selected. */ }, { @@ -51098,8 +51231,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * create the toolbar to connect nodes + /** + * create the toolbar to connect nodes */ }, { @@ -51135,8 +51268,8 @@ return /******/ (function(modules) { // webpackBootstrap this._temporaryBindUI('onHold', function () {}); } - /** - * create the toolbar to edit edges + /** + * create the toolbar to edit edges */ }, { @@ -51215,8 +51348,8 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * delete everything in the selection + /** + * delete everything in the selection */ }, { @@ -51281,9 +51414,9 @@ return /******/ (function(modules) { // webpackBootstrap //********************************************** PRIVATE ***************************************// - /** - * draw or remove the DOM - * @private + /** + * draw or remove the DOM + * @private */ }, { @@ -51307,9 +51440,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * create the div overlays that contain the DOM - * @private + /** + * create the div overlays that contain the DOM + * @private */ }, { @@ -51348,12 +51481,12 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * generate a new target node. Used for creating new edges and editing edges - * @param x - * @param y - * @returns {*} - * @private + /** + * generate a new target node. Used for creating new edges and editing edges + * @param x + * @param y + * @returns {*} + * @private */ }, { @@ -51374,8 +51507,8 @@ return /******/ (function(modules) { // webpackBootstrap return node; } - /** - * Create the edit button + /** + * Create the edit button */ }, { @@ -51399,9 +51532,9 @@ return /******/ (function(modules) { // webpackBootstrap this._bindHammerToDiv(button, this.toggleEditMode.bind(this)); } - /** - * this function cleans up after everything this module does. Temporary elements, functions and events are removed, physics restored, hammers removed. - * @private + /** + * this function cleans up after everything this module does. Temporary elements, functions and events are removed, physics restored, hammers removed. + * @private */ }, { @@ -51432,9 +51565,9 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('restorePhysics'); } - /** - * Each dom element has it's own hammer. They are stored in this.manipulationHammers. This cleans them up. - * @private + /** + * Each dom element has it's own hammer. They are stored in this.manipulationHammers. This cleans them up. + * @private */ }, { @@ -51449,9 +51582,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Remove all DOM elements created by this module. - * @private + /** + * Remove all DOM elements created by this module. + * @private */ }, { @@ -51482,10 +51615,10 @@ return /******/ (function(modules) { // webpackBootstrap this.closeDiv = undefined; } - /** - * create a seperator line. the index is to differentiate in the manipulation dom - * @param index - * @private + /** + * create a seperator line. the index is to differentiate in the manipulation dom + * @param index + * @private */ }, { @@ -51569,11 +51702,11 @@ return /******/ (function(modules) { // webpackBootstrap // -------------------------- End of DOM functions for buttons ------------------------------// - /** - * this binds an event until cleanup by the clean functions. - * @param event - * @param newFunction - * @private + /** + * this binds an event until cleanup by the clean functions. + * @param event + * @param newFunction + * @private */ }, { @@ -51583,11 +51716,11 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.on(event, newFunction); } - /** - * this overrides an UI function until cleanup by the clean function - * @param UIfunctionName - * @param newFunction - * @private + /** + * this overrides an UI function until cleanup by the clean function + * @param UIfunctionName + * @param newFunction + * @private */ }, { @@ -51601,10 +51734,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Restore the overridden UI functions to their original state. - * - * @private + /** + * Restore the overridden UI functions to their original state. + * + * @private */ }, { @@ -51619,9 +51752,9 @@ return /******/ (function(modules) { // webpackBootstrap this.temporaryUIFunctions = {}; } - /** - * Unbind the events created by _temporaryBindEvent - * @private + /** + * Unbind the events created by _temporaryBindEvent + * @private */ }, { @@ -51635,10 +51768,10 @@ return /******/ (function(modules) { // webpackBootstrap this.temporaryEventFunctions = []; } - /** - * Bind an hammer instance to a DOM element. - * @param domElement - * @param funct + /** + * Bind an hammer instance to a DOM element. + * @param domElement + * @param funct */ }, { @@ -51649,9 +51782,9 @@ return /******/ (function(modules) { // webpackBootstrap this.manipulationHammers.push(hammer); } - /** - * Neatly clean up temporary edges and nodes - * @private + /** + * Neatly clean up temporary edges and nodes + * @private */ }, { @@ -51681,10 +51814,10 @@ return /******/ (function(modules) { // webpackBootstrap // ------------------------------------------ EDIT EDGE FUNCTIONS -----------------------------------------// - /** - * the touch is used to get the position of the initial click - * @param event - * @private + /** + * the touch is used to get the position of the initial click + * @param event + * @private */ }, { @@ -51695,10 +51828,10 @@ return /******/ (function(modules) { // webpackBootstrap this.lastTouch.translation = util.extend({}, this.body.view.translation); // copy the object } - /** - * the drag start is used to mark one of the control nodes as selected. - * @param event - * @private + /** + * the drag start is used to mark one of the control nodes as selected. + * @param event + * @private */ }, { @@ -51730,10 +51863,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_redraw'); } - /** - * dragging the control nodes or the canvas - * @param event - * @private + /** + * dragging the control nodes or the canvas + * @param event + * @private */ }, { @@ -51754,10 +51887,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_redraw'); } - /** - * connecting or restoring the control nodes. - * @param event - * @private + /** + * connecting or restoring the control nodes. + * @param event + * @private */ }, { @@ -51804,11 +51937,11 @@ return /******/ (function(modules) { // webpackBootstrap // ------------------------------------------- ADD EDGE FUNCTIONS -----------------------------------------// - /** - * the function bound to the selection event. It checks if you want to connect a cluster and changes the description - * to walk the user through the process. - * - * @private + /** + * the function bound to the selection event. It checks if you want to connect a cluster and changes the description + * to walk the user through the process. + * + * @private */ }, { @@ -51869,10 +52002,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Connect the new edge to the target if one exists, otherwise remove temp line - * @param event - * @private + /** + * Connect the new edge to the target if one exists, otherwise remove temp line + * @param event + * @private */ }, { @@ -51919,8 +52052,8 @@ return /******/ (function(modules) { // webpackBootstrap // ------------------------------ Performing all the actual data manipulation ------------------------// - /** - * Adds a node on the specified location + /** + * Adds a node on the specified location */ }, { @@ -51954,10 +52087,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * connect two nodes with a new edge. - * - * @private + /** + * connect two nodes with a new edge. + * + * @private */ }, { @@ -51986,10 +52119,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * connect two nodes with a new edge. - * - * @private + /** + * connect two nodes with a new edge. + * + * @private */ }, { @@ -52040,12 +52173,12 @@ return /******/ (function(modules) { // webpackBootstrap Object.defineProperty(exports, "__esModule", { value: true }); - /** - * This object contains all possible options. It will check if the types are correct, if required if the option is one - * of the allowed values. - * - * __any__ means that the name of the property does not matter. - * __type__ is a required field for all objects and contains the allowed types of all objects + /** + * This object contains all possible options. It will check if the types are correct, if required if the option is one + * of the allowed values. + * + * __any__ means that the name of the property does not matter. + * __type__ is a required field for all objects and contains the allowed types of all objects */ var string = 'string'; var bool = 'boolean'; @@ -52682,13 +52815,13 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - /** - * KamadaKawai positions the nodes initially based on - * - * "AN ALGORITHM FOR DRAWING GENERAL UNDIRECTED GRAPHS" - * -- Tomihisa KAMADA and Satoru KAWAI in 1989 - * - * Possible optimizations in the distance calculation can be implemented. + /** + * KamadaKawai positions the nodes initially based on + * + * "AN ALGORITHM FOR DRAWING GENERAL UNDIRECTED GRAPHS" + * -- Tomihisa KAMADA and Satoru KAWAI in 1989 + * + * Possible optimizations in the distance calculation can be implemented. */ var KamadaKawai = function () { function KamadaKawai(body, edgeLength, edgeStrength) { @@ -52700,9 +52833,9 @@ return /******/ (function(modules) { // webpackBootstrap this.distanceSolver = new _FloydWarshall2["default"](); } - /** - * Not sure if needed but can be used to update the spring length and spring constant - * @param options + /** + * Not sure if needed but can be used to update the spring length and spring constant + * @param options */ @@ -52719,10 +52852,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Position the system - * @param nodesArray - * @param edgesArray + /** + * Position the system + * @param nodesArray + * @param edgesArray */ }, { @@ -52785,10 +52918,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * get the node with the highest energy - * @returns {*[]} - * @private + /** + * get the node with the highest energy + * @returns {*[]} + * @private */ }, { @@ -52823,11 +52956,11 @@ return /******/ (function(modules) { // webpackBootstrap return [maxEnergyNodeId, maxEnergy, dE_dx_max, dE_dy_max]; } - /** - * calculate the energy of a single node - * @param m - * @returns {*[]} - * @private + /** + * calculate the energy of a single node + * @param m + * @returns {*[]} + * @private */ }, { @@ -52841,13 +52974,13 @@ return /******/ (function(modules) { // webpackBootstrap return [delta_m, dE_dx, dE_dy]; } - /** - * move the node based on it's energy - * the dx and dy are calculated from the linear system proposed by Kamada and Kawai - * @param m - * @param dE_dx - * @param dE_dy - * @private + /** + * move the node based on it's energy + * the dx and dy are calculated from the linear system proposed by Kamada and Kawai + * @param m + * @param dE_dx + * @param dE_dy + * @private */ }, { @@ -52896,10 +53029,10 @@ return /******/ (function(modules) { // webpackBootstrap this._updateE_matrix(m); } - /** - * Create the L matrix: edge length times shortest path - * @param D_matrix - * @private + /** + * Create the L matrix: edge length times shortest path + * @param D_matrix + * @private */ }, { @@ -52917,10 +53050,10 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Create the K matrix: spring constants times shortest path - * @param D_matrix - * @private + /** + * Create the K matrix: spring constants times shortest path + * @param D_matrix + * @private */ }, { @@ -52938,9 +53071,9 @@ return /******/ (function(modules) { // webpackBootstrap } } - /** - * Create matrix with all energies between nodes - * @private + /** + * Create matrix with all energies between nodes + * @private */ }, { @@ -53044,8 +53177,8 @@ return /******/ (function(modules) { // webpackBootstrap function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - /** - * Created by Alex on 10-Aug-15. + /** + * Created by Alex on 10-Aug-15. */ var FloydWarshall = function () { diff --git a/dist/vis.map b/dist/vis.map index 81d5ca0ad..af103505f 100644 --- a/dist/vis.map +++ b/dist/vis.map @@ -1 +1 @@ -{"version":3,"sources":["vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","extend","_interopRequireDefault","obj","__esModule","default","_getIterator2","_getIterator3","_create","_create2","_keys","_keys2","_typeof2","_typeof3","moment","uuid","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","prop","hasOwnProperty","fillIfDefined","a","b","allowDeletion","arguments","length","undefined","protoExtend","i","other","selectiveExtend","props","Array","isArray","Error","selectiveDeepExtend","TypeError","constructor","Object","deepExtend","selectiveNotDeepExtend","indexOf","push","equalArray","len","convert","type","match","Boolean","valueOf","isMoment","toDate","getType","toISOString","format","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteRight","right","getAbsoluteTop","top","addClassName","classNames","classes","className","split","newClasses","concat","filter","join","removeClassName","oldClasses","forEach","callback","toArray","array","updateProperty","key","throttle","fn","scheduled","requestAnimationFrame","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","cssUtil","cssText","styles","style","trim","parts","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","bridgeObject","insertSort","compare","k","j","mergeOptions","mergeTarget","options","globalOptions","enabled","binarySearchCustom","orderedItems","comparator","field","field2","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getScrollBarWidth","inner","document","createElement","width","height","outer","position","visibility","overflow","appendChild","body","w1","offsetWidth","w2","clientWidth","topMost","pile","accessors","candidate","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","next","done","member","err","global","hide","Iterators","TO_STRING_TAG","collections","NAME","Collection","proto","prototype","addToUnscopables","step","toIObject","iterated","kind","_t","_i","_k","O","index","Arguments","IObject","defined","it","cof","propertyIsEnumerable","LIBRARY","$export","redefine","has","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","keys","returnThis","Base","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","name","values","P","F","core","ctx","source","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","IS_WRAP","W","expProto","C","apply","Function","virtual","R","U","self","__g","version","__e","aFunction","that","dP","createDesc","anObject","IE8_DOM_DEFINE","toPrimitive","defineProperty","Attributes","isObject","get","is","val","bitmap","enumerable","configurable","writable","create","descriptor","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","src","contentWindow","open","write","lt","close","Properties","getKeys","defineProperties","$keys","arrayIndexOf","names","toLength","toIndex","IS_INCLUDES","$this","el","fromIndex","toInteger","ceil","shared","uid","store","px","random","documentElement","def","tag","stat","Symbol","USE_SYMBOL","toObject","ObjectProto","$at","point","TO_STRING","pos","l","charCodeAt","charAt","getIterator","iterFn","classof","getIteratorMethod","ARG","tryGet","T","callee","$Object","D","fails","KEY","exp","_iterator2","_symbol","_symbol2","_typeof","DESCRIPTORS","META","$fails","wks","wksExt","wksDefine","keyOf","enumKeys","gOPNExt","$GOPD","$DP","gOPD","gOPN","$Symbol","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","iterator","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","set","symbols","for","keyFor","useSetter","useSimple","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","replacer","$replacer","args","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","gOPS","pIE","getSymbols","arg","windowNames","getWindowNames","hiddenKeys","hooks","hookCallback","input","isObjectEmpty","isUndefined","res","hasOwnProp","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","some$1","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","copyConfig","to","from","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","absFloor","number","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","stack","deprecateSimple","deprecations","isFunction","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","calendar","mom","now","output","_calendar","longDateFormat","_longDateFormat","formatUpper","toUpperCase","invalidDate","_invalidDate","ordinal","_ordinal","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","addUnitPriority","priority","priorities","getPrioritizedUnits","unitsObj","u","sort","makeGetSet","keepTime","set$1","stringGet","stringSet","prioritized","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","addFormatToken","token","padded","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","formatMoment","expandFormat","formatFunctions","replaceLongDateFormatTokens","localFormattingTokens","lastIndex","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","month","UTC","getUTCDate","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","indexOf$1","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","isLeapYear","getIsLeapYear","createDate","y","M","ms","getFullYear","setFullYear","createUTCDate","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","weekdays","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","normalizeLocale","chooseLocale","loadLocale","oldLocale","locales","globalLocale","_abbr","code","getSetGlobalLocale","data","getLocale","defineLocale","baseConfig","abbr","parentLocale","localeFamilies","x","updateLocale","listLocales","keys$1","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","extendedIsoRegex","basicIsoRegex","isoDates","isoTimes","tzRegex","configFromStringAndFormat","configFromRFC2822","dayFormat","timezone","timezoneIndex","timezones"," GMT"," EDT"," EST"," CDT"," CST"," MDT"," MST"," PDT"," PST","military","basicRfcRegex","momentDate","momentDay","splice","configFromString","aspNetJsonRegex","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","weekdayOverflow","GG","createLocal","curWeek","gg","ISO_8601","RFC_2822","parsedInput","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","hour","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","isDurationValid","ordering","unitHasDecimal","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","days","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","matcher","matches","chunk","chunkOffset","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","matchShortOffset","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","delta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","inspect","zone","prefix","suffix","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","isoWeekday","unix","toJSON","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","thresholds","ss","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","withSuffix","toISOString$1","abs$1","Y","asSeconds","some","fun","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultDayOfMonthOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","o","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","kInput","_isPm","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","dayOfMonthOrdinalParse","meridiemParse","prototypeMin","prototypeMax","invalid","lang","isoWeekYear","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","firstDayOfYear","firstDayOfWeek","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","webpackPolyfill","paths","children","webpackContext","req","resolve","buf","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","n","rnds","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Hammer","keycharm","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","resetElements","getSVGElement","svgContainer","createElementNS","getDOMElement","DOMContainer","insertBefore","drawPoint","groupTemplate","labelObj","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","rect","_options","_fieldId","fieldId","_type","_subscribers","setOptions","_stringify2","queue","_queue","destroy","on","subscribers","subscribe","off","unsubscribe","_trigger","params","senderId","subscriber","addedIds","me","_addItem","items","update","updatedIds","oldData","updatedData","addOrUpdate","oldItem","_updateItem","ids","firstType","returnType","itemIds","itemId","_getItem","order","_sort","_filterFields","resultant","getIds","getDataSet","mappedItems","filteredItem","itemFields","av","bv","remove","removedIds","removedItems","_remove","ident","clear","maxField","itemField","minField","distinct","fieldType","count","exists","types","raw","converted","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","original","method","context","entry","clearTimeout","setTimeout","_ids","_onEvent","setData","refresh","oldIds","newIds","viewOptions","getArguments","defaultFilter","dataSet","oldItems","updatedItems","container","SyntaxError","containerElement","dataGroup","DataGroup","dataPoints","Settings","setDefaults","DEFAULTS","colX","colY","colZ","colValue","colFilter","getMouseX","clientX","targetTouches","getMouseY","clientY","_assign","_assign2","Emitter","STYLE","filterLabel","legendLabel","xLabel","yLabel","zLabel","xValueLabel","yValueLabel","zValueLabel","showXAxis","showYAxis","showZAxis","showGrid","showPerspective","showShadow","keepAspectRatio","verticalRatio","dotSizeRatio","dotSizeMinFraction","dotSizeMaxFraction","showAnimationControls","animationInterval","animationPreload","animationAutoStart","axisColor","gridColor","xCenter","yCenter","DOT","tooltip","tooltipStyle","padding","borderRadius","boxShadow","line","borderLeft","dot","showLegend","backgroundColor","dataColor","fill","stroke","strokeWidth","cameraPosition","horizontal","vertical","distance","xBarWidth","yBarWidth","valueMin","valueMax","xMin","xMax","xStep","yMin","yMax","yStep","zMin","zMax","zStep","_setScale","xRange","range","yRange","zRange","z","valueRange","center","zCenter","camera","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","cameraLocation","getCameraLocation","cameraRotation","getCameraRotation","ax","ay","az","cx","cy","cz","sinTx","sin","cosTx","cos","sinTy","cosTy","sinTz","cosTz","bx","by","ex","eye","ey","ez","dx","dy","dz","getArmLength","currentXCenter","frame","canvas","currentYCenter","_calcTranslations","points","trans","screen","transBottom","bottom","dist","sortDepth","_checkValueField","BARCOLOR","BARSIZE","DOTCOLOR","DOTSIZE","_initializeData","rawData","initializeData","getDataTable","dataFilter","setOnLoadCallback","redraw","getDataPoints","_getDataPoints","GRID","SURFACE","dataX","getDistinctValues","dataY","dataMatrix","xIndex","yIndex","pointRight","pointTop","pointCross","LINE","pointNext","noCanvas","fontWeight","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onclick","_onClick","_setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","getCameraPosition","getArmRotation","_readData","_redrawFilter","setPointDrawingMethod","reload","BAR","_redrawBarGraphPoint","_redrawBarColorGraphPoint","_redrawBarSizeGraphPoint","_redrawDotGraphPoint","DOTLINE","_redrawDotLineGraphPoint","_redrawDotColorGraphPoint","_redrawDotSizeGraphPoint","_redrawSurfaceGraphPoint","_redrawGridGraphPoint","_redrawLineGraphPoint","_pointDrawingMethod","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGraph","_redrawInfo","_redrawLegend","_getContext","getContext","lineJoin","lineCap","clearRect","_dotSize","_getLegendWidth","isSizeLegend","isValueLegend","margin","lineWidth","font","ymax","hue","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","widthMin","fillStyle","closePath","legendMin","legendMax","start","end","getCurrent","_line","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","drawAxisLabelX","text","armAngle","yMargin","point2d","drawAxisLabelY","drawAxisLabelZ","_line3d","from2d","to2d","prettyStep","xText","yText","zText","gridLenX","gridLenY","textMargin","armVector","defaultXStep","defaultYStep","defaultZStep","from3d","xMin2d","xMax2d","H","V","Hi","X","_getStrokeWidth","_redrawBar","xWidth","yWidth","borderColor","surface","surfaces","corners","avg","transCenter","_polygon","_drawCircle","radius","_calcRadius","arc","PI","_getColorsRegular","_getColorsColor","_getColorsSize","colors","fraction","dotSize","sizeMin","sizeRange","cross","topSideVisible","showGrayBottom","aDiff","bDiff","crossproduct","crossProduct","zAvg","_drawGridLine","_storeMousePosition","startMouseX","startMouseY","_startCameraOffset","getOffset","leftButtonDown","_onMouseUp","which","button","touchDown","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","moving","diffX","diffY","ctrlKey","scaleX","scaleY","offXNew","armLength","offYNew","setOffset","horizontalNew","verticalNew","snapValue","setArmRotation","parameters","emit","onclick_callback","boundingRect","mouseX","mouseY","dataPoint","_dataPointFromXY","showTooltip","tooltipTimeout","_hideTooltip","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","wheelDelta","detail","oldLength","newLength","setArmLength","_insideTriangle","triangle","bs","cs","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","hasBars","dom","contentWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","setCameraPosition","setSize","assign","$assign","A","K","aLen","mixin","_callbacks","once","removeListener","removeAllListeners","callbacks","cb","listeners","hasListeners","sub","sum","armLocation","armRotation","cameraOffset","offsetMultiplier","calculateCameraOrientation","_sign","_sign2","mul","rot","xa","za","column","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","getValue","dataView","progress","prev","bar","MozBorderRadius","slide","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","precision","_current","setRange","isNumeric","setStep","calculatePrettyStep","log10","log","LN10","step1","step2","step5","toPrecision","getStep","checkFirst","Range","combine","expand","newMin","newMax","isEmpty","capitalize","str","prefixFieldName","fieldName","forceCopy","dst","srcKey","dstKey","safeCopy","OPTIONKEYS","PREFIXEDOPTIONKEYS","setSpecialSettings","setBackgroundColor","setDataColor","setStyle","setShowLegend","isLegendGraphStyle","getStyleNumberByName","styleName","STYLENAME","checkStyleNumber","valid","styleNumber","borderWidth","borderStyle","camPos","dot-line","dot-color","dot-size","grid","bar-color","bar-size","dataTable","_onChange","withBars","defaultXBarWidth","getSmallestDifference","defaultYBarWidth","_initializeRange","getColumnRange","_setRangeDefaults","defaultValueMin","defaultValueMax","_collectRangeSettings","upper","barWidth","range_label","step_label","settings","smallest_diff","getNumberOfRows","defaultMin","defaultMax","propagating","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_firstTarget","hammer","events","propagatedHandler","srcEvent","_handled","stopped","stopPropagation","srcStop","bind","firstTarget","elemHammer","_handlers","Manager","PropagatingHammer","wrapper","pointerType","isFirst","handler","eventType","hammers","idx","exportName","setTimeoutContext","timeout","bindFn","invokeArrayArg","each","message","deprecationMessage","inherit","child","properties","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","find","inArray","findByKey","uniqueArray","results","prefixed","property","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","enable","init","createInputInstance","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","angle","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","getScale","rotation","getRotation","maxPointers","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","atan2","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changed","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","touch","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","removeLastTouch","DEDUP_TIMEOUT","isSyntheticEvent","DEDUP_DISTANCE","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","oldCssProps","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","nextKey","dest","merge","MOBILE_REGEX","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","compute","getTouchAction","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_RECOGNIZED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","reset","process","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","force","curRecognizer","existing","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press","_exportFunctions","_bound","keydown","keyup","fromCharCode","down","handleEvent","up","keyCode","bound","shiftKey","bindAll","getKey","unbind","newBindings","Timeline","Graph2d","timeline","Core","DateUtil","TimeStep","components","Item","BackgroundItem","BoxItem","PointItem","RangeItem","BackgroundGroup","Component","CurrentTime","CustomTime","DataAxis","DataScale","GraphGroup","Group","ItemSet","Legend","LineGraph","TimeAxis","groups","forthArgument","throttleRedraw","defaultOptions","autoResize","orientation","axis","maxHeight","minHeight","rtl","directionFromDom","domNode","getComputedStyle","parentElement","rollingMode","domProps","emitter","hiddenDates","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","timeAxis2","currentTime","itemSet","itemsData","groupsData","getEventProperties","ondblclick","oncontextmenu","onmouseover","onpointerdown","onpointermove","onpointerup","fitDone","getItemRange","setWindow","animation","fit","setGroups","setItems","_redraw","printStyle","allOptions","configureOptions","Configurator","Validator","_createConfigurator","markDirty","refreshItems","validate","selection","getSelection","setSelection","newDataSet","group","focus","itemData","dataset","getDataRange","minItem","maxItem","getStart","getEnd","factor","groupShowing","show","repositionX","startSide","getWidthRight","endSide","getWidthLeft","lhs","rhs","centerContainer","itemFromTarget","groupFromTarget","customTime","customTimeFromTarget","snap","snappedTime","what","foreground","labelSet","groupId","pageX","pageY","toggleRollingMode","rolling","stopRolling","startRolling","millisecondsPerPixelCache","deltaDifference","scaleOffset","startToFront","endToFront","moveable","zoomable","zoomMin","zoomMax","follow","animationTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","rollingModeBtn","validateDirection","conversion","currentTimeTimer","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","dragging","ease","_applyRange","updateHiddenDates","timeoutID","getMillisecondsPerPixel","newStart","newEnd","getRange","totalHidden","previousDelta","_isInsideRange","allowDragging","getHiddenDurationBetween","diffRange","safeStart","snapAwayFromHidden","safeEnd","startDate","endDate","zoomKey","horizontalScroll","pointerDate","pointer","getPointer","_pointerToDate","zoom","centerDate","hiddenDuration","hiddenDurationBefore","getHiddenDurationBefore","hiddenDurationAfter","move","onTouch","onRelease","offTouch","offRelease","disablePreventDefaultVertically","pinchRecognizer","_isResized","resized","_previousWidth","_previousHeight","convertHiddenOptions","repeat","dateItem","totalRange","pixelTime","runUntil","dayOffset","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","safeDates","printDates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","switchedYear","switchedMonth","switchedDay","hiddenBeforeStart","getHiddenDurationBeforeStart","rangeAfterEnd","correctTimeForHidden","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","timeOffset","requiredDuration","previousPoint","correctionEnabled","hammerUtil","Activator","onMouseWheel","isActive","verticalScroll","scrollTop","adjusted","_setScrollTop","onMouseScrollSide","handleDragOver","itemAddedToTimeline","dataTransfer","dropEffect","handleDrop","getData","_onAddItem","backgroundVertical","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","scrollTopMin","initialDrawDone","_origRedraw","initialItemSetDrawn","customTimes","redrawCount","drawPoints","onRender","clickToUse","activator","_initAutoResize","component","configurator","configure","appliedOptions","setModuleOptions","active","_stopAutoResize","setCustomTime","getCustomTime","setCustomTimeTitle","title","setCustomTitle","addCustomTime","timestamp","removeCustomTime","getVisibleItems","getWindow","zoomIn","percentage","newInterval","zoomOut","borderRootHeight","borderRootWidth","autoHeight","containerHeight","scrollbarWidth","_setDOM","_updateScrollTop","visibilityTop","visibilityBottom","contentsOverflow","centerWidth","repaint","setCurrentTime","getCurrentTime","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","align","stackSubgroups","groupOrderSwap","fromGroup","toGroup","targetOrder","groupOrder","selectable","multiselect","itemsAlwaysDraggable","editable","updateTime","updateGroup","overrideItems","groupEditable","onAdd","onUpdate","onMove","onRemove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup","showTooltips","followMouse","overflowMethod","tooltipOnItemUpdateTime","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","popup","touchParams","groupTouchParams","Popup","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","groupHammer","_onGroupClick","_onGroupDragStart","_onGroupDrag","_onGroupDragEnd","_onMouseOver","_onMouseOut","dirty","displayed","unselect","select","rawVisibleItems","isVisible","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","scrolled","lastRangeStart","changedStackOption","lastStack","changedStackSubgroupsOption","lastStackSubgroups","forceRestack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","nestedGroups","nestedGroupId","updatedNestedGroup","nestedInGroup","showNested","_order","getGroups","removeItem","_getType","selected","_removeItem","groupData","groupOptions","_orderNestedGroups","newGroupIdsOrder","nestedGroup","nestedGroupIds","_constructByEndArray","endArray","dragLeftItem","dragRightItem","itemProps","_getGroupIndex","itemIsDragging","selectedItem","initialX","dragLeft","_cloneItemData","dragRight","baseGroupIndex","itemsToDrag","groupIndex","groupOffset","metaKey","_onDragStartAddItem","xAbs","newItem","offsetLeft","updateGroupAllowed","newGroupBase","initial","initialEnd","initialStart","newOffset","_moveToGroup","oldGroup","collapsedDirClassName","originalOrder","movingUp","targetGroupTop","draggedGroupHeight","targetGroup","draggedGroup","newOrder","origOrder","draggedId","numGroups","curPos","orgOffset","slippedPosition","switchGroup","shouldBeGroup","switchGroupId","oldSelection","newSelection","itemFromRelatedTarget","getTitle","setText","setPosition","offsetTop","_onUpdateItem","newItemData","itemGroup","lastSelectedGroup","multiselectPerGroup","_getItemRange","_item","itemFromElement","cur","relatedTarget","itemSetFromTarget","minimumStep","autoScale","FORMAT","minorLabels","majorLabels","setMoment","setFormat","setMinimumStep","roundToMinor","hasNext","setScale","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","isMajor","getLabelMinor","getLabelMajor","getClassName","even","today","_moment","currentWeek","currentMonth","subgroups","subgroupIndex","subgroupOrderer","subgroupOrder","stackDirty","itemsInRange","byStart","byEnd","checkRangedItems","marker","templateFunction","Element","paddingRight","paddingLeft","getLabelWidth","markerHeight","lastMarkerHeight","_calculateSubGroupHeights","lastIsVisible","_isGroupVisible","restack","_updateSubgroupsSizes","customOrderedItems","_updateItemsInRange","nostack","_calculateHeight","repositionY","resetSubgroups","subgroup","setParent","_addToSubgroup","orderSubgroups","_checkIfVisible","subgroupId","sortArray","sortField","_removeFromSubgroup","itemIndex","removeFromDataSet","startArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","searchFunction","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","changeSubgroup","oldSubgroup","newSubgroup","collidingItem","jj","collision","newTop","otherSubgroup","collisionByTimes","baseClassName","visibleFrame","_updateContents","_updateDataAttributes","_updateStyle","maxWidth","_repaintOnItemUpdateTimeTooltip","_repaintDeleteButton","_repaintDragCenter","_repaintDragLeft","_repaintDragRight","limitSize","contentStartPosition","parentWidth","boxWidth","_updateEditStatus","dragCenter","dragCenterItem","deleteButton","onItemUpdateTimeTooltip","itemDistanceFromTop","template","itemVisibleFrameContent","visibleFrameTemplateFunction","frameElement","itemVisibleFrameContentElement","getElementsByClassName","visibleFrameTemplate","_contentToString","dataAttributes","attributes","setAttribute","removeAttribute","outerHTML","widthInMs","previousRight","previousLeft","itemSetHeight","marginLeft","marginRight","itemSubgroup","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","doShow","isLeft","isTop","instance","_defineProperty","_defineProperty2","protoProps","staticProps","desc","lines","majorTexts","minorTexts","lineTop","showMinorLabels","showMajorLabels","maxMinorChars","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","minorCharWidth","xNext","showMinorGrid","prevWidth","labelMinor","xFirstMajorLabel","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","warnedForOverflow","leftTime","leftText","widthText","majorCharWidth","pop","createTextNode","childNodes","measureCharMinor","measureCharMajor","overlay","_onTapOverlay","onClick","_hasParent","deactivate","escListener","activate","eventParams","drag","warned","substring","showCurrentTime","errorFound","referenceOptions","subObject","usedOptions","path","check","__any__","getSuggestion","__type__","checkFields","referenceOption","refOptionObj","optionType","refOptionType","print","printLocation","localSearch","findInOptions","globalSearch","indexMatch","closestMatch","recursive","closestMatchPath","lowerCaseOption","op","levenshteinDistance","_j","_j2","matrix","bool","boolean","function","any","null","groupsDraggable","ColorPicker","parentModule","defaultContainer","pixelRatio","changedOptions","allowCreation","initialized","popupCounter","showButton","moduleOptions","domElements","popupDiv","popupLimit","popupHistory","colorPicker","_removePopup","_clean","_this","counter","_handleObject","_makeItem","_makeHeader","generateButton","_printOptions","onmouseout","optionsContainer","_push","_showPopupIfNeeded","_len","_key","div","objectLabel","selectedValue","_update","_makeLabel","popupString","popupValue","oninput","_setupPopup","_this2","html","hideTimeout","deleteTimeout","_this3","correspondingElement","checkbox","checked","_this4","defaultColor","_showColorPicker","_this5","insertTo","setColor","setUpdateCallback","colorString","setCloseCallback","checkOnly","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","draw","physics","solver","enabledPath","enabledValue","_label","error","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","getOptions","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","closeCallback","_bindHammer","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","_rgbaArray","rgbObj","alpha","_setColor","_generateHueCircle","_hide","_updatePicker","alert","angleConvert","colorPickerSelector","colorPickerCanvas","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","putImageData","circle","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","pinch","_moveSelector","sat","sfac","fillRect","getImageData","centerY","centerX","newLeft","linegraph","initialLoad","getLegend","isGroupVisible","yAxisLeft","yAxisRight","legendLeft","legendRight","screenToValue","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","sideBySide","interpolation","parametrization","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","forceGraphUpdate","lastStart","svgElements","groupsUsingDefaultStyles","svg","framework","Bars","Lines","Points","_removeGroup","_updateAllGroupData","removeGroup","_updateGroup","addGroup","groupsContent","idMap","groupCounts","existingItemsMap","existing_items","extended","orginalY","_updateGraph","rangePerPixelInv","_getSortedGroupIds","grouplist","zIndex","bz","groupRanges","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","below","excludeFromStacking","_stack","_convertYcoordinates","calcPath","subGroupId","drawShading","subData","subPrevPoint","subNextPoint","dateComparator","first","dataContainer","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","combinedDataLeft","combinedDataRight","getYRange","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","masterAxis","lineOffset","tempGroups","axisUsed","datapoints","screen_x","screen_y","screen_end","svgHeight","convertValue","setZeroPosition","linegraphOptions","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","alignZeros","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","stepPixels","zeroCrossing","amountOfSteps","iconsRemoved","amountOfGroups","lineContainer","graphOptions","_redrawGroupIcons","iconOffset","groupArray","iconHeight","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","customRange","autoScaleEnd","autoScaleStart","followScale","maxLabelSize","getLines","major","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","characterHeight","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","zeroAlign","formattingFunction","majorSteps","minorSteps","customLines","minorStepIdx","magnitudefactor","determineScale","rounded","setCharHeight","setHeight","minimumStepValue","orderOfMagnitude","solutionFound","is_major","getFirstMajor","majorStep","formatValue","bottomOffset","oldStepIdx","oldStart","oldEnd","increaseMagnitude","decreaseMagnitude","otherZero","otherStep","newRange","myOriginalZero","majorOffset","zeroOffset","pixels","usingDefaultStyle","zeroPosition","drawIcon","icon","Bargraph","fillHeight","outline","originalWidth","bar1Height","bar2Height","processedGroupData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","amount","resolved","accumulatedNegative","accumulatedPositive","dataWidth","pointData","groupLabel","_getStackedYRange","xpos","getGroupTemplate","callbackResult","getCallback","Line","_catmullRom","_linear","fillPath","pathArray","subPathArray","dFill","zero","serializePath","inverse","_catmullRomUniform","p0","bp1","bp2","d1","d2","d3","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","side","iconSize","iconSpacing","excludeFromLegend","textArea","scrollableHeight","drawLegendIcons","paddingTop","Network","network","Images","dotparser","gephiParser","convertDot","DOTToGraph","convertGephi","parseGephi","nodes","nodeIndices","edges","edgeIndices","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseMove","onContext","functions","createNode","createEdge","view","bindEventListeners","images","Groups","Canvas","selectionHandler","SelectionHandler","interactionHandler","InteractionHandler","View","renderer","CanvasRenderer","PhysicsEngine","layoutEngine","LayoutEngine","clustering","ClusterEngine","manipulation","ManipulationSystem","nodesHandler","NodesHandler","edgesHandler","EdgesHandler","KamadaKawai","_require","_require2","layout","interaction","networkOptions","_updateVisibleIndices","nodeId","edgeId","_updateValueRange","unselectAll","dotData","gephi","gephiData","valueTotal","setValueRange","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","getNodesInCluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","moveNode","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","edge","selectNodes","selectEdges","getViewPosition","releaseNode","getOptionsFromConfigurator","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","diamond","roundRect","r2d","ellipse_vis","ox","oy","xe","ye","xm","ym","bezierCurveTo","database","wEllipse","hEllipse","ymb","yeb","arrowEndpoint","xt","yt","xi","yi","xl","yl","xr","yr","circleEndpoint","xc","yc","dashedLine","x2","y2","pattern","patternLength","slope","distRemaining","patternIndex","dashLength","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","setValue","addNode","graphs","attr","addEdge","getToken","tokenType","TOKENTYPE","NULL","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","maxLength","forEach2","elem1","elem2","setProp","convertAttr","mapping","visProp","visPropI","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","image","shape","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","arrows","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","gephiJSON","inheritColor","fixed","gEdges","gNodes","gEdge","gNode","edit","del","back","editEdge","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError","_CachedImage","_CachedImage2","imageBroken","url","brokenUrl","imageToLoadBrokenUrlOn","onerror","imageToRedrawWith","cachedImage","img","onload","_fixImageCoordinates","_redrawWithImage","_tryloadBrokenUrl","imageToCache","CachedImage","NUM_ITERATIONS","Image","coordinates","_fillMipMap","drawImage","iterations","_to","_isImageOk","complete","naturalWidth","defaultIndex","groupsArray","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_index","Node","Label","nodesListeners","borderWidthSelected","brokenImage","face","strokeColor","vadjust","multi","bold","mod","boldital","ital","mono","labelHighlightBold","level","mass","scaling","maxVisible","drawThreshold","customScalingFunction","shadow","shapeProperties","borderDashes","useImageSize","useBorderWithImage","nodeOptions","parseOptions","updateShape","updateLabelModule","needsRefresh","_nodeId2","doNotEmit","oldNodesData","newNodes","positionInitially","changedData","dataChanged","clearPositions","dataArray","_node","_node2","boundingBox","nodeList","nodeObj","toId","fromId","edgeList","Box","Circle","CircularImage","Database","Diamond","Dot","Ellipse","Icon","Square","Star","Text","Triangle","TriangleDown","imagelist","baseSize","baseFontSize","predefinedPosition","labelModule","currentShape","checkMass","groupObj","choosify","_load_images","propagateFonts","imageObj","load","unselected","imageObjAlt","chooser","chosen","chosenNode","shadowColor","shadowSize","shadowX","shadowY","constrain","refreshNeeded","distanceToBorder","sizeDiff","fontDiff","getFormattingValues","updateBoundingBox","resize","parentOptions","newOptions","parsedColor","strId","_slicedToArray2","_slicedToArray3","edgelabel","pointToSelf","fontOptions","yLine","isEdgeLabel","elementOptions","labelDirty","constrainWidth","maxWdt","minWdt","widthConstraint","widthConstraintMaximum","widthConstraintMinimum","constrainHeight","minHgt","valign","heightConstraint","heightConstraintMinimum","heightConstraintValign","chosenLabel","margins","widthBias","heightBias","pathP","opt","getP","mods","modOptions","modDefaults","parseFontString","ratio","baseline","viewFontSize","calculateLabelSize","_drawBackground","_drawText","fontSize","_setAlignment2","_setAlignment","_setAlignment3","labelHeight","lineCount","blocks","block","_getColor2","_getColor","_getColor3","fontColor","strokeText","initialStrokeColor","_processLabel","markupSystem","system","decodeMarkupSystem","splitMarkdownBlocks","splitHtmlBlocks","beginable","spacing","buffer","modStack","modName","emitBlock","ch","unshift","selectedState","hoverState","accumulate","addAndAccumulate","_nlLines","splitBlocks","_values","words","atStart","measure","lastMeasure","pre","measureText","_values2","_measure","_values3","_words","_text","_measure2","_lastMeasure","_pre","_text2","_measure3","outOptions","inOptions","newOptionsArray","_isIterable2","_isIterable3","sliceIterator","_arr","_n","_e","_s","isIterable","_getPrototypeOf","_getPrototypeOf2","_possibleConstructorReturn2","_possibleConstructorReturn3","_inherits2","_inherits3","_NodeBase2","_NodeBase3","_NodeBase","__proto__","_setMargins","textSize","getTextSize","initContextForDraw","performFill","_updateBoundingBox","_addBoundingBoxMargin","$getPrototypeOf","ReferenceError","_setPrototypeOf","_setPrototypeOf2","subClass","superClass","setPrototypeOf","buggy","NodeBase","adjustSizes","shadowBlur","shadowOffsetX","shadowOffsetY","setLineDash","dashes","differentState","save","enableBorderDashes","disableBorderDashes","restore","enableShadow","disableShadow","performStroke","_CircleImageBase2","_CircleImageBase3","_CircleImageBase","diameter","_drawRawCircle","CircleImageBase","labelOffset","setImages","selection_changed","imageTmp","ratio_width","ratio_height","globalAlpha","drawImageAtPosition","labelDimensions","_resizeImage","switchImages","clip","_drawImageAtPosition","_drawImageLabel","_distanceToBorder","_ShapeBase2","_ShapeBase3","_ShapeBase","_drawShape","ShapeBase","sizeMultiplier","_icon","neutralborderWidth","selectionLineWidth","Edge","edgesListeners","scaleFactor","arrowStrikethrough","hoverWidth","selectionWidth","selfReferenceSize","smooth","forceDirection","roundness","edgeData","edgeOptions","reconnectEdges","updateEdgeType","_edgeId","oldEdgesData","edgesData","oldEdge","disconnect","showInternalIds","connect","cleanup","CubicBezierEdge","BezierEdgeDynamic","BezierEdgeStatic","StraightEdge","baseWidth","edgeType","connected","_setInteractionWidths","chosenEdge","toArrow","fromArrow","middleArrow","inheritsColor","toArrowScale","toArrowType","middleArrowScale","middleArrowType","fromArrowScale","fromArrowType","selectedWidth","changeInType","attachEdge","detachEdge","widthDiff","viaNode","getViaNode","arrowData","fromPoint","toPoint","getArrowData","drawLine","drawArrows","drawLabel","drawArrowHead","node1","node2","getPoint","translate","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","colorsDefined","_CubicBezierEdgeBase2","_CubicBezierEdgeBase3","_CubicBezierEdgeBase","viaNodes","via1","via2","_bezierCurve","x1","y1","_getViaCoordinates","nearNode","_findBorderPositionBezier","x3","y3","_ref","_ref2","_getDistanceToBezierEdge","_ref3","_ref4","vec","_BezierEdgeBase2","_BezierEdgeBase3","CubicBezierEdgeBase","_BezierEdgeBase","minDistance","lastX","lastY","_getDistanceToLine","_EdgeBase2","_EdgeBase3","BezierEdgeBase","_EdgeBase","distanceToPoint","difference","via","viaNode1","viaNode2","hasNode1","hasNode2","quadraticCurveTo","EdgeBase","colorDirty","getColor","_drawDashedLine","_drawLine","_getCircleData2","_getCircleData","_getCircleData3","_circle","lineDashOffset","_getCircleData4","_getCircleData5","_getCircleData6","_getCircleData7","_x","_y","_radius","_findBorderPosition","_findBorderPositionCircle","_getCircleData8","_getCircleData9","grd","createLinearGradient","fromColor","toColor","addColorStop","_getDistanceToEdge","_getCircleData10","_getCircleData11","py","something","arrowPoint","guideOffset","findBorderPosition","guidePos","_getCircleData12","_getCircleData13","_boundFunction","positionBezierNode","physicsChange","setupSupportNode","parentEdgeId","cr","xVia","yVia","stepX","stepY","_stepX","_stepY","_stepX2","_stepY2","pi","originalAngle","myAngle","_pi","_originalAngle","_myAngle","_stepX3","_stepY3","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","NetworkUtil","HierarchicalStatus","childrenReference","parentReference","levels","trees","isTree","parentNodeId","childNodeId","accumulator","_getMaxLevel","nodeA","nodeB","minLevel","min_x","max_x","min_y","max_y","initialRandomSeed","randomSeed","setPhysics","optionsBackup","improvedLayout","hierarchical","levelSeparation","nodeSpacing","treeSpacing","blockShifting","edgeMinimization","parentCentralization","sortMethod","setupHierarchicalLayout","layoutNetwork","getStaticType","prevHierarchicalState","adaptAllOptionsForHierarchicalLayout","backupPhysics","nodesArray","seededRandom","indices","positionDefined","clusterOptions","clusterEdgeProperties","startLength","before","clusterBridges","_declusterAll","info","kamadaKawai","springLength","solve","_shiftToCenter","getRangeCore","findCenter","clustersPresent","definedLevel","undefinedLevel","lastNodeOnLevel","treeIndex","distributionOrdering","distributionIndex","distributionOrderingPresence","_determineLevelsByHubsize","_determineLevelsDirected","_determineLevelsCustomCallback","ensureLevel","distribution","_getDistribution","_generateMap","_placeNodesByHierarchy","_condenseHierarchy","stillShifting","branches","shiftTree","_getPositionForHierarchy","_setPositionForHierarchy","getTreeSize","_isVertical","getTreeSizes","treeWidths","getBranchNodes","getBranchBoundary","branchMap","maxLevel","minSpace","maxSpace","branchNode","_getSpaceAroundNode2","_getSpaceAroundNode","_getSpaceAroundNode3","minSpaceNode","maxSpaceNode","getCollisionLevel","maxLevel1","getMaxLevel","maxLevel2","hasSameParent","parents1","parents2","shiftElementsCloser","centerParents","levelNodes","branchShiftCallback","centerParent","diffAbs","branchNodes1","branchNodes2","_getBranchBoundary","_getBranchBoundary2","max1","_getBranchBoundary3","_getBranchBoundary4","min2","minSpace2","_shiftBlock","_centerParent","minimizeEdgeLength","allEdges","nodeLevel","C2","referenceNodes","aboveEdges","otherNode","getFx","_i2","getDFx","_i3","getGuess","guess","guessMap","_i4","fx","dfx","nodePosition","branchNodes","_getBranchBoundary5","_getBranchBoundary6","minSpaceBranch","maxSpaceBranch","branchOffset","_getSpaceAroundNode4","_getSpaceAroundNode5","newPosition","reverse","treeSizes","shiftBy","useMap","prevNode","nextNode","nextPos","parents","parentId","_getCenterPosition","_getSpaceAroundNode6","_getSpaceAroundNode7","positionedNodes","nodeArray","_indexArrayToNodes","_sortNodeArray","handledNodeCount","_validatePositionAndContinue","parentLevel","childRef","_i5","childNode","childNodeLevel","previousPos","sharedParent","_findCommonParent","withChild","_placeBranchNodes","idArray","hubSizes","nodeIds","_getActiveEdges","levelDownstream","_getHubSizes","hubSize","_crawlNetwork","levelByDirection","levelA","cloneOptions","setMinLevelToZero","_this6","_this7","fillInRelations","addRelation","checkIfTree","_this8","startingNodeId","crawler","tree","_this9","shifter","childA","childB","_this10","iterateParents","parentRef","findParent","foundParent","branch","minPos","maxPos","allNodes","specificNodes","minY","maxY","minX","maxX","clonedOptions","amountOfConnections","BarnesHutSolver","Repulsion","HierarchicalRepulsion","SpringSolver","HierarchicalSpringSolver","CentralGravitySolver","ForceAtlas2BasedRepulsionSolver","ForceAtlas2BasedCentralGravitySolver","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestep","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springConstant","damping","avoidOverlap","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","updateInterval","onlyDynamicEdges","timestep","layoutFailed","initPhysics","updatePhysicsData","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","runDoubleSpeed","amountOfIterations","calculateForces","moveNodes","revert","_evaluateStepQuality","positions","vx","vy","reference","maxNodeVelocity","averageNodeVelocity","nodeVelocity","_performStep","targetIterations","_freezeNodes","_stabilizationBatch","running","sendProgress","_finalizeStabilization","_restoreFrozenNodes","forceSize","arrowSize","barnesHutTree","thetaInversed","overlapAvoidanceFactor","nodeCount","_formBarnesHutTree","_getForceContribution","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fy","rootSize","halfRootSize","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","_placeInRegion","region","containedNode","_insertRegion","childSize","_drawBranch","RepulsionSolver","repulsingForce","HierarchicalRepulsionSolver","edgeLength","node3","_calculateSpringForce","springForce","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","_nodeId3","_BarnesHutSolver2","_BarnesHutSolver3","_BarnesHutSolver","degree","_CentralGravitySolver2","_CentralGravitySolver3","_CentralGravitySolver","Cluster","clusteredNodes","clusteredEdges","hubsize","_getHubSize","_checkOptions","nodesToCluster","refreshData","joinCondition","childNodesObj","childEdgesObj","_cluster","edgeCount","clusters","usedNodes","relevantEdgeCount","gatheringSuccessful","_getConnectedId","clusterByEdgeCount","clusterNodeProperties","parentClonedOptions","childClonedOptions","childNodeIDs","childEdge","otherNodeId","childKeys","createEdges","_edge","newEdge","clusteringEdgeReplacingId","edgeReplacedById","_backupEdgeOptions","allowSingleNodeCluster","processProperties","childNodesOptions","childEdgesOptions","_clonedOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_createClusterEdges","originalOptions","clusterNodeId","releaseFunction","clusterPosition","newPositions","_containedNode","_nodeId4","_containedNode2","_nodeId5","_containedNode3","edgesToBeDeleted","otherCluster","transferEdge","replacedEdge","_restoreEdge","clusteredNodeId","startEdgeId","allEdgeIds","getClusteredEdges","clusteredEdgeId","baseEdgeId","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","_Node2","_Node3","_Node","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","redrawRequested","renderingActive","renderRequests","allowRedraw","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","_renderStep","_drawEdges","_drawNodes","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","browserType","resizeTimer","resizeFunction","cameraState","canvasViewCenter","hammerFrame","_cleanUp","previousWidth","previousHeight","widthRatio","heightRatio","newScale","currentViewCenter","distanceFromCenter","tabIndex","_setPixelRatio","_prepareValue","emitEvent","oldWidth","oldHeight","previousRatio","_getCameraState","newWidth","newHeight","_setCameraState","_determinePixelRatio","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","initialZoom","zoomLevel","yDistance","xZoomLevel","yZoomLevel","animationOptions","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","NavigationHandler","navigationHandler","popupObj","popupTimer","dragNodes","dragView","keyboard","speed","bindToWindow","navigationButtons","tooltipDelay","zoomView","pinched","checkSelectionChanges","_generateClickEvent","previousSelection","selectAdditionalOnPoint","selectOnPoint","currentSelection","deselectedItems","_determineDifference","selectedItems","firstSet","secondSet","arrayDiff","firstArr","secondArr","selectObject","selectionObj","xFixed","yFixed","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","overlappingEdges","popupTargetType","popupTargetId","_pointerToPositionObject","stillOnObj","overNode","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","boundAction","unbindFromRedraw","hoverObj","selectConnectedEdges","hoverConnectedEdges","updateSelection","selectionChanged","deselectObject","emptySelection","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","mindist","overlappingEdge","_unselectConnectedEdges","clusterSize","_addToHover","hoverChanged","blurObject","_hoverConnectedEdges","RangeError","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","initiallyActive","deleteNode","deleteEdge","controlNodeStyle","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","_getSelectedNodeCount","selectedEdgeCount","_getSelectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","editWithoutDrag","edgeBeingEditedId","_performEditEdge","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","deleteBtnClass","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","fromSelect","toSelect","overlappingNodeIds","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","eeFunct","maximum","minimum","_FloydWarshall","_FloydWarshall2","edgeStrength","distanceSolver","edgesArray","ignoreClusters","D_matrix","getDistances","_createL_matrix","_createK_matrix","_createE_matrix","maxIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_getHighestEnergyNode2","_getHighestEnergyNode","_getHighestEnergyNode3","_moveNode","_getEnergy2","_getEnergy","_getEnergy3","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_getEnergy4","_getEnergy5","_E_sums$m","E_sums","d2E_dx2","d2E_dxdy","d2E_dy2","x_m","y_m","km","K_matrix","lm","L_matrix","iIdx","x_i","y_i","kmat","lmat","denominator","_updateE_matrix","E_matrix","mIdx","_mIdx","colm","kcolm","lcolm","cell","oldDx","oldDy","FloydWarshall","knode","inode","icolm","jnode","jcolm"],"mappings":"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","file":"vis"} \ No newline at end of file +{"version":3,"sources":["vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","extend","_interopRequireDefault","obj","__esModule","default","_getIterator2","_getIterator3","_create","_create2","_keys","_keys2","_typeof2","_typeof3","moment","uuid","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","prop","hasOwnProperty","fillIfDefined","a","b","allowDeletion","arguments","length","undefined","protoExtend","i","other","selectiveExtend","props","Array","isArray","Error","selectiveDeepExtend","TypeError","constructor","Object","deepExtend","selectiveNotDeepExtend","indexOf","push","equalArray","len","convert","type","match","Boolean","valueOf","isMoment","toDate","getType","toISOString","format","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteRight","right","getAbsoluteTop","top","addClassName","classNames","classes","className","split","newClasses","concat","filter","join","removeClassName","oldClasses","forEach","callback","toArray","array","updateProperty","key","throttle","fn","scheduled","requestAnimationFrame","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","cssUtil","cssText","styles","style","trim","parts","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","bridgeObject","insertSort","compare","k","j","mergeOptions","mergeTarget","options","globalOptions","enabled","binarySearchCustom","orderedItems","comparator","field","field2","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","getScrollBarWidth","inner","document","createElement","width","height","outer","position","visibility","overflow","appendChild","body","w1","offsetWidth","w2","clientWidth","topMost","pile","accessors","candidate","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","next","done","member","err","global","hide","Iterators","TO_STRING_TAG","DOMIterables","NAME","Collection","proto","prototype","addToUnscopables","step","toIObject","iterated","kind","_t","_i","_k","O","index","Arguments","IObject","defined","it","cof","propertyIsEnumerable","LIBRARY","$export","redefine","has","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","keys","returnThis","Base","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","name","values","P","F","core","ctx","source","own","out","IS_FORCED","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","IS_WRAP","W","expProto","C","apply","Function","virtual","R","U","self","__g","version","__e","aFunction","that","dP","createDesc","anObject","IE8_DOM_DEFINE","toPrimitive","defineProperty","Attributes","isObject","get","is","val","bitmap","enumerable","configurable","writable","create","descriptor","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","src","contentWindow","open","write","lt","close","Properties","getKeys","defineProperties","$keys","arrayIndexOf","names","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","toInteger","ceil","shared","uid","store","px","random","documentElement","def","tag","stat","Symbol","USE_SYMBOL","toObject","ObjectProto","$at","point","TO_STRING","pos","l","charCodeAt","charAt","getIterator","iterFn","classof","getIteratorMethod","ARG","tryGet","T","callee","$Object","D","fails","KEY","exp","_iterator2","_symbol","_symbol2","_typeof","DESCRIPTORS","META","$fails","wks","wksExt","wksDefine","keyOf","enumKeys","gOPNExt","$GOPD","$DP","gOPD","gOPN","$Symbol","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","isEnum","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","iterator","$defineProperty","$defineProperties","$create","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","set","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","replacer","$replacer","args","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","fastKey","getWeak","onFreeze","meta","NEED","gOPS","pIE","getSymbols","symbols","arg","windowNames","getWindowNames","hiddenKeys","hooks","hookCallback","input","isObjectEmpty","isUndefined","res","hasOwnProp","createUTC","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getParsingFlags","_pf","isValid","_isValid","flags","parsedParts","some$1","isNowValid","_d","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","copyConfig","to","from","_isAMomentObject","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","absFloor","number","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","stack","deprecateSimple","deprecations","isFunction","_config","_dayOfMonthOrdinalParseLenient","RegExp","_dayOfMonthOrdinalParse","_ordinalParse","mergeConfigs","parentConfig","childConfig","Locale","calendar","mom","now","output","_calendar","longDateFormat","_longDateFormat","formatUpper","toUpperCase","invalidDate","_invalidDate","ordinal","_ordinal","relativeTime","withoutSuffix","string","isFuture","_relativeTime","pastFuture","diff","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","addUnitPriority","priority","priorities","getPrioritizedUnits","unitsObj","u","sort","makeGetSet","keepTime","set$1","stringGet","stringSet","prioritized","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","addFormatToken","token","padded","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","formatMoment","expandFormat","formatFunctions","replaceLongDateFormatTokens","localFormattingTokens","lastIndex","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","matched","p1","p2","p3","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","month","UTC","getUTCDate","localeMonths","_months","isFormat","MONTHS_IN_FORMAT","localeMonthsShort","_monthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","monthsShort","months","indexOf$1","localeMonthsParse","_monthsParseExact","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","_monthsShortStrictRegex","_monthsShortRegex","defaultMonthsShortRegex","monthsRegex","_monthsStrictRegex","_monthsRegex","defaultMonthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","daysInYear","isLeapYear","getIsLeapYear","createDate","y","M","ms","getFullYear","setFullYear","createUTCDate","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","localWeekday","weekOffset","dayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","_week","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","add","getSetISOWeek","parseWeekday","weekdaysParse","parseIsoWeekday","localeWeekdays","_weekdays","day","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","weekdaysMin","weekdaysShort","weekdays","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","defaultWeekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","defaultWeekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","defaultWeekdaysMinRegex","minp","shortp","longp","minPieces","hFormat","hours","kFormat","lowercase","minutes","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","normalizeLocale","chooseLocale","loadLocale","oldLocale","locales","globalLocale","_abbr","code","getSetGlobalLocale","data","getLocale","defineLocale","baseConfig","abbr","parentLocale","localeFamilies","x","updateLocale","listLocales","keys$1","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","_overflowWeeks","WEEK","_overflowWeekday","WEEKDAY","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","extendedIsoRegex","basicIsoRegex","isoDates","isoTimes","tzRegex","configFromStringAndFormat","configFromRFC2822","dayFormat","timezone","timezoneIndex","timezones"," GMT"," EDT"," EST"," CDT"," CST"," MDT"," MST"," PDT"," PST","military","basicRfcRegex","momentDate","momentDay","splice","configFromString","aspNetJsonRegex","createFromInputFallback","defaults","currentDateArray","nowValue","_useUTC","getUTCMonth","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","weekdayOverflow","GG","createLocal","curWeek","gg","ISO_8601","RFC_2822","parsedInput","skipped","stringLength","totalParsedInputLength","_meridiem","meridiemFixWrap","hour","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","isDurationValid","ordering","unitHasDecimal","parseFloat","isValid$1","createInvalid$1","createDuration","Duration","duration","years","quarters","quarter","weeks","days","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","matcher","matches","chunk","chunkOffset","cloneWithOffset","model","clone","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","matchShortOffset","_changeInProgress","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","tZone","matchOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","getCalendarFormat","myMoment","calendar$1","time","formats","sod","startOf","calendarFormat","localInput","endOf","isBetween","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","delta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","inspect","zone","prefix","suffix","inputString","defaultFormatUtc","defaultFormat","postformat","humanize","fromNow","toNow","newLocaleData","isoWeekday","unix","toJSON","isValid$2","parsingFlags","invalidAt","creationData","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","isoWeek","getISOWeeksInYear","getWeeksInYear","weekInfo","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfYear","parseMs","getZoneAbbr","getZoneName","createUnix","createInZone","parseZone","preParsePostFormat","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","shift","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","valueOf$1","makeAs","alias","get$2","makeGetter","substituteTimeAgo","relativeTime$1","posNegDuration","thresholds","ss","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","withSuffix","toISOString$1","abs$1","Y","asSeconds","some","fun","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultDayOfMonthOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","o","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","kInput","_isPm","pos1","pos2","defaultLocaleMeridiemParse","getSetHour","dayOfMonthOrdinalParse","meridiemParse","prototypeMin","prototypeMax","invalid","lang","isoWeekYear","getSetDayOfMonth","getSetMinute","getSetSecond","getSetMillisecond","isoWeeks","isoWeeksInYear","isDST","zoneAbbr","zoneName","dates","isDSTShifted","proto$1","firstDayOfYear","firstDayOfWeek","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","proto$2","toIsoString","relativeTimeRounding","relativeTimeThreshold","webpackPolyfill","paths","children","webpackContext","req","resolve","buf","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","n","rnds","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Hammer","keycharm","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","resetElements","getSVGElement","svgContainer","createElementNS","getDOMElement","DOMContainer","insertBefore","drawPoint","groupTemplate","labelObj","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","rect","_options","_fieldId","fieldId","_type","_subscribers","setOptions","_stringify2","queue","_queue","destroy","on","subscribers","subscribe","off","unsubscribe","_trigger","params","senderId","subscriber","addedIds","me","_addItem","items","update","updatedIds","oldData","updatedData","addOrUpdate","oldItem","_updateItem","ids","firstType","returnType","itemIds","itemId","_getItem","order","_sort","_filterFields","resultant","getIds","getDataSet","mappedItems","filteredItem","itemFields","av","bv","remove","removedIds","removedItems","_remove","ident","clear","maxField","itemField","minField","distinct","fieldType","count","exists","types","raw","converted","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","original","method","context","entry","clearTimeout","setTimeout","_ids","_onEvent","setData","refresh","oldIds","newIds","viewOptions","getArguments","defaultFilter","dataSet","oldItems","updatedItems","container","SyntaxError","containerElement","dataGroup","DataGroup","dataPoints","Settings","setDefaults","DEFAULTS","colX","colY","colZ","colValue","colFilter","getMouseX","clientX","targetTouches","getMouseY","clientY","_assign","_assign2","Emitter","STYLE","filterLabel","legendLabel","xLabel","yLabel","zLabel","xValueLabel","yValueLabel","zValueLabel","showXAxis","showYAxis","showZAxis","showGrid","showPerspective","showShadow","keepAspectRatio","verticalRatio","dotSizeRatio","dotSizeMinFraction","dotSizeMaxFraction","showAnimationControls","animationInterval","animationPreload","animationAutoStart","axisColor","gridColor","xCenter","yCenter","DOT","tooltip","tooltipStyle","padding","borderRadius","boxShadow","line","borderLeft","dot","showLegend","backgroundColor","dataColor","fill","stroke","strokeWidth","cameraPosition","horizontal","vertical","distance","xBarWidth","yBarWidth","valueMin","valueMax","xMin","xMax","xStep","yMin","yMax","yStep","zMin","zMax","zStep","_setScale","xRange","range","yRange","zRange","z","valueRange","center","zCenter","camera","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","cameraLocation","getCameraLocation","cameraRotation","getCameraRotation","ax","ay","az","cx","cy","cz","sinTx","sin","cosTx","cos","sinTy","cosTy","sinTz","cosTz","bx","by","ex","eye","ey","ez","dx","dy","dz","getArmLength","currentXCenter","frame","canvas","currentYCenter","_calcTranslations","points","trans","screen","transBottom","bottom","dist","sortDepth","_checkValueField","BARCOLOR","BARSIZE","DOTCOLOR","DOTSIZE","_initializeData","rawData","initializeData","getDataTable","dataFilter","setOnLoadCallback","redraw","getDataPoints","_getDataPoints","GRID","SURFACE","dataX","getDistinctValues","dataY","dataMatrix","xIndex","yIndex","pointRight","pointTop","pointCross","LINE","pointNext","noCanvas","fontWeight","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onclick","_onClick","_setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","getCameraPosition","getArmRotation","_readData","_redrawFilter","setPointDrawingMethod","reload","BAR","_redrawBarGraphPoint","_redrawBarColorGraphPoint","_redrawBarSizeGraphPoint","_redrawDotGraphPoint","DOTLINE","_redrawDotLineGraphPoint","_redrawDotColorGraphPoint","_redrawDotSizeGraphPoint","_redrawSurfaceGraphPoint","_redrawGridGraphPoint","_redrawLineGraphPoint","_pointDrawingMethod","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGraph","_redrawInfo","_redrawLegend","_getContext","getContext","lineJoin","lineCap","clearRect","_dotSize","_getLegendWidth","isSizeLegend","isValueLegend","margin","lineWidth","font","ymax","hue","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","widthMin","fillStyle","closePath","legendMin","legendMax","start","end","getCurrent","_line","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","drawAxisLabelX","text","armAngle","yMargin","point2d","drawAxisLabelY","drawAxisLabelZ","_line3d","from2d","to2d","prettyStep","xText","yText","zText","gridLenX","gridLenY","textMargin","armVector","defaultXStep","defaultYStep","defaultZStep","from3d","xMin2d","xMax2d","H","V","Hi","X","_getStrokeWidth","_redrawBar","xWidth","yWidth","borderColor","surface","surfaces","corners","avg","transCenter","_polygon","_drawCircle","radius","_calcRadius","arc","PI","_getColorsRegular","_getColorsColor","_getColorsSize","colors","fraction","dotSize","sizeMin","sizeRange","cross","topSideVisible","showGrayBottom","aDiff","bDiff","crossproduct","crossProduct","zAvg","_drawGridLine","_storeMousePosition","startMouseX","startMouseY","_startCameraOffset","getOffset","leftButtonDown","_onMouseUp","which","button","touchDown","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","moving","diffX","diffY","ctrlKey","scaleX","scaleY","offXNew","armLength","offYNew","setOffset","horizontalNew","verticalNew","snapValue","setArmRotation","parameters","emit","onclick_callback","boundingRect","mouseX","mouseY","dataPoint","_dataPointFromXY","showTooltip","tooltipTimeout","_hideTooltip","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","wheelDelta","detail","oldLength","newLength","setArmLength","_insideTriangle","triangle","bs","cs","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","hasBars","dom","contentWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","setCameraPosition","setSize","assign","$assign","A","K","aLen","mixin","_callbacks","once","removeListener","removeAllListeners","callbacks","cb","listeners","hasListeners","sub","sum","armLocation","armRotation","cameraOffset","offsetMultiplier","calculateCameraOrientation","_sign","_sign2","mul","rot","xa","za","column","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","getValue","dataView","progress","prev","bar","MozBorderRadius","slide","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","precision","_current","setRange","isNumeric","setStep","calculatePrettyStep","log10","log","LN10","step1","step2","step5","toPrecision","getStep","checkFirst","Range","combine","expand","newMin","newMax","isEmpty","capitalize","str","prefixFieldName","fieldName","forceCopy","dst","srcKey","dstKey","safeCopy","OPTIONKEYS","PREFIXEDOPTIONKEYS","setSpecialSettings","setBackgroundColor","setDataColor","setStyle","setShowLegend","isLegendGraphStyle","getStyleNumberByName","styleName","STYLENAME","checkStyleNumber","valid","styleNumber","borderWidth","borderStyle","camPos","dot-line","dot-color","dot-size","grid","bar-color","bar-size","dataTable","_onChange","withBars","defaultXBarWidth","getSmallestDifference","defaultYBarWidth","_initializeRange","getColumnRange","_setRangeDefaults","defaultValueMin","defaultValueMax","_collectRangeSettings","upper","barWidth","range_label","step_label","settings","smallest_diff","getNumberOfRows","defaultMin","defaultMax","propagating","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_firstTarget","hammer","events","propagatedHandler","srcEvent","_handled","stopped","stopPropagation","srcStop","bind","firstTarget","elemHammer","_handlers","Manager","PropagatingHammer","wrapper","pointerType","isFirst","handler","eventType","hammers","idx","exportName","setTimeoutContext","timeout","bindFn","invokeArrayArg","each","message","deprecationMessage","inherit","child","properties","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","find","inArray","findByKey","uniqueArray","results","prefixed","property","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","enable","init","createInputInstance","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","angle","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","getScale","rotation","getRotation","maxPointers","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","atan2","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changed","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","touch","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","removeLastTouch","DEDUP_TIMEOUT","isSyntheticEvent","DEDUP_DISTANCE","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","oldCssProps","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","nextKey","dest","merge","MOBILE_REGEX","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","2","3","4","5","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","compute","getTouchAction","preventDefaults","prevented","hasNone","isTapPointer","isTapMovement","isTapTouchTime","preventSrc","STATE_RECOGNIZED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","additionalEvent","tryEmit","canEmit","inputDataClone","reset","process","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","force","curRecognizer","existing","STATE_FAILED","Tap","Pan","Swipe","Pinch","Rotate","Press","_exportFunctions","_bound","keydown","keyup","fromCharCode","down","handleEvent","up","keyCode","bound","shiftKey","bindAll","getKey","unbind","newBindings","Timeline","Graph2d","timeline","Core","DateUtil","TimeStep","components","Item","BackgroundItem","BoxItem","PointItem","RangeItem","BackgroundGroup","Component","CurrentTime","CustomTime","DataAxis","DataScale","GraphGroup","Group","ItemSet","Legend","LineGraph","TimeAxis","groups","forthArgument","throttleRedraw","defaultOptions","autoResize","orientation","axis","maxHeight","minHeight","rtl","directionFromDom","domNode","getComputedStyle","parentElement","rollingMode","domProps","emitter","hiddenDates","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","timeAxis2","currentTime","itemSet","itemsData","groupsData","getEventProperties","ondblclick","oncontextmenu","onmouseover","onpointerdown","onpointermove","onpointerup","fitDone","getItemRange","setWindow","animation","fit","setGroups","setItems","_redraw","printStyle","allOptions","configureOptions","Configurator","Validator","_createConfigurator","markDirty","refreshItems","validate","selection","getSelection","setSelection","newDataSet","group","focus","itemData","dataset","getDataRange","minItem","maxItem","getStart","getEnd","factor","groupShowing","show","repositionX","startSide","getWidthRight","endSide","getWidthLeft","lhs","rhs","centerContainer","itemFromTarget","groupFromTarget","customTime","customTimeFromTarget","snap","snappedTime","what","foreground","labelSet","groupId","pageX","pageY","toggleRollingMode","rolling","stopRolling","startRolling","millisecondsPerPixelCache","deltaDifference","scaleOffset","startToFront","endToFront","moveable","zoomable","zoomMin","zoomMax","follow","animationTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","rollingModeBtn","validateDirection","conversion","currentTimeTimer","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","dragging","ease","_applyRange","updateHiddenDates","timeoutID","getMillisecondsPerPixel","newStart","newEnd","getRange","totalHidden","previousDelta","_isInsideRange","allowDragging","getHiddenDurationBetween","diffRange","safeStart","snapAwayFromHidden","safeEnd","startDate","endDate","zoomKey","horizontalScroll","pointerDate","pointer","getPointer","_pointerToDate","zoom","centerDate","hiddenDuration","hiddenDurationBefore","getHiddenDurationBefore","hiddenDurationAfter","move","onTouch","onRelease","offTouch","offRelease","disablePreventDefaultVertically","pinchRecognizer","_isResized","resized","_previousWidth","_previousHeight","convertHiddenOptions","repeat","dateItem","totalRange","pixelTime","runUntil","dayOffset","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","safeDates","printDates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","switchedYear","switchedMonth","switchedDay","hiddenBeforeStart","getHiddenDurationBeforeStart","rangeAfterEnd","correctTimeForHidden","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","timeOffset","requiredDuration","previousPoint","correctionEnabled","hammerUtil","Activator","onMouseWheel","isActive","verticalScroll","scrollTop","adjusted","_setScrollTop","onMouseScrollSide","handleDragOver","itemAddedToTimeline","dataTransfer","dropEffect","handleDrop","getData","_onAddItem","backgroundVertical","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","scrollTopMin","initialDrawDone","_origRedraw","initialItemSetDrawn","customTimes","redrawCount","drawPoints","onRender","clickToUse","activator","_initAutoResize","component","configurator","configure","appliedOptions","setModuleOptions","active","_stopAutoResize","setCustomTime","getCustomTime","setCustomTimeTitle","title","setCustomTitle","addCustomTime","timestamp","removeCustomTime","getVisibleItems","getWindow","zoomIn","percentage","newInterval","zoomOut","borderRootHeight","borderRootWidth","autoHeight","containerHeight","scrollbarWidth","_setDOM","_updateScrollTop","visibilityTop","visibilityBottom","contentsOverflow","centerWidth","repaint","setCurrentTime","getCurrentTime","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","align","stackSubgroups","groupOrderSwap","fromGroup","toGroup","targetOrder","groupOrder","selectable","multiselect","itemsAlwaysDraggable","editable","updateTime","updateGroup","overrideItems","groupEditable","onAdd","onUpdate","onMove","onRemove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup","showTooltips","followMouse","overflowMethod","tooltipOnItemUpdateTime","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","groupData","nestedGroups","showNested","nestedGroupId","updatedNestedGroup","nestedInGroup","_onUpdateGroups","_onRemoveGroups","groupIds","popup","touchParams","groupTouchParams","Popup","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","groupHammer","_onGroupClick","_onGroupDragStart","_onGroupDrag","_onGroupDragEnd","_onMouseOver","_onMouseOut","dirty","displayed","unselect","select","rawVisibleItems","isVisible","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","scrolled","lastRangeStart","changedStackOption","lastStack","changedStackSubgroupsOption","lastStackSubgroups","forceRestack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","removeItem","_getType","selected","_removeItem","groupOptions","_orderNestedGroups","newGroupIdsOrder","nestedGroup","nestedGroupIds","_constructByEndArray","endArray","dragLeftItem","dragRightItem","itemProps","_getGroupIndex","itemIsDragging","selectedItem","initialX","dragLeft","_cloneItemData","dragRight","baseGroupIndex","itemsToDrag","groupIndex","groupOffset","metaKey","_onDragStartAddItem","xAbs","newItem","offsetLeft","updateGroupAllowed","newGroupBase","initial","initialEnd","initialStart","newOffset","_moveToGroup","oldGroup","nestingGroup","collapsedDirClassName","originalOrder","movingUp","targetGroupTop","draggedGroupHeight","targetGroup","draggedGroup","newOrder","origOrder","draggedId","numGroups","curPos","orgOffset","slippedPosition","switchGroup","shouldBeGroup","switchGroupId","oldSelection","newSelection","itemFromRelatedTarget","getTitle","setText","setPosition","offsetTop","_onUpdateItem","newItemData","itemGroup","lastSelectedGroup","multiselectPerGroup","_getItemRange","_item","itemFromElement","cur","relatedTarget","itemSetFromTarget","minimumStep","autoScale","FORMAT","minorLabels","majorLabels","setMoment","setFormat","setMinimumStep","roundToMinor","hasNext","setScale","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","isMajor","getLabelMinor","getLabelMajor","getClassName","even","today","_moment","currentWeek","currentMonth","subgroups","subgroupIndex","subgroupOrderer","subgroupOrder","stackDirty","itemsInRange","byStart","byEnd","checkRangedItems","marker","templateFunction","Element","paddingRight","paddingLeft","getLabelWidth","markerHeight","lastMarkerHeight","_calculateSubGroupHeights","lastIsVisible","_isGroupVisible","restack","_updateSubgroupsSizes","customOrderedItems","_updateItemsInRange","nostack","_calculateHeight","repositionY","resetSubgroups","subgroup","setParent","_addToSubgroup","orderSubgroups","_checkIfVisible","subgroupId","sortArray","sortField","_removeFromSubgroup","itemIndex","removeFromDataSet","startArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","searchFunction","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","changeSubgroup","oldSubgroup","newSubgroup","collidingItem","jj","collision","newTop","otherSubgroup","collisionByTimes","baseClassName","visibleFrame","_updateContents","_updateDataAttributes","_updateStyle","maxWidth","_repaintOnItemUpdateTimeTooltip","_repaintDeleteButton","_repaintDragCenter","_repaintDragLeft","_repaintDragRight","limitSize","contentStartPosition","parentWidth","boxWidth","_updateEditStatus","dragCenter","dragCenterItem","deleteButton","onItemUpdateTimeTooltip","itemDistanceFromTop","template","itemVisibleFrameContent","visibleFrameTemplateFunction","frameElement","itemVisibleFrameContentElement","getElementsByClassName","visibleFrameTemplate","_contentToString","dataAttributes","attributes","setAttribute","removeAttribute","outerHTML","widthInMs","previousRight","previousLeft","itemSetHeight","marginLeft","marginRight","itemSubgroup","_classCallCheck2","_classCallCheck3","_createClass2","_createClass3","doShow","isLeft","isTop","instance","_defineProperty","_defineProperty2","protoProps","staticProps","desc","lines","majorTexts","minorTexts","lineTop","showMinorLabels","showMajorLabels","maxMinorChars","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","minorCharWidth","xNext","showMinorGrid","prevWidth","labelMinor","xFirstMajorLabel","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","warnedForOverflow","leftTime","leftText","widthText","majorCharWidth","pop","createTextNode","childNodes","measureCharMinor","measureCharMajor","overlay","_onTapOverlay","onClick","_hasParent","deactivate","escListener","activate","eventParams","drag","warned","substring","showCurrentTime","errorFound","referenceOptions","subObject","usedOptions","path","check","__any__","getSuggestion","__type__","checkFields","referenceOption","refOptionObj","optionType","refOptionType","print","printLocation","localSearch","findInOptions","globalSearch","indexMatch","closestMatch","recursive","closestMatchPath","lowerCaseOption","op","levenshteinDistance","_j","_j2","matrix","bool","boolean","function","any","null","groupsDraggable","ColorPicker","parentModule","defaultContainer","pixelRatio","changedOptions","allowCreation","initialized","popupCounter","showButton","moduleOptions","domElements","popupDiv","popupLimit","popupHistory","colorPicker","_removePopup","_clean","_this","counter","_handleObject","_makeItem","_makeHeader","generateButton","_printOptions","onmouseout","optionsContainer","_push","_showPopupIfNeeded","_len","_key","div","objectLabel","selectedValue","_update","_makeLabel","popupString","popupValue","oninput","_setupPopup","_this2","html","hideTimeout","deleteTimeout","_this3","correspondingElement","checkbox","checked","_this4","defaultColor","_showColorPicker","_this5","insertTo","setColor","setUpdateCallback","colorString","setCloseCallback","checkOnly","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","draw","physics","solver","enabledPath","enabledValue","_label","error","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","getOptions","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","closeCallback","_bindHammer","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","_rgbaArray","rgbObj","alpha","_setColor","_generateHueCircle","_hide","_updatePicker","alert","angleConvert","colorPickerSelector","colorPickerCanvas","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","putImageData","circle","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","pinch","_moveSelector","sat","sfac","fillRect","getImageData","centerY","centerX","newLeft","linegraph","initialLoad","getLegend","isGroupVisible","yAxisLeft","yAxisRight","legendLeft","legendRight","screenToValue","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","sideBySide","interpolation","parametrization","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","forceGraphUpdate","lastStart","svgElements","groupsUsingDefaultStyles","svg","framework","Bars","Lines","Points","_removeGroup","_updateAllGroupData","removeGroup","_updateGroup","addGroup","groupsContent","idMap","groupCounts","existingItemsMap","existing_items","extended","orginalY","_updateGraph","rangePerPixelInv","_getSortedGroupIds","grouplist","zIndex","bz","groupRanges","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","below","excludeFromStacking","_stack","_convertYcoordinates","calcPath","subGroupId","drawShading","subData","subPrevPoint","subNextPoint","dateComparator","first","dataContainer","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","combinedDataLeft","combinedDataRight","getYRange","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","masterAxis","lineOffset","tempGroups","axisUsed","datapoints","screen_x","screen_y","screen_end","svgHeight","convertValue","setZeroPosition","linegraphOptions","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","alignZeros","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","stepPixels","zeroCrossing","amountOfSteps","iconsRemoved","amountOfGroups","lineContainer","graphOptions","_redrawGroupIcons","iconOffset","groupArray","iconHeight","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","customRange","autoScaleEnd","autoScaleStart","followScale","maxLabelSize","getLines","major","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","characterHeight","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","zeroAlign","formattingFunction","majorSteps","minorSteps","customLines","minorStepIdx","magnitudefactor","determineScale","rounded","setCharHeight","setHeight","minimumStepValue","orderOfMagnitude","solutionFound","is_major","getFirstMajor","majorStep","formatValue","bottomOffset","oldStepIdx","oldStart","oldEnd","increaseMagnitude","decreaseMagnitude","otherZero","otherStep","newRange","myOriginalZero","majorOffset","zeroOffset","pixels","usingDefaultStyle","zeroPosition","drawIcon","icon","Bargraph","fillHeight","outline","originalWidth","bar1Height","bar2Height","processedGroupData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","amount","resolved","accumulatedNegative","accumulatedPositive","dataWidth","pointData","groupLabel","_getStackedYRange","xpos","getGroupTemplate","callbackResult","getCallback","Line","_catmullRom","_linear","fillPath","pathArray","subPathArray","dFill","zero","serializePath","inverse","_catmullRomUniform","p0","bp1","bp2","d1","d2","d3","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","side","iconSize","iconSpacing","excludeFromLegend","textArea","scrollableHeight","drawLegendIcons","paddingTop","Network","network","Images","dotparser","gephiParser","convertDot","DOTToGraph","convertGephi","parseGephi","nodes","nodeIndices","edges","edgeIndices","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseMove","onContext","functions","createNode","createEdge","view","bindEventListeners","images","Groups","Canvas","selectionHandler","SelectionHandler","interactionHandler","InteractionHandler","View","renderer","CanvasRenderer","PhysicsEngine","layoutEngine","LayoutEngine","clustering","ClusterEngine","manipulation","ManipulationSystem","nodesHandler","NodesHandler","edgesHandler","EdgesHandler","KamadaKawai","_require","_require2","layout","interaction","networkOptions","_updateVisibleIndices","nodeId","edgeId","_updateValueRange","unselectAll","dotData","gephi","gephiData","valueTotal","setValueRange","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","getNodesInCluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","moveNode","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","edge","selectNodes","selectEdges","getViewPosition","releaseNode","getOptionsFromConfigurator","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","diamond","roundRect","r2d","ellipse_vis","ox","oy","xe","ye","xm","ym","bezierCurveTo","database","wEllipse","hEllipse","ymb","yeb","arrowEndpoint","xt","yt","xi","yi","xl","yl","xr","yr","circleEndpoint","xc","yc","dashedLine","x2","y2","pattern","patternLength","slope","distRemaining","patternIndex","dashLength","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","setValue","addNode","graphs","attr","addEdge","getToken","tokenType","TOKENTYPE","NULL","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","maxLength","forEach2","elem1","elem2","setProp","convertAttr","mapping","visProp","visPropI","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","image","shape","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","arrows","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","gephiJSON","inheritColor","fixed","gEdges","gNodes","gEdge","gNode","edit","del","back","editEdge","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError","_CachedImage","_CachedImage2","imageBroken","url","brokenUrl","imageToLoadBrokenUrlOn","onerror","imageToRedrawWith","cachedImage","img","onload","_fixImageCoordinates","_redrawWithImage","_tryloadBrokenUrl","imageToCache","CachedImage","NUM_ITERATIONS","Image","coordinates","_fillMipMap","drawImage","iterations","_to","_isImageOk","complete","naturalWidth","defaultIndex","groupsArray","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_index","Node","Label","nodesListeners","borderWidthSelected","brokenImage","face","strokeColor","vadjust","multi","bold","mod","boldital","ital","mono","labelHighlightBold","level","mass","scaling","maxVisible","drawThreshold","customScalingFunction","shadow","shapeProperties","borderDashes","useImageSize","useBorderWithImage","nodeOptions","parseOptions","updateShape","updateLabelModule","needsRefresh","_nodeId2","doNotEmit","oldNodesData","newNodes","positionInitially","changedData","dataChanged","clearPositions","dataArray","_node","_node2","boundingBox","nodeList","nodeObj","toId","fromId","edgeList","Box","Circle","CircularImage","Database","Diamond","Dot","Ellipse","Icon","Square","Star","Text","Triangle","TriangleDown","imagelist","baseSize","baseFontSize","predefinedPosition","labelModule","currentShape","checkMass","groupObj","choosify","_load_images","propagateFonts","imageObj","load","unselected","imageObjAlt","chooser","chosen","chosenNode","shadowColor","shadowSize","shadowX","shadowY","constrain","refreshNeeded","distanceToBorder","sizeDiff","fontDiff","getFormattingValues","updateBoundingBox","resize","parentOptions","newOptions","parsedColor","strId","_slicedToArray2","_slicedToArray3","edgelabel","pointToSelf","fontOptions","yLine","isEdgeLabel","elementOptions","labelDirty","constrainWidth","maxWdt","minWdt","widthConstraint","widthConstraintMaximum","widthConstraintMinimum","constrainHeight","minHgt","valign","heightConstraint","heightConstraintMinimum","heightConstraintValign","chosenLabel","margins","widthBias","heightBias","pathP","opt","getP","mods","modOptions","modDefaults","parseFontString","ratio","baseline","viewFontSize","calculateLabelSize","_drawBackground","_drawText","fontSize","_setAlignment2","_setAlignment","_setAlignment3","labelHeight","lineCount","blocks","block","_getColor2","_getColor","_getColor3","fontColor","strokeText","initialStrokeColor","_processLabel","markupSystem","system","decodeMarkupSystem","splitMarkdownBlocks","splitHtmlBlocks","beginable","spacing","buffer","modStack","modName","emitBlock","ch","unshift","selectedState","hoverState","accumulate","addAndAccumulate","_nlLines","splitBlocks","_values","words","atStart","measure","lastMeasure","pre","measureText","_values2","_measure","_values3","_words","_text","_measure2","_lastMeasure","_pre","_text2","_measure3","outOptions","inOptions","newOptionsArray","_isIterable2","_isIterable3","sliceIterator","_arr","_n","_e","_s","isIterable","_getPrototypeOf","_getPrototypeOf2","_possibleConstructorReturn2","_possibleConstructorReturn3","_inherits2","_inherits3","_NodeBase2","_NodeBase3","_NodeBase","__proto__","_setMargins","textSize","getTextSize","initContextForDraw","performFill","_updateBoundingBox","_addBoundingBoxMargin","$getPrototypeOf","ReferenceError","_setPrototypeOf","_setPrototypeOf2","subClass","superClass","setPrototypeOf","buggy","NodeBase","adjustSizes","shadowBlur","shadowOffsetX","shadowOffsetY","setLineDash","dashes","differentState","save","enableBorderDashes","disableBorderDashes","restore","enableShadow","disableShadow","performStroke","_CircleImageBase2","_CircleImageBase3","_CircleImageBase","diameter","_drawRawCircle","CircleImageBase","labelOffset","setImages","selection_changed","imageTmp","ratio_width","ratio_height","globalAlpha","drawImageAtPosition","labelDimensions","_resizeImage","switchImages","clip","_drawImageAtPosition","_drawImageLabel","_distanceToBorder","_ShapeBase2","_ShapeBase3","_ShapeBase","_drawShape","ShapeBase","sizeMultiplier","_icon","neutralborderWidth","selectionLineWidth","Edge","edgesListeners","scaleFactor","arrowStrikethrough","hoverWidth","selectionWidth","selfReferenceSize","smooth","forceDirection","roundness","edgeData","edgeOptions","reconnectEdges","updateEdgeType","_edgeId","oldEdgesData","edgesData","oldEdge","disconnect","showInternalIds","connect","cleanup","CubicBezierEdge","BezierEdgeDynamic","BezierEdgeStatic","StraightEdge","baseWidth","edgeType","connected","_setInteractionWidths","chosenEdge","toArrow","fromArrow","middleArrow","inheritsColor","toArrowScale","toArrowType","middleArrowScale","middleArrowType","fromArrowScale","fromArrowType","selectedWidth","changeInType","attachEdge","detachEdge","widthDiff","viaNode","getViaNode","arrowData","fromPoint","toPoint","getArrowData","drawLine","drawArrows","drawLabel","drawArrowHead","node1","node2","getPoint","translate","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","colorsDefined","_CubicBezierEdgeBase2","_CubicBezierEdgeBase3","_CubicBezierEdgeBase","viaNodes","via1","via2","_bezierCurve","x1","y1","_getViaCoordinates","nearNode","_findBorderPositionBezier","x3","y3","_ref","_ref2","_getDistanceToBezierEdge","_ref3","_ref4","vec","_BezierEdgeBase2","_BezierEdgeBase3","CubicBezierEdgeBase","_BezierEdgeBase","minDistance","lastX","lastY","_getDistanceToLine","_EdgeBase2","_EdgeBase3","BezierEdgeBase","_EdgeBase","distanceToPoint","difference","via","viaNode1","viaNode2","hasNode1","hasNode2","quadraticCurveTo","EdgeBase","colorDirty","getColor","_drawDashedLine","_drawLine","_getCircleData2","_getCircleData","_getCircleData3","_circle","lineDashOffset","_getCircleData4","_getCircleData5","_getCircleData6","_getCircleData7","_x","_y","_radius","_findBorderPosition","_findBorderPositionCircle","_getCircleData8","_getCircleData9","grd","createLinearGradient","fromColor","toColor","addColorStop","_getDistanceToEdge","_getCircleData10","_getCircleData11","py","something","arrowPoint","guideOffset","findBorderPosition","guidePos","_getCircleData12","_getCircleData13","_boundFunction","positionBezierNode","physicsChange","setupSupportNode","parentEdgeId","cr","xVia","yVia","stepX","stepY","_stepX","_stepY","_stepX2","_stepY2","pi","originalAngle","myAngle","_pi","_originalAngle","_myAngle","_stepX3","_stepY3","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","NetworkUtil","HierarchicalStatus","childrenReference","parentReference","levels","trees","isTree","parentNodeId","childNodeId","accumulator","_getMaxLevel","nodeA","nodeB","minLevel","min_x","max_x","min_y","max_y","initialRandomSeed","randomSeed","setPhysics","optionsBackup","improvedLayout","hierarchical","levelSeparation","nodeSpacing","treeSpacing","blockShifting","edgeMinimization","parentCentralization","sortMethod","setupHierarchicalLayout","layoutNetwork","getStaticType","prevHierarchicalState","adaptAllOptionsForHierarchicalLayout","backupPhysics","nodesArray","seededRandom","indices","positionDefined","clusterOptions","clusterEdgeProperties","startLength","before","clusterBridges","_declusterAll","info","kamadaKawai","springLength","solve","_shiftToCenter","getRangeCore","findCenter","clustersPresent","definedLevel","undefinedLevel","lastNodeOnLevel","treeIndex","distributionOrdering","distributionIndex","distributionOrderingPresence","_determineLevelsByHubsize","_determineLevelsDirected","_determineLevelsCustomCallback","ensureLevel","distribution","_getDistribution","_generateMap","_placeNodesByHierarchy","_condenseHierarchy","stillShifting","branches","shiftTree","_getPositionForHierarchy","_setPositionForHierarchy","getTreeSize","_isVertical","getTreeSizes","treeWidths","getBranchNodes","getBranchBoundary","branchMap","maxLevel","minSpace","maxSpace","branchNode","_getSpaceAroundNode2","_getSpaceAroundNode","_getSpaceAroundNode3","minSpaceNode","maxSpaceNode","getCollisionLevel","maxLevel1","getMaxLevel","maxLevel2","hasSameParent","parents1","parents2","shiftElementsCloser","centerParents","levelNodes","branchShiftCallback","centerParent","diffAbs","branchNodes1","branchNodes2","_getBranchBoundary","_getBranchBoundary2","max1","_getBranchBoundary3","_getBranchBoundary4","min2","minSpace2","_shiftBlock","_centerParent","minimizeEdgeLength","allEdges","nodeLevel","C2","referenceNodes","aboveEdges","otherNode","getFx","_i2","getDFx","_i3","getGuess","guess","guessMap","_i4","fx","dfx","nodePosition","branchNodes","_getBranchBoundary5","_getBranchBoundary6","minSpaceBranch","maxSpaceBranch","branchOffset","_getSpaceAroundNode4","_getSpaceAroundNode5","newPosition","reverse","treeSizes","shiftBy","useMap","prevNode","nextNode","nextPos","parents","parentId","_getCenterPosition","_getSpaceAroundNode6","_getSpaceAroundNode7","positionedNodes","nodeArray","_indexArrayToNodes","_sortNodeArray","handledNodeCount","_validatePositionAndContinue","parentLevel","childRef","_i5","childNode","childNodeLevel","previousPos","sharedParent","_findCommonParent","withChild","_placeBranchNodes","idArray","hubSizes","nodeIds","_getActiveEdges","levelDownstream","_getHubSizes","hubSize","_crawlNetwork","levelByDirection","levelA","cloneOptions","setMinLevelToZero","_this6","_this7","fillInRelations","addRelation","checkIfTree","_this8","startingNodeId","crawler","tree","_this9","shifter","childA","childB","_this10","iterateParents","parentRef","findParent","foundParent","branch","minPos","maxPos","allNodes","specificNodes","minY","maxY","minX","maxX","clonedOptions","amountOfConnections","BarnesHutSolver","Repulsion","HierarchicalRepulsion","SpringSolver","HierarchicalSpringSolver","CentralGravitySolver","ForceAtlas2BasedRepulsionSolver","ForceAtlas2BasedCentralGravitySolver","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestep","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springConstant","damping","avoidOverlap","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","updateInterval","onlyDynamicEdges","timestep","layoutFailed","initPhysics","updatePhysicsData","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","runDoubleSpeed","amountOfIterations","calculateForces","moveNodes","revert","_evaluateStepQuality","positions","vx","vy","reference","maxNodeVelocity","averageNodeVelocity","nodeVelocity","_performStep","targetIterations","_freezeNodes","_stabilizationBatch","running","sendProgress","_finalizeStabilization","_restoreFrozenNodes","forceSize","arrowSize","barnesHutTree","thetaInversed","overlapAvoidanceFactor","nodeCount","_formBarnesHutTree","_getForceContribution","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fy","rootSize","halfRootSize","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","_placeInRegion","region","containedNode","_insertRegion","childSize","_drawBranch","RepulsionSolver","repulsingForce","HierarchicalRepulsionSolver","edgeLength","node3","_calculateSpringForce","springForce","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","_nodeId3","_BarnesHutSolver2","_BarnesHutSolver3","_BarnesHutSolver","degree","_CentralGravitySolver2","_CentralGravitySolver3","_CentralGravitySolver","Cluster","clusteredNodes","clusteredEdges","hubsize","_getHubSize","_checkOptions","nodesToCluster","refreshData","joinCondition","childNodesObj","childEdgesObj","_cluster","edgeCount","clusters","usedNodes","relevantEdgeCount","gatheringSuccessful","_getConnectedId","clusterByEdgeCount","clusterNodeProperties","parentClonedOptions","childClonedOptions","childNodeIDs","childEdge","otherNodeId","childKeys","createEdges","_edge","newEdge","clusteringEdgeReplacingId","edgeReplacedById","_backupEdgeOptions","allowSingleNodeCluster","processProperties","childNodesOptions","childEdgesOptions","_clonedOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_createClusterEdges","originalOptions","clusterNodeId","releaseFunction","clusterPosition","newPositions","_containedNode","_nodeId4","_containedNode2","_nodeId5","_containedNode3","edgesToBeDeleted","otherCluster","transferEdge","replacedEdge","_restoreEdge","clusteredNodeId","startEdgeId","allEdgeIds","getClusteredEdges","clusteredEdgeId","baseEdgeId","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","_Node2","_Node3","_Node","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","redrawRequested","renderingActive","renderRequests","allowRedraw","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","_renderStep","_drawEdges","_drawNodes","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","browserType","resizeTimer","resizeFunction","cameraState","canvasViewCenter","hammerFrame","_cleanUp","previousWidth","previousHeight","widthRatio","heightRatio","newScale","currentViewCenter","distanceFromCenter","tabIndex","_setPixelRatio","_prepareValue","emitEvent","oldWidth","oldHeight","previousRatio","_getCameraState","newWidth","newHeight","_setCameraState","_determinePixelRatio","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","initialZoom","zoomLevel","yDistance","xZoomLevel","yZoomLevel","animationOptions","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","NavigationHandler","navigationHandler","popupObj","popupTimer","dragNodes","dragView","keyboard","speed","bindToWindow","navigationButtons","tooltipDelay","zoomView","pinched","checkSelectionChanges","_generateClickEvent","previousSelection","selectAdditionalOnPoint","selectOnPoint","currentSelection","deselectedItems","_determineDifference","selectedItems","firstSet","secondSet","arrayDiff","firstArr","secondArr","selectObject","selectionObj","xFixed","yFixed","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","overlappingEdges","popupTargetType","popupTargetId","_pointerToPositionObject","stillOnObj","overNode","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","boundAction","unbindFromRedraw","hoverObj","selectConnectedEdges","hoverConnectedEdges","updateSelection","selectionChanged","deselectObject","emptySelection","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","mindist","overlappingEdge","_unselectConnectedEdges","clusterSize","_addToHover","hoverChanged","blurObject","_hoverConnectedEdges","RangeError","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","initiallyActive","deleteNode","deleteEdge","controlNodeStyle","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","_getSelectedNodeCount","selectedEdgeCount","_getSelectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","editWithoutDrag","edgeBeingEditedId","_performEditEdge","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","deleteBtnClass","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","fromSelect","toSelect","overlappingNodeIds","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","eeFunct","maximum","minimum","_FloydWarshall","_FloydWarshall2","edgeStrength","distanceSolver","edgesArray","ignoreClusters","D_matrix","getDistances","_createL_matrix","_createK_matrix","_createE_matrix","maxIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_getHighestEnergyNode2","_getHighestEnergyNode","_getHighestEnergyNode3","_moveNode","_getEnergy2","_getEnergy","_getEnergy3","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_getEnergy4","_getEnergy5","_E_sums$m","E_sums","d2E_dx2","d2E_dxdy","d2E_dy2","x_m","y_m","km","K_matrix","lm","L_matrix","iIdx","x_i","y_i","kmat","lmat","denominator","_updateE_matrix","E_matrix","mIdx","_mIdx","colm","kcolm","lcolm","cell","oldDx","oldDy","FloydWarshall","knode","inode","icolm","jnode","jcolm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAyBA,cAEA,SAA2CA,EAAMC,GAC1B,gBAAZC,UAA0C,gBAAXC,QACxCA,OAAOD,QAAUD,IACQ,kBAAXG,SAAyBA,OAAOC,IAC9CD,UAAWH,GACe,gBAAZC,SACdA,QAAa,IAAID,IAEjBD,EAAU,IAAIC,KACbK,KAAM,WACT,MAAgB,UAAUC,GAKhB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUP,OAGnC,IAAIC,GAASO,EAAiBD,IAC7BP,WACAS,GAAIF,EACJG,QAAQ,EAUT,OANAL,GAAQE,GAAUI,KAAKV,EAAOD,QAASC,EAAQA,EAAOD,QAASM,GAG/DL,EAAOS,QAAS,EAGTT,EAAOD,QAvBf,GAAIQ,KAqCJ,OATAF,GAAoBM,EAAIP,EAGxBC,EAAoBO,EAAIL,EAGxBF,EAAoBQ,EAAI,GAGjBR,EAAoB,KAK/B,SAAUL,EAAQD,EAASM,GAI/B,GAAIS,GAAOT,EAAoB,EAG/BS,GAAKC,OAAOhB,EAASM,EAAoB,KAGzCS,EAAKC,OAAOhB,EAASM,EAAoB,MAGzCS,EAAKC,OAAOhB,EAASM,EAAoB,OAIrC,SAAUL,EAAQD,EAASM,GAoB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhBzF,GAAIG,GAAgBf,EAAoB,GAEpCgB,EAAgBL,EAAuBI,GAEvCE,EAAUjB,EAAoB,IAE9BkB,EAAWP,EAAuBM,GAElCE,EAAQnB,EAAoB,IAE5BoB,EAAST,EAAuBQ,GAEhCE,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAUlCE,EAASvB,EAAoB,IAC7BwB,EAAOxB,EAAoB,GAO/BN,GAAQ+B,SAAW,SAAUC,GAC3B,MAAOA,aAAkBC,SAA2B,gBAAVD,IAO5ChC,EAAQkC,mBAAqB,SAAUC,GACrC,GAAIA,EACF,MAAqC,IAA9BA,EAAUC,iBACfpC,EAAQkC,mBAAmBC,EAAUE,YACrCF,EAAUG,YAAYH,EAAUE,aActCrC,EAAQuC,UAAY,SAAUC,EAAKC,EAAKC,EAAOC,GAC7C,GAAIF,GAAOD,EACT,MAAO,EAEP,IAAII,GAAQ,GAAKH,EAAMD,EACvB,OAAOK,MAAKJ,IAAI,GAAIE,EAAQH,GAAOI,IASvC5C,EAAQ8C,SAAW,SAAUd,GAC3B,MAAOA,aAAkBe,SAA2B,gBAAVf,IAQ5ChC,EAAQgD,OAAS,SAAUhB,GACzB,GAAIA,YAAkBiB,MACpB,OAAO,CACF,IAAIjD,EAAQ8C,SAASd,GAAS,CAGnC,GADYkB,EAAaC,KAAKnB,GAE5B,OAAO,CACF,KAAKoB,MAAMH,KAAKI,MAAMrB,IAC3B,OAAO,EAIX,OAAO,GAQThC,EAAQsD,WAAa,WACnB,MAAOxB,GAAKyB,MAQdvD,EAAQwD,cAAgB,SAAUtC,EAAKyB,GACrC,IAAK,GAAIc,KAAQvC,GACXA,EAAIwC,eAAeD,IACuB,YAAxC,EAAI7B,EAAkB,SAAGV,EAAIuC,MAC/BvC,EAAIuC,GAAQd,IAYpB3C,EAAQ2D,cAAgB,SAAUC,EAAGC,GACnC,GAAIC,GAAgBC,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAEnF,KAAK,GAAIN,KAAQG,OACCK,KAAZJ,EAAEJ,KACsC,YAAtC,EAAI7B,EAAkB,SAAGiC,EAAEJ,QACZQ,KAAZJ,EAAEJ,IAAmC,OAAZI,EAAEJ,QAA+BQ,KAAZL,EAAEH,KAAyC,IAAlBK,EAG1EF,EAAEH,GAAQI,EAAEJ,SAFLG,GAAEH,GAK+B,YAAtC,EAAI7B,EAAkB,SAAGgC,EAAEH,KAC7BzD,EAAQ2D,cAAcC,EAAEH,GAAOI,EAAEJ,GAAOK,KAclD9D,EAAQkE,YAAc,SAAUN,EAAGC,GACjC,IAAK,GAAIM,GAAI,EAAGA,EAAIJ,UAAUC,OAAQG,IAAK,CACzC,GAAIC,GAAQL,UAAUI,EACtB,KAAK,GAAIV,KAAQW,GACfR,EAAEH,GAAQW,EAAMX,GAGpB,MAAOG,IAUT5D,EAAQgB,OAAS,SAAU4C,EAAGC,GAC5B,IAAK,GAAIM,GAAI,EAAGA,EAAIJ,UAAUC,OAAQG,IAAK,CACzC,GAAIC,GAAQL,UAAUI,EACtB,KAAK,GAAIV,KAAQW,GACXA,EAAMV,eAAeD,KACvBG,EAAEH,GAAQW,EAAMX,IAItB,MAAOG,IAWT5D,EAAQqE,gBAAkB,SAAUC,EAAOV,EAAGC,GAC5C,IAAKU,MAAMC,QAAQF,GACjB,KAAM,IAAIG,OAAM,uDAGlB,KAAK,GAAIN,GAAI,EAAGA,EAAIJ,UAAUC,OAAQG,IAGpC,IAAK,GAFDC,GAAQL,UAAUI,GAEbrD,EAAI,EAAGA,EAAIwD,EAAMN,OAAQlD,IAAK,CACrC,GAAI2C,GAAOa,EAAMxD,EACbsD,IAASA,EAAMV,eAAeD,KAChCG,EAAEH,GAAQW,EAAMX,IAItB,MAAOG,IAWT5D,EAAQ0E,oBAAsB,SAAUJ,EAAOV,EAAGC,GAChD,GAAIC,GAAgBC,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAGnF,IAAIQ,MAAMC,QAAQX,GAChB,KAAM,IAAIc,WAAU,yCAEtB,KAAK,GAAIR,GAAI,EAAGA,EAAIJ,UAAUC,OAAQG,IAEpC,IAAK,GADDC,GAAQL,UAAUI,GACbrD,EAAI,EAAGA,EAAIwD,EAAMN,OAAQlD,IAAK,CACrC,GAAI2C,GAAOa,EAAMxD,EACjB,IAAIsD,EAAMV,eAAeD,GACvB,GAAII,EAAEJ,IAASI,EAAEJ,GAAMmB,cAAgBC,WACrBZ,KAAZL,EAAEH,KACJG,EAAEH,OAEAG,EAAEH,GAAMmB,cAAgBC,OAC1B7E,EAAQ8E,WAAWlB,EAAEH,GAAOI,EAAEJ,IAAO,EAAOK,GAE5B,OAAZD,EAAEJ,QAA8BQ,KAAZL,EAAEH,KAAyC,IAAlBK,QACxCF,GAAEH,GAETG,EAAEH,GAAQI,EAAEJ,OAGX,CAAA,GAAIc,MAAMC,QAAQX,EAAEJ,IACzB,KAAM,IAAIkB,WAAU,yCAEJ,QAAZd,EAAEJ,QAA8BQ,KAAZL,EAAEH,KAAyC,IAAlBK,QACxCF,GAAEH,GAETG,EAAEH,GAAQI,EAAEJ,IAMtB,MAAOG,IAWT5D,EAAQ+E,uBAAyB,SAAUT,EAAOV,EAAGC,GACnD,GAAIC,GAAgBC,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAGnF,IAAIQ,MAAMC,QAAQX,GAChB,KAAM,IAAIc,WAAU,yCAEtB,KAAK,GAAIlB,KAAQI,GACf,GAAIA,EAAEH,eAAeD,KACS,GAAxBa,EAAMU,QAAQvB,GAChB,GAAII,EAAEJ,IAASI,EAAEJ,GAAMmB,cAAgBC,WACrBZ,KAAZL,EAAEH,KACJG,EAAEH,OAEAG,EAAEH,GAAMmB,cAAgBC,OAC1B7E,EAAQ8E,WAAWlB,EAAEH,GAAOI,EAAEJ,IAEd,OAAZI,EAAEJ,QAA8BQ,KAAZL,EAAEH,KAAyC,IAAlBK,QACxCF,GAAEH,GAETG,EAAEH,GAAQI,EAAEJ,OAGX,IAAIc,MAAMC,QAAQX,EAAEJ,IAAQ,CACjCG,EAAEH,KACF,KAAK,GAAIU,GAAI,EAAGA,EAAIN,EAAEJ,GAAMO,OAAQG,IAClCP,EAAEH,GAAMwB,KAAKpB,EAAEJ,GAAMU,QAGP,QAAZN,EAAEJ,QAA8BQ,KAAZL,EAAEH,KAAyC,IAAlBK,QACxCF,GAAEH,GAETG,EAAEH,GAAQI,EAAEJ,EAMtB,OAAOG,IAYT5D,EAAQ8E,WAAa,SAAUlB,EAAGC,EAAGK,EAAaJ,GAChD,IAAK,GAAIL,KAAQI,GACf,GAAIA,EAAEH,eAAeD,KAAyB,IAAhBS,EAC5B,GAAIL,EAAEJ,IAASI,EAAEJ,GAAMmB,cAAgBC,WACrBZ,KAAZL,EAAEH,KACJG,EAAEH,OAEAG,EAAEH,GAAMmB,cAAgBC,OAC1B7E,EAAQ8E,WAAWlB,EAAEH,GAAOI,EAAEJ,GAAOS,GAErB,OAAZL,EAAEJ,QAA8BQ,KAAZL,EAAEH,KAAyC,IAAlBK,QACxCF,GAAEH,GAETG,EAAEH,GAAQI,EAAEJ,OAGX,IAAIc,MAAMC,QAAQX,EAAEJ,IAAQ,CACjCG,EAAEH,KACF,KAAK,GAAIU,GAAI,EAAGA,EAAIN,EAAEJ,GAAMO,OAAQG,IAClCP,EAAEH,GAAMwB,KAAKpB,EAAEJ,GAAMU,QAGP,QAAZN,EAAEJ,QAA8BQ,KAAZL,EAAEH,KAAyC,IAAlBK,QACxCF,GAAEH,GAETG,EAAEH,GAAQI,EAAEJ,EAKpB,OAAOG,IAUT5D,EAAQkF,WAAa,SAAUtB,EAAGC,GAChC,GAAID,EAAEI,QAAUH,EAAEG,OAAQ,OAAO,CAEjC,KAAK,GAAIG,GAAI,EAAGgB,EAAMvB,EAAEI,OAAQG,EAAIgB,EAAKhB,IACvC,GAAIP,EAAEO,IAAMN,EAAEM,GAAI,OAAO,CAG3B,QAAO,GAYTnE,EAAQoF,QAAU,SAAUpD,EAAQqD,GAClC,GAAIC,EAEJ,QAAerB,KAAXjC,EAAJ,CAGA,GAAe,OAAXA,EACF,MAAO,KAGT,KAAKqD,EACH,MAAOrD,EAET,IAAsB,gBAATqD,MAAwBA,YAAgBtC,SACnD,KAAM,IAAI0B,OAAM,wBAIlB,QAAQY,GACN,IAAK,UACL,IAAK,UACH,MAAOE,SAAQvD,EAEjB,KAAK,SACL,IAAK,SACH,MAAIhC,GAAQ8C,SAASd,KAAYoB,MAAMH,KAAKI,MAAMrB,IACzCH,EAAOG,GAAQwD,UAEfvD,OAAOD,EAAOwD,UAEzB,KAAK,SACL,IAAK,SACH,MAAOzC,QAAOf,EAEhB,KAAK,OACH,GAAIhC,EAAQ+B,SAASC,GACnB,MAAO,IAAIiB,MAAKjB,EAElB,IAAIA,YAAkBiB,MACpB,MAAO,IAAIA,MAAKjB,EAAOwD,UAClB,IAAI3D,EAAO4D,SAASzD,GACzB,MAAO,IAAIiB,MAAKjB,EAAOwD,UAEzB,IAAIxF,EAAQ8C,SAASd,GAEnB,MADAsD,GAAQpC,EAAaC,KAAKnB,GACtBsD,EAEK,GAAIrC,MAAKhB,OAAOqD,EAAM,KAEtBzD,EAAO,GAAIoB,MAAKjB,IAAS0D,QAGlC,MAAM,IAAIjB,OAAM,iCAAmCzE,EAAQ2F,QAAQ3D,GAAU,gBAGjF,KAAK,SACH,GAAIhC,EAAQ+B,SAASC,GACnB,MAAOH,GAAOG,EAEhB,IAAIA,YAAkBiB,MACpB,MAAOpB,GAAOG,EAAOwD,UAChB,IAAI3D,EAAO4D,SAASzD,GACzB,MAAOH,GAAOG,EAEhB,IAAIhC,EAAQ8C,SAASd,GAEnB,MADAsD,GAAQpC,EAAaC,KAAKnB,GAGjBH,EAFLyD,EAEYrD,OAAOqD,EAAM,IAEbtD,EAGhB,MAAM,IAAIyC,OAAM,iCAAmCzE,EAAQ2F,QAAQ3D,GAAU,gBAGjF,KAAK,UACH,GAAIhC,EAAQ+B,SAASC,GACnB,MAAO,IAAIiB,MAAKjB,EACX,IAAIA,YAAkBiB,MAC3B,MAAOjB,GAAO4D,aACT,IAAI/D,EAAO4D,SAASzD,GACzB,MAAOA,GAAO0D,SAASE,aAClB,IAAI5F,EAAQ8C,SAASd,GAE1B,MADAsD,GAAQpC,EAAaC,KAAKnB,GACtBsD,EAEK,GAAIrC,MAAKhB,OAAOqD,EAAM,KAAKM,cAE3B/D,EAAOG,GAAQ6D,QAGxB,MAAM,IAAIpB,OAAM,iCAAmCzE,EAAQ2F,QAAQ3D,GAAU,mBAGjF,KAAK,UACH,GAAIhC,EAAQ+B,SAASC,GACnB,MAAO,SAAWA,EAAS,IACtB,IAAIA,YAAkBiB,MAC3B,MAAO,SAAWjB,EAAOwD,UAAY,IAChC,IAAIxF,EAAQ8C,SAASd,GAAS,CACnCsD,EAAQpC,EAAaC,KAAKnB,EAQ1B,OAAO,UANHsD,EAEM,GAAIrC,MAAKhB,OAAOqD,EAAM,KAAKE,UAE3B,GAAIvC,MAAKjB,GAAQwD,WAED,KAE1B,KAAM,IAAIf,OAAM,iCAAmCzE,EAAQ2F,QAAQ3D,GAAU,mBAGjF,SACE,KAAM,IAAIyC,OAAM,iBAAmBY,EAAO,OAOhD,IAAInC,GAAe,qBAOnBlD,GAAQ2F,QAAU,SAAU3D,GAC1B,GAAIqD,OAAyB,KAAXrD,EAAyB,aAAc,EAAIJ,EAAkB,SAAGI,EAElF,OAAY,UAARqD,EACa,OAAXrD,EACK,OAELA,YAAkBuD,SACb,UAELvD,YAAkBC,QACb,SAELD,YAAkBe,QACb,SAELwB,MAAMC,QAAQxC,GACT,QAELA,YAAkBiB,MACb,OAEF,SACU,UAARoC,EACF,SACU,WAARA,EACF,UACU,UAARA,EACF,aACWpB,KAAToB,EACF,YAGFA,GAUTrF,EAAQ8F,mBAAqB,SAAUC,EAAKC,GAE1C,IAAK,GADDC,MACK9B,EAAI,EAAGA,EAAI4B,EAAI/B,OAAQG,IAC9B8B,EAAOhB,KAAKc,EAAI5B,GAGlB,OADA8B,GAAOhB,KAAKe,GACLC,GAUTjG,EAAQkG,UAAY,SAAUH,GAE5B,IAAK,GADDE,MACK9B,EAAI,EAAGA,EAAI4B,EAAI/B,OAAQG,IAC9B8B,EAAOhB,KAAKc,EAAI5B,GAElB,OAAO8B,IASTjG,EAAQmG,gBAAkB,SAAUC,GAClC,MAAOA,GAAKC,wBAAwBC,MAGtCtG,EAAQuG,iBAAmB,SAAUH,GACnC,MAAOA,GAAKC,wBAAwBG,OAStCxG,EAAQyG,eAAiB,SAAUL,GACjC,MAAOA,GAAKC,wBAAwBK,KAQtC1G,EAAQ2G,aAAe,SAAUP,EAAMQ,GACrC,GAAIC,GAAUT,EAAKU,UAAUC,MAAM,KAC/BC,EAAaJ,EAAWG,MAAM,IAClCF,GAAUA,EAAQI,OAAOD,EAAWE,OAAO,SAAUJ,GACnD,MAAOD,GAAQ7B,QAAQ8B,GAAa,KAEtCV,EAAKU,UAAYD,EAAQM,KAAK,MAQhCnH,EAAQoH,gBAAkB,SAAUhB,EAAMQ,GACxC,GAAIC,GAAUT,EAAKU,UAAUC,MAAM,KAC/BM,EAAaT,EAAWG,MAAM,IAClCF,GAAUA,EAAQK,OAAO,SAAUJ,GACjC,MAAOO,GAAWrC,QAAQ8B,GAAa,IAEzCV,EAAKU,UAAYD,EAAQM,KAAK,MAYhCnH,EAAQsH,QAAU,SAAUtF,EAAQuF,GAClC,GAAIpD,GAAGgB,CACP,IAAIZ,MAAMC,QAAQxC,GAEhB,IAAKmC,EAAI,EAAGgB,EAAMnD,EAAOgC,OAAQG,EAAIgB,EAAKhB,IACxCoD,EAASvF,EAAOmC,GAAIA,EAAGnC,OAIzB,KAAKmC,IAAKnC,GACJA,EAAO0B,eAAeS,IACxBoD,EAASvF,EAAOmC,GAAIA,EAAGnC,IAY/BhC,EAAQwH,QAAU,SAAUxF,GAC1B,GAAIyF,KAEJ,KAAK,GAAIhE,KAAQzB,GACXA,EAAO0B,eAAeD,IAAOgE,EAAMxC,KAAKjD,EAAOyB,GAGrD,OAAOgE,IAUTzH,EAAQ0H,eAAiB,SAAU1F,EAAQ2F,EAAKhF,GAC9C,MAAIX,GAAO2F,KAAShF,IAClBX,EAAO2F,GAAOhF,GACP,IAWX3C,EAAQ4H,SAAW,SAAUC,GAC3B,GAAIC,IAAY,CAEhB,OAAO,YACAA,IACHA,GAAY,EACZC,sBAAsB,WACpBD,GAAY,EACZD,SAcR7H,EAAQgI,iBAAmB,SAAUC,EAASC,EAAQC,EAAUC,GAC1DH,EAAQD,sBACS/D,KAAfmE,IAA0BA,GAAa,GAE5B,eAAXF,GAA2BG,UAAUC,UAAUtD,QAAQ,YAAc,IACvEkD,EAAS,kBAGXD,EAAQD,iBAAiBE,EAAQC,EAAUC,IAE3CH,EAAQM,YAAY,KAAOL,EAAQC,IAWvCnI,EAAQwI,oBAAsB,SAAUP,EAASC,EAAQC,EAAUC,GAC7DH,EAAQO,yBAESvE,KAAfmE,IAA0BA,GAAa,GAE5B,eAAXF,GAA2BG,UAAUC,UAAUtD,QAAQ,YAAc,IACvEkD,EAAS,kBAGXD,EAAQO,oBAAoBN,EAAQC,EAAUC,IAG9CH,EAAQQ,YAAY,KAAOP,EAAQC,IAOvCnI,EAAQ0I,eAAiB,SAAUC,GAC5BA,IAAOA,EAAQC,OAAOD,OAEvBA,EAAMD,eACRC,EAAMD,iBAENC,EAAME,aAAc,GASxB7I,EAAQ8I,UAAY,SAAUH,GAEvBA,IACHA,EAAQC,OAAOD,MAGjB,IAAII,EAaJ,OAXIJ,GAAMI,OACRA,EAASJ,EAAMI,OACNJ,EAAMK,aACfD,EAASJ,EAAMK,gBAGM/E,IAAnB8E,EAAOE,UAA4C,GAAnBF,EAAOE,WAEzCF,EAASA,EAAOG,YAGXH,GAQT/I,EAAQmJ,UAAY,SAAUlB,EAASmB,GAGrC,IAFA,GAAIC,GAAIpB,EAEDoB,GAAG,CACR,GAAIA,IAAMD,EACR,OAAO,CAETC,GAAIA,EAAEH,WAGR,OAAO,GAGTlJ,EAAQsJ,UAQRtJ,EAAQsJ,OAAOC,UAAY,SAAU5G,EAAO6G,GAK1C,MAJoB,kBAAT7G,KACTA,EAAQA,KAGG,MAATA,EACc,GAATA,EAGF6G,GAAgB,MASzBxJ,EAAQsJ,OAAOG,SAAW,SAAU9G,EAAO6G,GAKzC,MAJoB,kBAAT7G,KACTA,EAAQA,KAGG,MAATA,EACKV,OAAOU,IAAU6G,GAAgB,KAGnCA,GAAgB,MASzBxJ,EAAQsJ,OAAOI,SAAW,SAAU/G,EAAO6G,GAKzC,MAJoB,kBAAT7G,KACTA,EAAQA,KAGG,MAATA,EACKI,OAAOJ,GAGT6G,GAAgB,MASzBxJ,EAAQsJ,OAAOK,OAAS,SAAUhH,EAAO6G,GAKvC,MAJoB,kBAAT7G,KACTA,EAAQA,KAGN3C,EAAQ8C,SAASH,GACZA,EACE3C,EAAQ+B,SAASY,GACnBA,EAAQ,KAER6G,GAAgB,MAU3BxJ,EAAQsJ,OAAOM,UAAY,SAAUjH,EAAO6G,GAK1C,MAJoB,kBAAT7G,KACTA,EAAQA,KAGHA,GAAS6G,GAAgB,MASlCxJ,EAAQ6J,SAAW,SAAUC,GAE3B,GAAIC,GAAiB,kCACrBD,GAAMA,EAAIE,QAAQD,EAAgB,SAAUnJ,EAAGqJ,EAAGC,EAAGrG,GACnD,MAAOoG,GAAIA,EAAIC,EAAIA,EAAIrG,EAAIA,GAE7B,IAAIsG,GAAS,4CAA4ChH,KAAK2G,EAC9D,OAAOK,IACLF,EAAGG,SAASD,EAAO,GAAI,IACvBD,EAAGE,SAASD,EAAO,GAAI,IACvBtG,EAAGuG,SAASD,EAAO,GAAI,KACrB,MASNnK,EAAQqK,gBAAkB,SAAUC,EAAOC,GACzC,IAA8B,GAA1BD,EAAMtF,QAAQ,QAChB,MAAOsF,EACF,KAA6B,GAAzBA,EAAMtF,QAAQ,OAAc,CACrC,GAAIwF,GAAMF,EAAMG,OAAOH,EAAMtF,QAAQ,KAAO,GAAGgF,QAAQ,IAAK,IAAIjD,MAAM,IACtE,OAAO,QAAUyD,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMD,EAAU,IAExE,GAAIC,GAAMxK,EAAQ6J,SAASS,EAC3B,OAAW,OAAPE,EACKF,EAEA,QAAUE,EAAIP,EAAI,IAAMO,EAAIN,EAAI,IAAMM,EAAI3G,EAAI,IAAM0G,EAAU,KAa3EvK,EAAQ0K,SAAW,SAAUC,EAAKC,EAAOC,GACvC,MAAO,MAAQ,GAAK,KAAOF,GAAO,KAAOC,GAAS,GAAKC,GAAMC,SAAS,IAAIC,MAAM,IASlF/K,EAAQgL,WAAa,SAAUV,GAC7B,GAAIzJ,EACJ,KAAgC,IAA5Bb,EAAQ8C,SAASwH,GAAiB,CACpC,IAAkC,IAA9BtK,EAAQiL,WAAWX,GAAiB,CACtC,GAAIE,GAAMF,EAAMG,OAAO,GAAGA,OAAO,EAAGH,EAAMtG,OAAS,GAAG+C,MAAM,KAAKmE,IAAI,SAAUvI,GAC7E,MAAOyH,UAASzH,IAElB2H,GAAQtK,EAAQ0K,SAASF,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAE/C,IAAkC,IAA9BxK,EAAQmL,WAAWb,GAAiB,CACtC,GAAIc,GAAMpL,EAAQqL,SAASf,GACvBgB,GAAoBC,EAAGH,EAAIG,EAAGC,EAAW,GAARJ,EAAII,EAASC,EAAG5I,KAAKL,IAAI,EAAW,KAAR4I,EAAIK,IACjEC,GAAmBH,EAAGH,EAAIG,EAAGC,EAAG3I,KAAKL,IAAI,EAAW,KAAR4I,EAAII,GAAWC,EAAW,GAARL,EAAIK,GAClEE,EAAiB3L,EAAQ4L,SAASF,EAAeH,EAAGG,EAAeF,EAAGE,EAAeD,GACrFI,EAAkB7L,EAAQ4L,SAASN,EAAgBC,EAAGD,EAAgBE,EAAGF,EAAgBG,EAC7F5K,IACEiL,WAAYxB,EACZyB,OAAQJ,EACRK,WACEF,WAAYD,EACZE,OAAQJ,GAEVM,OACEH,WAAYD,EACZE,OAAQJ,QAIZ9K,IACEiL,WAAYxB,EACZyB,OAAQzB,EACR0B,WACEF,WAAYxB,EACZyB,OAAQzB,GAEV2B,OACEH,WAAYxB,EACZyB,OAAQzB,QAKdzJ,MACAA,EAAEiL,WAAaxB,EAAMwB,gBAAc7H,GACnCpD,EAAEkL,OAASzB,EAAMyB,YAAU9H,GAEvBjE,EAAQ8C,SAASwH,EAAM0B,WACzBnL,EAAEmL,WACAD,OAAQzB,EAAM0B,UACdF,WAAYxB,EAAM0B,YAGpBnL,EAAEmL,aACFnL,EAAEmL,UAAUF,WAAaxB,EAAM0B,WAAa1B,EAAM0B,UAAUF,gBAAc7H,GAC1EpD,EAAEmL,UAAUD,OAASzB,EAAM0B,WAAa1B,EAAM0B,UAAUD,YAAU9H,IAGhEjE,EAAQ8C,SAASwH,EAAM2B,OACzBpL,EAAEoL,OACAF,OAAQzB,EAAM2B,MACdH,WAAYxB,EAAM2B,QAGpBpL,EAAEoL,SACFpL,EAAEoL,MAAMH,WAAaxB,EAAM2B,OAAS3B,EAAM2B,MAAMH,gBAAc7H,GAC9DpD,EAAEoL,MAAMF,OAASzB,EAAM2B,OAAS3B,EAAM2B,MAAMF,YAAU9H,GAI1D,OAAOpD,IAYTb,EAAQkM,SAAW,SAAUvB,EAAKC,EAAOC,GACvCF,GAAY,IAAIC,GAAgB,IAAIC,GAAc,GAClD,IAAIsB,GAAStJ,KAAKL,IAAImI,EAAK9H,KAAKL,IAAIoI,EAAOC,IACvCuB,EAASvJ,KAAKJ,IAAIkI,EAAK9H,KAAKJ,IAAImI,EAAOC,GAG3C,IAAIsB,GAAUC,EACZ,OAASb,EAAG,EAAGC,EAAG,EAAGC,EAAGU,EAI1B,IAAIE,GAAI1B,GAAOwB,EAASvB,EAAQC,EAAOA,GAAQsB,EAASxB,EAAMC,EAAQC,EAAOF,CAK7E,QAASY,EAHC,KADFZ,GAAOwB,EAAS,EAAItB,GAAQsB,EAAS,EAAI,GAC7BE,GAAKD,EAASD,IAAW,IAG5BX,GAFCY,EAASD,GAAUC,EAELX,EADpBW,GAId,IAAIE,IAEFvF,MAAO,SAAewF,GACpB,GAAIC,KAWJ,OATAD,GAAQxF,MAAM,KAAKO,QAAQ,SAAUmF,GACnC,GAAoB,IAAhBA,EAAMC,OAAc,CACtB,GAAIC,GAAQF,EAAM1F,MAAM,KACpBY,EAAMgF,EAAM,GAAGD,OACf/J,EAAQgK,EAAM,GAAGD,MACrBF,GAAO7E,GAAOhF,KAIX6J,GAITrF,KAAM,SAAcqF,GAClB,OAAO,EAAI9K,EAAgB,SAAG8K,GAAQtB,IAAI,SAAUvD,GAClD,MAAOA,GAAM,KAAO6E,EAAO7E,KAC1BR,KAAK,OASZnH,GAAQ4M,WAAa,SAAU3E,EAASsE,GACtC,GAAIM,GAAgBP,EAAQvF,MAAMkB,EAAQwE,MAAMF,SAC5CO,EAAYR,EAAQvF,MAAMwF,GAC1BC,EAASxM,EAAQgB,OAAO6L,EAAeC,EAE3C7E,GAAQwE,MAAMF,QAAUD,EAAQnF,KAAKqF,IAQvCxM,EAAQ+M,cAAgB,SAAU9E,EAASsE,GACzC,GAAIC,GAASF,EAAQvF,MAAMkB,EAAQwE,MAAMF,SACrCS,EAAeV,EAAQvF,MAAMwF,EAEjC,KAAK,GAAI5E,KAAOqF,GACVA,EAAatJ,eAAeiE,UACvB6E,GAAO7E,EAIlBM,GAAQwE,MAAMF,QAAUD,EAAQnF,KAAKqF,IAWvCxM,EAAQiN,SAAW,SAAU1B,EAAGC,EAAGC,GACjC,GAAIxB,GAAGC,EAAGrG,EAENM,EAAItB,KAAKqK,MAAU,EAAJ3B,GACf4B,EAAQ,EAAJ5B,EAAQpH,EACZrD,EAAI2K,GAAK,EAAID,GACb4B,EAAI3B,GAAK,EAAI0B,EAAI3B,GACjB6B,EAAI5B,GAAK,GAAK,EAAI0B,GAAK3B,EAE3B,QAAQrH,EAAI,GACV,IAAK,GACH8F,EAAIwB,EAAGvB,EAAImD,EAAGxJ,EAAI/C,CAAE,MACtB,KAAK,GACHmJ,EAAImD,EAAGlD,EAAIuB,EAAG5H,EAAI/C,CAAE,MACtB,KAAK,GACHmJ,EAAInJ,EAAGoJ,EAAIuB,EAAG5H,EAAIwJ,CAAE,MACtB,KAAK,GACHpD,EAAInJ,EAAGoJ,EAAIkD,EAAGvJ,EAAI4H,CAAE,MACtB,KAAK,GACHxB,EAAIoD,EAAGnD,EAAIpJ,EAAG+C,EAAI4H,CAAE,MACtB,KAAK,GACHxB,EAAIwB,EAAGvB,EAAIpJ,EAAG+C,EAAIuJ,EAGtB,OAASnD,EAAGpH,KAAKqK,MAAU,IAAJjD,GAAUC,EAAGrH,KAAKqK,MAAU,IAAJhD,GAAUrG,EAAGhB,KAAKqK,MAAU,IAAJrJ,KAGzE7D,EAAQ4L,SAAW,SAAUL,EAAGC,EAAGC,GACjC,GAAIjB,GAAMxK,EAAQiN,SAAS1B,EAAGC,EAAGC,EACjC,OAAOzL,GAAQ0K,SAASF,EAAIP,EAAGO,EAAIN,EAAGM,EAAI3G,IAG5C7D,EAAQqL,SAAW,SAAUvB,GAC3B,GAAIU,GAAMxK,EAAQ6J,SAASC,EAC3B,OAAO9J,GAAQkM,SAAS1B,EAAIP,EAAGO,EAAIN,EAAGM,EAAI3G,IAG5C7D,EAAQmL,WAAa,SAAUrB,GAE7B,MADW,qCAAqCwD,KAAKxD,IAIvD9J,EAAQiL,WAAa,SAAUT,GAG7B,MAFAA,GAAMA,EAAIR,QAAQ,IAAK,IACZ,wCAAwCsD,KAAK9C,IAG1DxK,EAAQuN,YAAc,SAAUC,GAG9B,MAFAA,GAAOA,EAAKxD,QAAQ,IAAK,IACd,kDAAkDsD,KAAKE,IAWpExN,EAAQyN,sBAAwB,SAAUC,EAAQC,GAChD,GAA0G,eAA1E,KAApBA,EAAkC,aAAc,EAAI/L,EAAkB,SAAG+L,IAA+B,CAElH,IAAK,GADDC,IAAW,EAAIpM,EAAkB,SAAGmM,GAC/BxJ,EAAI,EAAGA,EAAIuJ,EAAO1J,OAAQG,IAC7BwJ,EAAgBjK,eAAegK,EAAOvJ,KACoB,WAAxD,EAAIvC,EAAkB,SAAG+L,EAAgBD,EAAOvJ,OAClDyJ,EAASF,EAAOvJ,IAAMnE,EAAQ6N,aAAaF,EAAgBD,EAAOvJ,KAIxE,OAAOyJ,GAEP,MAAO,OAWX5N,EAAQ6N,aAAe,SAAUF,GAC/B,GAA0G,eAA1E,KAApBA,EAAkC,aAAc,EAAI/L,EAAkB,SAAG+L,IAA+B,CAClH,GAAIC,IAAW,EAAIpM,EAAkB,SAAGmM,EACxC,KAAK,GAAIxJ,KAAKwJ,GACRA,EAAgBjK,eAAeS,IACmB,WAAhD,EAAIvC,EAAkB,SAAG+L,EAAgBxJ,MAC3CyJ,EAASzJ,GAAKnE,EAAQ6N,aAAaF,EAAgBxJ,IAIzD,OAAOyJ,GAEP,MAAO,OAWX5N,EAAQ8N,WAAa,SAAUlK,EAAGmK,GAChC,IAAK,GAAI5J,GAAI,EAAGA,EAAIP,EAAEI,OAAQG,IAAK,CAEjC,IAAK,GADD6J,GAAIpK,EAAEO,GACD8J,EAAI9J,EAAG8J,EAAI,GAAKF,EAAQC,EAAGpK,EAAEqK,EAAI,IAAM,EAAGA,IACjDrK,EAAEqK,GAAKrK,EAAEqK,EAAI,EAEfrK,GAAEqK,GAAKD,EAET,MAAOpK,IAWT5D,EAAQkO,aAAe,SAAUC,EAAaC,EAAS9E,GACrD,GACI+E,IADgBtK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAC/DA,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MAEnF,IAAwB,OAApBqK,EAAQ9E,GACV6E,EAAY7E,IAAU,EAAI9H,EAAkB,SAAG6M,EAAc/E,QAE7D,QAAwBrF,KAApBmK,EAAQ9E,GACV,GAA+B,iBAApB8E,GAAQ9E,GACjB6E,EAAY7E,GAAQgF,QAAUF,EAAQ9E,OACjC,KAC2BrF,KAA5BmK,EAAQ9E,GAAQgF,UAClBH,EAAY7E,GAAQgF,SAAU,EAEhC,KAAK,GAAI7K,KAAQ2K,GAAQ9E,GACnB8E,EAAQ9E,GAAQ5F,eAAeD,KACjC0K,EAAY7E,GAAQ7F,GAAQ2K,EAAQ9E,GAAQ7F,MAmBxDzD,EAAQuO,mBAAqB,SAAUC,EAAcC,EAAYC,EAAOC,GAMtE,IALA,GACIC,GAAY,EACZC,EAAM,EACNC,EAAON,EAAaxK,OAAS,EAE1B6K,GAAOC,GAAQF,EALF,KAK6B,CAC/C,GAAIG,GAASlM,KAAKqK,OAAO2B,EAAMC,GAAQ,GAEnCE,EAAOR,EAAaO,GACpBpM,MAAmBsB,KAAX0K,EAAuBK,EAAKN,GAASM,EAAKN,GAAOC,GAEzDM,EAAeR,EAAW9L,EAC9B,IAAoB,GAAhBsM,EAEF,MAAOF,IACmB,GAAjBE,EAETJ,EAAME,EAAS,EAGfD,EAAOC,EAAS,EAGlBH,IAGF,OAAQ,GAgBV5O,EAAQkP,kBAAoB,SAAUV,EAAczF,EAAQ2F,EAAOS,EAAgBV,GAWjF,IAVA,GAIIW,GAAWzM,EAAO0M,EAAWN,EAH7BH,EAAY,EACZC,EAAM,EACNC,EAAON,EAAaxK,OAAS,EAG7ByK,MAA2BxK,IAAdwK,EAA0BA,EAAa,SAAU7K,EAAGC,GACnE,MAAOD,IAAKC,EAAI,EAAID,EAAIC,GAAK,EAAI,GAG5BgL,GAAOC,GAAQF,EAVF,KAU6B,CAO/C,GALAG,EAASlM,KAAKqK,MAAM,IAAO4B,EAAOD,IAClCO,EAAYZ,EAAa3L,KAAKJ,IAAI,EAAGsM,EAAS,IAAIL,GAClD/L,EAAQ6L,EAAaO,GAAQL,GAC7BW,EAAYb,EAAa3L,KAAKL,IAAIgM,EAAaxK,OAAS,EAAG+K,EAAS,IAAIL,GAEvC,GAA7BD,EAAW9L,EAAOoG,GAEpB,MAAOgG,EACF,IAAIN,EAAWW,EAAWrG,GAAU,GAAK0F,EAAW9L,EAAOoG,GAAU,EAE1E,MAAyB,UAAlBoG,EAA6BtM,KAAKJ,IAAI,EAAGsM,EAAS,GAAKA,CACzD,IAAIN,EAAW9L,EAAOoG,GAAU,GAAK0F,EAAWY,EAAWtG,GAAU,EAE1E,MAAyB,UAAlBoG,EAA6BJ,EAASlM,KAAKL,IAAIgM,EAAaxK,OAAS,EAAG+K,EAAS,EAGpFN,GAAW9L,EAAOoG,GAAU,EAE9B8F,EAAME,EAAS,EAGfD,EAAOC,EAAS,EAGpBH,IAIF,OAAQ,GAQV5O,EAAQsP,iBAENC,OAAQ,SAAgBlC,GACtB,MAAOA,IAGTmC,WAAY,SAAoBnC,GAC9B,MAAOA,GAAIA,GAGboC,YAAa,SAAqBpC,GAChC,MAAOA,IAAK,EAAIA,IAGlBqC,cAAe,SAAuBrC,GACpC,MAAOA,GAAI,GAAK,EAAIA,EAAIA,GAAU,EAAI,EAAIA,GAAKA,EAAlB,GAG/BsC,YAAa,SAAqBtC,GAChC,MAAOA,GAAIA,EAAIA,GAGjBuC,aAAc,SAAsBvC,GAClC,QAASA,EAAIA,EAAIA,EAAI,GAGvBwC,eAAgB,SAAwBxC,GACtC,MAAOA,GAAI,GAAK,EAAIA,EAAIA,EAAIA,GAAKA,EAAI,IAAM,EAAIA,EAAI,IAAM,EAAIA,EAAI,GAAK,GAGxEyC,YAAa,SAAqBzC,GAChC,MAAOA,GAAIA,EAAIA,EAAIA,GAGrB0C,aAAc,SAAsB1C,GAClC,MAAO,MAAMA,EAAIA,EAAIA,EAAIA,GAG3B2C,eAAgB,SAAwB3C,GACtC,MAAOA,GAAI,GAAK,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,EAAI,IAAMA,EAAIA,EAAIA,EAAIA,GAG5D4C,YAAa,SAAqB5C,GAChC,MAAOA,GAAIA,EAAIA,EAAIA,EAAIA,GAGzB6C,aAAc,SAAsB7C,GAClC,MAAO,KAAMA,EAAIA,EAAIA,EAAIA,EAAIA,GAG/B8C,eAAgB,SAAwB9C,GACtC,MAAOA,GAAI,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAIA,EAAI,EAAI,KAAOA,EAAIA,EAAIA,EAAIA,EAAIA,IAIxErN,EAAQoQ,kBAAoB,WAC1B,GAAIC,GAAQC,SAASC,cAAc,IACnCF,GAAM5D,MAAM+D,MAAQ,OACpBH,EAAM5D,MAAMgE,OAAS,OAErB,IAAIC,GAAQJ,SAASC,cAAc,MACnCG,GAAMjE,MAAMkE,SAAW,WACvBD,EAAMjE,MAAM/F,IAAM,MAClBgK,EAAMjE,MAAMnG,KAAO,MACnBoK,EAAMjE,MAAMmE,WAAa,SACzBF,EAAMjE,MAAM+D,MAAQ,QACpBE,EAAMjE,MAAMgE,OAAS,QACrBC,EAAMjE,MAAMoE,SAAW,SACvBH,EAAMI,YAAYT,GAElBC,SAASS,KAAKD,YAAYJ,EAC1B,IAAIM,GAAKX,EAAMY,WACfP,GAAMjE,MAAMoE,SAAW,QACvB,IAAIK,GAAKb,EAAMY,WAKf,OAJID,IAAME,IAAIA,EAAKR,EAAMS,aAEzBb,SAASS,KAAKzO,YAAYoO,GAEnBM,EAAKE,GAGdlR,EAAQoR,QAAU,SAAUC,EAAMC,GAChC,GAAIC,OAAY,EACXhN,OAAMC,QAAQ8M,KACjBA,GAAaA,GAEf,IAAIE,IAA4B,EAC5BC,GAAoB,EACpBC,MAAiBzN,EAErB,KACE,IAAK,GAAqD0N,GAAjDC,GAAY,EAAItQ,EAAuB,SAAG+P,KAAgBG,GAA6BG,EAAQC,EAAUC,QAAQC,MAAON,GAA4B,EAAM,CACjK,GAAIO,GAASJ,EAAMhP,KAEnB,IAAIoP,EAAQ,CACVR,EAAYQ,EAAOT,EAAU,GAC7B,KAAK,GAAInN,GAAI,EAAGA,EAAImN,EAAUtN,OAAQG,IAChCoN,IACFA,EAAYA,EAAUD,EAAUnN,IAKpC,QAAwB,KAAboN,EACT,QAIN,MAAOS,GACPP,GAAoB,EACpBC,EAAiBM,EACjB,QACA,KACOR,GAA6BI,EAAkB,QAClDA,EAAkB,SAEpB,QACA,GAAIH,EACF,KAAMC,IAKZ,MAAOH,KAKL,SAAUtR,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,GAAIa,YAAY,IAI9D,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,GACpBA,EAAoB,IACpBL,EAAOD,QAAUM,EAAoB,KAKjC,SAAUL,EAAQD,EAASM,GAE/BA,EAAoB,EAYpB,KAAK,GAXD2R,GAAS3R,EAAoB,IAC7B4R,EAAO5R,EAAoB,IAC3B6R,EAAY7R,EAAoB,GAChC8R,EAAgB9R,EAAoB,IAAI,eAExC+R,EAAe,wbAIUtL,MAAM,KAE1B5C,EAAI,EAAGA,EAAIkO,EAAarO,OAAQG,IAAK,CAC5C,GAAImO,GAAOD,EAAalO,GACpBoO,EAAaN,EAAOK,GACpBE,EAAQD,GAAcA,EAAWE,SACjCD,KAAUA,EAAMJ,IAAgBF,EAAKM,EAAOJ,EAAeE,GAC/DH,EAAUG,GAAQH,EAAU5N,QAM1B,SAAUtE,EAAQD,EAASM,GAG/B,GAAIoS,GAAmBpS,EAAoB,GACvCqS,EAAOrS,EAAoB,GAC3B6R,EAAY7R,EAAoB,GAChCsS,EAAYtS,EAAoB,EAMpCL,GAAOD,QAAUM,EAAoB,IAAIiE,MAAO,QAAS,SAAUsO,EAAUC,GAC3E1S,KAAK2S,GAAKH,EAAUC,GACpBzS,KAAK4S,GAAK,EACV5S,KAAK6S,GAAKH,GAET,WACD,GAAII,GAAI9S,KAAK2S,GACTD,EAAO1S,KAAK6S,GACZE,EAAQ/S,KAAK4S,IACjB,QAAKE,GAAKC,GAASD,EAAElP,QACnB5D,KAAK2S,OAAK9O,GACH0O,EAAK,IAEF,QAARG,EAAuBH,EAAK,EAAGQ,GACvB,UAARL,EAAyBH,EAAK,EAAGO,EAAEC,IAChCR,EAAK,GAAIQ,EAAOD,EAAEC,MACxB,UAGHhB,EAAUiB,UAAYjB,EAAU5N,MAEhCmO,EAAiB,QACjBA,EAAiB,UACjBA,EAAiB,YAKb,SAAUzS,EAAQD,GAEtBC,EAAOD,QAAU,cAKb,SAAUC,EAAQD,GAEtBC,EAAOD,QAAU,SAAU8R,EAAMnP,GAC/B,OAASA,MAAOA,EAAOmP,OAAQA,KAM7B,SAAU7R,EAAQD,GAEtBC,EAAOD,YAKH,SAAUC,EAAQD,EAASM,GAG/B,GAAI+S,GAAU/S,EAAoB,IAC9BgT,EAAUhT,EAAoB,GAClCL,GAAOD,QAAU,SAAUuT,GACzB,MAAOF,GAAQC,EAAQC,MAMrB,SAAUtT,EAAQD,EAASM,GAG/B,GAAIkT,GAAMlT,EAAoB,GAE9BL,GAAOD,QAAU6E,OAAO,KAAK4O,qBAAqB,GAAK5O,OAAS,SAAU0O,GACxE,MAAkB,UAAXC,EAAID,GAAkBA,EAAGxM,MAAM,IAAMlC,OAAO0O,KAMjD,SAAUtT,EAAQD,GAEtB,GAAI8K,MAAcA,QAElB7K,GAAOD,QAAU,SAAUuT,GACzB,MAAOzI,GAASnK,KAAK4S,GAAIxI,MAAM,GAAI,KAMjC,SAAU9K,EAAQD,GAGtBC,EAAOD,QAAU,SAAUuT,GACzB,OAAUtP,IAANsP,EAAiB,KAAM5O,WAAU,yBAA2B4O,EAChE,OAAOA,KAML,SAAUtT,EAAQD,EAASM,GAG/B,GAAIoT,GAAUpT,EAAoB,IAC9BqT,EAAUrT,EAAoB,IAC9BsT,EAAWtT,EAAoB,IAC/B4R,EAAO5R,EAAoB,IAC3BuT,EAAMvT,EAAoB,IAC1B6R,EAAY7R,EAAoB,GAChCwT,EAAcxT,EAAoB,IAClCyT,EAAiBzT,EAAoB,IACrC0T,EAAiB1T,EAAoB,IACrC2T,EAAW3T,EAAoB,IAAI,YACnC4T,OAAaC,MAAQ,WAAaA,QAKlCC,EAAa,WAAc,MAAOhU,MAEtCH,GAAOD,QAAU,SAAUqU,EAAM/B,EAAMgC,EAAazC,EAAM0C,EAASC,EAAQC,GACzEX,EAAYQ,EAAahC,EAAMT,EAC/B,IAeI6C,GAAS/M,EAAKgN,EAfdC,EAAY,SAAU9B,GACxB,IAAKoB,GAASpB,IAAQN,GAAO,MAAOA,GAAMM,EAC1C,QAAQA,GACN,IAVK,OAWL,IAVO,SAUM,MAAO,YAAoB,MAAO,IAAIwB,GAAYlU,KAAM0S,IACrE,MAAO,YAAqB,MAAO,IAAIwB,GAAYlU,KAAM0S,KAEzD+B,EAAMvC,EAAO,YACbwC,EAdO,UAcMP,EACbQ,GAAa,EACbvC,EAAQ6B,EAAK5B,UACbuC,EAAUxC,EAAMyB,IAAazB,EAnBjB,eAmBuC+B,GAAW/B,EAAM+B,GACpEU,EAAWD,GAAWJ,EAAUL,GAChCW,EAAWX,EAAWO,EAAwBF,EAAU,WAArBK,MAAkChR,GACrEkR,EAAqB,SAAR7C,EAAkBE,EAAM4C,SAAWJ,EAAUA,CAwB9D,IArBIG,IACFR,EAAoBX,EAAemB,EAAWxU,KAAK,GAAI0T,QAC7BxP,OAAO4N,WAAakC,EAAkB9C,OAE9DkC,EAAeY,EAAmBE,GAAK,GAElCnB,GAAYG,EAAIc,EAAmBV,IAAW/B,EAAKyC,EAAmBV,EAAUG,IAIrFU,GAAcE,GAjCP,WAiCkBA,EAAQK,OACnCN,GAAa,EACbE,EAAW,WAAoB,MAAOD,GAAQrU,KAAKP,QAG/CsT,IAAWe,IAAYP,IAASa,GAAevC,EAAMyB,IACzD/B,EAAKM,EAAOyB,EAAUgB,GAGxB9C,EAAUG,GAAQ2C,EAClB9C,EAAU0C,GAAOT,EACbG,EAMF,GALAG,GACEY,OAAQR,EAAaG,EAAWL,EA9CzB,UA+CPT,KAAMK,EAASS,EAAWL,EAhDrB,QAiDLQ,QAASF,GAEPT,EAAQ,IAAK9M,IAAO+M,GAChB/M,IAAO6K,IAAQoB,EAASpB,EAAO7K,EAAK+M,EAAQ/M,QAC7CgM,GAAQA,EAAQ4B,EAAI5B,EAAQ6B,GAAKtB,GAASa,GAAazC,EAAMoC,EAEtE,OAAOA,KAML,SAAUzU,EAAQD,GAEtBC,EAAOD,SAAU,GAKb,SAAUC,EAAQD,EAASM,GAE/B,GAAI2R,GAAS3R,EAAoB,IAC7BmV,EAAOnV,EAAoB,IAC3BoV,EAAMpV,EAAoB,IAC1B4R,EAAO5R,EAAoB,IAG3BqT,EAAU,SAAUtO,EAAMgQ,EAAMM,GAClC,GASIhO,GAAKiO,EAAKC,EATVC,EAAYzQ,EAAOsO,EAAQ6B,EAC3BO,EAAY1Q,EAAOsO,EAAQqC,EAC3BC,EAAY5Q,EAAOsO,EAAQuC,EAC3BC,EAAW9Q,EAAOsO,EAAQ4B,EAC1Ba,EAAU/Q,EAAOsO,EAAQ0C,EACzBC,EAAUjR,EAAOsO,EAAQ4C,EACzBvW,EAAU+V,EAAYN,EAAOA,EAAKJ,KAAUI,EAAKJ,OACjDmB,EAAWxW,EAAiB,UAC5B+I,EAASgN,EAAY9D,EAASgE,EAAYhE,EAAOoD,IAASpD,EAAOoD,QAAsB,SAEvFU,KAAWJ,EAASN,EACxB,KAAK1N,IAAOgO,IAEVC,GAAOE,GAAa/M,OAA0B9E,KAAhB8E,EAAOpB,KAC1BA,IAAO3H,KAElB6V,EAAMD,EAAM7M,EAAOpB,GAAOgO,EAAOhO,GAEjC3H,EAAQ2H,GAAOoO,GAAmC,kBAAfhN,GAAOpB,GAAqBgO,EAAOhO,GAEpEyO,GAAWR,EAAMF,EAAIG,EAAK5D,GAE1BqE,GAAWvN,EAAOpB,IAAQkO,EAAM,SAAWY,GAC3C,GAAIjB,GAAI,SAAU5R,EAAGC,EAAGhD,GACtB,GAAIT,eAAgBqW,GAAG,CACrB,OAAQ1S,UAAUC,QAChB,IAAK,GAAG,MAAO,IAAIyS,EACnB,KAAK,GAAG,MAAO,IAAIA,GAAE7S,EACrB,KAAK,GAAG,MAAO,IAAI6S,GAAE7S,EAAGC,GACxB,MAAO,IAAI4S,GAAE7S,EAAGC,EAAGhD,GACrB,MAAO4V,GAAEC,MAAMtW,KAAM2D,WAGzB,OADAyR,GAAW,UAAIiB,EAAW,UACnBjB,GAENK,GAAOM,GAA0B,kBAAPN,GAAoBH,EAAIiB,SAAShW,KAAMkV,GAAOA,EAEvEM,KACDnW,EAAQ4W,UAAY5W,EAAQ4W,aAAejP,GAAOkO,EAE/CxQ,EAAOsO,EAAQkD,GAAKL,IAAaA,EAAS7O,IAAMuK,EAAKsE,EAAU7O,EAAKkO,KAK9ElC,GAAQ6B,EAAI,EACZ7B,EAAQqC,EAAI,EACZrC,EAAQuC,EAAI,EACZvC,EAAQ4B,EAAI,EACZ5B,EAAQ0C,EAAI,GACZ1C,EAAQ4C,EAAI,GACZ5C,EAAQmD,EAAI,GACZnD,EAAQkD,EAAI,IACZ5W,EAAOD,QAAU2T,GAKb,SAAU1T,EAAQD,GAGtB,GAAIiS,GAAShS,EAAOD,QAA2B,mBAAV4I,SAAyBA,OAAO/F,MAAQA,KACzE+F,OAAwB,mBAARmO,OAAuBA,KAAKlU,MAAQA,KAAOkU,KAE3DJ,SAAS,gBACK,iBAAPK,OAAiBA,IAAM/E,IAK9B,SAAUhS,EAAQD,GAEtB,GAAIyV,GAAOxV,EAAOD,SAAYiX,QAAS,QACrB,iBAAPC,OAAiBA,IAAMzB,IAK9B,SAAUxV,EAAQD,EAASM,GAG/B,GAAI6W,GAAY7W,EAAoB,GACpCL,GAAOD,QAAU,SAAU6H,EAAIuP,EAAMpT,GAEnC,GADAmT,EAAUtP,OACG5D,KAATmT,EAAoB,MAAOvP,EAC/B,QAAQ7D,GACN,IAAK,GAAG,MAAO,UAAUJ,GACvB,MAAOiE,GAAGlH,KAAKyW,EAAMxT,GAEvB,KAAK,GAAG,MAAO,UAAUA,EAAGC,GAC1B,MAAOgE,GAAGlH,KAAKyW,EAAMxT,EAAGC,GAE1B,KAAK,GAAG,MAAO,UAAUD,EAAGC,EAAGhD,GAC7B,MAAOgH,GAAGlH,KAAKyW,EAAMxT,EAAGC,EAAGhD,IAG/B,MAAO,YACL,MAAOgH,GAAG6O,MAAMU,EAAMrT,cAOtB,SAAU9D,EAAQD,GAEtBC,EAAOD,QAAU,SAAUuT,GACzB,GAAiB,kBAANA,GAAkB,KAAM5O,WAAU4O,EAAK,sBAClD,OAAOA,KAML,SAAUtT,EAAQD,EAASM,GAE/B,GAAI+W,GAAK/W,EAAoB,IACzBgX,EAAahX,EAAoB,GACrCL,GAAOD,QAAUM,EAAoB,IAAM,SAAU0B,EAAQ2F,EAAKhF,GAChE,MAAO0U,GAAGlK,EAAEnL,EAAQ2F,EAAK2P,EAAW,EAAG3U,KACrC,SAAUX,EAAQ2F,EAAKhF,GAEzB,MADAX,GAAO2F,GAAOhF,EACPX,IAML,SAAU/B,EAAQD,EAASM,GAE/B,GAAIiX,GAAWjX,EAAoB,IAC/BkX,EAAiBlX,EAAoB,IACrCmX,EAAcnX,EAAoB,IAClC+W,EAAKxS,OAAO6S,cAEhB1X,GAAQmN,EAAI7M,EAAoB,IAAMuE,OAAO6S,eAAiB,SAAwBxE,EAAGqC,EAAGoC,GAI1F,GAHAJ,EAASrE,GACTqC,EAAIkC,EAAYlC,GAAG,GACnBgC,EAASI,GACLH,EAAgB,IAClB,MAAOH,GAAGnE,EAAGqC,EAAGoC,GAChB,MAAOtO,IACT,GAAI,OAASsO,IAAc,OAASA,GAAY,KAAMhT,WAAU,2BAEhE,OADI,SAAWgT,KAAYzE,EAAEqC,GAAKoC,EAAWhV,OACtCuQ,IAML,SAAUjT,EAAQD,EAASM,GAE/B,GAAIsX,GAAWtX,EAAoB,GACnCL,GAAOD,QAAU,SAAUuT,GACzB,IAAKqE,EAASrE,GAAK,KAAM5O,WAAU4O,EAAK,qBACxC,OAAOA,KAML,SAAUtT,EAAQD,GAEtBC,EAAOD,QAAU,SAAUuT,GACzB,MAAqB,gBAAPA,GAAyB,OAAPA,EAA4B,kBAAPA,KAMnD,SAAUtT,EAAQD,EAASM,GAE/BL,EAAOD,SAAWM,EAAoB,MAAQA,EAAoB,IAAI,WACpE,MAA2G,IAApGuE,OAAO6S,eAAepX,EAAoB,IAAI,OAAQ,KAAOuX,IAAK,WAAc,MAAO,MAAQjU,KAMpG,SAAU3D,EAAQD,EAASM,GAG/BL,EAAOD,SAAWM,EAAoB,IAAI,WACxC,MAA+E,IAAxEuE,OAAO6S,kBAAmB,KAAOG,IAAK,WAAc,MAAO,MAAQjU,KAMxE,SAAU3D,EAAQD,GAEtBC,EAAOD,QAAU,SAAUmD,GACzB,IACE,QAASA,IACT,MAAOkG,GACP,OAAO,KAOP,SAAUpJ,EAAQD,EAASM,GAE/B,GAAIsX,GAAWtX,EAAoB,IAC/BgQ,EAAWhQ,EAAoB,IAAIgQ,SAEnCwH,EAAKF,EAAStH,IAAasH,EAAStH,EAASC,cACjDtQ,GAAOD,QAAU,SAAUuT,GACzB,MAAOuE,GAAKxH,EAASC,cAAcgD,QAMjC,SAAUtT,EAAQD,EAASM,GAG/B,GAAIsX,GAAWtX,EAAoB,GAGnCL,GAAOD,QAAU,SAAUuT,EAAI2C,GAC7B,IAAK0B,EAASrE,GAAK,MAAOA,EAC1B,IAAI1L,GAAIkQ,CACR,IAAI7B,GAAkC,mBAArBrO,EAAK0L,EAAGzI,YAA4B8M,EAASG,EAAMlQ,EAAGlH,KAAK4S,IAAM,MAAOwE,EACzF,IAAgC,mBAApBlQ,EAAK0L,EAAG/N,WAA2BoS,EAASG,EAAMlQ,EAAGlH,KAAK4S,IAAM,MAAOwE,EACnF,KAAK7B,GAAkC,mBAArBrO,EAAK0L,EAAGzI,YAA4B8M,EAASG,EAAMlQ,EAAGlH,KAAK4S,IAAM,MAAOwE,EAC1F,MAAMpT,WAAU,6CAMd,SAAU1E,EAAQD,GAEtBC,EAAOD,QAAU,SAAUgY,EAAQrV,GACjC,OACEsV,aAAuB,EAATD,GACdE,eAAyB,EAATF,GAChBG,WAAqB,EAATH,GACZrV,MAAOA,KAOP,SAAU1C,EAAQD,EAASM,GAE/BL,EAAOD,QAAUM,EAAoB,KAKjC,SAAUL,EAAQD,GAEtB,GAAI0D,MAAoBA,cACxBzD,GAAOD,QAAU,SAAUuT,EAAI5L,GAC7B,MAAOjE,GAAe/C,KAAK4S,EAAI5L,KAM7B,SAAU1H,EAAQD,EAASM,GAG/B,GAAI8X,GAAS9X,EAAoB,IAC7B+X,EAAa/X,EAAoB,IACjCyT,EAAiBzT,EAAoB,IACrCqU,IAGJrU,GAAoB,IAAIqU,EAAmBrU,EAAoB,IAAI,YAAa,WAAc,MAAOF,QAErGH,EAAOD,QAAU,SAAUsU,EAAahC,EAAMT,GAC5CyC,EAAY7B,UAAY2F,EAAOzD,GAAqB9C,KAAMwG,EAAW,EAAGxG,KACxEkC,EAAeO,EAAahC,EAAO,eAMjC,SAAUrS,EAAQD,EAASM,GAG/B,GAAIiX,GAAWjX,EAAoB,IAC/BgY,EAAMhY,EAAoB,IAC1BiY,EAAcjY,EAAoB,IAClCkY,EAAWlY,EAAoB,IAAI,YACnCmY,EAAQ,aAIRC,EAAa,WAEf,GAIIC,GAJAC,EAAStY,EAAoB,IAAI,UACjC6D,EAAIoU,EAAYvU,MAcpB,KAVA4U,EAAOnM,MAAMoM,QAAU,OACvBvY,EAAoB,IAAIwQ,YAAY8H,GACpCA,EAAOE,IAAM,cAGbH,EAAiBC,EAAOG,cAAczI,SACtCqI,EAAeK,OACfL,EAAeM,MAAMC,uCACrBP,EAAeQ,QACfT,EAAaC,EAAenD,EACrBrR,WAAYuU,GAAoB,UAAEH,EAAYpU,GACrD,OAAOuU,KAGTzY,GAAOD,QAAU6E,OAAOuT,QAAU,SAAgBlF,EAAGkG,GACnD,GAAIjP,EAQJ,OAPU,QAAN+I,GACFuF,EAAe,UAAIlB,EAASrE,GAC5B/I,EAAS,GAAIsO,GACbA,EAAe,UAAI,KAEnBtO,EAAOqO,GAAYtF,GACd/I,EAASuO,QACMzU,KAAfmV,EAA2BjP,EAASmO,EAAInO,EAAQiP,KAMrD,SAAUnZ,EAAQD,EAASM,GAE/B,GAAI+W,GAAK/W,EAAoB,IACzBiX,EAAWjX,EAAoB,IAC/B+Y,EAAU/Y,EAAoB,GAElCL,GAAOD,QAAUM,EAAoB,IAAMuE,OAAOyU,iBAAmB,SAA0BpG,EAAGkG,GAChG7B,EAASrE,EAKT,KAJA,GAGIqC,GAHApB,EAAOkF,EAAQD,GACfpV,EAASmQ,EAAKnQ,OACdG,EAAI,EAEDH,EAASG,GAAGkT,EAAGlK,EAAE+F,EAAGqC,EAAIpB,EAAKhQ,KAAMiV,EAAW7D,GACrD,OAAOrC,KAML,SAAUjT,EAAQD,EAASM,GAG/B,GAAIiZ,GAAQjZ,EAAoB,IAC5BiY,EAAcjY,EAAoB,GAEtCL,GAAOD,QAAU6E,OAAOsP,MAAQ,SAAcjB,GAC5C,MAAOqG,GAAMrG,EAAGqF,KAMd,SAAUtY,EAAQD,EAASM,GAE/B,GAAIuT,GAAMvT,EAAoB,IAC1BsS,EAAYtS,EAAoB,GAChCkZ,EAAelZ,EAAoB,KAAI,GACvCkY,EAAWlY,EAAoB,IAAI,WAEvCL,GAAOD,QAAU,SAAUgC,EAAQyX,GACjC,GAGI9R,GAHAuL,EAAIN,EAAU5Q,GACdmC,EAAI,EACJgG,IAEJ,KAAKxC,IAAOuL,GAAOvL,GAAO6Q,GAAU3E,EAAIX,EAAGvL,IAAQwC,EAAOlF,KAAK0C,EAE/D,MAAO8R,EAAMzV,OAASG,GAAO0P,EAAIX,EAAGvL,EAAM8R,EAAMtV,SAC7CqV,EAAarP,EAAQxC,IAAQwC,EAAOlF,KAAK0C,GAE5C,OAAOwC,KAML,SAAUlK,EAAQD,EAASM,GAI/B,GAAIsS,GAAYtS,EAAoB,GAChCoZ,EAAWpZ,EAAoB,IAC/BqZ,EAAkBrZ,EAAoB,GAC1CL,GAAOD,QAAU,SAAU4Z,GACzB,MAAO,UAAUC,EAAOC,EAAIC,GAC1B,GAGIpX,GAHAuQ,EAAIN,EAAUiH,GACd7V,EAAS0V,EAASxG,EAAElP,QACpBmP,EAAQwG,EAAgBI,EAAW/V,EAIvC,IAAI4V,GAAeE,GAAMA,GAAI,KAAO9V,EAASmP,GAG3C,IAFAxQ,EAAQuQ,EAAEC,OAEGxQ,EAAO,OAAO,MAEtB,MAAMqB,EAASmP,EAAOA,IAAS,IAAIyG,GAAezG,IAASD,KAC5DA,EAAEC,KAAW2G,EAAI,MAAOF,IAAezG,GAAS,CACpD,QAAQyG,IAAgB,KAO1B,SAAU3Z,EAAQD,EAASM,GAG/B,GAAI0Z,GAAY1Z,EAAoB,IAChCkC,EAAMK,KAAKL,GACfvC,GAAOD,QAAU,SAAUuT,GACzB,MAAOA,GAAK,EAAI/Q,EAAIwX,EAAUzG,GAAK,kBAAoB,IAMrD,SAAUtT,EAAQD,GAGtB,GAAIia,GAAOpX,KAAKoX,KACZ/M,EAAQrK,KAAKqK,KACjBjN,GAAOD,QAAU,SAAUuT,GACzB,MAAOnQ,OAAMmQ,GAAMA,GAAM,GAAKA,EAAK,EAAIrG,EAAQ+M,GAAM1G,KAMnD,SAAUtT,EAAQD,EAASM,GAE/B,GAAI0Z,GAAY1Z,EAAoB,IAChCmC,EAAMI,KAAKJ,IACXD,EAAMK,KAAKL,GACfvC,GAAOD,QAAU,SAAUmT,EAAOnP,GAEhC,MADAmP,GAAQ6G,EAAU7G,GACXA,EAAQ,EAAI1Q,EAAI0Q,EAAQnP,EAAQ,GAAKxB,EAAI2Q,EAAOnP,KAMrD,SAAU/D,EAAQD,EAASM,GAE/B,GAAI4Z,GAAS5Z,EAAoB,IAAI,QACjC6Z,EAAM7Z,EAAoB,GAC9BL,GAAOD,QAAU,SAAU2H,GACzB,MAAOuS,GAAOvS,KAASuS,EAAOvS,GAAOwS,EAAIxS,MAMvC,SAAU1H,EAAQD,EAASM,GAE/B,GAAI2R,GAAS3R,EAAoB,IAE7B8Z,EAAQnI,EADC,wBACkBA,EADlB,yBAEbhS,GAAOD,QAAU,SAAU2H,GACzB,MAAOyS,GAAMzS,KAASyS,EAAMzS,SAM1B,SAAU1H,EAAQD,GAEtB,GAAIS,GAAK,EACL4Z,EAAKxX,KAAKyX,QACdra,GAAOD,QAAU,SAAU2H,GACzB,MAAO,UAAUV,WAAehD,KAAR0D,EAAoB,GAAKA,EAAK,QAASlH,EAAK4Z,GAAIvP,SAAS,OAM/E,SAAU7K,EAAQD,GAGtBC,EAAOD,QAAU,gGAEf+G,MAAM,MAKJ,SAAU9G,EAAQD,EAASM,GAE/B,GAAIgQ,GAAWhQ,EAAoB,IAAIgQ,QACvCrQ,GAAOD,QAAUsQ,GAAYA,EAASiK,iBAKlC,SAAUta,EAAQD,EAASM,GAE/B,GAAIka,GAAMla,EAAoB,IAAI6M,EAC9B0G,EAAMvT,EAAoB,IAC1BuU,EAAMvU,EAAoB,IAAI,cAElCL,GAAOD,QAAU,SAAUuT,EAAIkH,EAAKC,GAC9BnH,IAAOM,EAAIN,EAAKmH,EAAOnH,EAAKA,EAAGd,UAAWoC,IAAM2F,EAAIjH,EAAIsB,GAAOqD,cAAc,EAAMvV,MAAO8X,MAM5F,SAAUxa,EAAQD,EAASM,GAE/B,GAAI8Z,GAAQ9Z,EAAoB,IAAI,OAChC6Z,EAAM7Z,EAAoB,IAC1Bqa,EAASra,EAAoB,IAAIqa,OACjCC,EAA8B,kBAAVD,IAET1a,EAAOD,QAAU,SAAUqV,GACxC,MAAO+E,GAAM/E,KAAU+E,EAAM/E,GAC3BuF,GAAcD,EAAOtF,KAAUuF,EAAaD,EAASR,GAAK,UAAY9E,MAGjE+E,MAAQA,GAKb,SAAUna,EAAQD,EAASM,GAG/B,GAAIuT,GAAMvT,EAAoB,IAC1Bua,EAAWva,EAAoB,IAC/BkY,EAAWlY,EAAoB,IAAI,YACnCwa,EAAcjW,OAAO4N,SAEzBxS,GAAOD,QAAU6E,OAAOmP,gBAAkB,SAAUd,GAElD,MADAA,GAAI2H,EAAS3H,GACTW,EAAIX,EAAGsF,GAAkBtF,EAAEsF,GACH,kBAAjBtF,GAAEtO,aAA6BsO,YAAaA,GAAEtO,YAChDsO,EAAEtO,YAAY6N,UACdS,YAAarO,QAASiW,EAAc,OAM3C,SAAU7a,EAAQD,EAASM,GAG/B,GAAIgT,GAAUhT,EAAoB,GAClCL,GAAOD,QAAU,SAAUuT,GACzB,MAAO1O,QAAOyO,EAAQC,MAMpB,SAAUtT,EAAQD,EAASM,GAG/B,GAAIya,GAAMza,EAAoB,KAAI,EAGlCA,GAAoB,IAAIyC,OAAQ,SAAU,SAAU8P,GAClDzS,KAAK2S,GAAKhQ,OAAO8P,GACjBzS,KAAK4S,GAAK,GAET,WACD,GAEIgI,GAFA9H,EAAI9S,KAAK2S,GACTI,EAAQ/S,KAAK4S,EAEjB,OAAIG,IAASD,EAAElP,QAAiBrB,UAAOsB,GAAW6N,MAAM,IACxDkJ,EAAQD,EAAI7H,EAAGC,GACf/S,KAAK4S,IAAMgI,EAAMhX,QACRrB,MAAOqY,EAAOlJ,MAAM,OAM3B,SAAU7R,EAAQD,EAASM,GAE/B,GAAI0Z,GAAY1Z,EAAoB,IAChCgT,EAAUhT,EAAoB,GAGlCL,GAAOD,QAAU,SAAUib,GACzB,MAAO,UAAU7D,EAAM8D,GACrB,GAGItX,GAAGC,EAHH2H,EAAIzI,OAAOuQ,EAAQ8D,IACnBjT,EAAI6V,EAAUkB,GACdC,EAAI3P,EAAExH,MAEV,OAAIG,GAAI,GAAKA,GAAKgX,EAAUF,EAAY,OAAKhX,IAC7CL,EAAI4H,EAAE4P,WAAWjX,GACVP,EAAI,OAAUA,EAAI,OAAUO,EAAI,IAAMgX,IAAMtX,EAAI2H,EAAE4P,WAAWjX,EAAI,IAAM,OAAUN,EAAI,MACxFoX,EAAYzP,EAAE6P,OAAOlX,GAAKP,EAC1BqX,EAAYzP,EAAET,MAAM5G,EAAGA,EAAI,GAA2BN,EAAI,OAAzBD,EAAI,OAAU,IAAqB,UAOxE,SAAU3D,EAAQD,EAASM,GAE/B,GAAIiX,GAAWjX,EAAoB,IAC/BuX,EAAMvX,EAAoB,GAC9BL,GAAOD,QAAUM,EAAoB,IAAIgb,YAAc,SAAU/H,GAC/D,GAAIgI,GAAS1D,EAAItE,EACjB,IAAqB,kBAAVgI,GAAsB,KAAM5W,WAAU4O,EAAK,oBACtD,OAAOgE,GAASgE,EAAO5a,KAAK4S,MAM1B,SAAUtT,EAAQD,EAASM,GAE/B,GAAIkb,GAAUlb,EAAoB,IAC9B2T,EAAW3T,EAAoB,IAAI,YACnC6R,EAAY7R,EAAoB,EACpCL,GAAOD,QAAUM,EAAoB,IAAImb,kBAAoB,SAAUlI,GACrE,OAAUtP,IAANsP,EAAiB,MAAOA,GAAGU,IAC1BV,EAAG,eACHpB,EAAUqJ,EAAQjI,MAMrB,SAAUtT,EAAQD,EAASM,GAG/B,GAAIkT,GAAMlT,EAAoB,IAC1BuU,EAAMvU,EAAoB,IAAI,eAE9Bob,EAAkD,aAA5ClI,EAAI,WAAc,MAAOzP,eAG/B4X,EAAS,SAAUpI,EAAI5L,GACzB,IACE,MAAO4L,GAAG5L,GACV,MAAO0B,KAGXpJ,GAAOD,QAAU,SAAUuT,GACzB,GAAIL,GAAG0I,EAAGvF,CACV,YAAcpS,KAAPsP,EAAmB,YAAqB,OAAPA,EAAc,OAEN,iBAApCqI,EAAID,EAAOzI,EAAIrO,OAAO0O,GAAKsB,IAAoB+G,EAEvDF,EAAMlI,EAAIN,GAEM,WAAfmD,EAAI7C,EAAIN,KAAsC,kBAAZA,GAAE2I,OAAuB,YAAcxF,IAM5E,SAAUpW,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,IAAKa,YAAY,IAI/D,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,GACpB,IAAIwb,GAAUxb,EAAoB,IAAIuE,MACtC5E,GAAOD,QAAU,SAAgBuV,EAAGwG,GAClC,MAAOD,GAAQ1D,OAAO7C,EAAGwG,KAMvB,SAAU9b,EAAQD,EAASM,GAE/B,GAAIqT,GAAUrT,EAAoB,GAElCqT,GAAQA,EAAQuC,EAAG,UAAYkC,OAAQ9X,EAAoB,OAKvD,SAAUL,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,IAAKa,YAAY,IAI/D,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,IACpBL,EAAOD,QAAUM,EAAoB,IAAIuE,OAAOsP,MAK5C,SAAUlU,EAAQD,EAASM,GAG/B,GAAIua,GAAWva,EAAoB,IAC/BiZ,EAAQjZ,EAAoB,GAEhCA,GAAoB,IAAI,OAAQ,WAC9B,MAAO,UAAciT,GACnB,MAAOgG,GAAMsB,EAAStH,QAOtB,SAAUtT,EAAQD,EAASM,GAG/B,GAAIqT,GAAUrT,EAAoB,IAC9BmV,EAAOnV,EAAoB,IAC3B0b,EAAQ1b,EAAoB,GAChCL,GAAOD,QAAU,SAAUic,EAAK9Y,GAC9B,GAAI0E,IAAM4N,EAAK5Q,YAAcoX,IAAQpX,OAAOoX,GACxCC,IACJA,GAAID,GAAO9Y,EAAK0E,GAChB8L,EAAQA,EAAQuC,EAAIvC,EAAQ6B,EAAIwG,EAAM,WAAcnU,EAAG,KAAQ,SAAUqU,KAMvE,SAAUjc,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAZvFlB,EAAQmB,YAAa,CAErB,IAAIyQ,GAAYtR,EAAoB,IAEhC6b,EAAalb,EAAuB2Q,GAEpCwK,EAAU9b,EAAoB,IAE9B+b,EAAWpb,EAAuBmb,GAElCE,EAAsC,kBAArBD,GAASjb,SAAwD,gBAAvB+a,GAAW/a,QAAuB,SAAUF,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAmC,kBAArBmb,GAASjb,SAA0BF,EAAI0D,cAAgByX,EAASjb,SAAWF,IAAQmb,EAASjb,QAAQqR,UAAY,eAAkBvR,GAIjTlB,GAAQoB,QAAsC,kBAArBib,GAASjb,SAA0D,WAAhCkb,EAAQH,EAAW/a,SAAwB,SAAUF,GAC/G,WAAsB,KAARA,EAAsB,YAAcob,EAAQpb,IACxD,SAAUA,GACZ,MAAOA,IAAmC,kBAArBmb,GAASjb,SAA0BF,EAAI0D,cAAgByX,EAASjb,SAAWF,IAAQmb,EAASjb,QAAQqR,UAAY,aAA0B,KAARvR,EAAsB,YAAcob,EAAQpb,KAKjM,SAAUjB,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,IAAKa,YAAY,IAI/D,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,IACpBA,EAAoB,GACpBL,EAAOD,QAAUM,EAAoB,IAAI6M,EAAE,aAKvC,SAAUlN,EAAQD,EAASM,GAE/BN,EAAQmN,EAAI7M,EAAoB,KAK5B,SAAUL,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,IAAKa,YAAY,IAI/D,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBA,EAAoB,IACpBL,EAAOD,QAAUM,EAAoB,IAAIqa,QAKrC,SAAU1a,EAAQD,EAASM,GAI/B,GAAI2R,GAAS3R,EAAoB,IAC7BuT,EAAMvT,EAAoB,IAC1Bic,EAAcjc,EAAoB,IAClCqT,EAAUrT,EAAoB,IAC9BsT,EAAWtT,EAAoB,IAC/Bkc,EAAOlc,EAAoB,IAAI2b,IAC/BQ,EAASnc,EAAoB,IAC7B4Z,EAAS5Z,EAAoB,IAC7ByT,EAAiBzT,EAAoB,IACrC6Z,EAAM7Z,EAAoB,IAC1Boc,EAAMpc,EAAoB,IAC1Bqc,EAASrc,EAAoB,IAC7Bsc,EAAYtc,EAAoB,IAChCuc,EAAQvc,EAAoB,IAC5Bwc,EAAWxc,EAAoB,IAC/BkE,EAAUlE,EAAoB,IAC9BiX,EAAWjX,EAAoB,IAC/BsS,EAAYtS,EAAoB,GAChCmX,EAAcnX,EAAoB,IAClCgX,EAAahX,EAAoB,IACjCiB,EAAUjB,EAAoB,IAC9Byc,EAAUzc,EAAoB,IAC9B0c,EAAQ1c,EAAoB,IAC5B2c,EAAM3c,EAAoB,IAC1BiZ,EAAQjZ,EAAoB,IAC5B4c,EAAOF,EAAM7P,EACbkK,EAAK4F,EAAI9P,EACTgQ,EAAOJ,EAAQ5P,EACfiQ,EAAUnL,EAAO0I,OACjB0C,EAAQpL,EAAOqL,KACfC,EAAaF,GAASA,EAAMG,UAE5BC,EAASf,EAAI,WACbgB,EAAehB,EAAI,eACnBiB,KAAYlK,qBACZmK,EAAiB1D,EAAO,mBACxB2D,EAAa3D,EAAO,WACpB4D,EAAY5D,EAAO,cACnBY,EAAcjW,OAAgB,UAC9BkZ,EAA+B,kBAAXX,GACpBY,EAAU/L,EAAO+L,QAEjBC,GAAUD,IAAYA,EAAiB,YAAMA,EAAiB,UAAEE,UAGhEC,EAAgB5B,GAAeE,EAAO,WACxC,MAES,IAFFlb,EAAQ8V,KAAO,KACpBQ,IAAK,WAAc,MAAOR,GAAGjX,KAAM,KAAOuC,MAAO,IAAKiB,MACpDA,IACD,SAAU2P,EAAI5L,EAAKoU,GACtB,GAAIqC,GAAYlB,EAAKpC,EAAanT,EAC9ByW,UAAkBtD,GAAYnT,GAClC0P,EAAG9D,EAAI5L,EAAKoU,GACRqC,GAAa7K,IAAOuH,GAAazD,EAAGyD,EAAanT,EAAKyW,IACxD/G,EAEAgH,EAAO,SAAU5D,GACnB,GAAI6D,GAAMT,EAAWpD,GAAOlZ,EAAQ6b,EAAiB,UAErD,OADAkB,GAAIrL,GAAKwH,EACF6D,GAGLC,EAAWR,GAAyC,gBAApBX,GAAQoB,SAAuB,SAAUjL,GAC3E,MAAoB,gBAANA,IACZ,SAAUA,GACZ,MAAOA,aAAc6J,IAGnBqB,EAAkB,SAAwBlL,EAAI5L,EAAKoU,GAKrD,MAJIxI,KAAOuH,GAAa2D,EAAgBX,EAAWnW,EAAKoU,GACxDxE,EAAShE,GACT5L,EAAM8P,EAAY9P,GAAK,GACvB4P,EAASwE,GACLlI,EAAIgK,EAAYlW,IACboU,EAAE9D,YAIDpE,EAAIN,EAAIkK,IAAWlK,EAAGkK,GAAQ9V,KAAM4L,EAAGkK,GAAQ9V,IAAO,GAC1DoU,EAAIxa,EAAQwa,GAAK9D,WAAYX,EAAW,GAAG,OAJtCzD,EAAIN,EAAIkK,IAASpG,EAAG9D,EAAIkK,EAAQnG,EAAW,OAChD/D,EAAGkK,GAAQ9V,IAAO,GAIXwW,EAAc5K,EAAI5L,EAAKoU,IACzB1E,EAAG9D,EAAI5L,EAAKoU,IAEnB2C,EAAoB,SAA0BnL,EAAIgC,GACpDgC,EAAShE,EAKT,KAJA,GAGI5L,GAHAwM,EAAO2I,EAASvH,EAAI3C,EAAU2C,IAC9BpR,EAAI,EACJgX,EAAIhH,EAAKnQ,OAENmX,EAAIhX,GAAGsa,EAAgBlL,EAAI5L,EAAMwM,EAAKhQ,KAAMoR,EAAE5N,GACrD,OAAO4L,IAELoL,EAAU,SAAgBpL,EAAIgC,GAChC,WAAatR,KAANsR,EAAkBhU,EAAQgS,GAAMmL,EAAkBnd,EAAQgS,GAAKgC,IAEpEqJ,EAAwB,SAA8BjX,GACxD,GAAIkX,GAAIlB,EAAOhd,KAAKP,KAAMuH,EAAM8P,EAAY9P,GAAK,GACjD,SAAIvH,OAAS0a,GAAejH,EAAIgK,EAAYlW,KAASkM,EAAIiK,EAAWnW,QAC7DkX,IAAMhL,EAAIzT,KAAMuH,KAASkM,EAAIgK,EAAYlW,IAAQkM,EAAIzT,KAAMqd,IAAWrd,KAAKqd,GAAQ9V,KAAOkX,IAE/FC,EAA4B,SAAkCvL,EAAI5L,GAGpE,GAFA4L,EAAKX,EAAUW,GACf5L,EAAM8P,EAAY9P,GAAK,GACnB4L,IAAOuH,IAAejH,EAAIgK,EAAYlW,IAASkM,EAAIiK,EAAWnW,GAAlE,CACA,GAAIoU,GAAImB,EAAK3J,EAAI5L,EAEjB,QADIoU,IAAKlI,EAAIgK,EAAYlW,IAAUkM,EAAIN,EAAIkK,IAAWlK,EAAGkK,GAAQ9V,KAAOoU,EAAE9D,YAAa,GAChF8D,IAELgD,EAAuB,SAA6BxL,GAKtD,IAJA,GAGI5L,GAHA8R,EAAQ0D,EAAKvK,EAAUW,IACvBpJ,KACAhG,EAAI,EAEDsV,EAAMzV,OAASG,GACf0P,EAAIgK,EAAYlW,EAAM8R,EAAMtV,OAASwD,GAAO8V,GAAU9V,GAAO6U,GAAMrS,EAAOlF,KAAK0C,EACpF,OAAOwC,IAEP6U,EAAyB,SAA+BzL,GAM1D,IALA,GAII5L,GAJAsX,EAAQ1L,IAAOuH,EACfrB,EAAQ0D,EAAK8B,EAAQnB,EAAYlL,EAAUW,IAC3CpJ,KACAhG,EAAI,EAEDsV,EAAMzV,OAASG,IAChB0P,EAAIgK,EAAYlW,EAAM8R,EAAMtV,OAAU8a,IAAQpL,EAAIiH,EAAanT,IAAcwC,EAAOlF,KAAK4Y,EAAWlW,GACxG,OAAOwC,GAIN4T,KACHX,EAAU,WACR,GAAIhd,eAAgBgd,GAAS,KAAMzY,WAAU,+BAC7C,IAAI8V,GAAMN,EAAIpW,UAAUC,OAAS,EAAID,UAAU,OAAKE,IAChDib,EAAO,SAAUvc,GACfvC,OAAS0a,GAAaoE,EAAKve,KAAKmd,EAAWnb,GAC3CkR,EAAIzT,KAAMqd,IAAW5J,EAAIzT,KAAKqd,GAAShD,KAAMra,KAAKqd,GAAQhD,IAAO,GACrE0D,EAAc/d,KAAMqa,EAAKnD,EAAW,EAAG3U,IAGzC,OADI4Z,IAAe0B,GAAQE,EAAcrD,EAAaL,GAAOvC,cAAc,EAAMiH,IAAKD,IAC/Eb,EAAK5D,IAEd7G,EAASwJ,EAAiB,UAAG,WAAY,WACvC,MAAOhd,MAAK6S,KAGd+J,EAAM7P,EAAI2R,EACV7B,EAAI9P,EAAIsR,EACRne,EAAoB,IAAI6M,EAAI4P,EAAQ5P,EAAI4R,EACxCze,EAAoB,IAAI6M,EAAIyR,EAC5Bte,EAAoB,IAAI6M,EAAI6R,EAExBzC,IAAgBjc,EAAoB,KACtCsT,EAASkH,EAAa,uBAAwB8D,GAAuB,GAGvEjC,EAAOxP,EAAI,SAAUkI,GACnB,MAAOgJ,GAAK3B,EAAIrH,MAIpB1B,EAAQA,EAAQqC,EAAIrC,EAAQ4C,EAAI5C,EAAQ6B,GAAKuI,GAAcpD,OAAQyC,GAEnE,KAAK,GAAIgC,IAAa,iHAGpBrY,MAAM,KAAMkH,GAAI,EAAGmR,GAAWpb,OAASiK,IAAGyO,EAAI0C,GAAWnR,MAE3D,KAAK,GAAIoR,IAAmB9F,EAAMmD,EAAItC,OAAQpM,GAAI,EAAGqR,GAAiBrb,OAASgK,IAAI4O,EAAUyC,GAAiBrR,MAE9G2F,GAAQA,EAAQuC,EAAIvC,EAAQ6B,GAAKuI,EAAY,UAE3CuB,IAAO,SAAU3X,GACf,MAAOkM,GAAI+J,EAAgBjW,GAAO,IAC9BiW,EAAejW,GACfiW,EAAejW,GAAOyV,EAAQzV,IAGpC4X,OAAQ,SAAgB5X,GACtB,GAAI4W,EAAS5W,GAAM,MAAOkV,GAAMe,EAAgBjW,EAChD,MAAMhD,WAAUgD,EAAM,sBAExB6X,UAAW,WAAcvB,GAAS,GAClCwB,UAAW,WAAcxB,GAAS,KAGpCtK,EAAQA,EAAQuC,EAAIvC,EAAQ6B,GAAKuI,EAAY,UAE3C3F,OAAQuG,EAERjH,eAAgB+G,EAEhBnF,iBAAkBoF,EAElBgB,yBAA0BZ,EAE1Ba,oBAAqBZ,EAErBa,sBAAuBZ,IAIzB3B,GAAS1J,EAAQA,EAAQuC,EAAIvC,EAAQ6B,IAAMuI,GAActB,EAAO,WAC9D,GAAIvG,GAAIkH,GAIR,OAA0B,UAAnBG,GAAYrH,KAA2C,MAAxBqH,GAAa3Z,EAAGsS,KAAyC,MAAzBqH,EAAW1Y,OAAOqR,OACrF,QACHsH,UAAW,SAAmBjK,GAC5B,OAAWtP,KAAPsP,IAAoBgL,EAAShL,GAAjC,CAIA,IAHA,GAEIsM,GAAUC,EAFVC,GAAQxM,GACRpP,EAAI,EAEDJ,UAAUC,OAASG,GAAG4b,EAAK9a,KAAKlB,UAAUI,KAQjD,OAPA0b,GAAWE,EAAK,GACO,kBAAZF,KAAwBC,EAAYD,IAC3CC,GAActb,EAAQqb,KAAWA,EAAW,SAAUlY,EAAKhF,GAE7D,GADImd,IAAWnd,EAAQmd,EAAUnf,KAAKP,KAAMuH,EAAKhF,KAC5C4b,EAAS5b,GAAQ,MAAOA,KAE/Bod,EAAK,GAAKF,EACHtC,EAAW7G,MAAM2G,EAAO0C,OAKnC3C,EAAiB,UAAEM,IAAiBpd,EAAoB,IAAI8c,EAAiB,UAAGM,EAAcN,EAAiB,UAAE5X,SAEjHuO,EAAeqJ,EAAS,UAExBrJ,EAAelR,KAAM,QAAQ,GAE7BkR,EAAe9B,EAAOqL,KAAM,QAAQ,IAKhC,SAAUrd,EAAQD,EAASM,GAE/B,GAAIkc,GAAOlc,EAAoB,IAAI,QAC/BsX,EAAWtX,EAAoB,IAC/BuT,EAAMvT,EAAoB,IAC1B0f,EAAU1f,EAAoB,IAAI6M,EAClC1M,EAAK,EACLwf,EAAepb,OAAOob,cAAgB,WACxC,OAAO,GAELC,GAAU5f,EAAoB,IAAI,WACpC,MAAO2f,GAAapb,OAAOsb,yBAEzBC,EAAU,SAAU7M,GACtByM,EAAQzM,EAAIiJ,GAAQ7Z,OAClBwB,EAAG,OAAQ1D,EACX4f,SAGAC,EAAU,SAAU/M,EAAI6E,GAE1B,IAAKR,EAASrE,GAAK,MAAoB,gBAANA,GAAiBA,GAAmB,gBAANA,GAAiB,IAAM,KAAOA,CAC7F,KAAKM,EAAIN,EAAIiJ,GAAO,CAElB,IAAKyD,EAAa1M,GAAK,MAAO,GAE9B,KAAK6E,EAAQ,MAAO,GAEpBgI,GAAQ7M,GAER,MAAOA,GAAGiJ,GAAMrY,GAEhBoc,EAAU,SAAUhN,EAAI6E,GAC1B,IAAKvE,EAAIN,EAAIiJ,GAAO,CAElB,IAAKyD,EAAa1M,GAAK,OAAO,CAE9B,KAAK6E,EAAQ,OAAO,CAEpBgI,GAAQ7M,GAER,MAAOA,GAAGiJ,GAAM6D,GAGhBG,EAAW,SAAUjN,GAEvB,MADI2M,IAAUO,EAAKC,MAAQT,EAAa1M,KAAQM,EAAIN,EAAIiJ,IAAO4D,EAAQ7M,GAChEA,GAELkN,EAAOxgB,EAAOD,SAChBic,IAAKO,EACLkE,MAAM,EACNJ,QAASA,EACTC,QAASA,EACTC,SAAUA,IAMR,SAAUvgB,EAAQD,EAASM,GAE/B,GAAI2R,GAAS3R,EAAoB,IAC7BmV,EAAOnV,EAAoB,IAC3BoT,EAAUpT,EAAoB,IAC9Bqc,EAASrc,EAAoB,IAC7BoX,EAAiBpX,EAAoB,IAAI6M,CAC7ClN,GAAOD,QAAU,SAAUqV,GACzB,GAAI+H,GAAU3H,EAAKkF,SAAWlF,EAAKkF,OAASjH,KAAezB,EAAO0I,WAC5C,MAAlBtF,EAAKgG,OAAO,IAAehG,IAAQ+H,IAAU1F,EAAe0F,EAAS/H,GAAQ1S,MAAOga,EAAOxP,EAAEkI,OAM/F,SAAUpV,EAAQD,EAASM,GAE/B,GAAI+Y,GAAU/Y,EAAoB,IAC9BsS,EAAYtS,EAAoB,EACpCL,GAAOD,QAAU,SAAUgC,EAAQ8X,GAMjC,IALA,GAIInS,GAJAuL,EAAIN,EAAU5Q,GACdmS,EAAOkF,EAAQnG,GACflP,EAASmQ,EAAKnQ,OACdmP,EAAQ,EAELnP,EAASmP,GAAO,GAAID,EAAEvL,EAAMwM,EAAKhB,QAAc2G,EAAI,MAAOnS,KAM/D,SAAU1H,EAAQD,EAASM,GAG/B,GAAI+Y,GAAU/Y,EAAoB,IAC9BqgB,EAAOrgB,EAAoB,IAC3BsgB,EAAMtgB,EAAoB,GAC9BL,GAAOD,QAAU,SAAUuT,GACzB,GAAIpJ,GAASkP,EAAQ9F,GACjBsN,EAAaF,EAAKxT,CACtB,IAAI0T,EAKF,IAJA,GAGIlZ,GAHAmZ,EAAUD,EAAWtN,GACrBoK,EAASiD,EAAIzT,EACbhJ,EAAI,EAED2c,EAAQ9c,OAASG,GAAOwZ,EAAOhd,KAAK4S,EAAI5L,EAAMmZ,EAAQ3c,OAAOgG,EAAOlF,KAAK0C,EAChF,OAAOwC,KAMP,SAAUlK,EAAQD,GAEtBA,EAAQmN,EAAItI,OAAO+a,uBAKf,SAAU3f,EAAQD,GAEtBA,EAAQmN,KAAOsG,sBAKX,SAAUxT,EAAQD,EAASM,GAG/B,GAAIkT,GAAMlT,EAAoB,GAC9BL,GAAOD,QAAUuE,MAAMC,SAAW,SAAiBuc,GACjD,MAAmB,SAAZvN,EAAIuN,KAMT,SAAU9gB,EAAQD,EAASM,GAG/B,GAAIsS,GAAYtS,EAAoB,GAChC6c,EAAO7c,EAAoB,IAAI6M,EAC/BrC,KAAcA,SAEdkW,EAA+B,gBAAVpY,SAAsBA,QAAU/D,OAAO8a,oBAC5D9a,OAAO8a,oBAAoB/W,WAE3BqY,EAAiB,SAAU1N,GAC7B,IACE,MAAO4J,GAAK5J,GACZ,MAAOlK,GACP,MAAO2X,GAAYjW,SAIvB9K,GAAOD,QAAQmN,EAAI,SAA6BoG,GAC9C,MAAOyN,IAAoC,mBAArBlW,EAASnK,KAAK4S,GAA2B0N,EAAe1N,GAAM4J,EAAKvK,EAAUW,MAMjG,SAAUtT,EAAQD,EAASM,GAG/B,GAAIiZ,GAAQjZ,EAAoB,IAC5B4gB,EAAa5gB,EAAoB,IAAI2G,OAAO,SAAU,YAE1DjH,GAAQmN,EAAItI,OAAO8a,qBAAuB,SAA6BzM,GACrE,MAAOqG,GAAMrG,EAAGgO,KAMd,SAAUjhB,EAAQD,EAASM,GAE/B,GAAIsgB,GAAMtgB,EAAoB,IAC1BgX,EAAahX,EAAoB,IACjCsS,EAAYtS,EAAoB,GAChCmX,EAAcnX,EAAoB,IAClCuT,EAAMvT,EAAoB,IAC1BkX,EAAiBlX,EAAoB,IACrC4c,EAAOrY,OAAO6a,wBAElB1f,GAAQmN,EAAI7M,EAAoB,IAAM4c,EAAO,SAAkChK,EAAGqC,GAGhF,GAFArC,EAAIN,EAAUM,GACdqC,EAAIkC,EAAYlC,GAAG,GACfiC,EAAgB,IAClB,MAAO0F,GAAKhK,EAAGqC,GACf,MAAOlM,IACT,GAAIwK,EAAIX,EAAGqC,GAAI,MAAO+B,IAAYsJ,EAAIzT,EAAExM,KAAKuS,EAAGqC,GAAIrC,EAAEqC,MAMpD,SAAUtV,EAAQD,KAMlB,SAAUC,EAAQD,EAASM,GAE/BA,EAAoB,IAAI,kBAKpB,SAAUL,EAAQD,EAASM,GAE/BA,EAAoB,IAAI,eAKpB,SAAUL,EAAQD,EAASM,GAM/BL,EAAOD,QAA4B,mBAAX4I,SAA0BA,OAAe,QAAKtI,EAAoB,KAItF,SAAUL,EAAQD,EAASM,IAEH,SAASL,IAMnC,SAAUgS,EAAQlS,GACRE,EAAOD,QAAUD,KAG3BK,EAAM,WAIR,QAAS+gB,KACL,MAAOC,IAAa1K,MAAM,KAAM3S,WASpC,QAASS,GAAQ6c,GACb,MAAOA,aAAiB9c,QAAmD,mBAA1CM,OAAO4N,UAAU3H,SAASnK,KAAK0gB,GAGpE,QAASzJ,GAASyJ,GAGd,MAAgB,OAATA,GAA2D,oBAA1Cxc,OAAO4N,UAAU3H,SAASnK,KAAK0gB,GAG3D,QAASC,GAAcpgB,GACnB,GAAI8M,EACJ,KAAKA,IAAK9M,GAEN,OAAO,CAEX,QAAO,EAGX,QAASqgB,GAAYF,GACjB,WAAiB,KAAVA,EAGX,QAAStf,GAASsf,GACd,MAAwB,gBAAVA,IAAgE,oBAA1Cxc,OAAO4N,UAAU3H,SAASnK,KAAK0gB,GAGvE,QAASre,GAAOqe,GACZ,MAAOA,aAAiBpe,OAAkD,kBAA1C4B,OAAO4N,UAAU3H,SAASnK,KAAK0gB,GAGnE,QAASnW,GAAInF,EAAK8B,GACd,GAAc1D,GAAVqd,IACJ,KAAKrd,EAAI,EAAGA,EAAI4B,EAAI/B,SAAUG,EAC1Bqd,EAAIvc,KAAK4C,EAAG9B,EAAI5B,GAAIA,GAExB,OAAOqd,GAGX,QAASC,GAAW7d,EAAGC,GACnB,MAAOgB,QAAO4N,UAAU/O,eAAe/C,KAAKiD,EAAGC,GAGnD,QAAS7C,GAAO4C,EAAGC,GACf,IAAK,GAAIM,KAAKN,GACN4d,EAAW5d,EAAGM,KACdP,EAAEO,GAAKN,EAAEM,GAYjB,OARIsd,GAAW5d,EAAG,cACdD,EAAEkH,SAAWjH,EAAEiH,UAGf2W,EAAW5d,EAAG,aACdD,EAAE4B,QAAU3B,EAAE2B,SAGX5B,EAGX,QAAS8d,GAAWL,EAAOxb,EAAQ8b,EAAQC,GACvC,MAAOC,IAAiBR,EAAOxb,EAAQ8b,EAAQC,GAAQ,GAAME,MAGjE,QAASC,KAEL,OACIC,OAAkB,EAClBC,gBACAC,eACArR,UAAmB,EACnBsR,cAAkB,EAClBC,WAAkB,EAClBC,aAAkB,KAClBC,eAAkB,EAClBC,iBAAkB,EAClBC,KAAkB,EAClBC,mBACAC,SAAkB,KAClBC,SAAkB,EAClBC,iBAAkB,GAI1B,QAASC,GAAgBjiB,GAIrB,MAHa,OAATA,EAAEkiB,MACFliB,EAAEkiB,IAAMf,KAELnhB,EAAEkiB,IAuBb,QAASC,GAAQniB,GACb,GAAkB,MAAdA,EAAEoiB,SAAkB,CACpB,GAAIC,GAAQJ,EAAgBjiB,GACxBsiB,EAAcC,GAAOxiB,KAAKsiB,EAAMR,gBAAiB,SAAUte,GAC3D,MAAY,OAALA,IAEPif,GAAchgB,MAAMxC,EAAEyiB,GAAGC,YACzBL,EAAMpS,SAAW,IAChBoS,EAAMjB,QACNiB,EAAMZ,eACNY,EAAMM,iBACNN,EAAMb,YACNa,EAAMX,gBACNW,EAAMV,mBACLU,EAAMP,UAAaO,EAAMP,UAAYQ,EAS3C,IAPItiB,EAAE4iB,UACFJ,EAAaA,GACe,IAAxBH,EAAMd,eACwB,IAA9Bc,EAAMhB,aAAaje,YACDC,KAAlBgf,EAAMQ;yFAGS,MAAnB5e,OAAO6e,UAAqB7e,OAAO6e,SAAS9iB,GAI5C,MAAOwiB,EAHPxiB,GAAEoiB,SAAWI,EAMrB,MAAOxiB,GAAEoiB,SAGb,QAASW,GAAeV,GACpB,GAAIriB,GAAI8gB,EAAUkC,IAQlB,OAPa,OAATX,EACAjiB,EAAO6hB,EAAgBjiB,GAAIqiB,GAG3BJ,EAAgBjiB,GAAG2hB,iBAAkB,EAGlC3hB,EAOX,QAASijB,GAAWC,EAAIC,GACpB,GAAI5f,GAAGV,EAAMsU,CAiCb,IA/BKwJ,EAAYwC,EAAKC,oBAClBF,EAAGE,iBAAmBD,EAAKC,kBAE1BzC,EAAYwC,EAAK/Q,MAClB8Q,EAAG9Q,GAAK+Q,EAAK/Q,IAEZuO,EAAYwC,EAAKE,MAClBH,EAAGG,GAAKF,EAAKE,IAEZ1C,EAAYwC,EAAKG,MAClBJ,EAAGI,GAAKH,EAAKG,IAEZ3C,EAAYwC,EAAKP,WAClBM,EAAGN,QAAUO,EAAKP,SAEjBjC,EAAYwC,EAAKI,QAClBL,EAAGK,KAAOJ,EAAKI,MAEd5C,EAAYwC,EAAKK,UAClBN,EAAGM,OAASL,EAAKK,QAEhB7C,EAAYwC,EAAKM,WAClBP,EAAGO,QAAUN,EAAKM,SAEjB9C,EAAYwC,EAAKjB,OAClBgB,EAAGhB,IAAMD,EAAgBkB,IAExBxC,EAAYwC,EAAKO,WAClBR,EAAGQ,QAAUP,EAAKO,SAGlBC,GAAiBvgB,OAAS,EAC1B,IAAKG,EAAI,EAAGA,EAAIogB,GAAiBvgB,OAAQG,IACrCV,EAAO8gB,GAAiBpgB,GACxB4T,EAAMgM,EAAKtgB,GACN8d,EAAYxJ,KACb+L,EAAGrgB,GAAQsU,EAKvB,OAAO+L,GAMX,QAASU,GAAOC,GACZZ,EAAWzjB,KAAMqkB,GACjBrkB,KAAKijB,GAAK,GAAIpgB,MAAkB,MAAbwhB,EAAOpB,GAAaoB,EAAOpB,GAAGC,UAAYM,KACxDxjB,KAAK2iB,YACN3iB,KAAKijB,GAAK,GAAIpgB,MAAK2gB,OAIE,IAArBc,KACAA,IAAmB,EACnBvD,EAAMwD,aAAavkB,MACnBskB,IAAmB,GAI3B,QAASjf,GAAUvE,GACf,MAAOA,aAAesjB,IAAkB,MAAPtjB,GAAuC,MAAxBA,EAAI8iB,iBAGxD,QAASY,GAAUC,GACf,MAAIA,GAAS,EAEFhiB,KAAKoX,KAAK4K,IAAW,EAErBhiB,KAAKqK,MAAM2X,GAI1B,QAASC,GAAMC,GACX,GAAIC,IAAiBD,EACjBpiB,EAAQ,CAMZ,OAJsB,KAAlBqiB,GAAuBC,SAASD,KAChCriB,EAAQiiB,EAASI,IAGdriB,EAIX,QAASuiB,GAAcC,EAAQC,EAAQC,GACnC,GAGIlhB,GAHAgB,EAAMtC,KAAKL,IAAI2iB,EAAOnhB,OAAQohB,EAAOphB,QACrCshB,EAAaziB,KAAK0iB,IAAIJ,EAAOnhB,OAASohB,EAAOphB,QAC7CwhB,EAAQ,CAEZ,KAAKrhB,EAAI,EAAGA,EAAIgB,EAAKhB,KACZkhB,GAAeF,EAAOhhB,KAAOihB,EAAOjhB,KACnCkhB,GAAeP,EAAMK,EAAOhhB,MAAQ2gB,EAAMM,EAAOjhB,MACnDqhB,GAGR,OAAOA,GAAQF,EAGnB,QAASG,GAAKC,IACgC,IAAtCvE,EAAMwE,6BACmB,mBAAbC,UAA6BA,QAAQH,MACjDG,QAAQH,KAAK,wBAA0BC,GAI/C,QAASG,GAAUH,EAAK7d,GACpB,GAAIie,IAAY,CAEhB,OAAO9kB,GAAO,WAIV,GAHgC,MAA5BmgB,EAAM4E,oBACN5E,EAAM4E,mBAAmB,KAAML,GAE/BI,EAAW,CAGX,IAAK,GADD/E,GADAhB,KAEK5b,EAAI,EAAGA,EAAIJ,UAAUC,OAAQG,IAAK,CAEvC,GADA4c,EAAM,GACsB,gBAAjBhd,WAAUI,GAAiB,CAClC4c,GAAO,MAAQ5c,EAAI,IACnB,KAAK,GAAIwD,KAAO5D,WAAU,GACtBgd,GAAOpZ,EAAM,KAAO5D,UAAU,GAAG4D,GAAO,IAE5CoZ,GAAMA,EAAIhW,MAAM,GAAI,OAEpBgW,GAAMhd,UAAUI,EAEpB4b,GAAK9a,KAAK8b,GAEd0E,EAAKC,EAAM,gBAAkBnhB,MAAMkO,UAAU1H,MAAMpK,KAAKof,GAAM5Y,KAAK,IAAM,MAAO,GAAK1C,QAASuhB,OAC9FF,GAAY,EAEhB,MAAOje,GAAG6O,MAAMtW,KAAM2D,YACvB8D,GAKP,QAASoe,GAAgB5Q,EAAMqQ,GACK,MAA5BvE,EAAM4E,oBACN5E,EAAM4E,mBAAmB1Q,EAAMqQ,GAE9BQ,GAAa7Q,KACdoQ,EAAKC,GACLQ,GAAa7Q,IAAQ,GAO7B,QAAS8Q,GAAW9E,GAChB,MAAOA,aAAiB1K,WAAsD,sBAA1C9R,OAAO4N,UAAU3H,SAASnK,KAAK0gB,GAGvE,QAASlC,GAAKsF,GACV,GAAIhhB,GAAMU,CACV,KAAKA,IAAKsgB,GACNhhB,EAAOghB,EAAOtgB,GACVgiB,EAAW1iB,GACXrD,KAAK+D,GAAKV,EAEVrD,KAAK,IAAM+D,GAAKV,CAGxBrD,MAAKgmB,QAAU3B,EAIfrkB,KAAKimB,+BAAiC,GAAIC,SACrClmB,KAAKmmB,wBAAwB5Q,QAAUvV,KAAKomB,cAAc7Q,QACvD,IAAM,UAAYA,QAG9B,QAAS8Q,GAAaC,EAAcC,GAChC,GAAoCljB,GAAhC+d,EAAMxgB,KAAW0lB,EACrB,KAAKjjB,IAAQkjB,GACLlF,EAAWkF,EAAaljB,KACpBmU,EAAS8O,EAAajjB,KAAUmU,EAAS+O,EAAYljB,KACrD+d,EAAI/d,MACJzC,EAAOwgB,EAAI/d,GAAOijB,EAAajjB,IAC/BzC,EAAOwgB,EAAI/d,GAAOkjB,EAAYljB,KACF,MAArBkjB,EAAYljB,GACnB+d,EAAI/d,GAAQkjB,EAAYljB,SAEjB+d,GAAI/d,GAIvB,KAAKA,IAAQijB,GACLjF,EAAWiF,EAAcjjB,KACpBge,EAAWkF,EAAaljB,IACzBmU,EAAS8O,EAAajjB,MAE1B+d,EAAI/d,GAAQzC,KAAWwgB,EAAI/d,IAGnC,OAAO+d,GAGX,QAASoF,GAAOnC,GACE,MAAVA,GACArkB,KAAK+e,IAAIsF,GA+BjB,QAASoC,GAAUlf,EAAKmf,EAAKC,GACzB,GAAIC,GAAS5mB,KAAK6mB,UAAUtf,IAAQvH,KAAK6mB,UAAoB,QAC7D,OAAOd,GAAWa,GAAUA,EAAOrmB,KAAKmmB,EAAKC,GAAOC,EAYxD,QAASE,GAAgBvf,GACrB,GAAI9B,GAASzF,KAAK+mB,gBAAgBxf,GAC9Byf,EAAchnB,KAAK+mB,gBAAgBxf,EAAI0f,cAE3C,OAAIxhB,KAAWuhB,EACJvhB,GAGXzF,KAAK+mB,gBAAgBxf,GAAOyf,EAAYpd,QAAQ,mBAAoB,SAAU+N,GAC1E,MAAOA,GAAIhN,MAAM,KAGd3K,KAAK+mB,gBAAgBxf,IAKhC,QAAS2f,KACL,MAAOlnB,MAAKmnB,aAMhB,QAASC,GAAS3C,GACd,MAAOzkB,MAAKqnB,SAASzd,QAAQ,KAAM6a,GAoBvC,QAAS6C,GAAc7C,EAAQ8C,EAAeC,EAAQC,GAClD,GAAIb,GAAS5mB,KAAK0nB,cAAcF,EAChC,OAAQzB,GAAWa,GACfA,EAAOnC,EAAQ8C,EAAeC,EAAQC,GACtCb,EAAOhd,QAAQ,MAAO6a,GAG9B,QAASkD,GAAYC,EAAMhB,GACvB,GAAInhB,GAASzF,KAAK0nB,cAAcE,EAAO,EAAI,SAAW,OACtD,OAAO7B,GAAWtgB,GAAUA,EAAOmhB,GAAUnhB,EAAOmE,QAAQ,MAAOgd,GAKvE,QAASiB,GAAcC,EAAMC,GACzB,GAAIC,GAAYF,EAAKG,aACrBC,IAAQF,GAAaE,GAAQF,EAAY,KAAOE,GAAQH,GAAaD,EAGzE,QAASK,GAAeC,GACpB,MAAwB,gBAAVA,GAAqBF,GAAQE,IAAUF,GAAQE,EAAMH,mBAAiBpkB,GAGxF,QAASwkB,GAAqBC,GAC1B,GACIC,GACAllB,EAFAmlB,IAIJ,KAAKnlB,IAAQilB,GACLjH,EAAWiH,EAAajlB,KACxBklB,EAAiBJ,EAAe9kB,MAE5BmlB,EAAgBD,GAAkBD,EAAYjlB,GAK1D,OAAOmlB,GAKX,QAASC,GAAgBX,EAAMY,GAC3BC,GAAWb,GAAQY,EAGvB,QAASE,GAAoBC,GACzB,GAAIT,KACJ,KAAK,GAAIU,KAAKD,GACVT,EAAMvjB,MAAMijB,KAAMgB,EAAGJ,SAAUC,GAAWG,IAK9C,OAHAV,GAAMW,KAAK,SAAUvlB,EAAGC,GACpB,MAAOD,GAAEklB,SAAWjlB,EAAEilB,WAEnBN,EAGX,QAASY,GAAYlB,EAAMmB,GACvB,MAAO,UAAU1mB,GACb,MAAa,OAATA,GACA2mB,EAAMlpB,KAAM8nB,EAAMvlB,GAClBwe,EAAMwD,aAAavkB,KAAMipB,GAClBjpB,MAEAyX,EAAIzX,KAAM8nB,IAK7B,QAASrQ,GAAKiP,EAAKoB,GACf,MAAOpB,GAAI/D,UACP+D,EAAIzD,GAAG,OAASyD,EAAI1C,OAAS,MAAQ,IAAM8D,KAAUtE,IAG7D,QAAS0F,GAAOxC,EAAKoB,EAAMvlB,GACnBmkB,EAAI/D,WACJ+D,EAAIzD,GAAG,OAASyD,EAAI1C,OAAS,MAAQ,IAAM8D,GAAMvlB,GAMzD,QAAS4mB,GAAWf,GAEhB,MADAA,GAAQD,EAAeC,GACnBrC,EAAW/lB,KAAKooB,IACTpoB,KAAKooB,KAETpoB,KAIX,QAASopB,GAAWhB,EAAO7lB,GACvB,GAAqB,gBAAV6lB,GAAoB,CAC3BA,EAAQC,EAAqBD,EAE7B,KAAK,GADDiB,GAAcT,EAAoBR,GAC7BrkB,EAAI,EAAGA,EAAIslB,EAAYzlB,OAAQG,IACpC/D,KAAKqpB,EAAYtlB,GAAG+jB,MAAMM,EAAMiB,EAAYtlB,GAAG+jB,WAInD,IADAM,EAAQD,EAAeC,GACnBrC,EAAW/lB,KAAKooB,IAChB,MAAOpoB,MAAKooB,GAAO7lB,EAG3B,OAAOvC,MAGX,QAASspB,GAAS7E,EAAQ8E,EAAcC,GACpC,GAAIC,GAAY,GAAKhnB,KAAK0iB,IAAIV,GAC1BiF,EAAcH,EAAeE,EAAU7lB,MAE3C,QADW6gB,GAAU,EACL+E,EAAY,IAAM,GAAM,KACpC/mB,KAAKknB,IAAI,GAAIlnB,KAAKJ,IAAI,EAAGqnB,IAAchf,WAAWL,OAAO,GAAKof,EAetE,QAASG,GAAgBC,EAAOC,EAAQ1C,EAASjgB,GAC7C,GAAI4iB,GAAO5iB,CACa,iBAAbA,KACP4iB,EAAO,WACH,MAAO/pB,MAAKmH,OAGhB0iB,IACAG,GAAqBH,GAASE,GAE9BD,IACAE,GAAqBF,EAAO,IAAM,WAC9B,MAAOR,GAASS,EAAKzT,MAAMtW,KAAM2D,WAAYmmB,EAAO,GAAIA,EAAO,MAGnE1C,IACA4C,GAAqB5C,GAAW,WAC5B,MAAOpnB,MAAKiqB,aAAa7C,QAAQ2C,EAAKzT,MAAMtW,KAAM2D,WAAYkmB,KAK1E,QAASK,GAAuBjJ,GAC5B,MAAIA,GAAM/b,MAAM,YACL+b,EAAMrX,QAAQ,WAAY,IAE9BqX,EAAMrX,QAAQ,MAAO,IAGhC,QAASugB,GAAmB1kB,GACxB,GAA4C1B,GAAGH,EAA3CyD,EAAQ5B,EAAOP,MAAMklB,GAEzB,KAAKrmB,EAAI,EAAGH,EAASyD,EAAMzD,OAAQG,EAAIH,EAAQG,IACvCimB,GAAqB3iB,EAAMtD,IAC3BsD,EAAMtD,GAAKimB,GAAqB3iB,EAAMtD,IAEtCsD,EAAMtD,GAAKmmB,EAAuB7iB,EAAMtD,GAIhD,OAAO,UAAU2iB,GACb,GAAiB3iB,GAAb6iB,EAAS,EACb,KAAK7iB,EAAI,EAAGA,EAAIH,EAAQG,IACpB6iB,GAAUb,EAAW1e,EAAMtD,IAAMsD,EAAMtD,GAAGxD,KAAKmmB,EAAKjhB,GAAU4B,EAAMtD,EAExE,OAAO6iB,IAKf,QAASyD,GAAa7pB,EAAGiF,GACrB,MAAKjF,GAAEmiB,WAIPld,EAAS6kB,EAAa7kB,EAAQjF,EAAEypB,cAChCM,GAAgB9kB,GAAU8kB,GAAgB9kB,IAAW0kB,EAAmB1kB,GAEjE8kB,GAAgB9kB,GAAQjF,IANpBA,EAAEypB,aAAa/C,cAS9B,QAASoD,GAAa7kB,EAAQ8b,GAG1B,QAASiJ,GAA4BvJ,GACjC,MAAOM,GAAOuF,eAAe7F,IAAUA,EAH3C,GAAIld,GAAI,CAOR,KADA0mB,GAAsBC,UAAY,EAC3B3mB,GAAK,GAAK0mB,GAAsBvd,KAAKzH,IACxCA,EAASA,EAAOmE,QAAQ6gB,GAAuBD,GAC/CC,GAAsBC,UAAY,EAClC3mB,GAAK,CAGT,OAAO0B,GA8BX,QAASklB,GAAed,EAAOe,EAAOC,GAClCC,GAAQjB,GAAS9D,EAAW6E,GAASA,EAAQ,SAAUG,EAAUd,GAC7D,MAAQc,IAAYF,EAAeA,EAAcD,GAIzD,QAASI,GAAuBnB,EAAOxF,GACnC,MAAKhD,GAAWyJ,GAASjB,GAIlBiB,GAAQjB,GAAOxF,EAAOjB,QAASiB,EAAOH,SAHlC,GAAIgC,QAAO+E,EAAepB,IAOzC,QAASoB,GAAe7f,GACpB,MAAO8f,IAAY9f,EAAExB,QAAQ,KAAM,IAAIA,QAAQ,sCAAuC,SAAUuhB,EAASC,EAAIC,EAAIC,EAAIC,GACjH,MAAOH,IAAMC,GAAMC,GAAMC,KAIjC,QAASL,IAAY9f,GACjB,MAAOA,GAAExB,QAAQ,yBAA0B,QAK/C,QAAS4hB,IAAe3B,EAAO1iB,GAC3B,GAAIpD,GAAGgmB,EAAO5iB,CASd,KARqB,gBAAV0iB,KACPA,GAASA,IAETloB,EAASwF,KACT4iB,EAAO,SAAU9I,EAAO5Z,GACpBA,EAAMF,GAAYud,EAAMzD,KAG3Bld,EAAI,EAAGA,EAAI8lB,EAAMjmB,OAAQG,IAC1B0nB,GAAO5B,EAAM9lB,IAAMgmB,EAI3B,QAAS2B,IAAmB7B,EAAO1iB,GAC/BqkB,GAAc3B,EAAO,SAAU5I,EAAO5Z,EAAOgd,EAAQwF,GACjDxF,EAAOsH,GAAKtH,EAAOsH,OACnBxkB,EAAS8Z,EAAOoD,EAAOsH,GAAItH,EAAQwF,KAI3C,QAAS+B,IAAwB/B,EAAO5I,EAAOoD,GAC9B,MAATpD,GAAiBI,EAAWoK,GAAQ5B,IACpC4B,GAAO5B,GAAO5I,EAAOoD,EAAOwH,GAAIxH,EAAQwF,GAiChD,QAASiC,IAAYC,EAAMC,GACvB,MAAO,IAAInpB,MAAKA,KAAKopB,IAAIF,EAAMC,EAAQ,EAAG,IAAIE,aAsDlD,QAASC,IAAc3rB,EAAGiF,GACtB,MAAKjF,GAIE4D,EAAQpE,KAAKosB,SAAWpsB,KAAKosB,QAAQ5rB,EAAEwrB,SAC1ChsB,KAAKosB,SAASpsB,KAAKosB,QAAQC,UAAYC,IAAkBpf,KAAKzH,GAAU,SAAW,cAAcjF,EAAEwrB,SAJ5F5nB,EAAQpE,KAAKosB,SAAWpsB,KAAKosB,QAChCpsB,KAAKosB,QAAoB,WAOrC,QAASG,IAAmB/rB,EAAGiF,GAC3B,MAAKjF,GAIE4D,EAAQpE,KAAKwsB,cAAgBxsB,KAAKwsB,aAAahsB,EAAEwrB,SACpDhsB,KAAKwsB,aAAaF,GAAiBpf,KAAKzH,GAAU,SAAW,cAAcjF,EAAEwrB,SAJtE5nB,EAAQpE,KAAKwsB,cAAgBxsB,KAAKwsB,aACrCxsB,KAAKwsB,aAAyB,WAM1C,QAASC,IAAkBC,EAAWjnB,EAAQ+b,GAC1C,GAAIzd,GAAG4oB,EAAIjG,EAAKkG,EAAMF,EAAUG,mBAChC,KAAK7sB,KAAK8sB,aAKN,IAHA9sB,KAAK8sB,gBACL9sB,KAAK+sB,oBACL/sB,KAAKgtB,qBACAjpB,EAAI,EAAGA,EAAI,KAAMA,EAClB2iB,EAAMpF,GAAW,IAAMvd,IACvB/D,KAAKgtB,kBAAkBjpB,GAAK/D,KAAKitB,YAAYvG,EAAK,IAAImG,oBACtD7sB,KAAK+sB,iBAAiBhpB,GAAK/D,KAAKktB,OAAOxG,EAAK,IAAImG,mBAIxD,OAAIrL,GACe,QAAX/b,GACAknB,EAAKQ,GAAU5sB,KAAKP,KAAKgtB,kBAAmBJ,IAC7B,IAARD,EAAYA,EAAK,OAExBA,EAAKQ,GAAU5sB,KAAKP,KAAK+sB,iBAAkBH,IAC5B,IAARD,EAAYA,EAAK,MAGb,QAAXlnB,GAEY,KADZknB,EAAKQ,GAAU5sB,KAAKP,KAAKgtB,kBAAmBJ,IAEjCD,GAEXA,EAAKQ,GAAU5sB,KAAKP,KAAK+sB,iBAAkBH,IAC5B,IAARD,EAAYA,EAAK,OAGZ,KADZA,EAAKQ,GAAU5sB,KAAKP,KAAK+sB,iBAAkBH,IAEhCD,GAEXA,EAAKQ,GAAU5sB,KAAKP,KAAKgtB,kBAAmBJ,IAC7B,IAARD,EAAYA,EAAK,MAKpC,QAASS,IAAmBV,EAAWjnB,EAAQ+b,GAC3C,GAAIzd,GAAG2iB,EAAKkE,CAEZ,IAAI5qB,KAAKqtB,kBACL,MAAOZ,IAAkBlsB,KAAKP,KAAM0sB,EAAWjnB,EAAQ+b,EAY3D,KATKxhB,KAAK8sB,eACN9sB,KAAK8sB,gBACL9sB,KAAK+sB,oBACL/sB,KAAKgtB,sBAMJjpB,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAYrB,GAVA2iB,EAAMpF,GAAW,IAAMvd,IACnByd,IAAWxhB,KAAK+sB,iBAAiBhpB,KACjC/D,KAAK+sB,iBAAiBhpB,GAAK,GAAImiB,QAAO,IAAMlmB,KAAKktB,OAAOxG,EAAK,IAAI9c,QAAQ,IAAK,IAAM,IAAK,KACzF5J,KAAKgtB,kBAAkBjpB,GAAK,GAAImiB,QAAO,IAAMlmB,KAAKitB,YAAYvG,EAAK,IAAI9c,QAAQ,IAAK,IAAM,IAAK,MAE9F4X,GAAWxhB,KAAK8sB,aAAa/oB,KAC9B6mB,EAAQ,IAAM5qB,KAAKktB,OAAOxG,EAAK,IAAM,KAAO1mB,KAAKitB,YAAYvG,EAAK,IAClE1mB,KAAK8sB,aAAa/oB,GAAK,GAAImiB,QAAO0E,EAAMhhB,QAAQ,IAAK,IAAK,MAG1D4X,GAAqB,SAAX/b,GAAqBzF,KAAK+sB,iBAAiBhpB,GAAGmJ,KAAKwf,GAC7D,MAAO3oB,EACJ,IAAIyd,GAAqB,QAAX/b,GAAoBzF,KAAKgtB,kBAAkBjpB,GAAGmJ,KAAKwf,GACpE,MAAO3oB,EACJ,KAAKyd,GAAUxhB,KAAK8sB,aAAa/oB,GAAGmJ,KAAKwf,GAC5C,MAAO3oB,IAOnB,QAASupB,IAAU5G,EAAKnkB,GACpB,GAAIgrB,EAEJ,KAAK7G,EAAI/D,UAEL,MAAO+D,EAGX,IAAqB,gBAAVnkB,GACP,GAAI,QAAQ2K,KAAK3K,GACbA,EAAQmiB,EAAMniB,OAId,IAFAA,EAAQmkB,EAAIuD,aAAauD,YAAYjrB,IAEhCZ,EAASY,GACV,MAAOmkB,EAOnB,OAFA6G,GAAa9qB,KAAKL,IAAIskB,EAAI+G,OAAQ3B,GAAYpF,EAAIqF,OAAQxpB,IAC1DmkB,EAAIzD,GAAG,OAASyD,EAAI1C,OAAS,MAAQ,IAAM,SAASzhB,EAAOgrB,GACpD7G,EAGX,QAASgH,IAAanrB,GAClB,MAAa,OAATA,GACA+qB,GAASttB,KAAMuC,GACfwe,EAAMwD,aAAavkB,MAAM,GAClBA,MAEAyX,EAAIzX,KAAM,SAIzB,QAAS2tB,MACL,MAAO7B,IAAY9rB,KAAK+rB,OAAQ/rB,KAAKgsB,SAIzC,QAAS4B,IAAkB7C,GACvB,MAAI/qB,MAAKqtB,mBACAhM,EAAWrhB,KAAM,iBAClB6tB,GAAmBttB,KAAKP,MAExB+qB,EACO/qB,KAAK8tB,wBAEL9tB,KAAK+tB,oBAGX1M,EAAWrhB,KAAM,uBAClBA,KAAK+tB,kBAAoBC,IAEtBhuB,KAAK8tB,yBAA2B/C,EACnC/qB,KAAK8tB,wBAA0B9tB,KAAK+tB,mBAKhD,QAASE,IAAalD,GAClB,MAAI/qB,MAAKqtB,mBACAhM,EAAWrhB,KAAM,iBAClB6tB,GAAmBttB,KAAKP,MAExB+qB,EACO/qB,KAAKkuB,mBAELluB,KAAKmuB,eAGX9M,EAAWrhB,KAAM,kBAClBA,KAAKmuB,aAAeC,IAEjBpuB,KAAKkuB,oBAAsBnD,EAC9B/qB,KAAKkuB,mBAAqBluB,KAAKmuB,cAI3C,QAASN,MACL,QAASQ,GAAU7qB,EAAGC,GAClB,MAAOA,GAAEG,OAASJ,EAAEI,OAGxB,GACIG,GAAG2iB,EADH4H,KAAkBC,KAAiBC,IAEvC,KAAKzqB,EAAI,EAAGA,EAAI,GAAIA,IAEhB2iB,EAAMpF,GAAW,IAAMvd,IACvBuqB,EAAYzpB,KAAK7E,KAAKitB,YAAYvG,EAAK,KACvC6H,EAAW1pB,KAAK7E,KAAKktB,OAAOxG,EAAK,KACjC8H,EAAY3pB,KAAK7E,KAAKktB,OAAOxG,EAAK,KAClC8H,EAAY3pB,KAAK7E,KAAKitB,YAAYvG,EAAK,IAO3C,KAHA4H,EAAYvF,KAAKsF,GACjBE,EAAWxF,KAAKsF,GAChBG,EAAYzF,KAAKsF,GACZtqB,EAAI,EAAGA,EAAI,GAAIA,IAChBuqB,EAAYvqB,GAAKmnB,GAAYoD,EAAYvqB,IACzCwqB,EAAWxqB,GAAKmnB,GAAYqD,EAAWxqB,GAE3C,KAAKA,EAAI,EAAGA,EAAI,GAAIA,IAChByqB,EAAYzqB,GAAKmnB,GAAYsD,EAAYzqB,GAG7C/D,MAAKmuB,aAAe,GAAIjI,QAAO,KAAOsI,EAAYznB,KAAK,KAAO,IAAK,KACnE/G,KAAK+tB,kBAAoB/tB,KAAKmuB,aAC9BnuB,KAAKkuB,mBAAqB,GAAIhI,QAAO,KAAOqI,EAAWxnB,KAAK,KAAO,IAAK,KACxE/G,KAAK8tB,wBAA0B,GAAI5H,QAAO,KAAOoI,EAAYvnB,KAAK,KAAO,IAAK,KA+ClF,QAAS0nB,IAAW1C,GAChB,MAAO2C,IAAW3C,GAAQ,IAAM,IAGpC,QAAS2C,IAAW3C,GAChB,MAAQA,GAAO,GAAM,GAAKA,EAAO,KAAQ,GAAMA,EAAO,KAAQ,EAalE,QAAS4C,MACL,MAAOD,IAAW1uB,KAAK+rB,QAG3B,QAAS6C,IAAYC,EAAGruB,EAAGyL,EAAGd,EAAG2jB,EAAG1jB,EAAG2jB,GAGnC,GAAItB,GAAO,GAAI5qB,MAAKgsB,EAAGruB,EAAGyL,EAAGd,EAAG2jB,EAAG1jB,EAAG2jB,EAMtC,OAHIF,GAAI,KAAOA,GAAK,GAAKhK,SAAS4I,EAAKuB,gBACnCvB,EAAKwB,YAAYJ,GAEdpB,EAGX,QAASyB,IAAeL,GACpB,GAAIpB,GAAO,GAAI5qB,MAAKA,KAAKopB,IAAI3V,MAAM,KAAM3S,WAMzC,OAHIkrB,GAAI,KAAOA,GAAK,GAAKhK,SAAS4I,EAAK0B,mBACnC1B,EAAK2B,eAAeP,GAEjBpB,EAIX,QAAS4B,IAAgBtD,EAAMuD,EAAKC,GAChC,GACIC,GAAM,EAAIF,EAAMC,CAIpB,SAFa,EAAIL,GAAcnD,EAAM,EAAGyD,GAAKC,YAAcH,GAAO,EAElDE,EAAM,EAI1B,QAASE,IAAmB3D,EAAM4D,EAAMC,EAASN,EAAKC,GAClD,GAGIM,GAASC,EAHTC,GAAgB,EAAIH,EAAUN,GAAO,EACrCU,EAAaX,GAAgBtD,EAAMuD,EAAKC,GACxCU,EAAY,EAAI,GAAKN,EAAO,GAAKI,EAAeC,CAcpD,OAXIC,IAAa,GACbJ,EAAU9D,EAAO,EACjB+D,EAAerB,GAAWoB,GAAWI,GAC9BA,EAAYxB,GAAW1C,IAC9B8D,EAAU9D,EAAO,EACjB+D,EAAeG,EAAYxB,GAAW1C,KAEtC8D,EAAU9D,EACV+D,EAAeG,IAIflE,KAAM8D,EACNI,UAAWH,GAInB,QAASI,IAAWxJ,EAAK4I,EAAKC,GAC1B,GAEIY,GAASN,EAFTG,EAAaX,GAAgB3I,EAAIqF,OAAQuD,EAAKC,GAC9CI,EAAOltB,KAAKqK,OAAO4Z,EAAIuJ,YAAcD,EAAa,GAAK,GAAK,CAchE,OAXIL,GAAO,GACPE,EAAUnJ,EAAIqF,OAAS,EACvBoE,EAAUR,EAAOS,GAAYP,EAASP,EAAKC,IACpCI,EAAOS,GAAY1J,EAAIqF,OAAQuD,EAAKC,IAC3CY,EAAUR,EAAOS,GAAY1J,EAAIqF,OAAQuD,EAAKC,GAC9CM,EAAUnJ,EAAIqF,OAAS,IAEvB8D,EAAUnJ,EAAIqF,OACdoE,EAAUR,IAIVA,KAAMQ,EACNpE,KAAM8D,GAId,QAASO,IAAYrE,EAAMuD,EAAKC,GAC5B,GAAIS,GAAaX,GAAgBtD,EAAMuD,EAAKC,GACxCc,EAAiBhB,GAAgBtD,EAAO,EAAGuD,EAAKC,EACpD,QAAQd,GAAW1C,GAAQiE,EAAaK,GAAkB,EAiC9D,QAASC,IAAY5J,GACjB,MAAOwJ,IAAWxJ,EAAK1mB,KAAKuwB,MAAMjB,IAAKtvB,KAAKuwB,MAAMhB,KAAKI,KAQ3D,QAASa,MACL,MAAOxwB,MAAKuwB,MAAMjB,IAGtB,QAASmB,MACL,MAAOzwB,MAAKuwB,MAAMhB,IAKtB,QAASmB,IAAYzP,GACjB,GAAI0O,GAAO3vB,KAAKiqB,aAAa0F,KAAK3vB,KAClC,OAAgB,OAATihB,EAAgB0O,EAAO3vB,KAAK2wB,IAAqB,GAAhB1P,EAAQ0O,GAAW,KAG/D,QAASiB,IAAe3P,GACpB,GAAI0O,GAAOO,GAAWlwB,KAAM,EAAG,GAAG2vB,IAClC,OAAgB,OAAT1O,EAAgB0O,EAAO3vB,KAAK2wB,IAAqB,GAAhB1P,EAAQ0O,GAAW,KAgE/D,QAASkB,IAAa5P,EAAOM,GACzB,MAAqB,gBAAVN,GACAA,EAGNje,MAAMie,IAIXA,EAAQM,EAAOuP,cAAc7P,GACR,gBAAVA,GACAA,EAGJ,MARIjX,SAASiX,EAAO,IAW/B,QAAS8P,IAAgB9P,EAAOM,GAC5B,MAAqB,gBAAVN,GACAM,EAAOuP,cAAc7P,GAAS,GAAK,EAEvCje,MAAMie,GAAS,KAAOA,EAMjC,QAAS+P,IAAgBxwB,EAAGiF,GACxB,MAAKjF,GAIE4D,EAAQpE,KAAKixB,WAAajxB,KAAKixB,UAAUzwB,EAAE0wB,OAC9ClxB,KAAKixB,UAAUjxB,KAAKixB,UAAU5E,SAASnf,KAAKzH,GAAU,SAAW,cAAcjF,EAAE0wB,OAJ1E9sB,EAAQpE,KAAKixB,WAAajxB,KAAKixB,UAClCjxB,KAAKixB,UAAsB,WAOvC,QAASE,IAAqB3wB,GAC1B,MAAO,GAAMR,KAAKoxB,eAAe5wB,EAAE0wB,OAASlxB,KAAKoxB,eAIrD,QAASC,IAAmB7wB,GACxB,MAAO,GAAMR,KAAKsxB,aAAa9wB,EAAE0wB,OAASlxB,KAAKsxB,aAGnD,QAASC,IAAoBC,EAAa/rB,EAAQ+b,GAC9C,GAAIzd,GAAG4oB,EAAIjG,EAAKkG,EAAM4E,EAAY3E,mBAClC,KAAK7sB,KAAKyxB,eAKN,IAJAzxB,KAAKyxB,kBACLzxB,KAAK0xB,uBACL1xB,KAAK2xB,qBAEA5tB,EAAI,EAAGA,EAAI,IAAKA,EACjB2iB,EAAMpF,GAAW,IAAM,IAAI4P,IAAIntB,GAC/B/D,KAAK2xB,kBAAkB5tB,GAAK/D,KAAK4xB,YAAYlL,EAAK,IAAImG,oBACtD7sB,KAAK0xB,oBAAoB3tB,GAAK/D,KAAK6xB,cAAcnL,EAAK,IAAImG,oBAC1D7sB,KAAKyxB,eAAe1tB,GAAK/D,KAAK8xB,SAASpL,EAAK,IAAImG,mBAIxD,OAAIrL,GACe,SAAX/b,GACAknB,EAAKQ,GAAU5sB,KAAKP,KAAKyxB,eAAgB7E,IAC1B,IAARD,EAAYA,EAAK,MACN,QAAXlnB,GACPknB,EAAKQ,GAAU5sB,KAAKP,KAAK0xB,oBAAqB9E,IAC/B,IAARD,EAAYA,EAAK,OAExBA,EAAKQ,GAAU5sB,KAAKP,KAAK2xB,kBAAmB/E,IAC7B,IAARD,EAAYA,EAAK,MAGb,SAAXlnB,GAEY,KADZknB,EAAKQ,GAAU5sB,KAAKP,KAAKyxB,eAAgB7E,IAE9BD,GAGC,KADZA,EAAKQ,GAAU5sB,KAAKP,KAAK0xB,oBAAqB9E,IAEnCD,GAEXA,EAAKQ,GAAU5sB,KAAKP,KAAK2xB,kBAAmB/E,IAC7B,IAARD,EAAYA,EAAK,MACN,QAAXlnB,GAEK,KADZknB,EAAKQ,GAAU5sB,KAAKP,KAAK0xB,oBAAqB9E,IAEnCD,GAGC,KADZA,EAAKQ,GAAU5sB,KAAKP,KAAKyxB,eAAgB7E,IAE9BD,GAEXA,EAAKQ,GAAU5sB,KAAKP,KAAK2xB,kBAAmB/E,IAC7B,IAARD,EAAYA,EAAK,OAGZ,KADZA,EAAKQ,GAAU5sB,KAAKP,KAAK2xB,kBAAmB/E,IAEjCD,GAGC,KADZA,EAAKQ,GAAU5sB,KAAKP,KAAKyxB,eAAgB7E,IAE9BD,GAEXA,EAAKQ,GAAU5sB,KAAKP,KAAK0xB,oBAAqB9E,IAC/B,IAARD,EAAYA,EAAK,MAKpC,QAASoF,IAAqBP,EAAa/rB,EAAQ+b,GAC/C,GAAIzd,GAAG2iB,EAAKkE,CAEZ,IAAI5qB,KAAKgyB,oBACL,MAAOT,IAAoBhxB,KAAKP,KAAMwxB,EAAa/rB,EAAQ+b,EAU/D,KAPKxhB,KAAKyxB,iBACNzxB,KAAKyxB,kBACLzxB,KAAK2xB,qBACL3xB,KAAK0xB,uBACL1xB,KAAKiyB,uBAGJluB,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAcpB,GAXA2iB,EAAMpF,GAAW,IAAM,IAAI4P,IAAIntB,GAC3Byd,IAAWxhB,KAAKiyB,mBAAmBluB,KACnC/D,KAAKiyB,mBAAmBluB,GAAK,GAAImiB,QAAO,IAAMlmB,KAAK8xB,SAASpL,EAAK,IAAI9c,QAAQ,IAAK,MAAS,IAAK,KAChG5J,KAAK0xB,oBAAoB3tB,GAAK,GAAImiB,QAAO,IAAMlmB,KAAK6xB,cAAcnL,EAAK,IAAI9c,QAAQ,IAAK,MAAS,IAAK,KACtG5J,KAAK2xB,kBAAkB5tB,GAAK,GAAImiB,QAAO,IAAMlmB,KAAK4xB,YAAYlL,EAAK,IAAI9c,QAAQ,IAAK,MAAS,IAAK,MAEjG5J,KAAKyxB,eAAe1tB,KACrB6mB,EAAQ,IAAM5qB,KAAK8xB,SAASpL,EAAK,IAAM,KAAO1mB,KAAK6xB,cAAcnL,EAAK,IAAM,KAAO1mB,KAAK4xB,YAAYlL,EAAK,IACzG1mB,KAAKyxB,eAAe1tB,GAAK,GAAImiB,QAAO0E,EAAMhhB,QAAQ,IAAK,IAAK,MAG5D4X,GAAqB,SAAX/b,GAAqBzF,KAAKiyB,mBAAmBluB,GAAGmJ,KAAKskB,GAC/D,MAAOztB,EACJ,IAAIyd,GAAqB,QAAX/b,GAAoBzF,KAAK0xB,oBAAoB3tB,GAAGmJ,KAAKskB,GACtE,MAAOztB,EACJ,IAAIyd,GAAqB,OAAX/b,GAAmBzF,KAAK2xB,kBAAkB5tB,GAAGmJ,KAAKskB,GACnE,MAAOztB,EACJ,KAAKyd,GAAUxhB,KAAKyxB,eAAe1tB,GAAGmJ,KAAKskB,GAC9C,MAAOztB,IAOnB,QAASmuB,IAAiBjR,GACtB,IAAKjhB,KAAK2iB,UACN,MAAgB,OAAT1B,EAAgBjhB,KAAOwjB,GAElC,IAAI0N,GAAMlxB,KAAKgkB,OAAShkB,KAAKijB,GAAGwM,YAAczvB,KAAKijB,GAAGkP,QACtD,OAAa,OAATlR,GACAA,EAAQ4P,GAAa5P,EAAOjhB,KAAKiqB,cAC1BjqB,KAAK2wB,IAAI1P,EAAQiQ,EAAK,MAEtBA,EAIf,QAASkB,IAAuBnR,GAC5B,IAAKjhB,KAAK2iB,UACN,MAAgB,OAAT1B,EAAgBjhB,KAAOwjB,GAElC,IAAIoM,IAAW5vB,KAAKkxB,MAAQ,EAAIlxB,KAAKiqB,aAAasG,MAAMjB,KAAO,CAC/D,OAAgB,OAATrO,EAAgB2O,EAAU5vB,KAAK2wB,IAAI1P,EAAQ2O,EAAS,KAG/D,QAASyC,IAAoBpR,GACzB,IAAKjhB,KAAK2iB,UACN,MAAgB,OAAT1B,EAAgBjhB,KAAOwjB,GAOlC,IAAa,MAATvC,EAAe,CACf,GAAI2O,GAAUmB,GAAgB9P,EAAOjhB,KAAKiqB,aAC1C,OAAOjqB,MAAKkxB,IAAIlxB,KAAKkxB,MAAQ,EAAItB,EAAUA,EAAU,GAErD,MAAO5vB,MAAKkxB,OAAS,EAK7B,QAASoB,IAAevH,GACpB,MAAI/qB,MAAKgyB,qBACA3Q,EAAWrhB,KAAM,mBAClBuyB,GAAqBhyB,KAAKP,MAE1B+qB,EACO/qB,KAAKwyB,qBAELxyB,KAAKyyB,iBAGXpR,EAAWrhB,KAAM,oBAClBA,KAAKyyB,eAAiBC,IAEnB1yB,KAAKwyB,sBAAwBzH,EAChC/qB,KAAKwyB,qBAAuBxyB,KAAKyyB,gBAK7C,QAASE,IAAoB5H,GACzB,MAAI/qB,MAAKgyB,qBACA3Q,EAAWrhB,KAAM,mBAClBuyB,GAAqBhyB,KAAKP,MAE1B+qB,EACO/qB,KAAK4yB,0BAEL5yB,KAAK6yB,sBAGXxR,EAAWrhB,KAAM,yBAClBA,KAAK6yB,oBAAsBC,IAExB9yB,KAAK4yB,2BAA6B7H,EACrC/qB,KAAK4yB,0BAA4B5yB,KAAK6yB,qBAKlD,QAASE,IAAkBhI,GACvB,MAAI/qB,MAAKgyB,qBACA3Q,EAAWrhB,KAAM,mBAClBuyB,GAAqBhyB,KAAKP,MAE1B+qB,EACO/qB,KAAKgzB,wBAELhzB,KAAKizB,oBAGX5R,EAAWrhB,KAAM,uBAClBA,KAAKizB,kBAAoBC,IAEtBlzB,KAAKgzB,yBAA2BjI,EACnC/qB,KAAKgzB,wBAA0BhzB,KAAKizB,mBAKhD,QAASV,MACL,QAASlE,GAAU7qB,EAAGC,GAClB,MAAOA,GAAEG,OAASJ,EAAEI,OAGxB,GACIG,GAAG2iB,EAAKyM,EAAMC,EAAQC,EADtBC,KAAgBhF,KAAkBC,KAAiBC,IAEvD,KAAKzqB,EAAI,EAAGA,EAAI,EAAGA,IAEf2iB,EAAMpF,GAAW,IAAM,IAAI4P,IAAIntB,GAC/BovB,EAAOnzB,KAAK4xB,YAAYlL,EAAK,IAC7B0M,EAASpzB,KAAK6xB,cAAcnL,EAAK,IACjC2M,EAAQrzB,KAAK8xB,SAASpL,EAAK,IAC3B4M,EAAUzuB,KAAKsuB,GACf7E,EAAYzpB,KAAKuuB,GACjB7E,EAAW1pB,KAAKwuB,GAChB7E,EAAY3pB,KAAKsuB,GACjB3E,EAAY3pB,KAAKuuB,GACjB5E,EAAY3pB,KAAKwuB,EAQrB,KAJAC,EAAUvK,KAAKsF,GACfC,EAAYvF,KAAKsF,GACjBE,EAAWxF,KAAKsF,GAChBG,EAAYzF,KAAKsF,GACZtqB,EAAI,EAAGA,EAAI,EAAGA,IACfuqB,EAAYvqB,GAAKmnB,GAAYoD,EAAYvqB,IACzCwqB,EAAWxqB,GAAKmnB,GAAYqD,EAAWxqB,IACvCyqB,EAAYzqB,GAAKmnB,GAAYsD,EAAYzqB,GAG7C/D,MAAKyyB,eAAiB,GAAIvM,QAAO,KAAOsI,EAAYznB,KAAK,KAAO,IAAK,KACrE/G,KAAK6yB,oBAAsB7yB,KAAKyyB,eAChCzyB,KAAKizB,kBAAoBjzB,KAAKyyB,eAE9BzyB,KAAKwyB,qBAAuB,GAAItM,QAAO,KAAOqI,EAAWxnB,KAAK,KAAO,IAAK,KAC1E/G,KAAK4yB,0BAA4B,GAAI1M,QAAO,KAAOoI,EAAYvnB,KAAK,KAAO,IAAK,KAChF/G,KAAKgzB,wBAA0B,GAAI9M,QAAO,KAAOoN,EAAUvsB,KAAK,KAAO,IAAK,KAKhF,QAASwsB,MACL,MAAOvzB,MAAKwzB,QAAU,IAAM,GAGhC,QAASC,MACL,MAAOzzB,MAAKwzB,SAAW,GAyB3B,QAASlR,IAAUuH,EAAO6J,GACtB9J,EAAeC,EAAO,EAAG,EAAG,WACxB,MAAO7pB,MAAKiqB,aAAa3H,SAAStiB,KAAKwzB,QAASxzB,KAAK2zB,UAAWD,KAgBxE,QAASE,IAAe7I,EAAUxJ,GAC9B,MAAOA,GAAOsS,eA2DlB,QAASC,IAAY7S,GAGjB,MAAiD,OAAxCA,EAAQ,IAAIgH,cAAchN,OAAO,GAI9C,QAAS8Y,IAAgBP,EAAOG,EAASK,GACrC,MAAIR,GAAQ,GACDQ,EAAU,KAAO,KAEjBA,EAAU,KAAO,KA0ChC,QAASC,IAAgB1sB,GACrB,MAAOA,GAAMA,EAAI0gB,cAAcre,QAAQ,IAAK,KAAOrC,EAMvD,QAAS2sB,IAAa7a,GAGlB,IAFA,GAAWxL,GAAG4D,EAAM8P,EAAQ5a,EAAxB5C,EAAI,EAEDA,EAAIsV,EAAMzV,QAAQ,CAKrB,IAJA+C,EAAQstB,GAAgB5a,EAAMtV,IAAI4C,MAAM,KACxCkH,EAAIlH,EAAM/C,OACV6N,EAAOwiB,GAAgB5a,EAAMtV,EAAI,IACjC0N,EAAOA,EAAOA,EAAK9K,MAAM,KAAO,KACzBkH,EAAI,GAAG,CAEV,GADA0T,EAAS4S,GAAWxtB,EAAMgE,MAAM,EAAGkD,GAAG9G,KAAK,MAEvC,MAAOwa,EAEX,IAAI9P,GAAQA,EAAK7N,QAAUiK,GAAKiX,EAAcne,EAAO8K,GAAM,IAAS5D,EAAI,EAEpE,KAEJA,KAEJ9J,IAEJ,MAAO,MAGX,QAASowB,IAAWlf,GAChB,GAAImf,GAAY,IAEhB,KAAKC,GAAQpf,QAA4B,KAAXpV,GACtBA,GAAUA,EAAOD,QACrB,IACIw0B,EAAYE,GAAaC,MACvB,WAAkC,GAAItrB,GAAI,GAAI5E,OAAM,gCAAiE,MAA7B4E,GAAEurB,KAAO,mBAA0BvrB,KAG7HwrB,GAAmBL,GACrB,MAAOnrB,IAEb,MAAOorB,IAAQpf,GAMnB,QAASwf,IAAoBltB,EAAK2N,GAC9B,GAAIwf,EAeJ,OAdIntB,KAEImtB,EADAvT,EAAYjM,GACLyf,GAAUptB,GAGVqtB,GAAartB,EAAK2N,MAKzBof,GAAeI,GAIhBJ,GAAaC,MAGxB,QAASK,IAAc3f,EAAMoP,GACzB,GAAe,OAAXA,EAAiB,CACjB,GAAIiC,GAAeuO,EAEnB,IADAxQ,EAAOyQ,KAAO7f,EACO,MAAjBof,GAAQpf,GACR4Q,EAAgB,uBACR,2OAIRS,EAAe+N,GAAQpf,GAAM+Q,YAC1B,IAA2B,MAAvB3B,EAAO0Q,aAAsB,CACpC,GAAoC,MAAhCV,GAAQhQ,EAAO0Q,cAUf,MAPKC,IAAe3Q,EAAO0Q,gBACvBC,GAAe3Q,EAAO0Q,kBAE1BC,GAAe3Q,EAAO0Q,cAAclwB,MAChCoQ,KAAMA,EACNoP,OAAQA,IAEL,IATPiC,GAAe+N,GAAQhQ,EAAO0Q,cAAc/O,QA0BpD,MAdAqO,IAAQpf,GAAQ,GAAIuR,GAAOH,EAAaC,EAAcjC,IAElD2Q,GAAe/f,IACf+f,GAAe/f,GAAM/N,QAAQ,SAAU+tB,GACnCL,GAAaK,EAAEhgB,KAAMggB,EAAE5Q,UAO/BoQ,GAAmBxf,GAGZof,GAAQpf,GAIf,aADOof,IAAQpf,GACR,KAIf,QAASigB,IAAajgB,EAAMoP,GACxB,GAAc,MAAVA,EAAgB,CAChB,GAAI9C,GAAQ+E,EAAeuO,EAEN,OAAjBR,GAAQpf,KACRqR,EAAe+N,GAAQpf,GAAM+Q,SAEjC3B,EAASgC,EAAaC,EAAcjC,GACpC9C,EAAS,GAAIiF,GAAOnC,GACpB9C,EAAOwT,aAAeV,GAAQpf,GAC9Bof,GAAQpf,GAAQsM,EAGhBkT,GAAmBxf,OAGE,OAAjBof,GAAQpf,KAC0B,MAA9Bof,GAAQpf,GAAM8f,aACdV,GAAQpf,GAAQof,GAAQpf,GAAM8f,aACN,MAAjBV,GAAQpf,UACRof,IAAQpf,GAI3B,OAAOof,IAAQpf,GAInB,QAAS0f,IAAWptB,GAChB,GAAIga,EAMJ,IAJIha,GAAOA,EAAI2c,SAAW3c,EAAI2c,QAAQqQ,QAClChtB,EAAMA,EAAI2c,QAAQqQ,QAGjBhtB,EACD,MAAO+sB,GAGX,KAAKlwB,EAAQmD,GAAM,CAGf,GADAga,EAAS4S,GAAW5sB,GAEhB,MAAOga,EAEXha,IAAOA,GAGX,MAAO2sB,IAAa3sB,GAGxB,QAAS4tB,MACL,MAAOC,IAAOf,IAGlB,QAASgB,IAAe70B,GACpB,GAAIiQ,GACAjN,EAAIhD,EAAEqrB,EAyBV,OAvBIroB,KAAsC,IAAjCif,EAAgBjiB,GAAGiQ,WACxBA,EACIjN,EAAE8xB,IAAe,GAAK9xB,EAAE8xB,IAAe,GAAMA,GAC7C9xB,EAAE+xB,IAAe,GAAK/xB,EAAE+xB,IAAezJ,GAAYtoB,EAAEgyB,IAAOhyB,EAAE8xB,KAAUC,GACxE/xB,EAAEiyB,IAAe,GAAKjyB,EAAEiyB,IAAe,IAAmB,KAAZjyB,EAAEiyB,MAA+B,IAAdjyB,EAAEkyB,KAA+B,IAAdlyB,EAAEmyB,KAAoC,IAAnBnyB,EAAEoyB,KAAuBH,GAChIjyB,EAAEkyB,IAAe,GAAKlyB,EAAEkyB,IAAe,GAAMA,GAC7ClyB,EAAEmyB,IAAe,GAAKnyB,EAAEmyB,IAAe,GAAMA,GAC7CnyB,EAAEoyB,IAAe,GAAKpyB,EAAEoyB,IAAe,IAAMA,IAC5C,EAEDnT,EAAgBjiB,GAAGq1B,qBAAuBplB,EAAW+kB,IAAQ/kB,EAAW8kB,MACxE9kB,EAAW8kB,IAEX9S,EAAgBjiB,GAAGs1B,iBAAgC,IAAdrlB,IACrCA,EAAWslB,IAEXtT,EAAgBjiB,GAAGw1B,mBAAkC,IAAdvlB,IACvCA,EAAWwlB,IAGfxT,EAAgBjiB,GAAGiQ,SAAWA,GAG3BjQ,EAyCX,QAAS01B,IAAc7R,GACnB,GAAItgB,GAAGgX,EAGHob,EAAWC,EAAYC,EAAYC,EAFnC9O,EAASnD,EAAOzR,GAChB1N,EAAQqxB,GAAiBxzB,KAAKykB,IAAWgP,GAAczzB,KAAKykB,EAGhE,IAAItiB,EAAO,CAGP,IAFAud,EAAgB4B,GAAQjC,KAAM,EAEzBre,EAAI,EAAGgX,EAAI0b,GAAS7yB,OAAQG,EAAIgX,EAAGhX,IACpC,GAAI0yB,GAAS1yB,GAAG,GAAGhB,KAAKmC,EAAM,IAAK,CAC/BkxB,EAAaK,GAAS1yB,GAAG,GACzBoyB,GAA+B,IAAnBM,GAAS1yB,GAAG,EACxB,OAGR,GAAkB,MAAdqyB,EAEA,YADA/R,EAAOzB,UAAW,EAGtB,IAAI1d,EAAM,GAAI,CACV,IAAKnB,EAAI,EAAGgX,EAAI2b,GAAS9yB,OAAQG,EAAIgX,EAAGhX,IACpC,GAAI2yB,GAAS3yB,GAAG,GAAGhB,KAAKmC,EAAM,IAAK,CAE/BmxB,GAAcnxB,EAAM,IAAM,KAAOwxB,GAAS3yB,GAAG,EAC7C,OAGR,GAAkB,MAAdsyB,EAEA,YADAhS,EAAOzB,UAAW,GAI1B,IAAKuT,GAA2B,MAAdE,EAEd,YADAhS,EAAOzB,UAAW,EAGtB,IAAI1d,EAAM,GAAI,CACV,IAAIyxB,GAAQ5zB,KAAKmC,EAAM,IAInB,YADAmf,EAAOzB,UAAW,EAFlB0T,GAAW,IAMnBjS,EAAOR,GAAKuS,GAAcC,GAAc,KAAOC,GAAY,IAC3DM,GAA0BvS,OAE1BA,GAAOzB,UAAW,EAQ1B,QAASiU,IAAkBxS,GACvB,GAAImD,GAAQtiB,EAAO4xB,EACfV,EAAYC,EAAYC,EAaxBS,EAAUC,EAZVC,GACAC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,UAERC,EAAW,2BASf,IANAnQ,EAASnD,EAAOzR,GACXhJ,QAAQ,qBAAsB,KAC9BA,QAAQ,WAAY,KACpBA,QAAQ,WAAY,IACzB1E,EAAQ0yB,GAAc70B,KAAKykB,GAEhB,CAMP,GALAsP,EAAY5xB,EAAM,GAAK,OAA8B,IAApBA,EAAM,GAAGtB,OAAgB,KAAO,KAAO,GACxEwyB,EAAa,UAAalxB,EAAM,GAAGtB,OAAS,GAAM,QAAU,OAC5DyyB,EAAa,SAAWnxB,EAAM,GAAK,MAAQ,IAGvCA,EAAM,GAAI,CACV,GAAI2yB,GAAa,GAAIh1B,MAAKqC,EAAM,IAC5B4yB,GAAa,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,OAAOD,EAAW1F,SAEvE,IAAIjtB,EAAM,GAAGmF,OAAO,EAAE,KAAOytB,EAGzB,MAFArV,GAAgB4B,GAAQ7B,iBAAkB,OAC1C6B,EAAOzB,UAAW,GAK1B,OAAQ1d,EAAM,GAAGtB,QACb,IAAK,GACqB,IAAlBozB,EACAD,EAAW,UAEXC,EAAgBW,EAAS/yB,QAAQM,EAAM,GAAG,GAAG+hB,eAAiB,GAC9D8P,GAAaC,EAAgB,EAAK,KAAO,OACnC,GAAKA,GAAeptB,QAAQ,MAAO,KAAM1E,MAAM,OAAO,GAAK,KAErE,MACJ,KAAK,GACD6xB,EAAWE,EAAU/xB,EAAM,GAC3B,MACJ,SACI6xB,EAAWE,EAAU,QAE7B/xB,EAAM,GAAK6xB,EACX1S,EAAOzR,GAAK1N,EAAM6yB,OAAO,GAAGhxB,KAAK,IACjCuvB,EAAW,MACXjS,EAAOR,GAAKiT,EAAYV,EAAaC,EAAaC,EAClDM,GAA0BvS,GAC1B5B,EAAgB4B,GAAQ9B,SAAU,MAElC8B,GAAOzB,UAAW,EAK1B,QAASoV,IAAiB3T,GACtB,GAAI8G,GAAU8M,GAAgBl1B,KAAKshB,EAAOzR,GAE1C,IAAgB,OAAZuY,EAEA,YADA9G,EAAOpB,GAAK,GAAIpgB,OAAMsoB,EAAQ,IAIlC+K,IAAc7R,IACU,IAApBA,EAAOzB,iBACAyB,GAAOzB,SAKlBiU,GAAkBxS,IACM,IAApBA,EAAOzB,iBACAyB,GAAOzB,SAMlB7B,EAAMmX,wBAAwB7T,KAclC,QAAS8T,IAAS30B,EAAGC,EAAGhD,GACpB,MAAS,OAAL+C,EACOA,EAEF,MAALC,EACOA,EAEJhD,EAGX,QAAS23B,IAAiB/T,GAEtB,GAAIgU,GAAW,GAAIx1B,MAAKke,EAAM4F,MAC9B,OAAItC,GAAOiU,SACCD,EAASlJ,iBAAkBkJ,EAASE,cAAeF,EAASnM,eAEhEmM,EAASrJ,cAAeqJ,EAASG,WAAYH,EAASI,WAOlE,QAASC,IAAiBrU,GACtB,GAAItgB,GAAG0pB,EAAkBkL,EAAaC,EAAzB3X,IAEb,KAAIoD,EAAOpB,GAAX,CA6BA,IAzBA0V,EAAcP,GAAiB/T,GAG3BA,EAAOsH,IAAyB,MAAnBtH,EAAOwH,GAAG0J,KAAqC,MAApBlR,EAAOwH,GAAGyJ,KAClDuD,GAAsBxU,GAID,MAArBA,EAAOyU,aACPF,EAAYT,GAAS9T,EAAOwH,GAAG2J,IAAOmD,EAAYnD,MAE9CnR,EAAOyU,WAAarK,GAAWmK,IAAoC,IAAtBvU,EAAOyU,cACpDrW,EAAgB4B,GAAQwR,oBAAqB,GAGjDpI,EAAOyB,GAAc0J,EAAW,EAAGvU,EAAOyU,YAC1CzU,EAAOwH,GAAGyJ,IAAS7H,EAAK8K,cACxBlU,EAAOwH,GAAG0J,IAAQ9H,EAAKvB,cAQtBnoB,EAAI,EAAGA,EAAI,GAAqB,MAAhBsgB,EAAOwH,GAAG9nB,KAAcA,EACzCsgB,EAAOwH,GAAG9nB,GAAKkd,EAAMld,GAAK40B,EAAY50B,EAI1C,MAAOA,EAAI,EAAGA,IACVsgB,EAAOwH,GAAG9nB,GAAKkd,EAAMld,GAAsB,MAAhBsgB,EAAOwH,GAAG9nB,GAAqB,IAANA,EAAU,EAAI,EAAKsgB,EAAOwH,GAAG9nB,EAI7D,MAApBsgB,EAAOwH,GAAG4J,KACgB,IAAtBpR,EAAOwH,GAAG6J,KACY,IAAtBrR,EAAOwH,GAAG8J,KACiB,IAA3BtR,EAAOwH,GAAG+J,MACdvR,EAAO0U,UAAW,EAClB1U,EAAOwH,GAAG4J,IAAQ,GAGtBpR,EAAOpB,IAAMoB,EAAOiU,QAAUpJ,GAAgBN,IAAYtY,MAAM,KAAM2K,GAGnD,MAAfoD,EAAON,MACPM,EAAOpB,GAAG+V,cAAc3U,EAAOpB,GAAGgW,gBAAkB5U,EAAON,MAG3DM,EAAO0U,WACP1U,EAAOwH,GAAG4J,IAAQ,KAI1B,QAASoD,IAAsBxU,GAC3B,GAAIpE,GAAGiZ,EAAUvJ,EAAMC,EAASN,EAAKC,EAAK4J,EAAMC,CAGhD,IADAnZ,EAAIoE,EAAOsH,GACC,MAAR1L,EAAEoZ,IAAqB,MAAPpZ,EAAE9J,GAAoB,MAAP8J,EAAExB,EACjC6Q,EAAM,EACNC,EAAM,EAMN2J,EAAWf,GAASlY,EAAEoZ,GAAIhV,EAAOwH,GAAG2J,IAAOtF,GAAWoJ,KAAe,EAAG,GAAGvN,MAC3E4D,EAAOwI,GAASlY,EAAE9J,EAAG,KACrByZ,EAAUuI,GAASlY,EAAExB,EAAG,IACV,GAAKmR,EAAU,KACzBwJ,GAAkB,OAEnB,CACH9J,EAAMjL,EAAOH,QAAQqM,MAAMjB,IAC3BC,EAAMlL,EAAOH,QAAQqM,MAAMhB,GAE3B,IAAIgK,GAAUrJ,GAAWoJ,KAAehK,EAAKC,EAE7C2J,GAAWf,GAASlY,EAAEuZ,GAAInV,EAAOwH,GAAG2J,IAAO+D,EAAQxN,MAGnD4D,EAAOwI,GAASlY,EAAEA,EAAGsZ,EAAQ5J,MAElB,MAAP1P,EAAEhU,IAEF2jB,EAAU3P,EAAEhU,GACE,GAAK2jB,EAAU,KACzBwJ,GAAkB,GAER,MAAPnZ,EAAEhX,GAET2mB,EAAU3P,EAAEhX,EAAIqmB,GACZrP,EAAEhX,EAAI,GAAKgX,EAAEhX,EAAI,KACjBmwB,GAAkB,IAItBxJ,EAAUN,EAGdK,EAAO,GAAKA,EAAOS,GAAY8I,EAAU5J,EAAKC,GAC9C9M,EAAgB4B,GAAQyR,gBAAiB,EACf,MAAnBsD,EACP3W,EAAgB4B,GAAQ2R,kBAAmB,GAE3CmD,EAAOzJ,GAAmBwJ,EAAUvJ,EAAMC,EAASN,EAAKC,GACxDlL,EAAOwH,GAAG2J,IAAQ2D,EAAKpN,KACvB1H,EAAOyU,WAAaK,EAAKlJ,WAWjC,QAAS2G,IAA0BvS,GAE/B,GAAIA,EAAOR,KAAO9C,EAAM0Y,SAEpB,WADAvD,IAAc7R,EAGlB,IAAIA,EAAOR,KAAO9C,EAAM2Y,SAEpB,WADA7C,IAAkBxS,EAGtBA,GAAOwH,MACPpJ,EAAgB4B,GAAQzC,OAAQ,CAGhC,IACI7d,GAAG41B,EAAalO,EAAQ5B,EAAO+P,EAD/BpS,EAAS,GAAKnD,EAAOzR,GAErBinB,EAAerS,EAAO5jB,OACtBk2B,EAAyB,CAI7B,KAFArO,EAASnB,EAAajG,EAAOR,GAAIQ,EAAOH,SAAShf,MAAMklB,QAElDrmB,EAAI,EAAGA,EAAI0nB,EAAO7nB,OAAQG,IAC3B8lB,EAAQ4B,EAAO1nB,GACf41B,GAAenS,EAAOtiB,MAAM8lB,EAAsBnB,EAAOxF,SAAgB,GAGrEsV,IACAC,EAAUpS,EAAOnd,OAAO,EAAGmd,EAAO5iB,QAAQ+0B,IACtCC,EAAQh2B,OAAS,GACjB6e,EAAgB4B,GAAQvC,YAAYjd,KAAK+0B,GAE7CpS,EAASA,EAAO7c,MAAM6c,EAAO5iB,QAAQ+0B,GAAeA,EAAY/1B,QAChEk2B,GAA0BH,EAAY/1B,QAGtComB,GAAqBH,IACjB8P,EACAlX,EAAgB4B,GAAQzC,OAAQ,EAGhCa,EAAgB4B,GAAQxC,aAAahd,KAAKglB,GAE9C+B,GAAwB/B,EAAO8P,EAAatV,IAEvCA,EAAOjB,UAAYuW,GACxBlX,EAAgB4B,GAAQxC,aAAahd,KAAKglB,EAKlDpH,GAAgB4B,GAAQtC,cAAgB8X,EAAeC,EACnDtS,EAAO5jB,OAAS,GAChB6e,EAAgB4B,GAAQvC,YAAYjd,KAAK2iB,GAIzCnD,EAAOwH,GAAG4J,KAAS,KACiB,IAApChT,EAAgB4B,GAAQhB,SACxBgB,EAAOwH,GAAG4J,IAAQ,IAClBhT,EAAgB4B,GAAQhB,YAAUxf,IAGtC4e,EAAgB4B,GAAQhC,gBAAkBgC,EAAOwH,GAAGlhB,MAAM,GAC1D8X,EAAgB4B,GAAQ/B,SAAW+B,EAAO0V,UAE1C1V,EAAOwH,GAAG4J,IAAQuE,GAAgB3V,EAAOH,QAASG,EAAOwH,GAAG4J,IAAOpR,EAAO0V,WAE1ErB,GAAgBrU,GAChBgR,GAAchR,GAIlB,QAAS2V,IAAiBzY,EAAQ0Y,EAAM3X,GACpC,GAAI4X,EAEJ,OAAgB,OAAZ5X,EAEO2X,EAEgB,MAAvB1Y,EAAO4Y,aACA5Y,EAAO4Y,aAAaF,EAAM3X,GACX,MAAff,EAAO6Y,MAEdF,EAAO3Y,EAAO6Y,KAAK9X,GACf4X,GAAQD,EAAO,KACfA,GAAQ,IAEPC,GAAiB,KAATD,IACTA,EAAO,GAEJA,GAGAA,EAKf,QAASI,IAAyBhW,GAC9B,GAAIiW,GACAC,EAEAC,EACAz2B,EACA02B,CAEJ,IAAyB,IAArBpW,EAAOR,GAAGjgB,OAGV,MAFA6e,GAAgB4B,GAAQnC,eAAgB,OACxCmC,EAAOpB,GAAK,GAAIpgB,MAAK2gB,KAIzB,KAAKzf,EAAI,EAAGA,EAAIsgB,EAAOR,GAAGjgB,OAAQG,IAC9B02B,EAAe,EACfH,EAAa7W,KAAeY,GACN,MAAlBA,EAAOiU,UACPgC,EAAWhC,QAAUjU,EAAOiU,SAEhCgC,EAAWzW,GAAKQ,EAAOR,GAAG9f,GAC1B6yB,GAA0B0D,GAErB3X,EAAQ2X,KAKbG,GAAgBhY,EAAgB6X,GAAYvY,cAG5C0Y,GAAkE,GAAlDhY,EAAgB6X,GAAYzY,aAAaje,OAEzD6e,EAAgB6X,GAAYI,MAAQD,GAEjB,MAAfD,GAAuBC,EAAeD,KACtCA,EAAcC,EACdF,EAAaD,GAIrB15B,GAAOyjB,EAAQkW,GAAcD,GAGjC,QAASK,IAAiBtW,GACtB,IAAIA,EAAOpB,GAAX,CAIA,GAAIlf,GAAIskB,EAAqBhE,EAAOzR,GACpCyR,GAAOwH,GAAK/gB,GAAK/G,EAAEgoB,KAAMhoB,EAAEioB,MAAOjoB,EAAEmtB,KAAOntB,EAAE0pB,KAAM1pB,EAAEk2B,KAAMl2B,EAAE62B,OAAQ72B,EAAE82B,OAAQ92B,EAAE+2B,aAAc,SAAUh6B,GACrG,MAAOA,IAAOkJ,SAASlJ,EAAK,MAGhC43B,GAAgBrU,IAGpB,QAAS0W,IAAkB1W,GACvB,GAAIjD,GAAM,GAAIgD,GAAOiR,GAAc2F,GAAc3W,IAOjD,OANIjD,GAAI2X,WAEJ3X,EAAIuP,IAAI,EAAG,KACXvP,EAAI2X,aAAWl1B,IAGZud,EAGX,QAAS4Z,IAAe3W,GACpB,GAAIpD,GAAQoD,EAAOzR,GACfnN,EAAS4e,EAAOR,EAIpB,OAFAQ,GAAOH,QAAUG,EAAOH,SAAWyQ,GAAUtQ,EAAOP,IAEtC,OAAV7C,OAA8Bpd,KAAX4B,GAAkC,KAAVwb,EACpCsC,GAAevB,WAAW,KAGhB,gBAAVf,KACPoD,EAAOzR,GAAKqO,EAAQoD,EAAOH,QAAQ+W,SAASha,IAG5C5b,EAAS4b,GACF,GAAImD,GAAOiR,GAAcpU,KACzBre,EAAOqe,GACdoD,EAAOpB,GAAKhC,EACL7c,EAAQqB,GACf40B,GAAyBhW,GAClB5e,EACPmxB,GAA0BvS,GAE1B6W,GAAgB7W,GAGf1B,EAAQ0B,KACTA,EAAOpB,GAAK,MAGToB,IAGX,QAAS6W,IAAgB7W,GACrB,GAAIpD,GAAQoD,EAAOzR,EACfuO,GAAYF,GACZoD,EAAOpB,GAAK,GAAIpgB,MAAKke,EAAM4F,OACpB/jB,EAAOqe,GACdoD,EAAOpB,GAAK,GAAIpgB,MAAKoe,EAAM7b,WACH,gBAAV6b,GACd+W,GAAiB3T,GACVjgB,EAAQ6c,IACfoD,EAAOwH,GAAK/gB,EAAImW,EAAMtW,MAAM,GAAI,SAAU7J,GACtC,MAAOkJ,UAASlJ,EAAK,MAEzB43B,GAAgBrU,IACT7M,EAASyJ,GAChB0Z,GAAiBtW,GACV1iB,EAASsf,GAEhBoD,EAAOpB,GAAK,GAAIpgB,MAAKoe,GAErBF,EAAMmX,wBAAwB7T,GAItC,QAAS5C,IAAkBR,EAAOxb,EAAQ8b,EAAQC,EAAQ2Z,GACtD,GAAI16B,KAoBJ,QAlBe,IAAX8gB,IAA8B,IAAXA,IACnBC,EAASD,EACTA,MAAS1d,KAGR2T,EAASyJ,IAAUC,EAAcD,IAC7B7c,EAAQ6c,IAA2B,IAAjBA,EAAMrd,UAC7Bqd,MAAQpd,IAIZpD,EAAEmjB,kBAAmB,EACrBnjB,EAAE63B,QAAU73B,EAAEujB,OAASmX,EACvB16B,EAAEqjB,GAAKvC,EACP9gB,EAAEmS,GAAKqO,EACPxgB,EAAEojB,GAAKpe,EACPhF,EAAE2iB,QAAU5B,EAELuZ,GAAiBt6B,GAG5B,QAAS64B,IAAarY,EAAOxb,EAAQ8b,EAAQC,GACzC,MAAOC,IAAiBR,EAAOxb,EAAQ8b,EAAQC,GAAQ,GAgC3D,QAAS4Z,IAAO3zB,EAAI4zB,GAChB,GAAIja,GAAKrd,CAIT,IAHuB,IAAnBs3B,EAAQz3B,QAAgBQ,EAAQi3B,EAAQ,MACxCA,EAAUA,EAAQ,KAEjBA,EAAQz3B,OACT,MAAO01B,KAGX,KADAlY,EAAMia,EAAQ,GACTt3B,EAAI,EAAGA,EAAIs3B,EAAQz3B,SAAUG,EACzBs3B,EAAQt3B,GAAG4e,YAAa0Y,EAAQt3B,GAAG0D,GAAI2Z,KACxCA,EAAMia,EAAQt3B,GAGtB,OAAOqd,GAIX,QAAShf,MAGL,MAAOg5B,IAAO,cAFAzwB,MAAMpK,KAAKoD,UAAW,IAKxC,QAAStB,MAGL,MAAO+4B,IAAO,aAFAzwB,MAAMpK,KAAKoD,UAAW,IAWxC,QAAS23B,IAAgB96B,GACrB,IAAK,GAAI+G,KAAO/G,GACZ,IAAiC,IAA3B+6B,GAAS32B,QAAQ2C,IAA0B,MAAV/G,EAAE+G,IAAiBvE,MAAMxC,EAAE+G,IAC9D,OAAO,CAKf,KAAK,GADDi0B,IAAiB,EACZz3B,EAAI,EAAGA,EAAIw3B,GAAS33B,SAAUG,EACnC,GAAIvD,EAAE+6B,GAASx3B,IAAK,CAChB,GAAIy3B,EACA,OAAO,CAEPC,YAAWj7B,EAAE+6B,GAASx3B,OAAS2gB,EAAMlkB,EAAE+6B,GAASx3B,OAChDy3B,GAAiB,GAK7B,OAAO,EAGX,QAASE,MACL,MAAO17B,MAAK4iB,SAGhB,QAAS+Y,MACL,MAAOC,IAAepY,KAG1B,QAASqY,IAAUC,GACf,GAAItT,GAAkBH,EAAqByT,GACvCC,EAAQvT,EAAgBuD,MAAQ,EAChCiQ,EAAWxT,EAAgByT,SAAW,EACtC/O,EAAS1E,EAAgBwD,OAAS,EAClCkQ,EAAQ1T,EAAgBmH,MAAQ,EAChCwM,EAAO3T,EAAgB0I,KAAO,EAC9BsC,EAAQhL,EAAgByR,MAAQ,EAChCtG,EAAUnL,EAAgBoS,QAAU,EACpCwB,EAAU5T,EAAgBqS,QAAU,EACpCwB,EAAe7T,EAAgBsS,aAAe,CAElD96B,MAAK4iB,SAAW0Y,GAAgB9S,GAGhCxoB,KAAKs8B,eAAiBD,EACR,IAAVD,EACU,IAAVzI,EACQ,IAARH,EAAe,GAAK,GAGxBxzB,KAAKu8B,OAASJ,EACF,EAARD,EAIJl8B,KAAKosB,SAAWc,EACD,EAAX8O,EACQ,GAARD,EAEJ/7B,KAAKw8B,SAELx8B,KAAKkkB,QAAUyQ,KAEf30B,KAAKy8B,UAGT,QAASC,IAAY57B,GACjB,MAAOA,aAAe+6B,IAG1B,QAASc,IAAUlY,GACf,MAAIA,GAAS,GACyB,EAA3BhiB,KAAKm6B,OAAO,EAAInY,GAEhBhiB,KAAKm6B,MAAMnY,GAM1B,QAASoY,IAAQhT,EAAOiT,GACpBlT,EAAeC,EAAO,EAAG,EAAG,WACxB,GAAIgT,GAAS78B,KAAK+8B,YACdC,EAAO,GAKX,OAJIH,GAAS,IACTA,GAAUA,EACVG,EAAO,KAEJA,EAAO1T,KAAYuT,EAAS,IAAK,GAAKC,EAAYxT,IAAW,EAAW,GAAI,KAuB3F,QAAS2T,IAAiBC,EAAS1V,GAC/B,GAAI2V,IAAW3V,GAAU,IAAItiB,MAAMg4B,EAEnC,IAAgB,OAAZC,EACA,MAAO,KAGX,IAAIC,GAAUD,EAAQA,EAAQv5B,OAAS,OACnC2I,GAAW6wB,EAAQ,IAAIl4B,MAAMm4B,MAAiB,IAAK,EAAG,GACtD1J,EAAuB,GAAXpnB,EAAM,GAAWmY,EAAMnY,EAAM,GAE7C,OAAmB,KAAZonB,EACL,EACa,MAAbpnB,EAAM,GAAaonB,GAAWA,EAIpC,QAAS2J,IAAgBrc,EAAOsc,GAC5B,GAAInc,GAAKwG,CACT,OAAI2V,GAAMvZ,QACN5C,EAAMmc,EAAMC,QACZ5V,GAAQviB,EAAS4b,IAAUre,EAAOqe,GAASA,EAAM7b,UAAYk0B,GAAYrY,GAAO7b,WAAagc,EAAIhc,UAEjGgc,EAAI6B,GAAGwa,QAAQrc,EAAI6B,GAAG7d,UAAYwiB,GAClC7G,EAAMwD,aAAanD,GAAK,GACjBA,GAEAkY,GAAYrY,GAAOyc,QAIlC,QAASC,IAAen9B,GAGpB,MAAoD,KAA5CiC,KAAKm6B,MAAMp8B,EAAEyiB,GAAG2a,oBAAsB,IAqBlD,QAASC,IAAc5c,EAAO6c,EAAeC,GACzC,GACIC,GADAnB,EAAS78B,KAAKikB,SAAW,CAE7B,KAAKjkB,KAAK2iB,UACN,MAAgB,OAAT1B,EAAgBjhB,KAAOwjB,GAElC,IAAa,MAATvC,EAAe,CACf,GAAqB,gBAAVA,IAEP,GAAc,QADdA,EAAQgc,GAAiBgB,GAAkBhd,IAEvC,MAAOjhB,UAEJyC,MAAK0iB,IAAIlE,GAAS,KAAO8c,IAChC9c,GAAgB,GAmBpB,QAjBKjhB,KAAKgkB,QAAU8Z,IAChBE,EAAcL,GAAc39B,OAEhCA,KAAKikB,QAAUhD,EACfjhB,KAAKgkB,QAAS,EACK,MAAfga,GACAh+B,KAAK2wB,IAAIqN,EAAa,KAEtBnB,IAAW5b,KACN6c,GAAiB99B,KAAKk+B,kBACvBC,GAAYn+B,KAAM47B,GAAe3a,EAAQ4b,EAAQ,KAAM,GAAG,GAClD78B,KAAKk+B,oBACbl+B,KAAKk+B,mBAAoB,EACzBnd,EAAMwD,aAAavkB,MAAM,GACzBA,KAAKk+B,kBAAoB,OAG1Bl+B,KAEP,MAAOA,MAAKgkB,OAAS6Y,EAASc,GAAc39B,MAIpD,QAASo+B,IAAYnd,EAAO6c,GACxB,MAAa,OAAT7c,GACqB,gBAAVA,KACPA,GAASA,GAGbjhB,KAAK+8B,UAAU9b,EAAO6c,GAEf99B,OAECA,KAAK+8B,YAIrB,QAASsB,IAAgBP,GACrB,MAAO99B,MAAK+8B,UAAU,EAAGe,GAG7B,QAASQ,IAAkBR,GASvB,MARI99B,MAAKgkB,SACLhkB,KAAK+8B,UAAU,EAAGe,GAClB99B,KAAKgkB,QAAS,EAEV8Z,GACA99B,KAAKu+B,SAASZ,GAAc39B,MAAO,MAGpCA,KAGX,QAASw+B,MACL,GAAiB,MAAbx+B,KAAK+jB,KACL/jB,KAAK+8B,UAAU/8B,KAAK+jB,MAAM,GAAO,OAC9B,IAAuB,gBAAZ/jB,MAAK4S,GAAiB,CACpC,GAAI6rB,GAAQxB,GAAiByB,GAAa1+B,KAAK4S,GAClC,OAAT6rB,EACAz+B,KAAK+8B,UAAU0B,GAGfz+B,KAAK+8B,UAAU,GAAG,GAG1B,MAAO/8B,MAGX,QAAS2+B,IAAsB1d,GAC3B,QAAKjhB,KAAK2iB,YAGV1B,EAAQA,EAAQqY,GAAYrY,GAAO8b,YAAc,GAEzC/8B,KAAK+8B,YAAc9b,GAAS,IAAO,GAG/C,QAAS2d,MACL,MACI5+B,MAAK+8B,YAAc/8B,KAAKw9B,QAAQxR,MAAM,GAAG+Q,aACzC/8B,KAAK+8B,YAAc/8B,KAAKw9B,QAAQxR,MAAM,GAAG+Q,YAIjD,QAAS8B,MACL,IAAK1d,EAAYnhB,KAAK8+B,eAClB,MAAO9+B,MAAK8+B,aAGhB,IAAIr+B,KAKJ,IAHAgjB,EAAWhjB,EAAGT,MACdS,EAAIu6B,GAAcv6B,GAEdA,EAAEorB,GAAI,CACN,GAAI7nB,GAAQvD,EAAEujB,OAAS1C,EAAU7gB,EAAEorB,IAAMyN,GAAY74B,EAAEorB,GACvD7rB,MAAK8+B,cAAgB9+B,KAAK2iB,WACtBmC,EAAcrkB,EAAEorB,GAAI7nB,EAAMoD,WAAa,MAE3CpH,MAAK8+B,eAAgB,CAGzB,OAAO9+B,MAAK8+B,cAGhB,QAASC,MACL,QAAO/+B,KAAK2iB,YAAa3iB,KAAKgkB,OAGlC,QAASgb,MACL,QAAOh/B,KAAK2iB,WAAY3iB,KAAKgkB,OAGjC,QAASib,MACL,QAAOj/B,KAAK2iB,YAAY3iB,KAAKgkB,QAA2B,IAAjBhkB,KAAKikB,SAWhD,QAAS2X,IAAgB3a,EAAO1Z,GAC5B,GAGIy1B,GACAkC,EACAC,EALArD,EAAW7a,EAEX/b,EAAQ,IAuDZ,OAlDIw3B,IAAWzb,GACX6a,GACI/M,GAAK9N,EAAMqb,cACXrwB,EAAKgV,EAAMsb,MACXzN,EAAK7N,EAAMmL,SAERzqB,EAASsf,IAChB6a,KACIv0B,EACAu0B,EAASv0B,GAAO0Z,EAEhB6a,EAASO,aAAepb,IAElB/b,EAAQk6B,GAAYr8B,KAAKke,KACnC+b,EAAqB,MAAb93B,EAAM,IAAe,EAAI,EACjC42B,GACIjN,EAAK,EACL5iB,EAAKyY,EAAMxf,EAAMqwB,KAAiCyH,EAClD7xB,EAAKuZ,EAAMxf,EAAMuwB,KAAiCuH,EAClDx8B,EAAKkkB,EAAMxf,EAAMwwB,KAAiCsH,EAClD5xB,EAAKsZ,EAAMxf,EAAMywB,KAAiCqH,EAClDjO,GAAKrK,EAAMiY,GAA8B,IAArBz3B,EAAM0wB,MAAwBoH,KAE5C93B,EAAQm6B,GAASt8B,KAAKke,KAChC+b,EAAqB,MAAb93B,EAAM,IAAe,EAAI,EACjC42B,GACIjN,EAAIyQ,GAASp6B,EAAM,GAAI83B,GACvBlO,EAAIwQ,GAASp6B,EAAM,GAAI83B,GACvB/c,EAAIqf,GAASp6B,EAAM,GAAI83B,GACvB/wB,EAAIqzB,GAASp6B,EAAM,GAAI83B,GACvB7xB,EAAIm0B,GAASp6B,EAAM,GAAI83B,GACvBx8B,EAAI8+B,GAASp6B,EAAM,GAAI83B,GACvB5xB,EAAIk0B,GAASp6B,EAAM,GAAI83B,KAER,MAAZlB,EACPA,KAC2B,gBAAbA,KAA0B,QAAUA,IAAY,MAAQA,MACtEqD,EAAUI,GAAkBjG,GAAYwC,EAASnY,MAAO2V,GAAYwC,EAASpY,KAE7EoY,KACAA,EAAS/M,GAAKoQ,EAAQ9C,aACtBP,EAAShN,EAAIqQ,EAAQjS,QAGzBgS,EAAM,GAAIrD,IAASC,GAEfY,GAAWzb,IAAUI,EAAWJ,EAAO,aACvCie,EAAIhb,QAAUjD,EAAMiD,SAGjBgb,EAMX,QAASI,IAAUE,EAAKxC,GAIpB,GAAI5b,GAAMoe,GAAO/D,WAAW+D,EAAI51B,QAAQ,IAAK,KAE7C,QAAQ5G,MAAMoe,GAAO,EAAIA,GAAO4b,EAGpC,QAASyC,IAA0BC,EAAM17B,GACrC,GAAIod,IAAOib,aAAc,EAAGnP,OAAQ,EAUpC,OARA9L,GAAI8L,OAASlpB,EAAMgoB,QAAU0T,EAAK1T,QACC,IAA9BhoB,EAAM+nB,OAAS2T,EAAK3T,QACrB2T,EAAKlC,QAAQ7M,IAAIvP,EAAI8L,OAAQ,KAAKyS,QAAQ37B,MACxCod,EAAI8L,OAGV9L,EAAIib,cAAgBr4B,GAAU07B,EAAKlC,QAAQ7M,IAAIvP,EAAI8L,OAAQ,KAEpD9L,EAGX,QAASme,IAAkBG,EAAM17B,GAC7B,GAAIod,EACJ,OAAMse,GAAK/c,WAAa3e,EAAM2e,WAI9B3e,EAAQs5B,GAAgBt5B,EAAO07B,GAC3BA,EAAKE,SAAS57B,GACdod,EAAMqe,GAA0BC,EAAM17B,IAEtCod,EAAMqe,GAA0Bz7B,EAAO07B,GACvCte,EAAIib,cAAgBjb,EAAIib,aACxBjb,EAAI8L,QAAU9L,EAAI8L,QAGf9L,IAZKib,aAAc,EAAGnP,OAAQ,GAgBzC,QAAS2S,IAAYC,EAAW7qB,GAC5B,MAAO,UAAU0C,EAAKooB,GAClB,GAAIC,GAAKC,CAWT,OATe,QAAXF,GAAoB/8B,OAAO+8B,KAC3Bla,EAAgB5Q,EAAM,YAAcA,EAAQ,uDAAyDA,EAAO,kGAE5GgrB,EAAMtoB,EAAKA,EAAMooB,EAAQA,EAASE,GAGtCtoB,EAAqB,gBAARA,IAAoBA,EAAMA,EACvCqoB,EAAMpE,GAAejkB,EAAKooB,GAC1B5B,GAAYn+B,KAAMggC,EAAKF,GAChB9/B,MAIf,QAASm+B,IAAazX,EAAKoV,EAAUoE,EAAU3b,GAC3C,GAAI8X,GAAeP,EAASQ,cACxBH,EAAOQ,GAASb,EAASS,OACzBrP,EAASyP,GAASb,EAAS1P,QAE1B1F,GAAI/D,YAKT4B,EAA+B,MAAhBA,GAA8BA,EAEzC8X,GACA3V,EAAIzD,GAAGwa,QAAQ/W,EAAIzD,GAAG7d,UAAYi3B,EAAe6D,GAEjD/D,GACAjT,EAAMxC,EAAK,OAAQjP,EAAIiP,EAAK,QAAUyV,EAAO+D,GAE7ChT,GACAI,GAAS5G,EAAKjP,EAAIiP,EAAK,SAAWwG,EAASgT,GAE3C3b,GACAxD,EAAMwD,aAAamC,EAAKyV,GAAQjP,IAOxC,QAASiT,IAAkBC,EAAUzZ,GACjC,GAAIiB,GAAOwY,EAASxY,KAAKjB,EAAK,QAAQ,EACtC,OAAOiB,IAAQ,EAAI,WACXA,GAAQ,EAAI,WACZA,EAAO,EAAI,UACXA,EAAO,EAAI,UACXA,EAAO,EAAI,UACXA,EAAO,EAAI,WAAa,WAGpC,QAASyY,IAAYC,EAAMC,GAGvB,GAAI5Z,GAAM2Z,GAAQhH,KACdkH,EAAMlD,GAAgB3W,EAAK3mB,MAAMygC,QAAQ,OACzCh7B,EAASsb,EAAM2f,eAAe1gC,KAAMwgC,IAAQ,WAE5C5Z,EAAS2Z,IAAYxa,EAAWwa,EAAQ96B,IAAW86B,EAAQ96B,GAAQlF,KAAKP,KAAM2mB,GAAO4Z,EAAQ96B,GAEjG,OAAOzF,MAAKyF,OAAOmhB,GAAU5mB,KAAKiqB,aAAaxD,SAAShhB,EAAQzF,KAAMs5B,GAAY3S,KAGtF,QAAS6W,MACL,MAAO,IAAIpZ,GAAOpkB,MAGtB,QAAS2/B,IAAS1e,EAAOmH,GACrB,GAAIuY,GAAat7B,EAAS4b,GAASA,EAAQqY,GAAYrY,EACvD,UAAMjhB,KAAK2iB,YAAage,EAAWhe,aAGnCyF,EAAQD,EAAgBhH,EAAYiH,GAAiB,cAARA,GAC/B,gBAAVA,EACOpoB,KAAKoF,UAAYu7B,EAAWv7B,UAE5Bu7B,EAAWv7B,UAAYpF,KAAKw9B,QAAQiD,QAAQrY,GAAOhjB,WAIlE,QAASw6B,IAAU3e,EAAOmH,GACtB,GAAIuY,GAAat7B,EAAS4b,GAASA,EAAQqY,GAAYrY,EACvD,UAAMjhB,KAAK2iB,YAAage,EAAWhe,aAGnCyF,EAAQD,EAAgBhH,EAAYiH,GAAiB,cAARA,GAC/B,gBAAVA,EACOpoB,KAAKoF,UAAYu7B,EAAWv7B,UAE5BpF,KAAKw9B,QAAQoD,MAAMxY,GAAOhjB,UAAYu7B,EAAWv7B,WAIhE,QAASy7B,IAAWld,EAAMD,EAAI0E,EAAO0Y,GAEjC,MADAA,GAAcA,GAAe,MACF,MAAnBA,EAAY,GAAa9gC,KAAK2/B,QAAQhc,EAAMyE,IAAUpoB,KAAK4/B,SAASjc,EAAMyE,MAC1D,MAAnB0Y,EAAY,GAAa9gC,KAAK4/B,SAASlc,EAAI0E,IAAUpoB,KAAK2/B,QAAQjc,EAAI0E,IAG/E,QAAS2Y,IAAQ9f,EAAOmH,GACpB,GACI4Y,GADAL,EAAat7B,EAAS4b,GAASA,EAAQqY,GAAYrY,EAEvD,UAAMjhB,KAAK2iB,YAAage,EAAWhe,aAGnCyF,EAAQD,EAAeC,GAAS,eAClB,gBAAVA,EACOpoB,KAAKoF,YAAcu7B,EAAWv7B,WAErC47B,EAAUL,EAAWv7B,UACdpF,KAAKw9B,QAAQiD,QAAQrY,GAAOhjB,WAAa47B,GAAWA,GAAWhhC,KAAKw9B,QAAQoD,MAAMxY,GAAOhjB,YAIxG,QAAS67B,IAAehgB,EAAOmH,GAC3B,MAAOpoB,MAAK+gC,OAAO9f,EAAOmH,IAAUpoB,KAAK2/B,QAAQ1e,EAAMmH,GAG3D,QAAS8Y,IAAgBjgB,EAAOmH,GAC5B,MAAOpoB,MAAK+gC,OAAO9f,EAAOmH,IAAUpoB,KAAK4/B,SAAS3e,EAAMmH,GAG5D,QAASR,IAAM3G,EAAOmH,EAAO+Y,GACzB,GAAInqB,GACAoqB,EACAC,EAAOza,CAEX,OAAK5mB,MAAK2iB,WAIV3L,EAAOsmB,GAAgBrc,EAAOjhB,MAEzBgX,EAAK2L,WAIVye,EAAoD,KAAvCpqB,EAAK+lB,YAAc/8B,KAAK+8B,aAErC3U,EAAQD,EAAeC,GAET,SAAVA,GAA8B,UAAVA,GAA+B,YAAVA,GACzCxB,EAAS0a,GAAUthC,KAAMgX,GACX,YAAVoR,EACAxB,GAAkB,EACD,SAAVwB,IACPxB,GAAkB,MAGtBya,EAAQrhC,KAAOgX,EACf4P,EAAmB,WAAVwB,EAAqBiZ,EAAQ,IACxB,WAAVjZ,EAAqBiZ,EAAQ,IACnB,SAAVjZ,EAAmBiZ,EAAQ,KACjB,QAAVjZ,GAAmBiZ,EAAQD,GAAa,MAC9B,SAAVhZ,GAAoBiZ,EAAQD,GAAa,OACzCC,GAEDF,EAAUva,EAASpC,EAASoC,IAvBxBpD,KANAA,IAgCf,QAAS8d,IAAW99B,EAAGC,GAEnB,GAGI89B,GAASC,EAHTC,EAA0C,IAAvBh+B,EAAEsoB,OAASvoB,EAAEuoB,SAAiBtoB,EAAEuoB,QAAUxoB,EAAEwoB,SAE/D0V,EAASl+B,EAAEg6B,QAAQ7M,IAAI8Q,EAAgB,SAc3C,OAXIh+B,GAAIi+B,EAAS,GACbH,EAAU/9B,EAAEg6B,QAAQ7M,IAAI8Q,EAAiB,EAAG,UAE5CD,GAAU/9B,EAAIi+B,IAAWA,EAASH,KAElCA,EAAU/9B,EAAEg6B,QAAQ7M,IAAI8Q,EAAiB,EAAG,UAE5CD,GAAU/9B,EAAIi+B,IAAWH,EAAUG,MAI9BD,EAAiBD,IAAW,EAMzC,QAAS92B,MACL,MAAO1K,MAAKw9B,QAAQjc,OAAO,MAAM9b,OAAO,oCAG5C,QAASD,MACL,IAAKxF,KAAK2iB,UACN,MAAO,KAEX,IAAIniB,GAAIR,KAAKw9B,QAAQ9b,KACrB,OAAIlhB,GAAEurB,OAAS,GAAKvrB,EAAEurB,OAAS,KACpB1B,EAAa7pB,EAAG,kCAEvBulB,EAAWljB,KAAKwP,UAAU7M,aAEnBxF,KAAKsF,SAASE,cAElB6kB,EAAa7pB,EAAG,gCAS3B,QAASmhC,MACL,IAAK3hC,KAAK2iB,UACN,MAAO,qBAAuB3iB,KAAK4S,GAAK,MAE5C,IAAImX,GAAO,SACP6X,EAAO,EACN5hC,MAAK++B,YACNhV,EAA4B,IAArB/pB,KAAK+8B,YAAoB,aAAe,mBAC/C6E,EAAO,IAEX,IAAIC,GAAS,IAAM9X,EAAO,MACtBgC,EAAQ,GAAK/rB,KAAK+rB,QAAU/rB,KAAK+rB,QAAU,KAAQ,OAAS,SAE5D+V,EAASF,EAAO,MAEpB,OAAO5hC,MAAKyF,OAAOo8B,EAAS9V,EAHb,wBAG+B+V,GAGlD,QAASr8B,IAAQs8B,GACRA,IACDA,EAAc/hC,KAAKi/B,QAAUle,EAAMihB,iBAAmBjhB,EAAMkhB,cAEhE,IAAIrb,GAASyD,EAAarqB,KAAM+hC,EAChC,OAAO/hC,MAAKiqB,aAAaiY,WAAWtb,GAGxC,QAASjD,IAAM2c,EAAM/Y,GACjB,MAAIvnB,MAAK2iB,YACCtd,EAASi7B,IAASA,EAAK3d,WACxB2W,GAAYgH,GAAM3d,WAChBiZ,IAAgBlY,GAAI1jB,KAAM2jB,KAAM2c,IAAO/e,OAAOvhB,KAAKuhB,UAAU4gB,UAAU5a,GAEvEvnB,KAAKiqB,aAAa/C,cAIjC,QAASkb,IAAS7a,GACd,MAAOvnB,MAAK2jB,KAAK2V,KAAe/R,GAGpC,QAAS7D,IAAI4c,EAAM/Y,GACf,MAAIvnB,MAAK2iB,YACCtd,EAASi7B,IAASA,EAAK3d,WACxB2W,GAAYgH,GAAM3d,WAChBiZ,IAAgBjY,KAAM3jB,KAAM0jB,GAAI4c,IAAO/e,OAAOvhB,KAAKuhB,UAAU4gB,UAAU5a,GAEvEvnB,KAAKiqB,aAAa/C,cAIjC,QAASmb,IAAO9a,GACZ,MAAOvnB,MAAK0jB,GAAG4V,KAAe/R,GAMlC,QAAShG,IAAQha,GACb,GAAI+6B,EAEJ,YAAYz+B,KAAR0D,EACOvH,KAAKkkB,QAAQqQ,OAEpB+N,EAAgB3N,GAAUptB,GACL,MAAjB+6B,IACAtiC,KAAKkkB,QAAUoe,GAEZtiC,MAef,QAASiqB,MACL,MAAOjqB,MAAKkkB,QAGhB,QAASuc,IAASrY,GAId,OAHAA,EAAQD,EAAeC,IAInB,IAAK,OACDpoB,KAAKgsB,MAAM,EAEf,KAAK,UACL,IAAK,QACDhsB,KAAKytB,KAAK,EAEd,KAAK,OACL,IAAK,UACL,IAAK,MACL,IAAK,OACDztB,KAAKwzB,MAAM,EAEf,KAAK,OACDxzB,KAAK2zB,QAAQ,EAEjB,KAAK,SACD3zB,KAAKo8B,QAAQ,EAEjB,KAAK,SACDp8B,KAAKq8B,aAAa,GAgB1B,MAZc,SAAVjU,GACApoB,KAAK4vB,QAAQ,GAEH,YAAVxH,GACApoB,KAAKuiC,WAAW,GAIN,YAAVna,GACApoB,KAAKgsB,MAAqC,EAA/BvpB,KAAKqK,MAAM9M,KAAKgsB,QAAU,IAGlChsB,KAGX,QAAS4gC,IAAOxY,GAEZ,WAAcvkB,MADdukB,EAAQD,EAAeC,KACc,gBAAVA,EAChBpoB,MAIG,SAAVooB,IACAA,EAAQ,OAGLpoB,KAAKygC,QAAQrY,GAAOuI,IAAI,EAAc,YAAVvI,EAAsB,OAASA,GAAQmW,SAAS,EAAG,OAG1F,QAASn5B,MACL,MAAOpF,MAAKijB,GAAG7d,UAAmC,KAArBpF,KAAKikB,SAAW,GAGjD,QAASue,MACL,MAAO//B,MAAKqK,MAAM9M,KAAKoF,UAAY,KAGvC,QAASE,MACL,MAAO,IAAIzC,MAAK7C,KAAKoF,WAGzB,QAASgC,MACL,GAAI5G,GAAIR,IACR,QAAQQ,EAAEurB,OAAQvrB,EAAEwrB,QAASxrB,EAAEitB,OAAQjtB,EAAEy5B,OAAQz5B,EAAEo6B,SAAUp6B,EAAEq6B,SAAUr6B,EAAEs6B,eAG/E,QAASrgB,MACL,GAAIja,GAAIR,IACR,QACI+7B,MAAOv7B,EAAEurB,OACTmB,OAAQ1sB,EAAEwrB,QACVyB,KAAMjtB,EAAEitB,OACR+F,MAAOhzB,EAAEgzB,QACTG,QAASnzB,EAAEmzB,UACXyI,QAAS57B,EAAE47B,UACXC,aAAc77B,EAAE67B,gBAIxB,QAASoG,MAEL,MAAOziC,MAAK2iB,UAAY3iB,KAAKwF,cAAgB,KAGjD,QAASk9B,MACL,MAAO/f,GAAQ3iB,MAGnB,QAAS2iC,MACL,MAAO/hC,MAAW6hB,EAAgBziB,OAGtC,QAAS4iC,MACL,MAAOngB,GAAgBziB,MAAMyQ,SAGjC,QAASoyB,MACL,OACI5hB,MAAOjhB,KAAK4S,GACZnN,OAAQzF,KAAK6jB,GACbtC,OAAQvhB,KAAKkkB,QACbiX,MAAOn7B,KAAKgkB,OACZxC,OAAQxhB,KAAKojB,SAcrB,QAAS0f,IAAwBjZ,EAAOkZ,GACpCnZ,EAAe,GAAIC,EAAOA,EAAMjmB,QAAS,EAAGm/B,GAwChD,QAASC,IAAgB/hB,GACrB,MAAOgiB,IAAqB1iC,KAAKP,KACzBihB,EACAjhB,KAAK2vB,OACL3vB,KAAK4vB,UACL5vB,KAAKiqB,aAAasG,MAAMjB,IACxBtvB,KAAKiqB,aAAasG,MAAMhB,KAGpC,QAAS2T,IAAmBjiB,GACxB,MAAOgiB,IAAqB1iC,KAAKP,KACzBihB,EAAOjhB,KAAKmjC,UAAWnjC,KAAKuiC,aAAc,EAAG,GAGzD,QAASa,MACL,MAAOhT,IAAYpwB,KAAK+rB,OAAQ,EAAG,GAGvC,QAASsX,MACL,GAAIC,GAAWtjC,KAAKiqB,aAAasG,KACjC,OAAOH,IAAYpwB,KAAK+rB,OAAQuX,EAAShU,IAAKgU,EAAS/T,KAG3D,QAAS0T,IAAqBhiB,EAAO0O,EAAMC,EAASN,EAAKC,GACrD,GAAIgU,EACJ,OAAa,OAATtiB,EACOiP,GAAWlwB,KAAMsvB,EAAKC,GAAKxD,MAElCwX,EAAcnT,GAAYnP,EAAOqO,EAAKC,GAClCI,EAAO4T,IACP5T,EAAO4T,GAEJC,GAAWjjC,KAAKP,KAAMihB,EAAO0O,EAAMC,EAASN,EAAKC,IAIhE,QAASiU,IAAWtK,EAAUvJ,EAAMC,EAASN,EAAKC,GAC9C,GAAIkU,GAAgB/T,GAAmBwJ,EAAUvJ,EAAMC,EAASN,EAAKC,GACjE9B,EAAOyB,GAAcuU,EAAc1X,KAAM,EAAG0X,EAAcxT,UAK9D,OAHAjwB,MAAK+rB,KAAK0B,EAAK0B,kBACfnvB,KAAKgsB,MAAMyB,EAAK8K,eAChBv4B,KAAKytB,KAAKA,EAAKvB,cACRlsB,KAwBX,QAAS0jC,IAAeziB,GACpB,MAAgB,OAATA,EAAgBxe,KAAKoX,MAAM7Z,KAAKgsB,QAAU,GAAK,GAAKhsB,KAAKgsB,MAAoB,GAAb/K,EAAQ,GAASjhB,KAAKgsB,QAAU,GAyD3G,QAAS2X,IAAiB1iB,GACtB,GAAIgP,GAAYxtB,KAAKm6B,OAAO58B,KAAKw9B,QAAQiD,QAAQ,OAASzgC,KAAKw9B,QAAQiD,QAAQ,SAAW,OAAS,CACnG,OAAgB,OAATxf,EAAgBgP,EAAYjwB,KAAK2wB,IAAK1P,EAAQgP,EAAY,KAiGrE,QAAS2T,IAAQ3iB,EAAO5Z,GACpBA,EAAMuuB,IAAelR,EAAuB,KAAhB,KAAOzD,IAiBvC,QAAS4iB,MACL,MAAO7jC,MAAKgkB,OAAS,MAAQ,GAGjC,QAAS8f,MACL,MAAO9jC,MAAKgkB,OAAS,6BAA+B,GA2GxD,QAAS+f,IAAY9iB,GACjB,MAAOqY,IAAoB,IAARrY,GAGvB,QAAS+iB,MACL,MAAO1K,IAAYhjB,MAAM,KAAM3S,WAAWsgC,YAG9C,QAASC,IAAoB1c,GACzB,MAAOA,GAyCX,QAAS2c,IAAO1+B,EAAQsN,EAAOzE,EAAOuP,GAClC,GAAI0D,GAASoT,KACTjT,EAAMJ,IAAYvC,IAAIlB,EAAQ9K,EAClC,OAAOwO,GAAOjT,GAAOoT,EAAKjc,GAG9B,QAAS2+B,IAAgB3+B,EAAQsN,EAAOzE,GAQpC,GAPI3M,EAAS8D,KACTsN,EAAQtN,EACRA,MAAS5B,IAGb4B,EAASA,GAAU,GAEN,MAATsN,EACA,MAAOoxB,IAAM1+B,EAAQsN,EAAOzE,EAAO,QAGvC,IAAIvK,GACA0R,IACJ,KAAK1R,EAAI,EAAGA,EAAI,GAAIA,IAChB0R,EAAI1R,GAAKogC,GAAM1+B,EAAQ1B,EAAGuK,EAAO,QAErC,OAAOmH,GAWX,QAAS4uB,IAAkBC,EAAc7+B,EAAQsN,EAAOzE,GACxB,iBAAjBg2B,IACH3iC,EAAS8D,KACTsN,EAAQtN,EACRA,MAAS5B,IAGb4B,EAASA,GAAU,KAEnBA,EAAS6+B;cACTvxB,EAAQtN,EACR6+B,GAAe,EAEX3iC,EAAS8D,KACTsN,EAAQtN,EACRA,MAAS5B,IAGb4B,EAASA,GAAU,GAGvB,IAAI8b,GAASoT,KACT4P,EAAQD,EAAe/iB,EAAOgP,MAAMjB,IAAM,CAE9C,IAAa,MAATvc,EACA,MAAOoxB,IAAM1+B,GAASsN,EAAQwxB,GAAS,EAAGj2B,EAAO,MAGrD,IAAIvK,GACA0R,IACJ,KAAK1R,EAAI,EAAGA,EAAI,EAAGA,IACf0R,EAAI1R,GAAKogC,GAAM1+B,GAAS1B,EAAIwgC,GAAS,EAAGj2B,EAAO,MAEnD,OAAOmH,GAGX,QAAS+uB,IAAY/+B,EAAQsN,GACzB,MAAOqxB,IAAe3+B,EAAQsN,EAAO,UAGzC,QAAS0xB,IAAiBh/B,EAAQsN,GAC9B,MAAOqxB,IAAe3+B,EAAQsN,EAAO,eAGzC,QAAS2xB,IAAcJ,EAAc7+B,EAAQsN,GACzC,MAAOsxB,IAAiBC,EAAc7+B,EAAQsN,EAAO,YAGzD,QAAS4xB,IAAmBL,EAAc7+B,EAAQsN,GAC9C,MAAOsxB,IAAiBC,EAAc7+B,EAAQsN,EAAO,iBAGzD,QAAS6xB,IAAiBN,EAAc7+B,EAAQsN,GAC5C,MAAOsxB,IAAiBC,EAAc7+B,EAAQsN,EAAO,eAqBzD,QAASoS,MACL,GAAIuP,GAAiB10B,KAAKw8B,KAa1B,OAXAx8B,MAAKs8B,cAAgBuI,GAAQ7kC,KAAKs8B,eAClCt8B,KAAKu8B,MAAgBsI,GAAQ7kC,KAAKu8B,OAClCv8B,KAAKosB,QAAgByY,GAAQ7kC,KAAKosB,SAElCsI,EAAK2H,aAAgBwI,GAAQnQ,EAAK2H,cAClC3H,EAAK0H,QAAgByI,GAAQnQ,EAAK0H,SAClC1H,EAAKf,QAAgBkR,GAAQnQ,EAAKf,SAClCe,EAAKlB,MAAgBqR,GAAQnQ,EAAKlB,OAClCkB,EAAKxH,OAAgB2X,GAAQnQ,EAAKxH,QAClCwH,EAAKqH,MAAgB8I,GAAQnQ,EAAKqH,OAE3B/7B,KAGX,QAAS8kC,IAAehJ,EAAU7a,EAAO1e,EAAOu9B,GAC5C,GAAI97B,GAAQ43B,GAAe3a,EAAO1e,EAMlC,OAJAu5B,GAASQ,eAAiBwD,EAAY97B,EAAMs4B,cAC5CR,EAASS,OAAiBuD,EAAY97B,EAAMu4B,MAC5CT,EAAS1P,SAAiB0T,EAAY97B,EAAMooB,QAErC0P,EAASW,UAIpB,QAASsI,IAAO9jB,EAAO1e,GACnB,MAAOuiC,IAAc9kC,KAAMihB,EAAO1e,EAAO,GAI7C,QAASyiC,IAAY/jB,EAAO1e,GACxB,MAAOuiC,IAAc9kC,KAAMihB,EAAO1e,GAAQ,GAG9C,QAAS0iC,IAASxgB,GACd,MAAIA,GAAS,EACFhiB,KAAKqK,MAAM2X,GAEXhiB,KAAKoX,KAAK4K,GAIzB,QAASygB,MACL,GAII9I,GAASzI,EAASH,EAAOuI,EAAOoJ,EAJhC9I,EAAer8B,KAAKs8B,cACpBH,EAAen8B,KAAKu8B,MACpBrP,EAAeltB,KAAKosB,QACpBsI,EAAe10B,KAAKw8B,KAwCxB,OAnCOH,IAAgB,GAAKF,GAAQ,GAAKjP,GAAU,GAC1CmP,GAAgB,GAAKF,GAAQ,GAAKjP,GAAU,IACjDmP,GAAuD,MAAvC4I,GAAQG,GAAalY,GAAUiP,GAC/CA,EAAO,EACPjP,EAAS,GAKbwH,EAAK2H,aAAeA,EAAe,IAEnCD,EAAoB5X,EAAS6X,EAAe,KAC5C3H,EAAK0H,QAAeA,EAAU,GAE9BzI,EAAoBnP,EAAS4X,EAAU,IACvC1H,EAAKf,QAAeA,EAAU,GAE9BH,EAAoBhP,EAASmP,EAAU,IACvCe,EAAKlB,MAAeA,EAAQ,GAE5B2I,GAAQ3X,EAASgP,EAAQ,IAGzB2R,EAAiB3gB,EAAS6gB,GAAalJ,IACvCjP,GAAUiY,EACVhJ,GAAQ8I,GAAQG,GAAaD,IAG7BpJ,EAAQvX,EAAS0I,EAAS,IAC1BA,GAAU,GAEVwH,EAAKyH,KAASA,EACdzH,EAAKxH,OAASA,EACdwH,EAAKqH,MAASA,EAEP/7B,KAGX,QAASqlC,IAAclJ,GAGnB,MAAc,MAAPA,EAAc,OAGzB,QAASiJ,IAAclY,GAEnB,MAAgB,QAATA,EAAkB,KAG7B,QAASoY,IAAIld,GACT,IAAKpoB,KAAK2iB,UACN,MAAOa,IAEX,IAAI2Y,GACAjP,EACAmP,EAAer8B,KAAKs8B,aAIxB,IAAc,WAFdlU,EAAQD,EAAeC,KAEY,SAAVA,EAGrB,MAFA+T,GAASn8B,KAAKu8B,MAAUF,EAAe,MACvCnP,EAASltB,KAAKosB,QAAUiZ,GAAalJ,GACpB,UAAV/T,EAAoB8E,EAASA,EAAS,EAI7C,QADAiP,EAAOn8B,KAAKu8B,MAAQ95B,KAAKm6B,MAAMwI,GAAaplC,KAAKosB,UACzChE,GACJ,IAAK,OAAW,MAAO+T,GAAO,EAAQE,EAAe,MACrD,KAAK,MAAW,MAAOF,GAAeE,EAAe,KACrD,KAAK,OAAW,MAAc,IAAPF,EAAeE,EAAe,IACrD,KAAK,SAAW,MAAc,MAAPF,EAAeE,EAAe,GACrD,KAAK,SAAW,MAAc,OAAPF,EAAeE,EAAe,GAErD,KAAK,cAAe,MAAO55B,MAAKqK,MAAa,MAAPqvB,GAAgBE,CACtD,SAAS,KAAM,IAAIh4B,OAAM,gBAAkB+jB,IAMvD,QAASmd,MACL,MAAKvlC,MAAK2iB,UAIN3iB,KAAKs8B,cACQ,MAAbt8B,KAAKu8B,MACJv8B,KAAKosB,QAAU,GAAM,OACK,QAA3B1H,EAAM1kB,KAAKosB,QAAU,IANd5I,IAUf,QAASgiB,IAAQC,GACb,MAAO,YACH,MAAOzlC,MAAKslC,GAAGG,IAavB,QAASC,IAAOtd,GAEZ,MADAA,GAAQD,EAAeC,GAChBpoB,KAAK2iB,UAAY3iB,KAAKooB,EAAQ,OAAS5E,IAGlD,QAASmiB,IAAW1wB,GAChB,MAAO,YACH,MAAOjV,MAAK2iB,UAAY3iB,KAAKw8B,MAAMvnB,GAAQuO,KAYnD,QAAS0Y,MACL,MAAO1X,GAASxkB,KAAKm8B,OAAS,GAclC,QAASyJ,IAAkBpe,EAAQ/C,EAAQ8C,EAAeE,EAAUlG,GAChE,MAAOA,GAAO+F,aAAa7C,GAAU,IAAK8C,EAAeC,EAAQC,GAGrE,QAASoe,IAAgBC,EAAgBve,EAAehG,GACpD,GAAIua,GAAWF,GAAekK,GAAgB3gB,MAC1CiX,EAAWQ,GAAMd,EAASwJ,GAAG,MAC7B3R,EAAWiJ,GAAMd,EAASwJ,GAAG,MAC7B9R,EAAWoJ,GAAMd,EAASwJ,GAAG,MAC7BnJ,EAAWS,GAAMd,EAASwJ,GAAG,MAC7BpY,EAAW0P,GAAMd,EAASwJ,GAAG,MAC7BvJ,EAAWa,GAAMd,EAASwJ,GAAG,MAE7B9hC,EAAI44B,GAAW2J,GAAWC,KAAO,IAAK5J,IAClCA,EAAU2J,GAAW36B,IAAQ,KAAMgxB,IACnCzI,GAAW,IAAkB,MAC7BA,EAAUoS,GAAWvlC,IAAQ,KAAMmzB,IACnCH,GAAW,IAAkB,MAC7BA,EAAUuS,GAAW56B,IAAQ,KAAMqoB,IACnC2I,GAAW,IAAkB,MAC7BA,EAAU4J,GAAW95B,IAAQ,KAAMkwB,IACnCjP,GAAW,IAAkB,MAC7BA,EAAU6Y,GAAWjX,IAAQ,KAAM5B,IACnC6O,GAAW,IAAkB,OAAmB,KAAMA,EAK9D,OAHAv4B,GAAE,GAAK+jB,EACP/jB,EAAE,IAAMsiC,EAAiB,EACzBtiC,EAAE,GAAK+d,EACAqkB,GAAkBtvB,MAAM,KAAM9S,GAIzC,QAASyiC,IAA4BC,GACjC,WAAyBriC,KAArBqiC,EACOtJ,GAEsB,kBAAvB,KACNA,GAAQsJ,GACD,GAMf,QAASC,IAA6BC,EAAWC,GAC7C,WAA8BxiC,KAA1BkiC,GAAWK,SAGDviC,KAAVwiC,EACON,GAAWK,IAEtBL,GAAWK,GAAaC,EACN,MAAdD,IACAL,GAAWC,GAAKK,EAAQ,IAErB,IAGX,QAASlE,IAAUmE,GACf,IAAKtmC,KAAK2iB,UACN,MAAO3iB,MAAKiqB,aAAa/C,aAG7B,IAAI3F,GAASvhB,KAAKiqB,aACdrD,EAASif,GAAe7lC,MAAOsmC,EAAY/kB,EAM/C,OAJI+kB,KACA1f,EAASrF,EAAOoG,YAAY3nB,KAAM4mB,IAG/BrF,EAAO2gB,WAAWtb,GAK7B,QAAS2f,MAQL,IAAKvmC,KAAK2iB,UACN,MAAO3iB,MAAKiqB,aAAa/C,aAG7B,IAGIyM,GAASH,EAAOuI,EAHhBK,EAAUoK,GAAMxmC,KAAKs8B,eAAiB,IACtCH,EAAeqK,GAAMxmC,KAAKu8B,OAC1BrP,EAAesZ,GAAMxmC,KAAKosB,QAI9BuH,GAAoBnP,EAAS4X,EAAU,IACvC5I,EAAoBhP,EAASmP,EAAU,IACvCyI,GAAW,GACXzI,GAAW,GAGXoI,EAASvX,EAAS0I,EAAS,IAC3BA,GAAU,EAIV,IAAIuZ,GAAI1K,EACJjN,EAAI5B,EACJvR,EAAIwgB,EACJhxB,EAAIqoB,EACJhzB,EAAImzB,EACJvoB,EAAIgxB,EACJ95B,EAAQtC,KAAK0mC,WAEjB,OAAKpkC,IAMGA,EAAQ,EAAI,IAAM,IACtB,KACCmkC,EAAIA,EAAI,IAAM,KACd3X,EAAIA,EAAI,IAAM,KACdnT,EAAIA,EAAI,IAAM,KACbxQ,GAAK3K,GAAK4K,EAAK,IAAM,KACtBD,EAAIA,EAAI,IAAM,KACd3K,EAAIA,EAAI,IAAM,KACd4K,EAAIA,EAAI,IAAM,IAXR,MAxvIf,GAAI4V,IAwGA2lB,EAEAA,IADAxiC,MAAMkO,UAAUs0B,KACTxiC,MAAMkO,UAAUs0B,KAEhB,SAAUC,GAIb,IAAK,GAHD35B,GAAIxI,OAAOzE,MACX+E,EAAMkI,EAAErJ,SAAW,EAEdG,EAAI,EAAGA,EAAIgB,EAAKhB,IACrB,GAAIA,IAAKkJ,IAAK25B,EAAIrmC,KAAKP,KAAMiN,EAAElJ,GAAIA,EAAGkJ,GAClC,OAAO,CAIf,QAAO,EAIf,IAAI8V,IAAS4jB,GAiDTxiB,GAAmBpD,EAAMoD,oBAiDzBG,IAAmB,EA8FnBwB,KAYJ/E,GAAMwE,6BAA8B,EACpCxE,EAAM4E,mBAAqB,IAyD3B,IAAI5R,GAGAA,IADAtP,OAAOsP,KACAtP,OAAOsP,KAEP,SAAUjT,GACb,GAAIiD,GAAGqd,IACP,KAAKrd,IAAKjD,GACFugB,EAAWvgB,EAAKiD,IAChBqd,EAAIvc,KAAKd,EAGjB,OAAOqd,GAIf,IA+WIxc,IA/WAwwB,GAASrhB,GAET8yB,IACAC,QAAU,gBACVC,QAAU,mBACVC,SAAW,eACXC,QAAU,oBACVC,SAAW,sBACXC,SAAW,KAQXC,IACAC,IAAO,YACPC,GAAO,SACPC,EAAO,aACPC,GAAO,eACPC,IAAO,sBACPC,KAAO,6BAyBPC,GAAgC,UAMhCC,IACAC,OAAS,QACTC,KAAS,SACT18B,EAAK,gBACL46B,GAAK,aACLxlC,EAAK,WACLunC,GAAK,aACL58B,EAAK,UACL68B,GAAK,WACL/7B,EAAK,QACLg8B,GAAK,UACLnZ,EAAK,UACLoZ,GAAK,YACLrZ,EAAK,SACLsZ,GAAK,YAeLjgB,MA4BAS,MA2EAyB,GAAmB,uLAEnBK,GAAwB,6CAExBF,MAEAP,MAoFAoe,GAAiB,KACjBC,GAAiB,OACjBC,GAAiB,QACjBC,GAAiB,QACjBC,GAAiB,aACjBC,GAAiB,QACjBC,GAAiB,YACjBC,GAAiB,gBACjBC,GAAiB,UACjBC,GAAiB,UACjBC,GAAiB,eAEjBC,GAAiB,MACjBC,GAAiB,WAEjBtK,GAAiB,qBACjBT,GAAmB,0BAEnBgL,GAAiB,uBAIjBC,GAAY,mHAGZpe,MA2BAW,MA8BA+J,GAAO,EACPF,GAAQ,EACRC,GAAO,EACPE,GAAO,EACPC,GAAS,EACTC,GAAS,EACTC,GAAc,EACdG,GAAO,EACPE,GAAU,CAKVrxB,IADAT,MAAMkO,UAAUzN,QACNT,MAAMkO,UAAUzN,QAEhB,SAAUukC,GAEhB,GAAIplC,EACJ,KAAKA,EAAI,EAAGA,EAAI/D,KAAK4D,SAAUG,EAC3B,GAAI/D,KAAK+D,KAAOolC,EACZ,MAAOplC,EAGf,QAAQ,EAIhB,IAAIopB,IAAYvoB,EAQhBglB,GAAe,KAAM,KAAM,GAAI,KAAM,WACjC,MAAO5pB,MAAKgsB,QAAU,IAG1BpC,EAAe,MAAO,EAAG,EAAG,SAAUnkB,GAClC,MAAOzF,MAAKiqB,aAAagD,YAAYjtB,KAAMyF,KAG/CmkB,EAAe,OAAQ,EAAG,EAAG,SAAUnkB,GACnC,MAAOzF,MAAKiqB,aAAaiD,OAAOltB,KAAMyF,KAK1CoiB,EAAa,QAAS,KAItBY,EAAgB,QAAS,GAIzBkC,EAAc,IAAQ8d,IACtB9d,EAAc,KAAQ8d,GAAWJ,IACjC1d,EAAc,MAAQ,SAAUI,EAAUxJ,GACtC,MAAOA,GAAOqM,iBAAiB7C,KAEnCJ,EAAc,OAAQ,SAAUI,EAAUxJ,GACtC,MAAOA,GAAO0M,YAAYlD,KAG9BS,IAAe,IAAK,MAAO,SAAUvK,EAAO5Z,GACxCA,EAAMiuB,IAAS5Q,EAAMzD,GAAS,IAGlCuK,IAAe,MAAO,QAAS,SAAUvK,EAAO5Z,EAAOgd,EAAQwF,GAC3D,GAAImC,GAAQ3H,EAAOH,QAAQsJ,YAAYvM,EAAO4I,EAAOxF,EAAOjB,QAE/C,OAAT4I,EACA3kB,EAAMiuB,IAAStJ,EAEfvJ,EAAgB4B,GAAQpC,aAAehB,GAM/C,IAAIqL,IAAmB,gCACnB8c,GAAsB,wFAAwFziC,MAAM,KAUpH0iC,GAA2B,kDAAkD1iC,MAAM,KAkInFqnB,GAA0Bkb,GAoB1B9a,GAAqB8a,EAwDzBtf,GAAe,IAAK,EAAG,EAAG,WACtB,GAAIiF,GAAI7uB,KAAK+rB,MACb,OAAO8C,IAAK,KAAO,GAAKA,EAAI,IAAMA,IAGtCjF,EAAe,GAAI,KAAM,GAAI,EAAG,WAC5B,MAAO5pB,MAAK+rB,OAAS,MAGzBnC,EAAe,GAAI,OAAU,GAAU,EAAG,QAC1CA,EAAe,GAAI,QAAU,GAAU,EAAG,QAC1CA,EAAe,GAAI,SAAU,GAAG,GAAO,EAAG,QAI1C/B,EAAa,OAAQ,KAIrBY,EAAgB,OAAQ,GAIxBkC,EAAc,IAAUqe,IACxBre,EAAc,KAAU8d,GAAWJ,IACnC1d,EAAc,OAAUke,GAAWN,IACnC5d,EAAc,QAAUme,GAAWN,IACnC7d,EAAc,SAAUme,GAAWN,IAEnChd,IAAe,QAAS,UAAWgK,IACnChK,GAAc,OAAQ,SAAUvK,EAAO5Z,GACnCA,EAAMmuB,IAAyB,IAAjBvU,EAAMrd,OAAemd,EAAMuoB,kBAAkBroB,GAASyD,EAAMzD,KAE9EuK,GAAc,KAAM,SAAUvK,EAAO5Z,GACjCA,EAAMmuB,IAAQzU,EAAMuoB,kBAAkBroB,KAE1CuK,GAAc,IAAK,SAAUvK,EAAO5Z,GAChCA,EAAMmuB,IAAQxrB,SAASiX,EAAO,MAelCF,EAAMuoB,kBAAoB,SAAUroB,GAChC,MAAOyD,GAAMzD,IAAUyD,EAAMzD,GAAS,GAAK,KAAO,KAKtD,IAAIsoB,IAAavgB,EAAW,YAAY,EA4FxCY,GAAe,KAAM,KAAM,GAAI,KAAM,QACrCA,EAAe,KAAM,KAAM,GAAI,KAAM,WAIrC/B,EAAa,OAAQ,KACrBA,EAAa,UAAW,KAIxBY,EAAgB,OAAQ,GACxBA,EAAgB,UAAW,GAI3BkC,EAAc,IAAM8d,IACpB9d,EAAc,KAAM8d,GAAWJ,IAC/B1d,EAAc,IAAM8d,IACpB9d,EAAc,KAAM8d,GAAWJ,IAE/B3c,IAAmB,IAAK,KAAM,IAAK,MAAO,SAAUzK,EAAO0O,EAAMtL,EAAQwF,GACrE8F,EAAK9F,EAAMxf,OAAO,EAAG,IAAMqa,EAAMzD,IAWrC,IAAIuoB,KACAla,IAAM,EACNC,IAAM,EAyBV3F,GAAe,IAAK,EAAG,KAAM,OAE7BA,EAAe,KAAM,EAAG,EAAG,SAAUnkB,GACjC,MAAOzF,MAAKiqB,aAAa2H,YAAY5xB,KAAMyF,KAG/CmkB,EAAe,MAAO,EAAG,EAAG,SAAUnkB,GAClC,MAAOzF,MAAKiqB,aAAa4H,cAAc7xB,KAAMyF,KAGjDmkB,EAAe,OAAQ,EAAG,EAAG,SAAUnkB,GACnC,MAAOzF,MAAKiqB,aAAa6H,SAAS9xB,KAAMyF,KAG5CmkB,EAAe,IAAK,EAAG,EAAG,WAC1BA,EAAe,IAAK,EAAG,EAAG,cAI1B/B,EAAa,MAAO,KACpBA,EAAa,UAAW,KACxBA,EAAa,aAAc,KAG3BY,EAAgB,MAAO,IACvBA,EAAgB,UAAW,IAC3BA,EAAgB,aAAc,IAI9BkC,EAAc,IAAQ8d,IACtB9d,EAAc,IAAQ8d,IACtB9d,EAAc,IAAQ8d,IACtB9d,EAAc,KAAQ,SAAUI,EAAUxJ,GACtC,MAAOA,GAAOwR,iBAAiBhI,KAEnCJ,EAAc,MAAS,SAAUI,EAAUxJ,GACvC,MAAOA,GAAOoR,mBAAmB5H,KAErCJ,EAAc,OAAU,SAAUI,EAAUxJ,GACxC,MAAOA,GAAO+Q,cAAcvH,KAGhCW,IAAmB,KAAM,MAAO,QAAS,SAAUzK,EAAO0O,EAAMtL,EAAQwF,GACpE,GAAI+F,GAAUvL,EAAOH,QAAQ4M,cAAc7P,EAAO4I,EAAOxF,EAAOjB,QAEjD,OAAXwM,EACAD,EAAK1jB,EAAI2jB,EAETnN,EAAgB4B,GAAQlB,eAAiBlC,IAIjDyK,IAAmB,IAAK,IAAK,KAAM,SAAUzK,EAAO0O,EAAMtL,EAAQwF,GAC9D8F,EAAK9F,GAASnF,EAAMzD,IA+BxB,IAAIwoB,IAAwB,2DAA2D9iC,MAAM,KAUzF+iC,GAA6B,8BAA8B/iC,MAAM,KAKjEgjC,GAA2B,uBAAuBhjC,MAAM,KAqJxD+rB,GAAuBwW,GAoBvBpW,GAA4BoW,GAoB5BhW,GAA0BgW,EAwE9Btf,GAAe,KAAM,KAAM,GAAI,EAAG,QAClCA,EAAe,KAAM,KAAM,GAAI,EAAG2J,IAClC3J,EAAe,KAAM,KAAM,GAAI,EAAG6J,IAElC7J,EAAe,MAAO,EAAG,EAAG,WACxB,MAAO,GAAK2J,GAAQjd,MAAMtW,MAAQspB,EAAStpB,KAAK2zB,UAAW,KAG/D/J,EAAe,QAAS,EAAG,EAAG,WAC1B,MAAO,GAAK2J,GAAQjd,MAAMtW,MAAQspB,EAAStpB,KAAK2zB,UAAW,GACvDrK,EAAStpB,KAAKo8B,UAAW,KAGjCxS,EAAe,MAAO,EAAG,EAAG,WACxB,MAAO,GAAK5pB,KAAKwzB,QAAUlK,EAAStpB,KAAK2zB,UAAW,KAGxD/J,EAAe,QAAS,EAAG,EAAG,WAC1B,MAAO,GAAK5pB,KAAKwzB,QAAUlK,EAAStpB,KAAK2zB,UAAW,GAChDrK,EAAStpB,KAAKo8B,UAAW,KASjC9Z,GAAS,KAAK,GACdA,GAAS,KAAK,GAIduF,EAAa,OAAQ,KAGrBY,EAAgB,OAAQ,IAQxBkC,EAAc,IAAMiJ,IACpBjJ,EAAc,IAAMiJ,IACpBjJ,EAAc,IAAM8d,IACpB9d,EAAc,IAAM8d,IACpB9d,EAAc,IAAM8d,IACpB9d,EAAc,KAAM8d,GAAWJ,IAC/B1d,EAAc,KAAM8d,GAAWJ,IAC/B1d,EAAc,KAAM8d,GAAWJ,IAE/B1d,EAAc,MAAO+d,IACrB/d,EAAc,QAASge,IACvBhe,EAAc,MAAO+d,IACrB/d,EAAc,QAASge,IAEvBnd,IAAe,IAAK,MAAOiK,IAC3BjK,IAAe,IAAK,MAAO,SAAUvK,EAAO5Z,EAAOgd,GAC/C,GAAIulB,GAASllB,EAAMzD,EACnB5Z,GAAMouB,IAAmB,KAAXmU,EAAgB,EAAIA,IAEtCpe,IAAe,IAAK,KAAM,SAAUvK,EAAO5Z,EAAOgd,GAC9CA,EAAOwlB,MAAQxlB,EAAOH,QAAQkW,KAAKnZ,GACnCoD,EAAO0V,UAAY9Y,IAEvBuK,IAAe,IAAK,MAAO,SAAUvK,EAAO5Z,EAAOgd,GAC/Chd,EAAMouB,IAAQ/Q,EAAMzD,GACpBwB,EAAgB4B,GAAQhB,SAAU,IAEtCmI,GAAc,MAAO,SAAUvK,EAAO5Z,EAAOgd,GACzC,GAAIvJ,GAAMmG,EAAMrd,OAAS,CACzByD,GAAMouB,IAAQ/Q,EAAMzD,EAAM5W,OAAO,EAAGyQ,IACpCzT,EAAMquB,IAAUhR,EAAMzD,EAAM5W,OAAOyQ,IACnC2H,EAAgB4B,GAAQhB,SAAU,IAEtCmI,GAAc,QAAS,SAAUvK,EAAO5Z,EAAOgd,GAC3C,GAAIylB,GAAO7oB,EAAMrd,OAAS,EACtBmmC,EAAO9oB,EAAMrd,OAAS,CAC1ByD,GAAMouB,IAAQ/Q,EAAMzD,EAAM5W,OAAO,EAAGy/B,IACpCziC,EAAMquB,IAAUhR,EAAMzD,EAAM5W,OAAOy/B,EAAM,IACzCziC,EAAMsuB,IAAUjR,EAAMzD,EAAM5W,OAAO0/B,IACnCtnB,EAAgB4B,GAAQhB,SAAU,IAEtCmI,GAAc,MAAO,SAAUvK,EAAO5Z,EAAOgd,GACzC,GAAIvJ,GAAMmG,EAAMrd,OAAS,CACzByD,GAAMouB,IAAQ/Q,EAAMzD,EAAM5W,OAAO,EAAGyQ,IACpCzT,EAAMquB,IAAUhR,EAAMzD,EAAM5W,OAAOyQ,MAEvC0Q,GAAc,QAAS,SAAUvK,EAAO5Z,EAAOgd,GAC3C,GAAIylB,GAAO7oB,EAAMrd,OAAS,EACtBmmC,EAAO9oB,EAAMrd,OAAS,CAC1ByD,GAAMouB,IAAQ/Q,EAAMzD,EAAM5W,OAAO,EAAGy/B,IACpCziC,EAAMquB,IAAUhR,EAAMzD,EAAM5W,OAAOy/B,EAAM,IACzCziC,EAAMsuB,IAAUjR,EAAMzD,EAAM5W,OAAO0/B,KAWvC,IA6CIzV,IA7CA0V,GAA6B,gBAgB7BC,GAAajhB,EAAW,SAAS,GAMjC6L,IACApO,SAAUogB,GACV/f,eAAgBsgB,GAChBlgB,YAryCqB,eAsyCrBE,QAhyCiB,KAiyCjB8iB,uBAAwBvC,GACxBrgB,aAAcsgB,GAEd1a,OAAQkc,GACRnc,YAAaoc,GAEb1Z,KAAM6Z,GAEN1X,SAAU2X,GACV7X,YAAa+X,GACb9X,cAAe6X,GAEfS,cAAeH,IAIf3V,MACAW,MA8MAuB,GAAmB,mJACnBC,GAAgB,8IAEhBG,GAAU,wBAEVF,KACC,eAAgB,wBAChB,aAAc,oBACd,eAAgB,mBAChB,aAAc,eAAe,IAC7B,WAAY,gBACZ,UAAW,cAAc,IACzB,aAAc,eACd,WAAY,UAEZ,aAAc,gBACd,YAAa,eAAe,IAC5B,UAAW,UAIZC,KACC,gBAAiB,wBACjB,gBAAiB,uBACjB,WAAY,mBACZ,QAAS,cACT,cAAe,sBACf,cAAe,qBACf,SAAU,iBACV,OAAQ,aACR,KAAM,SAGPuB,GAAkB,sBAwDlBL,GAAgB,8LAiGpB7W,GAAMmX,wBAA0BzS,EAC5B,iVAIA,SAAUpB,GACNA,EAAOpB,GAAK,GAAIpgB,MAAKwhB,EAAOzR,IAAMyR,EAAOiU,QAAU,OAAS,OAoJpEvX,EAAM0Y,SAAW,aAGjB1Y,EAAM2Y,SAAW,YA6PjB,IAAI0Q,IAAe3kB,EACf,qGACA,WACI,GAAIzhB,GAAQs1B,GAAYhjB,MAAM,KAAM3S,UACpC,OAAI3D,MAAK2iB,WAAa3e,EAAM2e,UACjB3e,EAAQhE,KAAOA,KAAOgE,EAEtBuf,MAKf8mB,GAAe5kB,EACf,qGACA,WACI,GAAIzhB,GAAQs1B,GAAYhjB,MAAM,KAAM3S,UACpC,OAAI3D,MAAK2iB,WAAa3e,EAAM2e,UACjB3e,EAAQhE,KAAOA,KAAOgE,EAEtBuf,MAwCfoD,GAAM,WACN,MAAO9jB,MAAK8jB,IAAM9jB,KAAK8jB,OAAS,GAAK9jB,OAGrC04B,IAAY,OAAQ,UAAW,QAAS,OAAQ,MAAO,OAAQ,SAAU,SAAU,cA+FvFsB,IAAO,IAAK,KACZA,GAAO,KAAM,IAIblS,EAAc,IAAMsT,IACpBtT,EAAc,KAAMsT,IACpBzS,IAAe,IAAK,MAAO,SAAUvK,EAAO5Z,EAAOgd,GAC/CA,EAAOiU,SAAU,EACjBjU,EAAON,KAAOkZ,GAAiBgB,GAAkBhd,IAQrD,IAAIoc,IAAc,iBA2ClBtc,GAAMwD,aAAe,YAmJrB,IAAI6a,IAAc,wDAKdC,GAAW,6IA+DfzD,IAAen0B,GAAKo0B,GAASxpB,UAC7BupB,GAAe0O,QAAU3O,EAuFzB,IAAIhL,IAAWkP,GAAY,EAAG,OAC1BtB,GAAWsB,IAAa,EAAG,WA8I/B9e,GAAMkhB,cAAgB,uBACtBlhB,EAAMihB,iBAAmB,wBAkGzB,IAAIuI,IAAO9kB,EACP,kJACA,SAAUle,GACN,WAAY1D,KAAR0D,EACOvH,KAAKiqB,aAELjqB,KAAKuhB,OAAOha,IA8H/BqiB,GAAe,GAAI,KAAM,GAAI,EAAG,WAC5B,MAAO5pB,MAAKk5B,WAAa,MAG7BtP,EAAe,GAAI,KAAM,GAAI,EAAG,WAC5B,MAAO5pB,MAAKwqC,cAAgB,MAOhC1H,GAAuB,OAAY,YACnCA,GAAuB,QAAY,YACnCA,GAAuB,OAAS,eAChCA,GAAuB,QAAS,eAIhCjb,EAAa,WAAY,MACzBA,EAAa,cAAe,MAI5BY,EAAgB,WAAY,GAC5BA,EAAgB,cAAe,GAK/BkC,EAAc,IAAUqe,IACxBre,EAAc,IAAUqe,IACxBre,EAAc,KAAU8d,GAAWJ,IACnC1d,EAAc,KAAU8d,GAAWJ,IACnC1d,EAAc,OAAUke,GAAWN,IACnC5d,EAAc,OAAUke,GAAWN,IACnC5d,EAAc,QAAUme,GAAWN,IACnC7d,EAAc,QAAUme,GAAWN,IAEnC9c,IAAmB,OAAQ,QAAS,OAAQ,SAAU,SAAUzK,EAAO0O,EAAMtL,EAAQwF,GACjF8F,EAAK9F,EAAMxf,OAAO,EAAG,IAAMqa,EAAMzD,KAGrCyK,IAAmB,KAAM,MAAO,SAAUzK,EAAO0O,EAAMtL,EAAQwF,GAC3D8F,EAAK9F,GAAS9I,EAAMuoB,kBAAkBroB,KAqD1C2I,EAAe,IAAK,EAAG,KAAM,WAI7B/B,EAAa,UAAW,KAIxBY,EAAgB,UAAW,GAI3BkC,EAAc,IAAKyd,IACnB5c,GAAc,IAAK,SAAUvK,EAAO5Z,GAChCA,EAAMiuB,IAA8B,GAApB5Q,EAAMzD,GAAS,KAWnC2I,EAAe,KAAM,KAAM,GAAI,KAAM,QAIrC/B,EAAa,OAAQ,KAGrBY,EAAgB,OAAQ,GAIxBkC,EAAc,IAAM8d,IACpB9d,EAAc,KAAM8d,GAAWJ,IAC/B1d,EAAc,KAAM,SAAUI,EAAUxJ,GAEpC,MAAOwJ,GACJxJ,EAAO4E,yBAA2B5E,EAAO6E,cAC1C7E,EAAO0E,iCAGbuF,IAAe,IAAK,MAAO+J,IAC3B/J,GAAc,KAAM,SAAUvK,EAAO5Z,GACjCA,EAAMkuB,IAAQ7Q,EAAMzD,EAAM/b,MAAMujC,IAAW,GAAI,KAKnD,IAAIgC,IAAmBzhB,EAAW,QAAQ,EAI1CY,GAAe,OAAQ,OAAQ,GAAI,OAAQ,aAI3C/B,EAAa,YAAa,OAG1BY,EAAgB,YAAa,GAI7BkC,EAAc,MAAQie,IACtBje,EAAc,OAAQ2d,IACtB9c,IAAe,MAAO,QAAS,SAAUvK,EAAO5Z,EAAOgd,GACnDA,EAAOyU,WAAapU,EAAMzD,KAc9B2I,EAAe,KAAM,KAAM,GAAI,EAAG,UAIlC/B,EAAa,SAAU,KAIvBY,EAAgB,SAAU,IAI1BkC,EAAc,IAAM8d,IACpB9d,EAAc,KAAM8d,GAAWJ,IAC/B7c,IAAe,IAAK,MAAOkK,GAI3B,IAAIgV,IAAe1hB,EAAW,WAAW,EAIzCY,GAAe,KAAM,KAAM,GAAI,EAAG,UAIlC/B,EAAa,SAAU,KAIvBY,EAAgB,SAAU,IAI1BkC,EAAc,IAAM8d,IACpB9d,EAAc,KAAM8d,GAAWJ,IAC/B7c,IAAe,IAAK,MAAOmK,GAI3B,IAAIgV,IAAe3hB,EAAW,WAAW,EAIzCY,GAAe,IAAK,EAAG,EAAG,WACtB,SAAU5pB,KAAK86B,cAAgB,OAGnClR,EAAe,GAAI,KAAM,GAAI,EAAG,WAC5B,SAAU5pB,KAAK86B,cAAgB,MAGnClR,EAAe,GAAI,MAAO,GAAI,EAAG,eACjCA,EAAe,GAAI,OAAQ,GAAI,EAAG,WAC9B,MAA4B,IAArB5pB,KAAK86B,gBAEhBlR,EAAe,GAAI,QAAS,GAAI,EAAG,WAC/B,MAA4B,KAArB5pB,KAAK86B,gBAEhBlR,EAAe,GAAI,SAAU,GAAI,EAAG,WAChC,MAA4B,KAArB5pB,KAAK86B,gBAEhBlR,EAAe,GAAI,UAAW,GAAI,EAAG,WACjC,MAA4B,KAArB5pB,KAAK86B,gBAEhBlR,EAAe,GAAI,WAAY,GAAI,EAAG,WAClC,MAA4B,KAArB5pB,KAAK86B,gBAEhBlR,EAAe,GAAI,YAAa,GAAI,EAAG,WACnC,MAA4B,KAArB5pB,KAAK86B,gBAMhBjT,EAAa,cAAe,MAI5BY,EAAgB,cAAe,IAI/BkC,EAAc,IAAQie,GAAWR,IACjCzd,EAAc,KAAQie,GAAWP,IACjC1d,EAAc,MAAQie,GAAWN,GAEjC,IAAIze,GACJ,KAAKA,GAAQ,OAAQA,GAAMjmB,QAAU,EAAGimB,IAAS,IAC7Cc,EAAcd,GAAOkf,GAOzB,KAAKlf,GAAQ,IAAKA,GAAMjmB,QAAU,EAAGimB,IAAS,IAC1C2B,GAAc3B,GAAO+Z,GAIzB,IAAIgH,IAAoB5hB,EAAW,gBAAgB,EAInDY,GAAe,IAAM,EAAG,EAAG,YAC3BA,EAAe,KAAM,EAAG,EAAG,WAY3B,IAAIxX,IAAQgS,EAAO/R,SAEnBD,IAAMue,IAAoBA,GAC1Bve,GAAMqU,SAAoB4Z,GAC1BjuB,GAAMorB,MAAoBA,GAC1BprB,GAAMwV,KAAoBA,GAC1BxV,GAAMwuB,MAAoBA,GAC1BxuB,GAAM3M,OAAoBA,GAC1B2M,GAAMuR,KAAoBA,GAC1BvR,GAAMgwB,QAAoBA,GAC1BhwB,GAAMsR,GAAoBA,GAC1BtR,GAAMiwB,MAAoBA,GAC1BjwB,GAAMqF,IAAoB0R,EAC1B/W,GAAMwwB,UAAoBA,GAC1BxwB,GAAMutB,QAAoBA,GAC1BvtB,GAAMwtB,SAAoBA,GAC1BxtB,GAAMyuB,UAAoBA,GAC1BzuB,GAAM2uB,OAAoBA,GAC1B3uB,GAAM6uB,cAAoBA,GAC1B7uB,GAAM8uB,eAAoBA,GAC1B9uB,GAAMuQ,QAAoB+f,GAC1BtwB,GAAMm4B,KAAoBA,GAC1Bn4B,GAAMmP,OAAoBA,GAC1BnP,GAAM6X,WAAoBA,GAC1B7X,GAAM/P,IAAoBgoC,GAC1Bj4B,GAAMhQ,IAAoBgoC,GAC1Bh4B,GAAMuwB,aAAoBA,GAC1BvwB,GAAM2M,IAAoBqK,EAC1BhX,GAAMquB,QAAoBA,GAC1BruB,GAAMmsB,SAAoBA,GAC1BnsB,GAAMhL,QAAoBA,GAC1BgL,GAAMqI,SAAoBA,GAC1BrI,GAAM9M,OAAoBA,GAC1B8M,GAAM5M,YAAoBA,GAC1B4M,GAAMuvB,QAAoBA,GAC1BvvB,GAAMqwB,OAAoBA,GAC1BrwB,GAAM1H,SAAoBA,GAC1B0H,GAAMowB,KAAoBA,GAC1BpwB,GAAMhN,QAAoBA,GAC1BgN,GAAMywB,aAAoBA,GAG1BzwB,GAAM2Z,KAAawd,GACnBn3B,GAAMsc,WAAaC,GAGnBvc,GAAM8mB,SAAc8J,GACpB5wB,GAAMo4B,YAActH,GAGpB9wB,GAAM6pB,QAAU7pB,GAAM4pB,SAAW0H,GAGjCtxB,GAAM4Z,MAAc0B,GACpBtb,GAAM0Z,YAAc6B,GAGpBvb,GAAMud,KAAiBvd,GAAM8pB,MAAexL,GAC5Cte,GAAM+wB,QAAiB/wB,GAAMy4B,SAAeja,GAC5Cxe,GAAMge,YAAiBiT,GACvBjxB,GAAM04B,eAAiB1H,GAGvBhxB,GAAMqb,KAAagd,GACnBr4B,GAAM8e,IAAa9e,GAAM+pB,KAAmBjK,GAC5C9f,GAAMwd,QAAawC,GACnBhgB,GAAMmwB,WAAalQ,GACnBjgB,GAAM6d,UAAa0T,GAGnBvxB,GAAM6nB,KAAO7nB,GAAMohB,MAAQyW,GAG3B73B,GAAMwoB,OAASxoB,GAAMuhB,QAAU+W,GAG/Bt4B,GAAMyoB,OAASzoB,GAAMgqB,QAAUuO,GAG/Bv4B,GAAM0oB,YAAc1oB,GAAMiqB,aAAeuO,GAGzCx4B,GAAM2qB,UAAuBc,GAC7BzrB,GAAMsP,IAAuB2c,GAC7BjsB,GAAMsrB,MAAuBY,GAC7BlsB,GAAM6xB,UAAuBzF,GAC7BpsB,GAAMusB,qBAAuBA,GAC7BvsB,GAAM24B,MAAuBnM,GAC7BxsB,GAAM2sB,QAAuBA,GAC7B3sB,GAAM4sB,YAAuBA,GAC7B5sB,GAAM6sB,MAAuBA,GAC7B7sB,GAAM+oB,MAAuB8D,GAG7B7sB,GAAM44B,SAAWnH,GACjBzxB,GAAM64B,SAAWnH,GAGjB1xB,GAAM84B,MAASzlB,EAAU,kDAAmDglB,IAC5Er4B,GAAM8a,OAASzH,EAAU,mDAAoDiI,IAC7Etb,GAAM2pB,MAAStW,EAAU,iDAAkD8jB,IAC3En3B,GAAMwvB,KAASnc,EAAU,2GAA4G2Y,IACrIhsB,GAAM+4B,aAAe1lB,EAAU,0GAA2GoZ,GAc1I,IAAIuM,IAAU5kB,EAAOnU,SAErB+4B,IAAQ3kB,SAAkBA,EAC1B2kB,GAAQtkB,eAAkBA,EAC1BskB,GAAQlkB,YAAkBA,EAC1BkkB,GAAQhkB,QAAkBA,EAC1BgkB,GAAQnQ,SAAkBiJ,GAC1BkH,GAAQlJ,WAAkBgC,GAC1BkH,GAAQ9jB,aAAkBA,EAC1B8jB,GAAQzjB,WAAkBA,EAC1ByjB,GAAQrsB,IAAkBA,EAG1BqsB,GAAQle,OAA2Bf,GACnCif,GAAQne,YAA2BV,GACnC6e,GAAQ5d,YAA2BJ,GACnCge,GAAQnd,YAAoBA,GAC5Bmd,GAAQxd,iBAAoBA,GAG5Bwd,GAAQzb,KAAOW,GACf8a,GAAQC,eAAiB5a,GACzB2a,GAAQE,eAAiB9a,GAGzB4a,GAAQtZ,SAAwBd,GAChCoa,GAAQxZ,YAAwBP,GAChC+Z,GAAQvZ,cAAwBV,GAChCia,GAAQta,cAAwBiB,GAEhCqZ,GAAQ9Y,cAA6BA,GACrC8Y,GAAQzY,mBAA6BA,GACrCyY,GAAQrY,iBAA6BA,GAGrCqY,GAAQhR,KAAOtG,GACfsX,GAAQ9oB,SAAWyR,GA4FnBU,GAAmB,MACfyV,uBAAwB,uBACxB9iB,QAAU,SAAU3C,GAChB,GAAIhhB,GAAIghB,EAAS,EAKjB,OAAOA,IAJoC,IAA7BC,EAAMD,EAAS,IAAM,IAAa,KACrC,IAANhhB,EAAW,KACL,IAANA,EAAW,KACL,IAANA,EAAW,KAAO,SAM/Bsd,EAAMwpB,KAAO9kB,EAAU,wDAAyDgP,IAChF1T,EAAMwqB,SAAW9lB,EAAU,gEAAiEkP,GAE5F,IAAIkQ,IAAUpiC,KAAK0iB,IA0JfqmB,GAAiBhG,GAAO,MACxBkB,GAAiBlB,GAAO,KACxBiG,GAAiBjG,GAAO,KACxBkG,GAAiBlG,GAAO,KACxBmG,GAAiBnG,GAAO,KACxBoG,GAAiBpG,GAAO,KACxBqG,GAAiBrG,GAAO,KACxBsG,GAAiBtG,GAAO,KAaxBnJ,GAAesJ,GAAW,gBAC1BvJ,GAAeuJ,GAAW,WAC1BhS,GAAegS,GAAW,WAC1BnS,GAAemS,GAAW,SAC1BxJ,GAAewJ,GAAW,QAC1BzY,GAAeyY,GAAW,UAC1B5J,GAAe4J,GAAW,SAM1B/I,GAAQn6B,KAAKm6B,MACbmJ,IACAC,GAAI,GACJ56B,EAAI,GACJ5K,EAAI,GACJ2K,EAAI,GACJc,EAAI,GACJ6iB,EAAI,IA6EJ0X,GAAQ/jC,KAAK0iB,IAwDb4mB,GAAUlQ,GAASxpB,SA0FvB,OAxFA05B,IAAQppB,QAAiB+Y,GACzBqQ,GAAQ5mB,IAAiBA,GACzB4mB,GAAQpb,IAAiBoU,GACzBgH,GAAQxN,SAAiByG,GACzB+G,GAAQzG,GAAiBA,GACzByG,GAAQP,eAAiBA,GACzBO,GAAQrF,UAAiBA,GACzBqF,GAAQN,UAAiBA,GACzBM,GAAQL,QAAiBA,GACzBK,GAAQJ,OAAiBA,GACzBI,GAAQH,QAAiBA,GACzBG,GAAQF,SAAiBA,GACzBE,GAAQD,QAAiBA,GACzBC,GAAQ3mC,QAAiBmgC,GACzBwG,GAAQtP,QAAiByI,GACzB6G,GAAQt0B,IAAiBiuB,GACzBqG,GAAQ1P,aAAiBA,GACzB0P,GAAQ3P,QAAiBA,GACzB2P,GAAQpY,QAAiBA,GACzBoY,GAAQvY,MAAiBA,GACzBuY,GAAQ5P,KAAiBA,GACzB4P,GAAQ7P,MAAiBA,GACzB6P,GAAQ7e,OAAiBA,GACzB6e,GAAQhQ,MAAiBA,GACzBgQ,GAAQ5J,SAAiBA,GACzB4J,GAAQvmC,YAAiB+gC,GACzBwF,GAAQrhC,SAAiB67B,GACzBwF,GAAQtJ,OAAiB8D,GACzBwF,GAAQxqB,OAAiBA,GACzBwqB,GAAQ9hB,WAAiBA,GAGzB8hB,GAAQC,YAAcvmB,EAAU,sFAAuF8gB,IACvHwF,GAAQxB,KAAOA,GAMf3gB,EAAe,IAAK,EAAG,EAAG,QAC1BA,EAAe,IAAK,EAAG,EAAG,WAI1Be,EAAc,IAAKqe,IACnBre,EAAc,IAAKse,IACnBzd,GAAc,IAAK,SAAUvK,EAAO5Z,EAAOgd,GACvCA,EAAOpB,GAAK,GAAIpgB,MAA6B,IAAxB44B,WAAWxa,EAAO,OAE3CuK,GAAc,IAAK,SAAUvK,EAAO5Z,EAAOgd,GACvCA,EAAOpB,GAAK,GAAIpgB,MAAK6hB,EAAMzD,MAM/BF,EAAMlK,QAAU,SAxzIhB,SAA0B1P,GACtB6Z,GAAe7Z,GAyzIHmyB,IAEhBvY,EAAMtZ,GAAwB2K,GAC9B2O,EAAM3e,IAAwBA,GAC9B2e,EAAM1e,IAAwBA,GAC9B0e,EAAM4F,IAAwBA,GAC9B5F,EAAMW,IAAwBJ,EAC9BP,EAAMyhB,KAAwBuB,GAC9BhjB,EAAMmM,OAAwBsX,GAC9BzjB,EAAMne,OAAwBA,EAC9Bme,EAAMQ,OAAwBkT,GAC9B1T,EAAMupB,QAAwB/mB,EAC9BxC,EAAM+a,SAAwBF,GAC9B7a,EAAM1b,SAAwBA,EAC9B0b,EAAM+Q,SAAwB4S,GAC9B3jB,EAAMkjB,UAAwBD,GAC9BjjB,EAAMkJ,WAAwB0K,GAC9B5T,EAAM2b,WAAwBA,GAC9B3b,EAAMkM,YAAwBwX,GAC9B1jB,EAAM6Q,YAAwBgT,GAC9B7jB,EAAM6T,aAAwBA,GAC9B7T,EAAMmU,aAAwBA,GAC9BnU,EAAMsT,QAAwBc,GAC9BpU,EAAM8Q,cAAwB8S,GAC9B5jB,EAAMoH,eAAwBA,EAC9BpH,EAAMkrB,qBAAuBhG,GAC7BllB,EAAMmrB,sBAAwB/F,GAC9BplB,EAAM2f,eAAwBP,GAC9Bpf,EAAM1O,UAAwBD,GAEvB2O,MAIsBxgB,KAAKX,EAASM,EAAoB,IAAIL,KAI/D,SAAUA,EAAQD,GAEtBC,EAAOD,QAAU,SAASC,GAQzB,MAPIA,GAAOssC,kBACVtsC,EAAO4lB,UAAY,aACnB5lB,EAAOusC,SAEPvsC,EAAOwsC,YACPxsC,EAAOssC,gBAAkB,GAEnBtsC,IAMJ,SAAUA,EAAQD,GAEtB,QAAS0sC,GAAeC,GACvB,KAAM,IAAIloC,OAAM,uBAAyBkoC,EAAM,MAEhDD,EAAev4B,KAAO,WAAa,UACnCu4B,EAAeE,QAAUF,EACzBzsC,EAAOD,QAAU0sC,EACjBA,EAAejsC,GAAK,IAKhB,SAAUR,EAAQD,IAEM,SAASiS,GAoDrC,QAAS5O,GAAMmI,EAAGqhC,EAAK5P,GACrB,GAAI94B,GAAI0oC,GAAO5P,GAAU,EACrBlQ,EAAK,CAWT,KATA8f,EAAMA,MACNrhC,EAAE6c,cAAcre,QAAQ,eAAgB,SAAU8iC,GAC5C/f,EAAK,KAEP8f,EAAI1oC,EAAI4oB,KAAQggB,EAAWD,MAKxB/f,EAAK,IACV8f,EAAI1oC,EAAI4oB,KAAQ,CAGlB,OAAO8f,GAIT,QAASG,GAAQH,EAAK5P,GACpB,GAAI94B,GAAI84B,GAAU,EACdgQ,EAAMC,CACV,OAAOD,GAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ,IAAM8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ,IAAM8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ,IAAM8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ,IAAM8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAAQ8oC,EAAIJ,EAAI1oC,MAsBzR,QAASgpC,GAAG/+B,EAASy+B,EAAK5P,GACxB,GAAI94B,GAAI0oC,GAAO5P,GAAU,EACrBp5B,EAAIgpC,KAERz+B,GAAUA,KAEV,IAAIg/B,OAAgCnpC,KAArBmK,EAAQg/B,SAAyBh/B,EAAQg/B,SAAWC,EAM/DC,MAA0BrpC,KAAlBmK,EAAQk/B,MAAsBl/B,EAAQk/B,OAAQ,GAAIrqC,OAAOqgB,UAIjEiqB,MAA0BtpC,KAAlBmK,EAAQm/B,MAAsBn/B,EAAQm/B,MAAQC,EAAa,EAGnEC,EAAKH,EAAQI,GAAcH,EAAQC,GAAc,GAcrD,IAXIC,EAAK,OAA0BxpC,KAArBmK,EAAQg/B,WACpBA,EAAWA,EAAW,EAAI,QAKvBK,EAAK,GAAKH,EAAQI,QAAiCzpC,KAAlBmK,EAAQm/B,QAC5CA,EAAQ,GAINA,GAAS,IACX,KAAM,IAAI9oC,OAAM,kDAGlBipC,GAAaJ,EACbE,EAAaD,EACbF,EAAYD,EAGZE,GAAS,WAGT,IAAIK,IAA4B,KAAb,UAARL,GAA6BC,GAAS,UACjD1pC,GAAEM,KAAOwpC,IAAO,GAAK,IACrB9pC,EAAEM,KAAOwpC,IAAO,GAAK,IACrB9pC,EAAEM,KAAOwpC,IAAO,EAAI,IACpB9pC,EAAEM,KAAY,IAALwpC,CAGT,IAAIC,GAAMN,EAAQ,WAAc,IAAQ,SACxCzpC,GAAEM,KAAOypC,IAAQ,EAAI,IACrB/pC,EAAEM,KAAa,IAANypC,EAGT/pC,EAAEM,KAAOypC,IAAQ,GAAK,GAAM,GAC5B/pC,EAAEM,KAAOypC,IAAQ,GAAK,IAGtB/pC,EAAEM,KAAOipC,IAAa,EAAI,IAG1BvpC,EAAEM,KAAkB,IAAXipC,CAIT,KAAK,GADDS,GAAOz/B,EAAQy/B,MAAQC,EAClBC,EAAI,EAAGA,EAAI,EAAGA,IACrBlqC,EAAEM,EAAI4pC,GAAKF,EAAKE,EAGlB,OAAOlB,IAAYG,EAAQnpC,GAM7B,QAASN,GAAG6K,EAASy+B,EAAK5P,GAExB,GAAI94B,GAAI0oC,GAAO5P,GAAU,CAEH,iBAAX7uB,KACTy+B,EAAiB,UAAXz+B,EAAsB,GAAI7J,OAAM,IAAM,KAC5C6J,EAAU,MAEZA,EAAUA,KAEV,IAAI4/B,GAAO5/B,EAAQkM,SAAWlM,EAAQ6/B,KAAOC,IAO7C,IAJAF,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAGvBnB,EACF,IAAK,GAAI9f,GAAK,EAAGA,EAAK,GAAIA,IACxB8f,EAAI1oC,EAAI4oB,GAAMihB,EAAKjhB,EAIvB,OAAO8f,IAAOG,EAAQgB,GArMxB,GAAIE,GAEAC,EAA8B,mBAAXvlC,QAAyBA,WAA2B,KAAXqJ,EAAyBA,EAAS,IAElG,IAAIk8B,GAAaA,EAAUC,QAAUA,OAAOC,gBAAiB,CAG3D,GAAIC,GAAS,GAAIC,YAAW,GAC5BL,GAAO,WAEL,MADAE,QAAOC,gBAAgBC,GAChBA,GAIX,IAAKJ,EAAM,CAKT,GAAIM,GAAQ,GAAIjqC,OAAM,GACtB2pC,GAAO,WACL,IAAK,GAAWjkC,GAAP9F,EAAI,EAAMA,EAAI,GAAIA,IACN,IAAV,EAAJA,KAAiB8F,EAAoB,WAAhBpH,KAAKyX,UAC/Bk0B,EAAMrqC,GAAK8F,MAAY,EAAJ9F,IAAa,GAAK,GAGvC,OAAOqqC,IAkBX,IAAK,GAFDtB,MACAH,KACK5oC,EAAI,EAAGA,EAAI,IAAKA,IACvB+oC,EAAW/oC,IAAMA,EAAI,KAAO2G,SAAS,IAAIL,OAAO,GAChDsiC,EAAWG,EAAW/oC,IAAMA,CAqC9B,IAAIsqC,GAAaP,IAGbJ,GAA2B,EAAhBW,EAAW,GAAWA,EAAW,GAAIA,EAAW,GAAIA,EAAW,GAAIA,EAAW,GAAIA,EAAW,IAGxGpB,EAAmD,OAAtCoB,EAAW,IAAM,EAAIA,EAAW,IAG7Cf,EAAa,EACbF,EAAa,EA4Gb1rC,EAAOyB,CACXzB,GAAKqrC,GAAKA,EACVrrC,EAAKyB,GAAKA,EACVzB,EAAKuB,MAAQA,EACbvB,EAAKkrC,QAAUA,EAEf/sC,EAAOD,QAAU8B,IACYnB,KAAKX,EAAU,WAAa,MAAOI,WAI5D,SAAUH,EAAQD,EAASM,GAK/BN,EAAQe,KAAOT,EAAoB,GACnCN,EAAQ0uC,QAAUpuC,EAAoB,IAGtCN,EAAQ2uC,QAAUruC,EAAoB,IACtCN,EAAQ4uC,SAAWtuC,EAAoB,IACvCN,EAAQ6uC,MAAQvuC,EAAoB,IAGpCN,EAAQ8uC,QAAUxuC,EAAoB,IACtCN,EAAQ+uC,SACNC,OAAQ1uC,EAAoB,KAC5B2uC,OAAQ3uC,EAAoB,KAC5B4uC,QAAS5uC,EAAoB,KAC7B6uC,QAAS7uC,EAAoB,KAC7B8uC,OAAQ9uC,EAAoB,KAC5B+uC,WAAY/uC,EAAoB,MAIlCN,EAAQ6B,OAASvB,EAAoB,IACrCN,EAAQsvC,OAAShvC,EAAoB,KACrCN,EAAQuvC,SAAWjvC,EAAoB,MAInC,SAAUL,EAAQD,GAWtBA,EAAQwvC,gBAAkB,SAAUC,GAElC,IAAK,GAAIC,KAAeD,GAClBA,EAAc/rC,eAAegsC,KAC/BD,EAAcC,GAAaC,UAAYF,EAAcC,GAAaE,KAClEH,EAAcC,GAAaE,UAYjC5vC,EAAQ6vC,gBAAkB,SAAUJ,GAElC,IAAK,GAAIC,KAAeD,GACtB,GAAIA,EAAc/rC,eAAegsC,IAC3BD,EAAcC,GAAaC,UAAW,CACxC,IAAK,GAAIxrC,GAAI,EAAGA,EAAIsrC,EAAcC,GAAaC,UAAU3rC,OAAQG,IAC/DsrC,EAAcC,GAAaC,UAAUxrC,GAAG+E,WAAW5G,YAAYmtC,EAAcC,GAAaC,UAAUxrC,GAEtGsrC,GAAcC,GAAaC,eAUnC3vC,EAAQ8vC,cAAgB,SAAUL,GAChCzvC,EAAQwvC,gBAAgBC,GACxBzvC,EAAQ6vC,gBAAgBJ,GACxBzvC,EAAQwvC,gBAAgBC,IAa1BzvC,EAAQ+vC,cAAgB,SAAUL,EAAaD,EAAeO,GAC5D,GAAI/nC,EAoBJ,OAlBIwnC,GAAc/rC,eAAegsC,GAG3BD,EAAcC,GAAaC,UAAU3rC,OAAS,GAChDiE,EAAUwnC,EAAcC,GAAaC,UAAU,GAC/CF,EAAcC,GAAaC,UAAUhL,UAGrC18B,EAAUqI,SAAS2/B,gBAAgB,6BAA8BP,GACjEM,EAAal/B,YAAY7I,KAI3BA,EAAUqI,SAAS2/B,gBAAgB,6BAA8BP,GACjED,EAAcC,IAAiBE,QAAUD,cACzCK,EAAal/B,YAAY7I,IAE3BwnC,EAAcC,GAAaE,KAAK3qC,KAAKgD,GAC9BA,GAaTjI,EAAQkwC,cAAgB,SAAUR,EAAaD,EAAeU,EAAcC,GAC1E,GAAInoC,EA4BJ,OA1BIwnC,GAAc/rC,eAAegsC,GAG3BD,EAAcC,GAAaC,UAAU3rC,OAAS,GAChDiE,EAAUwnC,EAAcC,GAAaC,UAAU,GAC/CF,EAAcC,GAAaC,UAAUhL,UAGrC18B,EAAUqI,SAASC,cAAcm/B,OACZzrC,KAAjBmsC,EACFD,EAAaC,aAAanoC,EAASmoC,GAEnCD,EAAar/B,YAAY7I,KAK7BA,EAAUqI,SAASC,cAAcm/B,GACjCD,EAAcC,IAAiBE,QAAUD,kBACpB1rC,KAAjBmsC,EACFD,EAAaC,aAAanoC,EAASmoC,GAEnCD,EAAar/B,YAAY7I,IAG7BwnC,EAAcC,GAAaE,KAAK3qC,KAAKgD,GAC9BA,GAgBTjI,EAAQqwC,UAAY,SAAUhb,EAAGpG,EAAGqhB,EAAeb,EAAeO,EAAcO,GAC9E,GAAIv1B,EAqBJ,IApB2B,UAAvBs1B,EAAc7jC,OAChBuO,EAAQhb,EAAQ+vC,cAAc,SAAUN,EAAeO,GACvDh1B,EAAMw1B,eAAe,KAAM,KAAMnb,GACjCra,EAAMw1B,eAAe,KAAM,KAAMvhB,GACjCjU,EAAMw1B,eAAe,KAAM,IAAK,GAAMF,EAAcG,QAEpDz1B,EAAQhb,EAAQ+vC,cAAc,OAAQN,EAAeO,GACrDh1B,EAAMw1B,eAAe,KAAM,IAAKnb,EAAI,GAAMib,EAAcG,MACxDz1B,EAAMw1B,eAAe,KAAM,IAAKvhB,EAAI,GAAMqhB,EAAcG,MACxDz1B,EAAMw1B,eAAe,KAAM,QAASF,EAAcG,MAClDz1B,EAAMw1B,eAAe,KAAM,SAAUF,EAAcG,WAGxBxsC,KAAzBqsC,EAAc9jC,QAChBwO,EAAMw1B,eAAe,KAAM,QAASF,EAAc9jC,QAEpDwO,EAAMw1B,eAAe,KAAM,QAASF,EAAcxpC,UAAY,cAI1DypC,EAAU,CACZ,GAAIG,GAAQ1wC,EAAQ+vC,cAAc,OAAQN,EAAeO,EACrDO,GAASI,UACXtb,GAAQkb,EAASI,SAGfJ,EAASK,UACX3hB,GAAQshB,EAASK,SAEfL,EAASM,UACXH,EAAMI,YAAcP,EAASM,SAG3BN,EAASzpC,WACX4pC,EAAMF,eAAe,KAAM,QAASD,EAASzpC,UAAY,cAE3D4pC,EAAMF,eAAe,KAAM,IAAKnb,GAChCqb,EAAMF,eAAe,KAAM,IAAKvhB,GAGlC,MAAOjU,IAUThb,EAAQ+wC,QAAU,SAAU1b,EAAGpG,EAAGze,EAAOC,EAAQ3J,EAAW2oC,EAAeO,EAAcvjC,GACvF,GAAc,GAAVgE,EAAa,CACXA,EAAS,IACXA,IAAW,EACXwe,GAAKxe,EAEP,IAAIugC,GAAOhxC,EAAQ+vC,cAAc,OAAQN,EAAeO,EACxDgB,GAAKR,eAAe,KAAM,IAAKnb,EAAI,GAAM7kB,GACzCwgC,EAAKR,eAAe,KAAM,IAAKvhB,GAC/B+hB,EAAKR,eAAe,KAAM,QAAShgC,GACnCwgC,EAAKR,eAAe,KAAM,SAAU//B,GACpCugC,EAAKR,eAAe,KAAM,QAAS1pC,GAC/B2F,GACFukC,EAAKR,eAAe,KAAM,QAAS/jC,MAOrC,SAAUxM,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAgDzF,QAASytC,GAAQ7Z,EAAM1mB,GAerB,GAbI0mB,IAASvwB,MAAMC,QAAQswB,KACzB1mB,EAAU0mB,EACVA,EAAO,MAGT10B,KAAK6wC,SAAW7iC,MAChBhO,KAAKw8B,SACLx8B,KAAK4D,OAAS,EACd5D,KAAK8wC,SAAW9wC,KAAK6wC,SAASE,SAAW,KACzC/wC,KAAKgxC,SAIDhxC,KAAK6wC,SAAS5rC,KAEhB,IAAK,GADDqI,IAAS,EAAIhM,EAAgB,SAAGtB,KAAK6wC,SAAS5rC,MACzClB,EAAI,EAAGgB,EAAMuI,EAAO1J,OAAQG,EAAIgB,EAAKhB,IAAK,CACjD,GAAIuK,GAAQhB,EAAOvJ,GACfxB,EAAQvC,KAAK6wC,SAAS5rC,KAAKqJ,EAE7BtO,MAAKgxC,MAAM1iC,GADA,QAAT/L,GAA4B,WAATA,GAA+B,WAATA,EACvB,OAEAA,EAM1B,GAAIvC,KAAK6wC,SAAS7rC,QAChB,KAAM,IAAIX,OAAM,sDAGlBrE,MAAKixC,gBAGDvc,GACF10B,KAAK2wB,IAAI+D,GAGX10B,KAAKkxC,WAAWljC,GApGlB,GAAImP,GAAajd,EAAoB,IAEjCixC,EAActwC,EAAuBsc,GAErC5b,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCF,EAAQnB,EAAoB,IAE5BoB,EAAST,EAAuBQ,GAIhCV,EAAOT,EAAoB,GAC3BuuC,EAAQvuC,EAAoB,GAiGhCquC,GAAQl8B,UAAU6+B,WAAa,SAAUljC,GACnCA,OAA6BnK,KAAlBmK,EAAQojC,SACC,IAAlBpjC,EAAQojC,MAENpxC,KAAKqxC,SACPrxC,KAAKqxC,OAAOC,gBACLtxC,MAAKqxC,SAITrxC,KAAKqxC,SACRrxC,KAAKqxC,OAAS5C,EAAM7tC,OAAOZ,MACzB4J,SAAU,MAAO,SAAU,aAIiB,YAA5C,EAAIpI,EAAkB,SAAGwM,EAAQojC,QACnCpxC,KAAKqxC,OAAOH,WAAWljC,EAAQojC,UAevC7C,EAAQl8B,UAAUk/B,GAAK,SAAUhpC,EAAOpB,GACtC,GAAIqqC,GAAcxxC,KAAKixC,aAAa1oC,EAC/BipC,KACHA,KACAxxC,KAAKixC,aAAa1oC,GAASipC,GAG7BA,EAAY3sC,MACVsC,SAAUA,KAKdonC,EAAQl8B,UAAUo/B,UAAY,WAC5B,KAAM,IAAIptC,OAAM,6DAQlBkqC,EAAQl8B,UAAUq/B,IAAM,SAAUnpC,EAAOpB,GACvC,GAAIqqC,GAAcxxC,KAAKixC,aAAa1oC,EAChCipC,KACFxxC,KAAKixC,aAAa1oC,GAASipC,EAAY1qC,OAAO,SAAUiB,GACtD,MAAOA,GAASZ,UAAYA,MAMlConC,EAAQl8B,UAAUs/B,YAAc,WAC9B,KAAM,IAAIttC,OAAM,gEAUlBkqC,EAAQl8B,UAAUu/B,SAAW,SAAUrpC,EAAOspC,EAAQC,GACpD,GAAa,KAATvpC,EACF,KAAM,IAAIlE,OAAM,yBAGlB,IAAImtC,KACAjpC,KAASvI,MAAKixC,eAChBO,EAAcA,EAAY3qC,OAAO7G,KAAKixC,aAAa1oC,KAEjD,KAAOvI,MAAKixC,eACdO,EAAcA,EAAY3qC,OAAO7G,KAAKixC,aAAa,MAGrD,KAAK,GAAIltC,GAAI,EAAGgB,EAAMysC,EAAY5tC,OAAQG,EAAIgB,EAAKhB,IAAK,CACtD,GAAIguC,GAAaP,EAAYztC,EACzBguC,GAAW5qC,UACb4qC,EAAW5qC,SAASoB,EAAOspC,EAAQC,GAAY,QAYrDvD,EAAQl8B,UAAUse,IAAM,SAAU+D,EAAMod,GACtC,GACIzxC,GADA2xC,KAEAC,EAAKjyC,IAET,IAAImE,MAAMC,QAAQswB,GAEhB,IAAK,GAAI3wB,GAAI,EAAGgB,EAAM2vB,EAAK9wB,OAAQG,EAAIgB,EAAKhB,IAC1C1D,EAAK4xC,EAAGC,SAASxd,EAAK3wB,IACtBiuC,EAASntC,KAAKxE,OAEX,CAAA,IAAIq0B,GAAyF,gBAAhE,KAATA,EAAuB,aAAc,EAAIlzB,EAAkB,SAAGkzB,IAKvF,KAAM,IAAIrwB,OAAM,mBAHhBhE,GAAK4xC,EAAGC,SAASxd,GACjBsd,EAASntC,KAAKxE,GAShB,MAJI2xC,GAASpuC,QACX5D,KAAK4xC,SAAS,OAASO,MAAOH,GAAYF,GAGrCE,GASTzD,EAAQl8B,UAAU+/B,OAAS,SAAU1d,EAAMod,GACzC,GAAIE,MACAK,KACAC,KACAC,KACAN,EAAKjyC,KACL+wC,EAAUkB,EAAGnB,SAEb0B,EAAc,SAAqB5jC,GACrC,GAAIvO,GAAKuO,EAAKmiC,EACd,IAAIkB,EAAGzV,MAAMn8B,GAAK,CAChB,GAAIoyC,GAAU9xC,EAAKC,UAAWqxC,EAAGzV,MAAMn8B,GAEvCA,GAAK4xC,EAAGS,YAAY9jC,GACpByjC,EAAWxtC,KAAKxE,GAChBkyC,EAAY1tC,KAAK+J,GACjB0jC,EAAQztC,KAAK4tC,OAGbpyC,GAAK4xC,EAAGC,SAAStjC,GACjBojC,EAASntC,KAAKxE,GAIlB,IAAI8D,MAAMC,QAAQswB,GAEhB,IAAK,GAAI3wB,GAAI,EAAGgB,EAAM2vB,EAAK9wB,OAAQG,EAAIgB,EAAKhB,IACtC2wB,EAAK3wB,IAA4C,YAAtC,EAAIvC,EAAkB,SAAGkzB,EAAK3wB,IAC3CyuC,EAAY9d,EAAK3wB,IAEjByhB,QAAQH,KAAK,wDAA0DthB,OAGtE,CAAA,IAAI2wB,GAAyF,gBAAhE,KAATA,EAAuB,aAAc,EAAIlzB,EAAkB,SAAGkzB,IAIvF,KAAM,IAAIrwB,OAAM,mBAFhBmuC,GAAY9d,GAQd,GAHIsd,EAASpuC,QACX5D,KAAK4xC,SAAS,OAASO,MAAOH,GAAYF,GAExCO,EAAWzuC,OAAQ,CACrB,GAAIM,IAAUiuC,MAAOE,EAAYC,QAASA,EAAS5d,KAAM6d,EAQzDvyC,MAAK4xC,SAAS,SAAU1tC,EAAO4tC,GAGjC,MAAOE,GAASnrC,OAAOwrC,IA8BzB9D,EAAQl8B,UAAUoF,IAAM,SAAUkI,GAChC,GAGItf,GAAIsyC,EAAK3kC,EAHTikC,EAAKjyC,KAIL4yC,EAAYjyC,EAAK4E,QAAQ5B,UAAU,GACtB,WAAbivC,GAAsC,UAAbA,GAE3BvyC,EAAKsD,UAAU,GACfqK,EAAUrK,UAAU,IACE,SAAbivC,GAETD,EAAMhvC,UAAU,GAChBqK,EAAUrK,UAAU,IAGpBqK,EAAUrK,UAAU,EAItB,IAAIkvC,EACJ,IAAI7kC,GAAWA,EAAQ6kC,WAAY,CAEjCA,GAA2D,IADtC,QAAS,UACHjuC,QAAQoJ,EAAQ6kC,YAAoB,QAAU7kC,EAAQ6kC,eAEjFA,GAAa,OAIf,IAGIjkC,GACAkkC,EACAC,EACAhvC,EACAgB,EAPAE,EAAO+I,GAAWA,EAAQ/I,MAAQjF,KAAK6wC,SAAS5rC,KAChD6B,EAASkH,GAAWA,EAAQlH,OAC5BqrC,IAQJ,QAAUtuC,IAANxD,GAEFuO,EAAOqjC,EAAGe,SAAS3yC,EAAI4E,KACX6B,IAAWA,EAAO8H,KAC5BA,EAAO,UAEJ,QAAW/K,IAAP8uC,EAET,IAAK5uC,EAAI,EAAGgB,EAAM4tC,EAAI/uC,OAAQG,EAAIgB,EAAKhB,IACrC6K,EAAOqjC,EAAGe,SAASL,EAAI5uC,GAAIkB,GACtB6B,IAAUA,EAAO8H,IACpBujC,EAAMttC,KAAK+J,OAMf,KADAkkC,GAAU,EAAIxxC,EAAgB,SAAGtB,KAAKw8B,OACjCz4B,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IACzCgvC,EAASD,EAAQ/uC,GACjB6K,EAAOqjC,EAAGe,SAASD,EAAQ9tC,GACtB6B,IAAUA,EAAO8H,IACpBujC,EAAMttC,KAAK+J,EAWjB,IALIZ,GAAWA,EAAQilC,WAAepvC,IAANxD,GAC9BL,KAAKkzC,MAAMf,EAAOnkC,EAAQilC,OAIxBjlC,GAAWA,EAAQV,OAAQ,CAC7B,GAAIA,GAASU,EAAQV,MACrB,QAAUzJ,IAANxD,EACFuO,EAAO5O,KAAKmzC,cAAcvkC,EAAMtB,OAEhC,KAAKvJ,EAAI,EAAGgB,EAAMotC,EAAMvuC,OAAQG,EAAIgB,EAAKhB,IACvCouC,EAAMpuC,GAAK/D,KAAKmzC,cAAchB,EAAMpuC,GAAIuJ,GAM9C,GAAkB,UAAdulC,EAAwB,CAC1B,GACIO,GADArpC,IAEJ,KAAKhG,EAAI,EAAGgB,EAAMotC,EAAMvuC,OAAQG,EAAIgB,EAAKhB,IACvCqvC,EAAYjB,EAAMpuC,GAClBgG,EAAOqpC,EAAU/yC,IAAM+yC,CAEzB,OAAOrpC,GAEP,WAAUlG,IAANxD,EAEKuO,EAGAujC,GAab5D,EAAQl8B,UAAUghC,OAAS,SAAUrlC,GACnC,GAKIjK,GACAgB,EACA1E,EACAuO,EACAujC,EATAzd,EAAO10B,KAAKw8B,MACZ11B,EAASkH,GAAWA,EAAQlH,OAC5BmsC,EAAQjlC,GAAWA,EAAQilC,MAC3BhuC,EAAO+I,GAAWA,EAAQ/I,MAAQjF,KAAK6wC,SAAS5rC,KAChD6tC,GAAU,EAAIxxC,EAAgB,SAAGozB,GAMjCie,IAEJ,IAAI7rC,EAEF,GAAImsC,EAAO,CAGT,IADAd,KACKpuC,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IACzC1D,EAAKyyC,EAAQ/uC,GACb6K,EAAO5O,KAAKgzC,SAAS3yC,EAAI4E,GACrB6B,EAAO8H,IACTujC,EAAMttC,KAAK+J,EAMf,KAFA5O,KAAKkzC,MAAMf,EAAOc,GAEblvC,EAAI,EAAGgB,EAAMotC,EAAMvuC,OAAQG,EAAIgB,EAAKhB,IACvC4uC,EAAI9tC,KAAKstC,EAAMpuC,GAAG/D,KAAK8wC,eAIzB,KAAK/sC,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IACzC1D,EAAKyyC,EAAQ/uC,GACb6K,EAAO5O,KAAKgzC,SAAS3yC,EAAI4E,GACrB6B,EAAO8H,IACT+jC,EAAI9tC,KAAK+J,EAAK5O,KAAK8wC,eAMzB,IAAImC,EAAO,CAGT,IADAd,KACKpuC,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IACzC1D,EAAKyyC,EAAQ/uC,GACbouC,EAAMttC,KAAK6vB,EAAKr0B,GAKlB,KAFAL,KAAKkzC,MAAMf,EAAOc,GAEblvC,EAAI,EAAGgB,EAAMotC,EAAMvuC,OAAQG,EAAIgB,EAAKhB,IACvC4uC,EAAI9tC,KAAKstC,EAAMpuC,GAAG/D,KAAK8wC,eAIzB,KAAK/sC,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IACzC1D,EAAKyyC,EAAQ/uC,GACb6K,EAAO8lB,EAAKr0B,GACZsyC,EAAI9tC,KAAK+J,EAAK5O,KAAK8wC,UAKzB,OAAO6B,IAOTpE,EAAQl8B,UAAUihC,WAAa,WAC7B,MAAOtzC,OAaTuuC,EAAQl8B,UAAUnL,QAAU,SAAUC,EAAU6G,GAC9C,GAIIjK,GACAgB,EACA6J,EACAvO,EAPAyG,EAASkH,GAAWA,EAAQlH,OAC5B7B,EAAO+I,GAAWA,EAAQ/I,MAAQjF,KAAK6wC,SAAS5rC,KAChDyvB,EAAO10B,KAAKw8B,MACZsW,GAAU,EAAIxxC,EAAgB,SAAGozB,EAMrC,IAAI1mB,GAAWA,EAAQilC,MAAO,CAE5B,GAAId,GAAQnyC,KAAKyX,IAAIzJ,EAErB,KAAKjK,EAAI,EAAGgB,EAAMotC,EAAMvuC,OAAQG,EAAIgB,EAAKhB,IACvC6K,EAAOujC,EAAMpuC,GACb1D,EAAKuO,EAAK5O,KAAK8wC,UACf3pC,EAASyH,EAAMvO,OAIjB,KAAK0D,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IACzC1D,EAAKyyC,EAAQ/uC,GACb6K,EAAO5O,KAAKgzC,SAAS3yC,EAAI4E,GACpB6B,IAAUA,EAAO8H,IACpBzH,EAASyH,EAAMvO,IAiBvBkuC,EAAQl8B,UAAUvH,IAAM,SAAU3D,EAAU6G,GAC1C,GAKIjK,GACAgB,EACA1E,EACAuO,EARA9H,EAASkH,GAAWA,EAAQlH,OAC5B7B,EAAO+I,GAAWA,EAAQ/I,MAAQjF,KAAK6wC,SAAS5rC,KAChDsuC,KACA7e,EAAO10B,KAAKw8B,MACZsW,GAAU,EAAIxxC,EAAgB,SAAGozB,EAOrC,KAAK3wB,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IACzC1D,EAAKyyC,EAAQ/uC,GACb6K,EAAO5O,KAAKgzC,SAAS3yC,EAAI4E,GACpB6B,IAAUA,EAAO8H,IACpB2kC,EAAY1uC,KAAKsC,EAASyH,EAAMvO,GASpC,OAJI2N,IAAWA,EAAQilC,OACrBjzC,KAAKkzC,MAAMK,EAAavlC,EAAQilC,OAG3BM,GAUThF,EAAQl8B,UAAU8gC,cAAgB,SAAUvkC,EAAMtB,GAChD,IAAKsB,EAEH,MAAOA,EAGT,IAGI7K,GACAuK,EAJAklC,KACAC,GAAa,EAAInyC,EAAgB,SAAGsN,GACpC7J,EAAM0uC,EAAW7vC,MAIrB,IAAIO,MAAMC,QAAQkJ,GAChB,IAAKvJ,EAAI,EAAGA,EAAIgB,EAAKhB,IACnBuK,EAAQmlC,EAAW1vC,IACW,GAA1BuJ,EAAO1I,QAAQ0J,KACjBklC,EAAallC,GAASM,EAAKN,QAI/B,KAAKvK,EAAI,EAAGA,EAAIgB,EAAKhB,IACnBuK,EAAQmlC,EAAW1vC,GACfuJ,EAAOhK,eAAegL,KACxBklC,EAAalmC,EAAOgB,IAAUM,EAAKN,GAKzC,OAAOklC,IASTjF,EAAQl8B,UAAU6gC,MAAQ,SAAUf,EAAOc,GACzC,GAAItyC,EAAK+B,SAASuwC,GAAQ,CAExB,GAAIh+B,GAAOg+B,CACXd,GAAMppB,KAAK,SAAUvlB,EAAGC,GACtB,GAAIiwC,GAAKlwC,EAAEyR,GACP0+B,EAAKlwC,EAAEwR,EACX,OAAOy+B,GAAKC,EAAK,EAAID,EAAKC,GAAM,EAAI,QAEjC,CAAA,GAAqB,kBAAVV,GAOd,KAAM,IAAI1uC,WAAU,uCALtB4tC,GAAMppB,KAAKkqB,KAgBf1E,EAAQl8B,UAAUuhC,OAAS,SAAUvzC,EAAIyxC,GACvC,GAGI/tC,GACAgB,EACAguC,EACAnkC,EANAilC,KACAC,KACAnB,IASJ,KAFAA,EAAMxuC,MAAMC,QAAQ/D,GAAMA,GAAMA,GAE3B0D,EAAI,EAAGgB,EAAM4tC,EAAI/uC,OAAQG,EAAIgB,EAAKhB,KACrC6K,EAAO5O,KAAK+zC,QAAQpB,EAAI5uC,UAGRF,KADdkvC,EAASnkC,EAAK5O,KAAK8wC,aAEjB+C,EAAWhvC,KAAKkuC,GAChBe,EAAajvC,KAAK+J,GASxB,OAJIilC,GAAWjwC,QACb5D,KAAK4xC,SAAS,UAAYO,MAAO0B,EAAYvB,QAASwB,GAAgBhC,GAGjE+B,GASTtF,EAAQl8B,UAAU0hC,QAAU,SAAU1zC,GACpC,GAAIuO,GAAMolC,CAUV,OAPIrzC,GAAKgB,SAAStB,IAAOM,EAAK+B,SAASrC,GACrC2zC,EAAQ3zC,EACCA,GAAmF,gBAA9D,KAAPA,EAAqB,aAAc,EAAImB,EAAkB,SAAGnB,MACnF2zC,EAAQ3zC,EAAGL,KAAK8wC,eAIJjtC,KAAVmwC,GAAuBh0C,KAAKw8B,MAAMwX,IACpCplC,EAAO5O,KAAKw8B,MAAMwX,SACXh0C,MAAKw8B,MAAMwX,GAClBh0C,KAAK4D,SACEgL,GAEF,MAQT2/B,EAAQl8B,UAAU4hC,MAAQ,SAAUnC,GAClC,GAAI/tC,GAAGgB,EACH4tC,GAAM,EAAIrxC,EAAgB,SAAGtB,KAAKw8B,OAClC2V,IAEJ,KAAKpuC,EAAI,EAAGgB,EAAM4tC,EAAI/uC,OAAQG,EAAIgB,EAAKhB,IACrCouC,EAAMttC,KAAK7E,KAAKw8B,MAAMmW,EAAI5uC,IAQ5B,OALA/D,MAAKw8B,SACLx8B,KAAK4D,OAAS,EAEd5D,KAAK4xC,SAAS,UAAYO,MAAOQ,EAAKL,QAASH,GAASL,GAEjDa,GAQTpE,EAAQl8B,UAAUhQ,IAAM,SAAUiM,GAChC,GAIIvK,GACAgB,EALA2vB,EAAO10B,KAAKw8B,MACZsW,GAAU,EAAIxxC,EAAgB,SAAGozB,GACjCryB,EAAM,KACN6xC,EAAW,IAIf,KAAKnwC,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IAAK,CAC9C,GAAI1D,GAAKyyC,EAAQ/uC,GACb6K,EAAO8lB,EAAKr0B,GACZ8zC,EAAYvlC,EAAKN,EACJ,OAAb6lC,KAAuB9xC,GAAO8xC,EAAYD,KAC5C7xC,EAAMuM,EACNslC,EAAWC,GAIf,MAAO9xC,IAQTksC,EAAQl8B,UAAUjQ,IAAM,SAAUkM,GAChC,GAIIvK,GACAgB,EALA2vB,EAAO10B,KAAKw8B,MACZsW,GAAU,EAAIxxC,EAAgB,SAAGozB,GACjCtyB,EAAM,KACNgyC,EAAW,IAIf,KAAKrwC,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IAAK,CAC9C,GAAI1D,GAAKyyC,EAAQ/uC,GACb6K,EAAO8lB,EAAKr0B,GACZ8zC,EAAYvlC,EAAKN,EACJ,OAAb6lC,KAAuB/xC,GAAO+xC,EAAYC,KAC5ChyC,EAAMwM,EACNwlC,EAAWD,GAIf,MAAO/xC,IAUTmsC,EAAQl8B,UAAUgiC,SAAW,SAAU/lC,GACrC,GAKIvK,GAAG8J,EAAG9I,EALN2vB,EAAO10B,KAAKw8B,MACZsW,GAAU,EAAIxxC,EAAgB,SAAGozB,GACjCxf,KACAo/B,EAAYt0C,KAAK6wC,SAAS5rC,MAAQjF,KAAK6wC,SAAS5rC,KAAKqJ,IAAU,KAC/DimC,EAAQ,CAGZ,KAAKxwC,EAAI,EAAGgB,EAAM+tC,EAAQlvC,OAAQG,EAAIgB,EAAKhB,IAAK,CAC9C,GAAI1D,GAAKyyC,EAAQ/uC,GACb6K,EAAO8lB,EAAKr0B,GACZkC,EAAQqM,EAAKN,GACbkmC,GAAS,CACb,KAAK3mC,EAAI,EAAGA,EAAI0mC,EAAO1mC,IACrB,GAAIqH,EAAOrH,IAAMtL,EAAO,CACtBiyC,GAAS,CACT,OAGCA,OAAoB3wC,KAAVtB,IACb2S,EAAOq/B,GAAShyC,EAChBgyC,KAIJ,GAAID,EACF,IAAKvwC,EAAI,EAAGgB,EAAMmQ,EAAOtR,OAAQG,EAAIgB,EAAKhB,IACxCmR,EAAOnR,GAAKpD,EAAKqE,QAAQkQ,EAAOnR,GAAIuwC,EAIxC,OAAOp/B,IASTq5B,EAAQl8B,UAAU6/B,SAAW,SAAUtjC,GACrC,GAAIvO,GAAKuO,EAAK5O,KAAK8wC,SAEnB,QAAUjtC,IAANxD,GAEF,GAAIL,KAAKw8B,MAAMn8B,GAEb,KAAM,IAAIgE,OAAM,iCAAmChE,EAAK,uBAI1DA,GAAKM,EAAKuC,aACV0L,EAAK5O,KAAK8wC,UAAYzwC,CAGxB,IAEI0D,GACAgB,EAHAkH,KACAqB,GAAS,EAAIhM,EAAgB,SAAGsN,EAGpC,KAAK7K,EAAI,EAAGgB,EAAMuI,EAAO1J,OAAQG,EAAIgB,EAAKhB,IAAK,CAC7C,GAAIuK,GAAQhB,EAAOvJ,GACfuwC,EAAYt0C,KAAKgxC,MAAM1iC,EAC3BrC,GAAEqC,GAAS3N,EAAKqE,QAAQ4J,EAAKN,GAAQgmC,GAKvC,MAHAt0C,MAAKw8B,MAAMn8B,GAAM4L,EACjBjM,KAAK4D,SAEEvD,GAUTkuC,EAAQl8B,UAAU2gC,SAAW,SAAU3yC,EAAIo0C,GACzC,GAAInmC,GAAO/L,EAAOwB,EAAGgB,EAGjB2vC,EAAM10C,KAAKw8B,MAAMn8B,EACrB,KAAKq0C,EACH,MAAO,KAIT,IAAIC,MACArnC,GAAS,EAAIhM,EAAgB,SAAGozC,EAEpC,IAAID,EACF,IAAK1wC,EAAI,EAAGgB,EAAMuI,EAAO1J,OAAQG,EAAIgB,EAAKhB,IACxCuK,EAAQhB,EAAOvJ,GACfxB,EAAQmyC,EAAIpmC,GACZqmC,EAAUrmC,GAAS3N,EAAKqE,QAAQzC,EAAOkyC,EAAMnmC,QAI/C,KAAKvK,EAAI,EAAGgB,EAAMuI,EAAO1J,OAAQG,EAAIgB,EAAKhB,IACxCuK,EAAQhB,EAAOvJ,GACfxB,EAAQmyC,EAAIpmC,GACZqmC,EAAUrmC,GAAS/L,CAQvB,OAJKoyC,GAAU30C,KAAK8wC,YAClB6D,EAAU30C,KAAK8wC,UAAY4D,EAAIr0C,IAG1Bs0C,GAWTpG,EAAQl8B,UAAUqgC,YAAc,SAAU9jC,GACxC,GAAIvO,GAAKuO,EAAK5O,KAAK8wC,SACnB,QAAUjtC,IAANxD,EACF,KAAM,IAAIgE,OAAM,8CAA+C,EAAI8sC,EAAqB,SAAGviC,GAAQ,IAErG,IAAI3C,GAAIjM,KAAKw8B,MAAMn8B,EACnB,KAAK4L,EAEH,KAAM,IAAI5H,OAAM,uCAAyChE,EAAK,SAKhE,KAAK,GADDiN,IAAS,EAAIhM,EAAgB,SAAGsN,GAC3B7K,EAAI,EAAGgB,EAAMuI,EAAO1J,OAAQG,EAAIgB,EAAKhB,IAAK,CACjD,GAAIuK,GAAQhB,EAAOvJ,GACfuwC,EAAYt0C,KAAKgxC,MAAM1iC,EAC3BrC,GAAEqC,GAAS3N,EAAKqE,QAAQ4J,EAAKN,GAAQgmC,GAGvC,MAAOj0C,IAGTR,EAAOD,QAAU2uC,GAIb,SAAU1uC,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,IAAKa,YAAY,IAI/D,SAAUlB,EAAQD,EAASM,GAE/B,GAAImV,GAAOnV,EAAoB,IAC3B+c,EAAQ5H,EAAK6H,OAAS7H,EAAK6H,MAASE,UAAWF,KAAKE,WACxDvd,GAAOD,QAAU,SAAmBuT,GAClC,MAAO8J,GAAMG,UAAU9G,MAAM2G,EAAOtZ,aAMlC,SAAU9D,EAAQD,GAiBtB,QAAS6uC,GAAMzgC,GAEbhO,KAAK40C,MAAQ,KACb50C,KAAKqC,IAAMwyC,EAAAA,EAGX70C,KAAKqxC,UACLrxC,KAAK80C,SAAW,KAChB90C,KAAK+0C,UAAY,KAEjB/0C,KAAKkxC,WAAWljC,GAgBlBygC,EAAMp8B,UAAU6+B,WAAa,SAAUljC,GACjCA,OAAoC,KAAlBA,EAAQ4mC,QAC5B50C,KAAK40C,MAAQ5mC,EAAQ4mC,OAEnB5mC,OAAkC,KAAhBA,EAAQ3L,MAC5BrC,KAAKqC,IAAM2L,EAAQ3L,KAGrBrC,KAAKg1C,kBAsBPvG,EAAM7tC,OAAS,SAAUgB,EAAQoM,GAC/B,GAAIojC,GAAQ,GAAI3C,GAAMzgC,EAEtB,QAAqBnK,KAAjBjC,EAAOqzC,MACT,KAAM,IAAI5wC,OAAM,6CAElBzC,GAAOqzC,MAAQ,WACb7D,EAAM6D,QAGR,IAAI3gC,KACFW,KAAM,QACNigC,aAAUrxC,IAGZ,IAAImK,GAAWA,EAAQpE,QACrB,IAAK,GAAI7F,GAAI,EAAGA,EAAIiK,EAAQpE,QAAQhG,OAAQG,IAAK,CAC/C,GAAIkR,GAAOjH,EAAQpE,QAAQ7F,EAC3BuQ,GAAQzP,MACNoQ,KAAMA,EACNigC,SAAUtzC,EAAOqT,KAEnBm8B,EAAMxnC,QAAQhI,EAAQqT,GAS1B,MALAm8B,GAAM2D,WACJnzC,OAAQA,EACR0S,QAASA,GAGJ88B,GAOT3C,EAAMp8B,UAAUi/B,QAAU,WAGxB,GAFAtxC,KAAKi1C,QAEDj1C,KAAK+0C,UAAW,CAGlB,IAAK,GAFDnzC,GAAS5B,KAAK+0C,UAAUnzC,OACxB0S,EAAUtU,KAAK+0C,UAAUzgC,QACpBvQ,EAAI,EAAGA,EAAIuQ,EAAQ1Q,OAAQG,IAAK,CACvC,GAAIoxC,GAAS7gC,EAAQvQ,EACjBoxC,GAAOD,SACTtzC,EAAOuzC,EAAOlgC,MAAQkgC,EAAOD,eAEtBtzC,GAAOuzC,EAAOlgC,MAGzBjV,KAAK+0C,UAAY,OASrBtG,EAAMp8B,UAAUzI,QAAU,SAAUhI,EAAQuzC,GAC1C,GAAIlD,GAAKjyC,KACLk1C,EAAWtzC,EAAOuzC,EACtB,KAAKD,EACH,KAAM,IAAI7wC,OAAM,UAAY8wC,EAAS,aAGvCvzC,GAAOuzC,GAAU,WAGf,IAAK,GADDx1B,MACK5b,EAAI,EAAGA,EAAIJ,UAAUC,OAAQG,IACpC4b,EAAK5b,GAAKJ,UAAUI,EAItBkuC,GAAGb,OACDzxB,KAAMA,EACNlY,GAAIytC,EACJE,QAASp1C,SASfyuC,EAAMp8B,UAAU++B,MAAQ,SAAUiE,GACX,kBAAVA,GACTr1C,KAAKqxC,OAAOxsC,MAAO4C,GAAI4tC,IAEvBr1C,KAAKqxC,OAAOxsC,KAAKwwC,GAGnBr1C,KAAKg1C,kBAOPvG,EAAMp8B,UAAU2iC,eAAiB,WAQ/B,GANIh1C,KAAKqxC,OAAOztC,OAAS5D,KAAKqC,KAC5BrC,KAAKi1C,QAIPK,aAAat1C,KAAK80C,UACd90C,KAAKoxC,MAAMxtC,OAAS,GAA2B,gBAAf5D,MAAK40C,MAAoB,CAC3D,GAAI3C,GAAKjyC,IACTA,MAAK80C,SAAWS,WAAW,WACzBtD,EAAGgD,SACFj1C,KAAK40C,SAOZnG,EAAMp8B,UAAU4iC,MAAQ,WACtB,KAAOj1C,KAAKqxC,OAAOztC,OAAS,GAAG,CAC7B,GAAIyxC,GAAQr1C,KAAKqxC,OAAO9M,OACxB8Q,GAAM5tC,GAAG6O,MAAM++B,EAAMD,SAAWC,EAAM5tC,GAAI4tC,EAAM11B,YAIpD9f,EAAOD,QAAU6uC,GAIb,SAAU5uC,EAAQD,EAASM,GAuB/B,QAASsuC,GAAS9Z,EAAM1mB,GACtBhO,KAAKw8B,MAAQ,KACbx8B,KAAKw1C,QACLx1C,KAAK4D,OAAS,EACd5D,KAAK6wC,SAAW7iC,MAChBhO,KAAK8wC,SAAW,KAChB9wC,KAAKixC,eAEL,IAAIgB,GAAKjyC,IACTA,MAAK+H,SAAW,WACdkqC,EAAGwD,SAASn/B,MAAM27B,EAAItuC,YAGxB3D,KAAK01C,QAAQhhB,GAhCf,GAAIrzB,GAAQnB,EAAoB,IAE5BoB,EAEJ,SAAgCR,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFrDO,GAIhCV,EAAOT,EAAoB,GAC3BquC,EAAUruC,EAAoB,GAmClCsuC,GAASn8B,UAAUqjC,QAAU,SAAUhhB,GACrC,GAAIie,GAAKtyC,EAAI0D,EAAGgB,EAAKotC,CAErB,IAAInyC,KAAKw8B,MAAO,CAUd,IARIx8B,KAAKw8B,MAAMkV,KACb1xC,KAAKw8B,MAAMkV,IAAI,IAAK1xC,KAAK+H,UAI3B4qC,EAAM3yC,KAAKw8B,MAAM6W,QAASvsC,OAAQ9G,KAAK6wC,UAAY7wC,KAAK6wC,SAAS/pC;6CACjEqrC,KAEKpuC,EAAI,EAAGgB,EAAM4tC,EAAI/uC,OAAQG,EAAIgB,EAAKhB,IACrCouC,EAAMttC,KAAK7E,KAAKw8B,MAAMA,MAAMmW,EAAI5uC,IAGlC/D,MAAKw1C,QACLx1C,KAAK4D,OAAS,EACd5D,KAAK4xC,SAAS,UAAYO,MAAOQ,EAAKL,QAASH,IAKjD,GAFAnyC,KAAKw8B,MAAQ9H,EAET10B,KAAKw8B,MAAO,CAMd,IAJAx8B,KAAK8wC,SAAW9wC,KAAK6wC,SAASE,SAAW/wC,KAAKw8B,OAASx8B,KAAKw8B,MAAMxuB,SAAWhO,KAAKw8B,MAAMxuB,QAAQ+iC,SAAW,KAG3G4B,EAAM3yC,KAAKw8B,MAAM6W,QAASvsC,OAAQ9G,KAAK6wC,UAAY7wC,KAAK6wC,SAAS/pC,SAC5D/C,EAAI,EAAGgB,EAAM4tC,EAAI/uC,OAAQG,EAAIgB,EAAKhB,IACrC1D,EAAKsyC,EAAI5uC,GACT/D,KAAKw1C,KAAKn1C,IAAM,CAElBL,MAAK4D,OAAS+uC,EAAI/uC,OAClB5D,KAAK4xC,SAAS,OAASO,MAAOQ,IAG1B3yC,KAAKw8B,MAAM+U,IACbvxC,KAAKw8B,MAAM+U,GAAG,IAAKvxC,KAAK+H,YAS9BymC,EAASn8B,UAAUsjC,QAAU,WAC3B,GAAIt1C,GAAI0D,EAAGgB,EACP4tC,EAAM3yC,KAAKw8B,MAAM6W,QAASvsC,OAAQ9G,KAAK6wC,UAAY7wC,KAAK6wC,SAAS/pC,SACjE8uC,GAAS,EAAIt0C,EAAgB,SAAGtB,KAAKw1C,MACrCK,KACA7D,KACA6B,KACAC,IAGJ,KAAK/vC,EAAI,EAAGgB,EAAM4tC,EAAI/uC,OAAQG,EAAIgB,EAAKhB,IACrC1D,EAAKsyC,EAAI5uC,GACT8xC,EAAOx1C,IAAM,EACRL,KAAKw1C,KAAKn1C,KACb2xC,EAASntC,KAAKxE,GACdL,KAAKw1C,KAAKn1C,IAAM,EAKpB,KAAK0D,EAAI,EAAGgB,EAAM6wC,EAAOhyC,OAAQG,EAAIgB,EAAKhB,IACxC1D,EAAKu1C,EAAO7xC,GACP8xC,EAAOx1C,KACVwzC,EAAWhvC,KAAKxE,GAChByzC,EAAajvC,KAAK7E,KAAKw8B,MAAMA,MAAMn8B,UAC5BL,MAAKw1C,KAAKn1C,GAIrBL,MAAK4D,QAAUouC,EAASpuC,OAASiwC,EAAWjwC,OAGxCouC,EAASpuC,QACX5D,KAAK4xC,SAAS,OAASO,MAAOH,IAE5B6B,EAAWjwC,QACb5D,KAAK4xC,SAAS,UAAYO,MAAO0B,EAAYvB,QAASwB,KAsC1DtF,EAASn8B,UAAUoF,IAAM,SAAUkI,GACjC,GAGIgzB,GAAK3kC,EAAS0mB,EAHdud,EAAKjyC,KAIL4yC,EAAYjyC,EAAK4E,QAAQ5B,UAAU,GACtB,WAAbivC,GAAsC,UAAbA,GAAsC,SAAbA,GAEpDD,EAAMhvC,UAAU,GAChBqK,EAAUrK,UAAU,GACpB+wB,EAAO/wB,UAAU,KAGjBqK,EAAUrK,UAAU,GACpB+wB,EAAO/wB,UAAU,GAInB,IAAImyC,GAAcn1C,EAAKC,UAAWZ,KAAK6wC,SAAU7iC,EAG7ChO,MAAK6wC,SAAS/pC,QAAUkH,GAAWA,EAAQlH,SAC7CgvC,EAAYhvC,OAAS,SAAU8H,GAC7B,MAAOqjC,GAAGpB,SAAS/pC,OAAO8H,IAASZ,EAAQlH,OAAO8H,IAKtD,IAAImnC,KAOJ,YANWlyC,IAAP8uC,GACFoD,EAAalxC,KAAK8tC,GAEpBoD,EAAalxC,KAAKixC,GAClBC,EAAalxC,KAAK6vB,GAEX10B,KAAKw8B,OAASx8B,KAAKw8B,MAAM/kB,IAAInB,MAAMtW,KAAKw8B,MAAOuZ,IAWxDvH,EAASn8B,UAAUghC,OAAS,SAAUrlC,GACpC,GAAI2kC,EAEJ,IAAI3yC,KAAKw8B,MAAO,CACd,GACI11B,GADAkvC,EAAgBh2C,KAAK6wC,SAAS/pC,MAK9BA,GAFAkH,GAAWA,EAAQlH,OACjBkvC,EACO,SAAgBpnC,GACvB,MAAOonC,GAAcpnC,IAASZ,EAAQlH,OAAO8H,IAGtCZ,EAAQlH,OAGVkvC,EAGXrD,EAAM3yC,KAAKw8B,MAAM6W,QACfvsC,OAAQA,EACRmsC,MAAOjlC,GAAWA,EAAQilC,YAG5BN,KAGF,OAAOA,IAcTnE,EAASn8B,UAAUvH,IAAM,SAAU3D,EAAU6G,GAC3C,GAAIulC,KACJ,IAAIvzC,KAAKw8B,MAAO,CACd,GACI11B,GADAkvC,EAAgBh2C,KAAK6wC,SAAS/pC,MAK9BA,GAFAkH,GAAWA,EAAQlH,OACjBkvC,EACO,SAAgBpnC,GACvB,MAAOonC,GAAcpnC,IAASZ,EAAQlH,OAAO8H,IAGtCZ,EAAQlH,OAGVkvC,EAGXzC,EAAcvzC,KAAKw8B,MAAM1xB,IAAI3D,GAC3BL,OAAQA,EACRmsC,MAAOjlC,GAAWA,EAAQilC,YAG5BM,KAGF,OAAOA,IAQT/E,EAASn8B,UAAUihC,WAAa,WAE9B,IADA,GAAI2C,GAAUj2C,KACPi2C,YAAmBzH,IACxByH,EAAUA,EAAQzZ,KAEpB,OAAOyZ,IAAW,MAYpBzH,EAASn8B,UAAUojC,SAAW,SAAUltC,EAAOspC,EAAQC,GACrD,GAAI/tC,GAAGgB,EAAK1E,EAAIuO,EACZ+jC,EAAMd,GAAUA,EAAOM,MACvBH,KACAK,KACAwB,KACAqC,KACAC,KACArC,IAEJ,IAAInB,GAAO3yC,KAAKw8B,MAAO,CACrB,OAAQj0B,GACN,IAAK,MAEH,IAAKxE,EAAI,EAAGgB,EAAM4tC,EAAI/uC,OAAQG,EAAIgB,EAAKhB,IACrC1D,EAAKsyC,EAAI5uC,IACT6K,EAAO5O,KAAKyX,IAAIpX,MAEdL,KAAKw1C,KAAKn1C,IAAM,EAChB2xC,EAASntC,KAAKxE,GAIlB,MAEF,KAAK,SAGH,IAAK0D,EAAI,EAAGgB,EAAM4tC,EAAI/uC,OAAQG,EAAIgB,EAAKhB,IACrC1D,EAAKsyC,EAAI5uC,GACT6K,EAAO5O,KAAKyX,IAAIpX,GAEZuO,EACE5O,KAAKw1C,KAAKn1C,IACZgyC,EAAWxtC,KAAKxE,GAChB81C,EAAatxC,KAAKgtC,EAAOnd,KAAK3wB,IAC9BmyC,EAASrxC,KAAKgtC,EAAOS,QAAQvuC,MAE7B/D,KAAKw1C,KAAKn1C,IAAM,EAChB2xC,EAASntC,KAAKxE,IAGZL,KAAKw1C,KAAKn1C,WACLL,MAAKw1C,KAAKn1C,GACjBwzC,EAAWhvC,KAAKxE,GAChByzC,EAAajvC,KAAKgtC,EAAOS,QAAQvuC,IAOvC,MAEF,KAAK,SAEH,IAAKA,EAAI,EAAGgB,EAAM4tC,EAAI/uC,OAAQG,EAAIgB,EAAKhB,IACrC1D,EAAKsyC,EAAI5uC,GACL/D,KAAKw1C,KAAKn1C,WACLL,MAAKw1C,KAAKn1C,GACjBwzC,EAAWhvC,KAAKxE,GAChByzC,EAAajvC,KAAKgtC,EAAOS,QAAQvuC,KAOzC/D,KAAK4D,QAAUouC,EAASpuC,OAASiwC,EAAWjwC,OAExCouC,EAASpuC,QACX5D,KAAK4xC,SAAS,OAASO,MAAOH,GAAYF,GAExCO,EAAWzuC,QACb5D,KAAK4xC,SAAS,UAAYO,MAAOE,EAAYC,QAAS4D,EAAUxhB,KAAMyhB,GAAgBrE,GAEpF+B,EAAWjwC,QACb5D,KAAK4xC,SAAS,UAAYO,MAAO0B,EAAYvB,QAASwB,GAAgBhC,KAM5EtD,EAASn8B,UAAUk/B,GAAKhD,EAAQl8B,UAAUk/B,GAC1C/C,EAASn8B,UAAUq/B,IAAMnD,EAAQl8B,UAAUq/B,IAC3ClD,EAASn8B,UAAUu/B,SAAWrD,EAAQl8B,UAAUu/B,SAGhDpD,EAASn8B,UAAUo/B,UAAYjD,EAASn8B,UAAUk/B,GAClD/C,EAASn8B,UAAUs/B,YAAcnD,EAASn8B,UAAUq/B,IAEpD7xC,EAAOD,QAAU4uC,GAIb,SAAU3uC,EAAQD,EAASM,GA4J/B,QAASwuC,GAAQ0H,EAAW1hB,EAAM1mB,GAChC,KAAMhO,eAAgB0uC,IACpB,KAAM,IAAI2H,aAAY,mDAIxBr2C,MAAKs2C,iBAAmBF,EAExBp2C,KAAKu2C,UAAY,GAAIC,GACrBx2C,KAAKy2C,WAAa,KAGlBz2C,KAAKgY,SAEL0+B,EAASC,YAAYC,EAAU52C,MAG/BA,KAAK62C,SAAOhzC,GACZ7D,KAAK82C,SAAOjzC,GACZ7D,KAAK+2C,SAAOlzC,GACZ7D,KAAKg3C,aAAWnzC,GAChB7D,KAAKi3C,cAAYpzC,GAKjB7D,KAAKkxC,WAAWljC,GAGZ0mB,GACF10B,KAAK01C,QAAQhhB,GAy7DjB,QAASwiB,GAAU3uC,GACjB,MAAI,WAAaA,GAAcA,EAAM4uC,QAC9B5uC,EAAM6uC,cAAc,IAAM7uC,EAAM6uC,cAAc,GAAGD,SAAW,EASrE,QAASE,GAAU9uC,GACjB,MAAI,WAAaA,GAAcA,EAAM+uC,QAC9B/uC,EAAM6uC,cAAc,IAAM7uC,EAAM6uC,cAAc,GAAGE,SAAW,EA5nErE,GAAIC,GAAUr3C,EAAoB,IAE9Bs3C,EAEJ,SAAgC12C,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFnDy2C,GAIlCE,EAAUv3C,EAAoB,IAG9BS,GAFUT,EAAoB,IACnBA,EAAoB,IACxBA,EAAoB,IAC3B6uC,EAAU7uC,EAAoB,KAC9B4uC,EAAU5uC,EAAoB,KAE9B2uC,GADS3uC,EAAoB,KACpBA,EAAoB,MAC7B8uC,EAAS9uC,EAAoB,KAC7B+uC,EAAa/uC,EAAoB,KAEjCw2C,GADQx2C,EAAoB,KACjBA,EAAoB,MAC/Bs2C,EAAYt2C,EAAoB,IAGpCwuC,GAAQgJ,MAAQhB,EAASgB,KASzB,IAWId,IACFxmC,MAAO,QACPC,OAAQ,QACRsnC,YAAa,OACbC,YAAa,QACbC,OAAQ,IACRC,OAAQ,IACRC,OAAQ,IACRC,YAAa,SAAqB3sC,GAChC,MAAOA,IAET4sC,YAAa,SAAqB5sC,GAChC,MAAOA,IAET6sC,YAAa,SAAqB7sC,GAChC,MAAOA,IAET8sC,WAAW,EACXC,WAAW,EACXC,WAAW,EACXC,UAAU,EACVC,iBAAiB,EACjBC,YAAY,EACZC,iBAAiB,EACjBC,cAAe,GAEfC,aAAc,IACdC,mBAAoB,GACpBC,mBAAoB,IAEpBC,0BAzCkBj1C,GA0ClBk1C,kBAAmB,IACnBC,kBAAkB,EAClBC,uBA5CkBp1C,GA8ClBq1C,UAAW,UACXC,UAAW,UACXC,QAAS,MACTC,QAAS,MAEThtC,MAAOqiC,EAAQgJ,MAAM4B,IACrBC,SAAS,EAETC,cACE/I,SACEgJ,QAAS,OACT9tC,OAAQ,oBACRzB,MAAO,UACPwB,WAAY,wBACZguC,aAAc,MACdC,UAAW,sCAEbC,MACEvpC,OAAQ,OACRD,MAAO,IACPypC,WAAY,qBAEdC,KACEzpC,OAAQ,IACRD,MAAO,IACPzE,OAAQ,oBACR+tC,aAAc,QAIlBK,eA5EkBl2C,GA6ElBm2C,oBA7EkBn2C,GA+ElBo2C,WACEC,KAAM,UACNC,OAAQ,UACRC,YAAa,GAGfC,gBACEC,WAAY,EACZC,SAAU,GACVC,SAAU,KAGZC,cA3FkB52C,GA4FlB62C,cA5FkB72C,GA6FlB82C,aA7FkB92C,GA8FlB+2C,aA9FkB/2C,GA+FlBg3C,SA/FkBh3C,GAgGlBi3C,SAhGkBj3C,GAiGlBk3C,UAjGkBl3C,GAkGlBm3C,SAlGkBn3C,GAmGlBo3C,SAnGkBp3C,GAoGlBq3C,UApGkBr3C,GAqGlBs3C,SArGkBt3C,GAsGlBu3C,SAtGkBv3C,GAuGlBw3C,UAvGkBx3C,GA6JpB4zC,GAAQ/I,EAAQr8B,WAKhBq8B,EAAQr8B,UAAUipC,UAAY,WAC5Bt7C,KAAKwC,MAAQ,GAAIusC,GAAQ,EAAI/uC,KAAKu7C,OAAOC,QAAS,EAAIx7C,KAAKy7C,OAAOD,QAAS,EAAIx7C,KAAK07C,OAAOF,SAGvFx7C,KAAKy4C,kBACHz4C,KAAKwC,MAAMyyB,EAAIj1B,KAAKwC,MAAMqsB,EAE5B7uB,KAAKwC,MAAMqsB,EAAI7uB,KAAKwC,MAAMyyB,EAG1Bj1B,KAAKwC,MAAMyyB,EAAIj1B,KAAKwC,MAAMqsB,GAK9B7uB,KAAKwC,MAAMm5C,GAAK37C,KAAK04C,kBAIG70C,KAApB7D,KAAK47C,aACP57C,KAAKwC,MAAMD,MAAQ,EAAIvC,KAAK47C,WAAWJ,QAIzC,IAAIpC,GAAUp5C,KAAKu7C,OAAOM,SAAW77C,KAAKwC,MAAMyyB,EAC5CokB,EAAUr5C,KAAKy7C,OAAOI,SAAW77C,KAAKwC,MAAMqsB,EAC5CitB,EAAU97C,KAAK07C,OAAOG,SAAW77C,KAAKwC,MAAMm5C,CAChD37C,MAAK+7C,OAAOC,eAAe5C,EAASC,EAASyC,IAU/CpN,EAAQr8B,UAAU4pC,eAAiB,SAAUC,GAC3C,GAAIC,GAAcn8C,KAAKo8C,2BAA2BF,EAClD,OAAOl8C,MAAKq8C,4BAA4BF,IAY1CzN,EAAQr8B,UAAU+pC,2BAA6B,SAAUF,GACvD,GAAII,GAAiBt8C,KAAK+7C,OAAOQ,oBAC7BC,EAAiBx8C,KAAK+7C,OAAOU,oBAC7BC,EAAKR,EAAQjnB,EAAIj1B,KAAKwC,MAAMyyB,EAC5B0nB,EAAKT,EAAQrtB,EAAI7uB,KAAKwC,MAAMqsB,EAC5B+tB,EAAKV,EAAQP,EAAI37C,KAAKwC,MAAMm5C,EAC5BkB,EAAKP,EAAernB,EACpB6nB,EAAKR,EAAeztB,EACpBkuB,EAAKT,EAAeX,EAIxBqB,EAAQv6C,KAAKw6C,IAAIT,EAAevnB,GAC5BioB,EAAQz6C,KAAK06C,IAAIX,EAAevnB,GAChCmoB,EAAQ36C,KAAKw6C,IAAIT,EAAe3tB,GAChCwuB,EAAQ56C,KAAK06C,IAAIX,EAAe3tB,GAChCyuB,EAAQ76C,KAAKw6C,IAAIT,EAAeb,GAChC4B,EAAQ96C,KAAK06C,IAAIX,EAAeb,EAQpC,OAAO,IAAI5M,GAJNsO,GAASC,GAASX,EAAKG,GAAMS,GAASb,EAAKG,IAAOO,GAASR,EAAKG,GAC5DC,GAASK,GAAST,EAAKG,GAAMK,GAASE,GAASX,EAAKG,GAAMS,GAASb,EAAKG,KAAQK,GAASK,GAASZ,EAAKG,GAAMQ,GAASZ,EAAKG,IAC3HK,GAASG,GAAST,EAAKG,GAAMK,GAASE,GAASX,EAAKG,GAAMS,GAASb,EAAKG,KAAQG,GAASO,GAASZ,EAAKG,GAAMQ,GAASZ,EAAKG,MAatInO,EAAQr8B,UAAUgqC,4BAA8B,SAAUF,GACxD,GAQIqB,GACAC,EATAC,EAAK19C,KAAK29C,IAAI1oB,EACd2oB,EAAK59C,KAAK29C,IAAI9uB,EACdgvB,EAAK79C,KAAK29C,IAAIhC,EACdmC,EAAK3B,EAAYlnB,EACjB8oB,EAAK5B,EAAYttB,EACjBmvB,EAAK7B,EAAYR,CAerB,OAVI37C,MAAKu4C,iBACPiF,EAAkBK,EAAKG,GAAjBF,EAAKJ,GACXD,EAAkBI,EAAKG,GAAjBD,EAAKH,KAEXJ,EAAKM,IAAOD,EAAK79C,KAAK+7C,OAAOkC,gBAC7BR,EAAKM,IAAOF,EAAK79C,KAAK+7C,OAAOkC,iBAKxB,GAAInP,GAAQ9uC,KAAKk+C,eAAiBV,EAAKx9C,KAAKm+C,MAAMC,OAAOrtC,YAAa/Q,KAAKq+C,eAAiBZ,EAAKz9C,KAAKm+C,MAAMC,OAAOrtC,cAM5H29B,EAAQr8B,UAAUisC,kBAAoB,SAAUC,GAC9C,IAAK,GAAIx6C,GAAI,EAAGA,EAAIw6C,EAAO36C,OAAQG,IAAK,CACtC,GAAI6W,GAAQ2jC,EAAOx6C,EACnB6W,GAAM4jC,MAAQx+C,KAAKo8C,2BAA2BxhC,EAAMA,OACpDA,EAAM6jC,OAASz+C,KAAKq8C,4BAA4BzhC,EAAM4jC,MAGtD,IAAIE,GAAc1+C,KAAKo8C,2BAA2BxhC,EAAM+jC,OACxD/jC,GAAMgkC,KAAO5+C,KAAKu4C,gBAAkBmG,EAAY96C,UAAY86C,EAAY/C,EAI1E,GAAIkD,GAAY,SAAmBr7C,EAAGC,GACpC,MAAOA,GAAEm7C,KAAOp7C,EAAEo7C,KAEpBL,GAAOx1B,KAAK81B,IAQdnQ,EAAQr8B,UAAUysC,iBAAmB,SAAUpqB,GAI7C,GAFoB10B,KAAKqM,QAAUqiC,EAAQgJ,MAAMqH,UAAY/+C,KAAKqM,QAAUqiC,EAAQgJ,MAAMsH,SAAWh/C,KAAKqM,QAAUqiC,EAAQgJ,MAAMuH,UAAYj/C,KAAKqM,QAAUqiC,EAAQgJ,MAAMwH,QAE3K,CAKA,OAAsBr7C,KAAlB7D,KAAKg3C,SACP,KAAM,IAAI3yC,OAAM,0DAAyErE,KAAKqM,MAAQ,IAKxG,QAA+BxI,KAA3B6wB,EAAK,GAAG10B,KAAKg3C,UACf,KAAM,IAAI3yC,OAAM,iCAAyCrE,KAAKg3C,SAAW,uBAAgCh3C,KAAKqM,MAAQ,OAI1HqiC,EAAQr8B,UAAU8sC,gBAAkB,SAAUC,EAAS/yC,GAyBrD,GAxBArM,KAAKu2C,UAAU8I,eAAer/C,KAAMo/C,EAAS/yC,GAI7CrM,KAAKu7C,OAASv7C,KAAKu2C,UAAUgF,OAC7Bv7C,KAAKy7C,OAASz7C,KAAKu2C,UAAUkF,OAC7Bz7C,KAAK07C,OAAS17C,KAAKu2C,UAAUmF,OAC7B17C,KAAK47C,WAAa57C,KAAKu2C,UAAUqF,WAIjC57C,KAAK+6C,MAAQ/6C,KAAKu2C,UAAUwE,MAC5B/6C,KAAKk7C,MAAQl7C,KAAKu2C,UAAU2E,MAC5Bl7C,KAAKq7C,MAAQr7C,KAAKu2C,UAAU8E,MAC5Br7C,KAAKy6C,UAAYz6C,KAAKu2C,UAAUkE,UAChCz6C,KAAK06C,UAAY16C,KAAKu2C,UAAUmE,UAChC16C,KAAK62C,KAAO72C,KAAKu2C,UAAUM,KAC3B72C,KAAK82C,KAAO92C,KAAKu2C,UAAUO,KAC3B92C,KAAK+2C,KAAO/2C,KAAKu2C,UAAUQ,KAC3B/2C,KAAKg3C,SAAWh3C,KAAKu2C,UAAUS,SAGpBh3C,KAAKu2C,UAAU+I,eAEjB,GAAGh8C,eAAe,UAAW,CAEpCtD,KAAKi3C,UAAY,QAEjB,IAAIhF,GAAKjyC,SACe6D,KAApB7D,KAAKu/C,aACPv/C,KAAKu/C,WAAa,GAAI1Q,GAAO7uC,KAAKu2C,UAAWv2C,KAAKi3C,UAAWj3C,MAC7DA,KAAKu/C,WAAWC,kBAAkB,WAChCvN,EAAGwN,YAMTz/C,KAAKs7C,aAMP5M,EAAQr8B,UAAUqtC,cAAgB,SAAUhrB,GAG1C,IAAK,GAFD+hB,MAEK1yC,EAAI,EAAGA,EAAI2wB,EAAK9wB,OAAQG,IAAK,CACpC,GAAI6W,GAAQ,GAAIm0B,EAChBn0B,GAAMqa,EAAIP,EAAK3wB,GAAG/D,KAAK62C,OAAS,EAChCj8B,EAAMiU,EAAI6F,EAAK3wB,GAAG/D,KAAK82C,OAAS,EAChCl8B,EAAM+gC,EAAIjnB,EAAK3wB,GAAG/D,KAAK+2C,OAAS,EAChCn8B,EAAM8Z,KAAOA,EAAK3wB,OAEIF,KAAlB7D,KAAKg3C,WACPp8B,EAAMrY,MAAQmyB,EAAK3wB,GAAG/D,KAAKg3C,WAAa,EAG1C,IAAIl2C,KACJA,GAAI8Z,MAAQA,EACZ9Z,EAAI69C,OAAS,GAAI5P,GAAQn0B,EAAMqa,EAAGra,EAAMiU,EAAG7uB,KAAK07C,OAAOt5C,KACvDtB,EAAI09C,UAAQ36C,GACZ/C,EAAI29C,WAAS56C,GAEb4yC,EAAW5xC,KAAK/D,GAGlB,MAAO21C,IAUT/H,EAAQr8B,UAAUstC,eAAiB,SAAUjrB,GAG3C,GAAIO,GAAGpG,EAAG9qB,EAAMjD,EAEZ21C,IAEJ,IAAIz2C,KAAKqM,QAAUqiC,EAAQgJ,MAAMkI,MAAQ5/C,KAAKqM,QAAUqiC,EAAQgJ,MAAMmI,QAAS,CAK7E,GAAIC,GAAQ9/C,KAAKu2C,UAAUwJ,kBAAkB//C,KAAK62C,KAAMniB,GACpDsrB,EAAQhgD,KAAKu2C,UAAUwJ,kBAAkB//C,KAAK82C,KAAMpiB,EAExD+hB,GAAaz2C,KAAK0/C,cAAchrB,EAGhC,IAAIurB,KACJ,KAAKl8C,EAAI,EAAGA,EAAI0yC,EAAW7yC,OAAQG,IAAK,CACtCjD,EAAM21C,EAAW1yC,EAGjB,IAAIm8C,GAASJ,EAAMl7C,QAAQ9D,EAAI8Z,MAAMqa,GACjCkrB,EAASH,EAAMp7C,QAAQ9D,EAAI8Z,MAAMiU,OAEVhrB,KAAvBo8C,EAAWC,KACbD,EAAWC,OAGbD,EAAWC,GAAQC,GAAUr/C,EAI/B,IAAKm0B,EAAI,EAAGA,EAAIgrB,EAAWr8C,OAAQqxB,IACjC,IAAKpG,EAAI,EAAGA,EAAIoxB,EAAWhrB,GAAGrxB,OAAQirB,IAChCoxB,EAAWhrB,GAAGpG,KAChBoxB,EAAWhrB,GAAGpG,GAAGuxB,WAAanrB,EAAIgrB,EAAWr8C,OAAS,EAAIq8C,EAAWhrB,EAAI,GAAGpG,OAAKhrB,GACjFo8C,EAAWhrB,GAAGpG,GAAGwxB,SAAWxxB,EAAIoxB,EAAWhrB,GAAGrxB,OAAS,EAAIq8C,EAAWhrB,GAAGpG,EAAI,OAAKhrB,GAClFo8C,EAAWhrB,GAAGpG,GAAGyxB,WAAarrB,EAAIgrB,EAAWr8C,OAAS,GAAKirB,EAAIoxB,EAAWhrB,GAAGrxB,OAAS,EAAIq8C,EAAWhrB,EAAI,GAAGpG,EAAI,OAAKhrB,QAS3H,IAHA7D,KAAK8+C,iBAAiBpqB,GACtB+hB,EAAaz2C,KAAK0/C,cAAchrB,GAE5B10B,KAAKqM,QAAUqiC,EAAQgJ,MAAM6I,KAE/B,IAAKx8C,EAAI,EAAGA,EAAI0yC,EAAW7yC,OAAQG,IAC7BA,EAAI,IACN0yC,EAAW1yC,EAAI,GAAGy8C,UAAY/J,EAAW1yC,GAMjD,OAAO0yC,IAUT/H,EAAQr8B,UAAU2F,OAAS,WAEzB,KAAOhY,KAAKs2C,iBAAiBt0C,iBAC3BhC,KAAKs2C,iBAAiBp0C,YAAYlC,KAAKs2C,iBAAiBr0C,WAG1DjC,MAAKm+C,MAAQjuC,SAASC,cAAc,OACpCnQ,KAAKm+C,MAAM9xC,MAAMkE,SAAW,WAC5BvQ,KAAKm+C,MAAM9xC,MAAMoE,SAAW,SAG5BzQ,KAAKm+C,MAAMC,OAASluC,SAASC,cAAc,UAC3CnQ,KAAKm+C,MAAMC,OAAO/xC,MAAMkE,SAAW,WACnCvQ,KAAKm+C,MAAMztC,YAAY1Q,KAAKm+C,MAAMC,OAGhC,IAAIqC,GAAWvwC,SAASC,cAAc,MACtCswC,GAASp0C,MAAMnC,MAAQ,MACvBu2C,EAASp0C,MAAMq0C,WAAa,OAC5BD,EAASp0C,MAAMotC,QAAU,OACzBgH,EAASE,UAAY,mDACrB3gD,KAAKm+C,MAAMC,OAAO1tC,YAAY+vC,GAGhCzgD,KAAKm+C,MAAMr3C,OAASoJ,SAASC,cAAc,OAC3CnQ,KAAKm+C,MAAMr3C,OAAOuF,MAAMkE,SAAW,WACnCvQ,KAAKm+C,MAAMr3C,OAAOuF,MAAMsyC,OAAS,MACjC3+C,KAAKm+C,MAAMr3C,OAAOuF,MAAMnG,KAAO,MAC/BlG,KAAKm+C,MAAMr3C,OAAOuF,MAAM+D,MAAQ,OAChCpQ,KAAKm+C,MAAMztC,YAAY1Q,KAAKm+C,MAAMr3C,OAGlC,IAAImrC,GAAKjyC,KACL4gD,EAAc,SAAqBr4C,GACrC0pC,EAAG4O,aAAat4C,IAEdu4C,EAAe,SAAsBv4C,GACvC0pC,EAAG8O,cAAcx4C,IAEfy4C,EAAe,SAAsBz4C,GACvC0pC,EAAGgP,SAAS14C,IAEV24C,EAAY,SAAmB34C,GACjC0pC,EAAGkP,WAAW54C,IAEZ64C,EAAU,SAAiB74C,GAC7B0pC,EAAGoP,SAAS94C,GAId5H,GAAKiH,iBAAiB5H,KAAKm+C,MAAMC,OAAQ,YAAawC,GACtDjgD,EAAKiH,iBAAiB5H,KAAKm+C,MAAMC,OAAQ,aAAc0C,GACvDngD,EAAKiH,iBAAiB5H,KAAKm+C,MAAMC,OAAQ,aAAc4C,GACvDrgD,EAAKiH,iBAAiB5H,KAAKm+C,MAAMC,OAAQ,YAAa8C,GACtDvgD,EAAKiH,iBAAiB5H,KAAKm+C,MAAMC,OAAQ,QAASgD,GAGlDphD,KAAKs2C,iBAAiB5lC,YAAY1Q,KAAKm+C,QAMzCzP,EAAQr8B,UAAUivC,SAAW,SAAUlxC,EAAOC,GAC5CrQ,KAAKm+C,MAAM9xC,MAAM+D,MAAQA,EACzBpQ,KAAKm+C,MAAM9xC,MAAMgE,OAASA,EAE1BrQ,KAAKuhD,iBAMP7S,EAAQr8B,UAAUkvC,cAAgB,WAChCvhD,KAAKm+C,MAAMC,OAAO/xC,MAAM+D,MAAQ,OAChCpQ,KAAKm+C,MAAMC,OAAO/xC,MAAMgE,OAAS,OAEjCrQ,KAAKm+C,MAAMC,OAAOhuC,MAAQpQ,KAAKm+C,MAAMC,OAAOrtC,YAC5C/Q,KAAKm+C,MAAMC,OAAO/tC,OAASrQ,KAAKm+C,MAAMC,OAAOoD,aAG7CxhD,KAAKm+C,MAAMr3C,OAAOuF,MAAM+D,MAAQpQ,KAAKm+C,MAAMC,OAAOrtC,YAAc,GAAS,MAM3E29B,EAAQr8B,UAAUovC,eAAiB,WACjC,IAAKzhD,KAAKm+C,MAAMr3C,SAAW9G,KAAKm+C,MAAMr3C,OAAO46C,OAAQ,KAAM,IAAIr9C,OAAM,yBAErErE,MAAKm+C,MAAMr3C,OAAO46C,OAAOC,QAM3BjT,EAAQr8B,UAAUuvC,cAAgB,WAC3B5hD,KAAKm+C,MAAMr3C,QAAW9G,KAAKm+C,MAAMr3C,OAAO46C,QAE7C1hD,KAAKm+C,MAAMr3C,OAAO46C,OAAOG,QAS3BnT,EAAQr8B,UAAUyvC,cAAgB,WAEqB,MAAjD9hD,KAAKo5C,QAAQn+B,OAAOjb,KAAKo5C,QAAQx1C,OAAS,GAC5C5D,KAAKk+C,eAAiBziB,WAAWz7B,KAAKo5C,SAAW,IAAMp5C,KAAKm+C,MAAMC,OAAOrtC,YAEzE/Q,KAAKk+C,eAAiBziB,WAAWz7B,KAAKo5C,SAIa,MAAjDp5C,KAAKq5C,QAAQp+B,OAAOjb,KAAKq5C,QAAQz1C,OAAS,GAC5C5D,KAAKq+C,eAAiB5iB,WAAWz7B,KAAKq5C,SAAW,KAAOr5C,KAAKm+C,MAAMC,OAAOoD,aAAexhD,KAAKm+C,MAAMr3C,OAAO06C,cAE3GxhD,KAAKq+C,eAAiB5iB,WAAWz7B,KAAKq5C,UAU1C3K,EAAQr8B,UAAU0vC,kBAAoB,WACpC,GAAIjnC,GAAM9a,KAAK+7C,OAAOiG,gBAEtB,OADAlnC,GAAI0/B,SAAWx6C,KAAK+7C,OAAOkC,eACpBnjC,GAMT4zB,EAAQr8B,UAAU4vC,UAAY,SAAUvtB,GAEtC10B,KAAKm/C,gBAAgBzqB,EAAM10B,KAAKqM,OAE5BrM,KAAKu/C,WAEPv/C,KAAKy2C,WAAaz2C,KAAKu/C,WAAWI,iBAGlC3/C,KAAKy2C,WAAaz2C,KAAK2/C,eAAe3/C,KAAKu2C,UAAU+I,gBAIvDt/C,KAAKkiD,iBAQPxT,EAAQr8B,UAAUqjC,QAAU,SAAUhhB,GACpC10B,KAAKiiD,UAAUvtB,GACf10B,KAAKy/C,SAGDz/C,KAAKi5C,oBAAsBj5C,KAAKu/C,YAClCv/C,KAAKyhD,kBAST/S,EAAQr8B,UAAU6+B,WAAa,SAAUljC,GAGvChO,KAAK4hD,gBAELlL,EAASxF,WAAWljC,EAAShO,MAE7BA,KAAKmiD,wBACLniD,KAAKshD,SAASthD,KAAKoQ,MAAOpQ,KAAKqQ,QAG/BrQ,KAAKu2C,UAAU6L,SAGXpiD,KAAKi5C,oBAAsBj5C,KAAKu/C,YAClCv/C,KAAKyhD,kBAOT/S,EAAQr8B,UAAU8vC,sBAAwB,WACxC,GAAIhN,OAAStxC,EAEb,QAAQ7D,KAAKqM,OACX,IAAKqiC,GAAQgJ,MAAM2K,IACjBlN,EAASzG,EAAQr8B,UAAUiwC,oBAC3B,MACF,KAAK5T,GAAQgJ,MAAMqH,SACjB5J,EAASzG,EAAQr8B,UAAUkwC,yBAC3B,MACF,KAAK7T,GAAQgJ,MAAMsH,QACjB7J,EAASzG,EAAQr8B,UAAUmwC,wBAC3B,MACF,KAAK9T,GAAQgJ,MAAM4B,IACjBnE,EAASzG,EAAQr8B,UAAUowC,oBAC3B,MACF,KAAK/T,GAAQgJ,MAAMgL,QACjBvN,EAASzG,EAAQr8B,UAAUswC,wBAC3B,MACF,KAAKjU,GAAQgJ,MAAMuH,SACjB9J,EAASzG,EAAQr8B,UAAUuwC,yBAC3B,MACF,KAAKlU,GAAQgJ,MAAMwH,QACjB/J,EAASzG,EAAQr8B,UAAUwwC,wBAC3B,MACF,KAAKnU,GAAQgJ,MAAMmI,QACjB1K,EAASzG,EAAQr8B,UAAUywC,wBAC3B,MACF,KAAKpU,GAAQgJ,MAAMkI,KACjBzK,EAASzG,EAAQr8B,UAAU0wC,qBAC3B,MACF,KAAKrU,GAAQgJ,MAAM6I,KACjBpL,EAASzG,EAAQr8B,UAAU2wC,qBAC3B,MACF,SACE,KAAM,IAAI3+C,OAAM,2DAAmErE,KAAKqM,MAAQ,KAGpGrM,KAAKijD,oBAAsB9N,GAM7BzG,EAAQr8B,UAAUotC,OAAS,WACzB,OAAwB57C,KAApB7D,KAAKy2C,WACP,KAAM,IAAIpyC,OAAM,6BAGlBrE,MAAKuhD,gBACLvhD,KAAK8hD,gBACL9hD,KAAKkjD,gBACLljD,KAAKmjD,eACLnjD,KAAKojD,cAELpjD,KAAKqjD,mBAELrjD,KAAKsjD,cACLtjD,KAAKujD,iBAMP7U,EAAQr8B,UAAUmxC,YAAc,WAC9B,GAAIpF,GAASp+C,KAAKm+C,MAAMC,OACpB9oC,EAAM8oC,EAAOqF,WAAW,KAK5B,OAHAnuC,GAAIouC,SAAW,QACfpuC,EAAIquC,QAAU,QAEPruC,GAMTo5B,EAAQr8B,UAAU8wC,aAAe,WAC/B,GAAI/E,GAASp+C,KAAKm+C,MAAMC,MACdA,GAAOqF,WAAW,MAExBG,UAAU,EAAG,EAAGxF,EAAOhuC,MAAOguC,EAAO/tC,SAG3Cq+B,EAAQr8B,UAAUwxC,SAAW,WAC3B,MAAO7jD,MAAKm+C,MAAMptC,YAAc/Q,KAAK24C,cAMvCjK,EAAQr8B,UAAUyxC,gBAAkB,WAClC,GAAI1zC,EAEJ,IAAIpQ,KAAKqM,QAAUqiC,EAAQgJ,MAAMwH,QAAS,CAGxC9uC,EAFcpQ,KAAK6jD,WAED7jD,KAAK64C,uBAEvBzoC,GADSpQ,KAAKqM,QAAUqiC,EAAQgJ,MAAMsH,QAC9Bh/C,KAAKy6C,UAEL,EAEV,OAAOrqC,IAMTs+B,EAAQr8B,UAAUkxC,cAAgB,WAGhC,IAAwB,IAApBvjD,KAAK+5C,YAKL/5C,KAAKqM,QAAUqiC,EAAQgJ,MAAM6I,MAAQvgD,KAAKqM,QAAUqiC,EAAQgJ,MAAMsH,QAAtE,CAMA,GAAI+E,GAAe/jD,KAAKqM,QAAUqiC,EAAQgJ,MAAMsH,SAAWh/C,KAAKqM,QAAUqiC,EAAQgJ,MAAMwH,QAGpF8E,EAAgBhkD,KAAKqM,QAAUqiC,EAAQgJ,MAAMwH,SAAWl/C,KAAKqM,QAAUqiC,EAAQgJ,MAAMuH,UAAYj/C,KAAKqM,QAAUqiC,EAAQgJ,MAAMqH,SAE9H1uC,EAAS5N,KAAKJ,IAA8B,IAA1BrC,KAAKm+C,MAAMqD,aAAqB,KAClDl7C,EAAMtG,KAAKikD,OACX7zC,EAAQpQ,KAAK8jD,kBACb19C,EAAQpG,KAAKm+C,MAAMptC,YAAc/Q,KAAKikD,OACtC/9C,EAAOE,EAAQgK,EACfuuC,EAASr4C,EAAM+J,EAEfiF,EAAMtV,KAAKwjD,aAIf,IAHAluC,EAAI4uC,UAAY,EAChB5uC,EAAI6uC,KAAO,cAEU,IAAjBJ,EAAwB,CAE1B,GAEIl1B,GADAu1B,EAAO/zC,CAGX,KAAKwe,EAJM,EAIIA,EAAIu1B,EAAMv1B,IAAK,CAC5B,GAAI9hB,IAAK8hB,EALA,IAKau1B,EALb,GAMLC,EAAU,IAAJt3C,EACN7C,EAAQlK,KAAKskD,SAASD,EAAK,EAAG,EAElC/uC,GAAIivC,YAAcr6C,EAClBoL,EAAIkvC,YACJlvC,EAAImvC,OAAOv+C,EAAMI,EAAMuoB,GACvBvZ,EAAIovC,OAAOt+C,EAAOE,EAAMuoB,GACxBvZ,EAAI6kC,SAEN7kC,EAAIivC,YAAcvkD,KAAKk5C,UACvB5jC,EAAIqvC,WAAWz+C,EAAMI,EAAK8J,EAAOC,OAC5B,CAGL,GAAIu0C,EACA5kD,MAAKqM,QAAUqiC,EAAQgJ,MAAMwH,QAE/B0F,EAAWx0C,GAASpQ,KAAK44C,mBAAqB54C,KAAK64C,qBAC1C74C,KAAKqM,MAAUqiC,EAAQgJ,MAAMsH,SAGxC1pC,EAAIivC,YAAcvkD,KAAKk5C,UACvB5jC,EAAIuvC,UAAY7kD,KAAKi6C,UAAUC,KAC/B5kC,EAAIkvC,YACJlvC,EAAImvC,OAAOv+C,EAAMI,GACjBgP,EAAIovC,OAAOt+C,EAAOE,GAClBgP,EAAIovC,OAAOx+C,EAAO0+C,EAAUjG,GAC5BrpC,EAAIovC,OAAOx+C,EAAMy4C,GACjBrpC,EAAIwvC,YACJxvC,EAAI4kC,OACJ5kC,EAAI6kC,SAIN,GAEI4K,GAAYf,EAAgBhkD,KAAK47C,WAAWx5C,IAAMpC,KAAK07C,OAAOt5C,IAC9D4iD,EAAYhB,EAAgBhkD,KAAK47C,WAAWv5C,IAAMrC,KAAK07C,OAAOr5C,IAC9DkQ,EAAO,GAAI08B,GAAW8V,EAAWC,GAAYA,EAAYD,GAAa,GAAG,EAC7ExyC,GAAK0yC,OAAM,EAKX,KAHA,GAAIp2B,GACAlL,EACAD,GACInR,EAAK2yC,OACXr2B,EAAI8vB,GAAUpsC,EAAK4yC,aAAeJ,IAAcC,EAAYD,GAAa10C,EACzEsT,EAAO,GAAImrB,GAAQ5oC,EAZH,EAYuB2oB,GACvCnL,EAAK,GAAIorB,GAAQ5oC,EAAM2oB,GACvB7uB,KAAKolD,MAAM9vC,EAAKqO,EAAMD,GAEtBpO,EAAI+vC,UAAY,QAChB/vC,EAAIgwC,aAAe,SACnBhwC,EAAIuvC,UAAY7kD,KAAKk5C,UACrB5jC,EAAIiwC,SAAShzC,EAAK4yC,aAAcj/C,EAAO,GAAiB2oB,GAExDtc,EAAKd,MAGP6D,GAAI+vC,UAAY,QAChB/vC,EAAIgwC,aAAe,KACnB,IAAIhV,GAAQtwC,KAAK43C,WACjBtiC,GAAIiwC,SAASjV,EAAOlqC,EAAOu4C,EAAS3+C,KAAKikD,UAM3CvV,EAAQr8B,UAAU6vC,cAAgB,WAGhC,GAFAliD,KAAKm+C,MAAMr3C,OAAO65C,UAAY,GAE1B3gD,KAAKu/C,WAAY,CACnB,GAAIvxC,IACFw3C,QAAWxlD,KAAK84C,uBAEd4I,EAAS,GAAI1S,GAAOhvC,KAAKm+C,MAAMr3C,OAAQkH,EAC3ChO,MAAKm+C,MAAMr3C,OAAO46C,OAASA,EAG3B1hD,KAAKm+C,MAAMr3C,OAAOuF,MAAMotC,QAAU,OAGlCiI,EAAO+D,UAAUzlD,KAAKu/C,WAAWrqC,QACjCwsC,EAAOgE,gBAAgB1lD,KAAK+4C,kBAG5B,IAAI9G,GAAKjyC,KACL2lD,EAAW,WACb,GAAI5yC,GAAQ2uC,EAAOkE,UAEnB3T,GAAGsN,WAAWsG,YAAY9yC,GAC1Bk/B,EAAGwE,WAAaxE,EAAGsN,WAAWI,iBAE9B1N,EAAGwN,SAELiC,GAAOoE,oBAAoBH,OAE3B3lD,MAAKm+C,MAAMr3C,OAAO46C,WAAS79C,IAO/B6qC,EAAQr8B,UAAU6wC,cAAgB,eACCr/C,KAA7B7D,KAAKm+C,MAAMr3C,OAAO46C,QACpB1hD,KAAKm+C,MAAMr3C,OAAO46C,OAAOjC,UAO7B/Q,EAAQr8B,UAAUixC,YAAc,WAC9B,GAAItjD,KAAKu/C,WAAY,CACnB,GAAIjqC,GAAMtV,KAAKwjD,aAEfluC,GAAI6uC,KAAO,aACX7uC,EAAIywC,UAAY,OAChBzwC,EAAIuvC,UAAY,OAChBvvC,EAAI+vC,UAAY,OAChB/vC,EAAIgwC,aAAe,KAEnB,IAAIrwB,GAAIj1B,KAAKikD,OACTp1B,EAAI7uB,KAAKikD,MACb3uC,GAAIiwC,SAASvlD,KAAKu/C,WAAWyG,WAAa,KAAOhmD,KAAKu/C,WAAW0G,mBAAoBhxB,EAAGpG,KAS5F6f,EAAQr8B,UAAU+yC,MAAQ,SAAU9vC,EAAKqO,EAAMD,EAAI6gC,OAC7B1gD,KAAhB0gD,IACFjvC,EAAIivC,YAAcA,GAGpBjvC,EAAIkvC,YACJlvC,EAAImvC,OAAO9gC,EAAKsR,EAAGtR,EAAKkL,GACxBvZ,EAAIovC,OAAOhhC,EAAGuR,EAAGvR,EAAGmL,GACpBvZ,EAAI6kC,UAGNzL,EAAQr8B,UAAU6zC,eAAiB,SAAU5wC,EAAK4mC,EAASiK,EAAMC,EAAUC,OACzDxiD,KAAZwiD,IACFA,EAAU,EAGZ,IAAIC,GAAUtmD,KAAKi8C,eAAeC,EAE9Bz5C,MAAK06C,IAAe,EAAXiJ,GAAgB,GAC3B9wC,EAAI+vC,UAAY,SAChB/vC,EAAIgwC,aAAe,MACnBgB,EAAQz3B,GAAKw3B,GACJ5jD,KAAKw6C,IAAe,EAAXmJ,GAAgB,GAClC9wC,EAAI+vC,UAAY,QAChB/vC,EAAIgwC,aAAe,WAEnBhwC,EAAI+vC,UAAY,OAChB/vC,EAAIgwC,aAAe,UAGrBhwC,EAAIuvC,UAAY7kD,KAAKk5C,UACrB5jC,EAAIiwC,SAASY,EAAMG,EAAQrxB,EAAGqxB,EAAQz3B,IAGxC6f,EAAQr8B,UAAUk0C,eAAiB,SAAUjxC,EAAK4mC,EAASiK,EAAMC,EAAUC,OACzDxiD,KAAZwiD,IACFA,EAAU,EAGZ,IAAIC,GAAUtmD,KAAKi8C,eAAeC,EAE9Bz5C,MAAK06C,IAAe,EAAXiJ,GAAgB,GAC3B9wC,EAAI+vC,UAAY,SAChB/vC,EAAIgwC,aAAe,MACnBgB,EAAQz3B,GAAKw3B,GACJ5jD,KAAKw6C,IAAe,EAAXmJ,GAAgB,GAClC9wC,EAAI+vC,UAAY,QAChB/vC,EAAIgwC,aAAe,WAEnBhwC,EAAI+vC,UAAY,OAChB/vC,EAAIgwC,aAAe,UAGrBhwC,EAAIuvC,UAAY7kD,KAAKk5C,UACrB5jC,EAAIiwC,SAASY,EAAMG,EAAQrxB,EAAGqxB,EAAQz3B,IAGxC6f,EAAQr8B,UAAUm0C,eAAiB,SAAUlxC,EAAK4mC,EAASiK,EAAMtpB,OAChDh5B,KAAXg5B,IACFA,EAAS,EAGX,IAAIypB,GAAUtmD,KAAKi8C,eAAeC,EAClC5mC,GAAI+vC,UAAY,QAChB/vC,EAAIgwC,aAAe,SACnBhwC,EAAIuvC,UAAY7kD,KAAKk5C,UACrB5jC,EAAIiwC,SAASY,EAAMG,EAAQrxB,EAAI4H,EAAQypB,EAAQz3B,IAWjD6f,EAAQr8B,UAAUo0C,QAAU,SAAUnxC,EAAKqO,EAAMD,EAAI6gC,GACnD,GAAImC,GAAS1mD,KAAKi8C,eAAet4B,GAC7BgjC,EAAO3mD,KAAKi8C,eAAev4B,EAE/B1jB,MAAKolD,MAAM9vC,EAAKoxC,EAAQC,EAAMpC,IAMhC7V,EAAQr8B,UAAU+wC,YAAc,WAC9B,GACIz/B,GACAD,EACAnR,EACAq0C,EACAT,EACAU,EACAC,EACAC,EACAlqB,EACA0T,EACAC,EAXAl7B,EAAMtV,KAAKwjD,aAefluC,GAAI6uC,KAAO,GAAKnkD,KAAK+7C,OAAOkC,eAAiB,UAG7C,IAAI+I,GAAW,KAAQhnD,KAAKwC,MAAMyyB,EAC9BgyB,EAAW,KAAQjnD,KAAKwC,MAAMqsB,EAC9Bq4B,EAAa,EAAIlnD,KAAK+7C,OAAOkC,eAC7BmI,EAAWpmD,KAAK+7C,OAAOiG,iBAAiB1H,WACxC6M,EAAY,GAAIrY,GAAQrsC,KAAK06C,IAAIiJ,GAAW3jD,KAAKw6C,IAAImJ,IAErD7K,EAASv7C,KAAKu7C,OACdE,EAASz7C,KAAKy7C,OACdC,EAAS17C,KAAK07C,MAQlB,KALApmC,EAAI4uC,UAAY,EAChB0C,MAAmC/iD,KAAtB7D,KAAKonD,aAClB70C,EAAO,GAAI08B,GAAWsM,EAAOn5C,IAAKm5C,EAAOl5C,IAAKrC,KAAK+6C,MAAO6L,GAC1Dr0C,EAAK0yC,OAAM,IAEH1yC,EAAK2yC,OAAO,CAClB,GAAIjwB,GAAI1iB,EAAK4yC,YAgBb,IAdInlD,KAAKs4C,UACP30B,EAAO,GAAIorB,GAAQ9Z,EAAGwmB,EAAOr5C,IAAKs5C,EAAOt5C,KACzCshB,EAAK,GAAIqrB,GAAQ9Z,EAAGwmB,EAAOp5C,IAAKq5C,EAAOt5C,KACvCpC,KAAKymD,QAAQnxC,EAAKqO,EAAMD,EAAI1jB,KAAKm5C,YACxBn5C,KAAKm4C,YACdx0B,EAAO,GAAIorB,GAAQ9Z,EAAGwmB,EAAOr5C,IAAKs5C,EAAOt5C,KACzCshB,EAAK,GAAIqrB,GAAQ9Z,EAAGwmB,EAAOr5C,IAAM4kD,EAAUtL,EAAOt5C,KAClDpC,KAAKymD,QAAQnxC,EAAKqO,EAAMD,EAAI1jB,KAAKk5C,WAEjCv1B,EAAO,GAAIorB,GAAQ9Z,EAAGwmB,EAAOp5C,IAAKq5C,EAAOt5C,KACzCshB,EAAK,GAAIqrB,GAAQ9Z,EAAGwmB,EAAOp5C,IAAM2kD,EAAUtL,EAAOt5C,KAClDpC,KAAKymD,QAAQnxC,EAAKqO,EAAMD,EAAI1jB,KAAKk5C,YAG/Bl5C,KAAKm4C,UAAW,CAClB2O,EAAQK,EAAUlyB,EAAI,EAAIwmB,EAAOr5C,IAAMq5C,EAAOp5C,GAC9C,IAAI65C,GAAU,GAAInN,GAAQ9Z,EAAG6xB,EAAOpL,EAAOt5C,KACvCkjB,EAAM,KAAOtlB,KAAKg4C,YAAY/iB,GAAK,IACvCj1B,MAAKkmD,eAAe5wC,EAAK4mC,EAAS52B,EAAK8gC,EAAUc,GAGnD30C,EAAKd,OASP,IALA6D,EAAI4uC,UAAY,EAChB0C,MAAmC/iD,KAAtB7D,KAAKqnD,aAClB90C,EAAO,GAAI08B,GAAWwM,EAAOr5C,IAAKq5C,EAAOp5C,IAAKrC,KAAKk7C,MAAO0L,GAC1Dr0C,EAAK0yC,OAAM,IAEH1yC,EAAK2yC,OAAO,CAClB,GAAIr2B,GAAItc,EAAK4yC,YAgBb,IAdInlD,KAAKs4C,UACP30B,EAAO,GAAIorB,GAAQwM,EAAOn5C,IAAKysB,EAAG6sB,EAAOt5C,KACzCshB,EAAK,GAAIqrB,GAAQwM,EAAOl5C,IAAKwsB,EAAG6sB,EAAOt5C,KACvCpC,KAAKymD,QAAQnxC,EAAKqO,EAAMD,EAAI1jB,KAAKm5C,YACxBn5C,KAAKo4C,YACdz0B,EAAO,GAAIorB,GAAQwM,EAAOn5C,IAAKysB,EAAG6sB,EAAOt5C,KACzCshB,EAAK,GAAIqrB,GAAQwM,EAAOn5C,IAAM6kD,EAAUp4B,EAAG6sB,EAAOt5C,KAClDpC,KAAKymD,QAAQnxC,EAAKqO,EAAMD,EAAI1jB,KAAKk5C,WAEjCv1B,EAAO,GAAIorB,GAAQwM,EAAOl5C,IAAKwsB,EAAG6sB,EAAOt5C,KACzCshB,EAAK,GAAIqrB,GAAQwM,EAAOl5C,IAAM4kD,EAAUp4B,EAAG6sB,EAAOt5C,KAClDpC,KAAKymD,QAAQnxC,EAAKqO,EAAMD,EAAI1jB,KAAKk5C,YAG/Bl5C,KAAKo4C,UAAW,CAClByO,EAAQM,EAAUt4B,EAAI,EAAI0sB,EAAOn5C,IAAMm5C,EAAOl5C,IAC9C65C,EAAU,GAAInN,GAAQ8X,EAAOh4B,EAAG6sB,EAAOt5C,IACvC,IAAIkjB,GAAM,KAAOtlB,KAAKi4C,YAAYppB,GAAK,IACvC7uB,MAAKumD,eAAejxC,EAAK4mC,EAAS52B,EAAK8gC,EAAUc,GAGnD30C,EAAKd,OAIP,GAAIzR,KAAKq4C,UAAW,CASlB,IARA/iC,EAAI4uC,UAAY,EAChB0C,MAAmC/iD,KAAtB7D,KAAKsnD,aAClB/0C,EAAO,GAAI08B,GAAWyM,EAAOt5C,IAAKs5C,EAAOr5C,IAAKrC,KAAKq7C,MAAOuL,GAC1Dr0C,EAAK0yC,OAAM,GAEX4B,EAAQM,EAAUlyB,EAAI,EAAIsmB,EAAOn5C,IAAMm5C,EAAOl5C,IAC9CykD,EAAQK,EAAUt4B,EAAI,EAAI4sB,EAAOr5C,IAAMq5C,EAAOp5C,KAEtCkQ,EAAK2yC,OAAO,CAClB,GAAIvJ,GAAIppC,EAAK4yC,aAGToC,EAAS,GAAIxY,GAAQ8X,EAAOC,EAAOnL,GACnC+K,EAAS1mD,KAAKi8C,eAAesL,EACjC7jC,GAAK,GAAIorB,GAAQ4X,EAAOzxB,EAAIiyB,EAAYR,EAAO73B,GAC/C7uB,KAAKolD,MAAM9vC,EAAKoxC,EAAQhjC,EAAI1jB,KAAKk5C,UAEjC,IAAI5zB,GAAMtlB,KAAKk4C,YAAYyD,GAAK,GAChC37C,MAAKwmD,eAAelxC,EAAKiyC,EAAQjiC,EAAK,GAEtC/S,EAAKd,OAGP6D,EAAI4uC,UAAY,EAChBvgC,EAAO,GAAIorB,GAAQ8X,EAAOC,EAAOpL,EAAOt5C,KACxCshB,EAAK,GAAIqrB,GAAQ8X,EAAOC,EAAOpL,EAAOr5C,KACtCrC,KAAKymD,QAAQnxC,EAAKqO,EAAMD,EAAI1jB,KAAKk5C,WAInC,GAAIl5C,KAAKm4C,UAAW,CAClB,GAAIqP,GACAC,CACJnyC,GAAI4uC,UAAY,EAGhBsD,EAAS,GAAIzY,GAAQwM,EAAOn5C,IAAKq5C,EAAOr5C,IAAKs5C,EAAOt5C,KACpDqlD,EAAS,GAAI1Y,GAAQwM,EAAOl5C,IAAKo5C,EAAOr5C,IAAKs5C,EAAOt5C,KACpDpC,KAAKymD,QAAQnxC,EAAKkyC,EAAQC,EAAQznD,KAAKk5C,WAEvCsO,EAAS,GAAIzY,GAAQwM,EAAOn5C,IAAKq5C,EAAOp5C,IAAKq5C,EAAOt5C,KACpDqlD,EAAS,GAAI1Y,GAAQwM,EAAOl5C,IAAKo5C,EAAOp5C,IAAKq5C,EAAOt5C,KACpDpC,KAAKymD,QAAQnxC,EAAKkyC,EAAQC,EAAQznD,KAAKk5C,WAIrCl5C,KAAKo4C,YACP9iC,EAAI4uC,UAAY,EAEhBvgC,EAAO,GAAIorB,GAAQwM,EAAOn5C,IAAKq5C,EAAOr5C,IAAKs5C,EAAOt5C,KAClDshB,EAAK,GAAIqrB,GAAQwM,EAAOn5C,IAAKq5C,EAAOp5C,IAAKq5C,EAAOt5C,KAChDpC,KAAKymD,QAAQnxC,EAAKqO,EAAMD,EAAI1jB,KAAKk5C,WAEjCv1B,EAAO,GAAIorB,GAAQwM,EAAOl5C,IAAKo5C,EAAOr5C,IAAKs5C,EAAOt5C,KAClDshB,EAAK,GAAIqrB,GAAQwM,EAAOl5C,IAAKo5C,EAAOp5C,IAAKq5C,EAAOt5C,KAChDpC,KAAKymD,QAAQnxC,EAAKqO,EAAMD,EAAI1jB,KAAKk5C,WAInC,IAAIrB,GAAS73C,KAAK63C,MACdA,GAAOj0C,OAAS,GAAK5D,KAAKm4C,YAC5B3H,EAAU,GAAMxwC,KAAKwC,MAAMqsB,EAC3Bg4B,GAAStL,EAAOl5C,IAAM,EAAIk5C,EAAOn5C,KAAO,EACxC0kD,EAAQK,EAAUlyB,EAAI,EAAIwmB,EAAOr5C,IAAMouC,EAAUiL,EAAOp5C,IAAMmuC,EAC9D2V,EAAO,GAAIpX,GAAQ8X,EAAOC,EAAOpL,EAAOt5C,KACxCpC,KAAKkmD,eAAe5wC,EAAK6wC,EAAMtO,EAAQuO,GAIzC,IAAItO,GAAS93C,KAAK83C,MACdA,GAAOl0C,OAAS,GAAK5D,KAAKo4C,YAC5B7H,EAAU,GAAMvwC,KAAKwC,MAAMyyB,EAC3B4xB,EAAQM,EAAUt4B,EAAI,EAAI0sB,EAAOn5C,IAAMmuC,EAAUgL,EAAOl5C,IAAMkuC,EAC9DuW,GAASrL,EAAOp5C,IAAM,EAAIo5C,EAAOr5C,KAAO,EACxC+jD,EAAO,GAAIpX,GAAQ8X,EAAOC,EAAOpL,EAAOt5C,KAExCpC,KAAKumD,eAAejxC,EAAK6wC,EAAMrO,EAAQsO,GAIzC,IAAIrO,GAAS/3C,KAAK+3C,MACdA,GAAOn0C,OAAS,GAAK5D,KAAKq4C,YAC5Bxb,EAAS,GACTgqB,EAAQM,EAAUlyB,EAAI,EAAIsmB,EAAOn5C,IAAMm5C,EAAOl5C,IAC9CykD,EAAQK,EAAUt4B,EAAI,EAAI4sB,EAAOr5C,IAAMq5C,EAAOp5C,IAC9C0kD,GAASrL,EAAOr5C,IAAM,EAAIq5C,EAAOt5C,KAAO,EACxC+jD,EAAO,GAAIpX,GAAQ8X,EAAOC,EAAOC,GAEjC/mD,KAAKwmD,eAAelxC,EAAK6wC,EAAMpO,EAAQlb,KAU3C6R,EAAQr8B,UAAUiyC,SAAW,SAAUoD,EAAG5xC,EAAG6xC,GAC3C,GAAIlxC,GAAGb,EAAGK,EAAGI,EAAGuxC,EAAIC,CAMpB,QAJAxxC,EAAIsxC,EAAI7xC,EACR8xC,EAAKnlD,KAAKqK,MAAM46C,EAAI,IACpBG,EAAIxxC,GAAK,EAAI5T,KAAK0iB,IAAIuiC,EAAI,GAAK,EAAI,IAE3BE,GACN,IAAK,GACHnxC,EAAIJ,EAAET,EAAIiyC,EAAE5xC,EAAI,CAAE,MACpB,KAAK,GACHQ,EAAIoxC,EAAEjyC,EAAIS,EAAEJ,EAAI,CAAE,MACpB,KAAK,GACHQ,EAAI,EAAEb,EAAIS,EAAEJ,EAAI4xC,CAAE,MACpB,KAAK,GACHpxC,EAAI,EAAEb,EAAIiyC,EAAE5xC,EAAII,CAAE,MACpB,KAAK,GACHI,EAAIoxC,EAAEjyC,EAAI,EAAEK,EAAII,CAAE,MACpB,KAAK,GACHI,EAAIJ,EAAET,EAAI,EAAEK,EAAI4xC,CAAE,MAEpB,SACEpxC,EAAI,EAAEb,EAAI,EAAEK,EAAI,EAGpB,MAAO,OAASjM,SAAa,IAAJyM,GAAW,IAAMzM,SAAa,IAAJ4L,GAAW,IAAM5L,SAAa,IAAJiM,GAAW,KAG1Fy4B,EAAQr8B,UAAUy1C,gBAAkB,SAAUltC,GAC5C,WAAc/W,KAAV+W,EACE5a,KAAKu4C,gBACA,GAAK39B,EAAM4jC,MAAM7C,EAAI37C,KAAKi6C,UAAUG,aAElCp6C,KAAK29C,IAAIhC,EAAI37C,KAAK+7C,OAAOkC,eAAkBj+C,KAAKi6C,UAAUG,YAIhEp6C,KAAKi6C,UAAUG,aAWxB1L,EAAQr8B,UAAU01C,WAAa,SAAUzyC,EAAKsF,EAAOotC,EAAQC,EAAQ/9C,EAAOg+C,GAC1E,GAAOr6C,GAAGs6C,EAGNlW,EAAKjyC,KACLk8C,EAAUthC,EAAMA,MAChBugC,EAAOn7C,KAAK07C,OAAOt5C,IACnBkE,IAASsU,MAAO,GAAIm0B,GAAQmN,EAAQjnB,EAAI+yB,EAAQ9L,EAAQrtB,EAAIo5B,EAAQ/L,EAAQP,KAAQ/gC,MAAO,GAAIm0B,GAAQmN,EAAQjnB,EAAI+yB,EAAQ9L,EAAQrtB,EAAIo5B,EAAQ/L,EAAQP,KAAQ/gC,MAAO,GAAIm0B,GAAQmN,EAAQjnB,EAAI+yB,EAAQ9L,EAAQrtB,EAAIo5B,EAAQ/L,EAAQP,KAAQ/gC,MAAO,GAAIm0B,GAAQmN,EAAQjnB,EAAI+yB,EAAQ9L,EAAQrtB,EAAIo5B,EAAQ/L,EAAQP,KAC7SgD,IAAY/jC,MAAO,GAAIm0B,GAAQmN,EAAQjnB,EAAI+yB,EAAQ9L,EAAQrtB,EAAIo5B,EAAQ9M,KAAWvgC,MAAO,GAAIm0B,GAAQmN,EAAQjnB,EAAI+yB,EAAQ9L,EAAQrtB,EAAIo5B,EAAQ9M,KAAWvgC,MAAO,GAAIm0B,GAAQmN,EAAQjnB,EAAI+yB,EAAQ9L,EAAQrtB,EAAIo5B,EAAQ9M,KAAWvgC,MAAO,GAAIm0B,GAAQmN,EAAQjnB,EAAI+yB,EAAQ9L,EAAQrtB,EAAIo5B,EAAQ9M,IAG7R70C,GAAIY,QAAQ,SAAUpG,GACpBA,EAAI29C,OAASxM,EAAGgK,eAAen7C,EAAI8Z,SAErC+jC,EAAOz3C,QAAQ,SAAUpG,GACvBA,EAAI29C,OAASxM,EAAGgK,eAAen7C,EAAI8Z,QAIrC,IAAIwtC,KAAcC,QAAS/hD,EAAKu1C,OAAQ9M,EAAQuZ,IAAI3J,EAAO,GAAG/jC,MAAO+jC,EAAO,GAAG/jC,SAAYytC,SAAU/hD,EAAI,GAAIA,EAAI,GAAIq4C,EAAO,GAAIA,EAAO,IAAK9C,OAAQ9M,EAAQuZ,IAAI3J,EAAO,GAAG/jC,MAAO+jC,EAAO,GAAG/jC,SAAYytC,SAAU/hD,EAAI,GAAIA,EAAI,GAAIq4C,EAAO,GAAIA,EAAO,IAAK9C,OAAQ9M,EAAQuZ,IAAI3J,EAAO,GAAG/jC,MAAO+jC,EAAO,GAAG/jC,SAAYytC,SAAU/hD,EAAI,GAAIA,EAAI,GAAIq4C,EAAO,GAAIA,EAAO,IAAK9C,OAAQ9M,EAAQuZ,IAAI3J,EAAO,GAAG/jC,MAAO+jC,EAAO,GAAG/jC,SAAYytC,SAAU/hD,EAAI,GAAIA,EAAI,GAAIq4C,EAAO,GAAIA,EAAO,IAAK9C,OAAQ9M,EAAQuZ,IAAI3J,EAAO,GAAG/jC,MAAO+jC,EAAO,GAAG/jC,QAI/f,KAHAA,EAAMwtC,SAAWA,EAGZv6C,EAAI,EAAGA,EAAIu6C,EAASxkD,OAAQiK,IAAK,CACpCs6C,EAAUC,EAASv6C,EACnB,IAAI06C,GAAcvoD,KAAKo8C,2BAA2B+L,EAAQtM,OAC1DsM,GAAQvJ,KAAO5+C,KAAKu4C,gBAAkBgQ,EAAY3kD,UAAY2kD,EAAY5M,EAwB5E,IAjBAyM,EAASr/B,KAAK,SAAUvlB,EAAGC,GACzB,GAAImkB,GAAOnkB,EAAEm7C,KAAOp7C,EAAEo7C,IACtB,OAAIh3B,KAGApkB,EAAE6kD,UAAY/hD,EAAY,EAC1B7C,EAAE4kD,UAAY/hD,GAAa,EAGxB,KAITgP,EAAI4uC,UAAYlkD,KAAK8nD,gBAAgBltC,GACrCtF,EAAIivC,YAAc2D,EAClB5yC,EAAIuvC,UAAY36C,EAEX2D,EAAI,EAAGA,EAAIu6C,EAASxkD,OAAQiK,IAC/Bs6C,EAAUC,EAASv6C,GACnB7N,KAAKwoD,SAASlzC,EAAK6yC,EAAQE,UAW/B3Z,EAAQr8B,UAAUm2C,SAAW,SAAUlzC,EAAKipC,EAAQsG,EAAWN,GAC7D,KAAIhG,EAAO36C,OAAS,GAApB,KAIkBC,KAAdghD,IACFvvC,EAAIuvC,UAAYA,OAEEhhD,KAAhB0gD,IACFjvC,EAAIivC,YAAcA,GAEpBjvC,EAAIkvC,YACJlvC,EAAImvC,OAAOlG,EAAO,GAAGE,OAAOxpB,EAAGspB,EAAO,GAAGE,OAAO5vB,EAEhD,KAAK,GAAI9qB,GAAI,EAAGA,EAAIw6C,EAAO36C,SAAUG,EAAG,CACtC,GAAI6W,GAAQ2jC,EAAOx6C,EACnBuR,GAAIovC,OAAO9pC,EAAM6jC,OAAOxpB,EAAGra,EAAM6jC,OAAO5vB,GAG1CvZ,EAAIwvC,YACJxvC,EAAI4kC,OACJ5kC,EAAI6kC,WAMNzL,EAAQr8B,UAAUo2C,YAAc,SAAUnzC,EAAKsF,EAAO1Q,EAAOg+C,EAAa7X,GACxE,GAAIqY,GAAS1oD,KAAK2oD,YAAY/tC,EAAOy1B,EAErC/6B,GAAI4uC,UAAYlkD,KAAK8nD,gBAAgBltC,GACrCtF,EAAIivC,YAAc2D,EAClB5yC,EAAIuvC,UAAY36C,EAChBoL,EAAIkvC,YACJlvC,EAAIszC,IAAIhuC,EAAM6jC,OAAOxpB,EAAGra,EAAM6jC,OAAO5vB,EAAG65B,EAAQ,EAAa,EAAVjmD,KAAKomD,IAAQ,GAChEvzC,EAAI4kC,OACJ5kC,EAAI6kC,UAMNzL,EAAQr8B,UAAUy2C,kBAAoB,SAAUluC,GAE9C,GAAIypC,GAAoF,KAA7E,GAAKzpC,EAAMA,MAAM+gC,EAAI37C,KAAK07C,OAAOt5C,KAAOpC,KAAKwC,MAAMm5C,EAAI37C,KAAK04C,cAIvE,QACEwB,KAJUl6C,KAAKskD,SAASD,EAAK,EAAG,GAKhC14C,OAJgB3L,KAAKskD,SAASD,EAAK,EAAG,MAiB1C3V,EAAQr8B,UAAU02C,gBAAkB,SAAUnuC,GAE5C,GAAI1Q,GAAOg+C,CAEX,IAAiC,gBAAtBttC,GAAMA,MAAMrY,MACrB2H,EAAQ0Q,EAAMA,MAAMrY,MACpB2lD,EAActtC,EAAMA,MAAMrY,UACrB,CACL,GAAI8hD,GAA2E,KAApE,GAAKzpC,EAAMA,MAAMrY,MAAQvC,KAAK47C,WAAWx5C,KAAOpC,KAAKwC,MAAMD,MACtE2H,GAAQlK,KAAKskD,SAASD,EAAK,EAAG,GAC9B6D,EAAcloD,KAAKskD,SAASD,EAAK,EAAG,IAEtC,OACEnK,KAAMhwC,EACNyB,OAAQu8C,IAQZxZ,EAAQr8B,UAAU22C,eAAiB,WACjC,OACE9O,KAAMl6C,KAAKi6C,UAAUC,KACrBvuC,OAAQ3L,KAAKi6C,UAAUE,SAW3BzL,EAAQr8B,UAAUs2C,YAAc,SAAU/tC,EAAOy1B,OAClCxsC,KAATwsC,IACFA,EAAOrwC,KAAK6jD,WAGd,IAAI6E,EAUJ,OAREA,GADE1oD,KAAKu4C,gBACElI,GAAQz1B,EAAM4jC,MAAM7C,EAEpBtL,IAASrwC,KAAK29C,IAAIhC,EAAI37C,KAAK+7C,OAAOkC,gBAEzCyK,EAAS,IACXA,EAAS,GAGJA,GAWTha,EAAQr8B,UAAUiwC,qBAAuB,SAAUhtC,EAAKsF,GACtD,GAAIotC,GAAShoD,KAAKy6C,UAAY,EAC1BwN,EAASjoD,KAAK06C,UAAY,EAC1BuO,EAASjpD,KAAK8oD,kBAAkBluC,EAEpC5a,MAAK+nD,WAAWzyC,EAAKsF,EAAOotC,EAAQC,EAAQgB,EAAO/O,KAAM+O,EAAOt9C,SAMlE+iC,EAAQr8B,UAAUkwC,0BAA4B,SAAUjtC,EAAKsF,GAC3D,GAAIotC,GAAShoD,KAAKy6C,UAAY,EAC1BwN,EAASjoD,KAAK06C,UAAY,EAC1BuO,EAASjpD,KAAK+oD,gBAAgBnuC,EAElC5a,MAAK+nD,WAAWzyC,EAAKsF,EAAOotC,EAAQC,EAAQgB,EAAO/O,KAAM+O,EAAOt9C,SAMlE+iC,EAAQr8B,UAAUmwC,yBAA2B,SAAUltC,EAAKsF,GAE1D,GAAIsuC,IAAYtuC,EAAMA,MAAMrY,MAAQvC,KAAK47C,WAAWx5C,KAAOpC,KAAK47C,WAAWJ,QACvEwM,EAAShoD,KAAKy6C,UAAY,GAAgB,GAAXyO,EAAiB,IAChDjB,EAASjoD,KAAK06C,UAAY,GAAgB,GAAXwO,EAAiB,IAEhDD,EAASjpD,KAAKgpD,gBAElBhpD,MAAK+nD,WAAWzyC,EAAKsF,EAAOotC,EAAQC,EAAQgB,EAAO/O,KAAM+O,EAAOt9C,SAMlE+iC,EAAQr8B,UAAUowC,qBAAuB,SAAUntC,EAAKsF,GACtD,GAAIquC,GAASjpD,KAAK8oD,kBAAkBluC,EAEpC5a,MAAKyoD,YAAYnzC,EAAKsF,EAAOquC,EAAO/O,KAAM+O,EAAOt9C,SAMnD+iC,EAAQr8B,UAAUswC,yBAA2B,SAAUrtC,EAAKsF,GAE1D,GAAI+I,GAAO3jB,KAAKi8C,eAAerhC,EAAM+jC,OACrCrpC,GAAI4uC,UAAY,EAChBlkD,KAAKolD,MAAM9vC,EAAKqO,EAAM/I,EAAM6jC,OAAQz+C,KAAKm5C,WAEzCn5C,KAAKyiD,qBAAqBntC,EAAKsF,IAMjC8zB,EAAQr8B,UAAUuwC,0BAA4B,SAAUttC,EAAKsF,GAC3D,GAAIquC,GAASjpD,KAAK+oD,gBAAgBnuC,EAElC5a,MAAKyoD,YAAYnzC,EAAKsF,EAAOquC,EAAO/O,KAAM+O,EAAOt9C,SAMnD+iC,EAAQr8B,UAAUwwC,yBAA2B,SAAUvtC,EAAKsF,GAC1D,GAAIuuC,GAAUnpD,KAAK6jD,WACfqF,GAAYtuC,EAAMA,MAAMrY,MAAQvC,KAAK47C,WAAWx5C,KAAOpC,KAAK47C,WAAWJ,QAEvE4N,EAAUD,EAAUnpD,KAAK44C,mBACzByQ,EAAYF,EAAUnpD,KAAK64C,mBAAqBuQ,EAChD/Y,EAAO+Y,EAAUC,EAAYH,EAE7BD,EAASjpD,KAAKgpD,gBAElBhpD,MAAKyoD,YAAYnzC,EAAKsF,EAAOquC,EAAO/O,KAAM+O,EAAOt9C,OAAQ0kC,IAM3D3B,EAAQr8B,UAAUywC,yBAA2B,SAAUxtC,EAAKsF,GAC1D,GAAIxU,GAAQwU,EAAMwlC,WACd95C,EAAMsU,EAAMylC,SACZiJ,EAAQ1uC,EAAM0lC,UAElB,QAAcz8C,KAAV+W,OAAiC/W,KAAVuC,OAA+BvC,KAARyC,OAA+BzC,KAAVylD,EAAvE,CAIA,GACIzE,GACAN,EAFAgF,GAAiB,CAKrB,IAAIvpD,KAAKwpD,gBAAkBxpD,KAAKw4C,WAAY,CAK1C,GAAIiR,GAAQ1a,EAAQxQ,SAAS+qB,EAAM9K,MAAO5jC,EAAM4jC,OAC5CkL,EAAQ3a,EAAQxQ,SAASj4B,EAAIk4C,MAAOp4C,EAAMo4C,OAC1CmL,EAAe5a,EAAQ6a,aAAaH,EAAOC,GAC3C3kD,EAAM4kD,EAAa/lD,QAGvB2lD,GAAiBI,EAAahO,EAAI,EAGpC,GAAI4N,EAAgB,CAGlB,GAGIl+C,GAHAw+C,GAAQjvC,EAAMA,MAAM+gC,EAAIv1C,EAAMwU,MAAM+gC,EAAIr1C,EAAIsU,MAAM+gC,EAAI2N,EAAM1uC,MAAM+gC,GAAK,EACvExwC,EAAyE,KAApE,GAAK0+C,EAAO7pD,KAAK07C,OAAOt5C,KAAOpC,KAAKwC,MAAMm5C,EAAI37C,KAAK04C,cAIxD14C,MAAKw4C,YACPntC,EAAI5I,KAAKL,IAAI,EAAIunD,EAAa10B,EAAIlwB,EAAM,EAAG,GAC3C8/C,EAAY7kD,KAAKskD,SAASn5C,EALpB,EAK0BE,GAChCk5C,EAAcM,IAEdx5C,EAAI,EACJw5C,EAAY7kD,KAAKskD,SAASn5C,EATpB,EAS0BE,GAChCk5C,EAAcvkD,KAAKk5C,eAGrB2L,GAAY,OACZN,EAAcvkD,KAAKk5C,SAGrB5jC,GAAI4uC,UAAYlkD,KAAK8nD,gBAAgBltC,EAGrC,IAAI2jC,IAAU3jC,EAAOxU,EAAOkjD,EAAOhjD,EACnCtG,MAAKwoD,SAASlzC,EAAKipC,EAAQsG,EAAWN,KAMxC7V,EAAQr8B,UAAUy3C,cAAgB,SAAUx0C,EAAKqO,EAAMD,GACrD,OAAa7f,KAAT8f,OAA6B9f,KAAP6f,EAA1B,CAKA,GAAImmC,IAAQlmC,EAAK/I,MAAM+gC,EAAIj4B,EAAG9I,MAAM+gC,GAAK,EACrCxwC,EAAyE,KAApE,GAAK0+C,EAAO7pD,KAAK07C,OAAOt5C,KAAOpC,KAAKwC,MAAMm5C,EAAI37C,KAAK04C,cAE5DpjC,GAAI4uC,UAAyC,EAA7BlkD,KAAK8nD,gBAAgBnkC,GACrCrO,EAAIivC,YAAcvkD,KAAKskD,SAASn5C,EAAG,EAAG,GACtCnL,KAAKolD,MAAM9vC,EAAKqO,EAAK86B,OAAQ/6B,EAAG+6B,UAMlC/P,EAAQr8B,UAAU0wC,sBAAwB,SAAUztC,EAAKsF,GACvD5a,KAAK8pD,cAAcx0C,EAAKsF,EAAOA,EAAMwlC,YACrCpgD,KAAK8pD,cAAcx0C,EAAKsF,EAAOA,EAAMylC,WAMvC3R,EAAQr8B,UAAU2wC,sBAAwB,SAAU1tC,EAAKsF,OAC/B/W,KAApB+W,EAAM4lC,YAIVlrC,EAAI4uC,UAAYlkD,KAAK8nD,gBAAgBltC,GACrCtF,EAAIivC,YAAcvkD,KAAKi6C,UAAUE,OAEjCn6C,KAAKolD,MAAM9vC,EAAKsF,EAAM6jC,OAAQ7jC,EAAM4lC,UAAU/B,UAOhD/P,EAAQr8B,UAAUgxC,iBAAmB,WACnC,GACIt/C,GADAuR,EAAMtV,KAAKwjD,aAGf,UAAwB3/C,KAApB7D,KAAKy2C,YAA4Bz2C,KAAKy2C,WAAW7yC,QAAU,GAI/D,IAFA5D,KAAKs+C,kBAAkBt+C,KAAKy2C,YAEvB1yC,EAAI,EAAGA,EAAI/D,KAAKy2C,WAAW7yC,OAAQG,IAAK,CAC3C,GAAI6W,GAAQ5a,KAAKy2C,WAAW1yC,EAG5B/D,MAAKijD,oBAAoB1iD,KAAKP,KAAMsV,EAAKsF,KAa7C8zB,EAAQr8B,UAAU03C,oBAAsB,SAAUxhD,GAEhDvI,KAAKgqD,YAAc9S,EAAU3uC,GAC7BvI,KAAKiqD,YAAc5S,EAAU9uC,GAE7BvI,KAAKkqD,mBAAqBlqD,KAAK+7C,OAAOoO,aAQxCzb,EAAQr8B,UAAUwuC,aAAe,SAAUt4C,GAWzC,GAVAA,EAAQA,GAASC,OAAOD,MAIpBvI,KAAKoqD,gBACPpqD,KAAKqqD,WAAW9hD,GAIlBvI,KAAKoqD,eAAiB7hD,EAAM+hD,MAAwB,IAAhB/hD,EAAM+hD,MAA+B,IAAjB/hD,EAAMgiD,OACzDvqD,KAAKoqD,gBAAmBpqD,KAAKwqD,UAAlC,CAEAxqD,KAAK+pD,oBAAoBxhD,GAEzBvI,KAAKyqD,WAAa,GAAI5nD,MAAK7C,KAAKilD,OAChCjlD,KAAK0qD,SAAW,GAAI7nD,MAAK7C,KAAKklD,KAC9BllD,KAAK2qD,iBAAmB3qD,KAAK+7C,OAAOiG,iBAEpChiD,KAAKm+C,MAAM9xC,MAAMu+C,OAAS,MAK1B,IAAI3Y,GAAKjyC,IACTA,MAAK6qD,YAAc,SAAUtiD,GAC3B0pC,EAAG6Y,aAAaviD,IAElBvI,KAAK+qD,UAAY,SAAUxiD,GACzB0pC,EAAGoY,WAAW9hD,IAEhB5H,EAAKiH,iBAAiBsI,SAAU,YAAa+hC,EAAG4Y,aAChDlqD,EAAKiH,iBAAiBsI,SAAU,UAAW+hC,EAAG8Y,WAC9CpqD,EAAK2H,eAAeC,KAQtBmmC,EAAQr8B,UAAUy4C,aAAe,SAAUviD,GACzCvI,KAAKgrD,QAAS,EACdziD,EAAQA,GAASC,OAAOD,KAGxB,IAAI0iD,GAAQxvB,WAAWyb,EAAU3uC,IAAUvI,KAAKgqD,YAC5CkB,EAAQzvB,WAAW4b,EAAU9uC,IAAUvI,KAAKiqD,WAGhD,IAAI1hD,IAA2B,IAAlBA,EAAM4iD,QAAkB,CAEnC,GAAIC,GAAkC,GAAzBprD,KAAKm+C,MAAMptC,YACpBs6C,EAAmC,GAA1BrrD,KAAKm+C,MAAMqD,aAEpB8J,GAAWtrD,KAAKkqD,mBAAmBj1B,GAAK,GAAKg2B,EAAQG,EAASprD,KAAK+7C,OAAOwP,UAAY,GACtFC,GAAWxrD,KAAKkqD,mBAAmBr7B,GAAK,GAAKq8B,EAAQG,EAASrrD,KAAK+7C,OAAOwP,UAAY,EAE1FvrD,MAAK+7C,OAAO0P,UAAUH,EAASE,GAC/BxrD,KAAK+pD,oBAAoBxhD,OACpB,CACL,GAAImjD,GAAgB1rD,KAAK2qD,iBAAiBrQ,WAAa2Q,EAAQ,IAC3DU,EAAc3rD,KAAK2qD,iBAAiBpQ,SAAW2Q,EAAQ,IAGvDU,EAAYnpD,KAAKw6C,IADL,EACqB,IAAM,EAAIx6C,KAAKomD,GAIhDpmD,MAAK0iB,IAAI1iB,KAAKw6C,IAAIyO,IAAkBE,IACtCF,EAAgBjpD,KAAKm6B,MAAM8uB,EAAgBjpD,KAAKomD,IAAMpmD,KAAKomD,GAAK,MAE9DpmD,KAAK0iB,IAAI1iB,KAAK06C,IAAIuO,IAAkBE,IACtCF,GAAiBjpD,KAAKm6B,MAAM8uB,EAAgBjpD,KAAKomD,GAAK,IAAO,IAAOpmD,KAAKomD,GAAK,MAI5EpmD,KAAK0iB,IAAI1iB,KAAKw6C,IAAI0O,IAAgBC,IACpCD,EAAclpD,KAAKm6B,MAAM+uB,EAAclpD,KAAKomD,IAAMpmD,KAAKomD,IAErDpmD,KAAK0iB,IAAI1iB,KAAK06C,IAAIwO,IAAgBC,IACpCD,GAAelpD,KAAKm6B,MAAM+uB,EAAclpD,KAAKomD,GAAK,IAAO,IAAOpmD,KAAKomD,IAEvE7oD,KAAK+7C,OAAO8P,eAAeH,EAAeC,GAG5C3rD,KAAKy/C,QAGL,IAAIqM,GAAa9rD,KAAK+hD,mBACtB/hD,MAAK+rD,KAAK,uBAAwBD,GAElCnrD,EAAK2H,eAAeC,IAQtBmmC,EAAQr8B,UAAUg4C,WAAa,SAAU9hD,GACvCvI,KAAKm+C,MAAM9xC,MAAMu+C,OAAS,OAC1B5qD,KAAKoqD,gBAAiB,EAGtBzpD,EAAKyH,oBAAoB8H,SAAU,YAAalQ,KAAK6qD,aACrDlqD,EAAKyH,oBAAoB8H,SAAU,UAAWlQ,KAAK+qD,WACnDpqD,EAAK2H,eAAeC,IAMtBmmC,EAAQr8B,UAAUgvC,SAAW,SAAU94C,GACrC,GAAKvI,KAAKgsD,iBAAV,CACA,GAAKhsD,KAAKgrD,OAQRhrD,KAAKgrD,QAAS,MARE,CAChB,GAAIiB,GAAejsD,KAAKm+C,MAAMl4C,wBAC1BimD,EAAShV,EAAU3uC,GAAS0jD,EAAa/lD,KACzCimD,EAAS9U,EAAU9uC,GAAS0jD,EAAa3lD,IACzC8lD,EAAYpsD,KAAKqsD,iBAAiBH,EAAQC,EAC1CC,IAAWpsD,KAAKgsD,iBAAiBI,EAAUxxC,MAAM8Z,MAKvD/zB,EAAK2H,eAAeC,KAOtBmmC,EAAQr8B,UAAU8uC,WAAa,SAAU54C,GACvC,GACI0jD,GAAejsD,KAAKm+C,MAAMl4C,wBAC1BimD,EAAShV,EAAU3uC,GAAS0jD,EAAa/lD,KACzCimD,EAAS9U,EAAU9uC,GAAS0jD,EAAa3lD,GAE7C,IAAKtG,KAAKssD,YAAV,CASA,GALItsD,KAAKusD,gBACPjX,aAAat1C,KAAKusD,gBAIhBvsD,KAAKoqD,eAEP,WADApqD,MAAKwsD,cAIP,IAAIxsD,KAAKu5C,SAAWv5C,KAAKu5C,QAAQ6S,UAAW,CAE1C,GAAIA,GAAYpsD,KAAKqsD,iBAAiBH,EAAQC,EAC1CC,KAAcpsD,KAAKu5C,QAAQ6S,YAEzBA,EACFpsD,KAAKysD,aAAaL,GAElBpsD,KAAKwsD,oBAGJ,CAEL,GAAIva,GAAKjyC,IACTA,MAAKusD,eAAiBhX,WAAW,WAC/BtD,EAAGsa,eAAiB,IAGpB,IAAIH,GAAYna,EAAGoa,iBAAiBH,EAAQC,EACxCC,IACFna,EAAGwa,aAAaL,IAvCV,QAgDd1d,EAAQr8B,UAAU0uC,cAAgB,SAAUx4C,GAC1CvI,KAAKwqD,WAAY,CAEjB,IAAIvY,GAAKjyC,IACTA,MAAK0sD,YAAc,SAAUnkD,GAC3B0pC,EAAG0a,aAAapkD,IAElBvI,KAAK4sD,WAAa,SAAUrkD,GAC1B0pC,EAAG4a,YAAYtkD,IAEjB5H,EAAKiH,iBAAiBsI,SAAU,YAAa+hC,EAAGya,aAChD/rD,EAAKiH,iBAAiBsI,SAAU,WAAY+hC,EAAG2a,YAE/C5sD,KAAK6gD,aAAat4C,IAMpBmmC,EAAQr8B,UAAUs6C,aAAe,SAAUpkD,GACzCvI,KAAK8qD,aAAaviD,IAMpBmmC,EAAQr8B,UAAUw6C,YAAc,SAAUtkD,GACxCvI,KAAKwqD,WAAY,EAEjB7pD,EAAKyH,oBAAoB8H,SAAU,YAAalQ,KAAK0sD,aACrD/rD,EAAKyH,oBAAoB8H,SAAU,WAAYlQ,KAAK4sD,YAEpD5sD,KAAKqqD,WAAW9hD,IAQlBmmC,EAAQr8B,UAAU4uC,SAAW,SAAU14C,GAChCA,IACHA,EAAQC,OAAOD,MAGjB,IAAI84B,GAAQ,CAcZ,IAbI94B,EAAMukD,WAERzrB,EAAQ94B,EAAMukD,WAAa,IAClBvkD,EAAMwkD,SAIf1rB,GAAS94B,EAAMwkD,OAAS,GAMtB1rB,EAAO,CACT,GAAI2rB,GAAYhtD,KAAK+7C,OAAOkC,eACxBgP,EAAYD,GAAa,EAAI3rB,EAAQ,GAEzCrhC,MAAK+7C,OAAOmR,aAAaD,GACzBjtD,KAAKy/C,SAELz/C,KAAKwsD,eAIP,GAAIV,GAAa9rD,KAAK+hD,mBACtB/hD,MAAK+rD,KAAK,uBAAwBD,GAKlCnrD,EAAK2H,eAAeC,IAYtBmmC,EAAQr8B,UAAU86C,gBAAkB,SAAUvyC,EAAOwyC,GAKnD,QAASpwB,GAAK/H,GACZ,MAAOA,GAAI,EAAI,EAAIA,EAAI,GAAK,EAAI,EALlC,GAAIzxB,GAAI4pD,EAAS,GACb3pD,EAAI2pD,EAAS,GACb3sD,EAAI2sD,EAAS,GAMb9nB,EAAKtI,GAAMv5B,EAAEwxB,EAAIzxB,EAAEyxB,IAAMra,EAAMiU,EAAIrrB,EAAEqrB,IAAMprB,EAAEorB,EAAIrrB,EAAEqrB,IAAMjU,EAAMqa,EAAIzxB,EAAEyxB,IACrEo4B,EAAKrwB,GAAMv8B,EAAEw0B,EAAIxxB,EAAEwxB,IAAMra,EAAMiU,EAAIprB,EAAEorB,IAAMpuB,EAAEouB,EAAIprB,EAAEorB,IAAMjU,EAAMqa,EAAIxxB,EAAEwxB,IACrEq4B,EAAKtwB,GAAMx5B,EAAEyxB,EAAIx0B,EAAEw0B,IAAMra,EAAMiU,EAAIpuB,EAAEouB,IAAMrrB,EAAEqrB,EAAIpuB,EAAEouB,IAAMjU,EAAMqa,EAAIx0B,EAAEw0B,GAGzE,SAAc,GAANqQ,GAAiB,GAAN+nB,GAAW/nB,GAAM+nB,GAAc,GAANA,GAAiB,GAANC,GAAWD,GAAMC,GAAc,GAANhoB,GAAiB,GAANgoB,GAAWhoB,GAAMgoB,IAY9G5e,EAAQr8B,UAAUg6C,iBAAmB,SAAUp3B,EAAGpG,GAChD,GAAI9qB,GAGJqoD,EAAY,KACRmB,EAAmB,KACnBC,EAAc,KACd3R,EAAS,GAAI/M,GAAQ7Z,EAAGpG,EAE5B,IAAI7uB,KAAKqM,QAAUqiC,EAAQgJ,MAAM2K,KAAOriD,KAAKqM,QAAUqiC,EAAQgJ,MAAMqH,UAAY/+C,KAAKqM,QAAUqiC,EAAQgJ,MAAMsH,QAE5G,IAAKj7C,EAAI/D,KAAKy2C,WAAW7yC,OAAS,EAAGG,GAAK,EAAGA,IAAK,CAChDqoD,EAAYpsD,KAAKy2C,WAAW1yC,EAC5B,IAAIqkD,GAAWgE,EAAUhE,QACzB,IAAIA,EACF,IAAK,GAAIh9C,GAAIg9C,EAASxkD,OAAS,EAAGwH,GAAK,EAAGA,IAAK,CAE7C,GAAI+8C,GAAUC,EAASh9C,GACnBi9C,EAAUF,EAAQE,QAClBoF,GAAapF,EAAQ,GAAG5J,OAAQ4J,EAAQ,GAAG5J,OAAQ4J,EAAQ,GAAG5J,QAC9DiP,GAAarF,EAAQ,GAAG5J,OAAQ4J,EAAQ,GAAG5J,OAAQ4J,EAAQ,GAAG5J,OAClE,IAAIz+C,KAAKmtD,gBAAgBtR,EAAQ4R,IAAcztD,KAAKmtD,gBAAgBtR,EAAQ6R,GAE1E,MAAOtB,QAOf,KAAKroD,EAAI,EAAGA,EAAI/D,KAAKy2C,WAAW7yC,OAAQG,IAAK,CAC3CqoD,EAAYpsD,KAAKy2C,WAAW1yC,EAC5B,IAAI6W,GAAQwxC,EAAU3N,MACtB,IAAI7jC,EAAO,CACT,GAAI+yC,GAAQlrD,KAAK0iB,IAAI8P,EAAIra,EAAMqa,GAC3B24B,EAAQnrD,KAAK0iB,IAAI0J,EAAIjU,EAAMiU,GAC3B+vB,EAAOn8C,KAAKorD,KAAKF,EAAQA,EAAQC,EAAQA,IAExB,OAAhBJ,GAAwB5O,EAAO4O,IAAgB5O,EApC5C,MAqCN4O,EAAc5O,EACd2O,EAAmBnB,IAM3B,MAAOmB,IAST7e,EAAQr8B,UAAUy7C,QAAU,SAAUzhD,GACpC,MAAOA,IAASqiC,EAAQgJ,MAAM2K,KAAOh2C,GAASqiC,EAAQgJ,MAAMqH,UAAY1yC,GAASqiC,EAAQgJ,MAAMsH,SAQjGtQ,EAAQr8B,UAAUo6C,aAAe,SAAUL,GACzC,GAAI3b,GAASmJ,EAAME,CAEd95C,MAAKu5C,SAsBR9I,EAAUzwC,KAAKu5C,QAAQwU,IAAItd,QAC3BmJ,EAAO55C,KAAKu5C,QAAQwU,IAAInU,KACxBE,EAAM95C,KAAKu5C,QAAQwU,IAAIjU,MAvBvBrJ,EAAUvgC,SAASC,cAAc,QACjC,EAAIqnC,EAAkB,SAAG/G,EAAQpkC,SAAWrM,KAAKw5C,aAAa/I,SAC9DA,EAAQpkC,MAAMkE,SAAW,WAEzBqpC,EAAO1pC,SAASC,cAAc,QAC9B,EAAIqnC,EAAkB,SAAGoC,EAAKvtC,SAAWrM,KAAKw5C,aAAaI,MAC3DA,EAAKvtC,MAAMkE,SAAW,WAEtBupC,EAAM5pC,SAASC,cAAc,QAC7B,EAAIqnC,EAAkB,SAAGsC,EAAIztC,SAAWrM,KAAKw5C,aAAaM,KAC1DA,EAAIztC,MAAMkE,SAAW,WAErBvQ,KAAKu5C,SACH6S,UAAW,KACX2B,KACEtd,QAASA,EACTmJ,KAAMA,EACNE,IAAKA,KASX95C,KAAKwsD,eAELxsD,KAAKu5C,QAAQ6S,UAAYA,EACO,kBAArBpsD,MAAKssD,YACd7b,EAAQkQ,UAAY3gD,KAAKssD,YAAYF,EAAUxxC,OAE/C61B,EAAQkQ,UAAY,kBAAyB3gD,KAAK63C,OAAS,aAAeuU,EAAUxxC,MAAMqa,EAAI,qBAA4Bj1B,KAAK83C,OAAS,aAAesU,EAAUxxC,MAAMiU,EAAI,qBAA4B7uB,KAAK+3C,OAAS,aAAeqU,EAAUxxC,MAAM+gC,EAAI,qBAG1PlL,EAAQpkC,MAAMnG,KAAO,IACrBuqC,EAAQpkC,MAAM/F,IAAM,IACpBtG,KAAKm+C,MAAMztC,YAAY+/B,GACvBzwC,KAAKm+C,MAAMztC,YAAYkpC,GACvB55C,KAAKm+C,MAAMztC,YAAYopC,EAGvB,IAAIkU,GAAevd,EAAQ5/B,YACvBo9C,EAAgBxd,EAAQyd,aACxBC,EAAavU,EAAKsU,aAClBE,EAAWtU,EAAIjpC,YACfw9C,EAAYvU,EAAIoU,aAEhBhoD,EAAOkmD,EAAU3N,OAAOxpB,EAAI+4B,EAAe,CAC/C9nD,GAAOzD,KAAKL,IAAIK,KAAKJ,IAAI6D,EAAM,IAAKlG,KAAKm+C,MAAMptC,YAAc,GAAKi9C,GAElEpU,EAAKvtC,MAAMnG,KAAOkmD,EAAU3N,OAAOxpB,EAAI,KACvC2kB,EAAKvtC,MAAM/F,IAAM8lD,EAAU3N,OAAO5vB,EAAIs/B,EAAa,KACnD1d,EAAQpkC,MAAMnG,KAAOA,EAAO,KAC5BuqC,EAAQpkC,MAAM/F,IAAM8lD,EAAU3N,OAAO5vB,EAAIs/B,EAAaF,EAAgB,KACtEnU,EAAIztC,MAAMnG,KAAOkmD,EAAU3N,OAAOxpB,EAAIm5B,EAAW,EAAI,KACrDtU,EAAIztC,MAAM/F,IAAM8lD,EAAU3N,OAAO5vB,EAAIw/B,EAAY,EAAI,MAOvD3f,EAAQr8B,UAAUm6C,aAAe,WAC/B,GAAIxsD,KAAKu5C,QAAS,CAChBv5C,KAAKu5C,QAAQ6S,UAAY,IAEzB,KAAK,GAAI/oD,KAAQrD,MAAKu5C,QAAQwU,IAC5B,GAAI/tD,KAAKu5C,QAAQwU,IAAIzqD,eAAeD,GAAO,CACzC,GAAI2C,GAAOhG,KAAKu5C,QAAQwU,IAAI1qD,EACxB2C,IAAQA,EAAK8C,YACf9C,EAAK8C,WAAW5G,YAAY8D,MAgDtC0oC,EAAQr8B,UAAUi8C,kBAAoB,SAAUxzC,GAC9C47B,EAAS4X,kBAAkBxzC,EAAK9a,MAChCA,KAAKy/C,UAWP/Q,EAAQr8B,UAAUk8C,QAAU,SAAUn+C,EAAOC,GAC3CrQ,KAAKshD,SAASlxC,EAAOC,GACrBrQ,KAAKy/C,UAQP5/C,EAAOD,QAAU8uC,GAIb,SAAU7uC,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,IAAKa,YAAY,IAI/D,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,IACpBL,EAAOD,QAAUM,EAAoB,IAAIuE,OAAO+pD,QAK5C,SAAU3uD,EAAQD,EAASM,GAG/B,GAAIqT,GAAUrT,EAAoB,GAElCqT,GAAQA,EAAQuC,EAAIvC,EAAQ6B,EAAG,UAAYo5C,OAAQtuD,EAAoB,OAKnE,SAAUL,EAAQD,EAASM,GAI/B,GAAI+Y,GAAU/Y,EAAoB,IAC9BqgB,EAAOrgB,EAAoB,IAC3BsgB,EAAMtgB,EAAoB,IAC1Bua,EAAWva,EAAoB,IAC/B+S,EAAU/S,EAAoB,IAC9BuuD,EAAUhqD,OAAO+pD,MAGrB3uD,GAAOD,SAAW6uD,GAAWvuD,EAAoB,IAAI,WACnD,GAAIwuD,MACAz4C,KAEAH,EAAIyE,SACJo0C,EAAI,sBAGR,OAFAD,GAAE54C,GAAK,EACP64C,EAAEhoD,MAAM,IAAIO,QAAQ,SAAU0G,GAAKqI,EAAErI,GAAKA,IACd,GAArB6gD,KAAYC,GAAG54C,IAAWrR,OAAOsP,KAAK06C,KAAYx4C,IAAIlP,KAAK,KAAO4nD;kDACtE,SAAgBhmD,EAAQ4M,GAM3B,IALA,GAAIiG,GAAIf,EAAS9R,GACbimD,EAAOjrD,UAAUC,OACjBmP,EAAQ,EACR0N,EAAaF,EAAKxT,EAClBwQ,EAASiD,EAAIzT,EACV6hD,EAAO77C,GAMZ,IALA,GAIIxL,GAJAuO,EAAI7C,EAAQtP,UAAUoP,MACtBgB,EAAO0M,EAAaxH,EAAQnD,GAAGjP,OAAO4Z,EAAW3K,IAAMmD,EAAQnD,GAC/DlS,EAASmQ,EAAKnQ,OACdiK,EAAI,EAEDjK,EAASiK,GAAO0P,EAAOhd,KAAKuV,EAAGvO,EAAMwM,EAAKlG,QAAO2N,EAAEjU,GAAOuO,EAAEvO,GACnE,OAAOiU,IACPizC,GAKA,SAAU5uD,EAAQD,GAetB,QAAS63C,GAAQ32C,GACf,GAAIA,EAAK,MAAO+tD,GAAM/tD,GAWxB,QAAS+tD,GAAM/tD,GACb,IAAK,GAAIyG,KAAOkwC,GAAQplC,UACtBvR,EAAIyG,GAAOkwC,EAAQplC,UAAU9K,EAE/B,OAAOzG,GAxBTjB,EAAOD,QAAU63C,EAoCjBA,EAAQplC,UAAUk/B,GAClBkG,EAAQplC,UAAUzK,iBAAmB,SAASW,EAAOd,GAInD,MAHAzH,MAAK8uD,WAAa9uD,KAAK8uD,gBACtB9uD,KAAK8uD,WAAWvmD,GAASvI,KAAK8uD,WAAWvmD,QACvC1D,KAAK4C,GACDzH,MAaTy3C,EAAQplC,UAAU08C,KAAO,SAASxmD,EAAOd,GAIvC,QAAS8pC,KACP56B,EAAK+6B,IAAInpC,EAAOgpC,GAChB9pC,EAAG6O,MAAMtW,KAAM2D,WALjB,GAAIgT,GAAO3W,IAUX,OATAA,MAAK8uD,WAAa9uD,KAAK8uD,eAOvBvd,EAAG9pC,GAAKA,EACRzH,KAAKuxC,GAAGhpC,EAAOgpC,GACRvxC,MAaTy3C,EAAQplC,UAAUq/B,IAClB+F,EAAQplC,UAAU28C,eAClBvX,EAAQplC,UAAU48C,mBAClBxX,EAAQplC,UAAUjK,oBAAsB,SAASG,EAAOd,GAItD,GAHAzH,KAAK8uD,WAAa9uD,KAAK8uD,eAGnB,GAAKnrD,UAAUC,OAEjB,MADA5D,MAAK8uD,cACE9uD,IAIT,IAAIkvD,GAAYlvD,KAAK8uD,WAAWvmD,EAChC,KAAK2mD,EAAW,MAAOlvD,KAGvB,IAAI,GAAK2D,UAAUC,OAEjB,aADO5D,MAAK8uD,WAAWvmD,GAChBvI,IAKT,KAAK,GADDmvD,GACKprD,EAAI,EAAGA,EAAImrD,EAAUtrD,OAAQG,IAEpC,IADAorD,EAAKD,EAAUnrD,MACJ0D,GAAM0nD,EAAG1nD,KAAOA,EAAI,CAC7BynD,EAAUn3B,OAAOh0B,EAAG,EACpB,OAGJ,MAAO/D,OAWTy3C,EAAQplC,UAAU05C,KAAO,SAASxjD,GAChCvI,KAAK8uD,WAAa9uD,KAAK8uD,cACvB,IAAInvC,MAAUhV,MAAMpK,KAAKoD,UAAW,GAChCurD,EAAYlvD,KAAK8uD,WAAWvmD,EAEhC,IAAI2mD,EAAW,CACbA,EAAYA,EAAUvkD,MAAM,EAC5B,KAAK,GAAI5G,GAAI,EAAGgB,EAAMmqD,EAAUtrD,OAAQG,EAAIgB,IAAOhB,EACjDmrD,EAAUnrD,GAAGuS,MAAMtW,KAAM2f,GAI7B,MAAO3f,OAWTy3C,EAAQplC,UAAU+8C,UAAY,SAAS7mD,GAErC,MADAvI,MAAK8uD,WAAa9uD,KAAK8uD,eAChB9uD,KAAK8uD,WAAWvmD,QAWzBkvC,EAAQplC,UAAUg9C,aAAe,SAAS9mD,GACxC,QAAUvI,KAAKovD,UAAU7mD,GAAO3E,SAM9B,SAAU/D,EAAQD,GAUtB,QAASmvC,GAAQ9Z,EAAGpG,EAAG8sB,GACrB37C,KAAKi1B,MAAUpxB,KAANoxB,EAAkBA,EAAI,EAC/Bj1B,KAAK6uB,MAAUhrB,KAANgrB,EAAkBA,EAAI,EAC/B7uB,KAAK27C,MAAU93C,KAAN83C,EAAkBA,EAAI,EASjC5M,EAAQxQ,SAAW,SAAU/6B,EAAGC,GAC9B,GAAI6rD,GAAM,GAAIvgB,EAId,OAHAugB,GAAIr6B,EAAIzxB,EAAEyxB,EAAIxxB,EAAEwxB,EAChBq6B,EAAIzgC,EAAIrrB,EAAEqrB,EAAIprB,EAAEorB,EAChBygC,EAAI3T,EAAIn4C,EAAEm4C,EAAIl4C,EAAEk4C,EACT2T,GASTvgB,EAAQpe,IAAM,SAAUntB,EAAGC,GACzB,GAAI8rD,GAAM,GAAIxgB,EAId,OAHAwgB,GAAIt6B,EAAIzxB,EAAEyxB,EAAIxxB,EAAEwxB,EAChBs6B,EAAI1gC,EAAIrrB,EAAEqrB,EAAIprB,EAAEorB,EAChB0gC,EAAI5T,EAAIn4C,EAAEm4C,EAAIl4C,EAAEk4C,EACT4T,GASTxgB,EAAQuZ,IAAM,SAAU9kD,EAAGC,GACzB,MAAO,IAAIsrC,IAASvrC,EAAEyxB,EAAIxxB,EAAEwxB,GAAK,GAAIzxB,EAAEqrB,EAAIprB,EAAEorB,GAAK,GAAIrrB,EAAEm4C,EAAIl4C,EAAEk4C,GAAK,IAUrE5M,EAAQ6a,aAAe,SAAUpmD,EAAGC,GAClC,GAAIkmD,GAAe,GAAI5a,EAMvB,OAJA4a,GAAa10B,EAAIzxB,EAAEqrB,EAAIprB,EAAEk4C,EAAIn4C,EAAEm4C,EAAIl4C,EAAEorB,EACrC86B,EAAa96B,EAAIrrB,EAAEm4C,EAAIl4C,EAAEwxB,EAAIzxB,EAAEyxB,EAAIxxB,EAAEk4C,EACrCgO,EAAahO,EAAIn4C,EAAEyxB,EAAIxxB,EAAEorB,EAAIrrB,EAAEqrB,EAAIprB,EAAEwxB,EAE9B00B,GAOT5a,EAAQ18B,UAAUzO,OAAS,WACzB,MAAOnB,MAAKorD,KAAK7tD,KAAKi1B,EAAIj1B,KAAKi1B,EAAIj1B,KAAK6uB,EAAI7uB,KAAK6uB,EAAI7uB,KAAK27C,EAAI37C,KAAK27C,IAGrE97C,EAAOD,QAAUmvC,GAIb,SAAUlvC,EAAQD,GAStB,QAASkvC,GAAQ7Z,EAAGpG,GAClB7uB,KAAKi1B,MAAUpxB,KAANoxB,EAAkBA,EAAI,EAC/Bj1B,KAAK6uB,MAAUhrB,KAANgrB,EAAkBA,EAAI,EAGjChvB,EAAOD,QAAUkvC,GAIb,SAAUjvC,EAAQD,EAASM,GAsB/B,QAAS0uC,KACP5uC,KAAKwvD,YAAc,GAAIzgB,GACvB/uC,KAAKyvD,eACLzvD,KAAKyvD,YAAYnV,WAAa,EAC9Bt6C,KAAKyvD,YAAYlV,SAAW,EAC5Bv6C,KAAKurD,UAAY,IACjBvrD,KAAK0vD,aAAe,GAAI3gB,GACxB/uC,KAAK2vD,iBAAmB,GAExB3vD,KAAKs8C,eAAiB,GAAIvN,GAC1B/uC,KAAKw8C,eAAiB,GAAIzN,GAAQ,GAAMtsC,KAAKomD,GAAI,EAAG,GAEpD7oD,KAAK4vD,6BA9BP,GAAIC,GAAQ3vD,EAAoB,KAE5B4vD,EAEJ,SAAgChvD,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFrD+uD,GAIhC9gB,EAAU7uC,EAAoB,IAgClC0uC,GAAOv8B,UAAUo5C,UAAY,SAAUx2B,EAAGpG,GACxC,GAAI1J,GAAM1iB,KAAK0iB,IACX6X,EAAO8yB,EAAgB,QACvBC,EAAM/vD,KAAK2vD,iBACXhkD,EAAS3L,KAAKurD,UAAYwE,CAE1B5qC,GAAI8P,GAAKtpB,IACXspB,EAAI+H,EAAK/H,GAAKtpB,GAEZwZ,EAAI0J,GAAKljB,IACXkjB,EAAImO,EAAKnO,GAAKljB,GAEhB3L,KAAK0vD,aAAaz6B,EAAIA,EACtBj1B,KAAK0vD,aAAa7gC,EAAIA,EACtB7uB,KAAK4vD,8BAOPhhB,EAAOv8B,UAAU83C,UAAY,SAAUl1B,EAAGpG,GACxC,MAAO7uB,MAAK0vD,cASd9gB,EAAOv8B,UAAU2pC,eAAiB,SAAU/mB,EAAGpG,EAAG8sB,GAChD37C,KAAKwvD,YAAYv6B,EAAIA,EACrBj1B,KAAKwvD,YAAY3gC,EAAIA,EACrB7uB,KAAKwvD,YAAY7T,EAAIA,EAErB37C,KAAK4vD,8BAWPhhB,EAAOv8B,UAAUw5C,eAAiB,SAAUvR,EAAYC,OACnC12C,KAAfy2C,IACFt6C,KAAKyvD,YAAYnV,WAAaA,OAGfz2C,KAAb02C,IACFv6C,KAAKyvD,YAAYlV,SAAWA,EACxBv6C,KAAKyvD,YAAYlV,SAAW,IAAGv6C,KAAKyvD,YAAYlV,SAAW,GAC3Dv6C,KAAKyvD,YAAYlV,SAAW,GAAM93C,KAAKomD,KAAI7oD,KAAKyvD,YAAYlV,SAAW,GAAM93C,KAAKomD,SAGrEhlD,KAAfy2C,OAAyCz2C,KAAb02C,GAC9Bv6C,KAAK4vD,8BAQThhB,EAAOv8B,UAAU2vC,eAAiB,WAChC,GAAIgO,KAIJ,OAHAA,GAAI1V,WAAat6C,KAAKyvD,YAAYnV,WAClC0V,EAAIzV,SAAWv6C,KAAKyvD,YAAYlV,SAEzByV,GAOTphB,EAAOv8B,UAAU66C,aAAe,SAAUtpD,OACzBC,KAAXD,IAEJ5D,KAAKurD,UAAY3nD,EAKb5D,KAAKurD,UAAY,MAAMvrD,KAAKurD,UAAY,KACxCvrD,KAAKurD,UAAY,IAAKvrD,KAAKurD,UAAY,GAE3CvrD,KAAKyrD,UAAUzrD,KAAK0vD,aAAaz6B,EAAGj1B,KAAK0vD,aAAa7gC,GACtD7uB,KAAK4vD,+BAOPhhB,EAAOv8B,UAAU4rC,aAAe,WAC9B,MAAOj+C,MAAKurD,WAOd3c,EAAOv8B,UAAUkqC,kBAAoB,WACnC,MAAOv8C,MAAKs8C,gBAOd1N,EAAOv8B,UAAUoqC,kBAAoB,WACnC,MAAOz8C,MAAKw8C,gBAOd5N,EAAOv8B,UAAUu9C,2BAA6B,WAE5C5vD,KAAKs8C,eAAernB,EAAIj1B,KAAKwvD,YAAYv6B,EAAIj1B,KAAKurD,UAAY9oD,KAAKw6C,IAAIj9C,KAAKyvD,YAAYnV,YAAc73C,KAAK06C,IAAIn9C,KAAKyvD,YAAYlV,UAChIv6C,KAAKs8C,eAAeztB,EAAI7uB,KAAKwvD,YAAY3gC,EAAI7uB,KAAKurD,UAAY9oD,KAAK06C,IAAIn9C,KAAKyvD,YAAYnV,YAAc73C,KAAK06C,IAAIn9C,KAAKyvD,YAAYlV,UAChIv6C,KAAKs8C,eAAeX,EAAI37C,KAAKwvD,YAAY7T,EAAI37C,KAAKurD,UAAY9oD,KAAKw6C,IAAIj9C,KAAKyvD,YAAYlV,UAGxFv6C,KAAKw8C,eAAevnB,EAAIxyB,KAAKomD,GAAK,EAAI7oD,KAAKyvD,YAAYlV,SACvDv6C,KAAKw8C,eAAe3tB,EAAI,EACxB7uB,KAAKw8C,eAAeb,GAAK37C,KAAKyvD,YAAYnV,UAE1C,IAAI2V,GAAKjwD,KAAKw8C,eAAevnB,EAEzBi7B,GADKlwD,KAAKw8C,eAAe3tB,EACpB7uB,KAAKw8C,eAAeb,GACzBmC,EAAK99C,KAAK0vD,aAAaz6B,EACvB8oB,EAAK/9C,KAAK0vD,aAAa7gC,EACvBouB,EAAMx6C,KAAKw6C,IACXE,EAAM16C,KAAK06C,GAEfn9C,MAAKs8C,eAAernB,EAAIj1B,KAAKs8C,eAAernB,EAAI6oB,EAAKX,EAAI+S,GAAMnS,GAAMd,EAAIiT,GAAM/S,EAAI8S,GACnFjwD,KAAKs8C,eAAeztB,EAAI7uB,KAAKs8C,eAAeztB,EAAIivB,EAAKb,EAAIiT,GAAMnS,EAAKZ,EAAI+S,GAAM/S,EAAI8S,GAClFjwD,KAAKs8C,eAAeX,EAAI37C,KAAKs8C,eAAeX,EAAIoC,EAAKd,EAAIgT,IAG3DpwD,EAAOD,QAAUgvC,GAIb,SAAU/uC,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,KAAMa,YAAY,IAIhE,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,KACpBL,EAAOD,QAAUM,EAAoB,IAAIuC,KAAKu6B,MAK1C,SAAUn9B,EAAQD,EAASM,GAG/B,GAAIqT,GAAUrT,EAAoB,GAElCqT,GAAQA,EAAQuC,EAAG,QAAUknB,KAAM98B,EAAoB,QAKnD,SAAUL,EAAQD,GAGtBC,EAAOD,QAAU6C,KAAKu6B,MAAQ,SAAc/H,GAE1C,MAAmB,KAAXA,GAAKA,IAAWA,GAAKA,EAAIA,EAAIA,EAAI,GAAK,EAAI,IAMhD,SAAUp1B,EAAQD,EAASM,GAa/B,QAAS2uC,GAAO0H,EAAW4Z,EAAQC,GACjCpwD,KAAK00B,KAAO6hB,EAAUjD,aACtBtzC,KAAKmwD,OAASA,EACdnwD,KAAKowD,MAAQA,EAEbpwD,KAAK+S,UAAQlP,GACb7D,KAAKuC,UAAQsB,GAGb7D,KAAKkV,OAASqhC,EAAUwJ,kBAAkB//C,KAAKmwD,QAE3CnwD,KAAKkV,OAAOtR,OAAS,GACvB5D,KAAK6lD,YAAY,GAInB7lD,KAAKy2C,cAELz2C,KAAKM,QAAS,EACdN,KAAKqwD,mBAAiBxsD,GAElBusD,EAAMpX,kBACRh5C,KAAKM,QAAS,EACdN,KAAKswD,oBAELtwD,KAAKM,QAAS,EAlClB,GAAIkuC,GAAWtuC,EAAoB,GA0CnC2uC,GAAOx8B,UAAUk+C,SAAW,WAC1B,MAAOvwD,MAAKM,QAOduuC,EAAOx8B,UAAUm+C,kBAAoB,WAInC,IAHA,GAAIzrD,GAAM/E,KAAKkV,OAAOtR,OAElBG,EAAI,EACD/D,KAAKy2C,WAAW1yC,IACrBA,GAGF,OAAOtB,MAAKm6B,MAAM74B,EAAIgB,EAAM,MAO9B8pC,EAAOx8B,UAAU2zC,SAAW,WAC1B,MAAOhmD,MAAKowD,MAAMzY,aAOpB9I,EAAOx8B,UAAUo+C,UAAY,WAC3B,MAAOzwD,MAAKmwD,QAOdthB,EAAOx8B,UAAU4zC,iBAAmB,WAClC,OAAmBpiD,KAAf7D,KAAK+S,MAET,MAAO/S,MAAKkV,OAAOlV,KAAK+S,QAO1B87B,EAAOx8B,UAAUq+C,UAAY,WAC3B,MAAO1wD,MAAKkV,QAQd25B,EAAOx8B,UAAUs+C,SAAW,SAAU59C,GACpC,GAAIA,GAAS/S,KAAKkV,OAAOtR,OAAQ,KAAM,IAAIS,OAAM,qBAEjD,OAAOrE,MAAKkV,OAAOnC,IAQrB87B,EAAOx8B,UAAUstC,eAAiB,SAAU5sC,GAG1C,OAFclP,KAAVkP,IAAqBA,EAAQ/S,KAAK+S,WAExBlP,KAAVkP,EAAqB,QAEzB,IAAI0jC,EACJ,IAAIz2C,KAAKy2C,WAAW1jC,GAClB0jC,EAAaz2C,KAAKy2C,WAAW1jC,OACxB,CACL,GAAIhG,KACJA,GAAEojD,OAASnwD,KAAKmwD,OAChBpjD,EAAExK,MAAQvC,KAAKkV,OAAOnC,EAEtB,IAAI69C,GAAW,GAAIpiB,GAASxuC,KAAK00B,MAAQ5tB,OAAQ,SAAgB8H,GAC7D,MAAOA,GAAK7B,EAAEojD,SAAWpjD,EAAExK,SACxBkV,KACPg/B,GAAaz2C,KAAKowD,MAAMzQ,eAAeiR,GAEvC5wD,KAAKy2C,WAAW1jC,GAAS0jC,EAG3B,MAAOA,IAMT5H,EAAOx8B,UAAUmtC,kBAAoB,SAAUr4C,GAC7CnH,KAAKqwD,eAAiBlpD,GAQxB0nC,EAAOx8B,UAAUwzC,YAAc,SAAU9yC,GACvC,GAAIA,GAAS/S,KAAKkV,OAAOtR,OAAQ,KAAM,IAAIS,OAAM,qBAEjDrE,MAAK+S,MAAQA,EACb/S,KAAKuC,MAAQvC,KAAKkV,OAAOnC,IAO3B87B,EAAOx8B,UAAUi+C,iBAAmB,SAAUv9C,OAC9BlP,KAAVkP,IAAqBA,EAAQ,EAEjC,IAAIorC,GAAQn+C,KAAKowD,MAAMjS,KAEvB,IAAIprC,EAAQ/S,KAAKkV,OAAOtR,OAAQ,CACT5D,KAAK2/C,eAAe5sC,OAIlBlP,KAAnBs6C,EAAM0S,WACR1S,EAAM0S,SAAW3gD,SAASC,cAAc,OACxCguC,EAAM0S,SAASxkD,MAAMkE,SAAW,WAChC4tC,EAAM0S,SAASxkD,MAAMnC,MAAQ,OAC7Bi0C,EAAMztC,YAAYytC,EAAM0S,UAE1B,IAAIA,GAAW7wD,KAAKwwD,mBACpBrS,GAAM0S,SAASlQ,UAAY,wBAA0BkQ,EAAW,IAEhE1S,EAAM0S,SAASxkD,MAAMsyC,OAAS,OAC9BR,EAAM0S,SAASxkD,MAAMnG,KAAO,MAE5B,IAAI+rC,GAAKjyC,IACTu1C,YAAW,WACTtD,EAAGqe,iBAAiBv9C,EAAQ,IAC3B,IACH/S,KAAKM,QAAS,MAEdN,MAAKM,QAAS,MAGSuD,KAAnBs6C,EAAM0S,WACR1S,EAAMj8C,YAAYi8C,EAAM0S,UACxB1S,EAAM0S,aAAWhtD,IAGf7D,KAAKqwD,gBAAgBrwD,KAAKqwD,kBAIlCxwD,EAAOD,QAAUivC,GAIb,SAAUhvC,EAAQD,EAASM,GAe/B,QAAS8uC,GAAOoH,EAAWpoC,GACzB,OAAkBnK,KAAduyC,EACF,KAAM,IAAI/xC,OAAM,+BAKlB,IAHArE,KAAKo2C,UAAYA,EACjBp2C,KAAKwlD,SAAUx3C,OAA8BnK,IAAnBmK,EAAQw3C,SAAuBx3C,EAAQw3C,QAE7DxlD,KAAKwlD,QAAS,CAChBxlD,KAAKm+C,MAAQjuC,SAASC,cAAc,OAEpCnQ,KAAKm+C,MAAM9xC,MAAM+D,MAAQ,OACzBpQ,KAAKm+C,MAAM9xC,MAAMkE,SAAW,WAC5BvQ,KAAKo2C,UAAU1lC,YAAY1Q,KAAKm+C,OAEhCn+C,KAAKm+C,MAAM2S,KAAO5gD,SAASC,cAAc,SACzCnQ,KAAKm+C,MAAM2S,KAAK7rD,KAAO,SACvBjF,KAAKm+C,MAAM2S,KAAKvuD,MAAQ,OACxBvC,KAAKm+C,MAAMztC,YAAY1Q,KAAKm+C,MAAM2S,MAElC9wD,KAAKm+C,MAAMwD,KAAOzxC,SAASC,cAAc,SACzCnQ,KAAKm+C,MAAMwD,KAAK18C,KAAO,SACvBjF,KAAKm+C,MAAMwD,KAAKp/C,MAAQ,OACxBvC,KAAKm+C,MAAMztC,YAAY1Q,KAAKm+C,MAAMwD,MAElC3hD,KAAKm+C,MAAM1sC,KAAOvB,SAASC,cAAc,SACzCnQ,KAAKm+C,MAAM1sC,KAAKxM,KAAO,SACvBjF,KAAKm+C,MAAM1sC,KAAKlP,MAAQ,OACxBvC,KAAKm+C,MAAMztC,YAAY1Q,KAAKm+C,MAAM1sC,MAElCzR,KAAKm+C,MAAM4S,IAAM7gD,SAASC,cAAc,SACxCnQ,KAAKm+C,MAAM4S,IAAI9rD,KAAO,SACtBjF,KAAKm+C,MAAM4S,IAAI1kD,MAAMkE,SAAW,WAChCvQ,KAAKm+C,MAAM4S,IAAI1kD,MAAMV,OAAS,gBAC9B3L,KAAKm+C,MAAM4S,IAAI1kD,MAAM+D,MAAQ,QAC7BpQ,KAAKm+C,MAAM4S,IAAI1kD,MAAMgE,OAAS,MAC9BrQ,KAAKm+C,MAAM4S,IAAI1kD,MAAMqtC,aAAe,MACpC15C,KAAKm+C,MAAM4S,IAAI1kD,MAAM2kD,gBAAkB,MACvChxD,KAAKm+C,MAAM4S,IAAI1kD,MAAMV,OAAS,oBAC9B3L,KAAKm+C,MAAM4S,IAAI1kD,MAAM2tC,gBAAkB,UACvCh6C,KAAKm+C,MAAMztC,YAAY1Q,KAAKm+C,MAAM4S,KAElC/wD,KAAKm+C,MAAM8S,MAAQ/gD,SAASC,cAAc,SAC1CnQ,KAAKm+C,MAAM8S,MAAMhsD,KAAO,SACxBjF,KAAKm+C,MAAM8S,MAAM5kD,MAAM43C,OAAS,MAChCjkD,KAAKm+C,MAAM8S,MAAM1uD,MAAQ,IACzBvC,KAAKm+C,MAAM8S,MAAM5kD,MAAMkE,SAAW,WAClCvQ,KAAKm+C,MAAM8S,MAAM5kD,MAAMnG,KAAO,SAC9BlG,KAAKm+C,MAAMztC,YAAY1Q,KAAKm+C,MAAM8S,MAGlC,IAAIhf,GAAKjyC,IACTA,MAAKm+C,MAAM8S,MAAMrQ,YAAc,SAAUr4C,GACvC0pC,EAAG4O,aAAat4C,IAElBvI,KAAKm+C,MAAM2S,KAAK1P,QAAU,SAAU74C,GAClC0pC,EAAG6e,KAAKvoD,IAEVvI,KAAKm+C,MAAMwD,KAAKP,QAAU,SAAU74C,GAClC0pC,EAAGif,WAAW3oD,IAEhBvI,KAAKm+C,MAAM1sC,KAAK2vC,QAAU,SAAU74C,GAClC0pC,EAAGxgC,KAAKlJ,IAIZvI,KAAKmxD,qBAAmBttD,GAExB7D,KAAKkV,UACLlV,KAAK+S,UAAQlP,GAEb7D,KAAKoxD,gBAAcvtD,GACnB7D,KAAKqxD,aAAe,IACpBrxD,KAAKsxD,UAAW,EAnFlB,GAAI3wD,GAAOT,EAAoB,EAyF/B8uC,GAAO38B,UAAUy+C,KAAO,WACtB,GAAI/9C,GAAQ/S,KAAK4lD,UACb7yC,GAAQ,IACVA,IACA/S,KAAKuxD,SAASx+C,KAOlBi8B,EAAO38B,UAAUZ,KAAO,WACtB,GAAIsB,GAAQ/S,KAAK4lD,UACb7yC,GAAQ/S,KAAKkV,OAAOtR,OAAS,IAC/BmP,IACA/S,KAAKuxD,SAASx+C,KAOlBi8B,EAAO38B,UAAUm/C,SAAW,WAC1B,GAAIvM,GAAQ,GAAIpiD,MAEZkQ,EAAQ/S,KAAK4lD,UACb7yC,GAAQ/S,KAAKkV,OAAOtR,OAAS,GAC/BmP,IACA/S,KAAKuxD,SAASx+C,IACL/S,KAAKsxD,WAEdv+C,EAAQ,EACR/S,KAAKuxD,SAASx+C,GAGhB,IAAImyC,GAAM,GAAIriD,MACV+kB,EAAOs9B,EAAMD,EAIbwM,EAAWhvD,KAAKJ,IAAIrC,KAAKqxD,aAAezpC,EAAM,GAG9CqqB,EAAKjyC,IACTA,MAAKoxD,YAAc7b,WAAW,WAC5BtD,EAAGuf,YACFC,IAMLziB,EAAO38B,UAAU6+C,WAAa,eACHrtD,KAArB7D,KAAKoxD,YACPpxD,KAAK2hD,OAEL3hD,KAAK6hD,QAOT7S,EAAO38B,UAAUsvC,KAAO,WAElB3hD,KAAKoxD,cAETpxD,KAAKwxD,WAEDxxD,KAAKm+C,QACPn+C,KAAKm+C,MAAMwD,KAAKp/C,MAAQ,UAO5BysC,EAAO38B,UAAUwvC,KAAO,WACtB6P,cAAc1xD,KAAKoxD,aACnBpxD,KAAKoxD,gBAAcvtD,GAEf7D,KAAKm+C,QACPn+C,KAAKm+C,MAAMwD,KAAKp/C,MAAQ,SAQ5BysC,EAAO38B,UAAUyzC,oBAAsB,SAAU3+C,GAC/CnH,KAAKmxD,iBAAmBhqD,GAO1B6nC,EAAO38B,UAAUqzC,gBAAkB,SAAU+L,GAC3CzxD,KAAKqxD,aAAeI,GAOtBziB,EAAO38B,UAAUs/C,gBAAkB,SAAUF,GAC3C,MAAOzxD,MAAKqxD,cASdriB,EAAO38B,UAAUu/C,YAAc,SAAUC,GACvC7xD,KAAKsxD,SAAWO,GAMlB7iB,EAAO38B,UAAUy/C,SAAW,eACIjuD,KAA1B7D,KAAKmxD,kBACPnxD,KAAKmxD,oBAOTniB,EAAO38B,UAAUotC,OAAS,WACxB,GAAIz/C,KAAKm+C,MAAO,CAEdn+C,KAAKm+C,MAAM4S,IAAI1kD,MAAM/F,IAAMtG,KAAKm+C,MAAMqD,aAAe,EAAIxhD,KAAKm+C,MAAM4S,IAAI7C,aAAe,EAAI,KAC3FluD,KAAKm+C,MAAM4S,IAAI1kD,MAAM+D,MAAQpQ,KAAKm+C,MAAMptC,YAAc/Q,KAAKm+C,MAAM2S,KAAK//C,YAAc/Q,KAAKm+C,MAAMwD,KAAK5wC,YAAc/Q,KAAKm+C,MAAM1sC,KAAKV,YAAc,GAAK,IAGrJ,IAAI7K,GAAOlG,KAAK+xD,YAAY/xD,KAAK+S,MACjC/S,MAAKm+C,MAAM8S,MAAM5kD,MAAMnG,KAAOA,EAAO,OAQzC8oC,EAAO38B,UAAUozC,UAAY,SAAUvwC,GACrClV,KAAKkV,OAASA,EAEVlV,KAAKkV,OAAOtR,OAAS,EAAG5D,KAAKuxD,SAAS,GAAQvxD,KAAK+S,UAAQlP,IAOjEmrC,EAAO38B,UAAUk/C,SAAW,SAAUx+C,GACpC,KAAIA,EAAQ/S,KAAKkV,OAAOtR,QAMtB,KAAM,IAAIS,OAAM,qBALhBrE,MAAK+S,MAAQA,EAEb/S,KAAKy/C,SACLz/C,KAAK8xD,YAUT9iB,EAAO38B,UAAUuzC,SAAW,WAC1B,MAAO5lD,MAAK+S,OAOdi8B,EAAO38B,UAAUoF,IAAM,WACrB,MAAOzX,MAAKkV,OAAOlV,KAAK+S,QAG1Bi8B,EAAO38B,UAAUwuC,aAAe,SAAUt4C,GAGxC,GADqBA,EAAM+hD,MAAwB,IAAhB/hD,EAAM+hD,MAA+B,IAAjB/hD,EAAMgiD,OAC7D,CAEAvqD,KAAKgyD,aAAezpD,EAAM4uC,QAC1Bn3C,KAAKiyD,YAAcx2B,WAAWz7B,KAAKm+C,MAAM8S,MAAM5kD,MAAMnG,MAErDlG,KAAKm+C,MAAM9xC,MAAMu+C,OAAS,MAK1B,IAAI3Y,GAAKjyC,IACTA,MAAK6qD,YAAc,SAAUtiD,GAC3B0pC,EAAG6Y,aAAaviD,IAElBvI,KAAK+qD,UAAY,SAAUxiD,GACzB0pC,EAAGoY,WAAW9hD,IAEhB5H,EAAKiH,iBAAiBsI,SAAU,YAAalQ,KAAK6qD,aAClDlqD,EAAKiH,iBAAiBsI,SAAU,UAAWlQ,KAAK+qD,WAChDpqD,EAAK2H,eAAeC,KAGtBymC,EAAO38B,UAAU6/C,YAAc,SAAUhsD,GACvC,GAAIkK,GAAQqrB,WAAWz7B,KAAKm+C,MAAM4S,IAAI1kD,MAAM+D,OAASpQ,KAAKm+C,MAAM8S,MAAMlgD,YAAc,GAChFkkB,EAAI/uB,EAAO,EAEX6M,EAAQtQ,KAAKm6B,MAAM3H,EAAI7kB,GAASpQ,KAAKkV,OAAOtR,OAAS,GAIzD,OAHImP,GAAQ,IAAGA,EAAQ,GACnBA,EAAQ/S,KAAKkV,OAAOtR,OAAS,IAAGmP,EAAQ/S,KAAKkV,OAAOtR,OAAS,GAE1DmP,GAGTi8B,EAAO38B,UAAU0/C,YAAc,SAAUh/C,GACvC,GAAI3C,GAAQqrB,WAAWz7B,KAAKm+C,MAAM4S,IAAI1kD,MAAM+D,OAASpQ,KAAKm+C,MAAM8S,MAAMlgD,YAAc,EAKpF,OAHQgC,IAAS/S,KAAKkV,OAAOtR,OAAS,GAAKwM,EAC5B,GAKjB4+B,EAAO38B,UAAUy4C,aAAe,SAAUviD,GACxC,GAAIqf,GAAOrf,EAAM4uC,QAAUn3C,KAAKgyD,aAC5B/8B,EAAIj1B,KAAKiyD,YAAcrqC,EAEvB7U,EAAQ/S,KAAKkyD,YAAYj9B,EAE7Bj1B,MAAKuxD,SAASx+C,GAEdpS,EAAK2H,kBAGP0mC,EAAO38B,UAAUg4C,WAAa,SAAU9hD,GACtCvI,KAAKm+C,MAAM9xC,MAAMu+C,OAAS,OAG1BjqD,EAAKyH,oBAAoB8H,SAAU,YAAalQ,KAAK6qD,aACrDlqD,EAAKyH,oBAAoB8H,SAAU,UAAWlQ,KAAK+qD,WAEnDpqD,EAAK2H,kBAGPzI,EAAOD,QAAUovC,GAIb,SAAUnvC,EAAQD,GA6BtB,QAASqvC,GAAWgW,EAAOC,EAAK3yC,EAAMq0C,GAEpC5mD,KAAKmyD,OAAS,EACdnyD,KAAKoyD,KAAO,EACZpyD,KAAKuR,MAAQ,EACbvR,KAAK4mD,YAAa,EAClB5mD,KAAKqyD,UAAY,EAEjBryD,KAAKsyD,SAAW,EAChBtyD,KAAKuyD,SAAStN,EAAOC,EAAK3yC,EAAMq0C,GAQlC3X,EAAW58B,UAAUmgD,UAAY,SAAU7kB,GACzC,OAAQ3qC,MAAMy4B,WAAWkS,KAAO9oB,SAAS8oB,IAY3CsB,EAAW58B,UAAUkgD,SAAW,SAAUtN,EAAOC,EAAK3yC,EAAMq0C,GAC1D,IAAK5mD,KAAKwyD,UAAUvN,GAClB,KAAM,IAAI5gD,OAAM,4CAAgD4gD,EAElE,KAAKjlD,KAAKwyD,UAAUtN,GAClB,KAAM,IAAI7gD,OAAM,0CAA8C4gD,EAEhE,KAAKjlD,KAAKwyD,UAAUjgD,GAClB,KAAM,IAAIlO,OAAM,2CAA+C4gD,EAGjEjlD,MAAKmyD,OAASlN,GAAgB,EAC9BjlD,KAAKoyD,KAAOlN,GAAY,EAExBllD,KAAKyyD,QAAQlgD,EAAMq0C,IASrB3X,EAAW58B,UAAUogD,QAAU,SAAUlgD,EAAMq0C,OAChC/iD,KAAT0O,GAAsBA,GAAQ,QAEf1O,KAAf+iD,IAA0B5mD,KAAK4mD,WAAaA,IAExB,IAApB5mD,KAAK4mD,WAAqB5mD,KAAKuR,MAAQ09B,EAAWyjB,oBAAoBngD,GAAWvS,KAAKuR,MAAQgB,IAUpG08B,EAAWyjB,oBAAsB,SAAUngD,GACzC,GAAIogD,GAAQ,SAAe19B,GACzB,MAAOxyB,MAAKmwD,IAAI39B,GAAKxyB,KAAKowD,MAIxBC,EAAQrwD,KAAKknB,IAAI,GAAIlnB,KAAKm6B,MAAM+1B,EAAMpgD,KACtCwgD,EAAQ,EAAItwD,KAAKknB,IAAI,GAAIlnB,KAAKm6B,MAAM+1B,EAAMpgD,EAAO,KACjDygD,EAAQ,EAAIvwD,KAAKknB,IAAI,GAAIlnB,KAAKm6B,MAAM+1B,EAAMpgD,EAAO,KAGjDq0C,EAAakM,CASjB,OARIrwD,MAAK0iB,IAAI4tC,EAAQxgD,IAAS9P,KAAK0iB,IAAIyhC,EAAar0C,KAAOq0C,EAAamM,GACpEtwD,KAAK0iB,IAAI6tC,EAAQzgD,IAAS9P,KAAK0iB,IAAIyhC,EAAar0C,KAAOq0C,EAAaoM,GAGpEpM,GAAc,IAChBA,EAAa,GAGRA,GAOT3X,EAAW58B,UAAU8yC,WAAa,WAChC,MAAO1pB,YAAWz7B,KAAKsyD,SAASW,YAAYjzD,KAAKqyD,aAOnDpjB,EAAW58B,UAAU6gD,QAAU,WAC7B,MAAOlzD,MAAKuR,OAYd09B,EAAW58B,UAAU4yC,MAAQ,SAAUkO,OAClBtvD,KAAfsvD,IACFA,GAAa,GAGfnzD,KAAKsyD,SAAWtyD,KAAKmyD,OAASnyD,KAAKmyD,OAASnyD,KAAKuR,MAE7C4hD,GACEnzD,KAAKmlD,aAAenlD,KAAKmyD,QAC3BnyD,KAAKyR,QAQXw9B,EAAW58B,UAAUZ,KAAO,WAC1BzR,KAAKsyD,UAAYtyD,KAAKuR,OAOxB09B,EAAW58B,UAAU6yC,IAAM,WACzB,MAAOllD,MAAKsyD,SAAWtyD,KAAKoyD,MAG9BvyD,EAAOD,QAAUqvC,GAIb,SAAUpvC,EAAQD,GAatB,QAASwzD,KACPpzD,KAAKoC,QAAMyB,GACX7D,KAAKqC,QAAMwB,GAWbuvD,EAAM/gD,UAAUmvB,OAAS,SAAUj/B,OACnBsB,KAAVtB,SAEasB,KAAb7D,KAAKoC,KAAqBpC,KAAKoC,IAAMG,KACvCvC,KAAKoC,IAAMG,QAGIsB,KAAb7D,KAAKqC,KAAqBrC,KAAKqC,IAAME,KACvCvC,KAAKqC,IAAME,KASf6wD,EAAM/gD,UAAUghD,QAAU,SAAU7X,GAClCx7C,KAAK2wB,IAAI6qB,EAAMp5C,KACfpC,KAAK2wB,IAAI6qB,EAAMn5C,MAajB+wD,EAAM/gD,UAAUihD,OAAS,SAAU37C,GACjC,OAAY9T,KAAR8T,EAAJ,CAIA,GAAI47C,GAASvzD,KAAKoC,IAAMuV,EACpB67C,EAASxzD,KAAKqC,IAAMsV,CAIxB,IAAI47C,EAASC,EACX,KAAM,IAAInvD,OAAM,6CAGlBrE,MAAKoC,IAAMmxD,EACXvzD,KAAKqC,IAAMmxD,IAQbJ,EAAM/gD,UAAUmpC,MAAQ,WACtB,MAAOx7C,MAAKqC,IAAMrC,KAAKoC,KAQzBgxD,EAAM/gD,UAAUwpC,OAAS,WACvB,OAAQ77C,KAAKoC,IAAMpC,KAAKqC,KAAO,GAGjCxC,EAAOD,QAAUwzD,GAIb,SAAUvzD,EAAQD,EAASM,GAsE/B,QAASuzD,GAAQ3yD,GACf,IAAK,GAAIuC,KAAQvC,GACf,GAAIA,EAAIwC,eAAeD,GAAO,OAAO,CAGvC,QAAO,EAQT,QAASqwD,GAAWC,GAClB,WAAY9vD,KAAR8vD,GAA6B,KAARA,GAA4B,gBAAPA,GACrCA,EAGFA,EAAI14C,OAAO,GAAGgM,cAAgB0sC,EAAIhpD,MAAM,GAMjD,QAASipD,GAAgB/xB,EAAQgyB,GAC/B,WAAehwD,KAAXg+B,GAAmC,KAAXA,EACnBgyB,EAGFhyB,EAAS6xB,EAAWG,GAiB7B,QAASC,GAAUp7C,EAAKq7C,EAAKzmD,EAAQu0B,GACnC,GAAImyB,GACAC,CAEJ,KAAK,GAAIlwD,KAAKuJ,GACZ0mD,EAAS1mD,EAAOvJ,GAChBkwD,EAASL,EAAgB/xB,EAAQmyB,GAEjCD,EAAIE,GAAUv7C,EAAIs7C,GAatB,QAASE,GAASx7C,EAAKq7C,EAAKzmD,EAAQu0B,GAClC,GAAImyB,GACAC,CAEJ,KAAK,GAAIlwD,KAAKuJ,GACZ0mD,EAAS1mD,EAAOvJ,OACIF,KAAhB6U,EAAIs7C,KAERC,EAASL,EAAgB/xB,EAAQmyB,GAEjCD,EAAIE,GAAUv7C,EAAIs7C,IAatB,QAASrd,GAAYj+B,EAAKq7C,GACxB,OAAYlwD,KAAR6U,GAAqB+6C,EAAQ/6C,GAC/B,KAAM,IAAIrU,OAAM,qBAElB,QAAYR,KAARkwD,EACF,KAAM,IAAI1vD,OAAM,gBAIlBuyC,GAAWl+B,EAGXo7C,EAAUp7C,EAAKq7C,EAAKI,GACpBL,EAAUp7C,EAAKq7C,EAAKK,EAAoB,WAGxCC,EAAmB37C,EAAKq7C,GAGxBA,EAAI9P,OAAS,GACb8P,EAAIvK,gBAAiB,EACrBuK,EAAIzH,aAAc,EAClByH,EAAI/H,iBAAmB,KACvB+H,EAAIpW,IAAM,GAAI5O,GAAQ,EAAG,GAAI,GAG/B,QAASmC,GAAWljC,EAAS+lD,GAC3B,OAAgBlwD,KAAZmK,EAAJ,CAGA,OAAYnK,KAARkwD,EACF,KAAM,IAAI1vD,OAAM,gBAGlB,QAAiBR,KAAb+yC,GAA0B6c,EAAQ7c,GACpC,KAAM,IAAIvyC,OAAM,uCAIlB6vD,GAASlmD,EAAS+lD,EAAKI,GACvBD,EAASlmD,EAAS+lD,EAAKK,EAAoB,WAG3CC,EAAmBrmD,EAAS+lD,IAQ9B,QAASM,GAAmB37C,EAAKq7C,OACHlwD,KAAxB6U,EAAIshC,iBACNsa,EAAmB57C,EAAIshC,gBAAiB+Z,GAG1CQ,EAAa77C,EAAIuhC,UAAW8Z,GAC5BS,EAAS97C,EAAIrM,MAAO0nD,GACpBU,EAAc/7C,EAAIqhC,WAAYga,GAC9BzF,EAAkB51C,EAAI2hC,eAAgB0Z,OAIlBlwD,KAAhB6U,EAAI6gC,UACNwa,EAAIzH,YAAc5zC,EAAI6gC,aAEL11C,IAAf6U,EAAI0oC,UACN2S,EAAI/H,iBAAmBtzC,EAAI0oC,aAGJv9C,KAArB6U,EAAI8gC,cACN74C,EAAK2D,qBAAqB,gBAAiByvD,EAAKr7C,GAUpD,QAAS+7C,GAAc1a,EAAYga,GACjC,OAAmBlwD,KAAfk2C,EAA0B,CAI5B,OAF8Cl2C,KAAxB+yC,EAASmD,WAEV,CAEnB,GAAI2a,GAAqBX,EAAI1nD,QAAUqrC,EAAMuH,UAAY8U,EAAI1nD,QAAUqrC,EAAMwH,OAE7E6U,GAAIha,WAAa2a,OAKnBX,GAAIha,WAAaA,EAUrB,QAAS4a,GAAqBC,GAC5B,GAAInwC,GAASowC,EAAUD,EAEvB,YAAe/wD,KAAX4gB,GACM,EAGHA,EAQT,QAASqwC,GAAiBzoD,GACxB,GAAI0oD,IAAQ,CAEZ,KAAK,GAAIpnB,KAAK+J,GACZ,GAAIA,EAAM/J,KAAOthC,EAAO,CACtB0oD,GAAQ,CACR,OAIJ,MAAOA,GAGT,QAASP,GAASnoD,EAAO0nD,GACvB,OAAclwD,KAAVwI,EAAJ,CAIA,GAAI2oD,EAEJ,IAAqB,gBAAV3oD,IAGT,IAAqB,KAFrB2oD,EAAcL,EAAqBtoD,IAGjC,KAAM,IAAIhI,OAAM,UAAagI,EAAQ,oBAElC,CAEL,IAAKyoD,EAAiBzoD,GACpB,KAAM,IAAIhI,OAAM,UAAagI,EAAQ,eAGvC2oD,GAAc3oD,EAGhB0nD,EAAI1nD,MAAQ2oD,GAOd,QAASV,GAAmBta,EAAiB+Z,GAC3C,GAAI7Z,GAAO,QACPC,EAAS,OACTC,EAAc,CAElB,IAA+B,gBAApBJ,GACTE,EAAOF,EACPG,EAAS,OACTC,EAAc,MACT,CAAA,GAA2G,gBAA3E,KAApBJ,EAAkC,aAAc,EAAIx4C,EAAkB,SAAGw4C,IAK1F,KAAM,IAAI31C,OAAM,2CAJaR,KAAzBm2C,EAAgBE,OAAoBA,EAAOF,EAAgBE,UAChCr2C,KAA3Bm2C,EAAgBG,SAAsBA,EAASH,EAAgBG,YAC/Bt2C,KAAhCm2C,EAAgBI,cAA2BA,EAAcJ,EAAgBI,aAK/E2Z,EAAI5V,MAAM9xC,MAAM2tC,gBAAkBE,EAClC6Z,EAAI5V,MAAM9xC,MAAM67C,YAAc/N,EAC9B4Z,EAAI5V,MAAM9xC,MAAM4oD,YAAc7a,EAAc,KAC5C2Z,EAAI5V,MAAM9xC,MAAM6oD,YAAc,QAGhC,QAASX,GAAata,EAAW8Z,OACblwD,KAAdo2C,QAIkBp2C,KAAlBkwD,EAAI9Z,YACN8Z,EAAI9Z,cAGmB,gBAAdA,IACT8Z,EAAI9Z,UAAUC,KAAOD,EACrB8Z,EAAI9Z,UAAUE,OAASF,IAEnBA,EAAUC,OACZ6Z,EAAI9Z,UAAUC,KAAOD,EAAUC,MAE7BD,EAAUE,SACZ4Z,EAAI9Z,UAAUE,OAASF,EAAUE,YAELt2C,KAA1Bo2C,EAAUG,cACZ2Z,EAAI9Z,UAAUG,YAAcH,EAAUG,eAK5C,QAASkU,GAAkBjU,EAAgB0Z,GACzC,GAAIoB,GAAS9a,MACEx2C,KAAXsxD,QAIetxD,KAAfkwD,EAAIhY,SACNgY,EAAIhY,OAAS,GAAInN,IAGnBmlB,EAAIhY,OAAO8P,eAAesJ,EAAO7a,WAAY6a,EAAO5a,UACpDwZ,EAAIhY,OAAOmR,aAAaiI,EAAO3a,WAzXjC,GAAIj5C,GAAWrB,EAAoB,IAE/BsB,EAEJ,SAAgCV,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFnDS,GAQlCZ,EAAOT,EAAoB,GAC3B0uC,EAAS1uC,EAAoB,KAC7B6uC,EAAU7uC,EAAoB,KAG9Bw3C,GACF2K,IAAK,EACLtD,SAAU,EACVC,QAAS,EACT1F,IAAK,EACLoJ,QAAS,EACTzD,SAAU,EACVC,QAAS,EACTU,KAAM,EACNW,KAAM,EACNV,QAAS,GAIPgV,GACF/a,IAAOpC,EAAM4B,IACb8b,WAAY1d,EAAMgL,QAClB2S,YAAa3d,EAAMuH,SACnBqW,WAAY5d,EAAMwH,QAClBtF,KAAQlC,EAAM6I,KACdgV,KAAQ7d,EAAMkI,KACduI,QAAWzQ,EAAMmI,QACjBkR,IAAOrZ,EAAM2K,IACbmT,YAAa9d,EAAMqH,SACnB0W,WAAY/d,EAAMsH,SAShBmV,GAAc,QAAS,SAAU,cAAe,cAAe,SAAU,SAAU,SAAU,cAAe,cAAe,cAAe,YAAa,YAAa,YAAa,WAAY,kBAAmB,aAAc,kBAAmB,gBAAiB,eAAgB,qBAAsB,qBAAsB,wBAAyB,oBAAqB,mBAAoB,qBAAsB,YAAa,YAAa,UAAW,WAQ3bC,GAAsB,YAAa,YAAa,WAAY,WAAY,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,QAAS,OAAQ,OAAQ,SAG1Ixd,MAAW/yC,EAiUfhE,GAAOD,QAAQ83C,MAAQA,EACvB73C,EAAOD,QAAQ+2C,YAAcA,EAC7B92C,EAAOD,QAAQsxC,WAAaA,EAC5BrxC,EAAOD,QAAQ0uD,kBAAoBA,GAI/B,SAAUzuD,EAAQD,EAASM,GAqB/B,QAASs2C,KACPx2C,KAAK01D,UAAY,KAlBnB,GAAInnB,GAAUruC,EAAoB,IAC9BsuC,EAAWtuC,EAAoB,IAE/BkzD,GADUlzD,EAAoB,KACtBA,EAAoB,KAgChCs2C,GAAUnkC,UAAUgtC,eAAiB,SAAU1Q,EAASyQ,EAAS/yC,GAM/D,GAJIrM,KAAKi2C,SACPj2C,KAAKi2C,QAAQvE,IAAI,IAAK1xC,KAAK21D,eAGb9xD,KAAZu7C,EAAJ,CAEIj7C,MAAMC,QAAQg7C,KAChBA,EAAU,GAAI7Q,GAAQ6Q,GAGxB,IAAI1qB,EACJ,MAAI0qB,YAAmB7Q,IAAW6Q,YAAmB5Q,IAGnD,KAAM,IAAInqC,OAAM,uCAGlB,IALEqwB,EAAO0qB,EAAQ3nC,MAKE,GAAfid,EAAK9wB,OAAT,CAEA5D,KAAKi2C,QAAUmJ,EACfp/C,KAAK01D,UAAYhhC,CAGjB,IAAIud,GAAKjyC,IACTA,MAAK21D,UAAY,WACfhnB,EAAQ+G,QAAQzD,EAAGgE,UAErBj2C,KAAKi2C,QAAQ1E,GAAG,IAAKvxC,KAAK21D,WAG1B31D,KAAK62C,KAAO,IACZ72C,KAAK82C,KAAO,IACZ92C,KAAK+2C,KAAO,GAEZ,IAAI6e,GAAWjnB,EAAQmf,QAAQzhD,EAsB/B,IAnBIupD,QAC+B/xD,KAA7B8qC,EAAQknB,iBACV71D,KAAKy6C,UAAY9L,EAAQknB,iBAEzB71D,KAAKy6C,UAAYz6C,KAAK81D,sBAAsBphC,EAAM10B,KAAK62C,OAAS,MAGjChzC,KAA7B8qC,EAAQonB,iBACV/1D,KAAK06C,UAAY/L,EAAQonB,iBAEzB/1D,KAAK06C,UAAY16C,KAAK81D,sBAAsBphC,EAAM10B,KAAK82C,OAAS,GAKpE92C,KAAKg2D,iBAAiBthC,EAAM10B,KAAK62C,KAAMlI,EAASinB,GAChD51D,KAAKg2D,iBAAiBthC,EAAM10B,KAAK82C,KAAMnI,EAASinB,GAChD51D,KAAKg2D,iBAAiBthC,EAAM10B,KAAK+2C,KAAMpI,GAAS,GAE5Cja,EAAK,GAAGpxB,eAAe,SAAU,CACnCtD,KAAKg3C,SAAW,OAChB,IAAI4E,GAAa57C,KAAKi2D,eAAevhC,EAAM10B,KAAKg3C,SAChDh3C,MAAKk2D,kBAAkBta,EAAYjN,EAAQwnB,gBAAiBxnB,EAAQynB,iBACpEp2D,KAAK47C,WAAaA,MAkBtBpF,EAAUnkC,UAAUgkD,sBAAwB,SAAUlG,EAAQxhB,GAG5D,IAAc,IAFD,IAAK,IAAK,KAAK/pC,QAAQurD,GAGlC,KAAM,IAAI9rD,OAAM,WAAc8rD,EAAS,YAGzC,IAAImG,GAAQnG,EAAOlpC,aAEnB,QACEsvC,SAAUv2D,KAAKmwD,EAAS,YACxB/tD,IAAKusC,EAAQ,UAAY2nB,EAAQ,OACjCj0D,IAAKssC,EAAQ,UAAY2nB,EAAQ,OACjC/jD,KAAMo8B,EAAQ,UAAY2nB,EAAQ,QAClCE,YAAarG,EAAS,QACtBsG,WAAYtG,EAAS,SAiBzB3Z,EAAUnkC,UAAU2jD,iBAAmB,SAAUthC,EAAMy7B,EAAQxhB,EAASinB,GACtE,GACIc,GAAW12D,KAAKq2D,sBAAsBlG,EAAQxhB,GAE9C6M,EAAQx7C,KAAKi2D,eAAevhC,EAAMy7B,EAClCyF,IAAsB,KAAVzF,GAEd3U,EAAM8X,OAAOoD,EAASH,SAAW,GAGnCv2D,KAAKk2D,kBAAkB1a,EAAOkb,EAASt0D,IAAKs0D,EAASr0D,KACrDrC,KAAK02D,EAASF,aAAehb,EAC7Bx7C,KAAK02D,EAASD,gBAAgC5yD,KAAlB6yD,EAASnkD,KAAqBmkD,EAASnkD,KAAOipC,EAAMA,QAXjE,GAwBjBhF,EAAUnkC,UAAU0tC,kBAAoB,SAAUoQ,EAAQz7B,OAC3C7wB,KAAT6wB,IACFA,EAAO10B,KAAK01D,UAKd,KAAK,GAFDxgD,MAEKnR,EAAI,EAAGA,EAAI2wB,EAAK9wB,OAAQG,IAAK,CACpC,GAAIxB,GAAQmyB,EAAK3wB,GAAGosD,IAAW,GACA,IAA3Bj7C,EAAOtQ,QAAQrC,IACjB2S,EAAOrQ,KAAKtC,GAIhB,MAAO2S,GAAO6T,KAAK,SAAUvlB,EAAGC,GAC9B,MAAOD,GAAIC,KAcf+yC,EAAUnkC,UAAUyjD,sBAAwB,SAAUphC,EAAMy7B,GAO1D,IAAK,GANDj7C,GAASlV,KAAK+/C,kBAAkBrrB,EAAMy7B,GAItCwG,EAAgB,KAEX5yD,EAAI,EAAGA,EAAImR,EAAOtR,OAAQG,IAAK,CACtC,GAAI6jB,GAAO1S,EAAOnR,GAAKmR,EAAOnR,EAAI,IAEb,MAAjB4yD,GAAyBA,EAAgB/uC,KAC3C+uC,EAAgB/uC,GAIpB,MAAO+uC,IAWTngB,EAAUnkC,UAAU4jD,eAAiB,SAAUvhC,EAAMy7B,GAInD,IAAK,GAHD3U,GAAQ,GAAI4X,GAGPrvD,EAAI,EAAGA,EAAI2wB,EAAK9wB,OAAQG,IAAK,CACpC,GAAI6K,GAAO8lB,EAAK3wB,GAAGosD,EACnB3U,GAAMha,OAAO5yB,GAGf,MAAO4sC,IAQThF,EAAUnkC,UAAUukD,gBAAkB,WACpC,MAAO52D,MAAK01D,UAAU9xD,QAYxB4yC,EAAUnkC,UAAU6jD,kBAAoB,SAAU1a,EAAOqb,EAAYC,OAChDjzD,KAAfgzD,IACFrb,EAAMp5C,IAAMy0D,OAGKhzD,KAAfizD,IACFtb,EAAMn5C,IAAMy0D,GAMVtb,EAAMn5C,KAAOm5C,EAAMp5C,MAAKo5C,EAAMn5C,IAAMm5C,EAAMp5C,IAAM,IAGtDo0C,EAAUnkC,UAAUitC,aAAe,WACjC,MAAOt/C,MAAK01D,WAGdlf,EAAUnkC,UAAUihC,WAAa,WAC/B,MAAOtzC,MAAKi2C,SAMdO,EAAUnkC,UAAU+vC,OAAS,WACvBpiD,KAAK01D,WACP11D,KAAK01C,QAAQ11C,KAAK01D,YAItB71D,EAAOD,QAAU42C,GAIb,SAAU32C,EAAQD,EAASM,GAM/B,GAAsB,mBAAXsI,QAAwB,CACjC,GAAIuuD,GAAc72D,EAAoB,KAClCgvC,EAAS1mC,OAAe,QAAKtI,EAAoB,IACrDL,GAAOD,QAAUm3D,EAAY7nB,GAC3B5mC,eAAgB,cAGlBzI,GAAOD,QAAU,WACf,KAAMyE,OAAM,+DAMZ,SAAUxE,EAAQD,EAASM,GAE/B,GAAI82D,GAAgCC,EAA8BC,GAEjE,SAAUv3D,GAGLs3D,KAAmCD,EAAiC,MAAsPnzD,MAA3OqzD,EAA2E,kBAAnCF,GAAiDA,EAA+B1gD,MAAM1W,EAASq3D,GAAiCD,KAAiFn3D,EAAOD,QAAUs3D,IAU7V,WACA,GAAIC,GAAe,IAwBnB,OAAO,SAASJ,GAAYK,EAAQppD,GAgIlC,QAASrH,GAAM0wD,GACb,MAAOA,GAAOnyD,MAAM,UAOtB,QAASoyD,GAAkB/uD,GAEzB,GAAmB,iBAAfA,EAAMtD,KAAyB,CAOjC,GAJKsD,EAAMgvD,SAASC,WAClBjvD,EAAMgvD,SAASC,aAGbjvD,EAAMgvD,SAASC,SAASjvD,EAAMtD,MAChC,MAGAsD,GAAMgvD,SAASC,SAASjvD,EAAMtD,OAAQ,EAK1C,GAAIwyD,IAAU,CACdlvD,GAAMmvD,gBAAkB,WACtBD,GAAU,EAIZ,IAAIE,GAAUpvD,EAAMgvD,SAASG,gBAAgBE,KAAKrvD,EAAMgvD,SACnC,mBAAXI,KACRpvD,EAAMgvD,SAASG,gBAAkB,WAC/BC,IACApvD,EAAMmvD,oBAKVnvD,EAAMsvD,YAAcV,CAIpB,KADA,GAAInxD,GAAOmxD,EACJnxD,IAASyxD,GAAS,CACvB,GAAIK,GAAa9xD,EAAKoxD,MACtB,IAAGU,EAED,IAAI,GADAC,GACInqD,EAAI,EAAGA,EAAIkqD,EAAWl0D,OAAQgK,IAEpC,GADAmqD,EAAYD,EAAWlqD,GAAGmqD,UAAUxvD,EAAMtD,MAC5B,IAAK,GAAIlB,GAAI,EAAGA,EAAIg0D,EAAUn0D,SAAW6zD,EAAS1zD,IAC9Dg0D,EAAUh0D,GAAGwE,EAInBvC,GAAOA,EAAK8C,YAvLhB,GAAI+nC,GAAW7iC,IACb1F,gBAAgB,EAGlB,IAAI8uD,EAAOY,QAAS,CAGlB,GAAI9oB,GAASkoB,EAETa,EAAoB,SAASpwD,EAASmG,GACxC,GAAIm7B,GAAI1kC,OAAOuT,OAAO64B,EAEtB,OADI7iC,IAASkhC,EAAOsf,OAAOrlB,EAAGn7B,GACvB+oD,EAAY,GAAI7nB,GAAOrnC,EAASshC,GAAIA,GAU7C,OARA+F,GAAOsf,OAAOyJ,EAAmB/oB,GAEjC+oB,EAAkBD,QAAU,SAAUnwD,EAASmG,GAC7C,GAAIm7B,GAAI1kC,OAAOuT,OAAO64B,EAEtB,OADI7iC,IAASkhC,EAAOsf,OAAOrlB,EAAGn7B,GACvB+oD,EAAY,GAAI7nB,GAAO8oB,QAAQnwD,EAASshC,GAAIA,IAG9C8uB,EAKT,GAAIC,GAAUzzD,OAAOuT,OAAOo/C,GAGxBvvD,EAAUuvD,EAAOvvD,OA6JrB,OA3JIA,GAAQuvD,SAAQvvD,EAAQuvD,WAC5BvvD,EAAQuvD,OAAOvyD,KAAKqzD,GAIpBd,EAAO7lB,GAAG,eAAgB,SAAUhpC,IACF,IAA5BsoC,EAASvoC,gBAA4BuoC,EAASvoC,iBAAmBC,EAAM4vD,aACzE5vD,EAAMD,iBAEJC,EAAM6vD,UACRjB,EAAe5uD,EAAMI,UAKzBuvD,EAAQH,aAQRG,EAAQ3mB,GAAK,SAAU8lB,EAAQgB,GAa7B,MAXA1xD,GAAM0wD,GAAQnwD,QAAQ,SAAUqB,GAC9B,GAAIwvD,GAAYG,EAAQH,UAAUxvD,EAC7BwvD,KACHG,EAAQH,UAAUxvD,GAASwvD,KAG3BX,EAAO7lB,GAAGhpC,EAAO+uD,IAEnBS,EAAUlzD,KAAKwzD,KAGVH,GAWTA,EAAQxmB,IAAM,SAAU2lB,EAAQgB,GAoB9B,MAlBA1xD,GAAM0wD,GAAQnwD,QAAQ,SAAUqB,GAC9B,GAAIwvD,GAAYG,EAAQH,UAAUxvD,EAC9BwvD,KACFA,EAAYM,EAAUN,EAAUjxD,OAAO,SAAUqE,GAC/C,MAAOA,KAAMktD,OAGXN,EAAUn0D,OAAS,EACrBs0D,EAAQH,UAAUxvD,GAASwvD,GAI3BX,EAAO1lB,IAAInpC,EAAO+uD,SACXY,GAAQH,UAAUxvD,OAKxB2vD,GAQTA,EAAQnM,KAAO,SAASuM,EAAW/vD,GACjC4uD,EAAe5uD,EAAMI,OACrByuD,EAAOrL,KAAKuM,EAAW/vD,IAGzB2vD,EAAQ5mB,QAAU,WAEhB,GAAIinB,GAAUnB,EAAOvvD,QAAQuvD,OACzBoB,EAAMD,EAAQ3zD,QAAQszD,IACd,IAATM,GAAYD,EAAQxgC,OAAOygC,EAAI,GAC9BD,EAAQ30D,cAAewzD,GAAOvvD,QAAQuvD,OAG1Cc,EAAQH,aAGRX,EAAO9lB,WAgEF4mB,MAOP,SAAUr4D,EAAQD,EAASM,GAE/B,GAAIg3D,IAKJ,SAAU1uD,EAAQ0H,EAAUuoD,EAAY50D,GAmBxC,QAAS60D,GAAkBjxD,EAAIkxD,EAASvjB,GACpC,MAAOG,YAAWqjB,EAAOnxD,EAAI2tC,GAAUujB,GAY3C,QAASE,GAAel4C,EAAKlZ,EAAI2tC,GAC7B,QAAIjxC,MAAMC,QAAQuc,KACdm4C,EAAKn4C,EAAKy0B,EAAQ3tC,GAAK2tC,IAChB,GAWf,QAAS0jB,GAAKh4D,EAAKsd,EAAUg3B,GACzB,GAAIrxC,EAEJ,IAAKjD,EAIL,GAAIA,EAAIoG,QACJpG,EAAIoG,QAAQkX,EAAUg3B,OACnB,IAAIt0C,EAAI8C,SAAWC,EAEtB,IADAE,EAAI,EACGA,EAAIjD,EAAI8C,QACXwa,EAAS7d,KAAK60C,EAASt0C,EAAIiD,GAAIA,EAAGjD,GAClCiD,QAGJ,KAAKA,IAAKjD,GACNA,EAAIwC,eAAeS,IAAMqa,EAAS7d,KAAK60C,EAASt0C,EAAIiD,GAAIA,EAAGjD,GAYvE,QAAS2kB,GAAU0vB,EAAQlgC,EAAM8jD,GAC7B,GAAIC,GAAqB,sBAAwB/jD,EAAO,KAAO8jD,EAAU,QACzE,OAAO,YACH,GAAI9vD,GAAI,GAAI5E,OAAM,mBACduhB,EAAQ3c,GAAKA,EAAE2c,MAAQ3c,EAAE2c,MAAMhc,QAAQ,kBAAmB,IACzDA,QAAQ,cAAe,IACvBA,QAAQ,6BAA8B,kBAAoB,sBAE3DgpD,EAAMpqD,EAAOgd,UAAYhd,EAAOgd,QAAQH,MAAQ7c,EAAOgd,QAAQotC,IAInE,OAHIA,IACAA,EAAIryD,KAAKiI,EAAOgd,QAASwzC,EAAoBpzC,GAE1CuvB,EAAO7+B,MAAMtW,KAAM2D,YAwElC,QAASs1D,GAAQC,EAAOx5B,EAAMy5B,GAC1B,GACIC,GADAC,EAAQ35B,EAAKrtB,SAGjB+mD,GAASF,EAAM7mD,UAAY5N,OAAOuT,OAAOqhD,GACzCD,EAAO50D,YAAc00D,EACrBE,EAAOE,OAASD,EAEZF,GACA3K,GAAO4K,EAAQD,GAUvB,QAASP,GAAOnxD,EAAI2tC,GAChB,MAAO,YACH,MAAO3tC,GAAG6O,MAAM8+B,EAASzxC,YAWjC,QAAS41D,GAAS5hD,EAAKgI,GACnB,aAAWhI,IAAO6hD,GACP7hD,EAAIrB,MAAMqJ,EAAOA,EAAK,IAAM9b,EAAYA,EAAW8b,GAEvDhI,EASX,QAAS8hD,GAAYC,EAAMC,GACvB,MAAQD,KAAS71D,EAAa81D,EAAOD,EASzC,QAASE,GAAkBjxD,EAAQ8rC,EAAO4jB,GACtCS,EAAKe,EAASplB,GAAQ,SAASxvC,GAC3B0D,EAAOf,iBAAiB3C,EAAMozD,GAAS,KAU/C,QAASyB,GAAqBnxD,EAAQ8rC,EAAO4jB,GACzCS,EAAKe,EAASplB,GAAQ,SAASxvC,GAC3B0D,EAAOP,oBAAoBnD,EAAMozD,GAAS,KAWlD,QAAStvD,GAAU0kC,EAAMzkC,GACrB,KAAOykC,GAAM,CACT,GAAIA,GAAQzkC,EACR,OAAO,CAEXykC,GAAOA,EAAK3kC,WAEhB,OAAO,EASX,QAASixD,GAAMpG,EAAKqG,GAChB,MAAOrG,GAAI/uD,QAAQo1D,IAAS,EAQhC,QAASH,GAASlG,GACd,MAAOA,GAAIrnD,OAAO3F,MAAM,QAU5B,QAASszD,GAAQvhD,EAAKshD,EAAME,GACxB,GAAIxhD,EAAI9T,UAAYs1D,EAChB,MAAOxhD,GAAI9T,QAAQo1D,EAGnB,KADA,GAAIj2D,GAAI,EACDA,EAAI2U,EAAI9U,QAAQ,CACnB,GAAKs2D,GAAaxhD,EAAI3U,GAAGm2D,IAAcF,IAAWE,GAAaxhD,EAAI3U,KAAOi2D,EACtE,MAAOj2D,EAEXA,KAEJ,OAAQ,EAShB,QAASqD,GAAQtG,GACb,MAAOqD,OAAMkO,UAAU1H,MAAMpK,KAAKO,EAAK,GAU3C,QAASq5D,GAAYzhD,EAAKnR,EAAKwhB,GAK3B,IAJA,GAAIqxC,MACAllD,KACAnR,EAAI,EAEDA,EAAI2U,EAAI9U,QAAQ,CACnB,GAAI+T,GAAMpQ,EAAMmR,EAAI3U,GAAGwD,GAAOmR,EAAI3U,EAC9Bk2D,GAAQ/kD,EAAQyC,GAAO,GACvByiD,EAAQv1D,KAAK6T,EAAI3U,IAErBmR,EAAOnR,GAAK4T,EACZ5T,IAaJ,MAVIglB,KAIIqxC,EAHC7yD,EAGS6yD,EAAQrxC,KAAK,SAAyBvlB,EAAGC,GAC/C,MAAOD,GAAE+D,GAAO9D,EAAE8D,KAHZ6yD,EAAQrxC,QAQnBqxC,EASX,QAASC,GAASv5D,EAAKw5D,GAKnB,IAJA,GAAIz4B,GAAQx+B,EACRk3D,EAAYD,EAAS,GAAGrzC,cAAgBqzC,EAAS3vD,MAAM,GAEvD5G,EAAI,EACDA,EAAIy2D,GAAgB52D,QAAQ,CAI/B,GAHAi+B,EAAS24B,GAAgBz2D,IACzBV,EAAO,EAAWw+B,EAAS04B,EAAYD,IAE3Bx5D,GACR,MAAOuC,EAEXU,KAEJ,MAAOF,GAQX,QAAS42D,KACL,MAAOC,MAQX,QAASC,GAAoB9yD,GACzB,GAAI+yD,GAAM/yD,EAAQgzD,eAAiBhzD,CACnC,OAAQ+yD,GAAIE,aAAeF,EAAIG,cAAgBvyD,EAyCnD,QAASwyD,GAAMC,EAAS9zD,GACpB,GAAIwP,GAAO3W,IACXA,MAAKi7D,QAAUA,EACfj7D,KAAKmH,SAAWA,EAChBnH,KAAK6H,QAAUozD,EAAQpzD,QACvB7H,KAAK2I,OAASsyD,EAAQjtD,QAAQktD,YAI9Bl7D,KAAKm7D,WAAa,SAASC,GACnB7B,EAAS0B,EAAQjtD,QAAQqtD,QAASJ,KAClCtkD,EAAK0hD,QAAQ+C,IAIrBp7D,KAAKs7D,OAoCT,QAASC,GAAoBN,GACzB,GACIO,GAAaP,EAAQjtD,QAAQwtD,UAajC,OAAO,KAXHA,IAEOC,GACAC,EACAC,GACAC,EACCC,GAGDC,EAFAC,IAIOd,EAASe,GAS/B,QAASA,GAAaf,EAAS3C,EAAWr3C,GACtC,GAAIg7C,GAAch7C,EAAMi7C,SAASt4D,OAC7Bu4D,EAAqBl7C,EAAMm7C,gBAAgBx4D,OAC3Cw0D,EAAWE,EAAY+D,IAAgBJ,EAAcE,GAAuB,EAC5EG,EAAWhE,GAAaiE,GAAYC,KAAkBP,EAAcE,GAAuB,CAE/Fl7C,GAAMm3C,UAAYA,EAClBn3C,EAAMq7C,UAAYA,EAEdlE,IACA6C,EAAQwB,YAKZx7C,EAAMq3C,UAAYA,EAGlBoE,EAAiBzB,EAASh6C,GAG1Bg6C,EAAQlP,KAAK,eAAgB9qC,GAE7Bg6C,EAAQ0B,UAAU17C,GAClBg6C,EAAQwB,QAAQG,UAAY37C,EAQhC,QAASy7C,GAAiBzB,EAASh6C,GAC/B,GAAIw7C,GAAUxB,EAAQwB,QAClBP,EAAWj7C,EAAMi7C,SACjBW,EAAiBX,EAASt4D,MAGzB64D,GAAQK,aACTL,EAAQK,WAAaC,EAAqB97C,IAI1C47C,EAAiB,IAAMJ,EAAQO,cAC/BP,EAAQO,cAAgBD,EAAqB97C,GACnB,IAAnB47C,IACPJ,EAAQO,eAAgB,EAG5B,IAAIF,GAAaL,EAAQK,WACrBE,EAAgBP,EAAQO,cACxBC,EAAeD,EAAgBA,EAAcnhB,OAASihB,EAAWjhB,OAEjEA,EAAS56B,EAAM46B,OAASqhB,EAAUhB,EACtCj7C,GAAMk8C,UAAYx2C,KAClB1F,EAAMm8C,UAAYn8C,EAAMk8C,UAAYL,EAAWK,UAE/Cl8C,EAAMo8C,MAAQC,EAASL,EAAcphB,GACrC56B,EAAMu5B,SAAW+iB,EAAYN,EAAcphB,GAE3C2hB,EAAef,EAASx7C,GACxBA,EAAMw8C,gBAAkBC,EAAaz8C,EAAM08C,OAAQ18C,EAAM28C,OAEzD,IAAIC,GAAkBC,EAAY78C,EAAMm8C,UAAWn8C,EAAM08C,OAAQ18C,EAAM28C,OACvE38C,GAAM88C,iBAAmBF,EAAgB5oC,EACzChU,EAAM+8C,iBAAmBH,EAAgBhvC,EACzC5N,EAAM48C,gBAAmB14C,GAAI04C,EAAgB5oC,GAAK9P,GAAI04C,EAAgBhvC,GAAMgvC,EAAgB5oC,EAAI4oC,EAAgBhvC,EAEhH5N,EAAMze,MAAQw6D,EAAgBiB,EAASjB,EAAcd,SAAUA,GAAY,EAC3Ej7C,EAAMi9C,SAAWlB,EAAgBmB,EAAYnB,EAAcd,SAAUA,GAAY,EAEjFj7C,EAAMm9C,YAAe3B,EAAQG,UAAsC37C,EAAMi7C,SAASt4D,OAC9E64D,EAAQG,UAAUwB,YAAen9C,EAAMi7C,SAASt4D,OAAS64D,EAAQG,UAAUwB,YADtCn9C,EAAMi7C,SAASt4D,OAGxDy6D,EAAyB5B,EAASx7C,EAGlC,IAAItY,GAASsyD,EAAQpzD,OACjBkB,GAAUkY,EAAMs2C,SAAS5uD,OAAQA,KACjCA,EAASsY,EAAMs2C,SAAS5uD,QAE5BsY,EAAMtY,OAASA,EAGnB,QAAS60D,GAAef,EAASx7C,GAC7B,GAAI46B,GAAS56B,EAAM46B,OACfhf,EAAS4/B,EAAQ6B,gBACjBC,EAAY9B,EAAQ8B,cACpB3B,EAAYH,EAAQG,aAEpB37C,GAAMq3C,YAAc+D,IAAeO,EAAUtE,YAAciE,KAC3DgC,EAAY9B,EAAQ8B,WAChBtpC,EAAG2nC,EAAUe,QAAU,EACvB9uC,EAAG+tC,EAAUgB,QAAU,GAG3B/gC,EAAS4/B,EAAQ6B,aACbrpC,EAAG4mB,EAAO5mB,EACVpG,EAAGgtB,EAAOhtB,IAIlB5N,EAAM08C,OAASY,EAAUtpC,GAAK4mB,EAAO5mB,EAAI4H,EAAO5H,GAChDhU,EAAM28C,OAASW,EAAU1vC,GAAKgtB,EAAOhtB,EAAIgO,EAAOhO,GAQpD,QAASwvC,GAAyB5B,EAASx7C,GACvC,GAEIu9C,GAAUC,EAAWC,EAAW5+B,EAFhC6+B,EAAOlC,EAAQmC,cAAgB39C,EAC/Bm8C,EAAYn8C,EAAMk8C,UAAYwB,EAAKxB,SAGvC,IAAIl8C,EAAMq3C,WAAakE,KAAiBY,EAAYyB,IAAoBF,EAAKH,WAAa36D,GAAY,CAClG,GAAI85D,GAAS18C,EAAM08C,OAASgB,EAAKhB,OAC7BC,EAAS38C,EAAM28C,OAASe,EAAKf,OAE7BvyD,EAAIyyD,EAAYV,EAAWO,EAAQC,EACvCa,GAAYpzD,EAAE4pB,EACdypC,EAAYrzD,EAAEwjB,EACd2vC,EAAYr5C,GAAI9Z,EAAE4pB,GAAK9P,GAAI9Z,EAAEwjB,GAAMxjB,EAAE4pB,EAAI5pB,EAAEwjB,EAC3CiR,EAAY49B,EAAaC,EAAQC,GAEjCnB,EAAQmC,aAAe39C,MAGvBu9C,GAAWG,EAAKH,SAChBC,EAAYE,EAAKF,UACjBC,EAAYC,EAAKD,UACjB5+B,EAAY6+B,EAAK7+B,SAGrB7e,GAAMu9C,SAAWA,EACjBv9C,EAAMw9C,UAAYA,EAClBx9C,EAAMy9C,UAAYA,EAClBz9C,EAAM6e,UAAYA,EAQtB,QAASi9B,GAAqB97C,GAK1B,IAFA,GAAIi7C,MACAn4D,EAAI,EACDA,EAAIkd,EAAMi7C,SAASt4D,QACtBs4D,EAASn4D,IACLozC,QAASva,GAAM3b,EAAMi7C,SAASn4D,GAAGozC,SACjCG,QAAS1a,GAAM3b,EAAMi7C,SAASn4D,GAAGuzC,UAErCvzC,GAGJ,QACIo5D,UAAWx2C,KACXu1C,SAAUA,EACVrgB,OAAQqhB,EAAUhB,GAClByB,OAAQ18C,EAAM08C,OACdC,OAAQ38C,EAAM28C,QAStB,QAASV,GAAUhB,GACf,GAAIW,GAAiBX,EAASt4D,MAG9B,IAAuB,IAAnBi5D,EACA,OACI5nC,EAAG2H,GAAMs/B,EAAS,GAAG/kB,SACrBtoB,EAAG+N,GAAMs/B,EAAS,GAAG5kB,SAK7B,KADA,GAAIriB,GAAI,EAAGpG,EAAI,EAAG9qB,EAAI,EACfA,EAAI84D,GACP5nC,GAAKinC,EAASn4D,GAAGozC,QACjBtoB,GAAKqtC,EAASn4D,GAAGuzC,QACjBvzC,GAGJ,QACIkxB,EAAG2H,GAAM3H,EAAI4nC,GACbhuC,EAAG+N,GAAM/N,EAAIguC,IAWrB,QAASiB,GAAYV,EAAWnoC,EAAGpG,GAC/B,OACIoG,EAAGA,EAAImoC,GAAa,EACpBvuC,EAAGA,EAAIuuC,GAAa,GAU5B,QAASM,GAAazoC,EAAGpG,GACrB,MAAIoG,KAAMpG,EACCiwC,GAGP35C,GAAI8P,IAAM9P,GAAI0J,GACPoG,EAAI,EAAI8pC,GAAiBC,GAE7BnwC,EAAI,EAAIowC,GAAeC,GAUlC,QAAS3B,GAAYnyC,EAAIC,EAAInnB,GACpBA,IACDA,EAAQi7D,GAEZ,IAAIlqC,GAAI5J,EAAGnnB,EAAM,IAAMknB,EAAGlnB,EAAM,IAC5B2qB,EAAIxD,EAAGnnB,EAAM,IAAMknB,EAAGlnB,EAAM,GAEhC,OAAOzB,MAAKorD,KAAM54B,EAAIA,EAAMpG,EAAIA,GAUpC,QAASyuC,GAASlyC,EAAIC,EAAInnB,GACjBA,IACDA,EAAQi7D,GAEZ,IAAIlqC,GAAI5J,EAAGnnB,EAAM,IAAMknB,EAAGlnB,EAAM,IAC5B2qB,EAAIxD,EAAGnnB,EAAM,IAAMknB,EAAGlnB,EAAM,GAChC,OAA0B,KAAnBzB,KAAK28D,MAAMvwC,EAAGoG,GAAWxyB,KAAKomD,GASzC,QAASsV,GAAYlZ,EAAOC,GACxB,MAAOoY,GAASpY,EAAI,GAAIA,EAAI,GAAIma,IAAmB/B,EAASrY,EAAM,GAAIA,EAAM,GAAIoa,IAUpF,QAASpB,GAAShZ,EAAOC,GACrB,MAAOqY,GAAYrY,EAAI,GAAIA,EAAI,GAAIma,IAAmB9B,EAAYtY,EAAM,GAAIA,EAAM,GAAIoa,IAiB1F,QAAStD,KACL/7D,KAAKs/D,KAAOC,GACZv/D,KAAKw/D,MAAQC,GAEbz/D,KAAK0/D,SAAU,EAEf1E,EAAM1kD,MAAMtW,KAAM2D,WAoEtB,QAAS+3D,KACL17D,KAAKs/D,KAAOK,GACZ3/D,KAAKw/D,MAAQI,GAEb5E,EAAM1kD,MAAMtW,KAAM2D,WAElB3D,KAAKga,MAASha,KAAKi7D,QAAQwB,QAAQoD,iBAoEvC,QAASC,KACL9/D,KAAK+/D,SAAWC,GAChBhgE,KAAKw/D,MAAQS,GACbjgE,KAAKkgE,SAAU,EAEflF,EAAM1kD,MAAMtW,KAAM2D,WAsCtB,QAASw8D,GAAuB/E,EAAIn2D,GAChC,GAAIm7D,GAAMh5D,EAAQg0D,EAAGiF,SACjBC,EAAUl5D,EAAQg0D,EAAGmF,eAMzB,OAJIt7D,IAAQs3D,GAAYC,MACpB4D,EAAMjG,EAAYiG,EAAIv5D,OAAOy5D,GAAU,cAAc,KAGjDF,EAAKE,GAiBjB,QAAS1E,KACL57D,KAAK+/D,SAAWS,GAChBxgE,KAAKygE,aAELzF,EAAM1kD,MAAMtW,KAAM2D,WA0BtB,QAAS+8D,GAAWtF,EAAIn2D,GACpB,GAAI07D,GAAav5D,EAAQg0D,EAAGiF,SACxBI,EAAYzgE,KAAKygE,SAGrB,IAAIx7D,GAAQo3D,GAAcuE,KAAqC,IAAtBD,EAAW/8D,OAEhD,MADA68D,GAAUE,EAAW,GAAGE,aAAc,GAC9BF,EAAYA,EAGxB,IAAI58D,GACAqzC,EACAmpB,EAAiBn5D,EAAQg0D,EAAGmF,gBAC5BO,KACAn4D,EAAS3I,KAAK2I,MAQlB,IALAyuC,EAAgBupB,EAAW75D,OAAO,SAASi6D,GACvC,MAAOh4D,GAAUg4D,EAAMp4D,OAAQA,KAI/B1D,IAASo3D,GAET,IADAt4D,EAAI,EACGA,EAAIqzC,EAAcxzC,QACrB68D,EAAUrpB,EAAcrzC,GAAG88D,aAAc,EACzC98D,GAMR,KADAA,EAAI,EACGA,EAAIw8D,EAAe38D,QAClB68D,EAAUF,EAAex8D,GAAG88D,aAC5BC,EAAqBj8D,KAAK07D,EAAex8D,IAIzCkB,GAAQs3D,GAAYC,WACbiE,GAAUF,EAAex8D,GAAG88D,YAEvC98D,GAGJ,OAAK+8D,GAAqBl9D,QAMtBu2D,EAAY/iB,EAAcvwC,OAAOi6D,GAAuB,cAAc,GACtEA,OAPJ,GAwBJ,QAAShF,KACLd,EAAM1kD,MAAMtW,KAAM2D,UAElB,IAAI00D,GAAUO,EAAO54D,KAAKq4D,QAASr4D,KACnCA,MAAK+gE,MAAQ,GAAInF,GAAW57D,KAAKi7D,QAAS5C,GAC1Cr4D,KAAKghE,MAAQ,GAAIjF,GAAW/7D,KAAKi7D,QAAS5C,GAE1Cr4D,KAAKihE,aAAe,KACpBjhE,KAAKkhE,eAqCT,QAASC,GAAc7I,EAAW8I,GAC1B9I,EAAY+D,IACZr8D,KAAKihE,aAAeG,EAAUhF,gBAAgB,GAAGyE,WACjDQ,EAAa9gE,KAAKP,KAAMohE,IACjB9I,GAAaiE,GAAYC,KAChC6E,EAAa9gE,KAAKP,KAAMohE,GAIhC,QAASC,GAAaD,GAClB,GAAIL,GAAQK,EAAUhF,gBAAgB,EAEtC,IAAI2E,EAAMF,aAAe7gE,KAAKihE,aAAc,CACxC,GAAIK,IAAarsC,EAAG8rC,EAAM5pB,QAAStoB,EAAGkyC,EAAMzpB,QAC5Ct3C,MAAKkhE,YAAYr8D,KAAKy8D,EACtB,IAAIC,GAAMvhE,KAAKkhE,YACXM,EAAkB,WAClB,GAAIz9D,GAAIw9D,EAAI38D,QAAQ08D,EAChBv9D,IAAK,GACLw9D,EAAIxpC,OAAOh0B,EAAG,GAGtBwxC,YAAWisB,EAAiBC,KAIpC,QAASC,GAAiBN,GAEtB,IAAK,GADDnsC,GAAImsC,EAAU7J,SAASpgB,QAAStoB,EAAIuyC,EAAU7J,SAASjgB,QAClDvzC,EAAI,EAAGA,EAAI/D,KAAKkhE,YAAYt9D,OAAQG,IAAK,CAC9C,GAAIkJ,GAAIjN,KAAKkhE,YAAYn9D,GACrB+5C,EAAKr7C,KAAK0iB,IAAI8P,EAAIhoB,EAAEgoB,GAAI8oB,EAAKt7C,KAAK0iB,IAAI0J,EAAI5hB,EAAE4hB,EAChD,IAAIivB,GAAM6jB,IAAkB5jB,GAAM4jB,GAC9B,OAAO,EAGf,OAAO,EAsBX,QAASC,GAAY3G,EAAS14D,GAC1BvC,KAAKi7D,QAAUA,EACfj7D,KAAK+e,IAAIxc,GAmGb,QAASs/D,GAAkBC,GAEvB,GAAI/H,EAAM+H,EAASC,IACf,MAAOA,GAGX,IAAIC,GAAUjI,EAAM+H,EAASG,IACzBC,EAAUnI,EAAM+H,EAASK,GAM7B,OAAIH,IAAWE,EACJH,GAIPC,GAAWE,EACJF,EAAUC,GAAqBE,GAItCpI,EAAM+H,EAASM,IACRA,GAGJC,GA2DX,QAASC,GAAWt0D,GAChBhO,KAAKgO,QAAUwgD,MAAWxuD,KAAKm4B,SAAUnqB,OAEzChO,KAAKK,GAAKo6D,IAEVz6D,KAAKi7D,QAAU,KAGfj7D,KAAKgO,QAAQqtD,OAAS5B,EAAYz5D,KAAKgO,QAAQqtD,QAAQ,GAEvDr7D,KAAKuiE,MAAQC,GAEbxiE,KAAKyiE,gBACLziE,KAAK0iE,eAqOT,QAASC,IAASJ,GACd,MAAIA,GAAQK,GACD,SACAL,EAAQM,GACR,MACAN,EAAQO,GACR,OACAP,EAAQQ,GACR,QAEJ,GAQX,QAASC,IAAaljC,GAClB,MAAIA,IAAao/B,GACN,OACAp/B,GAAam/B,GACb,KACAn/B,GAAai/B,GACb,OACAj/B,GAAak/B,GACb,QAEJ,GASX,QAASiE,IAA6BC,EAAiBC,GACnD,GAAIlI,GAAUkI,EAAWlI,OACzB,OAAIA,GACOA,EAAQxjD,IAAIyrD,GAEhBA,EAQX,QAASE,MACLd,EAAWhsD,MAAMtW,KAAM2D,WA6D3B,QAAS0/D,MACLD,GAAe9sD,MAAMtW,KAAM2D,WAE3B3D,KAAKsjE,GAAK,KACVtjE,KAAKujE,GAAK,KA4Ed,QAASC,MACLJ,GAAe9sD,MAAMtW,KAAM2D,WAsC/B,QAAS8/D,MACLnB,EAAWhsD,MAAMtW,KAAM2D,WAEvB3D,KAAK0jE,OAAS,KACd1jE,KAAK2jE,OAAS,KAmElB,QAASC,MACLR,GAAe9sD,MAAMtW,KAAM2D,WA8B/B,QAASkgE,MACLT,GAAe9sD,MAAMtW,KAAM2D,WA2D/B,QAASmgE,MACLxB,EAAWhsD,MAAMtW,KAAM2D,WAIvB3D,KAAK+jE,OAAQ,EACb/jE,KAAKgkE,SAAU,EAEfhkE,KAAK0jE,OAAS,KACd1jE,KAAK2jE,OAAS,KACd3jE,KAAKu0C,MAAQ,EAqGjB,QAASrF,IAAOrnC,EAASmG,GAGrB,MAFAA,GAAUA,MACVA,EAAQi2D,YAAcxK,EAAYzrD,EAAQi2D,YAAa/0B,GAAO/W,SAAS+rC,QAChE,GAAIlM,IAAQnwD,EAASmG,GAiIhC,QAASgqD,IAAQnwD,EAASmG,GACtBhO,KAAKgO,QAAUwgD,MAAWtf,GAAO/W,SAAUnqB,OAE3ChO,KAAKgO,QAAQktD,YAAcl7D,KAAKgO,QAAQktD,aAAerzD,EAEvD7H,KAAKmkE,YACLnkE,KAAKy8D,WACLz8D,KAAKikE,eACLjkE,KAAKokE,eAELpkE,KAAK6H,QAAUA,EACf7H,KAAKihB,MAAQs6C,EAAoBv7D,MACjCA,KAAKqkE,YAAc,GAAIzC,GAAY5hE,KAAMA,KAAKgO,QAAQq2D,aAEtDC,GAAetkE,MAAM,GAErB84D,EAAK94D,KAAKgO,QAAQi2D,YAAa,SAASr1D,GACpC,GAAIu0D,GAAanjE,KAAK2wB,IAAI,GAAK/hB,GAAK,GAAIA,EAAK,IAC7CA,GAAK,IAAMu0D,EAAWoB,cAAc31D,EAAK,IACzCA,EAAK,IAAMu0D,EAAWqB,eAAe51D,EAAK,KAC3C5O,MA4PP,QAASskE,IAAerJ,EAAStqC,GAC7B,GAAI9oB,GAAUozD,EAAQpzD,OACtB,IAAKA,EAAQwE,MAAb,CAGA,GAAIhJ,EACJy1D,GAAKmC,EAAQjtD,QAAQy2D,SAAU,SAASliE,EAAO0S,GAC3C5R,EAAOg3D,EAASxyD,EAAQwE,MAAO4I,GAC3B0b,GACAsqC,EAAQmJ,YAAY/gE,GAAQwE,EAAQwE,MAAMhJ,GAC1CwE,EAAQwE,MAAMhJ,GAAQd,GAEtBsF,EAAQwE,MAAMhJ,GAAQ43D,EAAQmJ,YAAY/gE,IAAS,KAGtDstB,IACDsqC,EAAQmJ,iBAShB,QAASM,IAAgBn8D,EAAOmsB,GAC5B,GAAIiwC,GAAez0D,EAAS00D,YAAY,QACxCD,GAAaE,UAAUt8D,GAAO,GAAM,GACpCo8D,EAAaG,QAAUpwC,EACvBA,EAAK/rB,OAAOo8D,cAAcJ,GAngF9B,GA+FInW,IA/FAgM,IAAmB,GAAI,SAAU,MAAO,KAAM,KAAM,KACpDwK,GAAe90D,EAASC,cAAc,OAEtCqpD,GAAgB,WAEhB58B,GAAQn6B,KAAKm6B,MACbzX,GAAM1iB,KAAK0iB,IACXwB,GAAM9jB,KAAK8jB,GA0FX6nC,IADyB,kBAAlB/pD,QAAO+pD,OACL,SAAgB7lD,GACrB,GAAIA,IAAW9E,GAAwB,OAAX8E,EACxB,KAAM,IAAIpE,WAAU,6CAIxB,KAAK,GADDqiB,GAASniB,OAAOkE,GACXoK,EAAQ,EAAGA,EAAQpP,UAAUC,OAAQmP,IAAS,CACnD,GAAIwC,GAAS5R,UAAUoP,EACvB,IAAIwC,IAAW1R,GAAwB,OAAX0R,EACxB,IAAK,GAAI0vD,KAAW1vD,GACZA,EAAOjS,eAAe2hE,KACtBr+C,EAAOq+C,GAAW1vD,EAAO0vD,IAKzC,MAAOr+C,IAGFniB,OAAO+pD,MAWpB,IAAI5tD,IAAS6kB,EAAU,SAAgBy/C,EAAMxsD,EAAKysD,GAG9C,IAFA,GAAIpxD,GAAOtP,OAAOsP,KAAK2E,GACnB3U,EAAI,EACDA,EAAIgQ,EAAKnQ,UACPuhE,GAAUA,GAASD,EAAKnxD,EAAKhQ,MAAQF,KACtCqhE,EAAKnxD,EAAKhQ,IAAM2U,EAAI3E,EAAKhQ,KAE7BA,GAEJ,OAAOmhE,IACR,SAAU,iBASTC,GAAQ1/C,EAAU,SAAey/C,EAAMxsD,GACvC,MAAO9X,IAAOskE,EAAMxsD,GAAK,IAC1B,QAAS,iBAiNRgiD,GAAY,EAeZ0K,GAAe,wCAEfvJ,GAAiB,gBAAkBrzD,GACnCizD,GAAyBpB,EAAS7xD,EAAQ,kBAAoB3E,EAC9D83D,GAAqBE,IAAiBuJ,GAAal4D,KAAKjF,UAAUC,WAOlE22D,GAAmB,GAEnBxC,GAAc,EACduE,GAAa,EACbrE,GAAY,EACZC,GAAe,EAEfsC,GAAiB,EACjBC,GAAiB,EACjBC,GAAkB,EAClBC,GAAe,EACfC,GAAiB,GAEjBmG,GAAuBtG,GAAiBC,GACxCsG,GAAqBrG,GAAeC,GACpCqG,GAAgBF,GAAuBC,GAEvCnG,IAAY,IAAK,KACjBE,IAAmB,UAAW,UA4BlCrE,GAAM3oD,WAKFgmD,QAAS,aAKTiD,KAAM,WACFt7D,KAAKs/D,MAAQ1F,EAAkB55D,KAAK6H,QAAS7H,KAAKs/D,KAAMt/D,KAAKm7D,YAC7Dn7D,KAAK+/D,UAAYnG,EAAkB55D,KAAK2I,OAAQ3I,KAAK+/D,SAAU//D,KAAKm7D,YACpEn7D,KAAKw/D,OAAS5F,EAAkBe,EAAoB36D,KAAK6H,SAAU7H,KAAKw/D,MAAOx/D,KAAKm7D,aAMxF7pB,QAAS,WACLtxC,KAAKs/D,MAAQxF,EAAqB95D,KAAK6H,QAAS7H,KAAKs/D,KAAMt/D,KAAKm7D,YAChEn7D,KAAK+/D,UAAYjG,EAAqB95D,KAAK2I,OAAQ3I,KAAK+/D,SAAU//D,KAAKm7D,YACvEn7D,KAAKw/D,OAAS1F,EAAqBa,EAAoB36D,KAAK6H,SAAU7H,KAAKw/D,MAAOx/D,KAAKm7D,aA4T/F,IAAIqK,KACAC,UAAWpJ,GACXqJ,UAAW9E,GACX+E,QAASpJ,IAGTgD,GAAuB,YACvBE,GAAsB,mBAgB1BxG,GAAQ8C,EAAYf,GAKhB3C,QAAS,SAAmB+C,GACxB,GAAI9C,GAAYkN,GAAgBpK,EAAGn2D,KAG/BqzD,GAAY+D,IAA6B,IAAdjB,EAAG7Q,SAC9BvqD,KAAK0/D,SAAU,GAGfpH,EAAYsI,IAA2B,IAAbxF,EAAG9Q,QAC7BgO,EAAYiE,IAIXv8D,KAAK0/D,UAINpH,EAAYiE,KACZv8D,KAAK0/D,SAAU,GAGnB1/D,KAAKmH,SAASnH,KAAKi7D,QAAS3C,GACxB4D,UAAWd,GACXgB,iBAAkBhB,GAClBjD,YAvbW,QAwbXZ,SAAU6D,OAKtB,IAAIwK,KACAC,YAAaxJ,GACbyJ,YAAalF,GACbmF,UAAWxJ,GACXyJ,cAAexJ,GACfyJ,WAAYzJ,IAIZ0J,IACAC,EAzcmB,QA0cnBC,EAzciB,MA0cjBC,EAzcmB,QA0cnBC,EAzcoB,UA4cpB3G,GAAyB,cACzBC,GAAwB,qCAGxBp3D,GAAO+9D,iBAAmB/9D,EAAOg+D,eACjC7G,GAAyB,gBACzBC,GAAwB,6CAiB5B3G,EAAQyC,EAAmBV,GAKvB3C,QAAS,SAAmB+C,GACxB,GAAIphD,GAAQha,KAAKga,MACbysD,GAAgB,EAEhBC,EAAsBtL,EAAGn2D,KAAKgjB,cAAcre,QAAQ,KAAM,IAC1D0uD,EAAYsN,GAAkBc,GAC9BvO,EAAc+N,GAAuB9K,EAAGjD,cAAgBiD,EAAGjD,YAE3DwO,EAnfW,SAmfAxO,EAGXyO,EAAa3M,EAAQjgD,EAAOohD,EAAGyL,UAAW,YAG1CvO,GAAY+D,KAA8B,IAAdjB,EAAG7Q,QAAgBoc,GAC3CC,EAAa,IACb5sD,EAAMnV,KAAKu2D,GACXwL,EAAa5sD,EAAMpW,OAAS,GAEzB00D,GAAaiE,GAAYC,MAChCiK,GAAgB,GAIhBG,EAAa,IAKjB5sD,EAAM4sD,GAAcxL,EAEpBp7D,KAAKmH,SAASnH,KAAKi7D,QAAS3C,GACxB4D,SAAUliD,EACVoiD,iBAAkBhB,GAClBjD,YAAaA,EACbZ,SAAU6D,IAGVqL,GAEAzsD,EAAM+d,OAAO6uC,EAAY,MAKrC,IAAIE,KACAC,WAAY1K,GACZ2K,UAAWpG,GACXqG,SAAU1K,GACV2K,YAAa1K,IAGbwD,GAA6B,aAC7BC,GAA6B,2CAejChH,GAAQ6G,EAAkB9E,GACtB3C,QAAS,SAAmB+C,GACxB,GAAIn2D,GAAO6hE,GAAuB1L,EAAGn2D,KAOrC,IAJIA,IAASo3D,KACTr8D,KAAKkgE,SAAU,GAGdlgE,KAAKkgE,QAAV;cAIA,GAAIG,GAAUF,EAAuB5/D,KAAKP,KAAMo7D,EAAIn2D,EAGhDA,IAAQs3D,GAAYC,KAAiB6D,EAAQ,GAAGz8D,OAASy8D,EAAQ,GAAGz8D,QAAW,IAC/E5D,KAAKkgE,SAAU,GAGnBlgE,KAAKmH,SAASnH,KAAKi7D,QAASh2D,GACxBi3D,SAAUmE,EAAQ,GAClBjE,gBAAiBiE,EAAQ,GACzBlI,YAtkBW,QAukBXZ,SAAU6D,OAsBtB,IAAI+L,KACAJ,WAAY1K,GACZ2K,UAAWpG,GACXqG,SAAU1K,GACV2K,YAAa1K,IAGbgE,GAAsB,2CAc1BvH,GAAQ2C,EAAYZ,GAChB3C,QAAS,SAAoB+C,GACzB,GAAIn2D,GAAOkiE,GAAgB/L,EAAGn2D,MAC1Bo7D,EAAUK,EAAWngE,KAAKP,KAAMo7D,EAAIn2D,EACnCo7D,IAILrgE,KAAKmH,SAASnH,KAAKi7D,QAASh2D,GACxBi3D,SAAUmE,EAAQ,GAClBjE,gBAAiBiE,EAAQ,GACzBlI,YA7nBW,QA8nBXZ,SAAU6D,MA4EtB,IAAIqG,IAAgB,KAChBE,GAAiB,EAarB1I,GAAQ6C,EAAiBd,GAOrB3C,QAAS,SAAoB4C,EAASmM,EAAYC,GAC9C,GAAIV,GAhuBW,SAguBAU,EAAUlP,YACrBmP,EA/tBW,SA+tBAD,EAAUlP,WAEzB,MAAImP,GAAWD,EAAUE,oBAAsBF,EAAUE,mBAAmBC,kBAA5E,CAKA,GAAIb,EACAxF,EAAc5gE,KAAKP,KAAMonE,EAAYC,OAClC,IAAIC,GAAW5F,EAAiBnhE,KAAKP,KAAMqnE,GAC9C,MAGJrnE,MAAKmH,SAAS8zD,EAASmM,EAAYC,KAMvC/1B,QAAS,WACLtxC,KAAK+gE,MAAMzvB,UACXtxC,KAAKghE,MAAM1vB,YA0CnB,IAAIm2B,IAAwBpN,EAAS2K,GAAa34D,MAAO,eACrDq7D,GAAsBD,KAA0B5jE,EAIhDw+D,GAAoB,OACpBD,GAA4B,eAC5BL,GAAoB,OACpBE,GAAqB,QACrBE,GAAqB,QACrBwF,GA4IJ,WACI,IAAKD,GACD,OAAO,CAEX,IAAIE,MACAC,EAAcr/D,EAAOs/D,KAAOt/D,EAAOs/D,IAAIC,QAO3C,QANC,OAAQ,eAAgB,QAAS,QAAS,cAAe,QAAQ7gE,QAAQ,SAASyQ,GAI/EiwD,EAASjwD,IAAOkwD,GAAcr/D,EAAOs/D,IAAIC,SAAS,eAAgBpwD,KAE/DiwD,IA1IXhG,GAAYvvD,WAKR0M,IAAK,SAASxc,GAzBS,WA2BfA,IACAA,EAAQvC,KAAKgoE,WAGbN,IAAuB1nE,KAAKi7D,QAAQpzD,QAAQwE,OAASs7D,GAAiBplE,KACtEvC,KAAKi7D,QAAQpzD,QAAQwE,MAAMo7D,IAAyBllE,GAExDvC,KAAK8hE,QAAUv/D,EAAM0lB,cAAc3b,QAMvC8lC,OAAQ,WACJpyC,KAAK+e,IAAI/e,KAAKi7D,QAAQjtD,QAAQq2D,cAOlC2D,QAAS,WACL,GAAIlG,KAMJ,OALAhJ,GAAK94D,KAAKi7D,QAAQgJ,YAAa,SAASd,GAChC5J,EAAS4J,EAAWn1D,QAAQqtD,QAAS8H,MACrCrB,EAAUA,EAAQj7D,OAAOs8D,EAAW8E,qBAGrCpG,EAAkBC,EAAQ/6D,KAAK,OAO1CmhE,gBAAiB,SAASjnD,GACtB,GAAIs2C,GAAWt2C,EAAMs2C,SACjBz3B,EAAY7e,EAAMw8C,eAGtB,IAAIz9D,KAAKi7D,QAAQwB,QAAQ0L,UAErB,WADA5Q,GAASjvD,gBAIb,IAAIw5D,GAAU9hE,KAAK8hE,QACfsG,EAAUrO,EAAM+H,EAASC,MAAuB4F,GAAiB5F,IACjEG,EAAUnI,EAAM+H,EAASK,MAAwBwF,GAAiBxF,IAClEH,EAAUjI,EAAM+H,EAASG,MAAwB0F,GAAiB1F,GAEtE,IAAImG,EAAS,CAGT,GAAIC,GAAyC,IAA1BpnD,EAAMi7C,SAASt4D,OAC9B0kE,EAAgBrnD,EAAMu5B,SAAW,EACjC+tB,EAAiBtnD,EAAMm8C,UAAY,GAEvC,IAAIiL,GAAgBC,GAAiBC,EACjC,OAIR,MAAIvG,IAAWE,MAAf,GAKIkG,GACClG,GAAWpiC,EAAYulC,IACvBrD,GAAWliC,EAAYwlC,GACjBtlE,KAAKwoE,WAAWjR,OAH3B,IAWJiR,WAAY,SAASjR,GACjBv3D,KAAKi7D,QAAQwB,QAAQ0L,WAAY,EACjC5Q,EAASjvD,kBAiFjB,IAAIk6D,IAAiB,EACjBO,GAAc,EACdD,GAAgB,EAChBD,GAAc,EACd4F,GAAmB5F,GACnBD,GAAkB,EAyBtBN,GAAWjwD,WAKP8lB,YAOApZ,IAAK,SAAS/Q,GAKV,MAJAwgD,IAAOxuD,KAAKgO,QAASA,GAGrBhO,KAAKi7D,SAAWj7D,KAAKi7D,QAAQoJ,YAAYjyB,SAClCpyC,MAQXukE,cAAe,SAASrB,GACpB,GAAIrK,EAAeqK,EAAiB,gBAAiBljE,MACjD,MAAOA,KAGX,IAAIyiE,GAAeziE,KAAKyiE,YAMxB,OALAS,GAAkBD,GAA6BC,EAAiBljE,MAC3DyiE,EAAaS,EAAgB7iE,MAC9BoiE,EAAaS,EAAgB7iE,IAAM6iE,EACnCA,EAAgBqB,cAAcvkE,OAE3BA,MAQX0oE,kBAAmB,SAASxF,GACxB,MAAIrK,GAAeqK,EAAiB,oBAAqBljE,MAC9CA,MAGXkjE,EAAkBD,GAA6BC,EAAiBljE,YACzDA,MAAKyiE,aAAaS,EAAgB7iE,IAClCL,OAQXwkE,eAAgB,SAAStB,GACrB,GAAIrK,EAAeqK,EAAiB,iBAAkBljE,MAClD,MAAOA,KAGX,IAAI0iE,GAAc1iE,KAAK0iE,WAMvB,OALAQ,GAAkBD,GAA6BC,EAAiBljE,OACjB,IAA3Ci6D,EAAQyI,EAAaQ,KACrBR,EAAY79D,KAAKq+D,GACjBA,EAAgBsB,eAAexkE,OAE5BA,MAQX2oE,mBAAoB,SAASzF,GACzB,GAAIrK,EAAeqK,EAAiB,qBAAsBljE,MACtD,MAAOA,KAGXkjE,GAAkBD,GAA6BC,EAAiBljE,KAChE,IAAI+S,GAAQknD,EAAQj6D,KAAK0iE,YAAaQ,EAItC,OAHInwD,IAAS,GACT/S,KAAK0iE,YAAY3qC,OAAOhlB,EAAO,GAE5B/S,MAOX4oE,mBAAoB,WAChB,MAAO5oE,MAAK0iE,YAAY9+D,OAAS,GAQrCilE,iBAAkB,SAAS3F,GACvB,QAASljE,KAAKyiE,aAAaS,EAAgB7iE,KAQ/C0rD,KAAM,SAAS9qC,GAIX,QAAS8qC,GAAKxjD,GACVoO,EAAKskD,QAAQlP,KAAKxjD,EAAO0Y,GAJ7B,GAAItK,GAAO3W,KACPuiE,EAAQviE,KAAKuiE,KAObA,GAAQM,IACR9W,EAAKp1C,EAAK3I,QAAQzF,MAAQo6D,GAASJ,IAGvCxW,EAAKp1C,EAAK3I,QAAQzF,OAEd0Y,EAAM6nD,iBACN/c,EAAK9qC,EAAM6nD,iBAIXvG,GAASM,IACT9W,EAAKp1C,EAAK3I,QAAQzF,MAAQo6D,GAASJ,KAU3CwG,QAAS,SAAS9nD,GACd,GAAIjhB,KAAKgpE,UACL,MAAOhpE,MAAK+rD,KAAK9qC,EAGrBjhB,MAAKuiE,MA7KM,IAoLfyG,QAAS,WAEL,IADA,GAAIjlE,GAAI,EACDA,EAAI/D,KAAK0iE,YAAY9+D,QAAQ,CAChC,KAAM5D,KAAK0iE,YAAY3+D,GAAGw+D,OAvLnB,GAuL2CC,KAC9C,OAAO,CAEXz+D,KAEJ,OAAO,GAOX44D,UAAW,SAAS0K,GAGhB,GAAI4B,GAAiBza,MAAW6Y,EAGhC,KAAK9N,EAASv5D,KAAKgO,QAAQqtD,QAASr7D,KAAMipE,IAGtC,MAFAjpE,MAAKkpE,aACLlpE,KAAKuiE,MA3ME,GAgNPviE,MAAKuiE,OAASkG,GAAmB7F,GAhN1B,MAiNP5iE,KAAKuiE,MAAQC,IAGjBxiE,KAAKuiE,MAAQviE,KAAKmpE,QAAQF,GAItBjpE,KAAKuiE,OAASQ,GAAcD,GAAgBD,GAAcD,KAC1D5iE,KAAK+oE,QAAQE,IAWrBE,QAAS,SAAS9B,KAOlBY,eAAgB,aAOhBiB,MAAO,cA8DXjQ,EAAQmK,GAAgBd,GAKpBnqC,UAKI+jC,SAAU,GASdkN,SAAU,SAASnoD,GACf,GAAIooD,GAAiBrpE,KAAKgO,QAAQkuD,QAClC,OAA0B,KAAnBmN,GAAwBpoD,EAAMi7C,SAASt4D,SAAWylE,GAS7DF,QAAS,SAASloD,GACd,GAAIshD,GAAQviE,KAAKuiE,MACbjK,EAAYr3C,EAAMq3C,UAElBgR,EAAe/G,GAASQ,GAAcD,IACtCngD,EAAU3iB,KAAKopE,SAASnoD,EAG5B,OAAIqoD,KAAiBhR,EAAYkE,KAAiB75C,GACvC4/C,EAAQK,GACR0G,GAAgB3mD,EACnB21C,EAAYiE,GACLgG,EAAQM,GACNN,EAAQQ,GAGdR,EAAQO,GAFJC,GA5VJ,MAiXnB9J,EAAQoK,GAAeD,IAKnBjrC,UACI5vB,MAAO,MACP69B,UAAW,GACX81B,SAAU,EACVp8B,UAAWylC,IAGf0C,eAAgB,WACZ,GAAInoC,GAAY9/B,KAAKgO,QAAQ8xB,UACzBgiC,IAOJ,OANIhiC,GAAYulC,IACZvD,EAAQj9D,KAAKs9D,IAEbriC,EAAYwlC,IACZxD,EAAQj9D,KAAKo9D,IAEVH,GAGXyH,cAAe,SAAStoD,GACpB,GAAIjT,GAAUhO,KAAKgO,QACfw7D,GAAW,EACXhvB,EAAWv5B,EAAMu5B,SACjB1a,EAAY7e,EAAM6e,UAClB7K,EAAIhU,EAAM08C,OACV9uC,EAAI5N,EAAM28C,MAed,OAZM99B,GAAY9xB,EAAQ8xB,YAClB9xB,EAAQ8xB,UAAYulC,IACpBvlC,EAAmB,IAAN7K,EAAW6pC,GAAkB7pC,EAAI,EAAK8pC,GAAiBC,GACpEwK,EAAWv0C,GAAKj1B,KAAKsjE,GACrB9oB,EAAW/3C,KAAK0iB,IAAIlE,EAAM08C,UAE1B79B,EAAmB,IAANjR,EAAWiwC,GAAkBjwC,EAAI,EAAKowC,GAAeC,GAClEsK,EAAW36C,GAAK7uB,KAAKujE,GACrB/oB,EAAW/3C,KAAK0iB,IAAIlE,EAAM28C,UAGlC38C,EAAM6e,UAAYA,EACX0pC,GAAYhvB,EAAWxsC,EAAQo4B,WAAatG,EAAY9xB,EAAQ8xB,WAG3EspC,SAAU,SAASnoD,GACf,MAAOmiD,IAAe/wD,UAAU+2D,SAAS7oE,KAAKP,KAAMihB,KAC/CjhB,KAAKuiE,MAAQQ,MAAkB/iE,KAAKuiE,MAAQQ,KAAgB/iE,KAAKupE,cAActoD,KAGxF8qC,KAAM,SAAS9qC,GAEXjhB,KAAKsjE,GAAKriD,EAAM08C,OAChB39D,KAAKujE,GAAKtiD,EAAM28C,MAEhB,IAAI99B,GAAYkjC,GAAa/hD,EAAM6e,UAE/BA,KACA7e,EAAM6nD,gBAAkB9oE,KAAKgO,QAAQzF,MAAQu3B,GAEjD9/B,KAAKs5D,OAAOvN,KAAKxrD,KAAKP,KAAMihB,MAcpCg4C,EAAQuK,GAAiBJ,IAKrBjrC,UACI5vB,MAAO,QACP69B,UAAW,EACX81B,SAAU,GAGd+L,eAAgB,WACZ,OAAQlG,KAGZqH,SAAU,SAASnoD,GACf,MAAOjhB,MAAKs5D,OAAO8P,SAAS7oE,KAAKP,KAAMihB,KAClCxe,KAAK0iB,IAAIlE,EAAMze,MAAQ,GAAKxC,KAAKgO,QAAQo4B,WAAapmC,KAAKuiE,MAAQQ,KAG5EhX,KAAM,SAAS9qC,GACX,GAAoB,IAAhBA,EAAMze,MAAa,CACnB,GAAIinE,GAAQxoD,EAAMze,MAAQ,EAAI,KAAO,KACrCye,GAAM6nD,gBAAkB9oE,KAAKgO,QAAQzF,MAAQkhE,EAEjDzpE,KAAKs5D,OAAOvN,KAAKxrD,KAAKP,KAAMihB,MAiBpCg4C,EAAQwK,GAAiBnB,GAKrBnqC,UACI5vB,MAAO,QACP2zD,SAAU,EACV57B,KAAM,IACN8F,UAAW,GAGf6hC,eAAgB,WACZ,OAAQ5F,KAGZ8G,QAAS,SAASloD,GACd,GAAIjT,GAAUhO,KAAKgO,QACf07D,EAAgBzoD,EAAMi7C,SAASt4D,SAAWoK,EAAQkuD,SAClDyN,EAAgB1oD,EAAMu5B,SAAWxsC,EAAQo4B,UACzCwjC,EAAY3oD,EAAMm8C,UAAYpvD,EAAQsyB,IAM1C,IAJAtgC,KAAK2jE,OAAS1iD,GAIT0oD,IAAkBD,GAAkBzoD,EAAMq3C,WAAaiE,GAAYC,MAAkBoN,EACtF5pE,KAAKkpE,YACF,IAAIjoD,EAAMq3C,UAAY+D,GACzBr8D,KAAKkpE,QACLlpE,KAAK0jE,OAAShL,EAAkB,WAC5B14D,KAAKuiE,MAAQkG,GACbzoE,KAAK+oE,WACN/6D,EAAQsyB,KAAMtgC,UACd,IAAIihB,EAAMq3C,UAAYiE,GACzB,MAAOkM,GAEX,OA7gBW,KAghBfS,MAAO,WACH5zB,aAAat1C,KAAK0jE,SAGtB3X,KAAM,SAAS9qC,GACPjhB,KAAKuiE,QAAUkG,KAIfxnD,GAAUA,EAAMq3C,UAAYiE,GAC5Bv8D,KAAKi7D,QAAQlP,KAAK/rD,KAAKgO,QAAQzF,MAAQ,KAAM0Y,IAE7CjhB,KAAK2jE,OAAOxG,UAAYx2C,KACxB3mB,KAAKi7D,QAAQlP,KAAK/rD,KAAKgO,QAAQzF,MAAOvI,KAAK2jE,aAevD1K,EAAQ2K,GAAkBR,IAKtBjrC,UACI5vB,MAAO,SACP69B,UAAW,EACX81B,SAAU,GAGd+L,eAAgB,WACZ,OAAQlG,KAGZqH,SAAU,SAASnoD,GACf,MAAOjhB,MAAKs5D,OAAO8P,SAAS7oE,KAAKP,KAAMihB,KAClCxe,KAAK0iB,IAAIlE,EAAMi9C,UAAYl+D,KAAKgO,QAAQo4B,WAAapmC,KAAKuiE,MAAQQ,OAc/E9J,EAAQ4K,GAAiBT,IAKrBjrC,UACI5vB,MAAO,QACP69B,UAAW,GACXo4B,SAAU,GACV1+B,UAAWulC,GAAuBC,GAClCpJ,SAAU,GAGd+L,eAAgB,WACZ,MAAO5E,IAAchxD,UAAU41D,eAAe1nE,KAAKP,OAGvDopE,SAAU,SAASnoD,GACf,GACIu9C,GADA1+B,EAAY9/B,KAAKgO,QAAQ8xB,SAW7B,OARIA,IAAaulC,GAAuBC,IACpC9G,EAAWv9C,EAAM48C,gBACV/9B,EAAYulC,GACnB7G,EAAWv9C,EAAM88C,iBACVj+B,EAAYwlC,KACnB9G,EAAWv9C,EAAM+8C,kBAGdh+D,KAAKs5D,OAAO8P,SAAS7oE,KAAKP,KAAMihB,IACnC6e,EAAY7e,EAAMw8C,iBAClBx8C,EAAMu5B,SAAWx6C,KAAKgO,QAAQo4B,WAC9BnlB,EAAMm9C,aAAep+D,KAAKgO,QAAQkuD,UAClC/2C,GAAIq5C,GAAYx+D,KAAKgO,QAAQwwD,UAAYv9C,EAAMq3C,UAAYiE,IAGnExQ,KAAM,SAAS9qC,GACX,GAAI6e,GAAYkjC,GAAa/hD,EAAMw8C,gBAC/B39B,IACA9/B,KAAKi7D,QAAQlP,KAAK/rD,KAAKgO,QAAQzF,MAAQu3B,EAAW7e,GAGtDjhB,KAAKi7D,QAAQlP,KAAK/rD,KAAKgO,QAAQzF,MAAO0Y,MA2B9Cg4C,EAAQ6K,GAAexB,GAKnBnqC,UACI5vB,MAAO,MACP2zD,SAAU,EACV2N,KAAM,EACNpY,SAAU,IACVnxB,KAAM,IACN8F,UAAW,EACX0jC,aAAc,IAGlB7B,eAAgB,WACZ,OAAQ7F,KAGZ+G,QAAS,SAASloD,GACd,GAAIjT,GAAUhO,KAAKgO,QAEf07D,EAAgBzoD,EAAMi7C,SAASt4D,SAAWoK,EAAQkuD,SAClDyN,EAAgB1oD,EAAMu5B,SAAWxsC,EAAQo4B,UACzC2jC,EAAiB9oD,EAAMm8C,UAAYpvD,EAAQsyB,IAI/C,IAFAtgC,KAAKkpE,QAEAjoD,EAAMq3C,UAAY+D,IAAgC,IAAfr8D,KAAKu0C,MACzC,MAAOv0C,MAAKgqE,aAKhB,IAAIL,GAAiBI,GAAkBL,EAAe,CAClD,GAAIzoD,EAAMq3C,WAAaiE,GACnB,MAAOv8D,MAAKgqE,aAGhB,IAAIC,IAAgBjqE,KAAK+jE,OAAS9iD,EAAMk8C,UAAYn9D,KAAK+jE,MAAQ/1D,EAAQyjD,SACrEyY,GAAiBlqE,KAAKgkE,SAAWzG,EAAYv9D,KAAKgkE,QAAS/iD,EAAM46B,QAAU7tC,EAAQ87D,YAEvF9pE,MAAK+jE,MAAQ9iD,EAAMk8C,UACnBn9D,KAAKgkE,QAAU/iD,EAAM46B,OAEhBquB,GAAkBD,EAGnBjqE,KAAKu0C,OAAS,EAFdv0C,KAAKu0C,MAAQ,EAKjBv0C,KAAK2jE,OAAS1iD,CAKd,IAAiB,IADFjhB,KAAKu0C,MAAQvmC,EAAQ67D,KAIhC,MAAK7pE,MAAK4oE,sBAGN5oE,KAAK0jE,OAAShL,EAAkB,WAC5B14D,KAAKuiE,MAAQkG,GACbzoE,KAAK+oE,WACN/6D,EAAQyjD,SAAUzxD,MACd+iE,IANA0F,GAUnB,MAttBW,KAytBfuB,YAAa,WAIT,MAHAhqE,MAAK0jE,OAAShL,EAAkB,WAC5B14D,KAAKuiE,MA3tBE,IA4tBRviE,KAAKgO,QAAQyjD,SAAUzxD,MA5tBf,IAguBfkpE,MAAO,WACH5zB,aAAat1C,KAAK0jE,SAGtB3X,KAAM,WACE/rD,KAAKuiE,OAASkG,KACdzoE,KAAK2jE,OAAOwG,SAAWnqE,KAAKu0C,MAC5Bv0C,KAAKi7D,QAAQlP,KAAK/rD,KAAKgO,QAAQzF,MAAOvI,KAAK2jE,YAoBvDz0B,GAAOk7B,QAAU,QAMjBl7B,GAAO/W,UAOHkyC,WAAW,EAQXhG,YAl9BuB,UAw9BvBhJ,QAAQ,EASRH,YAAa,KAObM,WAAY,KAOZ0I,SAEKN,IAAmBvI,QAAQ,KAC3BmI,IAAkBnI,QAAQ,IAAS,YACnCwI,IAAkB/jC,UAAWulC,MAC7BhC,IAAgBvjC,UAAWulC,KAAwB,WACnDvB,KACAA,IAAgBv7D,MAAO,YAAashE,KAAM,IAAK,SAC/CpG,KAQLgB,UAMI6F,WAAY,OAOZC,YAAa,OASbC,aAAc,OAOdC,eAAgB,OAOhBC,SAAU,OAQVC,kBAAmB,iBAoC3B3S,IAAQ3lD,WAMJ0M,IAAK,SAAS/Q,GAaV,MAZAwgD,IAAOxuD,KAAKgO,QAASA,GAGjBA,EAAQq2D,aACRrkE,KAAKqkE,YAAYjyB,SAEjBpkC,EAAQktD,cAERl7D,KAAKihB,MAAMqwB,UACXtxC,KAAKihB,MAAMtY,OAASqF,EAAQktD,YAC5Bl7D,KAAKihB,MAAMq6C,QAERt7D,MASX6hD,KAAM,SAAS+oB,GACX5qE,KAAKy8D,QAAQhF,QAAUmT,EA5Db,EADP,GAsEPjO,UAAW,SAAS0K,GAChB,GAAI5K,GAAUz8D,KAAKy8D,OACnB,KAAIA,EAAQhF,QAAZ,CAKAz3D,KAAKqkE,YAAY6D,gBAAgBb,EAEjC,IAAIlE,GACAc,EAAcjkE,KAAKikE,YAKnB4G,EAAgBpO,EAAQoO,gBAIvBA,GAAkBA,GAAiBA,EAActI,MAAQkG,MAC1DoC,EAAgBpO,EAAQoO,cAAgB,KAI5C,KADA,GAAI9mE,GAAI,EACDA,EAAIkgE,EAAYrgE,QACnBu/D,EAAac,EAAYlgE,GA9FnB,IAsGF04D,EAAQhF,SACHoT,GAAiB1H,GAAc0H,IAChC1H,EAAW0F,iBAAiBgC,GAGhC1H,EAAW+F,QAFX/F,EAAWxG,UAAU0K,IAOpBwD,GAAiB1H,EAAWZ,OAASQ,GAAcD,GAAgBD,MACpEgI,EAAgBpO,EAAQoO,cAAgB1H,GAE5Cp/D,MASR0T,IAAK,SAAS0rD,GACV,GAAIA,YAAsBb,GACtB,MAAOa,EAIX,KAAK,GADDc,GAAcjkE,KAAKikE,YACdlgE,EAAI,EAAGA,EAAIkgE,EAAYrgE,OAAQG,IACpC,GAAIkgE,EAAYlgE,GAAGiK,QAAQzF,OAAS46D,EAChC,MAAOc,GAAYlgE,EAG3B,OAAO,OASX4sB,IAAK,SAASwyC,GACV,GAAItK,EAAesK,EAAY,MAAOnjE,MAClC,MAAOA,KAIX,IAAI8qE,GAAW9qE,KAAKyX,IAAI0rD,EAAWn1D,QAAQzF,MAS3C,OARIuiE,IACA9qE,KAAK4zC,OAAOk3B,GAGhB9qE,KAAKikE,YAAYp/D,KAAKs+D,GACtBA,EAAWlI,QAAUj7D,KAErBA,KAAKqkE,YAAYjyB,SACV+wB,GAQXvvB,OAAQ,SAASuvB,GACb,GAAItK,EAAesK,EAAY,SAAUnjE,MACrC,MAAOA,KAMX,IAHAmjE,EAAanjE,KAAKyX,IAAI0rD,GAGN,CACZ,GAAIc,GAAcjkE,KAAKikE,YACnBlxD,EAAQknD,EAAQgK,EAAad,IAElB,IAAXpwD,IACAkxD,EAAYlsC,OAAOhlB,EAAO,GAC1B/S,KAAKqkE,YAAYjyB,UAIzB,MAAOpyC,OASXuxC,GAAI,SAAS8lB,EAAQgB,GACjB,GAAIhB,IAAWxzD,GAGXw0D,IAAYx0D,EAAhB,CAIA,GAAIsgE,GAAWnkE,KAAKmkE,QAKpB,OAJArL,GAAKe,EAASxC,GAAS,SAAS9uD,GAC5B47D,EAAS57D,GAAS47D,EAAS57D,OAC3B47D,EAAS57D,GAAO1D,KAAKwzD,KAElBr4D,OASX0xC,IAAK,SAAS2lB,EAAQgB,GAClB,GAAIhB,IAAWxzD,EAAf,CAIA,GAAIsgE,GAAWnkE,KAAKmkE,QAQpB,OAPArL,GAAKe,EAASxC,GAAS,SAAS9uD,GACvB8vD,EAGD8L,EAAS57D,IAAU47D,EAAS57D,GAAOwvB,OAAOkiC,EAAQkK,EAAS57D,GAAQ8vD,GAAU,SAFtE8L,GAAS57D,KAKjBvI,OAQX+rD,KAAM,SAASxjD,EAAOmsB,GAEd10B,KAAKgO,QAAQq8D,WACb3F,GAAgBn8D,EAAOmsB,EAI3B,IAAIyvC,GAAWnkE,KAAKmkE,SAAS57D,IAAUvI,KAAKmkE,SAAS57D,GAAOoC,OAC5D,IAAKw5D,GAAaA,EAASvgE,OAA3B,CAIA8wB,EAAKzvB,KAAOsD,EACZmsB,EAAKpsB,eAAiB,WAClBosB,EAAK6iC,SAASjvD,iBAIlB,KADA,GAAIvE,GAAI,EACDA,EAAIogE,EAASvgE,QAChBugE,EAASpgE,GAAG2wB,GACZ3wB,MAQRutC,QAAS,WACLtxC,KAAK6H,SAAWy8D,GAAetkE,MAAM,GAErCA,KAAKmkE,YACLnkE,KAAKy8D,WACLz8D,KAAKihB,MAAMqwB,UACXtxC,KAAK6H,QAAU,OAyCvB2mD,GAAOtf,IACHmtB,YAAaA,GACbuE,WAAYA,GACZrE,UAAWA,GACXC,aAAcA,GAEdgG,eAAgBA,GAChBO,YAAaA,GACbD,cAAeA,GACfD,YAAaA,GACb4F,iBAAkBA,GAClB7F,gBAAiBA,GACjBmI,aAlrCe,GAorCfjM,eAAgBA,GAChBC,eAAgBA,GAChBC,gBAAiBA,GACjBC,aAAcA,GACdC,eAAgBA,GAChBmG,qBAAsBA,GACtBC,mBAAoBA,GACpBC,cAAeA,GAEfvN,QAASA,GACTgD,MAAOA,EACP4G,YAAaA,EAEbhG,WAAYA,EACZG,WAAYA,EACZL,kBAAmBA,EACnBI,gBAAiBA,EACjBgE,iBAAkBA,EAElBwC,WAAYA,EACZc,eAAgBA,GAChB4H,IAAKlH,GACLmH,IAAK5H,GACL6H,MAAOrH,GACPsH,MAAO3H,GACP4H,OAAQxH,GACRyH,MAAO5H,GAEPlyB,GAAIqoB,EACJloB,IAAKooB,EACLhB,KAAMA,EACNqM,MAAOA,GACPvkE,OAAQA,GACR4tD,OAAQA,GACRyK,QAASA,EACTL,OAAQA,EACRyB,SAAUA,SAKsB,KAAX7xD,EAAyBA,EAA0B,mBAATmO,MAAuBA,SAC/Eu4B,OAASA,IAGdgoB,EAAgC,WAC9B,MAAOhoB,KACT3uC,KAAKX,EAASM,EAAqBN,EAASC,MAA2CgE,IAAchE,EAAOD,QAAUs3D,IAOzH1uD,OAAQ0H,WAKP,SAAUrQ,EAAQD,EAASM,GAE/B,GAAI82D,GAAgCC,EAA8BC,GAOjE,SAAUx3D,EAAMC,GAGXs3D,KAAmCD,EAAiC,MAAsPnzD,MAA3OqzD,EAA2E,kBAAnCF,GAAiDA,EAA+B1gD,MAAM1W,EAASq3D,GAAiCD,KAAiFn3D,EAAOD,QAAUs3D,IAU7Vl3D,EAAM,WAEN,QAASmvC,GAASnhC,GAChB,GAOIjK,GAPAuE,EAAiB0F,GAAWA,EAAQ1F,iBAAkB,EAEtD8tC,EAAYpoC,GAAWA,EAAQooC,WAAa5tC,OAE5C8iE,KACAC,GAAUC,WAAYC,UACtBpqE,IAIJ,KAAK0C,EAAI,GAAIA,GAAK,IAAKA,IAAM1C,EAAMsB,OAAO+oE,aAAa3nE,KAAOywB,KAAWzwB,EAAI,GAAV,GAAewgC,OAAO,EAEzF,KAAKxgC,EAAI,GAAIA,GAAK,GAAIA,IAAM1C,EAAMsB,OAAO+oE,aAAa3nE,KAAOywB,KAAKzwB,EAAGwgC,OAAO,EAE5E,KAAKxgC,EAAI,EAAIA,GAAK,EAAKA,IAAM1C,EAAM,GAAK0C,IAAMywB,KAAK,GAAKzwB,EAAGwgC,OAAO,EAElE,KAAKxgC,EAAI,EAAIA,GAAK,GAAMA,IAAM1C,EAAM,IAAM0C,IAAMywB,KAAK,IAAMzwB,EAAGwgC,OAAO,EAErE,KAAKxgC,EAAI,EAAIA,GAAK,EAAKA,IAAM1C,EAAM,MAAQ0C,IAAMywB,KAAK,GAAKzwB,EAAGwgC,OAAO,EAGrEljC,GAAM,SAAWmzB,KAAK,IAAK+P,OAAO,GAClCljC,EAAM,SAAWmzB,KAAK,IAAK+P,OAAO,GAClCljC,EAAM,SAAWmzB,KAAK,IAAK+P,OAAO,GAClCljC,EAAM,SAAWmzB,KAAK,IAAK+P,OAAO,GAClCljC,EAAM,SAAWmzB,KAAK,IAAK+P,OAAO,GAElCljC,EAAY,MAAMmzB,KAAK,GAAI+P,OAAO,GAClCljC,EAAU,IAAQmzB,KAAK,GAAI+P,OAAO,GAClCljC,EAAa,OAAKmzB,KAAK,GAAI+P,OAAO,GAClCljC,EAAY,MAAMmzB,KAAK,GAAI+P,OAAO,GAElCljC,EAAa,OAAKmzB,KAAK,GAAI+P,OAAO,GAClCljC,EAAa,OAAKmzB,KAAK,GAAI+P,OAAO,GAClCljC,EAAa,OAAKmzB,KAAK,GAAI+P,UAAO1gC,IAClCxC,EAAW,KAAOmzB,KAAK,GAAI+P,OAAO,GAClCljC,EAAiB,WAAKmzB,KAAK,EAAG+P,OAAO,GACrCljC,EAAW,KAAWmzB,KAAK,EAAG+P,OAAO,GACrCljC,EAAY,MAAUmzB,KAAK,GAAI+P,OAAO,GACtCljC,EAAW,KAAWmzB,KAAK,GAAI+P,OAAO,GACtCljC,EAAc,QAAQmzB,KAAK,GAAI+P,OAAO,GACtCljC,EAAc,QAAQmzB,KAAK,GAAI+P,OAAO,GACtCljC,EAAgB,UAAMmzB,KAAK,GAAI+P,OAAO,GAEtCljC,EAAM,MAAYmzB,KAAK,IAAK+P,OAAO,GACnCljC,EAAM,MAAYmzB,KAAK,IAAK+P,OAAO,GACnCljC,EAAM,MAAYmzB,KAAK,IAAK+P,OAAO,GACnCljC,EAAM,MAAYmzB,KAAK,IAAK+P,OAAO,EAInC,IAAIonC,GAAO,SAASpjE,GAAQqjE,EAAYrjE,EAAM,YAC1CsjE,EAAK,SAAStjE,GAAQqjE,EAAYrjE,EAAM,UAGxCqjE,EAAc,SAASrjE,EAAMtD,GAC/B,OAAoCpB,KAAhC0nE,EAAOtmE,GAAMsD,EAAMujE,SAAwB,CAE7C,IAAK,GADDC,GAAQR,EAAOtmE,GAAMsD,EAAMujE,SACtB/nE,EAAI,EAAGA,EAAIgoE,EAAMnoE,OAAQG,QACTF,KAAnBkoE,EAAMhoE,GAAGwgC,MACXwnC,EAAMhoE,GAAG0D,GAAGc,GAEa,GAAlBwjE,EAAMhoE,GAAGwgC,OAAmC,GAAlBh8B,EAAMyjE,SACvCD,EAAMhoE,GAAG0D,GAAGc,GAEa,GAAlBwjE,EAAMhoE,GAAGwgC,OAAoC,GAAlBh8B,EAAMyjE,UACxCD,EAAMhoE,GAAG0D,GAAGc,EAIM,IAAlBD,GACFC,EAAMD,kBA4FZ,OAtFAgjE,GAAiB1T,KAAO,SAASrwD,EAAKJ,EAAUlC,GAI9C,OAHapB,KAAToB,IACFA,EAAO,eAEUpB,KAAfxC,EAAMkG,GACR,KAAM,IAAIlD,OAAM,oBAAsBkD,OAEF1D,KAAlC0nE,EAAOtmE,GAAM5D,EAAMkG,GAAKitB,QAC1B+2C,EAAOtmE,GAAM5D,EAAMkG,GAAKitB,UAE1B+2C,EAAOtmE,GAAM5D,EAAMkG,GAAKitB,MAAM3vB,MAAM4C,GAAGN,EAAUo9B,MAAMljC,EAAMkG,GAAKg9B,SAKpE+mC,EAAiBW,QAAU,SAAS9kE,EAAUlC,OAC/BpB,KAAToB,IACFA,EAAO,UAET,KAAK,GAAIsC,KAAOlG,GACVA,EAAMiC,eAAeiE,IACvB+jE,EAAiB1T,KAAKrwD,EAAIJ,EAASlC,IAMzCqmE,EAAiBY,OAAS,SAAS3jE,GACjC,IAAK,GAAIhB,KAAOlG,GACd,GAAIA,EAAMiC,eAAeiE,GAAM,CAC7B,GAAsB,GAAlBgB,EAAMyjE,UAAwC,GAApB3qE,EAAMkG,GAAKg9B,OAAiBh8B,EAAMujE,SAAWzqE,EAAMkG,GAAKitB,KACpF,MAAOjtB,EAEJ,IAAsB,GAAlBgB,EAAMyjE,UAAyC,GAApB3qE,EAAMkG,GAAKg9B,OAAkBh8B,EAAMujE,SAAWzqE,EAAMkG,GAAKitB,KAC3F,MAAOjtB,EAEJ,IAAIgB,EAAMujE,SAAWzqE,EAAMkG,GAAKitB,MAAe,SAAPjtB,EAC3C,MAAOA,GAIb,MAAO,wCAIT+jE,EAAiBa,OAAS,SAAS5kE,EAAKJ,EAAUlC,GAIhD,OAHapB,KAAToB,IACFA,EAAO,eAEUpB,KAAfxC,EAAMkG,GACR,KAAM,IAAIlD,OAAM,oBAAsBkD,EAExC,QAAiB1D,KAAbsD,EAAwB,CAC1B,GAAIilE,MACAL,EAAQR,EAAOtmE,GAAM5D,EAAMkG,GAAKitB,KACpC,QAAc3wB,KAAVkoE,EACF,IAAK,GAAIhoE,GAAI,EAAGA,EAAIgoE,EAAMnoE,OAAQG,IAC1BgoE,EAAMhoE,GAAG0D,IAAMN,GAAY4kE,EAAMhoE,GAAGwgC,OAASljC,EAAMkG,GAAKg9B,OAC5D6nC,EAAYvnE,KAAK0mE,EAAOtmE,GAAM5D,EAAMkG,GAAKitB,MAAMzwB,GAIrDwnE,GAAOtmE,GAAM5D,EAAMkG,GAAKitB,MAAQ43C,MAGhCb,GAAOtmE,GAAM5D,EAAMkG,GAAKitB,UAK5B82C,EAAiBpC,MAAQ,WACvBqC,GAAUC,WAAYC,WAIxBH,EAAiBh6B,QAAU,WACzBi6B,GAAUC,WAAYC,UACtBr1B,EAAUhuC,oBAAoB,UAAWujE,GAAM,GAC/Cv1B,EAAUhuC,oBAAoB,QAASyjE,GAAI,IAI7Cz1B,EAAUxuC,iBAAiB,UAAU+jE,GAAK,GAC1Cv1B,EAAUxuC,iBAAiB,QAAQikE,GAAG,GAG/BP,EAGT,MAAOn8B,MAQL,SAAUtvC,EAAQD,EAASM,GAK/BN,EAAQe,KAAOT,EAAoB,GACnCN,EAAQ0uC,QAAUpuC,EAAoB,IAGtCN,EAAQ2uC,QAAUruC,EAAoB,IACtCN,EAAQ4uC,SAAWtuC,EAAoB,IACvCN,EAAQ6uC,MAAQvuC,EAAoB,IAGpCN,EAAQysE,SAAWnsE,EAAoB,KACvCN,EAAQ0sE,QAAUpsE,EAAoB,KACtCN,EAAQ2sE,UACNC,KAAMtsE,EAAoB,KAC1BusE,SAAUvsE,EAAoB,KAC9BkzD,MAAOlzD,EAAoB,KAC3B0lB,MAAO1lB,EAAoB,KAC3BwsE,SAAUxsE,EAAoB,KAE9BysE,YACEx6B,OACEy6B,KAAM1sE,EAAoB,KAC1B2sE,eAAgB3sE,EAAoB,KACpC4sE,QAAS5sE,EAAoB,KAC7B6sE,UAAW7sE,EAAoB,KAC/B8sE,UAAW9sE,EAAoB,MAGjC+sE,gBAAiB/sE,EAAoB,KACrCgtE,UAAWhtE,EAAoB,KAC/BitE,YAAajtE,EAAoB,KACjCktE,WAAYltE,EAAoB,KAChCmtE,SAAUntE,EAAoB,KAC9BotE,UAAWptE,EAAoB,KAC/BqtE,WAAYrtE,EAAoB,KAChCstE,MAAOttE,EAAoB,KAC3ButE,QAASvtE,EAAoB,KAC7BwtE,OAAQxtE,EAAoB,KAC5BytE,UAAWztE,EAAoB,KAC/B0tE,SAAU1tE,EAAoB,OAKlCN,EAAQ6B,OAASvB,EAAoB,IACrCN,EAAQsvC,OAAShvC,EAAoB,KACrCN,EAAQuvC,SAAWjvC,EAAoB,MAInC,SAAUL,EAAQD,EAASM,GAiC/B,QAASmsE,GAASj2B,EAAWjE,EAAO07B,EAAQ7/D,GAE1C,KAAMhO,eAAgBqsE,IACpB,KAAM,IAAIh2B,aAAY,mDAIxB,MAAMlyC,MAAMC,QAAQypE,IAAWA,YAAkBt/B,IAAWs/B,YAAkBr/B,KAAaq/B,YAAkBppE,QAAQ,CACnH,GAAIqpE,GAAgB9/D,CACpBA,GAAU6/D,EACVA,EAASC,EAKP9/D,GAAWA,EAAQ+/D,gBACrBvoD,QAAQH,KAAK,wHAGf,IAAI4sB,GAAKjyC,IAmBT,IAlBAA,KAAKguE,gBACH/oB,MAAO,KACPC,IAAK,KACL+oB,YAAY,EACZC,aACEC,KAAM,SACNv/D,KAAM,UAERnN,OAAQA,EACR2O,MAAO,KACPC,OAAQ,KACR+9D,UAAW,KACXC,UAAW,MAEbruE,KAAKgO,QAAUrN,EAAK+D,cAAe1E,KAAKguE,gBAGxChuE,KAAKmB,QAAQi1C,IACRpoC,GAAWA,OAAiC,KAAfA,EAAQsgE,IAAoB,CAG5D,IAFA,GAAIC,GACAC,EAAUxuE,KAAK+tD,IAAIruD,MACf6uE,GAAoBC,GAC1BD,EAAmB/lE,OAAOimE,iBAAiBD,EAAS,MAAM1uC,UAC1D0uC,EAAUA,EAAQE,aAEpB1uE,MAAKgO,QAAQsgE,IAAMC,GAAsD,OAAlCA,EAAiBtmD,kBAExDjoB,MAAKgO,QAAQsgE,IAAMtgE,EAAQsgE,GAG7BtuE,MAAKgO,QAAQ2gE,YAAc3gE,GAAWA,EAAQ2gE,YAG9C3uE,KAAK2sE,cAEL3sE,KAAK2Q,MACHo9C,IAAK/tD,KAAK+tD,IACV6gB,SAAU5uE,KAAKkE,MACf2qE,SACEt9B,GAAIvxC,KAAKuxC,GAAGqmB,KAAK53D,MACjB0xC,IAAK1xC,KAAK0xC,IAAIkmB,KAAK53D,MACnB+rD,KAAM/rD,KAAK+rD,KAAK6L,KAAK53D,OAEvB8uE,eACAnuE,MACEs9D,SAAU,WACR,MAAOhsB,GAAG88B,SAASx8D,KAAK/P,OAE1B0wD,QAAS,WACP,MAAOjhB,GAAG88B,SAASx8D,KAAKA,MAG1By8D,SAAU/8B,EAAGg9B,UAAUrX,KAAK3lB,GAC5Bi9B,eAAgBj9B,EAAGk9B,gBAAgBvX,KAAK3lB,GACxCm9B,OAAQn9B,EAAGo9B,QAAQzX,KAAK3lB,GACxBq9B,aAAcr9B,EAAGs9B,cAAc3X,KAAK3lB,KAKxCjyC,KAAKw7C,MAAQ,GAAI4X,GAAMpzD,KAAK2Q,KAAM3Q,KAAKgO,SACvChO,KAAK2sE,WAAW9nE,KAAK7E,KAAKw7C,OAC1Bx7C,KAAK2Q,KAAK6qC,MAAQx7C,KAAKw7C,MAGvBx7C,KAAK+uE,SAAW,GAAInB,GAAS5tE,KAAK2Q,KAAM3Q,KAAKgO,SAC7ChO,KAAKwvE,UAAY,KACjBxvE,KAAK2sE,WAAW9nE,KAAK7E,KAAK+uE,UAG1B/uE,KAAKyvE,YAAc,GAAItC,GAAYntE,KAAK2Q,KAAM3Q,KAAKgO,SACnDhO,KAAK2sE,WAAW9nE,KAAK7E,KAAKyvE,aAG1BzvE,KAAK0vE,QAAU,GAAIjC,GAAQztE,KAAK2Q,KAAM3Q,KAAKgO,SAC3ChO,KAAK2sE,WAAW9nE,KAAK7E,KAAK0vE,SAE1B1vE,KAAK2vE,UAAY,KACjB3vE,KAAK4vE,WAAa,KAElB5vE,KAAK+tD,IAAIruD,KAAK0hD,QAAU,SAAU74C,GAChC0pC,EAAG8Z,KAAK,QAAS9Z,EAAG49B,mBAAmBtnE,KAEzCvI,KAAK+tD,IAAIruD,KAAKowE,WAAa,SAAUvnE,GACnC0pC,EAAG8Z,KAAK,cAAe9Z,EAAG49B,mBAAmBtnE,KAE/CvI,KAAK+tD,IAAIruD,KAAKqwE,cAAgB,SAAUxnE,GACtC0pC,EAAG8Z,KAAK,cAAe9Z,EAAG49B,mBAAmBtnE,KAE/CvI,KAAK+tD,IAAIruD,KAAKswE,YAAc,SAAUznE,GACpC0pC,EAAG8Z,KAAK,YAAa9Z,EAAG49B,mBAAmBtnE,KAEzCC,OAAOg+D,cACTxmE,KAAK+tD,IAAIruD,KAAKuwE,cAAgB,SAAU1nE,GACtC0pC,EAAG8Z,KAAK,YAAa9Z,EAAG49B,mBAAmBtnE,KAE7CvI,KAAK+tD,IAAIruD,KAAKwwE,cAAgB,SAAU3nE,GACtC0pC,EAAG8Z,KAAK,YAAa9Z,EAAG49B,mBAAmBtnE,KAE7CvI,KAAK+tD,IAAIruD,KAAKywE,YAAc,SAAU5nE,GACpC0pC,EAAG8Z,KAAK,UAAW9Z,EAAG49B,mBAAmBtnE,OAG3CvI,KAAK+tD,IAAIruD,KAAKmrD,YAAc,SAAUtiD,GACpC0pC,EAAG8Z,KAAK,YAAa9Z,EAAG49B,mBAAmBtnE,KAE7CvI,KAAK+tD,IAAIruD,KAAKkhD,YAAc,SAAUr4C,GACpC0pC,EAAG8Z,KAAK,YAAa9Z,EAAG49B,mBAAmBtnE,KAE7CvI,KAAK+tD,IAAIruD,KAAKqrD,UAAY,SAAUxiD,GAClC0pC,EAAG8Z,KAAK,UAAW9Z,EAAG49B,mBAAmBtnE,MAK7CvI,KAAKowE,SAAU,EACfpwE,KAAKuxC,GAAG,UAAW,WACjB,GAAsB,MAAlBvxC,KAAK2vE,YAAqB3vE,KAAKgO,QAAQ2gE,cACtC18B,EAAGm+B,QAEN,GADAn+B,EAAGm+B,SAAU,MACWvsE,IAApBouC,EAAGjkC,QAAQi3C,WAAwCphD,IAAlBouC,EAAGjkC,QAAQk3C,IAAkB,CAChE,OAAwBrhD,IAApBouC,EAAGjkC,QAAQi3C,WAAwCphD,IAAlBouC,EAAGjkC,QAAQk3C,IAC9C,GAAI1J,GAAQvJ,EAAGo+B,cAGjB,IAAIprB,OAA4BphD,IAApBouC,EAAGjkC,QAAQi3C,MAAqBhT,EAAGjkC,QAAQi3C,MAAQzJ,EAAMp5C,IACjE8iD,MAAwBrhD,IAAlBouC,EAAGjkC,QAAQk3C,IAAmBjT,EAAGjkC,QAAQk3C,IAAM1J,EAAMn5C,GAC/D4vC,GAAGq+B,UAAUrrB,EAAOC,GAAOqrB,WAAW,QAEtCt+B,GAAGu+B,KAAMD,WAAW,MAMtBviE,GACFhO,KAAKkxC,WAAWljC,GAId6/D,GACF7tE,KAAKywE,UAAU5C,GAIb17B,GACFnyC,KAAK0wE,SAASv+B,GAIhBnyC,KAAK2wE,UAvMP,GAEIlvE,IAFUvB,EAAoB,IACrBA,EAAoB,KACpBA,EAAoB,KAC7BS,EAAOT,EAAoB,GAC3BquC,EAAUruC,EAAoB,IAC9BsuC,EAAWtuC,EAAoB,IAC/BkzD,EAAQlzD,EAAoB,KAC5BssE,EAAOtsE,EAAoB,KAC3B0tE,EAAW1tE,EAAoB,KAC/BitE,EAAcjtE,EAAoB,KAClCktE,EAAaltE,EAAoB,KACjCutE,EAAUvtE,EAAoB,KAE9B0wE,EAAa1wE,EAAoB,KAAK0wE,WACtCC,EAAa3wE,EAAoB,KAAK2wE,WACtCC,EAAmB5wE,EAAoB,KAAK4wE,iBAE5CC,EAAe7wE,EAAoB,KAAc,QACjD8wE,EAAY9wE,EAAoB,KAAc,OAyLlDmsE,GAASh6D,UAAY,GAAIm6D,GAOzBH,EAASh6D,UAAU4+D,oBAAsB,WACvC,MAAO,IAAIF,GAAa/wE,KAAMA,KAAK+tD,IAAI3X,UAAW06B,IAUpDzE,EAASh6D,UAAUotC,OAAS,WAC1Bz/C,KAAK0vE,SAAW1vE,KAAK0vE,QAAQwB,WAAYC,cAAc,IACvDnxE,KAAK2wE,WAGPtE,EAASh6D,UAAU6+B,WAAa,SAAUljC,GASxC,IALmB,IAFFgjE,EAAUI,SAASpjE,EAAS6iE,IAG3CrrD,QAAQotC,IAAI,2DAA4Dge,GAE1EpE,EAAKn6D,UAAU6+B,WAAW3wC,KAAKP,KAAMgO,GAEjC,QAAUA,IACRA,EAAQ/I,OAASjF,KAAKgO,QAAQ/I,KAAM,CACtCjF,KAAKgO,QAAQ/I,KAAO+I,EAAQ/I,IAG5B,IAAI0qE,GAAY3vE,KAAK2vE,SACrB,IAAIA,EAAW,CACb,GAAI0B,GAAYrxE,KAAKsxE,cACrBtxE,MAAK0wE,SAAS,MACd1wE,KAAK0wE,SAASf,GACd3vE,KAAKuxE,aAAaF,MAU1BhF,EAASh6D,UAAUq+D,SAAW,SAAUv+B,GAEtC,GAAIq/B,EAIFA,GAHGr/B,EAEMA,YAAiB5D,IAAW4D,YAAiB3D,GACzC2D,EAGA,GAAI5D,GAAQ4D,GACvBltC,MACEggD,MAAO,OACPC,IAAK,UARI,KAcfllD,KAAK2vE,UAAY6B,EACjBxxE,KAAK0vE,SAAW1vE,KAAK0vE,QAAQgB,SAASc,IAOxCnF,EAASh6D,UAAUo+D,UAAY,SAAU5C,GAEvC,GAAI2D,EACJ,IAAK3D,EAEE,CACL,GAAI/mE,GAAS,SAAgB2qE,GAC3B,OAAyB,IAAlBA,EAAMjsB,QAGbgsB,GADE3D,YAAkBt/B,IAAWs/B,YAAkBr/B,GACpC,GAAIA,GAASq/B,GAAU/mE,OAAQA,IAG/B,GAAIynC,GAAQs/B,EAAO/mE,OAAOA,QATzC0qE,GAAa,IAafxxE,MAAK4vE,WAAa4B,EAClBxxE,KAAK0vE,QAAQe,UAAUe,IAOzBnF,EAASh6D,UAAUqjC,QAAU,SAAUhhB,GACjCA,GAAQA,EAAKm5C,QACf7tE,KAAKywE,UAAU/7C,EAAKm5C,QAGlBn5C,GAAQA,EAAKyd,OACfnyC,KAAK0wE,SAASh8C,EAAKyd,QAqBvBk6B,EAASh6D,UAAUk/D,aAAe,SAAU5+B,EAAK3kC,GAC/ChO,KAAK0vE,SAAW1vE,KAAK0vE,QAAQ6B,aAAa5+B,GAEtC3kC,GAAWA,EAAQ0jE,OACrB1xE,KAAK0xE,MAAM/+B,EAAK3kC,IAQpBq+D,EAASh6D,UAAUi/D,aAAe,WAChC,MAAOtxE,MAAK0vE,SAAW1vE,KAAK0vE,QAAQ4B,oBAetCjF,EAASh6D,UAAUq/D,MAAQ,SAAUrxE,EAAI2N,GACvC,GAAKhO,KAAK2vE,eAAmB9rE,IAANxD,EAAvB,CAEA,GAAIsyC,GAAMxuC,MAAMC,QAAQ/D,GAAMA,GAAMA,GAGhCsvE,EAAY3vE,KAAK2vE,UAAUr8B,aAAa77B,IAAIk7B,GAC9C1tC,MACEggD,MAAO,OACPC,IAAK,UAKLD,EAAQ,KACRC,EAAM,IAcV,IAbAyqB,EAAUzoE,QAAQ,SAAUyqE,GAC1B,GAAIvmE,GAAIumE,EAAS1sB,MAAM7/C,UACnB6D,EAAI,OAAS0oE,GAAWA,EAASzsB,IAAI9/C,UAAYusE,EAAS1sB,MAAM7/C,WAEtD,OAAV6/C,GAAkB75C,EAAI65C,KACxBA,EAAQ75C,IAGE,OAAR85C,GAAgBj8C,EAAIi8C,KACtBA,EAAMj8C,KAII,OAAVg8C,GAA0B,OAARC,EAAc,CAElC,GAAIv2C,IAAUs2C,EAAQC,GAAO,EACzBuM,EAAWhvD,KAAKJ,IAAIrC,KAAKw7C,MAAM0J,IAAMllD,KAAKw7C,MAAMyJ,MAAuB,KAAfC,EAAMD,IAE9DsrB,GAAYviE,OAAiCnK,KAAtBmK,EAAQuiE,WAA0BviE,EAAQuiE,SACrEvwE,MAAKw7C,MAAM+W,SAAS5jD,EAAS8iD,EAAW,EAAG9iD,EAAS8iD,EAAW,GAAK8e,UAAWA,OAcnFlE,EAASh6D,UAAUm+D,IAAM,SAAUxiE,GACjC,GACIwtC,GADA+0B,GAAYviE,OAAiCnK,KAAtBmK,EAAQuiE,WAA0BviE,EAAQuiE,UAGjEqB,EAAU5xE,KAAK2vE,WAAa3vE,KAAK2vE,UAAUr8B,YACxB,KAAnBs+B,EAAQhuE,YAAyCC,KAAzB+tE,EAAQn6D,MAAM,GAAGytC,KAE3C1J,EAAQx7C,KAAK6xE,eACb7xE,KAAKykD,OAAOjJ,EAAMp5C,IAAIgD,WAAamrE,UAAWA,MAG9C/0B,EAAQx7C,KAAKqwE,eACbrwE,KAAKw7C,MAAM+W,SAAS/W,EAAMp5C,IAAKo5C,EAAMn5C,KAAOkuE,UAAWA,MAS3DlE,EAASh6D,UAAUg+D,aAAe,WAEhC,GAAI70B,GAAQx7C,KAAK6xE,eACbzvE,EAAoB,OAAdo5C,EAAMp5C,IAAeo5C,EAAMp5C,IAAIgD,UAAY,KACjD/C,EAAoB,OAAdm5C,EAAMn5C,IAAem5C,EAAMn5C,IAAI+C,UAAY,KACjD0sE,EAAU,KACVC,EAAU,IAEd,IAAW,MAAP3vE,GAAsB,MAAPC,EAAa,CAC9B,GAAI2vE,GAAW,SAAkBpjE,GAC/B,MAAOjO,GAAKqE,QAAQ4J,EAAK8lB,KAAKuwB,MAAO,QAAQ7/C,WAG3C6sE,EAAS,SAAgBrjE,GAC3B,GAAIs2C,OAAuBrhD,IAAjB+K,EAAK8lB,KAAKwwB,IAAmBt2C,EAAK8lB,KAAKwwB,IAAMt2C,EAAK8lB,KAAKuwB,KACjE,OAAOtkD,GAAKqE,QAAQkgD,EAAK,QAAQ9/C,WAM/BqsD,EAAWpvD,EAAMD,CACjBqvD,IAAY,IACdA,EAAW,GAEb,IAAIygB,GAASzgB,EAAWzxD,KAAKkE,MAAM23C,OAAOzrC,KA6B1C,IA3BAzP,EAAKuG,QAAQlH,KAAK0vE,QAAQv9B,MAAO,SAAUvjC,GACrCA,EAAKujE,eACPvjE,EAAKwjE,OACLxjE,EAAKyjE,cAGP,IAAIptB,GAAQ+sB,EAASpjE,GACjBs2C,EAAM+sB,EAAOrjE,EAEjB,IAAI5O,KAAKgO,QAAQsgE,IACf,GAAIgE,GAAYrtB,GAASr2C,EAAK2jE,gBAAkB,IAAML,EAClDM,EAAUttB,GAAOt2C,EAAK6jE,eAAiB,IAAMP,MAEjD,IAAII,GAAYrtB,GAASr2C,EAAK6jE,eAAiB,IAAMP,EACjDM,EAAUttB,GAAOt2C,EAAK2jE,gBAAkB,IAAML,CAGhDI,GAAYlwE,IACdA,EAAMkwE,EACNR,EAAUljE,GAER4jE,EAAUnwE,IACZA,EAAMmwE,EACNT,EAAUnjE,IAEZgpD,KAAK53D,OAEH8xE,GAAWC,EAAS,CACtB,GAAIW,GAAMZ,EAAQW,eAAiB,GAC/BE,EAAMZ,EAAQQ,gBAAkB,GAChClxC,EAAQrhC,KAAKkE,MAAM23C,OAAOzrC,MAAQsiE,EAAMC,CAExCtxC,GAAQ,IACNrhC,KAAKgO,QAAQsgE,KACflsE,EAAM4vE,EAASF,GAAWa,EAAMlhB,EAAWpwB,EAC3Ch/B,EAAM4vE,EAAOF,GAAWW,EAAMjhB,EAAWpwB,IAEzCj/B,EAAM4vE,EAASF,GAAWY,EAAMjhB,EAAWpwB,EAC3Ch/B,EAAM4vE,EAAOF,GAAWY,EAAMlhB,EAAWpwB,KAMjD,OACEj/B,IAAY,MAAPA,EAAc,GAAIS,MAAKT,GAAO,KACnCC,IAAY,MAAPA,EAAc,GAAIQ,MAAKR,GAAO,OAQvCgqE,EAASh6D,UAAUw/D,aAAe,WAChC,GAAIzvE,GAAM,KACNC,EAAM,KAENuvE,EAAU5xE,KAAK2vE,WAAa3vE,KAAK2vE,UAAUr8B,YAc/C,OAbIs+B,IACFA,EAAQ1qE,QAAQ,SAAU0H,GACxB,GAAIq2C,GAAQtkD,EAAKqE,QAAQ4J,EAAKq2C,MAAO,QAAQ7/C,UACzC8/C,EAAMvkD,EAAKqE,YAAoBnB,IAAZ+K,EAAKs2C,IAAmBt2C,EAAKs2C,IAAMt2C,EAAKq2C,MAAO,QAAQ7/C,WAClE,OAARhD,GAAgB6iD,EAAQ7iD,KAC1BA,EAAM6iD,IAEI,OAAR5iD,GAAgB6iD,EAAM7iD,KACxBA,EAAM6iD,MAMV9iD,IAAY,MAAPA,EAAc,GAAIS,MAAKT,GAAO,KACnCC,IAAY,MAAPA,EAAc,GAAIQ,MAAKR,GAAO,OAUvCgqE,EAASh6D,UAAUw9D,mBAAqB,SAAUtnE,GAChD,GAAI4uC,GAAU5uC,EAAMszC,OAAStzC,EAAMszC,OAAO5mB,EAAI1sB,EAAM4uC,QAChDG,EAAU/uC,EAAMszC,OAAStzC,EAAMszC,OAAOhtB,EAAItmB,EAAM+uC,OACpD,IAAIt3C,KAAKgO,QAAQsgE,IACf,GAAIr5C,GAAIt0B,EAAKwF,iBAAiBnG,KAAK+tD,IAAI6kB,iBAAmBz7B,MAE1D,IAAIliB,GAAIkiB,EAAUx2C,EAAKoF,gBAAgB/F,KAAK+tD,IAAI6kB,gBAElD,IAAI/jD,GAAIyoB,EAAU32C,EAAK0F,eAAerG,KAAK+tD,IAAI6kB,iBAE3ChkE,EAAO5O,KAAK0vE,QAAQmD,eAAetqE,GACnCkpE,EAAQzxE,KAAK0vE,QAAQoD,gBAAgBvqE,GACrCwqE,EAAa3F,EAAW4F,qBAAqBzqE,GAE7C0qE,EAAOjzE,KAAK0vE,QAAQ1hE,QAAQilE,MAAQ,KACpCzwE,EAAQxC,KAAK2Q,KAAKhQ,KAAKs9D,WACvB1rD,EAAOvS,KAAK2Q,KAAKhQ,KAAKuyD,UACtB5yB,EAAOtgC,KAAKqvE,QAAQp6C,GACpBi+C,EAAcD,EAAOA,EAAK3yC,EAAM99B,EAAO+P,GAAQ+tB,EAE/Cz4B,EAAUlH,EAAK+H,UAAUH,GACzB4qE,EAAO,IAiBX,OAhBY,OAARvkE,EACFukE,EAAO,OACgB,MAAdJ,EACTI,EAAO,cACExyE,EAAKoI,UAAUlB,EAAS7H,KAAK+uE,SAAShhB,IAAIqlB,YACnDD,EAAO,OACEnzE,KAAKwvE,WAAa7uE,EAAKoI,UAAUlB,EAAS7H,KAAKwvE,UAAUzhB,IAAIqlB,YACtED,EAAO,OACExyE,EAAKoI,UAAUlB,EAAS7H,KAAK0vE,QAAQ3hB,IAAIslB,UAClDF,EAAO,cACExyE,EAAKoI,UAAUlB,EAAS7H,KAAKyvE,YAAY1e,KAClDoiB,EAAO,eACExyE,EAAKoI,UAAUlB,EAAS7H,KAAK+tD,IAAIlS,UAC1Cs3B,EAAO,eAIP5qE,MAAOA,EACPqG,KAAMA,EAAOA,EAAKvO,GAAK,KACvBoxE,MAAOA,EAAQA,EAAM6B,QAAU,KAC/BH,KAAMA,EACNI,MAAOhrE,EAAMgvD,SAAWhvD,EAAMgvD,SAASgc,MAAQhrE,EAAMgrE,MACrDC,MAAOjrE,EAAMgvD,SAAWhvD,EAAMgvD,SAASic,MAAQjrE,EAAMirE,MACrDv+C,EAAGA,EACHpG,EAAGA,EACHyR,KAAMA,EACN4yC,YAAaA,IAQjB7G,EAASh6D,UAAUohE,kBAAoB,WACjCzzE,KAAKw7C,MAAMk4B,QACb1zE,KAAKw7C,MAAMm4B,mBAEqB9vE,IAA5B7D,KAAKgO,QAAQ2gE,aACf3uE,KAAKkxC,WAAWlxC,KAAKgO,SAEvBhO,KAAKw7C,MAAMo4B,iBAIf/zE,EAAOD,QAAUysE,GAIb,SAAUxsE,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAgBzF,QAASsyD,GAAMziD,EAAM3C,GACnB,GAAI2Y,GAAMllB,IAAS+xB,MAAM,GAAGG,QAAQ,GAAGyI,QAAQ,GAAGC,aAAa,GAC3D4oB,EAAQt+B,EAAI6W,QAAQ7M,KAAK,EAAG,QAAQvrB,UACpC8/C,EAAMv+B,EAAI6W,QAAQ7M,IAAI,EAAG,QAAQvrB,SACrCpF,MAAK6zE,8BAA4BhwE,OAEjBA,KAAZmK,GACFhO,KAAKilD,MAAQA,EACbjlD,KAAKklD,IAAMA,IAEXllD,KAAKilD,MAAQj3C,EAAQi3C,OAASA,EAC9BjlD,KAAKklD,IAAMl3C,EAAQk3C,KAAOA,GAG5BllD,KAAK0zE,SAAU,EAEf1zE,KAAK2Q,KAAOA,EACZ3Q,KAAK8zE,gBAAkB,EACvB9zE,KAAK+zE,YAAc,EACnB/zE,KAAKg0E,cAAe,EACpBh0E,KAAKi0E,YAAa,EAGlBj0E,KAAKguE,gBACHM,KAAK,EACLrpB,MAAO,KACPC,IAAK,KACLzjD,OAAQA,EACRq+B,UAAW,aACXo0C,UAAU,EACVC,UAAU,EACV/xE,IAAK,KACLC,IAAK,KACL+xE,QAAS,GACTC,QAAS,SACT1F,aACE2F,QAAQ,EACRz3C,OAAQ,KAGZ78B,KAAKgO,QAAUrN,EAAKC,UAAWZ,KAAKguE,gBACpChuE,KAAKkE,OACH68D,UAEF/gE,KAAKu0E,eAAiB,KAGtBv0E,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,WAAYvxC,KAAKw0E,aAAa5c,KAAK53D,OACxDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAWvxC,KAAKy0E,QAAQ7c,KAAK53D,OAClDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,SAAUvxC,KAAK00E,WAAW9c,KAAK53D,OAGpDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAcvxC,KAAK20E,cAAc/c,KAAK53D,OAG3DA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,QAASvxC,KAAK40E,SAAShd,KAAK53D,OACjDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,QAASvxC,KAAK60E,SAASjd,KAAK53D,OAGjDA,KAAK2Q,KAAKo9C,IAAI+mB,eAAeltE,iBAAiB,QAAS5H,KAAK4zE,aAAahc,KAAK53D,OAE9EA,KAAKkxC,WAAWljC,GAyClB,QAAS+mE,GAAkBj1C,GACzB,GAAiB,cAAbA,GAA0C,YAAbA,EAC/B,KAAM,IAAIv7B,WAAU,sBAAwBu7B,EAAY,yCApI5D,GAAIz+B,GAAQnB,EAAoB,IAE5BoB,EAAST,EAAuBQ,GAEhC8b,EAAajd,EAAoB,IAEjCixC,EAActwC,EAAuBsc,GAErC5b,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAIlCZ,EAAOT,EAAoB,GAE3BuB,GADavB,EAAoB,KACxBA,EAAoB,KAC7BgtE,EAAYhtE,EAAoB,KAChCusE,EAAWvsE,EAAoB,IA0EnCkzD,GAAM/gD,UAAY,GAAI66D,GAkBtB9Z,EAAM/gD,UAAU6+B,WAAa,SAAUljC,GACrC,GAAIA,EAAS,CAEX,GAAIV,IAAU,YAAa,YAAa,MAAO,MAAO,UAAW,UAAW,WAAY,WAAY,SAAU,WAAY,cAAe,UAAW,MAAO,kBAAmB,cAAe,mBAC7L3M,GAAKsD,gBAAgBqJ,EAAQtN,KAAKgO,QAASA,GAEvCA,EAAQ2gE,aAAe3gE,EAAQ2gE,YAAY2F,QAC7Ct0E,KAAK4zE,gBAEH,SAAW5lE,IAAW,OAASA,KAEjChO,KAAKuyD,SAASvkD,EAAQi3C,MAAOj3C,EAAQk3C,OAkB3CkO,EAAM/gD,UAAUuhE,aAAe,WAG7B,QAASxhC,KACPH,EAAG0hC,cACH1hC,EAAGyhC,SAAU,CAEb,IAAIjiB,GAAWxf,EAAGiT,IAAMjT,EAAGgT,MACvBh4C,EAAItM,EAAKqE,QAAQ,GAAInC,MAAQ,QAAQuC,UAErC6/C,EAAQh4C,EAAIwkD,EAAWxf,EAAGjkC,QAAQ2gE,YAAY9xC,OAC9CqoB,EAAMj4C,EAAIwkD,GAAY,EAAIxf,EAAGjkC,QAAQ2gE,YAAY9xC,QAGjD7uB,IAFYikC,EAAGjkC,aAAoCnK,KAAzBouC,EAAGjkC,QAAQuiE,WAA0Bt+B,EAAGjkC,QAAQuiE,WAG5EA,WAAW,GAEbt+B,GAAGsgB,SAAStN,EAAOC,EAAKl3C,EAGxB,IAAIxL,GAAQyvC,EAAG+iC,WAAW/iC,EAAGthC,KAAKi+D,SAAS/yB,OAAOzrC,OAAO5N,MACrDivD,EAAW,EAAIjvD,EAAQ,EACvBivD,GAAW,KAAIA,EAAW,IAC1BA,EAAW,MAAMA,EAAW,KAEhCxf,EAAGthC,KAAKo9C,IAAI+mB,eAAezoE,MAAMmE,WAAa,SAE9CyhC,EAAGgjC,iBAAmB1/B,WAAWnD,EAAQqf,GA1B3C,GAAIxf,GAAKjyC,IA6BToyC,MAMFghB,EAAM/gD,UAAUshE,YAAc,eACE9vE,KAA1B7D,KAAKi1E,mBACP3/B,aAAat1C,KAAKi1E,kBAClBj1E,KAAK0zE,SAAU,EACf1zE,KAAK2Q,KAAKo9C,IAAI+mB,eAAezoE,MAAMmE,WAAa,YAqBpD4iD,EAAM/gD,UAAUkgD,SAAW,SAAUtN,EAAOC,EAAKl3C,EAAS7G,GACnD6G,IACHA,OAEqB,IAAnBA,EAAQknE,SACVlnE,EAAQknE,QAAS,EAEnB,IAAIjjC,GAAKjyC,KACLm1E,MAAsBtxE,IAATohD,EAAqBtkD,EAAKqE,QAAQigD,EAAO,QAAQ7/C,UAAY,KAC1EgwE,MAAkBvxE,IAAPqhD,EAAmBvkD,EAAKqE,QAAQkgD,EAAK,QAAQ9/C,UAAY,IAIxE,IAHApF,KAAKq1E,mBACLr1E,KAAK6zE,8BAA4BhwE,GAE7BmK,EAAQuiE,UAAW,CAErB,GAAI+E,GAAYt1E,KAAKilD,MACjBswB,EAAUv1E,KAAKklD,IACfppB,EAA2D,YAAhD,EAAIt6B,EAAkB,SAAGwM,EAAQuiE,YAA2B,YAAcviE,GAAQuiE,UAAYviE,EAAQuiE,UAAUz0C,SAAW,IACtI05C,EAA6D,YAAhD,EAAIh0E,EAAkB,SAAGwM,EAAQuiE,YAA2B,kBAAoBviE,GAAQuiE,UAAYviE,EAAQuiE,UAAUkF,eAAiB,gBACpJA,EAAiB90E,EAAKuO,gBAAgBsmE,EAC1C,KAAKC,EACH,KAAM,IAAIpxE,OAAM,4BAA6B,EAAI8sC,EAAqB,SAAGqkC,GAAc,mBAAyB,EAAIl0E,EAAgB,SAAGX,EAAKuO,iBAAiBnI,KAAK,MAGpK,IAAI2uE,IAAW,GAAI7yE,OAAOuC,UACtBuwE,GAAa,CAyCjB,OAvCW,SAASlkE,KAClB,IAAKwgC,EAAG/tC,MAAM68D,MAAM6U,SAAU,CAC5B,GAAIjvD,IAAM,GAAI9jB,OAAOuC,UACjBk7B,EAAO3Z,EAAM+uD,EACbG,EAAOJ,EAAen1C,EAAOxE,GAC7BpqB,EAAO4uB,EAAOxE,EACd1wB,EAAIsG,GAAuB,OAAfyjE,EAAsBA,EAAaG,GAAaH,EAAaG,GAAaO,EACtF5sE,EAAIyI,GAAqB,OAAb0jE,EAAoBA,EAAWG,GAAWH,EAAWG,GAAWM,CAEhFvV,GAAUruB,EAAG6jC,YAAY1qE,EAAGnC,GAC5BwjE,EAASsJ,kBAAkB9jC,EAAGjkC,QAAQvM,OAAQwwC,EAAGthC,KAAMshC,EAAGjkC,QAAQ8gE,aAClE6G,EAAaA,GAAcrV,CAE3B,IAAIzuB,IACFoT,MAAO,GAAIpiD,MAAKovC,EAAGgT,OACnBC,IAAK,GAAIriD,MAAKovC,EAAGiT,KACjBgwB,OAAQlnE,EAAQknE,OAChB3sE,MAAOyF,EAAQzF,MAOjB,IAJI+3D,GACFruB,EAAGthC,KAAKk+D,QAAQ9iB,KAAK,cAAela,GAGlCngC,GACF,GAAIikE,IACF1jC,EAAGthC,KAAKk+D,QAAQ9iB,KAAK,eAAgBla,GACjC1qC,GACF,MAAOA,SAMX8qC,GAAGsiC,eAAiBh/B,WAAW9jC,EAAM,QAO3C,GAAI6uD,GAAUtgE,KAAK81E,YAAYX,EAAYC,EAE3C,IADA3I,EAASsJ,kBAAkB/1E,KAAKgO,QAAQvM,OAAQzB,KAAK2Q,KAAM3Q,KAAKgO,QAAQ8gE,aACpExO,EAAS,CACX,GAAIzuB,IACFoT,MAAO,GAAIpiD,MAAK7C,KAAKilD,OACrBC,IAAK,GAAIriD,MAAK7C,KAAKklD,KACnBgwB,OAAQlnE,EAAQknE,OAChB3sE,MAAOyF,EAAQzF,MAQjB,IALAvI,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cAAela,GACtCyD,aAAarD,EAAG+jC,WAChB/jC,EAAG+jC,UAAYzgC,WAAW,WACxBtD,EAAGthC,KAAKk+D,QAAQ9iB,KAAK,eAAgBla,IACpC,KACC1qC,EACF,MAAOA,OASfisD,EAAM/gD,UAAU4jE,wBAA0B,WAIxC,WAHuCpyE,KAAnC7D,KAAK6zE,4BACP7zE,KAAK6zE,2BAA6B7zE,KAAKklD,IAAMllD,KAAKilD,OAASjlD,KAAK2Q,KAAKo9C,IAAIlS,OAAO9qC,aAE3E/Q,KAAK6zE,2BAOdzgB,EAAM/gD,UAAUgjE,iBAAmB,WAC7Br1E,KAAKu0E,iBACPj/B,aAAat1C,KAAKu0E,gBAClBv0E,KAAKu0E,eAAiB,OAa1BnhB,EAAM/gD,UAAUyjE,YAAc,SAAU7wB,EAAOC,GAC7C,GAIIt9B,GAJAsuD,EAAoB,MAATjxB,EAAgBtkD,EAAKqE,QAAQigD,EAAO,QAAQ7/C,UAAYpF,KAAKilD,MACxEkxB,EAAgB,MAAPjxB,EAAcvkD,EAAKqE,QAAQkgD,EAAK,QAAQ9/C,UAAYpF,KAAKklD,IAClE7iD,EAA0B,MAApBrC,KAAKgO,QAAQ3L,IAAc1B,EAAKqE,QAAQhF,KAAKgO,QAAQ3L,IAAK,QAAQ+C,UAAY,KACpFhD,EAA0B,MAApBpC,KAAKgO,QAAQ5L,IAAczB,EAAKqE,QAAQhF,KAAKgO,QAAQ5L,IAAK,QAAQgD,UAAY,IAIxF,IAAIpC,MAAMkzE,IAA0B,OAAbA,EACrB,KAAM,IAAI7xE,OAAM,kBAAoB4gD,EAAQ,IAE9C,IAAIjiD,MAAMmzE,IAAsB,OAAXA,EACnB,KAAM,IAAI9xE,OAAM,gBAAkB6gD,EAAM,IAyC1C,IArCIixB,EAASD,IACXC,EAASD,GAIC,OAAR9zE,GACE8zE,EAAW9zE,IACbwlB,EAAOxlB,EAAM8zE,EACbA,GAAYtuD,EACZuuD,GAAUvuD,EAGC,MAAPvlB,GACE8zE,EAAS9zE,IACX8zE,EAAS9zE,IAOL,OAARA,GACE8zE,EAAS9zE,IACXulB,EAAOuuD,EAAS9zE,EAChB6zE,GAAYtuD,EACZuuD,GAAUvuD,EAGC,MAAPxlB,GACE8zE,EAAW9zE,IACb8zE,EAAW9zE,IAOU,OAAzBpC,KAAKgO,QAAQomE,QAAkB,CACjC,GAAIA,GAAU34C,WAAWz7B,KAAKgO,QAAQomE,QAItC,IAHIA,EAAU,IACZA,EAAU,GAER+B,EAASD,EAAW9B,EAAS,CAG3Bp0E,KAAKklD,IAAMllD,KAAKilD,QAAUmvB,GAAW8B,GAAYl2E,KAAKilD,MADvC,IAC+DkxB,GAAUn2E,KAAKklD,KAE/FgxB,EAAWl2E,KAAKilD,MAChBkxB,EAASn2E,KAAKklD,MAGdt9B,EAAOwsD,GAAW+B,EAASD,GAC3BA,GAAYtuD,EAAO,EACnBuuD,GAAUvuD,EAAO,IAMvB,GAA6B,OAAzB5nB,KAAKgO,QAAQqmE,QAAkB,CACjC,GAAIA,GAAU54C,WAAWz7B,KAAKgO,QAAQqmE,QAClCA,GAAU,IACZA,EAAU,GAGR8B,EAASD,EAAW7B,IAClBr0E,KAAKklD,IAAMllD,KAAKilD,QAAUovB,GAAW6B,EAAWl2E,KAAKilD,OAASkxB,EAASn2E,KAAKklD,KAE9EgxB,EAAWl2E,KAAKilD,MAChBkxB,EAASn2E,KAAKklD,MAGdt9B,EAAOuuD,EAASD,EAAW7B,EAC3B6B,GAAYtuD,EAAO,EACnBuuD,GAAUvuD,EAAO,IAKvB,GAAI04C,GAAUtgE,KAAKilD,OAASixB,GAAYl2E,KAAKklD,KAAOixB,CASpD,OANMD,IAAYl2E,KAAKilD,OAASixB,GAAYl2E,KAAKklD,KAAOixB,GAAUn2E,KAAKilD,OAASkxB,GAAUn2E,KAAKklD,KAAUllD,KAAKilD,OAASixB,GAAYl2E,KAAKilD,OAASkxB,GAAUn2E,KAAKklD,KAAOgxB,GAAYl2E,KAAKklD,KAAOixB,GAC7Ln2E,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,oBAGzB/rD,KAAKilD,MAAQixB,EACbl2E,KAAKklD,IAAMixB,EACJ7V,GAOTlN,EAAM/gD,UAAU+jE,SAAW,WACzB,OACEnxB,MAAOjlD,KAAKilD,MACZC,IAAKllD,KAAKklD,MAUdkO,EAAM/gD,UAAU2iE,WAAa,SAAU5kE,EAAOimE,GAC5C,MAAOjjB,GAAM4hB,WAAWh1E,KAAKilD,MAAOjlD,KAAKklD,IAAK90C,EAAOimE,IAWvDjjB,EAAM4hB,WAAa,SAAU/vB,EAAOC,EAAK90C,EAAOimE,GAI9C,WAHoBxyE,KAAhBwyE,IACFA,EAAc,GAEH,GAATjmE,GAAc80C,EAAMD,GAAS,GAE7BpoB,OAAQooB,EACRziD,MAAO4N,GAAS80C,EAAMD,EAAQoxB,KAI9Bx5C,OAAQ,EACRr6B,MAAO,IAUb4wD,EAAM/gD,UAAUmiE,aAAe,SAAUjsE,GACvCvI,KAAK8zE,gBAAkB,EACvB9zE,KAAKs2E,cAAgB,EAGhBt2E,KAAKgO,QAAQkmE,UAGbl0E,KAAKu2E,eAAehuE,IAIpBvI,KAAKkE,MAAM68D,MAAMyV,gBAEtBx2E,KAAK2zE,cAEL3zE,KAAKkE,MAAM68D,MAAM9b,MAAQjlD,KAAKilD,MAC9BjlD,KAAKkE,MAAM68D,MAAM7b,IAAMllD,KAAKklD,IAC5BllD,KAAKkE,MAAM68D,MAAM6U,UAAW,EAExB51E,KAAK2Q,KAAKo9C,IAAIruD,OAChBM,KAAK2Q,KAAKo9C,IAAIruD,KAAK2M,MAAMu+C,OAAS,UAStCwI,EAAM/gD,UAAUoiE,QAAU,SAAUlsE,GAClC,GAAKA,GAEAvI,KAAKkE,MAAM68D,MAAM6U,UAGjB51E,KAAKgO,QAAQkmE,UAKbl0E,KAAKkE,MAAM68D,MAAMyV,cAAtB,CAEA,GAAI12C,GAAY9/B,KAAKgO,QAAQ8xB,SAC7Bi1C,GAAkBj1C,EAClB,IAAIuB,GAAqB,cAAbvB,EAA4Bv3B,EAAMo1D,OAASp1D,EAAMq1D,MAC7Dv8B,IAASrhC,KAAK8zE,eACd,IAAIriB,GAAWzxD,KAAKkE,MAAM68D,MAAM7b,IAAMllD,KAAKkE,MAAM68D,MAAM9b,KAIvDwM,IADegb,EAASgK,yBAAyBz2E,KAAK2Q,KAAKm+D,YAAa9uE,KAAKilD,MAAOjlD,KAAKklD,IAGzF,IAAI90C,GAAqB,cAAb0vB,EAA4B9/B,KAAK2Q,KAAKi+D,SAAS/yB,OAAOzrC,MAAQpQ,KAAK2Q,KAAKi+D,SAAS/yB,OAAOxrC,MAEpG,IAAIrQ,KAAKgO,QAAQsgE,IACf,GAAIoI,GAAYr1C,EAAQjxB,EAAQqhD,MAEhC,IAAIilB,IAAar1C,EAAQjxB,EAAQqhD,CAGnC,IAAIykB,GAAWl2E,KAAKkE,MAAM68D,MAAM9b,MAAQyxB,EACpCP,EAASn2E,KAAKkE,MAAM68D,MAAM7b,IAAMwxB,EAGhCC,EAAYlK,EAASmK,mBAAmB52E,KAAK2Q,KAAKm+D,YAAaoH,EAAUl2E,KAAKs2E,cAAgBj1C,GAAO,GACrGw1C,EAAUpK,EAASmK,mBAAmB52E,KAAK2Q,KAAKm+D,YAAaqH,EAAQn2E,KAAKs2E,cAAgBj1C,GAAO,EACrG,IAAIs1C,GAAaT,GAAYW,GAAWV,EAKtC,MAJAn2E,MAAK8zE,iBAAmBzyC,EACxBrhC,KAAKkE,MAAM68D,MAAM9b,MAAQ0xB,EACzB32E,KAAKkE,MAAM68D,MAAM7b,IAAM2xB,MACvB72E,MAAKy0E,QAAQlsE,EAIfvI,MAAKs2E,cAAgBj1C,EACrBrhC,KAAK81E,YAAYI,EAAUC,EAE3B,IAAIW,GAAY,GAAIj0E,MAAK7C,KAAKilD,OAC1B8xB,EAAU,GAAIl0E,MAAK7C,KAAKklD,IAG5BllD,MAAK2Q,KAAKk+D,QAAQ9iB,KAAK,eACrB9G,MAAO6xB,EACP5xB,IAAK6xB,EACL7B,QAAQ,EACR3sE,MAAOA,IAITvI,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,aAQzBqH,EAAM/gD,UAAUqiE,WAAa,SAAUnsE,GAChCvI,KAAKkE,MAAM68D,MAAM6U,UAGjB51E,KAAKgO,QAAQkmE,UAKbl0E,KAAKkE,MAAM68D,MAAMyV,gBAEtBx2E,KAAKkE,MAAM68D,MAAM6U,UAAW,EACxB51E,KAAK2Q,KAAKo9C,IAAIruD,OAChBM,KAAK2Q,KAAKo9C,IAAIruD,KAAK2M,MAAMu+C,OAAS,QAIpC5qD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBACrB9G,MAAO,GAAIpiD,MAAK7C,KAAKilD,OACrBC,IAAK,GAAIriD,MAAK7C,KAAKklD,KACnBgwB,QAAQ,EACR3sE,MAAOA,MAUX6qD,EAAM/gD,UAAUsiE,cAAgB,SAAUpsE,GAExC,GAAI84B,GAAQ,CAYZ,IAXI94B,EAAMukD,WAERzrB,EAAQ94B,EAAMukD,WAAa,IAClBvkD,EAAMwkD,SAIf1rB,GAAS94B,EAAMwkD,OAAS,GAItB/sD,KAAKgO,QAAQgpE,UAAYzuE,EAAMvI,KAAKgO,QAAQgpE,UAAYh3E,KAAKgO,QAAQmmE,WAAan0E,KAAKgO,QAAQmmE,UAAYn0E,KAAKgO,QAAQkmE,UAC1H,GAAIl0E,KAAKgO,QAAQipE,iBAAkB,CAGjC1uE,EAAMD,gBAGN,IAAIsf,GAAOyZ,GAASrhC,KAAKklD,IAAMllD,KAAKilD,OAAS,GAEzCixB,EAAWl2E,KAAKilD,MAAQr9B,EACxBuuD,EAASn2E,KAAKklD,IAAMt9B,EAEpB5Z,GACFuiE,WAAW,EACX2E,QAAQ,EACR3sE,MAAOA,EAETvI,MAAKuyD,SAAS2jB,EAAUC,EAAQnoE,QAMpC,IAAMhO,KAAKgO,QAAQmmE,UAAYn0E,KAAKgO,QAAQkmE,UAGvCl0E,KAAKu2E,eAAehuE,IAKrB84B,EAAO,CAKT,GAAI7+B,EAEFA,GADE6+B,EAAQ,EACF,EAAIA,EAAQ,EAEZ,GAAK,EAAIA,EAAQ,EAI3B,IAAI61C,EACJ,IAAIl3E,KAAK0zE,QACPwD,EAAcl3E,KAAKilD,OAASjlD,KAAKklD,IAAMllD,KAAKilD,OAASjlD,KAAKgO,QAAQ2gE,YAAY9xC,WACzE,CACL,GAAIs6C,GAAUn3E,KAAKo3E,YAAaniD,EAAG1sB,EAAM4uC,QAAStoB,EAAGtmB,EAAM+uC,SAAWt3C,KAAK2Q,KAAKo9C,IAAIlS,OACpFq7B,GAAcl3E,KAAKq3E,eAAeF,GAEpCn3E,KAAKs3E,KAAK90E,EAAO00E,EAAa71C,EAAO94B,GAIrCA,EAAMD,mBAQV8qD,EAAM/gD,UAAUuiE,SAAW,SAAUrsE,GACnCvI,KAAKkE,MAAM68D,MAAM9b,MAAQjlD,KAAKilD,MAC9BjlD,KAAKkE,MAAM68D,MAAM7b,IAAMllD,KAAKklD,IAC5BllD,KAAKkE,MAAM68D,MAAMyV,eAAgB,EACjCx2E,KAAKkE,MAAM68D,MAAMllB,OAAS,KAC1B77C,KAAK+zE,YAAc,EACnB/zE,KAAK8zE,gBAAkB,GAQzB1gB,EAAM/gD,UAAUwiE,SAAW,SAAUtsE,GAEnC,GAAMvI,KAAKgO,QAAQmmE,UAAYn0E,KAAKgO,QAAQkmE,SAA5C,CAEAl0E,KAAKkE,MAAM68D,MAAMyV,eAAgB,EAE5Bx2E,KAAKkE,MAAM68D,MAAMllB,SACpB77C,KAAKkE,MAAM68D,MAAMllB,OAAS77C,KAAKo3E,WAAW7uE,EAAMszC,OAAQ77C,KAAK2Q,KAAKo9C,IAAIlS,SAGxE77C,KAAK2zE,aAEL,IAAInxE,GAAQ,GAAK+F,EAAM/F,MAAQxC,KAAK+zE,aAChCwD,EAAav3E,KAAKq3E,eAAer3E,KAAKkE,MAAM68D,MAAMllB,QAElD27B,EAAiB/K,EAASgK,yBAAyBz2E,KAAK2Q,KAAKm+D,YAAa9uE,KAAKilD,MAAOjlD,KAAKklD,KAC3FuyB,EAAuBhL,EAASiL,wBAAwB13E,KAAKgO,QAAQvM,OAAQzB,KAAK2Q,KAAKm+D,YAAa9uE,KAAMu3E,GAC1GI,EAAsBH,EAAiBC,EAGvCvB,EAAWqB,EAAaE,GAAwBz3E,KAAKkE,MAAM68D,MAAM9b,OAASsyB,EAAaE,IAAyBj1E,EAChH2zE,EAASoB,EAAaI,GAAuB33E,KAAKkE,MAAM68D,MAAM7b,KAAOqyB,EAAaI,IAAwBn1E,CAG9GxC,MAAKg0E,aAAe,EAAIxxE,GAAS,EACjCxC,KAAKi0E,WAAazxE,EAAQ,GAAK,CAE/B,IAAIm0E,GAAYlK,EAASmK,mBAAmB52E,KAAK2Q,KAAKm+D,YAAaoH,EAAU,EAAI1zE,GAAO,GACpFq0E,EAAUpK,EAASmK,mBAAmB52E,KAAK2Q,KAAKm+D,YAAaqH,EAAQ3zE,EAAQ,GAAG,EAChFm0E,IAAaT,GAAYW,GAAWV,IACtCn2E,KAAKkE,MAAM68D,MAAM9b,MAAQ0xB,EACzB32E,KAAKkE,MAAM68D,MAAM7b,IAAM2xB,EACvB72E,KAAK+zE,YAAc,EAAIxrE,EAAM/F,MAC7B0zE,EAAWS,EACXR,EAASU,EAGX,IAAI7oE,IACFuiE,WAAW,EACX2E,QAAQ,EACR3sE,MAAOA,EAETvI,MAAKuyD,SAAS2jB,EAAUC,EAAQnoE,GAEhChO,KAAKg0E,cAAe,EACpBh0E,KAAKi0E,YAAa,IAUpB7gB,EAAM/gD,UAAUkkE,eAAiB,SAAUhuE,GAGzC,GAAI4uC,GAAU5uC,EAAMszC,OAAStzC,EAAMszC,OAAO5mB,EAAI1sB,EAAM4uC,OACpD,IAAIn3C,KAAKgO,QAAQsgE,IACf,GAAIr5C,GAAIkiB,EAAUx2C,EAAKoF,gBAAgB/F,KAAK2Q,KAAKo9C,IAAI6kB,qBAErD,IAAI39C,GAAIt0B,EAAKwF,iBAAiBnG,KAAK2Q,KAAKo9C,IAAI6kB,iBAAmBz7B,CAEjE,IAAI7W,GAAOtgC,KAAK2Q,KAAKhQ,KAAKyuE,OAAOn6C,EAEjC,OAAOqL,IAAQtgC,KAAKilD,OAAS3kB,GAAQtgC,KAAKklD,KAS5CkO,EAAM/gD,UAAUglE,eAAiB,SAAUF,GACzC,GAAInC,GACAl1C,EAAY9/B,KAAKgO,QAAQ8xB,SAI7B,IAFAi1C,EAAkBj1C,GAED,cAAbA,EACF,MAAO9/B,MAAK2Q,KAAKhQ,KAAKyuE,OAAO+H,EAAQliD,GAAG7vB,SAExC,IAAIiL,GAASrQ,KAAK2Q,KAAKi+D,SAAS/yB,OAAOxrC,MAEvC,OADA2kE,GAAah1E,KAAKg1E,WAAW3kE,GACtB8mE,EAAQtoD,EAAImmD,EAAWxyE,MAAQwyE,EAAWn4C,QAWrDu2B,EAAM/gD,UAAU+kE,WAAa,SAAUrW,EAAOl5D,GAC5C,MAAI7H,MAAKgO,QAAQsgE,KAEbr5C,EAAGt0B,EAAKwF,iBAAiB0B,GAAWk5D,EAAM9rC,EAC1CpG,EAAGkyC,EAAMlyC,EAAIluB,EAAK0F,eAAewB,KAIjCotB,EAAG8rC,EAAM9rC,EAAIt0B,EAAKoF,gBAAgB8B,GAClCgnB,EAAGkyC,EAAMlyC,EAAIluB,EAAK0F,eAAewB,KAevCurD,EAAM/gD,UAAUilE,KAAO,SAAU90E,EAAOq5C,EAAQxa,EAAO94B,GAEvC,MAAVszC,IACFA,GAAU77C,KAAKilD,MAAQjlD,KAAKklD,KAAO,EAGrC,IAAIsyB,GAAiB/K,EAASgK,yBAAyBz2E,KAAK2Q,KAAKm+D,YAAa9uE,KAAKilD,MAAOjlD,KAAKklD,KAC3FuyB,EAAuBhL,EAASiL,wBAAwB13E,KAAKgO,QAAQvM,OAAQzB,KAAK2Q,KAAKm+D,YAAa9uE,KAAM67C,GAC1G87B,EAAsBH,EAAiBC,EAGvCvB,EAAWr6B,EAAS47B,GAAwBz3E,KAAKilD,OAASpJ,EAAS47B,IAAyBj1E,EAC5F2zE,EAASt6B,EAAS87B,GAAuB33E,KAAKklD,KAAOrJ,EAAS87B,IAAwBn1E,CAG1FxC,MAAKg0E,eAAe3yC,EAAQ,GAC5BrhC,KAAKi0E,cAAc5yC,EAAQ,EAC3B,IAAIs1C,GAAYlK,EAASmK,mBAAmB52E,KAAK2Q,KAAKm+D,YAAaoH,EAAU70C,GAAO,GAChFw1C,EAAUpK,EAASmK,mBAAmB52E,KAAK2Q,KAAKm+D,YAAaqH,GAAS90C,GAAO,EAC7Es1C,IAAaT,GAAYW,GAAWV,IACtCD,EAAWS,EACXR,EAASU,EAGX,IAAI7oE,IACFuiE,WAAW,EACX2E,QAAQ,EACR3sE,MAAOA,EAETvI,MAAKuyD,SAAS2jB,EAAUC,EAAQnoE,GAEhChO,KAAKg0E,cAAe,EACpBh0E,KAAKi0E,YAAa,GASpB7gB,EAAM/gD,UAAUulE,KAAO,SAAUv2C,GAE/B,GAAIzZ,GAAO5nB,KAAKklD,IAAMllD,KAAKilD,MAGvBixB,EAAWl2E,KAAKilD,MAAQr9B,EAAOyZ,EAC/B80C,EAASn2E,KAAKklD,IAAMt9B,EAAOyZ,CAI/BrhC,MAAKilD,MAAQixB,EACbl2E,KAAKklD,IAAMixB,GAOb/iB,EAAM/gD,UAAUoyC,OAAS,SAAUA,GACjC,GAAI5I,IAAU77C,KAAKilD,MAAQjlD,KAAKklD,KAAO,EAEnCt9B,EAAOi0B,EAAS4I,EAGhByxB,EAAWl2E,KAAKilD,MAAQr9B,EACxBuuD,EAASn2E,KAAKklD,IAAMt9B,EAEpB5Z,GACFuiE,WAAW,EACX2E,QAAQ,EACR3sE,MAAO,KAETvI,MAAKuyD,SAAS2jB,EAAUC,EAAQnoE,IAGlCnO,EAAOD,QAAUwzD,GAIb,SAAUvzD,EAAQD,EAASM,GAIlBA,EAAoB,IAOjCN,GAAQi4E,QAAU,SAAUzgB,EAAQjwD,GAClCA,EAAS60D,aAAe,SAAUzzD,GAC5BA,EAAM6vD,SACRjxD,EAASoB,IAIb6uD,EAAO7lB,GAAG,eAAgBpqC,EAAS60D,eAQrCp8D,EAAQk4E,UAAY,SAAU1gB,EAAQjwD,GAOpC,MANAA,GAAS60D,aAAe,SAAUzzD,GAC5BA,EAAM+zD,SACRn1D,EAASoB,IAIN6uD,EAAO7lB,GAAG,eAAgBpqC,EAAS60D;qCAQ5Cp8D,EAAQm4E,SAAW,SAAU3gB,EAAQjwD,GACnCiwD,EAAO1lB,IAAI,eAAgBvqC,EAAS60D,eAQtCp8D,EAAQo4E,WAAap4E,EAAQm4E,SAW7Bn4E,EAAQq4E,gCAAkC,SAAUC,GAQlD,MALAA,GAAgBjQ,eAAiB,WAE/B,OAJuB,UAOlBiQ,IAKL,SAAUr4E,EAAQD,EAASM,GAW/B,QAASgtE,GAAUv8D,EAAM3C,GACvBhO,KAAKgO,QAAU,KACfhO,KAAKkE,MAAQ,KATf,GAAIvD,GAAOT,EAAoB,EAiB/BgtE,GAAU76D,UAAU6+B,WAAa,SAAUljC,GACrCA,GACFrN,EAAKC,OAAOZ,KAAKgO,QAASA,IAQ9Bk/D,EAAU76D,UAAUotC,OAAS,WAE3B,OAAO,GAMTytB,EAAU76D,UAAUi/B,QAAU,aAU9B47B,EAAU76D,UAAU8lE,WAAa,WAC/B,GAAIC,GAAUp4E,KAAKkE,MAAMm0E,iBAAmBr4E,KAAKkE,MAAMkM,OAASpQ,KAAKkE,MAAMo0E,kBAAoBt4E,KAAKkE,MAAMmM,MAK1G,OAHArQ,MAAKkE,MAAMm0E,eAAiBr4E,KAAKkE,MAAMkM,MACvCpQ,KAAKkE,MAAMo0E,gBAAkBt4E,KAAKkE,MAAMmM,OAEjC+nE,GAGTv4E,EAAOD,QAAUstE,GAIb,SAAUrtE,EAAQD,GAWtBA,EAAQ24E,qBAAuB,SAAU92E,EAAQkP,EAAMm+D,GACrD,GAAIA,IAAgB3qE,MAAMC,QAAQ0qE,GAChC,MAAOlvE,GAAQ24E,qBAAqB92E,EAAQkP,GAAOm+D,GAIrD,IADAn+D,EAAKm+D,eACDA,GACgC,GAA9B3qE,MAAMC,QAAQ0qE,GAAsB,CACtC,IAAK,GAAI/qE,GAAI,EAAGA,EAAI+qE,EAAYlrE,OAAQG,IACtC,OAA8BF,KAA1BirE,EAAY/qE,GAAGy0E,OAAsB,CACvC,GAAIC,KACJA,GAASxzB,MAAQxjD,EAAOqtE,EAAY/qE,GAAGkhD,OAAO3/C,SAASF,UACvDqzE,EAASvzB,IAAMzjD,EAAOqtE,EAAY/qE,GAAGmhD,KAAK5/C,SAASF,UACnDuL,EAAKm+D,YAAYjqE,KAAK4zE,GAG1B9nE,EAAKm+D,YAAY/lD,KAAK,SAAUvlB,EAAGC,GACjC,MAAOD,GAAEyhD,MAAQxhD,EAAEwhD,UAY3BrlD,EAAQm2E,kBAAoB,SAAUt0E,EAAQkP,EAAMm+D,GAClD,GAAIA,IAAgB3qE,MAAMC,QAAQ0qE,GAChC,MAAOlvE,GAAQm2E,kBAAkBt0E,EAAQkP,GAAOm+D,GAGlD,IAAIA,OAAuDjrE,KAAxC8M,EAAKi+D,SAASgE,gBAAgBxiE,MAAqB,CACpExQ,EAAQ24E,qBAAqB92E,EAAQkP,EAAMm+D,EAQ3C,KAAK,GAND7pB,GAAQxjD,EAAOkP,EAAK6qC,MAAMyJ,OAC1BC,EAAMzjD,EAAOkP,EAAK6qC,MAAM0J,KAExBwzB,EAAa/nE,EAAK6qC,MAAM0J,IAAMv0C,EAAK6qC,MAAMyJ,MACzC0zB,EAAYD,EAAa/nE,EAAKi+D,SAASgE,gBAAgBxiE,MAElDrM,EAAI,EAAGA,EAAI+qE,EAAYlrE,OAAQG,IACtC,OAA8BF,KAA1BirE,EAAY/qE,GAAGy0E,OAAsB,CACvC,GAAI1B,GAAYr1E,EAAOqtE,EAAY/qE,GAAGkhD,OAClC8xB,EAAUt1E,EAAOqtE,EAAY/qE,GAAGmhD,IAEpC,IAAoB,gBAAhB4xB,EAAU7zD,GACZ,KAAM,IAAI5e,OAAM,qCAAuCyqE,EAAY/qE,GAAGkhD,MAExE,IAAkB,gBAAd8xB,EAAQ9zD,GACV,KAAM,IAAI5e,OAAM,mCAAqCyqE,EAAY/qE,GAAGmhD,IAGtE,IAAIppB,GAAWi7C,EAAUD,CACzB,IAAIh7C,GAAY,EAAI68C,EAAW,CAE7B,GAAI97C,GAAS,EACT+7C,EAAW1zB,EAAI1nB,OACnB,QAAQsxC,EAAY/qE,GAAGy0E,QACrB,IAAK,QAEC1B,EAAU5lD,OAAS6lD,EAAQ7lD,QAC7B2L,EAAS,GAEXi6C,EAAU7mD,UAAUg1B,EAAMh1B,aAC1B6mD,EAAU/qD,KAAKk5B,EAAMl5B,QACrB+qD,EAAUv4C,SAAS,EAAG,QAEtBw4C,EAAQ9mD,UAAUg1B,EAAMh1B,aACxB8mD,EAAQhrD,KAAKk5B,EAAMl5B,QACnBgrD,EAAQx4C,SAAS,EAAI1B,EAAQ,QAE7B+7C,EAASjoD,IAAI,EAAG,QAChB,MACF,KAAK,SACH,GAAIkoD,GAAY9B,EAAQnvD,KAAKkvD,EAAW,QACpC5lD,EAAM4lD,EAAU5lD,KAGpB4lD,GAAUrpD,KAAKw3B,EAAMx3B,QACrBqpD,EAAU9qD,MAAMi5B,EAAMj5B,SACtB8qD,EAAU/qD,KAAKk5B,EAAMl5B,QACrBgrD,EAAUD,EAAUt5C,QAGpBs5C,EAAU5lD,IAAIA,GACd6lD,EAAQ7lD,IAAIA,GACZ6lD,EAAQpmD,IAAIkoD,EAAW,QAEvB/B,EAAUv4C,SAAS,EAAG,SACtBw4C,EAAQx4C,SAAS,EAAG,SAEpBq6C,EAASjoD,IAAI,EAAG,QAChB,MACF,KAAK,UACCmmD,EAAU9qD,SAAW+qD,EAAQ/qD,UAC/B6Q,EAAS,GAEXi6C,EAAU9qD,MAAMi5B,EAAMj5B,SACtB8qD,EAAU/qD,KAAKk5B,EAAMl5B,QACrB+qD,EAAUv4C,SAAS,EAAG,UAEtBw4C,EAAQ/qD,MAAMi5B,EAAMj5B,SACpB+qD,EAAQhrD,KAAKk5B,EAAMl5B,QACnBgrD,EAAQx4C,SAAS,EAAG,UACpBw4C,EAAQpmD,IAAIkM,EAAQ,UAEpB+7C,EAASjoD,IAAI,EAAG,SAChB,MACF,KAAK,SACCmmD,EAAU/qD,QAAUgrD,EAAQhrD,SAC9B8Q,EAAS,GAEXi6C,EAAU/qD,KAAKk5B,EAAMl5B,QACrB+qD,EAAUv4C,SAAS,EAAG,SACtBw4C,EAAQhrD,KAAKk5B,EAAMl5B,QACnBgrD,EAAQx4C,SAAS,EAAG,SACpBw4C,EAAQpmD,IAAIkM,EAAQ,SAEpB+7C,EAASjoD,IAAI,EAAG,QAChB,MACF,SAEE,WADAnL,SAAQotC,IAAI,2EAA4Ekc,EAAY/qE,GAAGy0E,QAG3G,KAAO1B,EAAY8B,GAEjB,OADAjoE,EAAKm+D,YAAYjqE,MAAOogD,MAAO6xB,EAAU1xE,UAAW8/C,IAAK6xB,EAAQ3xE,YACzD0pE,EAAY/qE,GAAGy0E,QACrB,IAAK,QACH1B,EAAUnmD,IAAI,EAAG,QACjBomD,EAAQpmD,IAAI,EAAG,OACf,MACF,KAAK,SACHmmD,EAAUnmD,IAAI,EAAG,SACjBomD,EAAQpmD,IAAI,EAAG,QACf,MACF,KAAK,UACHmmD,EAAUnmD,IAAI,EAAG,UACjBomD,EAAQpmD,IAAI,EAAG,SACf,MACF,KAAK,SACHmmD,EAAUnmD,IAAI,EAAG,KACjBomD,EAAQpmD,IAAI,EAAG,IACf,MACF,SAEE,WADAnL,SAAQotC,IAAI,2EAA4Ekc,EAAY/qE,GAAGy0E,QAI7G7nE,EAAKm+D,YAAYjqE,MAAOogD,MAAO6xB,EAAU1xE,UAAW8/C,IAAK6xB,EAAQ3xE,aAKvExF,EAAQk5E,iBAAiBnoE,EAEzB,IAAIooE,GAAcn5E,EAAQo5E,SAASroE,EAAK6qC,MAAMyJ,MAAOt0C,EAAKm+D,aACtDmK,EAAYr5E,EAAQo5E,SAASroE,EAAK6qC,MAAM0J,IAAKv0C,EAAKm+D,aAClDoK,EAAavoE,EAAK6qC,MAAMyJ,MACxBk0B,EAAWxoE,EAAK6qC,MAAM0J,GACA,IAAtB6zB,EAAYK,SACdF,EAAwC,GAA3BvoE,EAAK6qC,MAAMw4B,aAAuB+E,EAAYjC,UAAY,EAAIiC,EAAYhC,QAAU,GAE3E,GAApBkC,EAAUG,SACZD,EAAoC,GAAzBxoE,EAAK6qC,MAAMy4B,WAAqBgF,EAAUnC,UAAY,EAAImC,EAAUlC,QAAU,GAEjE,GAAtBgC,EAAYK,QAAsC,GAApBH,EAAUG,QAC1CzoE,EAAK6qC,MAAMs6B,YAAYoD,EAAYC,KAUzCv5E,EAAQk5E,iBAAmB,SAAUnoE,GAGnC,IAAK,GAFDm+D,GAAcn+D,EAAKm+D,YACnBuK,KACKt1E,EAAI,EAAGA,EAAI+qE,EAAYlrE,OAAQG,IACtC,IAAK,GAAI8J,GAAI,EAAGA,EAAIihE,EAAYlrE,OAAQiK,IAClC9J,GAAK8J,GAA8B,GAAzBihE,EAAYjhE,GAAG+lC,QAA2C,GAAzBk7B,EAAY/qE,GAAG6vC,SAExDk7B,EAAYjhE,GAAGo3C,OAAS6pB,EAAY/qE,GAAGkhD,OAAS6pB,EAAYjhE,GAAGq3C,KAAO4pB,EAAY/qE,GAAGmhD,IACvF4pB,EAAYjhE,GAAG+lC,QAAS,EAGjBk7B,EAAYjhE,GAAGo3C,OAAS6pB,EAAY/qE,GAAGkhD,OAAS6pB,EAAYjhE,GAAGo3C,OAAS6pB,EAAY/qE,GAAGmhD,KAC5F4pB,EAAY/qE,GAAGmhD,IAAM4pB,EAAYjhE,GAAGq3C,IACpC4pB,EAAYjhE,GAAG+lC,QAAS,GAGjBk7B,EAAYjhE,GAAGq3C,KAAO4pB,EAAY/qE,GAAGkhD,OAAS6pB,EAAYjhE,GAAGq3C,KAAO4pB,EAAY/qE,GAAGmhD,MACxF4pB,EAAY/qE,GAAGkhD,MAAQ6pB,EAAYjhE,GAAGo3C,MACtC6pB,EAAYjhE,GAAG+lC,QAAS,GAMpC,KAAK,GAAI7vC,GAAI,EAAGA,EAAI+qE,EAAYlrE,OAAQG,KACR,IAA1B+qE,EAAY/qE,GAAG6vC,QACjBylC,EAAUx0E,KAAKiqE,EAAY/qE,GAI/B4M,GAAKm+D,YAAcuK,EACnB1oE,EAAKm+D,YAAY/lD,KAAK,SAAUvlB,EAAGC,GACjC,MAAOD,GAAEyhD,MAAQxhD,EAAEwhD,SAIvBrlD,EAAQ05E,WAAa,SAAUpuC,GAC7B,IAAK,GAAInnC,GAAI,EAAGA,EAAImnC,EAAMtnC,OAAQG,IAChCyhB,QAAQotC,IAAI7uD,EAAG,GAAIlB,MAAKqoC,EAAMnnC,GAAGkhD,OAAQ,GAAIpiD,MAAKqoC,EAAMnnC,GAAGmhD,KAAMha,EAAMnnC,GAAGkhD,MAAO/Z,EAAMnnC,GAAGmhD,IAAKha,EAAMnnC,GAAG6vC,SAU5Gh0C,EAAQ25E,oBAAsB,SAAU93E,EAAQ+3E,EAAUC,GAGxD,IAAK,GAFDC,IAAe,EACfC,EAAeH,EAASI,QAAQx0E,UAC3BrB,EAAI,EAAGA,EAAIy1E,EAAS1K,YAAYlrE,OAAQG,IAAK,CACpD,GAAI+yE,GAAY0C,EAAS1K,YAAY/qE,GAAGkhD,MACpC8xB,EAAUyC,EAAS1K,YAAY/qE,GAAGmhD,GACtC,IAAIy0B,GAAgB7C,GAAa6C,EAAe5C,EAAS,CACvD2C,GAAe,CACf,QAIJ,GAAoB,GAAhBA,GAAwBC,EAAeH,EAASpnB,KAAKhtD,WAAau0E,GAAgBF,EAAc,CAClG,GAAIzqE,GAAYvN,EAAOg4E,GACnB7zE,EAAWnE,EAAOs1E,EAElB/nE,GAAU+c,QAAUnmB,EAASmmB,OAC/BytD,EAASK,cAAe,EACf7qE,EAAUgd,SAAWpmB,EAASomB,QACvCwtD,EAASM,eAAgB,EAChB9qE,EAAUihB,aAAerqB,EAASqqB,cAC3CupD,EAASO,aAAc,GAGzBP,EAASI,QAAUh0E,IAkCvBhG,EAAQovE,SAAW,SAAUxC,EAAMlsC,EAAMlwB,GACvC,GAAoC,GAAhCo8D,EAAK77D,KAAKm+D,YAAYlrE,OAAa,CACrC,GAAIoxE,GAAaxI,EAAKhxB,MAAMw5B,WAAW5kE,EACvC,QAAQkwB,EAAKl7B,UAAY4vE,EAAWn4C,QAAUm4C,EAAWxyE,MAEzD,GAAI42E,GAASx5E,EAAQo5E,SAAS14C,EAAMksC,EAAK77D,KAAKm+D,YACzB,IAAjBsK,EAAOA,SACT94C,EAAO84C,EAAOtC,UAGhB,IAAIh7C,GAAWl8B,EAAQ62E,yBAAyBjK,EAAK77D,KAAKm+D,YAAatC,EAAKhxB,MAAMyJ,MAAOunB,EAAKhxB,MAAM0J,IACpG,IAAI5kB,EAAOksC,EAAKhxB,MAAMyJ,MAAO,CAC3B,GAAI+vB,GAAaxI,EAAKhxB,MAAMw5B,WAAW5kE,EAAO0rB,GAC1Ck+C,EAAoBp6E,EAAQq6E,6BAA6BzN,EAAK77D,KAAKm+D,YAAaxuC,EAAM00C,EAAWn4C,OAGrG,OAFAyD,GAAOksC,EAAKx+D,QAAQvM,OAAO6+B,GAAMh7B,SAASF,UAC1Ck7B,GAAc05C,IACLhF,EAAWn4C,OAASyD,EAAKl7B,WAAa4vE,EAAWxyE,MACrD,GAAI89B,EAAOksC,EAAKhxB,MAAM0J,IAAK,CAChC,GAAIg1B,IAAkBj1B,MAAOunB,EAAKhxB,MAAMyJ,MAAOC,IAAK5kB,EACpDA,GAAO1gC,EAAQu6E,qBAAqB3N,EAAKx+D,QAAQvM,OAAQ+qE,EAAK77D,KAAKm+D,YAAaoL,EAAe55C,EAC/F,IAAI00C,GAAaxI,EAAKhxB,MAAMw5B,WAAW5kE,EAAO0rB,EAC9C,QAAQwE,EAAKl7B,UAAY4vE,EAAWn4C,QAAUm4C,EAAWxyE,MAEzD89B,EAAO1gC,EAAQu6E,qBAAqB3N,EAAKx+D,QAAQvM,OAAQ+qE,EAAK77D,KAAKm+D,YAAatC,EAAKhxB,MAAOlb,EAC5F,IAAI00C,GAAaxI,EAAKhxB,MAAMw5B,WAAW5kE,EAAO0rB,EAC9C,QAAQwE,EAAKl7B,UAAY4vE,EAAWn4C,QAAUm4C,EAAWxyE,OAa/D5C,EAAQwvE,OAAS,SAAU5C,EAAMv3C,EAAG7kB,GAClC,GAAoC,GAAhCo8D,EAAK77D,KAAKm+D,YAAYlrE,OAAa,CACrC,GAAIoxE,GAAaxI,EAAKhxB,MAAMw5B,WAAW5kE,EACvC,OAAO,IAAIvN,MAAKoyB,EAAI+/C,EAAWxyE,MAAQwyE,EAAWn4C,QAElD,GAAI26C,GAAiB53E,EAAQ62E,yBAAyBjK,EAAK77D,KAAKm+D,YAAatC,EAAKhxB,MAAMyJ,MAAOunB,EAAKhxB,MAAM0J,KACtGk1B,EAAgB5N,EAAKhxB,MAAM0J,IAAMsnB,EAAKhxB,MAAMyJ,MAAQuyB,EACpD6C,EAAkBD,EAAgBnlD,EAAI7kB,EACtCkqE,EAA4B16E,EAAQ26E,6BAA6B/N,EAAK77D,KAAKm+D,YAAatC,EAAKhxB,MAAO6+B,EAGxG,OADc,IAAIx3E,MAAKy3E,EAA4BD,EAAkB7N,EAAKhxB,MAAMyJ,QAYpFrlD,EAAQ62E,yBAA2B,SAAU3H,EAAa7pB,EAAOC,GAE/D,IAAK,GADDppB,GAAW,EACN/3B,EAAI,EAAGA,EAAI+qE,EAAYlrE,OAAQG,IAAK,CAC3C,GAAI+yE,GAAYhI,EAAY/qE,GAAGkhD,MAC3B8xB,EAAUjI,EAAY/qE,GAAGmhD,GAEzB4xB,IAAa7xB,GAAS8xB,EAAU7xB,IAClCppB,GAAYi7C,EAAUD,GAG1B,MAAOh7C,IAWTl8B,EAAQq6E,6BAA+B,SAAUnL,EAAa7pB,EAAOC,GAEnE,IAAK,GADDppB,GAAW,EACN/3B,EAAI,EAAGA,EAAI+qE,EAAYlrE,OAAQG,IAAK,CAC3C,GAAI+yE,GAAYhI,EAAY/qE,GAAGkhD,MAC3B8xB,EAAUjI,EAAY/qE,GAAGmhD,GAEzB4xB,IAAa7xB,GAAS8xB,GAAW7xB,IACnCppB,GAAYi7C,EAAUD,GAG1B,MAAOh7C,IAWTl8B,EAAQu6E,qBAAuB,SAAU14E,EAAQqtE,EAAatzB,EAAOlb,GAGnE,MAFAA,GAAO7+B,EAAO6+B,GAAMh7B,SAASF,UAC7Bk7B,GAAQ1gC,EAAQ83E,wBAAwBj2E,EAAQqtE,EAAatzB,EAAOlb,IAItE1gC,EAAQ83E,wBAA0B,SAAUj2E,EAAQqtE,EAAatzB,EAAOlb,GACtE,GAAIk6C,GAAa,CACjBl6C,GAAO7+B,EAAO6+B,GAAMh7B,SAASF,SAE7B,KAAK,GAAIrB,GAAI,EAAGA,EAAI+qE,EAAYlrE,OAAQG,IAAK,CAC3C,GAAI+yE,GAAYhI,EAAY/qE,GAAGkhD,MAC3B8xB,EAAUjI,EAAY/qE,GAAGmhD,GAEzB4xB,IAAat7B,EAAMyJ,OAAS8xB,EAAUv7B,EAAM0J,KAC1C5kB,GAAQy2C,IACVyD,GAAczD,EAAUD,GAI9B,MAAO0D,IAWT56E,EAAQ26E,6BAA+B,SAAUzL,EAAatzB,EAAOi/B,GAKnE,IAAK,GAJDjD,GAAiB,EACjB17C,EAAW,EACX4+C,EAAgBl/B,EAAMyJ,MAEjBlhD,EAAI,EAAGA,EAAI+qE,EAAYlrE,OAAQG,IAAK,CAC3C,GAAI+yE,GAAYhI,EAAY/qE,GAAGkhD,MAC3B8xB,EAAUjI,EAAY/qE,GAAGmhD,GAE7B,IAAI4xB,GAAat7B,EAAMyJ,OAAS8xB,EAAUv7B,EAAM0J,IAAK,CAGnD,GAFAppB,GAAYg7C,EAAY4D,EACxBA,EAAgB3D,EACZj7C,GAAY2+C,EACd,KAEAjD,IAAkBT,EAAUD,GAKlC,MAAOU,IAWT53E,EAAQg3E,mBAAqB,SAAU9H,EAAaxuC,EAAMR,EAAW66C,GACnE,GAAI3B,GAAWp5E,EAAQo5E,SAAS14C,EAAMwuC,EACtC,OAAuB,IAAnBkK,EAASI,OACPt5C,EAAY,EACW,GAArB66C,EACK3B,EAASlC,WAAakC,EAASjC,QAAUz2C,GAAQ,EAEjD04C,EAASlC,UAAY,EAGL,GAArB6D,EACK3B,EAASjC,SAAWz2C,EAAO04C,EAASlC,WAAa,EAEjDkC,EAASjC,QAAU,EAIvBz2C,GAWX1gC,EAAQo5E,SAAW,SAAU14C,EAAMwuC,GACjC,IAAK,GAAI/qE,GAAI,EAAGA,EAAI+qE,EAAYlrE,OAAQG,IAAK,CAC3C,GAAI+yE,GAAYhI,EAAY/qE,GAAGkhD,MAC3B8xB,EAAUjI,EAAY/qE,GAAGmhD,GAE7B,IAAI5kB,GAAQw2C,GAAax2C,EAAOy2C,EAE9B,OAASqC,QAAQ,EAAMtC,UAAWA,EAAWC,QAASA,GAG1D,OAASqC,QAAQ,EAAOtC,UAAWA,EAAWC,QAASA,KAKrD,SAAUl3E,EAAQD,EAASM,GAY/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAmBzF,QAAS0rE,MA3BT,GAAIrvD,GAAajd,EAAoB,IAEjCixC,EAActwC,EAAuBsc,GAErC5b,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAIlCk2C,EAAUv3C,EAAoB,IAC9BgvC,EAAShvC,EAAoB,KAC7B06E,EAAa16E,EAAoB,KACjCS,EAAOT,EAAoB,GAK3B0tE,GAJU1tE,EAAoB,IACnBA,EAAoB,IACvBA,EAAoB,KAClBA,EAAoB,KACnBA,EAAoB,MAC/B26E,EAAY36E,EAAoB,KAChCusE,EAAWvsE,EAAoB,KAC/BktE,EAAaltE,EAAoB,IASrCu3C,GAAQ+0B,EAAKn6D,WASbm6D,EAAKn6D,UAAUlR,QAAU,SAAUi1C,GA0IjC,QAAS0kC,GAAavyE,GAMpB,GALIvI,KAAK+6E,YACP/6E,KAAK+rD,KAAK,aAAcxjD,GAIrBvI,KAAKgO,QAAQgtE,iBAAkBh7E,KAAKgO,QAAQipE,kBAG5Cj3E,KAAKgO,QAAQgpE,UAAWzuE,EAAMvI,KAAKgO,QAAQgpE,SAAhD,CAIAzuE,EAAMD,gBAEN,IAAI+4B,GAAQ,CACR94B,GAAMukD,WAERzrB,EAAQ94B,EAAMukD,WAAa,IAClBvkD,EAAMwkD,SAIf1rB,GAAS94B,EAAMwkD,OAAS,EAG1B,IAAI6sB,GAAU55E,KAAKkE,MAAM+2E,UACrBC,EAAWtB,EAAkB,IAARv4C,CAErBrhC,MAAK+6E,aACP/6E,KAAKm7E,cAAcD,GACnBl7E,KAAK2wE,UACL3wE,KAAK+rD,KAAK,SAAUxjD,KAcxB,QAAS6yE,GAAkB7yE,GACzB,GAAK0pC,EAAGjkC,QAAQgtE,iBAChBzyE,EAAMD,iBACF2pC,EAAG8oC,YAAY,CACjB,GAAIG,IAAY3yE,EAAMI,OAAOsyE,SAC7BhpC,GAAGkpC,cAAcD,GACjBjpC,EAAG0+B,UACH1+B,EAAG8Z,KAAK,aAAcxjD,IAS1B,QAAS8yE,GAAe9yE,GAMtB,GALIA,EAAMD,gBACRC,EAAMD,oBAIHC,EAAMI,OAAOjC,UAAU9B,QAAQ,QAAU,GAG1C02E,GAIJ,MAFA/yE,GAAMgzE,aAAaC,WAAa,OAChCF,GAAsB,GACf,EAGT,QAASG,GAAWlzE,GAEdA,EAAMD,gBACRC,EAAMD,iBAEJC,EAAMmvD,iBACRnvD,EAAMmvD,iBAGR,KAEE,IADex6C,KAAKja,MAAMsF,EAAMgzE,aAAaG,QAAQ,SACvCjrC,QAAS,OACvB,MAAO7+B,GACP,OAAO,EAUT,MAPA0pE,IAAsB,EACtB/yE,EAAMszC,QACJ5mB,EAAG1sB,EAAM4uC,QACTtoB,EAAGtmB,EAAM+uC,SAEXrF,EAAGy9B,QAAQiM,WAAWpzE,GACtB0pC,EAAG8Z,KAAK,OAAQ9Z,EAAG49B,mBAAmBtnE,KAC/B,EA9OTvI,KAAK+tD,OAEL/tD,KAAK+tD,IAAI3X,UAAYA,EAErBp2C,KAAK+tD,IAAIruD,KAAOwQ,SAASC,cAAc,OACvCnQ,KAAK+tD,IAAIriD,WAAawE,SAASC,cAAc,OAC7CnQ,KAAK+tD,IAAI6tB,mBAAqB1rE,SAASC,cAAc,OACrDnQ,KAAK+tD,IAAI8tB,qBAAuB3rE,SAASC,cAAc,OACvDnQ,KAAK+tD,IAAI6kB,gBAAkB1iE,SAASC,cAAc,OAClDnQ,KAAK+tD,IAAI+tB,cAAgB5rE,SAASC,cAAc,OAChDnQ,KAAK+tD,IAAIguB,eAAiB7rE,SAASC,cAAc,OACjDnQ,KAAK+tD,IAAIlS,OAAS3rC,SAASC,cAAc,OACzCnQ,KAAK+tD,IAAI7nD,KAAOgK,SAASC,cAAc,OACvCnQ,KAAK+tD,IAAI3nD,MAAQ8J,SAASC,cAAc,OACxCnQ,KAAK+tD,IAAIznD,IAAM4J,SAASC,cAAc,OACtCnQ,KAAK+tD,IAAIpP,OAASzuC,SAASC,cAAc,OACzCnQ,KAAK+tD,IAAIiuB,UAAY9rE,SAASC,cAAc,OAC5CnQ,KAAK+tD,IAAIkuB,aAAe/rE,SAASC,cAAc,OAC/CnQ,KAAK+tD,IAAImuB,cAAgBhsE,SAASC,cAAc,OAChDnQ,KAAK+tD,IAAIouB,iBAAmBjsE,SAASC,cAAc,OACnDnQ,KAAK+tD,IAAIquB,eAAiBlsE,SAASC,cAAc,OACjDnQ,KAAK+tD,IAAIsuB,kBAAoBnsE,SAASC,cAAc,OACpDnQ,KAAK+tD,IAAI+mB,eAAiB5kE,SAASC,cAAc,OAEjDnQ,KAAK+tD,IAAIruD,KAAKgH,UAAY,eAC1B1G,KAAK+tD,IAAIriD,WAAWhF,UAAY,2BAChC1G,KAAK+tD,IAAI6tB,mBAAmBl1E,UAAY,wCACxC1G,KAAK+tD,IAAI8tB,qBAAqBn1E,UAAY,0CAC1C1G,KAAK+tD,IAAI6kB,gBAAgBlsE,UAAY,uBACrC1G,KAAK+tD,IAAI+tB,cAAcp1E,UAAY,qBACnC1G,KAAK+tD,IAAIguB,eAAer1E,UAAY,sBACpC1G,KAAK+tD,IAAIznD,IAAII,UAAY,oBACzB1G,KAAK+tD,IAAIpP,OAAOj4C,UAAY,uBAC5B1G,KAAK+tD,IAAI7nD,KAAKQ,UAAY,cAC1B1G,KAAK+tD,IAAIlS,OAAOn1C,UAAY,cAC5B1G,KAAK+tD,IAAI3nD,MAAMM,UAAY,cAC3B1G,KAAK+tD,IAAIiuB,UAAUt1E,UAAY,qBAC/B1G,KAAK+tD,IAAIkuB,aAAav1E,UAAY,wBAClC1G,KAAK+tD,IAAImuB,cAAcx1E,UAAY,qBACnC1G,KAAK+tD,IAAIouB,iBAAiBz1E,UAAY,wBACtC1G,KAAK+tD,IAAIquB,eAAe11E,UAAY,qBACpC1G,KAAK+tD,IAAIsuB,kBAAkB31E,UAAY,wBACvC1G,KAAK+tD,IAAI+mB,eAAepuE,UAAY,uBAEpC1G,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAIriD,YACnC1L,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAI6tB,oBACnC57E,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAI8tB,sBACnC77E,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAI6kB,iBACnC5yE,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAI+tB,eACnC97E,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAIguB,gBACnC/7E,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAIznD,KACnCtG,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAIpP,QACnC3+C,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAIpP,QACnC3+C,KAAK+tD,IAAIruD,KAAKgR,YAAY1Q,KAAK+tD,IAAI+mB,gBAEnC90E,KAAK+tD,IAAI6kB,gBAAgBliE,YAAY1Q,KAAK+tD,IAAIlS,QAC9C77C,KAAK+tD,IAAI+tB,cAAcprE,YAAY1Q,KAAK+tD,IAAI7nD,MAC5ClG,KAAK+tD,IAAIguB,eAAerrE,YAAY1Q,KAAK+tD,IAAI3nD,OAC7CpG,KAAK+tD,IAAI6kB,gBAAgBliE,YAAY1Q,KAAK+tD,IAAIiuB,WAC9Ch8E,KAAK+tD,IAAI6kB,gBAAgBliE,YAAY1Q,KAAK+tD,IAAIkuB,cAC9Cj8E,KAAK+tD,IAAI+tB,cAAcprE,YAAY1Q,KAAK+tD,IAAImuB,eAC5Cl8E,KAAK+tD,IAAI+tB,cAAcprE,YAAY1Q,KAAK+tD,IAAIouB,kBAC5Cn8E,KAAK+tD,IAAIguB,eAAerrE,YAAY1Q,KAAK+tD,IAAIquB,gBAC7Cp8E,KAAK+tD,IAAIguB,eAAerrE,YAAY1Q,KAAK+tD,IAAIsuB,mBAG7Cr8E,KAAKkE,OACHxE,QACAgM,cACAknE,mBACAkJ,iBACAC,kBACAlgC,UACA31C,QACAE,SACAE,OACAq4C,UACAhzC,UACAsvE,UAAW,EACXqB,aAAc,GAGhBt8E,KAAKuxC,GAAG,cAAe,YACQ,IAAzBvxC,KAAKu8E,iBACPv8E,KAAK2wE,WAEP/Y,KAAK53D,OACPA,KAAKuxC,GAAG,QAASvxC,KAAK40E,SAAShd,KAAK53D,OACpCA,KAAKuxC,GAAG,UAAWvxC,KAAKy0E,QAAQ7c,KAAK53D,MAErC,IAAIiyC,GAAKjyC,IACTA,MAAKw8E,YAAcx8E,KAAK2wE,QAAQ/Y,KAAK53D,MACrCA,KAAK2wE,QAAUhwE,EAAK6G,SAASxH,KAAKw8E,aAElCx8E,KAAKuxC,GAAG,UAAW,SAAU4nB,GACvBlnB,EAAGy9B,SAAWz9B,EAAGy9B,QAAQ+M,qBAAuBtjB,GAAkC,GAApBA,EAAW/nB,MAC3Ea,EAAG0+B,UAEH1+B,EAAGuqC,gBAMPx8E,KAAKo3D,OAAS,GAAIloB,GAAOlvC,KAAK+tD,IAAIruD,KAClC,IAAIw4E,GAAkBl4E,KAAKo3D,OAAO3/C,IAAI,SAASsH,KAAMs8C,QAAQ,GAC7Duf,GAAW3C,gCAAgCC,GAC3Cl4E,KAAKo3D,OAAO3/C,IAAI,OAAOsH,KAAMqnB,UAAW,EAAGtG,UAAWoP,EAAOm2B,uBAC7DrlE,KAAKovD,cAES,MAAO,YAAa,QAAS,QAAS,MAAO,WAAY,UAAW,UAO3EloD,QAAQ,SAAUjC,GACvB,GAAI8C,GAAW,SAAkBQ,GAC3B0pC,EAAG8oC,YACL9oC,EAAG8Z,KAAK9mD,EAAMsD,GAGlB0pC,GAAGmlB,OAAO7lB,GAAGtsC,EAAM8C,GACnBkqC,EAAGmd,UAAUnqD,GAAQ8C,IAIvB6yE,EAAW/C,QAAQ73E,KAAKo3D,OAAQ,SAAU7uD,GACxC0pC,EAAG8Z,KAAK,QAASxjD,IACjBqvD,KAAK53D,OAGP46E,EAAW9C,UAAU93E,KAAKo3D,OAAQ,SAAU7uD,GAC1C0pC,EAAG8Z,KAAK,UAAWxjD,IACnBqvD,KAAK53D,OAsCHA,KAAK+tD,IAAI6kB,gBAAgBhrE,kBAE3B5H,KAAK+tD,IAAI6kB,gBAAgBhrE,iBAAiB,aAAckzE,EAAaljB,KAAK53D,OAAO,GAEjFA,KAAK+tD,IAAI6kB,gBAAgBhrE,iBAAiB,iBAAkBkzE,EAAaljB,KAAK53D,OAAO,IAGrFA,KAAK+tD,IAAI6kB,gBAAgBzqE,YAAY,eAAgB2yE,EAAaljB,KAAK53D,OAczEA,KAAK+tD,IAAI7nD,KAAK4C,WAAWlB,iBAAiB,SAAUwzE,EAAkBxjB,KAAK53D,OAC3EA,KAAK+tD,IAAI3nD,MAAM0C,WAAWlB,iBAAiB,SAAUwzE,EAAkBxjB,KAAK53D,MAE5E,IAAIs7E,IAAsB,CAwD1B,IAZAt7E,KAAK+tD,IAAIlS,OAAOj0C,iBAAiB,WAAYyzE,EAAezjB,KAAK53D,OAAO,GACxEA,KAAK+tD,IAAIlS,OAAOj0C,iBAAiB,OAAQ6zE,EAAW7jB,KAAK53D,OAAO,GAEhEA,KAAK08E,eAGL18E,KAAK+gE,SAEL/gE,KAAK28E,YAAc,EACnB38E,KAAKu8E,iBAAkB,GAGlBnmC,EAAW,KAAM,IAAI/xC,OAAM,wBAChC+xC,GAAU1lC,YAAY1Q,KAAK+tD,IAAIruD,OA4BjC8sE,EAAKn6D,UAAU6+B,WAAa,SAAUljC,GACpC,GAAIA,EAAS,CAEX,GAAIV,IAAU,QAAS,SAAU,YAAa,YAAa,aAAc,QAAS,MAAO,aAAc,iBAAkB,cAAe,SAAU,UAAW,SAAU,MAAO,UAAW,mBAAoB,iBAmC7M,IAlCA3M,EAAKsD,gBAAgBqJ,EAAQtN,KAAKgO,QAASA,GAE3ChO,KAAK+tD,IAAI+mB,eAAezoE,MAAMmE,WAAa,SAEvCxQ,KAAKgO,QAAQsgE,MACftuE,KAAK+tD,IAAI3X,UAAU/pC,MAAMyzB,UAAY,MACrC9/B,KAAK+tD,IAAI6tB,mBAAmBl1E,UAAY,6CAGtC1G,KAAKgO,QAAQgtE,iBACXh7E,KAAKgO,QAAQsgE,IACftuE,KAAK+tD,IAAIguB,eAAer1E,UAAY,0CAEpC1G,KAAK+tD,IAAI+tB,cAAcp1E,UAAY,0CAIvC1G,KAAKgO,QAAQkgE,aAAgBt/D,SAAM/K,GAAWsqE,SAAMtqE,IAChD,eAAiBmK,KACgB,gBAAxBA,GAAQkgE,YACjBluE,KAAKgO,QAAQkgE,aACXt/D,KAAMZ,EAAQkgE,YACdC,KAAMngE,EAAQkgE,aAE2C,YAAlD,EAAI1sE,EAAkB,SAAGwM,EAAQkgE,eACtC,QAAUlgE,GAAQkgE,cACpBluE,KAAKgO,QAAQkgE,YAAYt/D,KAAOZ,EAAQkgE,YAAYt/D,MAElD,QAAUZ,GAAQkgE,cACpBluE,KAAKgO,QAAQkgE,YAAYC,KAAOngE,EAAQkgE,YAAYC,QAKpB,SAAlCnuE,KAAKgO,QAAQkgE,YAAYC,MAC3B,IAAKnuE,KAAKwvE,UAAW,CACnB,GAAIA,GAAYxvE,KAAKwvE,UAAY,GAAI5B,GAAS5tE,KAAK2Q,KACnD6+D,GAAUt+B,WAAa,SAAUljC,GAC/B,GAAI6iC,GAAW7iC,EAAUrN,EAAKC,UAAWoN,KACzC6iC,GAASq9B,YAAc,MACvBN,EAASv7D,UAAU6+B,WAAW3wC,KAAKivE,EAAW3+B,IAEhD7wC,KAAK2sE,WAAW9nE,KAAK2qE,QAGvB,IAAIxvE,KAAKwvE,UAAW,CAClB,GAAIz8D,GAAQ/S,KAAK2sE,WAAW/nE,QAAQ5E,KAAKwvE,YAC1B,IAAXz8D,GACF/S,KAAK2sE,WAAW50C,OAAOhlB,EAAO,GAEhC/S,KAAKwvE,UAAUl+B,UACftxC,KAAKwvE,UAAY,KA4BrB,GAvBiC,kBAAtBxhE,GAAQ4uE,aACjB5uE,EAAQ4uE,YACNC,SAAU7uE,EAAQ4uE,aAIlB,eAAiB58E,MAAKgO,SACxBy+D,EAAS8L,qBAAqBv4E,KAAKgO,QAAQvM,OAAQzB,KAAK2Q,KAAM3Q,KAAKgO,QAAQ8gE,aAGzE,cAAgB9gE,KACdA,EAAQ8uE,WACL98E,KAAK+8E,YACR/8E,KAAK+8E,UAAY,GAAIlC,GAAU76E,KAAK+tD,IAAIruD,OAGtCM,KAAK+8E,YACP/8E,KAAK+8E,UAAUzrC,gBACRtxC,MAAK+8E,YAKd,kBAAoB/uE,GACtB,KAAM,IAAI3J,OAAM,0GAIlBrE,MAAKg9E,kBASP,GALAh9E,KAAK2sE,WAAWzlE,QAAQ,SAAU+1E,GAChC,MAAOA,GAAU/rC,WAAWljC,KAI1B,aAAeA,GAAS,CACrBhO,KAAKk9E,eACRl9E,KAAKk9E,aAAel9E,KAAKixE,uBAG3BjxE,KAAKk9E,aAAahsC,WAAWljC,EAAQmvE,UAGrC,IAAIC,GAAiBz8E,EAAK+D,cAAe1E,KAAKgO,QAC9ChO,MAAK2sE,WAAWzlE,QAAQ,SAAU+1E,GAChCt8E,EAAK+D,WAAW04E,EAAgBH,EAAUjvE,WAE5ChO,KAAKk9E,aAAaG,kBAAmBxrE,OAAQurE,IAG/Cp9E,KAAK2wE,WAOPnE,EAAKn6D,UAAU0oE,SAAW,WACxB,OAAQ/6E,KAAK+8E,WAAa/8E,KAAK+8E,UAAUO,QAM3C9Q,EAAKn6D,UAAUi/B,QAAU,WAEvBtxC,KAAK0wE,SAAS,MACd1wE,KAAKywE,UAAU,MAGfzwE,KAAK0xC,MAGL1xC,KAAKu9E,kBAGDv9E,KAAK+tD,IAAIruD,KAAKoJ,YAChB9I,KAAK+tD,IAAIruD,KAAKoJ,WAAW5G,YAAYlC,KAAK+tD,IAAIruD,MAEhDM,KAAK+tD,IAAM,KAGP/tD,KAAK+8E,YACP/8E,KAAK+8E,UAAUzrC,gBACRtxC,MAAK+8E,UAId,KAAK,GAAIx0E,KAASvI,MAAKovD,UACjBpvD,KAAKovD,UAAU9rD,eAAeiF,UACzBvI,MAAKovD,UAAU7mD,EAG1BvI,MAAKovD,UAAY,KACjBpvD,KAAKo3D,OAAS,KAGdp3D,KAAK2sE,WAAWzlE,QAAQ,SAAU+1E,GAChC,MAAOA,GAAU3rC,YAGnBtxC,KAAK2Q,KAAO,MAQd67D,EAAKn6D,UAAUmrE,cAAgB,SAAUl9C,EAAMjgC,GAC7C,GAAIq8E,GAAc18E,KAAK08E,YAAY51E,OAAO,SAAUm2E,GAClD,MAAO58E,KAAO48E,EAAUjvE,QAAQ3N,IAGlC,IAA2B,IAAvBq8E,EAAY94E,OACd,KAAM,IAAIS,OAAM,qCAAsC,EAAI8sC,EAAqB,SAAG9wC,GAGhFq8E,GAAY94E,OAAS,GACvB84E,EAAY,GAAGc,cAAcl9C,IASjCksC,EAAKn6D,UAAUorE,cAAgB,SAAUp9E,GACvC,GAAIq8E,GAAc18E,KAAK08E,YAAY51E,OAAO,SAAUm2E,GAClD,MAAOA,GAAUjvE,QAAQ3N,KAAOA,GAGlC,IAA2B,IAAvBq8E,EAAY94E,OACd,KAAM,IAAIS,OAAM,qCAAsC,EAAI8sC,EAAqB,SAAG9wC,GAEpF,OAAOq8E,GAAY,GAAGe,iBAQxBjR,EAAKn6D,UAAUqrE,mBAAqB,SAAUC,EAAOt9E,GACnD,GAAIq8E,GAAc18E,KAAK08E,YAAY51E,OAAO,SAAUm2E,GAClD,MAAOA,GAAUjvE,QAAQ3N,KAAOA,GAGlC,IAA2B,IAAvBq8E,EAAY94E,OACd,KAAM,IAAIS,OAAM,qCAAsC,EAAI8sC,EAAqB,SAAG9wC,GAEpF,IAAIq8E,EAAY94E,OAAS,EACvB,MAAO84E,GAAY,GAAGkB,eAAeD,IAUzCnR,EAAKn6D,UAAUw9D,mBAAqB,SAAUtnE,GAC5C,OAASA,MAAOA,IAalBikE,EAAKn6D,UAAUwrE,cAAgB,SAAUv9C,EAAMjgC,GAC7C,GAAIy9E,OAAqBj6E,KAATy8B,EAAqB3/B,EAAKqE,QAAQs7B,EAAM,QAAQl7B,UAAY,GAAIvC,KAKhF,IAHa7C,KAAK08E,YAAY/1C,KAAK,SAAUosC,GAC3C,MAAOA,GAAW/kE,QAAQ3N,KAAOA,IAGjC,KAAM,IAAIgE,OAAM,0BAA2B,EAAI8sC,EAAqB,SAAG9wC,GAAM,kBAG/E,IAAI0yE,GAAa,GAAI3F,GAAWptE,KAAK2Q,KAAMhQ,EAAKC,UAAWZ,KAAKgO,SAC9DsyB,KAAMw9C,EACNz9E,GAAIA,IAON,OAJAL,MAAK08E,YAAY73E,KAAKkuE,GACtB/yE,KAAK2sE,WAAW9nE,KAAKkuE,GACrB/yE,KAAK2wE,UAEEtwE,GAQTmsE,EAAKn6D,UAAU0rE,iBAAmB,SAAU19E,GAC1C,GAAIq8E,GAAc18E,KAAK08E,YAAY51E,OAAO,SAAUiqD,GAClD,MAAOA,GAAI/iD,QAAQ3N,KAAOA,GAG5B,IAA2B,IAAvBq8E,EAAY94E,OACd,KAAM,IAAIS,OAAM,qCAAsC,EAAI8sC,EAAqB,SAAG9wC,GAGpFq8E,GAAYx1E,QAAQ,SAAU6rE,GAC5B/yE,KAAK08E,YAAY3kD,OAAO/3B,KAAK08E,YAAY93E,QAAQmuE,GAAa,GAC9D/yE,KAAK2sE,WAAW50C,OAAO/3B,KAAK2sE,WAAW/nE,QAAQmuE,GAAa,GAC5DA,EAAWzhC,WACXsmB,KAAK53D,QAOTwsE,EAAKn6D,UAAU2rE,gBAAkB,WAC/B,MAAOh+E,MAAK0vE,SAAW1vE,KAAK0vE,QAAQsO,uBActCxR,EAAKn6D,UAAUm+D,IAAM,SAAUxiE,EAAS7G,GACtC,GAAIq0C,GAAQx7C,KAAK6xE,cAGjB,IAAkB,OAAdr2B,EAAMp5C,KAA8B,OAAdo5C,EAAMn5C,IAAhC,CAKA,GAAIovD,GAAWjW,EAAMn5C,IAAMm5C,EAAMp5C,IAC7BA,EAAM,GAAIS,MAAK24C,EAAMp5C,IAAIgD,UAAuB,IAAXqsD,GACrCpvD,EAAM,GAAIQ,MAAK24C,EAAMn5C,IAAI+C,UAAuB,IAAXqsD,GACrC8e,GAAYviE,OAAiCnK,KAAtBmK,EAAQuiE,WAA0BviE,EAAQuiE,SACrEvwE,MAAKw7C,MAAM+W,SAASnwD,EAAKC,GAAOkuE,UAAWA,GAAappE,KAQ1DqlE,EAAKn6D,UAAUw/D,aAAe,WAE5B,KAAM,IAAIxtE,OAAM,+CAyBlBmoE,EAAKn6D,UAAUi+D,UAAY,SAAUrrB,EAAOC,EAAKl3C,EAAS7G,GAC7B,kBAAhBxD,WAAU,KACnBwD,EAAWxD,UAAU,GACrBqK,KAEF,IAAIuiE,EACJ,IAAwB,GAApB5sE,UAAUC,OAAa,CACzB,GAAI43C,GAAQ73C,UAAU,EACtB4sE,OAAgC1sE,KAApB23C,EAAM+0B,WAA0B/0B,EAAM+0B,UAClDvwE,KAAKw7C,MAAM+W,SAAS/W,EAAMyJ,MAAOzJ,EAAM0J,KAAOqrB,UAAWA,QACpD,IAAwB,GAApB5sE,UAAUC,QAAsC,kBAAhBD,WAAU,GAAkB,CACrE,GAAI63C,GAAQ73C,UAAU,EACtBwD,GAAWxD,UAAU,GACrB4sE,MAAgC1sE,KAApB23C,EAAM+0B,WAA0B/0B,EAAM+0B,UAClDvwE,KAAKw7C,MAAM+W,SAAS/W,EAAMyJ,MAAOzJ,EAAM0J,KAAOqrB,UAAWA,GAAappE,OAEtEopE,IAAYviE,OAAiCnK,KAAtBmK,EAAQuiE,WAA0BviE,EAAQuiE,UACjEvwE,KAAKw7C,MAAM+W,SAAStN,EAAOC,GAAOqrB,UAAWA,GAAappE,IAgB9DqlE,EAAKn6D,UAAUoyC,OAAS,SAAUnkB,EAAMtyB,EAAS7G,GACpB,kBAAhBxD,WAAU,KACnBwD,EAAWxD,UAAU,GACrBqK,KAEF,IAAIyjD,GAAWzxD,KAAKw7C,MAAM0J,IAAMllD,KAAKw7C,MAAMyJ,MACvCh4C,EAAItM,EAAKqE,QAAQs7B,EAAM,QAAQl7B,UAE/B6/C,EAAQh4C,EAAIwkD,EAAW,EACvBvM,EAAMj4C,EAAIwkD,EAAW,EACrB8e,GAAYviE,OAAiCnK,KAAtBmK,EAAQuiE,WAA0BviE,EAAQuiE,SAErEvwE,MAAKw7C,MAAM+W,SAAStN,EAAOC,GAAOqrB,UAAWA,GAAappE,IAO5DqlE,EAAKn6D,UAAU4rE,UAAY,WACzB,GAAIziC,GAAQx7C,KAAKw7C,MAAM46B,UACvB,QACEnxB,MAAO,GAAIpiD,MAAK24C,EAAMyJ,OACtBC,IAAK,GAAIriD,MAAK24C,EAAM0J,OAgBxBsnB,EAAKn6D,UAAU6rE,OAAS,SAAUC,EAAYnwE,EAAS7G,GACrD,MAAKg3E,GAAcA,EAAa,GAAKA,EAAa,GAAlD,CAC2B,kBAAhBx6E,WAAU,KACnBwD,EAAWxD,UAAU,GACrBqK,KAEF,IAAIwtC,GAAQx7C,KAAKi+E,YACbh5B,EAAQzJ,EAAMyJ,MAAM7/C,UACpB8/C,EAAM1J,EAAM0J,IAAI9/C,UAChBqsD,EAAWvM,EAAMD,EACjBm5B,EAAc3sB,GAAY,EAAI0sB,GAC9B3jC,GAAYiX,EAAW2sB,GAAe,EACtClI,EAAWjxB,EAAQzK,EACnB27B,EAASjxB,EAAM1K,CAEnBx6C,MAAKswE,UAAU4F,EAAUC,EAAQnoE,EAAS7G,KAe5CqlE,EAAKn6D,UAAUgsE,QAAU,SAAUF,EAAYnwE,EAAS7G,GACtD,MAAKg3E,GAAcA,EAAa,GAAKA,EAAa,GAAlD,CAC2B,kBAAhBx6E,WAAU,KACnBwD,EAAWxD,UAAU,GACrBqK,KAEF,IAAIwtC,GAAQx7C,KAAKi+E,YACbh5B,EAAQzJ,EAAMyJ,MAAM7/C,UACpB8/C,EAAM1J,EAAM0J,IAAI9/C,UAChBqsD,EAAWvM,EAAMD,EACjBixB,EAAWjxB,EAAQwM,EAAW0sB,EAAa,EAC3ChI,EAASjxB,EAAMuM,EAAW0sB,EAAa,CAE3Cn+E,MAAKswE,UAAU4F,EAAUC,EAAQnoE,EAAS7G,KAQ5CqlE,EAAKn6D,UAAUotC,OAAS,WACtBz/C,KAAK2wE,WAQPnE,EAAKn6D,UAAUs+D,QAAU,WACvB3wE,KAAK28E,aACL,IAAIvE,IAAU,EACVpqE,EAAUhO,KAAKgO,QACf9J,EAAQlE,KAAKkE,MACb6pD,EAAM/tD,KAAK+tD,GAEf,IAAKA,GAAQA,EAAI3X,WAAqC,GAAxB2X,EAAIruD,KAAKmR,YAAvC,CAEA47D,EAASsJ,kBAAkB/1E,KAAKgO,QAAQvM,OAAQzB,KAAK2Q,KAAM3Q,KAAKgO,QAAQ8gE,aAG7C,OAAvB9gE,EAAQkgE,aACVvtE,EAAK4F,aAAawnD,EAAIruD,KAAM,WAC5BiB,EAAKqG,gBAAgB+mD,EAAIruD,KAAM,gBAE/BiB,EAAKqG,gBAAgB+mD,EAAIruD,KAAM,WAC/BiB,EAAK4F,aAAawnD,EAAIruD,KAAM,eAI9BquD,EAAIruD,KAAK2M,MAAM+hE,UAAYztE,EAAKuI,OAAOK,OAAOyE,EAAQogE,UAAW,IACjErgB,EAAIruD,KAAK2M,MAAMgiE,UAAY1tE,EAAKuI,OAAOK,OAAOyE,EAAQqgE,UAAW,IACjEtgB,EAAIruD,KAAK2M,MAAM+D,MAAQzP,EAAKuI,OAAOK,OAAOyE,EAAQoC,MAAO,IAGzDlM,EAAMyH,OAAOzF,MAAQ6nD,EAAI6kB,gBAAgB/hE,YAAck9C,EAAI6kB,gBAAgB7hE,aAAe,EAC1F7M,EAAMyH,OAAOvF,MAAQlC,EAAMyH,OAAOzF,KAClChC,EAAMyH,OAAOrF,KAAOynD,EAAI6kB,gBAAgB1kB,aAAeH,EAAI6kB,gBAAgBpxB,cAAgB,EAC3Ft9C,EAAMyH,OAAOgzC,OAASz6C,EAAMyH,OAAOrF,IACnCpC,EAAMo6E,iBAAmBvwB,EAAIruD,KAAKwuD,aAAeH,EAAIruD,KAAK8hD,aAC1Dt9C,EAAMq6E,gBAAkBxwB,EAAIruD,KAAKmR,YAAck9C,EAAIruD,KAAKqR,YAIf,IAArCg9C,EAAI6kB,gBAAgBpxB,eACtBt9C,EAAMyH,OAAOzF,KAAOhC,EAAMyH,OAAOrF,IACjCpC,EAAMyH,OAAOvF,MAAQlC,EAAMyH,OAAOzF,MAEN,IAA1B6nD,EAAIruD,KAAK8hD,eACXt9C,EAAMq6E,gBAAkBr6E,EAAMo6E,kBAKhCp6E,EAAM23C,OAAOxrC,OAAS09C,EAAIlS,OAAOqS,aACjChqD,EAAMgC,KAAKmK,OAAS09C,EAAI7nD,KAAKgoD,aAC7BhqD,EAAMkC,MAAMiK,OAAS09C,EAAI3nD,MAAM8nD,aAC/BhqD,EAAMoC,IAAI+J,OAAS09C,EAAIznD,IAAIk7C,eAAiBt9C,EAAMyH,OAAOrF,IACzDpC,EAAMy6C,OAAOtuC,OAAS09C,EAAIpP,OAAO6C,eAAiBt9C,EAAMyH,OAAOgzC,MAM/D,IAAIsP,GAAgBxrD,KAAKJ,IAAI6B,EAAMgC,KAAKmK,OAAQnM,EAAM23C,OAAOxrC,OAAQnM,EAAMkC,MAAMiK,QAC7EmuE,EAAat6E,EAAMoC,IAAI+J,OAAS49C,EAAgB/pD,EAAMy6C,OAAOtuC,OAASnM,EAAMo6E,iBAAmBp6E,EAAMyH,OAAOrF,IAAMpC,EAAMyH,OAAOgzC,MACnIoP,GAAIruD,KAAK2M,MAAMgE,OAAS1P,EAAKuI,OAAOK,OAAOyE,EAAQqC,OAAQmuE,EAAa,MAGxEt6E,EAAMxE,KAAK2Q,OAAS09C,EAAIruD,KAAKwuD,aAC7BhqD,EAAMwH,WAAW2E,OAASnM,EAAMxE,KAAK2Q,OAASnM,EAAMo6E,gBACpD,IAAIG,GAAkBv6E,EAAMxE,KAAK2Q,OAASnM,EAAMoC,IAAI+J,OAASnM,EAAMy6C,OAAOtuC,OAASnM,EAAMo6E,gBACzFp6E,GAAM0uE,gBAAgBviE,OAASouE,EAC/Bv6E,EAAM43E,cAAczrE,OAASouE,EAC7Bv6E,EAAM63E,eAAe1rE,OAASnM,EAAM43E,cAAczrE,OAGlDnM,EAAMxE,KAAK0Q,MAAQ29C,EAAIruD,KAAKmR,YAC5B3M,EAAMwH,WAAW0E,MAAQlM,EAAMxE,KAAK0Q,MAAQlM,EAAMq6E,gBAE7Cv+E,KAAKu8E,kBACRr4E,EAAMw6E,eAAiB/9E,EAAKqP,qBAG1BhC,EAAQgtE,eACNhtE,EAAQsgE,KACVpqE,EAAMgC,KAAKkK,MAAQ29C,EAAI+tB,cAAc/qE,cAAgB7M,EAAMyH,OAAOzF,KAClEhC,EAAMkC,MAAMgK,MAAQ29C,EAAIguB,eAAehrE,YAAc7M,EAAMw6E,iBAAmBx6E,EAAMyH,OAAOvF,QAE3FlC,EAAMgC,KAAKkK,MAAQ29C,EAAI+tB,cAAc/qE,YAAc7M,EAAMw6E,iBAAmBx6E,EAAMyH,OAAOzF,KACzFhC,EAAMkC,MAAMgK,MAAQ29C,EAAIguB,eAAehrE,cAAgB7M,EAAMyH,OAAOvF,QAGtElC,EAAMgC,KAAKkK,MAAQ29C,EAAI+tB,cAAc/qE,cAAgB7M,EAAMyH,OAAOzF,KAClEhC,EAAMkC,MAAMgK,MAAQ29C,EAAIguB,eAAehrE,cAAgB7M,EAAMyH,OAAOvF,OAGtEpG,KAAK2+E,SAIL,IAAI9hD,GAAS78B,KAAK4+E,kBAGc,QAA5B5wE,EAAQkgE,YAAYt/D,OACtBiuB,GAAUp6B,KAAKJ,IAAI6B,EAAM0uE,gBAAgBviE,OAASnM,EAAM23C,OAAOxrC,OAASnM,EAAMyH,OAAOrF,IAAMpC,EAAMyH,OAAOgzC,OAAQ,IAElHoP,EAAIlS,OAAOxvC,MAAM/F,IAAMu2B,EAAS,IAGhC,IAAIgiD,GAAmC,GAAnB36E,EAAM+2E,UAAiB,SAAW,GAClD6D,EAAmB56E,EAAM+2E,WAAa/2E,EAAMo4E,aAAe,SAAW,EAC1EvuB,GAAIiuB,UAAU3vE,MAAMmE,WAAaquE,EACjC9wB,EAAIkuB,aAAa5vE,MAAMmE,WAAasuE,EACpC/wB,EAAImuB,cAAc7vE,MAAMmE,WAAaquE,EACrC9wB,EAAIouB,iBAAiB9vE,MAAMmE,WAAasuE,EACxC/wB,EAAIquB,eAAe/vE,MAAMmE,WAAaquE,EACtC9wB,EAAIsuB,kBAAkBhwE,MAAMmE,WAAasuE,EAErC9wE,EAAQgtE,iBACVjtB,EAAIguB,eAAer1E,UAAY,0CAC/BqnD,EAAI+tB,cAAcp1E,UAAY,yCAE9BqnD,EAAIquB,eAAe/vE,MAAMmE,WAAa,SACtCu9C,EAAIsuB,kBAAkBhwE,MAAMmE,WAAa,SACzCu9C,EAAImuB,cAAc7vE,MAAMmE,WAAa,SACrCu9C,EAAIouB,iBAAiB9vE,MAAMmE,WAAa,SAExCu9C,EAAI7nD,KAAKmG,MAAM/F,IAAM,MACrBynD,EAAI3nD,MAAMiG,MAAM/F,IAAM,SAGnB0H,EAAQgtE,gBAAkB92E,EAAM23C,OAAOxrC,OAASnM,EAAM0uE,gBAAgBviE,UACzE09C,EAAI7nD,KAAKmG,MAAM/F,IAAMu2B,EAAS,KAC9BkxB,EAAI3nD,MAAMiG,MAAM/F,IAAMu2B,EAAS,KAC/BkxB,EAAIguB,eAAer1E,UAAYqnD,EAAIguB,eAAer1E,UAAUkD,QAAQ,GAAIsc,QAAO,yCAAoD,KACnI6nC,EAAI+tB,cAAcp1E,UAAYqnD,EAAI+tB,cAAcp1E,UAAUkD,QAAQ,GAAIsc,QAAO,yCAAoD,KACjIhiB,EAAMgC,KAAKkK,MAAQ29C,EAAI+tB,cAAc/qE,cAAgB7M,EAAMyH,OAAOzF,KAClEhC,EAAMkC,MAAMgK,MAAQ29C,EAAIguB,eAAehrE,cAAgB7M,EAAMyH,OAAOvF,MACpEpG,KAAK2+E,UAIP,IAAII,GAAmB76E,EAAM23C,OAAOxrC,OAASnM,EAAM0uE,gBAAgBviE,MACnErQ,MAAKo3D,OAAO3/C,IAAI,OAAOsH,KACrB+gB,UAAWi/C,EAAmB7vC,EAAOq2B,cAAgBr2B,EAAOm2B,uBAI9DrlE,KAAK2sE,WAAWzlE,QAAQ,SAAU+1E,GAChC7E,EAAU6E,EAAUx9B,UAAY24B,GAGlC,IAAIA,EAAS,CACX,GAAIp4E,KAAK28E,YAFM,EAIb,WADA38E,MAAK2Q,KAAKk+D,QAAQ9iB,KAAK,UAGvBvmC,SAAQotC,IAAI,yCAGd5yD,MAAK28E,YAAc,CAErB38E,MAAKu8E,iBAAkB,EAGvBv8E,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,aAGzBygB,EAAKn6D,UAAUssE,QAAU,WACvB,GAAIz6E,GAAQlE,KAAKkE,MACb6pD,EAAM/tD,KAAK+tD,GAEf7pD,GAAM43E,cAAc1rE,MAAQlM,EAAMgC,KAAKkK,MACvClM,EAAM63E,eAAe3rE,MAAQlM,EAAMkC,MAAMgK,KACzC,IAAI4uE,GAAc96E,EAAMxE,KAAK0Q,MAAQlM,EAAMgC,KAAKkK,MAAQlM,EAAMkC,MAAMgK,MAAQlM,EAAMq6E,eAClFr6E,GAAM23C,OAAOzrC,MAAQ4uE,EACrB96E,EAAM0uE,gBAAgBxiE,MAAQ4uE,EAC9B96E,EAAMoC,IAAI8J,MAAQ4uE,EAClB96E,EAAMy6C,OAAOvuC,MAAQ4uE,EAGrBjxB,EAAIriD,WAAWW,MAAMgE,OAASnM,EAAMwH,WAAW2E,OAAS,KACxD09C,EAAI6tB,mBAAmBvvE,MAAMgE,OAASnM,EAAMwH,WAAW2E,OAAS,KAChE09C,EAAI8tB,qBAAqBxvE,MAAMgE,OAASnM,EAAM0uE,gBAAgBviE,OAAS,KACvE09C,EAAI6kB,gBAAgBvmE,MAAMgE,OAASnM,EAAM0uE,gBAAgBviE,OAAS,KAClE09C,EAAI+tB,cAAczvE,MAAMgE,OAASnM,EAAM43E,cAAczrE,OAAS,KAC9D09C,EAAIguB,eAAe1vE,MAAMgE,OAASnM,EAAM63E,eAAe1rE,OAAS,KAEhE09C,EAAIriD,WAAWW,MAAM+D,MAAQlM,EAAMwH,WAAW0E,MAAQ,KACtD29C,EAAI6tB,mBAAmBvvE,MAAM+D,MAAQlM,EAAM0uE,gBAAgBxiE,MAAQ,KACnE29C,EAAI8tB,qBAAqBxvE,MAAM+D,MAAQlM,EAAMwH,WAAW0E,MAAQ,KAChE29C,EAAI6kB,gBAAgBvmE,MAAM+D,MAAQlM,EAAM23C,OAAOzrC,MAAQ,KACvD29C,EAAIznD,IAAI+F,MAAM+D,MAAQlM,EAAMoC,IAAI8J,MAAQ,KACxC29C,EAAIpP,OAAOtyC,MAAM+D,MAAQlM,EAAMy6C,OAAOvuC,MAAQ,KAG9C29C,EAAIriD,WAAWW,MAAMnG,KAAO,IAC5B6nD,EAAIriD,WAAWW,MAAM/F,IAAM,IAC3BynD,EAAI6tB,mBAAmBvvE,MAAMnG,KAAOhC,EAAMgC,KAAKkK,MAAQlM,EAAMyH,OAAOzF,KAAO,KAC3E6nD,EAAI6tB,mBAAmBvvE,MAAM/F,IAAM,IACnCynD,EAAI8tB,qBAAqBxvE,MAAMnG,KAAO,IACtC6nD,EAAI8tB,qBAAqBxvE,MAAM/F,IAAMpC,EAAMoC,IAAI+J,OAAS,KACxD09C,EAAI6kB,gBAAgBvmE,MAAMnG,KAAOhC,EAAMgC,KAAKkK,MAAQ,KACpD29C,EAAI6kB,gBAAgBvmE,MAAM/F,IAAMpC,EAAMoC,IAAI+J,OAAS,KACnD09C,EAAI+tB,cAAczvE,MAAMnG,KAAO,IAC/B6nD,EAAI+tB,cAAczvE,MAAM/F,IAAMpC,EAAMoC,IAAI+J,OAAS,KACjD09C,EAAIguB,eAAe1vE,MAAMnG,KAAOhC,EAAMgC,KAAKkK,MAAQlM,EAAM23C,OAAOzrC,MAAQ,KACxE29C,EAAIguB,eAAe1vE,MAAM/F,IAAMpC,EAAMoC,IAAI+J,OAAS,KAClD09C,EAAIznD,IAAI+F,MAAMnG,KAAOhC,EAAMgC,KAAKkK,MAAQ,KACxC29C,EAAIznD,IAAI+F,MAAM/F,IAAM,IACpBynD,EAAIpP,OAAOtyC,MAAMnG,KAAOhC,EAAMgC,KAAKkK,MAAQ,KAC3C29C,EAAIpP,OAAOtyC,MAAM/F,IAAMpC,EAAMoC,IAAI+J,OAASnM,EAAM0uE,gBAAgBviE,OAAS,KACzE09C,EAAIlS,OAAOxvC,MAAMnG,KAAO,IACxB6nD,EAAI7nD,KAAKmG,MAAMnG,KAAO,IACtB6nD,EAAI3nD,MAAMiG,MAAMnG,KAAO,KAIzBsmE,EAAKn6D,UAAU4sE,QAAU,WACvB,KAAM,IAAI56E,OAAM,wDAUlBmoE,EAAKn6D,UAAU6sE,eAAiB,SAAU5+C,GACxC,IAAKtgC,KAAKyvE,YACR,KAAM,IAAIprE,OAAM,sCAGlBrE,MAAKyvE,YAAYyP,eAAe5+C,IAQlCksC,EAAKn6D,UAAU8sE,eAAiB,WAC9B,IAAKn/E,KAAKyvE,YACR,KAAM,IAAIprE,OAAM,sCAGlB,OAAOrE,MAAKyvE,YAAY0P,kBAU1B3S,EAAKn6D,UAAUg9D,QAAU,SAAUp6C,GACjC,MAAOw3C,GAAS2C,OAAOpvE,KAAMi1B,EAAGj1B,KAAKkE,MAAM23C,OAAOzrC,QAUpDo8D,EAAKn6D,UAAUk9D,cAAgB,SAAUt6C,GACvC,MAAOw3C,GAAS2C,OAAOpvE,KAAMi1B,EAAGj1B,KAAKkE,MAAMxE,KAAK0Q,QAalDo8D,EAAKn6D,UAAU48D,UAAY,SAAU3uC,GACnC,MAAOmsC,GAASuC,SAAShvE,KAAMsgC,EAAMtgC,KAAKkE,MAAM23C,OAAOzrC,QAYzDo8D,EAAKn6D,UAAU88D,gBAAkB,SAAU7uC,GACzC,MAAOmsC,GAASuC,SAAShvE,KAAMsgC,EAAMtgC,KAAKkE,MAAMxE,KAAK0Q,QASvDo8D,EAAKn6D,UAAU2qE,gBAAkB,WACA,GAA3Bh9E,KAAKgO,QAAQigE,WACfjuE,KAAKo/E,mBAELp/E,KAAKu9E,mBAST/Q,EAAKn6D,UAAU+sE,iBAAmB,WAChC,GAAIntC,GAAKjyC,IAETA,MAAKu9E,kBAELv9E,KAAKq/E,UAAY,WACf,GAA6B,GAAzBptC,EAAGjkC,QAAQigE,WAGb,WADAh8B,GAAGsrC,iBAIDtrC,GAAG8b,IAAIruD,OAKLuyC,EAAG8b,IAAIruD,KAAKmR,aAAeohC,EAAG/tC,MAAMo7E,WAAartC,EAAG8b,IAAIruD,KAAKwuD,cAAgBjc,EAAG/tC,MAAMq7E,aACxFttC,EAAG/tC,MAAMo7E,UAAYrtC,EAAG8b,IAAIruD,KAAKmR,YACjCohC,EAAG/tC,MAAMq7E,WAAattC,EAAG8b,IAAIruD,KAAKwuD,aAClCjc,EAAG/tC,MAAMw6E,eAAiB/9E,EAAKqP,oBAE/BiiC,EAAGthC,KAAKk+D,QAAQ9iB,KAAK,cAM3BprD,EAAKiH,iBAAiBY,OAAQ,SAAUxI,KAAKq/E,WAGzCptC,EAAG8b,IAAIruD,OACTuyC,EAAG/tC,MAAMo7E,UAAYrtC,EAAG8b,IAAIruD,KAAKmR,YACjCohC,EAAG/tC,MAAMq7E,WAAattC,EAAG8b,IAAIruD,KAAKwuD,cAGpCluD,KAAKw/E,WAAaC,YAAYz/E,KAAKq/E,UAAW,MAOhD7S,EAAKn6D,UAAUkrE,gBAAkB,WAC3Bv9E,KAAKw/E,aACP9tB,cAAc1xD,KAAKw/E,YACnBx/E,KAAKw/E,eAAa37E,IAIhB7D,KAAKq/E,YACP1+E,EAAKyH,oBAAoBI,OAAQ,SAAUxI,KAAKq/E,WAChDr/E,KAAKq/E,UAAY,OASrB7S,EAAKn6D,UAAUuiE,SAAW,SAAUrsE,GAClCvI,KAAK+gE,MAAMyV,eAAgB,EAC3Bx2E,KAAK+gE,MAAM2e,iBAAmB1/E,KAAKkE,MAAM+2E,WAQ3CzO,EAAKn6D,UAAUwiE,SAAW,SAAUtsE,GAClCvI,KAAK+gE,MAAMyV,eAAgB,GAQ7BhK,EAAKn6D,UAAUoiE,QAAU,SAAUlsE,GACjC,GAAKA,GAGAvI,KAAK+gE,MAAMyV,cAAhB,CAEA,GAAIn1C,GAAQ94B,EAAMq1D,OAEd+hB,EAAe3/E,KAAK4/E,gBACpBC,EAAe7/E,KAAKm7E,cAAcn7E,KAAK+gE,MAAM2e,iBAAmBr+C,EAEhErhC,MAAKgO,QAAQgtE,iBACfh7E,KAAK+tD,IAAI7nD,KAAK4C,WAAWmyE,WAAaj7E,KAAKkE,MAAM+2E,UACjDj7E,KAAK+tD,IAAI3nD,MAAM0C,WAAWmyE,WAAaj7E,KAAKkE,MAAM+2E,WAGhD4E,GAAgBF,GAClB3/E,KAAK+rD,KAAK,kBAUdygB,EAAKn6D,UAAU8oE,cAAgB,SAAUF,GAGvC,MAFAj7E,MAAKkE,MAAM+2E,UAAYA,EACvBj7E,KAAK4+E,mBACE5+E,KAAKkE,MAAM+2E,WAQpBzO,EAAKn6D,UAAUusE,iBAAmB,WAEhC,GAAItC,GAAe75E,KAAKL,IAAIpC,KAAKkE,MAAM0uE,gBAAgBviE,OAASrQ,KAAKkE,MAAM23C,OAAOxrC,OAAQ,EAmB1F,OAlBIisE,IAAgBt8E,KAAKkE,MAAMo4E,eAGQ,OAAjCt8E,KAAKgO,QAAQkgE,YAAYt/D,OAC3B5O,KAAKkE,MAAM+2E,WAAaqB,EAAet8E,KAAKkE,MAAMo4E,cAEpDt8E,KAAKkE,MAAMo4E,aAAeA,GAIxBt8E,KAAKkE,MAAM+2E,UAAY,IAAGj7E,KAAKkE,MAAM+2E,UAAY,GACjDj7E,KAAKkE,MAAM+2E,UAAYqB,IAAct8E,KAAKkE,MAAM+2E,UAAYqB,GAE5Dt8E,KAAKgO,QAAQgtE,iBACfh7E,KAAK+tD,IAAI7nD,KAAK4C,WAAWmyE,WAAaj7E,KAAKkE,MAAM+2E,UACjDj7E,KAAK+tD,IAAI3nD,MAAM0C,WAAWmyE,WAAaj7E,KAAKkE,MAAM+2E,WAG7Cj7E,KAAKkE,MAAM+2E,WAQpBzO,EAAKn6D,UAAUutE,cAAgB,WAC7B,MAAO5/E,MAAKkE,MAAM+2E,WAQpBzO,EAAKn6D,UAAU4+D,oBAAsB,WACnC,KAAM,IAAI5sE,OAAM,sDAGlBxE,EAAOD,QAAU4sE,GAIb,SAAU3sE,EAAQD,EAASM,GAY/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA4BzF,QAAS2sE,GAAQ98D,EAAM3C,GACrBhO,KAAK2Q,KAAOA,EACZ3Q,KAAKguE,gBACH/oE,KAAM,KACNipE,aACEt/D,KAAM,UAERkxE,MAAO,OACPl6D,OAAO,EACPm6D,gBAAgB,EAChBC,eAAgB,SAAwBC,EAAWC,EAASrS,GAC1D,GAAIsS,GAAcD,EAAQjtC,KAC1BitC,GAAQjtC,MAAQgtC,EAAUhtC,MAC1BgtC,EAAUhtC,MAAQktC,GAEpBC,WAAY,QAEZC,YAAY,EACZC,aAAa,EACbC,sBACE3xE,MAAM,EACN4sC,OAAO,GAGTglC,UACEC,YAAY,EACZC,aAAa,EACb/vD,KAAK,EACLijB,QAAQ,EACR+sC,eAAe,GAGjBC,eACE3tC,OAAO,EACPtiB,KAAK,EACLijB,QAAQ,GAGVq/B,KAAMvG,EAASuG,KAEf4N,MAAO,SAAejyE,EAAMzH,GAC1BA,EAASyH,IAEXkyE,SAAU,SAAkBlyE,EAAMzH,GAChCA,EAASyH,IAEXmyE,OAAQ,SAAgBnyE,EAAMzH,GAC5BA,EAASyH,IAEXoyE,SAAU,SAAkBpyE,EAAMzH,GAChCA,EAASyH,IAEXqyE,SAAU,SAAkBryE,EAAMzH,GAChCA,EAASyH,IAEXsyE,WAAY,SAAoBtyE,EAAMzH,GACpCA,EAASyH,IAEXuyE,YAAa,SAAqBvyE,EAAMzH,GACtCA,EAASyH,IAEXwyE,cAAe,SAAuBxyE,EAAMzH,GAC1CA,EAASyH,IAGXq1C,QACEr1C,MACE0rC,WAAY,GACZC,SAAU,IAEZ4zB,KAAM,IAGRkT,cAAc,EAEd9nC,SACE+nC,aAAa,EACbC,eAAgB,QAGlBC,yBAAyB,GAI3BxhF,KAAKgO,QAAUrN,EAAKC,UAAWZ,KAAKguE,gBACpChuE,KAAKgO,QAAQsgE,IAAMtgE,EAAQsgE,IAG3BtuE,KAAKyhF,aACHx8E,MAAQggD,MAAO,OAAQC,IAAK,SAG9BllD,KAAKg1E,YACHhG,SAAUr+D,EAAKhQ,KAAKquE,SACpBI,OAAQz+D,EAAKhQ,KAAKyuE,QAEpBpvE,KAAK+tD,OACL/tD,KAAKkE,SACLlE,KAAKo3D,OAAS,IAEd,IAAInlB,GAAKjyC,IACTA,MAAK2vE,UAAY,KACjB3vE,KAAK4vE,WAAa,KAGlB5vE,KAAK0hF,eACH/wD,IAAO,SAAapoB,EAAOspC,EAAQC,GACjCG,EAAG0vC,OAAO9vC,EAAOM,QAEnBC,OAAU,SAAgB7pC,EAAOspC,EAAQC,GACvCG,EAAG2vC,UAAU/vC,EAAOM,QAEtByB,OAAU,SAAgBrrC,EAAOspC,EAAQC,GACvCG,EAAG4vC,UAAUhwC,EAAOM,SAKxBnyC,KAAK8hF,gBACHnxD,IAAO,SAAapoB,EAAOspC,EAAQC,GAGjC,GAFAG,EAAG8vC,aAAalwC,EAAOM,OAEnBF,EAAG29B,YAAc39B,EAAG29B,WAAWhsE,OAAS,EAAG,CAC7C,GAAIgsE,GAAa39B,EAAG29B,UAChB39B,GAAG29B,qBAAsBphC,KAC3BohC,EAAa39B,EAAG29B,WAAWt8B,cAG7Bs8B,EAAWn4D,MAAMvQ,QAAQ,SAAU86E,GAC7BA,EAAUC,eACgB,GAAxBD,EAAUE,aACZF,EAAUE,YAAa,GAEzBF,EAAUC,aAAa/6E,QAAQ,SAAUi7E,GACvC,GAAIC,GAAqBxS,EAAWn4D,IAAI0qE,EACnCC,KAGLA,EAAmBC,cAAgBL,EAAU3hF,GACjB,GAAxB2hF,EAAUE,aACZE,EAAmB58B,SAAU,GAE/BoqB,EAAWx9B,OAAOgwC,MAEpBxS,EAAWx9B,OAAO4vC,QAK1B5vC,OAAU,SAAgB7pC,EAAOspC,EAAQC,GACvCG,EAAGqwC,gBAAgBzwC,EAAOM,QAE5ByB,OAAU,SAAgBrrC,EAAOspC,EAAQC,GACvCG,EAAGswC,gBAAgB1wC,EAAOM,SAI9BnyC,KAAKmyC,SACLnyC,KAAK6tE,UACL7tE,KAAKwiF,YAELxiF,KAAKqxE,aAELrxE,KAAKyiF,MAAQ,KAEbziF,KAAK0iF,eACL1iF,KAAK2iF,oBAGL3iF,KAAKmB,UAELnB,KAAKkxC,WAAWljC,GA/MlB,GAAI7M,GAAUjB,EAAoB,IAE9BkB,EAAWP,EAAuBM,GAElCI,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAIlC2tC,EAAShvC,EAAoB,KAC7BS,EAAOT,EAAoB,GAC3BquC,EAAUruC,EAAoB,IAC9BsuC,EAAWtuC,EAAoB,IAC/BwsE,EAAWxsE,EAAoB,KAC/BgtE,EAAYhtE,EAAoB,KAChCstE,EAAQttE,EAAoB,KAC5B+sE,EAAkB/sE,EAAoB,KACtC4sE,EAAU5sE,EAAoB,KAC9B6sE,EAAY7sE,EAAoB,KAChC8sE,EAAY9sE,EAAoB,KAChC2sE,EAAiB3sE,EAAoB,KACrC0iF,EAAQ1iF,EAAoB,KAAc,QAE1C2iF,EAAY,gBACZC,EAAa,gBAyLjBrV,GAAQp7D,UAAY,GAAI66D,GAGxBO,EAAQh5B,OACN/oC,WAAYmhE,EACZkW,IAAKjW,EACLtxB,MAAOwxB,EACPpyD,MAAOmyD,GAMTU,EAAQp7D,UAAUlR,QAAU,WAC1B,GAAIg9C,GAAQjuC,SAASC,cAAc,MACnCguC,GAAMz3C,UAAY,cAClBy3C,EAAM,oBAAsBn+C,KAC5BA,KAAK+tD,IAAI5P,MAAQA,CAGjB,IAAIzyC,GAAawE,SAASC,cAAc,MACxCzE,GAAWhF,UAAY,iBACvBy3C,EAAMztC,YAAYhF,GAClB1L,KAAK+tD,IAAIriD,WAAaA,CAGtB,IAAI0nE,GAAaljE,SAASC,cAAc,MACxCijE,GAAW1sE,UAAY,iBACvBy3C,EAAMztC,YAAY0iE,GAClBpzE,KAAK+tD,IAAIqlB,WAAaA,CAGtB,IAAIjF,GAAOj+D,SAASC,cAAc,MAClCg+D,GAAKznE,UAAY,WACjB1G,KAAK+tD,IAAIogB,KAAOA,CAGhB,IAAIkF,GAAWnjE,SAASC,cAAc,MACtCkjE,GAAS3sE,UAAY,eACrB1G,KAAK+tD,IAAIslB,SAAWA,EAGpBrzE,KAAKgjF,kBAGL,IAAIC,GAAkB,GAAIhW,GAAgB6V,EAAY,KAAM9iF,KAC5DijF,GAAgB7Q,OAChBpyE,KAAK6tE,OAAOiV,GAAcG,EAM1BjjF,KAAKo3D,OAAS,GAAIloB,GAAOlvC,KAAK2Q,KAAKo9C,IAAI6kB,iBAGvC5yE,KAAKo3D,OAAO7lB,GAAG,eAAgB,SAAUhpC,GACnCA,EAAM6vD,SACRp4D,KAAK40E,SAASrsE,IAEhBqvD,KAAK53D,OACPA,KAAKo3D,OAAO7lB,GAAG,WAAYvxC,KAAKw0E,aAAa5c,KAAK53D,OAClDA,KAAKo3D,OAAO7lB,GAAG,UAAWvxC,KAAKy0E,QAAQ7c,KAAK53D,OAC5CA,KAAKo3D,OAAO7lB,GAAG,SAAUvxC,KAAK00E,WAAW9c,KAAK53D,OAC9CA,KAAKo3D,OAAO3/C,IAAI,OAAOsH,KAAMqnB,UAAW,EAAGtG,UAAWoP,EAAOm2B,uBAG7DrlE,KAAKo3D,OAAO7lB,GAAG,MAAOvxC,KAAKkjF,cAActrB,KAAK53D,OAG9CA,KAAKo3D,OAAO7lB,GAAG,QAASvxC,KAAKmjF,mBAAmBvrB,KAAK53D,OAGrDA,KAAKo3D,OAAO7lB,GAAG,YAAavxC,KAAK27E,WAAW/jB,KAAK53D,OAE7CA,KAAKgO,QAAQsgE,IACftuE,KAAKojF,YAAc,GAAIl0C,GAAOlvC,KAAK2Q,KAAKo9C,IAAIguB,gBAE5C/7E,KAAKojF,YAAc,GAAIl0C,GAAOlvC,KAAK2Q,KAAKo9C,IAAI+tB,eAG9C97E,KAAKojF,YAAY7xC,GAAG,MAAOvxC,KAAKqjF,cAAczrB,KAAK53D,OACnDA,KAAKojF,YAAY7xC,GAAG,WAAYvxC,KAAKsjF,kBAAkB1rB,KAAK53D,OAC5DA,KAAKojF,YAAY7xC,GAAG,UAAWvxC,KAAKujF,aAAa3rB,KAAK53D,OACtDA,KAAKojF,YAAY7xC,GAAG,SAAUvxC,KAAKwjF,gBAAgB5rB,KAAK53D,OACxDA,KAAKojF,YAAY3rE,IAAI,OAAOsH,KAAMqnB,UAAW,EAAGtG,UAAWoP,EAAOo2B,qBAElEtlE,KAAK2Q,KAAKo9C,IAAI6kB,gBAAgBhrE,iBAAiB,YAAa5H,KAAKyjF,aAAa7rB,KAAK53D,OACnFA,KAAK2Q,KAAKo9C,IAAI6kB,gBAAgBhrE,iBAAiB,WAAY5H,KAAK0jF,YAAY9rB,KAAK53D,OACjFA,KAAK2Q,KAAKo9C,IAAI6kB,gBAAgBhrE,iBAAiB,YAAa5H,KAAK8qD,aAAa8M,KAAK53D,OAEnFA,KAAK2Q,KAAKo9C,IAAI6kB,gBAAgBhrE,iBAAiB,cAAe5H,KAAK00E,WAAW9c,KAAK53D,OAEnFA,KAAK2Q,KAAKo9C,IAAI6kB,gBAAgBhrE,iBAAiB,aAAc5H,KAAK20E,cAAc/c,KAAK53D,OAGrFA,KAAKoyE,QAmEP3E,EAAQp7D,UAAU6+B,WAAa,SAAUljC,GACvC,GAAIA,EAAS,CAEX,GAAIV,IAAU,OAAQ,MAAO,QAAS,QAAS,QAAS,iBAAkB,aAAc,cAAe,sBAAuB,aAAc,iBAAkB,WAAY,gBAAiB,uBAAwB,OAAQ,OAAQ,iBAAkB,eAAgB,UAAW,0BAChR3M,GAAKsD,gBAAgBqJ,EAAQtN,KAAKgO,QAASA,GAEvC,wBAA0BA,KACgB,iBAAjCA,GAAQuyE,sBACjBvgF,KAAKgO,QAAQuyE,qBAAqB3xE,KAAOZ,EAAQuyE;qIACjDvgF,KAAKgO,QAAQuyE,qBAAqB/kC,OAAQ,GAC0B,YAA3D,EAAIh6C,EAAkB,SAAGwM,EAAQuyE,wBAC1C5/E,EAAKsD,iBAAiB,OAAQ,SAAUjE,KAAKgO,QAAQuyE,qBAAsBvyE,EAAQuyE,sBAE9EvgF,KAAKgO,QAAQuyE,qBAAqB3xE,OACrC5O,KAAKgO,QAAQuyE,qBAAqB/kC,OAAQ,KAK5C,eAAiBxtC,KACgB,gBAAxBA,GAAQkgE,YACjBluE,KAAKgO,QAAQkgE,YAAYt/D,KAA+B,QAAxBZ,EAAQkgE,YAAwB,MAAQ,SACb,YAAlD,EAAI1sE,EAAkB,SAAGwM,EAAQkgE,cAA6B,QAAUlgE,GAAQkgE,cACzFluE,KAAKgO,QAAQkgE,YAAYt/D,KAAOZ,EAAQkgE,YAAYt/D,OAIpD,UAAYZ,KACgB,gBAAnBA,GAAQi2C,QACjBjkD,KAAKgO,QAAQi2C,OAAOkqB,KAAOngE,EAAQi2C,OACnCjkD,KAAKgO,QAAQi2C,OAAOr1C,KAAK0rC,WAAatsC,EAAQi2C,OAC9CjkD,KAAKgO,QAAQi2C,OAAOr1C,KAAK2rC,SAAWvsC,EAAQi2C,QACU,YAA7C,EAAIziD,EAAkB,SAAGwM,EAAQi2C,UAC1CtjD,EAAKsD,iBAAiB,QAASjE,KAAKgO,QAAQi2C,OAAQj2C,EAAQi2C,QACxD,QAAUj2C,GAAQi2C,SACe,gBAAxBj2C,GAAQi2C,OAAOr1C,MACxB5O,KAAKgO,QAAQi2C,OAAOr1C,KAAK0rC,WAAatsC,EAAQi2C,OAAOr1C,KACrD5O,KAAKgO,QAAQi2C,OAAOr1C,KAAK2rC,SAAWvsC,EAAQi2C,OAAOr1C,MACQ,YAAlD,EAAIpN,EAAkB,SAAGwM,EAAQi2C,OAAOr1C,OACjDjO,EAAKsD,iBAAiB,aAAc,YAAajE,KAAKgO,QAAQi2C,OAAOr1C,KAAMZ,EAAQi2C,OAAOr1C,SAM9F,YAAcZ,KACgB,iBAArBA,GAAQwyE,UACjBxgF,KAAKgO,QAAQwyE,SAASC,WAAazyE,EAAQwyE,SAC3CxgF,KAAKgO,QAAQwyE,SAASE,YAAc1yE,EAAQwyE,SAC5CxgF,KAAKgO,QAAQwyE,SAAS7vD,IAAM3iB,EAAQwyE,SACpCxgF,KAAKgO,QAAQwyE,SAAS5sC,OAAS5lC,EAAQwyE,SACvCxgF,KAAKgO,QAAQwyE,SAASG,eAAgB,GACkB,YAA/C,EAAIn/E,EAAkB,SAAGwM,EAAQwyE,WAC1C7/E,EAAKsD,iBAAiB,aAAc,cAAe,MAAO,SAAU,iBAAkBjE,KAAKgO,QAAQwyE,SAAUxyE,EAAQwyE,WAIrH,iBAAmBxyE,KACgB,iBAA1BA,GAAQ4yE,eACjB5gF,KAAKgO,QAAQ4yE,cAAc3tC,MAAQjlC,EAAQ4yE,cAC3C5gF,KAAKgO,QAAQ4yE,cAAcjwD,IAAM3iB,EAAQ4yE,cACzC5gF,KAAKgO,QAAQ4yE,cAAchtC,OAAS5lC,EAAQ4yE,eACiB,YAApD,EAAIp/E,EAAkB,SAAGwM,EAAQ4yE,gBAC1CjgF,EAAKsD,iBAAiB,QAAS,MAAO,UAAWjE,KAAKgO,QAAQ4yE,cAAe5yE,EAAQ4yE,iBAcxF,QAAS,WAAY,WAAY,SAAU,WAAY,aAAc,cAAe,iBAAiB15E,QATpF,SAAU+N,GAC1B,GAAIxN,GAAKuG,EAAQiH,EACjB,IAAIxN,EAAI,CACN,KAAMA,YAAc8O,WAClB,KAAM,IAAIlS,OAAM,UAAY4Q,EAAO,uBAAyBA,EAAO,mBAErEjV,MAAKgO,QAAQiH,GAAQxN,IAEvBmwD,KAAK53D,OAIPA,KAAKkxE,cASTzD,EAAQp7D,UAAU6+D,UAAY,SAAUljE,GACtChO,KAAKwiF,YAEDx0E,GAAWA,EAAQmjE,cACrBxwE,EAAKuG,QAAQlH,KAAKmyC,MAAO,SAAUvjC,GACjCA,EAAK+0E,OAAQ,EACT/0E,EAAKg1E,WAAWh1E,EAAK6wC,YAQ/BguB,EAAQp7D,UAAUi/B,QAAU,WAC1BtxC,KAAK8R,OACL9R,KAAK0wE,SAAS,MACd1wE,KAAKywE,UAAU,MAEfzwE,KAAKo3D,OAAS,KAEdp3D,KAAK2Q,KAAO,KACZ3Q,KAAKg1E,WAAa,MAMpBvH,EAAQp7D,UAAUP,KAAO,WAEnB9R,KAAK+tD,IAAI5P,MAAMr1C,YACjB9I,KAAK+tD,IAAI5P,MAAMr1C,WAAW5G,YAAYlC,KAAK+tD,IAAI5P,OAI7Cn+C,KAAK+tD,IAAIogB,KAAKrlE,YAChB9I,KAAK+tD,IAAIogB,KAAKrlE,WAAW5G,YAAYlC,KAAK+tD,IAAIogB,MAI5CnuE,KAAK+tD,IAAIslB,SAASvqE,YACpB9I,KAAK+tD,IAAIslB,SAASvqE,WAAW5G,YAAYlC,KAAK+tD,IAAIslB,WAQtD5F,EAAQp7D,UAAU+/D,KAAO,WAElBpyE,KAAK+tD,IAAI5P,MAAMr1C,YAClB9I,KAAK2Q,KAAKo9C,IAAIlS,OAAOnrC,YAAY1Q,KAAK+tD,IAAI5P,OAIvCn+C,KAAK+tD,IAAIogB,KAAKrlE,YACjB9I,KAAK2Q,KAAKo9C,IAAI6tB,mBAAmBlrE,YAAY1Q,KAAK+tD,IAAIogB,MAInDnuE,KAAK+tD,IAAIslB,SAASvqE,aACjB9I,KAAKgO,QAAQsgE,IACftuE,KAAK2Q,KAAKo9C,IAAI3nD,MAAMsK,YAAY1Q,KAAK+tD,IAAIslB,UAEzCrzE,KAAK2Q,KAAKo9C,IAAI7nD,KAAKwK,YAAY1Q,KAAK+tD,IAAIslB,YAY9C5F,EAAQp7D,UAAUk/D,aAAe,SAAU5+B,GACzC,GAAI5uC,GAAG4oB,EAAItsB,EAAIuO,CAMf,SAJW/K,IAAP8uC,IAAkBA,MACjBxuC,MAAMC,QAAQuuC,KAAMA,GAAOA,IAG3B5uC,EAAI,EAAG4oB,EAAK3sB,KAAKqxE,UAAUztE,OAAQG,EAAI4oB,EAAI5oB,IAC9C1D,EAAKL,KAAKqxE,UAAUttE,IACpB6K,EAAO5O,KAAKmyC,MAAM9xC,KACRuO,EAAKi1E,UAKjB,KADA7jF,KAAKqxE,aACAttE,EAAI,EAAG4oB,EAAKgmB,EAAI/uC,OAAQG,EAAI4oB,EAAI5oB,IACnC1D,EAAKsyC,EAAI5uC,IACT6K,EAAO5O,KAAKmyC,MAAM9xC,MAEhBL,KAAKqxE,UAAUxsE,KAAKxE,GACpBuO,EAAKk1E,WASXrW,EAAQp7D,UAAUi/D,aAAe,WAC/B,MAAOtxE,MAAKqxE,UAAUxqE,YAOxB4mE,EAAQp7D,UAAU2rE,gBAAkB,WAClC,GAAIxiC,GAAQx7C,KAAK2Q,KAAK6qC,MAAM46B,UAE5B,IAAIp2E,KAAKgO,QAAQsgE,IACf,GAAIloE,GAAQpG,KAAK2Q,KAAKhQ,KAAKquE,SAASxzB,EAAMyJ,OACtC/+C,EAAOlG,KAAK2Q,KAAKhQ,KAAKquE,SAASxzB,EAAM0J,SAEzC,IAAIh/C,GAAOlG,KAAK2Q,KAAKhQ,KAAKquE,SAASxzB,EAAMyJ,OACrC7+C,EAAQpG,KAAK2Q,KAAKhQ,KAAKquE,SAASxzB,EAAM0J,IAG5C,IAAIvS,KACJ,KAAK,GAAI2gC,KAAWtzE,MAAK6tE,OACvB,GAAI7tE,KAAK6tE,OAAOvqE,eAAegwE,GAM7B,IAAK,GALD7B,GAAQzxE,KAAK6tE,OAAOyF,GACpByQ,EAAkBtS,EAAMuS,UAAYvS,EAAMwS,gBAIrClgF,EAAI,EAAGA,EAAIggF,EAAgBngF,OAAQG,IAAK,CAC/C,GAAI6K,GAAOm1E,EAAgBhgF,EAEvB/D,MAAKgO,QAAQsgE,IACX1/D,EAAKxI,MAAQF,GAAQ0I,EAAKxI,MAAQwI,EAAKwB,MAAQhK,GACjDusC,EAAI9tC,KAAK+J,EAAKvO,IAGZuO,EAAK1I,KAAOE,GAASwI,EAAK1I,KAAO0I,EAAKwB,MAAQlK,GAChDysC,EAAI9tC,KAAK+J,EAAKvO,IAOxB,MAAOsyC,IAQT86B,EAAQp7D,UAAU6xE,UAAY,SAAU7jF,GAEtC,IAAK,GADDgxE,GAAYrxE,KAAKqxE,UACZttE,EAAI,EAAG4oB,EAAK0kD,EAAUztE,OAAQG,EAAI4oB,EAAI5oB,IAC7C,GAAIstE,EAAUttE,IAAM1D,EAAI,CAEtBgxE,EAAUt5C,OAAOh0B,EAAG,EACpB,SASN0pE,EAAQp7D,UAAUotC,OAAS,WACzB,GAAIwE,GAASjkD,KAAKgO,QAAQi2C,OACtBzI,EAAQx7C,KAAK2Q,KAAK6qC,MAClBjyC,EAAS5I,EAAKuI,OAAOK,OACrByE,EAAUhO,KAAKgO,QACfkgE,EAAclgE,EAAQkgE,YAAYt/D,KAClCwpE,GAAU,EACVj6B,EAAQn+C,KAAK+tD,IAAI5P,KAGrBn+C,MAAKkE,MAAMoC,IAAMtG,KAAK2Q,KAAKi+D,SAAStoE,IAAI+J,OAASrQ,KAAK2Q,KAAKi+D,SAASjjE,OAAOrF,IAEvEtG,KAAKgO,QAAQsgE,IACftuE,KAAKkE,MAAMkC,MAAQpG,KAAK2Q,KAAKi+D,SAASxoE,MAAMgK,MAAQpQ,KAAK2Q,KAAKi+D,SAASjjE,OAAOvF,MAE9EpG,KAAKkE,MAAMgC,KAAOlG,KAAK2Q,KAAKi+D,SAAS1oE,KAAKkK,MAAQpQ,KAAK2Q,KAAKi+D,SAASjjE,OAAOzF,KAI9Ei4C,EAAMz3C,UAAY,cAGlB0xE,EAAUp4E,KAAKmkF,gBAAkB/L,CAIjC,IAAIgM,GAAkB5oC,EAAM0J,IAAM1J,EAAMyJ,MACpCo/B,EAASD,GAAmBpkF,KAAKskF,qBAAuBtkF,KAAKkE,MAAMkM,OAASpQ,KAAKkE,MAAMo7E,UACvFiF,EAAW/oC,EAAMyJ,OAASjlD,KAAKwkF,eAC/BC,EAAqBz2E,EAAQ4X,OAAS5lB,KAAK0kF,UAC3CC,EAA8B32E,EAAQ+xE,gBAAkB//E,KAAK4kF,mBAC7DC,EAAeR,GAAUE,GAAYE,GAAsBE,CAC/D3kF,MAAKskF,oBAAsBF,EAC3BpkF,KAAKwkF,eAAiBhpC,EAAMyJ,MAC5BjlD,KAAK0kF,UAAY12E,EAAQ4X,MACzB5lB,KAAK4kF,mBAAqB52E,EAAQ+xE,eAElC//E,KAAKkE,MAAMo7E,UAAYt/E,KAAKkE,MAAMkM,KAElC,IAAI00E,GAAa9kF,KAAK+kF,cAClBC,GACFp2E,KAAMq1C,EAAOr1C,KACbu/D,KAAMlqB,EAAOkqB,MAEX8W,GACFr2E,KAAMq1C,EAAOr1C,KACbu/D,KAAMlqB,EAAOr1C,KAAK2rC,SAAW,GAE3BlqC,EAAS,EACTg+D,EAAYpqB,EAAOkqB,KAAOlqB,EAAOr1C,KAAK2rC,QAiC1C,OA9BAv6C,MAAK6tE,OAAOiV,GAAYrjC,OAAOjE,EAAOypC,EAAgBJ,GAGtDlkF,EAAKuG,QAAQlH,KAAK6tE,OAAQ,SAAU4D,GAClC,GAAIyT,GAAczT,GAASqT,EAAaE,EAAcC,EAClDE,EAAe1T,EAAMhyB,OAAOjE,EAAO0pC,EAAaL,EACpDzM,GAAU+M,GAAgB/M,EAC1B/nE,GAAUohE,EAAMphE,SAElBA,EAAS5N,KAAKJ,IAAIgO,EAAQg+D,GAG1BlwB,EAAM9xC,MAAMgE,OAAS9G,EAAO8G,GAG5BrQ,KAAKkE,MAAMkM,MAAQ+tC,EAAMttC,YACzB7Q,KAAKkE,MAAMmM,OAASA,EAGpBrQ,KAAK+tD,IAAIogB,KAAK9hE,MAAM/F,IAAMiD,EAAsB,OAAf2kE,EAAuBluE,KAAK2Q,KAAKi+D,SAAStoE,IAAI+J,OAASrQ,KAAK2Q,KAAKi+D,SAASjjE,OAAOrF,IAAMtG,KAAK2Q,KAAKi+D,SAAStoE,IAAI+J,OAASrQ,KAAK2Q,KAAKi+D,SAASgE,gBAAgBviE,QACvLrQ,KAAKgO,QAAQsgE,IACftuE,KAAK+tD,IAAIogB,KAAK9hE,MAAMjG,MAAQ,IAE5BpG,KAAK+tD,IAAIogB,KAAK9hE,MAAMnG,KAAO,IAG7BlG,KAAKy8E,qBAAsB,EAE3BrE,EAAUp4E,KAAKm4E,cAAgBC,GAUjC3K,EAAQp7D,UAAU0yE,YAAc,WAC9B,GAAIK,GAAmD,OAAjCplF,KAAKgO,QAAQkgE,YAAYt/D,KAAgB,EAAI5O,KAAKwiF,SAAS5+E,OAAS,EACtFyhF,EAAerlF,KAAKwiF,SAAS4C,EAGjC,OAFiBplF,MAAK6tE,OAAOwX,IAAiBrlF,KAAK6tE,OAAOgV,IAErC,MAQvBpV,EAAQp7D,UAAU2wE,iBAAmB,WACnC,GAEIp0E,GAAMmkC,EAFNuyC,EAAYtlF,KAAK6tE,OAAOgV,EACX7iF,MAAK6tE,OAAOiV,EAG7B,IAAI9iF,KAAK4vE,YAEP,GAAI0V,EAAW,CACbA,EAAUxzE,aACH9R,MAAK6tE,OAAOgV,EAEnB,KAAK9vC,IAAU/yC,MAAKmyC,MAClB,GAAInyC,KAAKmyC,MAAM7uC,eAAeyvC,GAAS,CACrCnkC,EAAO5O,KAAKmyC,MAAMY,GAClBnkC,EAAK5F,QAAU4F,EAAK5F,OAAO4qC,OAAOhlC,EAClC,IAAI0kE,GAAUtzE,KAAKulF,YAAY32E,EAAK8lB,MAChC+8C,EAAQzxE,KAAK6tE,OAAOyF,EACxB7B,IAASA,EAAM9gD,IAAI/hB,IAASA,EAAKkD,aAMvC,KAAKwzE,EAAW,CAGdA,EAAY,GAAI9X,GAFP,KACE,KACqBxtE,MAChCA,KAAK6tE,OAAOgV,GAAayC,CAEzB,KAAKvyC,IAAU/yC,MAAKmyC,MACdnyC,KAAKmyC,MAAM7uC,eAAeyvC,KAC5BnkC,EAAO5O,KAAKmyC,MAAMY,GAClBuyC,EAAU30D,IAAI/hB,GAIlB02E,GAAUlT,SAShB3E,EAAQp7D,UAAUmzE,YAAc,WAC9B,MAAOxlF,MAAK+tD,IAAIslB,UAOlB5F,EAAQp7D,UAAUq+D,SAAW,SAAUv+B,GACrC,GACIQ,GADAV,EAAKjyC,KAELylF,EAAezlF,KAAK2vE,SAGxB,IAAKx9B,EAEE,CAAA,KAAIA,YAAiB5D,IAAW4D,YAAiB3D,IAGtD,KAAM,IAAIjqC,WAAU,kDAFpBvE,MAAK2vE,UAAYx9B,MAFjBnyC,MAAK2vE,UAAY,IAkBnB,IAXI8V,IAEF9kF,EAAKuG,QAAQlH,KAAK0hF,cAAe,SAAUv6E,EAAUoB,GACnDk9E,EAAa/zC,IAAInpC,EAAOpB,KAI1BwrC,EAAM8yC,EAAapyC,SACnBrzC,KAAK6hF,UAAUlvC,IAGb3yC,KAAK2vE,UAAW,CAElB,GAAItvE,GAAKL,KAAKK,EACdM,GAAKuG,QAAQlH,KAAK0hF,cAAe,SAAUv6E,EAAUoB,GACnD0pC,EAAG09B,UAAUp+B,GAAGhpC,EAAOpB,EAAU9G,KAInCsyC,EAAM3yC,KAAK2vE,UAAUt8B,SACrBrzC,KAAK2hF,OAAOhvC,GAGZ3yC,KAAKgjF,mBAGPhjF,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAa3a,OAAO,KAO7Cq8B,EAAQp7D,UAAUqzE,SAAW,WAC3B,MAAO1lF,MAAK2vE,WAOdlC,EAAQp7D,UAAUo+D,UAAY,SAAU5C,GACtC,GACIl7B,GADAV,EAAKjyC,IAgBT,IAZIA,KAAK4vE,aACPjvE,EAAKuG,QAAQlH,KAAK8hF,eAAgB,SAAU36E,EAAUoB,GACpD0pC,EAAG29B,WAAWl+B,IAAInpC,EAAOpB,KAI3BwrC,EAAM3yC,KAAK4vE,WAAWv8B,SACtBrzC,KAAK4vE,WAAa,KAClB5vE,KAAKuiF,gBAAgB5vC,IAIlBk7B,EAEE,CAAA,KAAIA,YAAkBt/B,IAAWs/B,YAAkBr/B,IAGxD,KAAM,IAAIjqC,WAAU,kDAFpBvE,MAAK4vE,WAAa/B,MAFlB7tE,MAAK4vE,WAAa,IAOpB,IAAI5vE,KAAK4vE,WAAY,CAEnB,GAAIA,GAAa5vE,KAAK4vE,UAClB5vE,MAAK4vE,qBAAsBphC,KAC7BohC,EAAa5vE,KAAK4vE,WAAWt8B,cAG/Bs8B,EAAWn4D,MAAMvQ,QAAQ,SAAUuqE,GAC7BA,EAAMwQ,cACRxQ,EAAMwQ,aAAa/6E,QAAQ,SAAUi7E,GACnC,GAAIC,GAAqBxS,EAAWn4D,IAAI0qE,EACxCC,GAAmBC,cAAgB5Q,EAAMpxE,GACjB,GAApBoxE,EAAMyQ,aACRE,EAAmB58B,SAAU,GAE/BoqB,EAAWx9B,OAAOgwC,MAMxB,IAAI/hF,GAAKL,KAAKK,EACdM,GAAKuG,QAAQlH,KAAK8hF,eAAgB,SAAU36E,EAAUoB,GACpD0pC,EAAG29B,WAAWr+B,GAAGhpC,EAAOpB,EAAU9G,KAIpCsyC,EAAM3yC,KAAK4vE,WAAWv8B,SACtBrzC,KAAK+hF,aAAapvC,GAIpB3yC,KAAKgjF,mBAGLhjF,KAAK2lF,SAEL3lF,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAa3a,OAAO,KAO7Cq8B,EAAQp7D,UAAUuzE,UAAY,WAC5B,MAAO5lF,MAAK4vE,YAOdnC,EAAQp7D,UAAUwzE,WAAa,SAAUxlF,GACvC,GAAIuO,GAAO5O,KAAK2vE,UAAUl4D,IAAIpX,GAC1BuxE,EAAU5xE,KAAK2vE,UAAUr8B,YACftzC,MAAKmyC,MAAM9xC,EAErBuO,IAEF5O,KAAKgO,QAAQgzE,SAASpyE,EAAM,SAAUA,GAChCA,GAGFgjE,EAAQh+B,OAAOvzC,MAYvBotE,EAAQp7D,UAAUyzE,SAAW,SAAUnU,GACrC,MAAOA,GAAS1sE,MAAQjF,KAAKgO,QAAQ/I,OAAS0sE,EAASzsB,IAAM,QAAU,QASzEuoB,EAAQp7D,UAAUkzE,YAAc,SAAU5T,GAExC,MAAY,cADD3xE,KAAK8lF,SAASnU,QACqB9tE,IAAlB8tE,EAASF,MAC5BqR,EAEA9iF,KAAK4vE,WAAa+B,EAASF,MAAQoR,GAS9CpV,EAAQp7D,UAAUuvE,UAAY,SAAUjvC,GACtC,GAAIV,GAAKjyC,IAET2yC,GAAIzrC,QAAQ,SAAU7G,GACpB,GAKI0lF,GALApU,EAAW1/B,EAAG09B,UAAUl4D,IAAIpX,EAAI4xC,EAAGwvC,aACnC7yE,EAAOqjC,EAAGE,MAAM9xC,GAChB4E,EAAO0sE,EAAW1/B,EAAG6zC,SAASnU,GAAY,KAE1CntE,EAAcipE,EAAQh5B,MAAMxvC,EAehC,IAZI2J,IAEGpK,GAAiBoK,YAAgBpK,GAMpCytC,EAAGS,YAAY9jC,EAAM+iE,IAJrBoU,EAAWn3E,EAAKm3E,SAChB9zC,EAAG+zC,YAAYp3E,GACfA,EAAO,QAMNA,GAAQ+iE,EAAU,CAErB,IAAIntE,EASG,KAAY,iBAARS,EAEH,GAAIV,WAAU,gIAEd,GAAIA,WAAU,sBAAwBU,EAAO,IAZnD2J,GAAO,GAAIpK,GAAYmtE,EAAU1/B,EAAG+iC,WAAY/iC,EAAGjkC,SACnDY,EAAKvO,GAAKA,EAEV4xC,EAAGC,SAAStjC,GACRm3E,IACF/lF,KAAKqxE,UAAUxsE,KAAKxE,GACpBuO,EAAKk1E,YASXlsB,KAAK53D,OAEPA,KAAK2lF,SACL3lF,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAa3a,OAAO,KAQ7Cq8B,EAAQp7D,UAAUsvE,OAASlU,EAAQp7D,UAAUuvE,UAO7CnU,EAAQp7D,UAAUwvE,UAAY,SAAUlvC,GACtC,GAAI4B,GAAQ,EACRtC,EAAKjyC,IACT2yC,GAAIzrC,QAAQ,SAAU7G,GACpB,GAAIuO,GAAOqjC,EAAGE,MAAM9xC,EAChBuO,KACF2lC,IACAtC,EAAG+zC,YAAYp3E,MAIf2lC,IAEFv0C,KAAK2lF,SACL3lF,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAa3a,OAAO,MAQ/Cq8B,EAAQp7D,UAAUszE,OAAS,WAGzBhlF,EAAKuG,QAAQlH,KAAK6tE,OAAQ,SAAU4D,GAClCA,EAAMx+B,WASVw6B,EAAQp7D,UAAUiwE,gBAAkB,SAAU3vC,GAC5C3yC,KAAK+hF,aAAapvC,IAQpB86B,EAAQp7D,UAAU0vE,aAAe,SAAUpvC,GACzC,GAAIV,GAAKjyC,IAET2yC,GAAIzrC,QAAQ,SAAU7G,GACpB,GAAI2hF,GAAY/vC,EAAG29B,WAAWn4D,IAAIpX,GAC9BoxE,EAAQx/B,EAAG47B,OAAOxtE,EAEtB,IAAKoxE,EA6BHA,EAAM/7B,QAAQssC,OA7BJ,CAEV,GAAI3hF,GAAMwiF,GAAaxiF,GAAMyiF,EAC3B,KAAM,IAAIz+E,OAAM,qBAAuBhE,EAAK,qBAG9C,IAAI4lF,IAAe,EAAI7kF,EAAkB,SAAG6wC,EAAGjkC,QAC/CrN,GAAKC,OAAOqlF,GACV51E,OAAQ,OAGVohE,EAAQ,GAAIjE,GAAMntE,EAAI2hF,EAAW/vC,GACjCA,EAAG47B,OAAOxtE,GAAMoxE,CAIhB,KAAK,GAAI1+B,KAAUd,GAAGE,MACpB,GAAIF,EAAGE,MAAM7uC,eAAeyvC,GAAS,CACnC,GAAInkC,GAAOqjC,EAAGE,MAAMY,EAChBnkC,GAAK8lB,KAAK+8C,OAASpxE,GACrBoxE,EAAM9gD,IAAI/hB,GAKhB6iE,EAAMx+B,QACNw+B,EAAMW,UAOVpyE,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAa3a,OAAO,KAQ7Cq8B,EAAQp7D,UAAUkwE,gBAAkB,SAAU5vC,GAC5C,GAAIk7B,GAAS7tE,KAAK6tE,MAClBl7B,GAAIzrC,QAAQ,SAAU7G,GACpB,GAAIoxE,GAAQ5D,EAAOxtE,EAEfoxE,KACFA,EAAM3/D,aACC+7D,GAAOxtE,MAIlBL,KAAKkxE,YAELlxE,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAa3a,OAAO,KAQ7Cq8B,EAAQp7D,UAAU8xE,aAAe,WAC/B,GAAInkF,KAAK4vE,WAAY,CAEnB,GAAI4S,GAAWxiF,KAAK4vE,WAAWv8B,QAC7BJ,MAAOjzC,KAAKgO,QAAQoyE,YAGtBoC,GAAWxiF,KAAKkmF,mBAAmB1D,EAEnC,IAAIliB,IAAW3/D,EAAKmE,WAAW09E,EAAUxiF,KAAKwiF,SAC9C,IAAIliB,EAAS,CAEX,GAAIuN,GAAS7tE,KAAK6tE,MAClB2U,GAASt7E,QAAQ,SAAUosE,GACzBzF,EAAOyF,GAASxhE,SAIlB0wE,EAASt7E,QAAQ,SAAUosE,GACzBzF,EAAOyF,GAASlB,SAGlBpyE,KAAKwiF,SAAWA,EAGlB,MAAOliB,GAEP,OAAO,GASXmN,EAAQp7D,UAAU6zE,mBAAqB,SAAU1D,GAC/C,GAAI2D,KAqBJ,OAnBA3D,GAASt7E,QAAQ,SAAUosE,GACzB,GAAI0O,GAAYhiF,KAAK4vE,WAAWn4D,IAAI67D,EAKpC,IAJK0O,EAAUK,eACb8D,EAAiBthF,KAAKyuE,GAGpB0O,EAAUC,aAAc,CAC1B,GAAIA,GAAejiF,KAAK4vE,WAAWn4D,KACjC3Q,OAAQ,SAAgBs/E,GACtB,MAAOA,GAAY/D,eAAiB/O,GAEtCrgC,MAAOjzC,KAAKgO,QAAQoyE,aAElBiG,EAAiBpE,EAAan3E,IAAI,SAAUs7E,GAC9C,MAAOA,GAAY/lF,IAErB8lF,GAAmBA,EAAiBt/E,OAAOw/E,KAE5CrmF,MACImmF,GAQT1Y,EAAQp7D,UAAU6/B,SAAW,SAAUtjC,GACrC5O,KAAKmyC,MAAMvjC,EAAKvO,IAAMuO,CAGtB,IAAI0kE,GAAUtzE,KAAKulF,YAAY32E,EAAK8lB,MAChC+8C,EAAQzxE,KAAK6tE,OAAOyF,EAEnB7B,GAEMA,GAASA,EAAM/8C,MAAQ+8C,EAAM/8C,KAAKwtD,aAC3CtzE,EAAKujE,cAAe,GAFpBvjE,EAAKujE,cAAe,EAKlBV,GAAOA,EAAM9gD,IAAI/hB,IASvB6+D,EAAQp7D,UAAUqgC,YAAc,SAAU9jC,EAAM+iE,GAE9C/iE,EAAK8mC,QAAQi8B,EAEb,IAAI2B,GAAUtzE,KAAKulF,YAAY32E,EAAK8lB,MAChC+8C,EAAQzxE,KAAK6tE,OAAOyF,EACnB7B,GAEMA,GAASA,EAAM/8C,MAAQ+8C,EAAM/8C,KAAKwtD,aAC3CtzE,EAAKujE,cAAe,GAFpBvjE,EAAKujE,cAAe,GAYxB1E,EAAQp7D,UAAU2zE,YAAc,SAAUp3E,GAExCA,EAAKkD,aAGE9R,MAAKmyC,MAAMvjC,EAAKvO,GAGvB,IAAI0S,GAAQ/S,KAAKqxE,UAAUzsE,QAAQgK,EAAKvO,KAC1B,GAAV0S,GAAa/S,KAAKqxE,UAAUt5C,OAAOhlB,EAAO,GAG9CnE,EAAK5F,QAAU4F,EAAK5F,OAAO4qC,OAAOhlC,IASpC6+D,EAAQp7D,UAAUi0E,qBAAuB,SAAUj/E,GAGjD,IAAK,GAFDk/E,MAEKxiF,EAAI,EAAGA,EAAIsD,EAAMzD,OAAQG,IAC5BsD,EAAMtD,YAAcipE,IACtBuZ,EAAS1hF,KAAKwC,EAAMtD,GAGxB,OAAOwiF,IAaT9Y,EAAQp7D,UAAUuiE,SAAW,SAAUrsE,GAErCvI,KAAK0iF,YAAY9zE,KAAO5O,KAAK6yE,eAAetqE,GAC5CvI,KAAK0iF,YAAY8D,aAAej+E,EAAMI,OAAO69E,eAAgB,EAC7DxmF,KAAK0iF,YAAY+D,cAAgBl+E,EAAMI,OAAO89E,gBAAiB,EAC/DzmF,KAAK0iF,YAAYgE,UAAY,MAS/BjZ,EAAQp7D,UAAUs0E,eAAiB,SAAUrT,GAC3C,IAAK,GAAIvvE,GAAI,EAAGA,EAAI/D,KAAKwiF,SAAS5+E,OAAQG,IACxC,GAAIuvE,GAAWtzE,KAAKwiF,SAASz+E,GAAI,MAAOA,IAS5C0pE,EAAQp7D,UAAUmiE,aAAe,SAAUjsE,GACzC,IAAIvI,KAAK0iF,YAAYkE,eAArB,CAGA,GAEI1iF,GAFA0K,EAAO5O,KAAK0iF,YAAY9zE,MAAQ,KAChCqjC,EAAKjyC,IAGT,IAAI4O,IAASA,EAAKm3E,UAAY/lF,KAAKgO,QAAQuyE,qBAAqB3xE,MAAO,CAErE,GAAI5O,KAAKgO,QAAQwyE,SAASG,gBAAkB3gF,KAAKgO,QAAQwyE,SAASC,aAAezgF,KAAKgO,QAAQwyE,SAASE,YACrG,MAIF,IAAqB,MAAjB9xE,EAAK4xE,WAAqB5xE,EAAK4xE,SAASC,aAAe7xE,EAAK4xE,SAASE,cAAgB1gF,KAAKgO,QAAQwyE,SAASG,cAC7G,MAGF,IAAI6F,GAAexmF,KAAK0iF,YAAY8D,aAChCC,EAAgBzmF,KAAK0iF,YAAY+D,aAIrC,IAHAzmF,KAAK0iF,YAAYkE,gBAAiB,EAClC5mF,KAAK0iF,YAAYmE,aAAej4E,EAE5B43E,EACFtiF,GACE0K,KAAM43E,EACNM,SAAUv+E,EAAMszC,OAAO5mB,EACvB8xD,UAAU,EACVryD,KAAM10B,KAAKgnF,eAAep4E,EAAK8lB,OAGjC10B,KAAK0iF,YAAYgE,WAAaxiF,OACzB,IAAIuiF,EACTviF,GACE0K,KAAM63E,EACNK,SAAUv+E,EAAMszC,OAAO5mB,EACvBgyD,WAAW,EACXvyD,KAAM10B,KAAKgnF,eAAep4E,EAAK8lB,OAGjC10B,KAAK0iF,YAAYgE,WAAaxiF,OACzB,CACDlE,KAAKwiF,SAAS5+E,OAAS,GAGzB5D,KAAKy/C,QAGP,IAAIynC,GAAiBlnF,KAAK2mF,eAAe/3E,EAAK8lB,KAAK+8C,OAE/C0V,EAAcnnF,KAAKgO,QAAQuyE,qBAAqB3xE,OAASA,EAAKm3E,UAAYn3E,EAAKvO,IAAML,KAAKsxE,cAE9FtxE,MAAK0iF,YAAYgE,UAAYS,EAAYr8E,IAAI,SAAUzK,GACrD,GAAIuO,GAAOqjC,EAAGE,MAAM9xC,GAChB+mF,EAAan1C,EAAG00C,eAAe/3E,EAAK8lB,KAAK+8C,MAC7C,QACE7iE,KAAMA,EACNk4E,SAAUv+E,EAAMszC,OAAO5mB,EACvBoyD,YAAaH,EAAiBE,EAC9B1yD,KAAM10B,KAAKgnF,eAAep4E,EAAK8lB,QAEjCkjC,KAAK53D,OAGTuI,EAAMmvD,sBACG13D,MAAKgO,QAAQwyE,SAAS7vD,MAAQpoB,EAAMgvD,SAASpM,SAAW5iD,EAAMgvD,SAAS+vB,UAEhFtnF,KAAKunF,oBAAoBh/E,KAS7BklE,EAAQp7D,UAAUk1E,oBAAsB,SAAUh/E,GAChD,GAAI0qE,GAAOjzE,KAAKgO,QAAQilE,MAAQ,IAEhC,IAAIjzE,KAAKgO,QAAQsgE,IACf,GAAIkZ,GAAO7mF,EAAKwF,iBAAiBnG,KAAK+tD,IAAI5P,OACtClpB,EAAIuyD,EAAOj/E,EAAMszC,OAAO5mB,EAAI,OAEhC,IAAIuyD,GAAO7mF,EAAKoF,gBAAgB/F,KAAK+tD,IAAI5P,OACrClpB,EAAI1sB,EAAMszC,OAAO5mB,EAAIuyD,EAAO,EAGlC,IAAIlnD,GAAOtgC,KAAK2Q,KAAKhQ,KAAKyuE,OAAOn6C,GAC7BzyB,EAAQxC,KAAK2Q,KAAKhQ,KAAKs9D,WACvB1rD,EAAOvS,KAAK2Q,KAAKhQ,KAAKuyD,UACtBjO,EAAQguB,EAAOA,EAAK3yC,EAAM99B,EAAO+P,GAAQ+tB,EACzC4kB,EAAMD,EAEN0sB,GACF1sE,KAAM,QACNggD,MAAOA,EACPC,IAAKA,EACLzU,QAAS,YAGPpwC,EAAKM,EAAKuC,YACdyuE,GAAS3xE,KAAK2vE,UAAU7+B,UAAYzwC,CAEpC,IAAIoxE,GAAQzxE,KAAK8yE,gBAAgBvqE,EAC7BkpE,KACFE,EAASF,MAAQA,EAAM6B,QAEzB,IAAImU,GAAU,GAAIza,GAAU2E,EAAU3xE,KAAKg1E,WAAYh1E,KAAKgO,QAC5Dy5E,GAAQpnF,GAAKA,EACbonF,EAAQ/yD,KAAO10B,KAAKgnF,eAAerV,GACnC3xE,KAAKkyC,SAASu1C,GACdznF,KAAK0iF,YAAYmE,aAAeY,CAEhC,IAAIvjF,IACF0K,KAAM64E,EACNX,SAAUv+E,EAAMszC,OAAO5mB,EACvBP,KAAM+yD,EAAQ/yD,KAGZ10B,MAAKgO,QAAQsgE,IACfpqE,EAAM6iF,UAAW,EAEjB7iF,EAAM+iF,WAAY,EAEpBjnF,KAAK0iF,YAAYgE,WAAaxiF,GAE9BqE,EAAMmvD,mBAQR+V,EAAQp7D,UAAUoiE,QAAU,SAAUlsE,GACpC,GAAIvI,KAAK0iF,YAAYgE,UAAW,CAC9Bn+E,EAAMmvD,iBAEN,IAAIzlB,GAAKjyC,KACLizE,EAAOjzE,KAAKgO,QAAQilE,MAAQ,IAEhC,IAAIjzE,KAAKgO,QAAQsgE,IACf,GAAI/9B,GAAUvwC,KAAK2Q,KAAKo9C,IAAIruD,KAAKgoF,WAAa1nF,KAAK2Q,KAAKi+D,SAASxoE,MAAMgK,UAEvE,IAAImgC,GAAUvwC,KAAK2Q,KAAKo9C,IAAIruD,KAAKgoF,WAAa1nF,KAAK2Q,KAAKi+D,SAAS1oE,KAAKkK,KAGxE,IAAI5N,GAAQxC,KAAK2Q,KAAKhQ,KAAKs9D,WACvB1rD,EAAOvS,KAAK2Q,KAAKhQ,KAAKuyD,UAGtB2zB,EAAe7mF,KAAK0iF,YAAYmE,aAChCc,GAAsB3nF,KAAKgO,QAAQwyE,SAASG,eAA0C,MAAzBkG,EAAarG,WAAqBxgF,KAAKgO,QAAQwyE,SAASE,cAAgB1gF,KAAKgO,QAAQwyE,SAASG,eAA0C,MAAzBkG,EAAarG,UAAoBqG,EAAarG,SAASE,YACnOkH,EAAe,IACnB,IAAID,GAAsBd,OACOhjF,IAA3BgjF,EAAanyD,KAAK+8C,MAAoB,CAExC,GAAIA,GAAQx/B,EAAG6gC,gBAAgBvqE,EAC3BkpE,KAGFmW,EAAe5nF,KAAK2mF,eAAelV,EAAM6B,UAM/CtzE,KAAK0iF,YAAYgE,UAAUx/E,QAAQ,SAAUhD,GAC3C,GAAI01E,GAAU3nC,EAAGthC,KAAKhQ,KAAKyuE,OAAO7mE,EAAMszC,OAAO5mB,EAAIsb,GAC/Cs3C,EAAU51C,EAAGthC,KAAKhQ,KAAKyuE,OAAOlrE,EAAM4iF,SAAWv2C,EAEnD,IAAIvwC,KAAKgO,QAAQsgE,IACf,GAAIzxC,KAAW+8C,EAAUiO,OAEzB,IAAIhrD,GAAS+8C,EAAUiO,CAGzB,IAAIlW,GAAW3xE,KAAKgnF,eAAe9iF,EAAM0K,KAAK8lB,KAC9C,IAA2B,MAAvBxwB,EAAM0K,KAAK4xE,UAAqBt8E,EAAM0K,KAAK4xE,SAASC,YAAev8E,EAAM0K,KAAK4xE,SAASE,aAAgBzuC,EAAGjkC,QAAQwyE,SAASG,cAA/H,CAKA,IADyB3gF,KAAKgO,QAAQwyE,SAASG,eAA0C,MAAzBkG,EAAarG,WAAqBxgF,KAAKgO,QAAQwyE,SAASC,aAAezgF,KAAKgO,QAAQwyE,SAASG,eAA0C,MAAzBkG,EAAarG,UAAoBqG,EAAarG,SAASC,WAEnO,GAAIv8E,EAAM6iF,UAER,GAAI/mF,KAAKgO,QAAQsgE,KACf,OAAoBzqE,IAAhB8tE,EAASzsB,IAAkB,CAC7B,GAAI4iC,GAAannF,EAAKqE,QAAQd,EAAMwwB,KAAKwwB,IAAK,QAC1CA,EAAM,GAAIriD,MAAKilF,EAAW1iF,UAAYy3B,EAE1C80C,GAASzsB,IAAM+tB,EAAOA,EAAK/tB,EAAK1iD,EAAO+P,GAAQ2yC,OAGjD,QAAsBrhD,IAAlB8tE,EAAS1sB,MAAoB,CAC/B,GAAI8iC,GAAepnF,EAAKqE,QAAQd,EAAMwwB,KAAKuwB,MAAO,QAC9CA,EAAQ,GAAIpiD,MAAKklF,EAAa3iF,UAAYy3B,EAE9C80C,GAAS1sB,MAAQguB,EAAOA,EAAKhuB,EAAOziD,EAAO+P,GAAQ0yC,OAGlD,IAAI/gD,EAAM+iF,WAEf,GAAIjnF,KAAKgO,QAAQsgE,KACf,OAAsBzqE,IAAlB8tE,EAAS1sB,MAAoB,CAC/B,GAAI8iC,GAAepnF,EAAKqE,QAAQd,EAAMwwB,KAAKuwB,MAAO,QAC9CA,EAAQ,GAAIpiD,MAAKklF,EAAa3iF,UAAYy3B,EAE9C80C,GAAS1sB,MAAQguB,EAAOA,EAAKhuB,EAAOziD,EAAO+P,GAAQ0yC,OAGrD,QAAoBphD,IAAhB8tE,EAASzsB,IAAkB,CAC7B,GAAI4iC,GAAannF,EAAKqE,QAAQd,EAAMwwB,KAAKwwB,IAAK,QAC1CA,EAAM,GAAIriD,MAAKilF,EAAW1iF,UAAYy3B,EAE1C80C,GAASzsB,IAAM+tB,EAAOA,EAAK/tB,EAAK1iD,EAAO+P,GAAQ2yC,OAKnD,QAAsBrhD,IAAlB8tE,EAAS1sB,MAAoB,CAE/B,GAAI8iC,GAAepnF,EAAKqE,QAAQd,EAAMwwB,KAAKuwB,MAAO,QAAQ7/C,UACtD6/C,EAAQ,GAAIpiD,MAAKklF,EAAelrD,EAEpC,QAAoBh5B,IAAhB8tE,EAASzsB,IAAkB,CAC7B,GAAI4iC,GAAannF,EAAKqE,QAAQd,EAAMwwB,KAAKwwB,IAAK,QAC1CppB,EAAWgsD,EAAW1iF,UAAY2iF,EAAa3iF,SAGnDusE,GAAS1sB,MAAQguB,EAAOA,EAAKhuB,EAAOziD,EAAO+P,GAAQ0yC,EACnD0sB,EAASzsB,IAAM,GAAIriD,MAAK8uE,EAAS1sB,MAAM7/C,UAAY02B,OAGnD61C,GAAS1sB,MAAQguB,EAAOA,EAAKhuB,EAAOziD,EAAO+P,GAAQ0yC,EAM3D,GAAI0iC,IAAuBzjF,EAAM6iF,WAAa7iF,EAAM+iF,WAA6B,MAAhBW,OACzC/jF,IAAlB8tE,EAASF,MAAoB,CAC/B,GAAIuW,GAAYJ,EAAe1jF,EAAMmjF,WAGrCW,GAAYvlF,KAAKJ,IAAI,EAAG2lF,GACxBA,EAAYvlF,KAAKL,IAAI6vC,EAAGuwC,SAAS5+E,OAAS,EAAGokF,GAC7CrW,EAASF,MAAQx/B,EAAGuwC,SAASwF,GAKjCrW,EAAW3xE,KAAKgnF,eAAerV,GAC/B1/B,EAAGjkC,QAAQizE,SAAStP,EAAU,SAAUA,GAClCA,GACFztE,EAAM0K,KAAK8mC,QAAQ11C,KAAKgnF,eAAerV,EAAU,UAEnD/Z,KAAK53D,SACP43D,KAAK53D,OAEPA,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,aAU3B0hB,EAAQp7D,UAAU41E,aAAe,SAAUr5E,EAAM0kE,GAC/C,GAAI7B,GAAQzxE,KAAK6tE,OAAOyF,EACxB,IAAI7B,GAASA,EAAM6B,SAAW1kE,EAAK8lB,KAAK+8C,MAAO,CAC7C,GAAIyW,GAAWt5E,EAAK5F,MACpBk/E,GAASt0C,OAAOhlC,GAChBs5E,EAASj1C,QAETrkC,EAAK8lB,KAAK+8C,MAAQA,EAAM6B,QAExB7B,EAAM9gD,IAAI/hB,GACV6iE,EAAMx+B,UASVw6B,EAAQp7D,UAAUqiE,WAAa,SAAUnsE,GAEvC,GADAvI,KAAK0iF,YAAYkE,gBAAiB,EAC9B5mF,KAAK0iF,YAAYgE,UAAW,CAC9Bn+E,EAAMmvD,iBAEN,IAAIzlB,GAAKjyC,KACL4xE,EAAU5xE,KAAK2vE,UAAUr8B,aACzBozC,EAAY1mF,KAAK0iF,YAAYgE,SACjC1mF,MAAK0iF,YAAYgE,UAAY,KAE7BA,EAAUx/E,QAAQ,SAAUhD,GAC1B,GAAI7D,GAAK6D,EAAM0K,KAAKvO,EAGpB,IAFqD,MAAxC4xC,EAAG09B,UAAUl4D,IAAIpX,EAAI4xC,EAAGwvC,aAa9B,CAEL,GAAI9P,GAAW3xE,KAAKgnF,eAAe9iF,EAAM0K,KAAK8lB,KAC9Cud,GAAGjkC,QAAQ+yE,OAAOpP,EAAU,SAAUA,GAChCA,GAEFA,EAASC,EAAQ9gC,UAAYzwC,EAC7BuxE,EAAQx/B,OAAOu/B,KAGfztE,EAAM0K,KAAK8mC,QAAQxxC,EAAMwwB,MAEzBud,EAAGthC,KAAKk+D,QAAQ9iB,KAAK,kBArBzB9Z,GAAGjkC,QAAQ6yE,MAAM38E,EAAM0K,KAAK8lB,KAAM,SAAUi9C,GAC1C1/B,EAAG+zC,YAAY9hF,EAAM0K,MACjB+iE,GACF1/B,EAAG09B,UAAUr8B,aAAa3iB,IAAIghD,GAIhC1/B,EAAGthC,KAAKk+D,QAAQ9iB,KAAK,cAkBzB6L,KAAK53D,SAIXytE,EAAQp7D,UAAUgxE,cAAgB,SAAU96E,GAC1C,GAAIkpE,GAAQzxE,KAAK8yE,gBAAgBvqE,EAEjC,IAAKkpE,GAAUA,EAAMwQ,aAArB,CAEA,GAAIrS,GAAa5vE,KAAK4vE,UAClB5vE,MAAK4vE,qBAAsBphC,KAC7BohC,EAAa5vE,KAAK4vE,WAAWt8B,aAG/B,IAAI60C,GAAevY,EAAWn4D,IAAIg6D,EAAM6B,QACxC6U,GAAajG,YAAciG,EAAajG,UAExC,IAAID,GAAerS,EAAWn4D,IAAIg6D,EAAMwQ,cAAcn3E,IAAI,SAAUs7E,GAKlE,WAJ2BviF,IAAvBuiF,EAAY5gC,UACd4gC,EAAY5gC,SAAU,GAExB4gC,EAAY5gC,UAAY2iC,EAAajG,WAC9BkE,GAKT,IAFAxW,EAAWx9B,OAAO6vC,EAAap7E,OAAOshF,IAElCA,EAAajG,WACfvhF,EAAKqG,gBAAgByqE,EAAM1jB,IAAIzd,MAAO,aACtC3vC,EAAK4F,aAAakrE,EAAM1jB,IAAIzd,MAAO,gBAC9B,CACL3vC,EAAKqG,gBAAgByqE,EAAM1jB,IAAIzd,MAAO,WACtC,IAAI83C,GAAwBpoF,KAAKgO,QAAQsgE,IAAM,gBAAkB,WACjE3tE,GAAK4F,aAAakrE,EAAM1jB,IAAIzd,MAAO83C,MAIvC3a,EAAQp7D,UAAUixE,kBAAoB,SAAU/6E,GAC1CvI,KAAKgO,QAAQ4yE,cAAc3tC,QAC7BjzC,KAAK2iF,iBAAiBlR,MAAQzxE,KAAK8yE,gBAAgBvqE,GAE/CvI,KAAK2iF,iBAAiBlR,QACxBlpE,EAAMmvD,kBAEN13D,KAAK2iF,iBAAiB0F,cAAgBroF,KAAK4vE,WAAWv8B,QACpDJ,MAAOjzC,KAAKgO,QAAQoyE,gBAM5B3S,EAAQp7D,UAAUkxE,aAAe,SAAUh7E,GACzC,GAAIvI,KAAKgO,QAAQ4yE,cAAc3tC,OAASjzC,KAAK2iF,iBAAiBlR,MAAO,CACnElpE,EAAMmvD,iBAEN,IAAIkY,GAAa5vE,KAAK4vE,UAClB5vE,MAAK4vE,qBAAsBphC,KAC7BohC,EAAa5vE,KAAK4vE,WAAWt8B,aAG/B,IAAIm+B,GAAQzxE,KAAK8yE,gBAAgBvqE,EAGjC,IAAIkpE,GAASA,EAAMphE,QAAUrQ,KAAK2iF,iBAAiBlR,MAAMphE,OAAQ,CAC/D,GAAIi4E,GAAW7W,EAAMnrE,IAAMtG,KAAK2iF,iBAAiBlR,MAAMnrE,IACnDgxC,EAAU/uC,EAAMszC,OAAStzC,EAAMszC,OAAOhtB,EAAItmB,EAAM+uC,QAChDixC,EAAiB5nF,EAAK0F,eAAeorE,EAAM1jB,IAAIqlB,YAC/CoV,EAAqBxoF,KAAK2iF,iBAAiBlR,MAAMphE,MACrD,IAAIi4E,GAEF,GAAIC,EAAiBC,EAAqBlxC,EACxC,WAEG,CAGL,GAAIixC,EAFoB9W,EAAMphE,OAEWm4E,EAAqBlxC,EAC5D,QAKN,GAAIm6B,GAASA,GAASzxE,KAAK2iF,iBAAiBlR,MAAO,CACjD,GAAIgX,GAAc7Y,EAAWn4D,IAAIg6D,EAAM6B,SACnCoV,EAAe9Y,EAAWn4D,IAAIzX,KAAK2iF,iBAAiBlR,MAAM6B,QAG1DoV,IAAgBD,IAClBzoF,KAAKgO,QAAQgyE,eAAe0I,EAAcD,EAAa7Y,GACvDA,EAAWx9B,OAAOs2C,GAClB9Y,EAAWx9B,OAAOq2C,GAIpB,IAAIE,GAAW/Y,EAAWv8B,QACxBJ,MAAOjzC,KAAKgO,QAAQoyE,YAItB,KAAKz/E,EAAKmE,WAAW6jF,EAAU3oF,KAAK2iF,iBAAiB0F,eAOnD,IANA,GAAIO,GAAY5oF,KAAK2iF,iBAAiB0F,cAClCQ,EAAY7oF,KAAK2iF,iBAAiBlR,MAAM6B,QACxCwV,EAAYrmF,KAAKL,IAAIwmF,EAAUhlF,OAAQ+kF,EAAS/kF,QAChDmlF,EAAS,EACTf,EAAY,EACZgB,EAAY,EACTD,EAASD,GAAW,CAEzB,KAAOC,EAASf,EAAYc,GAAaC,EAASC,EAAYF,GAAaH,EAASI,EAASf,IAAcY,EAAUG,EAASC,IAC5HD,GAIF,IAAIA,EAASf,GAAac,EACxB,KAKF,IAAIH,EAASI,EAASf,IAAca,EAK/B,GAAID,EAAUG,EAASC,IAAcH,EAArC,CAOC,GAAII,GAAkBN,EAAS/jF,QAAQgkF,EAAUG,EAASC,IACtDE,EAActZ,EAAWn4D,IAAIkxE,EAASI,EAASf,IAC/CmB,EAAgBvZ,EAAWn4D,IAAImxE,EAAUG,EAASC,GACtDhpF,MAAKgO,QAAQgyE,eAAekJ,EAAaC,EAAevZ,GACxDA,EAAWx9B,OAAO82C,GAClBtZ,EAAWx9B,OAAO+2C,EAElB,IAAIC,GAAgBT,EAASI,EAASf,EACtCW,GAASI,EAASf,GAAaY,EAAUG,EAASC,GAClDL,EAASM,GAAmBG,EAE5BL,QAjBFC,GAAY,MALdhB,GAAY,MA8BxBva,EAAQp7D,UAAUmxE,gBAAkB,SAAUj7E,GAC5C,GAAIvI,KAAKgO,QAAQ4yE,cAAc3tC,OAASjzC,KAAK2iF,iBAAiBlR,MAAO,CACnElpE,EAAMmvD,iBAGN,IAAIzlB,GAAKjyC,KACLK,EAAK4xC,EAAG0wC,iBAAiBlR,MAAM6B,QAC/B1B,EAAU3/B,EAAG29B,WAAWt8B,aACxB0uC,EAAYrhF,EAAKC,UAAWgxE,EAAQn6D,IAAIpX,GAC5C4xC,GAAGjkC,QAAQmzE,YAAYa,EAAW,SAAUA,GAC1C,GAAIA,EAEFA,EAAUpQ,EAAQ9gC,UAAYzwC,EAC9BuxE,EAAQx/B,OAAO4vC,OACV,CAGL,GAAI2G,GAAW/W,EAAQv+B,QACrBJ,MAAOhB,EAAGjkC,QAAQoyE,YAIpB,KAAKz/E,EAAKmE,WAAW6jF,EAAU12C,EAAG0wC,iBAAiB0F,eAIjD,IAHA,GAAIO,GAAY32C,EAAG0wC,iBAAiB0F,cAChCS,EAAYrmF,KAAKL,IAAIwmF,EAAUhlF,OAAQ+kF,EAAS/kF,QAChDmlF,EAAS,EACNA,EAASD,GAAW,CAEzB,KAAOC,EAASD,GAAaH,EAASI,IAAWH,EAAUG,IACzDA,GAIF,IAAIA,GAAUD,EACZ,KAKF,IAAIG,GAAkBN,EAAS/jF,QAAQgkF,EAAUG,IAC7CG,EAActX,EAAQn6D,IAAIkxE,EAASI,IACnCI,EAAgBvX,EAAQn6D,IAAImxE,EAAUG,GAC1C92C,GAAGjkC,QAAQgyE,eAAekJ,EAAaC,EAAevX,GACtDA,EAAQx/B,OAAO82C,GACftX,EAAQx/B,OAAO+2C,EAEf,IAAIC,GAAgBT,EAASI,EAC7BJ,GAASI,GAAUH,EAAUG,GAC7BJ,EAASM,GAAmBG,EAE5BL,QAMR92C,EAAGthC,KAAKk+D,QAAQ9iB,KAAK,gBAAkBunB,QAASjzE,MASpDotE,EAAQp7D,UAAU6wE,cAAgB,SAAU36E,GAC1C,GAAKvI,KAAKgO,QAAQqyE,WAAlB,CAEA,GAAIl1B,GAAU5iD,EAAMgvD,WAAahvD,EAAMgvD,SAASpM,SAAW5iD,EAAMgvD,SAAS+vB,SACtEtb,EAAWzjE,EAAMgvD,UAAYhvD,EAAMgvD,SAASyU,QAChD,IAAI7gB,GAAW6gB,EAEb,WADAhsE,MAAKmjF,mBAAmB56E,EAI1B,IAAI8gF,GAAerpF,KAAKsxE,eAEpB1iE,EAAO5O,KAAK6yE,eAAetqE,GAC3B8oE,EAAYziE,GAAQA,EAAKvO,MAC7BL,MAAKuxE,aAAaF,EAElB,IAAIiY,GAAetpF,KAAKsxE,gBAIpBgY,EAAa1lF,OAAS,GAAKylF,EAAazlF,OAAS,IACnD5D,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,UACrB5Z,MAAOm3C,EACP/gF,MAAOA,MAUbklE,EAAQp7D,UAAUoxE,aAAe,SAAUl7E,GACzC,GAAIqG,GAAO5O,KAAK6yE,eAAetqE,EAC/B,IAAKqG,EAAL,CAIA,GAAIA,IADU5O,KAAKupF,sBAAsBhhF,GACzC,CAKA,GAAIo1E,GAAQ/uE,EAAK46E,UACjB,IAAIxpF,KAAKgO,QAAQqzE,cAAgB1D,EAAO,CACpB,MAAd39E,KAAKyiF,QACPziF,KAAKyiF,MAAQ,GAAIG,GAAM5iF,KAAK2Q,KAAKo9C,IAAIruD,KAAMM,KAAKgO,QAAQurC,QAAQgoC,gBAAkB,SAGpFvhF,KAAKyiF,MAAMgH,QAAQ9L,EACnB,IAAIvnC,GAAYp2C,KAAK2Q,KAAKo9C,IAAI6kB,eAC9B5yE,MAAKyiF,MAAMiH,YAAYnhF,EAAM4uC,QAAUx2C,EAAKoF,gBAAgBqwC,GAAaA,EAAUsxC,WAAYn/E,EAAM+uC,QAAU32C,EAAK0F,eAAe+vC,GAAaA,EAAUuzC,WAC1J3pF,KAAKyiF,MAAMrQ,WAIO,OAAdpyE,KAAKyiF,OACPziF,KAAKyiF,MAAM3wE,MAIf9R,MAAK2Q,KAAKk+D,QAAQ9iB,KAAK,YACrBn9C,KAAMA,EAAKvO,GACXkI,MAAOA,OAGXklE,EAAQp7D,UAAUqxE,YAAc,SAAUn7E,GACxC,GAAIqG,GAAO5O,KAAK6yE,eAAetqE,EAC/B,IAAKqG,EAAL,CAIIA,IADU5O,KAAKupF,sBAAsBhhF,KAMvB,MAAdvI,KAAKyiF,OACPziF,KAAKyiF,MAAM3wE,OAGb9R,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WACrBn9C,KAAMA,EAAKvO,GACXkI,MAAOA,OAGXklE,EAAQp7D,UAAUy4C,aAAe,SAAUviD,GAEzC,GADWvI,KAAK6yE,eAAetqE,IAG3BvI,KAAKgO,QAAQqzE,cAAgBrhF,KAAKgO,QAAQurC,QAAQ+nC,aAChDthF,KAAKyiF,QACFziF,KAAKyiF,MAAMrJ,OAAQ,CACtB,GAAIhjC,GAAYp2C,KAAK2Q,KAAKo9C,IAAI6kB,eAC9B5yE,MAAKyiF,MAAMiH,YAAYnhF,EAAM4uC,QAAUx2C,EAAKoF,gBAAgBqwC,GAAaA,EAAUsxC,WAAYn/E,EAAM+uC,QAAU32C,EAAK0F,eAAe+vC,GAAaA,EAAUuzC,WAC1J3pF,KAAKyiF,MAAMrQ,SAWnB3E,EAAQp7D,UAAUsiE,cAAgB,SAAUpsE,GACtCvI,KAAK0iF,YAAYkE,gBACnB5mF,KAAK00E,WAAWnsE,IASpBklE,EAAQp7D,UAAUu3E,cAAgB,SAAUh7E,GAC1C,GAAK5O,KAAKgO,QAAQqyE,YACbrgF,KAAKgO,QAAQwyE,SAAS7vD,IAA3B,CAEA,GAAIshB,GAAKjyC,IAET,IAAI4O,EAAM,CAER,GAAI+iE,GAAW1/B,EAAG09B,UAAUl4D,IAAI7I,EAAKvO,GACrCL,MAAKgO,QAAQ8yE,SAASnP,EAAU,SAAUA,GACpCA,GACF1/B,EAAG09B,UAAUr8B,aAAalB,OAAOu/B,QAWzClE,EAAQp7D,UAAUspE,WAAa,SAAUpzE,GACvC,GAAKvI,KAAKgO,QAAQqyE,YACbrgF,KAAKgO,QAAQwyE,SAAS7vD,IAA3B,CAEA,GAAIshB,GAAKjyC,KACLizE,EAAOjzE,KAAKgO,QAAQilE,MAAQ,IAGhC,KAFWjzE,KAAK6yE,eAAetqE,GAEpB,CAET,GAAIvI,KAAKgO,QAAQsgE,IACf,GAAIkZ,GAAO7mF,EAAKwF,iBAAiBnG,KAAK+tD,IAAI5P,OACtClpB,EAAIuyD,EAAOj/E,EAAMszC,OAAO5mB,MAE5B,IAAIuyD,GAAO7mF,EAAKoF,gBAAgB/F,KAAK+tD,IAAI5P,OACrClpB,EAAI1sB,EAAMszC,OAAO5mB,EAAIuyD,CAI3B,IAIIqC,GAJA5kC,EAAQjlD,KAAK2Q,KAAKhQ,KAAKyuE,OAAOn6C,GAC9BzyB,EAAQxC,KAAK2Q,KAAKhQ,KAAKs9D,WACvB1rD,EAAOvS,KAAK2Q,KAAKhQ,KAAKuyD,SAG1B,IAAkB,QAAd3qD,EAAMtD,MAOR,GANA4kF,EAAc3sE,KAAKja,MAAMsF,EAAMgzE,aAAaG,QAAQ,SACpDmO,EAAYp5C,QAAUo5C,EAAYp5C,QAAUo5C,EAAYp5C,QAAU,WAClEo5C,EAAY5kC,MAAQ4kC,EAAY5kC,MAAQ4kC,EAAY5kC,MAAQguB,EAAOA,EAAKhuB,EAAOziD,EAAO+P,GAAQ0yC,EAC9F4kC,EAAY5kF,KAAO4kF,EAAY5kF,MAAQ,MACvC4kF,EAAY7pF,KAAK2vE,UAAU7+B,UAAY+4C,EAAYxpF,IAAMM,EAAKuC,aAEtC,SAApB2mF,EAAY5kF,OAAoB4kF,EAAY3kC,IAAK,CACnD,GAAIA,GAAMllD,KAAK2Q,KAAKhQ,KAAKyuE,OAAOn6C,EAAIj1B,KAAKkE,MAAMkM,MAAQ,EACvDy5E,GAAY3kC,IAAM+tB,EAAOA,EAAK/tB,EAAK1iD,EAAO+P,GAAQ2yC,OAUpD,IAPA2kC,GACE5kC,MAAOguB,EAAOA,EAAKhuB,EAAOziD,EAAO+P,GAAQ0yC,EACzCxU,QAAS,YAEXo5C,EAAY7pF,KAAK2vE,UAAU7+B,UAAYnwC,EAAKuC,aAGlB,UAAtBlD,KAAKgO,QAAQ/I,KAAkB,CACjC,GAAIigD,GAAMllD,KAAK2Q,KAAKhQ,KAAKyuE,OAAOn6C,EAAIj1B,KAAKkE,MAAMkM,MAAQ,EACvDy5E,GAAY3kC,IAAM+tB,EAAOA,EAAK/tB,EAAK1iD,EAAO+P,GAAQ2yC,EAItD,GAAIusB,GAAQzxE,KAAK8yE,gBAAgBvqE,EAC7BkpE,KACFoY,EAAYpY,MAAQA,EAAM6B,SAI5BuW,EAAc7pF,KAAKgnF,eAAe6C,GAClC7pF,KAAKgO,QAAQ6yE,MAAMgJ,EAAa,SAAUj7E,GACpCA,IACFqjC,EAAG09B,UAAUr8B,aAAa3iB,IAAI/hB,GACZ,QAAdrG,EAAMtD,MACRgtC,EAAGs/B,cAAc3iE,EAAKvO,WAahCotE,EAAQp7D,UAAU8wE,mBAAqB,SAAU56E,GAC/C,GAAKvI,KAAKgO,QAAQqyE,WAAlB,CAEA,GAAIzxE,GAAO5O,KAAK6yE,eAAetqE,EAE/B,IAAIqG,EAAM,CAGR,GAAIyiE,GAAYrxE,KAAKgO,QAAQsyE,YAActgF,KAAKsxE,iBAKhD,KAFe/oE,EAAMgvD,UAAYhvD,EAAMgvD,SAASyU,WAAY,IAE5ChsE,KAAKgO,QAAQsyE,YAAa,CAExC,GAAIwJ,GAAY9pF,KAAK2vE,UAAUl4D,IAAI7I,EAAKvO,IAAIoxE,MAGxCsY,MAAoBlmF,EACpB7D,MAAKgO,QAAQg8E,qBACX3Y,EAAUztE,OAAS,IACrBmmF,EAAoB/pF,KAAK2vE,UAAUl4D,IAAI45D,EAAU,IAAII,OAKpDzxE,KAAKgO,QAAQg8E,yBAA4CnmF,IAArBkmF,GAAkCA,GAAqBD,GAC9FzY,EAAUxsE,KAAK+J,EAAKvO,GAEtB,IAAIm7C,GAAQiyB,EAAQwc,cAAcjqF,KAAK2vE,UAAUl4D,IAAI45D,EAAWrxE,KAAKyhF,aAErE,KAAKzhF,KAAKgO,QAAQg8E,qBAAuBD,GAAqBD,EAAW,CAEvEzY,IACA,KAAK,GAAIhxE,KAAML,MAAKmyC,MAClB,GAAInyC,KAAKmyC,MAAM7uC,eAAejD,GAAK,CACjC,GAAI6pF,GAAQlqF,KAAKmyC,MAAM9xC,GACnB4kD,EAAQilC,EAAMx1D,KAAKuwB,MACnBC,MAAyBrhD,KAAnBqmF,EAAMx1D,KAAKwwB,IAAoBglC,EAAMx1D,KAAKwwB,IAAMD,IAEtDA,GAASzJ,EAAMp5C,KAAO8iD,GAAO1J,EAAMn5C,MAASrC,KAAKgO,QAAQg8E,qBAAuBD,GAAqB/pF,KAAK2vE,UAAUl4D,IAAIyyE,EAAM7pF,IAAIoxE,OAAYyY,YAAiBrd,IACjKwE,EAAUxsE,KAAKqlF,EAAM7pF,UAKxB,CAEL,GAAI0S,GAAQs+D,EAAUzsE,QAAQgK,EAAKvO,KACrB,GAAV0S,EAEFs+D,EAAUxsE,KAAK+J,EAAKvO,IAGpBgxE,EAAUt5C,OAAOhlB,EAAO,GAI5B/S,KAAKuxE,aAAaF,GAElBrxE,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,UACrB5Z,MAAOnyC,KAAKsxE,eACZ/oE,MAAOA,OAWbklE,EAAQwc,cAAgB,SAAUta,GAChC,GAAIttE,GAAM,KACND,EAAM,IAkBV,OAhBAutE,GAAUzoE,QAAQ,SAAUwtB,IACf,MAAPtyB,GAAesyB,EAAKuwB,MAAQ7iD,KAC9BA,EAAMsyB,EAAKuwB,WAGGphD,IAAZ6wB,EAAKwwB,KACI,MAAP7iD,GAAeqyB,EAAKwwB,IAAM7iD,KAC5BA,EAAMqyB,EAAKwwB,MAGF,MAAP7iD,GAAeqyB,EAAKuwB,MAAQ5iD,KAC9BA,EAAMqyB,EAAKuwB,UAMf7iD,IAAKA,EACLC,IAAKA,IAUTorE,EAAQp7D,UAAU83E,gBAAkB,SAAUtiF,GAE5C,IADA,GAAIuiF,GAAMviF,EACHuiF,GAAK,CACV,GAAIA,EAAI9mF,eAAe,iBACrB,MAAO8mF,GAAI,gBAEbA,GAAMA,EAAIthF,WAGZ,MAAO,OAST2kE,EAAQp7D,UAAUwgE,eAAiB,SAAUtqE,GAC3C,MAAOvI,MAAKmqF,gBAAgB5hF,EAAMI,SASpC8kE,EAAQp7D,UAAUk3E,sBAAwB,SAAUhhF,GAClD,MAAOvI,MAAKmqF,gBAAgB5hF,EAAM8hF,gBASpC5c,EAAQp7D,UAAUygE,gBAAkB,SAAUvqE,GAC5C,GAAI+uC,GAAU/uC,EAAMszC,OAAStzC,EAAMszC,OAAOhtB,EAAItmB,EAAM+uC,QAChDkrC,EAAWxiF,KAAKwiF,QAEhBA,GAAS5+E,QAAU,GAAK5D,KAAK4vE,aAC/B4S,EAAWxiF,KAAK4vE,WAAWv8B,QACzBJ,MAAOjzC,KAAKgO,QAAQoyE,aAIxB,KAAK,GAAIr8E,GAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAAK,CACxC,GAAIuvE,GAAUkP,EAASz+E,GACnB0tE,EAAQzxE,KAAK6tE,OAAOyF,GACpBF,EAAa3B,EAAM1jB,IAAIqlB,WACvB9sE,EAAM3F,EAAK0F,eAAe+sE,EAC9B,IAAI97B,EAAUhxC,GAAOgxC,EAAUhxC,EAAM8sE,EAAWllB,aAC9C,MAAOujB,EAGT,IAAsC,QAAlCzxE,KAAKgO,QAAQkgE,YAAYt/D,MAC3B,GAAI7K,IAAM/D,KAAKwiF,SAAS5+E,OAAS,GAAK0zC,EAAUhxC,EAC9C,MAAOmrE,OAGT,IAAU,IAAN1tE,GAAWuzC,EAAUhxC,EAAM8sE,EAAWv2C,OACxC,MAAO40C,GAKb,MAAO,OASThE,EAAQ6c,kBAAoB,SAAU/hF,GAEpC,IADA,GAAII,GAASJ,EAAMI,OACZA,GAAQ,CACb,GAAIA,EAAOrF,eAAe,oBACxB,MAAOqF,GAAO,mBAEhBA,GAASA,EAAOG,WAGlB,MAAO,OAYT2kE,EAAQp7D,UAAU20E,eAAiB,SAAUrV,EAAU1sE,GACrD,GAAIu4B,GAAQ78B,EAAKC,UAAW+wE,EAc5B,OAZK1sE,KAEHA,EAAOjF,KAAK2vE,UAAUr8B,aAAazC,SAAS5rC,UAG3BpB,IAAf25B,EAAMynB,QACRznB,EAAMynB,MAAQtkD,EAAKqE,QAAQw4B,EAAMynB,MAAOhgD,GAAQA,EAAKggD,OAAS,aAE/CphD,IAAb25B,EAAM0nB,MACR1nB,EAAM0nB,IAAMvkD,EAAKqE,QAAQw4B,EAAM0nB,IAAKjgD,GAAQA,EAAKigD,KAAO,SAGnD1nB,GAGT39B,EAAOD,QAAU6tE,GAIb,SAAU5tE,EAAQD,EAASM,GAkC/B,QAASwsE,GAASznB,EAAOC,EAAKqlC,EAAazb,GACzC9uE,KAAKyB,OAASA,EAGdzB,KAAK45E,QAAU55E,KAAKyB,SACpBzB,KAAKmyD,OAASnyD,KAAKyB,SACnBzB,KAAKoyD,KAAOpyD,KAAKyB,SAEjBzB,KAAKwqF,WAAY,EACjBxqF,KAAKwC,MAAQ,MACbxC,KAAKuS,KAAO,EAGZvS,KAAKuyD,SAAStN,EAAOC,EAAKqlC,GAG1BvqF,KAAK+5E,aAAc,EACnB/5E,KAAK85E,eAAgB,EACrB95E,KAAK65E,cAAe,EAChB11E,MAAMC,QAAQ0qE,GAChB9uE,KAAK8uE,YAAcA,EAEnB9uE,KAAK8uE,gBADmBjrE,IAAfirE,GACWA,MAKtB9uE,KAAKyF,OAASinE,EAAS+d,OAzDzB,GAAIhpF,GAASvB,EAAoB,IAC7BusE,EAAWvsE,EAAoB,KAC/BS,EAAOT,EAAoB,EA2D/BwsE,GAAS+d,QACPC,aACE5vD,YAAa,MACbD,OAAQ,IACRD,OAAQ,QACRX,KAAM,QACNrK,QAAS,QACTsB,IAAK,IACLvB,KAAM,IACN3D,MAAO,MACPD,KAAM,QAER4+D,aACE7vD,YAAa,WACbD,OAAQ,eACRD,OAAQ,aACRX,KAAM,aACNrK,QAAS,YACTsB,IAAK,YACLvB,KAAM,YACN3D,MAAO,OACPD,KAAM,KASV2gD,EAASr6D,UAAUu4E,UAAY,SAAUnpF,GACvCzB,KAAKyB,OAASA,EAGdzB,KAAK45E,QAAU55E,KAAKyB,OAAOzB,KAAK45E,QAAQx0E,WACxCpF,KAAKmyD,OAASnyD,KAAKyB,OAAOzB,KAAKmyD,OAAO/sD,WACtCpF,KAAKoyD,KAAOpyD,KAAKyB,OAAOzB,KAAKoyD,KAAKhtD,YASpCsnE,EAASr6D,UAAUw4E,UAAY,SAAUplF,GACvC,GAAIw8B,GAAgBthC,EAAK+D,cAAegoE,EAAS+d,OACjDzqF,MAAKyF,OAAS9E,EAAK+D,WAAWu9B,EAAex8B,IAa/CinE,EAASr6D,UAAUkgD,SAAW,SAAUtN,EAAOC,EAAKqlC,GAClD,KAAMtlC,YAAiBpiD,OAAWqiD,YAAeriD,OAC/C,KAAM,+CAGR7C,MAAKmyD,WAAkBtuD,IAATohD,EAAqBjlD,KAAKyB,OAAOwjD,EAAM7/C,WAAa,GAAIvC,MACtE7C,KAAKoyD,SAAcvuD,IAAPqhD,EAAmBllD,KAAKyB,OAAOyjD,EAAI9/C,WAAa,GAAIvC,MAE5D7C,KAAKwqF,WACPxqF,KAAK8qF,eAAeP,IAOxB7d,EAASr6D,UAAU4yC,MAAQ,WACzBjlD,KAAK45E,QAAU55E,KAAKmyD,OAAO30B,QAC3Bx9B,KAAK+qF,gBAOPre,EAASr6D,UAAU04E,aAAe,WAQhC,OALkB,QAAd/qF,KAAKwC,OACPxC,KAAK45E,QAAQhqD,QAAQ,GAIf5vB,KAAKwC,OACX,IAAK,OACHxC,KAAK45E,QAAQ7tD,KAAK/rB,KAAKuS,KAAO9P,KAAKqK,MAAM9M,KAAK45E,QAAQ7tD,OAAS/rB,KAAKuS,OACpEvS,KAAK45E,QAAQ5tD,MAAM,EACrB,KAAK,QACHhsB,KAAK45E,QAAQnsD,KAAK,EACpB,KAAK,OACL,IAAK,MACL,IAAK,UACHztB,KAAK45E,QAAQpmD,MAAM,EACrB,KAAK,OACHxzB,KAAK45E,QAAQjmD,QAAQ,EACvB,KAAK,SACH3zB,KAAK45E,QAAQx9C,QAAQ,EACvB,KAAK,SACHp8B,KAAK45E,QAAQv9C,aAAa,GAI9B,GAAiB,GAAbr8B,KAAKuS,KAEP,OAAQvS,KAAKwC,OACX,IAAK,cACHxC,KAAK45E,QAAQr7C,SAASv+B,KAAK45E,QAAQv9C,eAAiBr8B,KAAKuS,KAAM,eAAgB,MACjF,KAAK,SACHvS,KAAK45E,QAAQr7C,SAASv+B,KAAK45E,QAAQx9C,UAAYp8B,KAAKuS,KAAM,UAAW,MACvE,KAAK,SACHvS,KAAK45E,QAAQr7C,SAASv+B,KAAK45E,QAAQjmD,UAAY3zB,KAAKuS,KAAM,UAAW,MACvE,KAAK,OACHvS,KAAK45E,QAAQr7C,SAASv+B,KAAK45E,QAAQpmD,QAAUxzB,KAAKuS,KAAM,QAAS,MACnE,KAAK,UACL,IAAK,MACHvS,KAAK45E,QAAQr7C,UAAUv+B,KAAK45E,QAAQnsD,OAAS,GAAKztB,KAAKuS,KAAM,MAAO,MACtE,KAAK,OACHvS,KAAK45E,QAAQr7C,SAASv+B,KAAK45E,QAAQjqD,OAAS3vB,KAAKuS,KAAM,OAAQ,MACjE,KAAK,QACHvS,KAAK45E,QAAQr7C,SAASv+B,KAAK45E,QAAQ5tD,QAAUhsB,KAAKuS,KAAM,QAAS,MACnE,KAAK,OACHvS,KAAK45E,QAAQr7C,SAASv+B,KAAK45E,QAAQ7tD,OAAS/rB,KAAKuS,KAAM,UAW/Dm6D,EAASr6D,UAAU24E,QAAU,WAC3B,MAAOhrF,MAAK45E,QAAQx0E,WAAapF,KAAKoyD,KAAKhtD,WAM7CsnE,EAASr6D,UAAUZ,KAAO,WACxB,GAAIq/C,GAAO9wD,KAAK45E,QAAQx0E,SAIxB,QAAQpF,KAAKwC,OACX,IAAK,cACHxC,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,cAAe,MAC7C,KAAK,SACHvS,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,SAAU,MACxC,KAAK,SACHvS,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,SAAU,MACxC,KAAK,OACHvS,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,QAExBvS,KAAK45E,QAAQ5tD,QAAU,EACzBhsB,KAAK45E,QAAQr7C,SAASv+B,KAAK45E,QAAQpmD,QAAUxzB,KAAKuS,KAAM,QAEpDvS,KAAK45E,QAAQpmD,QAAUxzB,KAAKuS,MAAS,GACvCvS,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAOvS,KAAK45E,QAAQpmD,QAAUxzB,KAAKuS,KAAM,OAGnE,MACF,KAAK,UACL,IAAK,MACHvS,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,MAAO,MACrC,KAAK,OACH,GAA+B,IAA3BvS,KAAK45E,QAAQhqD,UAEf5vB,KAAK45E,QAAQhqD,QAAQ,GACrB5vB,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,YACvB,CAEL,GAAIy0B,GAAWhnC,KAAK45E,QAAQp8C,OAC5BwJ,GAASrW,IAAI,EAAG,QACZqW,EAASjG,OAAO/gC,KAAK45E,QAAS,SAEhC55E,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,SAG5BvS,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,QAC5BvS,KAAK45E,QAAQnsD,KAAK,IAGtB,KACF,KAAK,QACHztB,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,QAAS,MACvC,KAAK,OACHvS,KAAK45E,QAAQjpD,IAAI3wB,KAAKuS,KAAM,QAKhC,GAAiB,GAAbvS,KAAKuS,KAEP,OAAQvS,KAAKwC,OACX,IAAK,cACCxC,KAAK45E,QAAQv9C,eAAiB,GAAKr8B,KAAK45E,QAAQv9C,eAAiBr8B,KAAKuS,MAAMvS,KAAK45E,QAAQv9C,aAAa,EAAG,MAC/G,KAAK,SACCr8B,KAAK45E,QAAQx9C,UAAY,GAAKp8B,KAAK45E,QAAQx9C,UAAYp8B,KAAKuS,MAAMvS,KAAK45E,QAAQx9C,QAAQ,EAAG,MAChG,KAAK,SACCp8B,KAAK45E,QAAQjmD,UAAY,GAAK3zB,KAAK45E,QAAQjmD,UAAY3zB,KAAKuS,MAAMvS,KAAK45E,QAAQjmD,QAAQ,EAAG,MAChG,KAAK,OACC3zB,KAAK45E,QAAQpmD,QAAU,GAAKxzB,KAAK45E,QAAQpmD,QAAUxzB,KAAKuS,MAAMvS,KAAK45E,QAAQpmD,MAAM,EAAG,MAC1F,KAAK,UACL,IAAK,MACCxzB,KAAK45E,QAAQnsD,OAASztB,KAAKuS,KAAO,GAAGvS,KAAK45E,QAAQnsD,KAAK,EAAG,MAChE,KAAK,OACCztB,KAAK45E,QAAQjqD,OAAS3vB,KAAKuS,MAAMvS,KAAK45E,QAAQjqD,KAAK,EAAG,MAC5D,KAAK,QACC3vB,KAAK45E,QAAQ5tD,QAAUhsB,KAAKuS,MAAMvS,KAAK45E,QAAQ5tD,MAAM,GAS3DhsB,KAAK45E,QAAQx0E,WAAa0rD,IAC5B9wD,KAAK45E,QAAU55E,KAAKoyD,KAAK50B,SAI3Bx9B,KAAK+5E,aAAc,EACnB/5E,KAAK85E,eAAgB,EACrB95E,KAAK65E,cAAe,EAEpBpN,EAAS8M,oBAAoBv5E,KAAKyB,OAAQzB,KAAM8wD,IAOlD4b,EAASr6D,UAAU8yC,WAAa,WAC9B,MAAOnlD,MAAK45E,SAedlN,EAASr6D,UAAU44E,SAAW,SAAUp5C,GAClCA,GAAiC,gBAAhBA,GAAOrvC,QAC1BxC,KAAKwC,MAAQqvC,EAAOrvC,MACpBxC,KAAKuS,KAAOs/B,EAAOt/B,KAAO,EAAIs/B,EAAOt/B,KAAO,EAC5CvS,KAAKwqF,WAAY,IAQrB9d,EAASr6D,UAAU64E,aAAe,SAAU7vB,GAC1Cr7D,KAAKwqF,UAAYnvB,GAOnBqR,EAASr6D,UAAUy4E,eAAiB,SAAUP,GAC5C,OAAmB1mF,IAAf0mF,EAAJ,CAeIY,QAAkBZ,IACpBvqF,KAAKwC,MAAQ,OAAOxC,KAAKuS,KAAO,KAE9B44E,QAAiBZ,IACnBvqF,KAAKwC,MAAQ,OAAOxC,KAAKuS,KAAO,KAE9B44E,QAAiBZ,IACnBvqF,KAAKwC,MAAQ,OAAOxC,KAAKuS,KAAO,KAE9B44E,QAAgBZ,IAClBvqF,KAAKwC,MAAQ,OAAOxC,KAAKuS,KAAO,IAE9B44E,QAAgBZ,IAClBvqF,KAAKwC,MAAQ,OAAOxC,KAAKuS,KAAO,IAE9B44E,QAAeZ,IACjBvqF,KAAKwC,MAAQ,OAAOxC,KAAKuS,KAAO,GAzBnB,QA2BAg4E,IACbvqF,KAAKwC,MAAQ,OAAOxC,KAAKuS,KAAO,GAE9B64E,OAAgBb,IAClBvqF,KAAKwC,MAAQ,QAAQxC,KAAKuS,KAAO,GA9BnB,OAgCAg4E,IACdvqF,KAAKwC,MAAQ,QAAQxC,KAAKuS,KAAO,GAE/B84E,MAAcd,IAChBvqF,KAAKwC,MAAQ,MAAMxC,KAAKuS,KAAO,GAE7B84E,OAAcd,IAChBvqF,KAAKwC,MAAQ,MAAMxC,KAAKuS,KAAO,GAtCnB,MAwCAg4E,IACZvqF,KAAKwC,MAAQ,MAAMxC,KAAKuS,KAAO,GAE7B84E,MAAcd,IAChBvqF,KAAKwC,MAAQ,UAAUxC,KAAKuS,KAAO,GAEjC+4E,MAAef,IACjBvqF,KAAKwC,MAAQ,OAAOxC,KAAKuS,KAAO,GA9CnB,KAgDAg4E,IACbvqF,KAAKwC,MAAQ,OAAOxC,KAAKuS,KAAO,GAE9Bg5E,IAAkBhB,IACpBvqF,KAAKwC,MAAQ,SAASxC,KAAKuS,KAAO,IAEhCg5E,IAAkBhB,IACpBvqF,KAAKwC,MAAQ,SAASxC,KAAKuS,KAAO,IAEhCg5E,IAAiBhB,IACnBvqF,KAAKwC,MAAQ,SAASxC,KAAKuS,KAAO,GAzDnB,IA2DAg4E,IACfvqF,KAAKwC,MAAQ,SAASxC,KAAKuS,KAAO,GAEhCi5E,KAAkBjB,IACpBvqF,KAAKwC,MAAQ,SAASxC,KAAKuS,KAAO,IAEhCi5E,IAAkBjB,IACpBvqF,KAAKwC,MAAQ,SAASxC,KAAKuS,KAAO,IAEhCi5E,IAAiBjB,IACnBvqF,KAAKwC,MAAQ,SAASxC,KAAKuS,KAAO,GApEnB,IAsEAg4E,IACfvqF,KAAKwC,MAAQ,SAASxC,KAAKuS,KAAO,GAEhCk5E,IAAwBlB,IAC1BvqF,KAAKwC,MAAQ,cAAcxC,KAAKuS,KAAO,KAErCk5E,IAAwBlB,IAC1BvqF,KAAKwC,MAAQ,cAAcxC,KAAKuS,KAAO,KAErCk5E,GAAuBlB,IACzBvqF,KAAKwC,MAAQ,cAAcxC,KAAKuS,KAAO,IAErCk5E,GAAuBlB,IACzBvqF,KAAKwC,MAAQ,cAAcxC,KAAKuS,KAAO,IAErCk5E,EAAsBlB,IACxBvqF,KAAKwC,MAAQ,cAAcxC,KAAKuS,KAAO,GArFnB,EAuFAg4E,IACpBvqF,KAAKwC,MAAQ,cAAcxC,KAAKuS,KAAO,KAc3Cm6D,EAASuG,KAAO,SAAUxlD,EAAMjrB,EAAO+P,GACrC,GAAIirB,GAAQ/7B,EAAOgsB,EAEnB,IAAa,QAATjrB,EAAiB,CACnB,GAAIupB,GAAOyR,EAAMzR,OAAStpB,KAAKm6B,MAAMY,EAAMxR,QAAU,GACrDwR,GAAMzR,KAAKtpB,KAAKm6B,MAAM7Q,EAAOxZ,GAAQA,GACrCirB,EAAMxR,MAAM,GACZwR,EAAM/P,KAAK,GACX+P,EAAMhK,MAAM,GACZgK,EAAM7J,QAAQ,GACd6J,EAAMpB,QAAQ,GACdoB,EAAMnB,aAAa,OACd,IAAa,SAAT75B,EACLg7B,EAAM/P,OAAS,IACjB+P,EAAM/P,KAAK,GACX+P,EAAM7M,IAAI,EAAG,UAGb6M,EAAM/P,KAAK,GAGb+P,EAAMhK,MAAM,GACZgK,EAAM7J,QAAQ,GACd6J,EAAMpB,QAAQ,GACdoB,EAAMnB,aAAa,OACd,IAAa,QAAT75B,EACLg7B,EAAM5N,UAAY,GAEpB4N,EAAM5N,QAAQ,GACd4N,EAAM7M,IAAI,EAAG,SAEb6M,EAAM5N,QAAQ,GAGhB4N,EAAMhK,MAAM,GACZgK,EAAM7J,QAAQ,GACd6J,EAAMpB,QAAQ,GACdoB,EAAMnB,aAAa,OACd,IAAa,OAAT75B,EAAgB,CAEzB,OAAQ+P,GACN,IAAK,GACL,IAAK,GACHirB,EAAMhK,MAAuC,GAAjC/wB,KAAKm6B,MAAMY,EAAMhK,QAAU,IAAU,MACnD,SACEgK,EAAMhK,MAAuC,GAAjC/wB,KAAKm6B,MAAMY,EAAMhK,QAAU,KAE3CgK,EAAM7J,QAAQ,GACd6J,EAAMpB,QAAQ,GACdoB,EAAMnB,aAAa,OACd,IAAa,WAAT75B,EAAoB,CAE7B,OAAQ+P,GACN,IAAK,GACL,IAAK,GACHirB,EAAMhK,MAAuC,GAAjC/wB,KAAKm6B,MAAMY,EAAMhK,QAAU,IAAU,MACnD,SACEgK,EAAMhK,MAAsC,EAAhC/wB,KAAKm6B,MAAMY,EAAMhK,QAAU,IAE3CgK,EAAM7J,QAAQ,GACd6J,EAAMpB,QAAQ,GACdoB,EAAMnB,aAAa,OACd,IAAa,QAAT75B,EAAiB,CAC1B,OAAQ+P,GACN,IAAK,GACHirB,EAAM7J,QAA2C,GAAnClxB,KAAKm6B,MAAMY,EAAM7J,UAAY,IAAU,MACvD,SACE6J,EAAM7J,QAA2C,GAAnClxB,KAAKm6B,MAAMY,EAAM7J,UAAY,KAE/C6J,EAAMpB,QAAQ,GACdoB,EAAMnB,aAAa,OACd,IAAa,UAAT75B,EAAmB,CAE5B,OAAQ+P,GACN,IAAK,IACL,IAAK,IACHirB,EAAM7J,QAA0C,EAAlClxB,KAAKm6B,MAAMY,EAAM7J,UAAY,IAC3C6J,EAAMpB,QAAQ,EACd,MACF,KAAK,GACHoB,EAAMpB,QAA2C,GAAnC35B,KAAKm6B,MAAMY,EAAMpB,UAAY,IAAU,MACvD,SACEoB,EAAMpB,QAA2C,GAAnC35B,KAAKm6B,MAAMY,EAAMpB,UAAY,KAE/CoB,EAAMnB,aAAa,OACd,IAAa,UAAT75B,EAET,OAAQ+P,GACN,IAAK,IACL,IAAK,IACHirB,EAAMpB,QAA0C,EAAlC35B,KAAKm6B,MAAMY,EAAMpB,UAAY,IAC3CoB,EAAMnB,aAAa,EACnB,MACF,KAAK,GACHmB,EAAMnB,aAAuD,IAA1C55B,KAAKm6B,MAAMY,EAAMnB,eAAiB,KAAc,MACrE,SACEmB,EAAMnB,aAAsD,IAAzC55B,KAAKm6B,MAAMY,EAAMnB,eAAiB,UAEpD,IAAa,eAAT75B,EAAwB,CACjC,GAAI+O,GAAQgB,EAAO,EAAIA,EAAO,EAAI,CAClCirB,GAAMnB,aAAa55B,KAAKm6B,MAAMY,EAAMnB,eAAiB9qB,GAASA,GAGhE,MAAOisB,IAQTkvC,EAASr6D,UAAUq5E,QAAU,WAC3B,GAAyB,GAArB1rF,KAAK65E,aACP,OAAQ75E,KAAKwC,OACX,IAAK,OACL,IAAK,QACL,IAAK,OACL,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,cACH,OAAO,CACT,SACE,OAAO,MAEN,IAA0B,GAAtBxC,KAAK85E,cACd,OAAQ95E,KAAKwC,OACX,IAAK,OACL,IAAK,UACL,IAAK,MACL,IAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,cACH,OAAO,CACT,SACE,OAAO,MAEN,IAAwB,GAApBxC,KAAK+5E,YACd,OAAQ/5E,KAAKwC,OACX,IAAK;kBACL,IAAK,SACL,IAAK,SACL,IAAK,OACH,OAAO,CACT,SACE,OAAO,EAIb,GAAIirB,GAAOztB,KAAKyB,OAAOzB,KAAK45E,QAC5B,QAAQ55E,KAAKwC,OACX,IAAK,cACH,MAA8B,IAAvBirB,EAAK4O,cACd,KAAK,SACH,MAAyB,IAAlB5O,EAAK2O,SACd,KAAK,SACH,MAAuB,IAAhB3O,EAAK+F,SAAkC,GAAlB/F,EAAKkG,SACnC,KAAK,OACH,MAAuB,IAAhBlG,EAAK+F,OACd,KAAK,UACL,IAAK,MAEL,IAAK,OACH,MAAsB,IAAf/F,EAAKA,MACd,KAAK,QACH,MAAuB,IAAhBA,EAAKzB,OACd,KAAK,OAEL,QACE,OAAO,IAUb0gD,EAASr6D,UAAUs5E,cAAgB,SAAUl+D,GAQ3C,OAPY5pB,IAAR4pB,IACFA,EAAOztB,KAAK45E,SAEVnsD,YAAgB5qB,QAClB4qB,EAAOztB,KAAKyB,OAAOgsB,IAGkB,kBAA5BztB,MAAKyF,OAAOilF,YACrB,MAAO1qF,MAAKyF,OAAOilF,YAAYj9D,EAAMztB,KAAKwC,MAAOxC,KAAKuS,KAGxD,IAAI9M,GAASzF,KAAKyF,OAAOilF,YAAY1qF,KAAKwC,MAE1C,QAAQxC,KAAKwC,OACX,IAAK,OACH,GAAIxC,KAAK0rF,WAAgC,IAAnBj+D,EAAKmC,UACzB,MAAO,EAEX,SACE,MAAOnqB,IAAUA,EAAO7B,OAAS,EAAI5D,KAAKyB,OAAOgsB,GAAMhoB,OAAOA,GAAU,KAU9EinE,EAASr6D,UAAUu5E,cAAgB,SAAUn+D,GAQ3C,OAPY5pB,IAAR4pB,IACFA,EAAOztB,KAAK45E,SAEVnsD,YAAgB5qB,QAClB4qB,EAAOztB,KAAKyB,OAAOgsB,IAGkB,kBAA5BztB,MAAKyF,OAAOklF,YACrB,MAAO3qF,MAAKyF,OAAOklF,YAAYl9D,EAAMztB,KAAKwC,MAAOxC,KAAKuS,KAGxD,IAAI9M,GAASzF,KAAKyF,OAAOklF,YAAY3qF,KAAKwC,MAC1C,OAAOiD,IAAUA,EAAO7B,OAAS,EAAI5D,KAAKyB,OAAOgsB,GAAMhoB,OAAOA,GAAU,IAG1EinE,EAASr6D,UAAUw5E,aAAe,WAOhC,QAASC,GAAKvpF,GACZ,MAAOA,GAAQgQ,EAAO,GAAK,EAAI,YAAc,WAG/C,QAASw5E,GAAMt+D,GACb,MAAIA,GAAKsT,OAAO,GAAIl+B,MAAQ,OACnB,aAEL4qB,EAAKsT,OAAOirD,IAAUr7D,IAAI,EAAG,OAAQ,OAChC,gBAELlD,EAAKsT,OAAOirD,IAAUr7D,KAAK,EAAG,OAAQ,OACjC,iBAEF,GAGT,QAASs7D,GAAYx+D,GACnB,MAAOA,GAAKsT,OAAO,GAAIl+B,MAAQ,QAAU,oBAAsB,GAGjE,QAASqpF,GAAaz+D,GACpB,MAAOA,GAAKsT,OAAO,GAAIl+B,MAAQ,SAAW,qBAAuB,GA5BnE,GAAImpF,GAAUhsF,KAAKyB,OACfjB,EAAIR,KAAKyB,OAAOzB,KAAK45E,SACrBA,EAAUp5E,EAAE+gB,OAAS/gB,EAAE+gB,OAAO,MAAQ/gB,EAAE+pC,KAAK,MAC7Ch4B,EAAOvS,KAAKuS,KACZ/L,IA+BJ,QAAQxG,KAAKwC,OACX,IAAK,cACHgE,EAAW3B,KAAKknF,EAAMnS,IACtBpzE,EAAW3B,KAAKinF,EAAKlS,EAAQv9C,gBAC7B,MACF,KAAK,SACH71B,EAAW3B,KAAKknF,EAAMnS,IACtBpzE,EAAW3B,KAAKinF,EAAKlS,EAAQx9C,WAC7B,MACF,KAAK,SACH51B,EAAW3B,KAAKknF,EAAMnS,IACtBpzE,EAAW3B,KAAKinF,EAAKlS,EAAQjmD,WAC7B,MACF,KAAK,OACHntB,EAAW3B,KAAK,QAAU+0E,EAAQpmD,QAAUxzB,KAAKuS,MAAQ,EAAI,MAAQqnE,EAAQpmD,QAAU,GAAK,IAC5FhtB,EAAW3B,KAAKknF,EAAMnS,IACtBpzE,EAAW3B,KAAKinF,EAAKlS,EAAQpmD,SAC7B,MACF,KAAK,UACHhtB,EAAW3B,KAAK,OAAS+0E,EAAQn0E,OAAO,QAAQwiB,eAChDzhB,EAAW3B,KAAKknF,EAAMnS,IACtBpzE,EAAW3B,KAAKonF,EAAYrS,IAC5BpzE,EAAW3B,KAAKinF,EAAKlS,EAAQnsD,QAC7B,MACF,KAAK,MACHjnB,EAAW3B,KAAK,UAAY+0E,EAAQnsD,QACpCjnB,EAAW3B,KAAK,OAAS+0E,EAAQn0E,OAAO,QAAQwiB,eAChDzhB,EAAW3B,KAAKknF,EAAMnS,IACtBpzE,EAAW3B,KAAKqnF,EAAatS,IAC7BpzE,EAAW3B,KAAK7E,KAAKuS,MAAQ,EAAIw5E,EAAMnS,GAAW,IAClDpzE,EAAW3B,KAAK7E,KAAKuS,MAAQ,EAAI,OAASqnE,EAAQn0E,OAAO,QAAQwiB,cAAgB,IACjFzhB,EAAW3B,KAAKinF,EAAKlS,EAAQnsD,OAAS,GACtC,MACF,KAAK,OACHjnB,EAAW3B,KAAK,WAAa+0E,EAAQn0E,OAAO,MAC5Ce,EAAW3B,KAAKonF,EAAYrS,IAC5BpzE,EAAW3B,KAAKinF,EAAKlS,EAAQjqD,QAC7B,MACF,KAAK,QACHnpB,EAAW3B,KAAK,OAAS+0E,EAAQn0E,OAAO,QAAQwiB,eAChDzhB,EAAW3B,KAAKqnF,EAAatS,IAC7BpzE,EAAW3B,KAAKinF,EAAKlS,EAAQ5tD,SAC7B,MACF,KAAK,OACHxlB,EAAW3B,KAAK,WAAa+0E,EAAQ7tD,QACrCvlB,EAAW3B,KAjDf,SAAqB4oB,GACnB,MAAOA,GAAKsT,OAAO,GAAIl+B,MAAQ,QAAU,oBAAsB,IAgDjC+2E,IAC5BpzE,EAAW3B,KAAKinF,EAAKlS,EAAQ7tD,SAGjC,MAAOvlB,GAAWM,OAAOnE,QAAQoE,KAAK,MAGxClH,EAAOD,QAAU8sE,GAIb,SAAU7sE,EAAQD,EAASM,GAoB/B,QAASstE,GAAM8F,EAAS5+C,EAAMg7C,GAC5B1vE,KAAKszE,QAAUA,EACftzE,KAAKmsF,aACLnsF,KAAKosF,cAAgB,EACrBpsF,KAAKqsF,gBAAkB33D,GAAQA,EAAK43D,cACpCtsF,KAAK0vE,QAAUA,EACf1vE,KAAKgkF,UAAY,KACjBhkF,KAAKusF,YAAa,EAEd73D,GAAQA,EAAKutD,eACfjiF,KAAKiiF,aAAevtD,EAAKutD,aACF,GAAnBvtD,EAAKwtD,WACPliF,KAAKkiF,YAAa,EAElBliF,KAAKkiF,YAAa,GAItBliF,KAAKqiF,cAAgB,KAErBriF,KAAK+tD,OACL/tD,KAAKkE,OACHosC,OACElgC,MAAO,EACPC,OAAQ,IAGZrQ,KAAK0G,UAAY,KAEjB1G,KAAKmyC,SACLnyC,KAAKikF,gBACLjkF,KAAKwsF,gBACLxsF,KAAKoO,cACHq+E,WACAC,UAEF1sF,KAAK2sF,kBAAmB,CACxB,IAAI16C,GAAKjyC,IACTA,MAAK0vE,QAAQ/+D,KAAKk+D,QAAQt9B,GAAG,mBAAoB,WAC/CU,EAAG06C,kBAAmB,IAGxB3sF,KAAKmB,UAELnB,KAAK01C,QAAQhhB,GA5Df,GAAIrzB,GAAQnB,EAAoB,IAE5BoB,EAEJ,SAAgCR,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFrDO,GAIhCV,EAAOT,EAAoB,GAC3B0lB,EAAQ1lB,EAAoB,IAChBA,GAAoB,IA2DpCstE,GAAMn7D,UAAUlR,QAAU,WACxB,GAAImvC,GAAQpgC,SAASC,cAAc,MAC/BnQ,MAAK0vE,QAAQ1hE,QAAQ4yE,cAAc3tC,MACrC3C,EAAM5pC,UAAY,sBAElB4pC,EAAM5pC,UAAY,YAEpB1G,KAAK+tD,IAAIzd,MAAQA,CAEjB,IAAIrgC,GAAQC,SAASC,cAAc,MACnCF,GAAMvJ,UAAY,YAClB4pC,EAAM5/B,YAAYT,GAClBjQ,KAAK+tD,IAAI99C,MAAQA,CAEjB,IAAImjE,GAAaljE,SAASC,cAAc,MACxCijE,GAAW1sE,UAAY,YACvB0sE,EAAW,kBAAoBpzE,KAC/BA,KAAK+tD,IAAIqlB,WAAaA,EAEtBpzE,KAAK+tD,IAAIriD,WAAawE,SAASC,cAAc,OAC7CnQ,KAAK+tD,IAAIriD,WAAWhF,UAAY,YAEhC1G,KAAK+tD,IAAIogB,KAAOj+D,SAASC,cAAc,OACvCnQ,KAAK+tD,IAAIogB,KAAKznE,UAAY,YAK1B1G,KAAK+tD,IAAI6+B,OAAS18E,SAASC,cAAc,OACzCnQ,KAAK+tD,IAAI6+B,OAAOvgF,MAAMmE,WAAa,SACnCxQ,KAAK+tD,IAAI6+B,OAAOvgF,MAAMkE,SAAW,WACjCvQ,KAAK+tD,IAAI6+B,OAAOjsC,UAAY,GAC5B3gD,KAAK+tD,IAAIriD,WAAWgF,YAAY1Q,KAAK+tD,IAAI6+B,SAO3Cpf,EAAMn7D,UAAUqjC,QAAU,SAAUhhB,GAElC,GAAI+b,GACAo8C,CASJ,IAPI7sF,KAAK0vE,QAAQ1hE,SAAWhO,KAAK0vE,QAAQ1hE,QAAQkiC,eAC/C28C,EAAmB7sF,KAAK0vE,QAAQ1hE,QAAQkiC,cAAc0nB,KAAK53D,MAC3DywC,EAAUo8C,EAAiBn4D,EAAM10B,KAAK+tD,IAAI99C,QAE1CwgC,EAAU/b,GAAQA,EAAK+b,QAGrBA,YAAmBq8C,SAAS,CAE9B,IADA9sF,KAAK+tD,IAAI99C,MAAMS,YAAY+/B,GACpBzwC,KAAK+tD,IAAI99C,MAAMhO,YACpBjC,KAAK+tD,IAAI99C,MAAM/N,YAAYlC,KAAK+tD,IAAI99C,MAAMhO,WAE5CjC,MAAK+tD,IAAI99C,MAAMS,YAAY+/B,OAClBA,aAAmBhsC,QAC5BooF,EAAiBn4D,EAAM10B,KAAK+tD,IAAI99C,OAEhCjQ,KAAK+tD,IAAI99C,MAAM0wC,cADM98C,KAAZ4sC,GAAqC,OAAZA,EACPA,EAEAzwC,KAAKszE,SAAW,EAW7C,IAPAtzE,KAAK+tD,IAAIzd,MAAMqtC,MAAQjpD,GAAQA,EAAKipD,OAAS,GACxC39E,KAAK+tD,IAAI99C,MAAMhO,WAGlBtB,EAAKqG,gBAAgBhH,KAAK+tD,IAAI99C,MAAO,cAFrCtP,EAAK4F,aAAavG,KAAK+tD,IAAI99C,MAAO,cAKhCykB,GAAQA,EAAKutD,aAAc,CACxBjiF,KAAKiiF,cAAgBjiF,KAAKiiF,cAAgBvtD,EAAKutD,eAClDjiF,KAAKiiF,aAAevtD,EAAKutD,kBAGHp+E,KAApB6wB,EAAKwtD,gBAAgDr+E,KAApB7D,KAAKkiF,aACjB,GAAnBxtD,EAAKwtD,WACPliF,KAAKkiF,YAAa,EAElBliF,KAAKkiF,YAAa,GAItBvhF,EAAK4F,aAAavG,KAAK+tD,IAAIzd,MAAO,oBAClC,IAAI83C,GAAwBpoF,KAAK0vE,QAAQ1hE,QAAQsgE,IAAM,gBAAkB,WACrEtuE,MAAKkiF,YACPvhF,EAAKqG,gBAAgBhH,KAAK+tD,IAAIzd,MAAO83C,GACrCznF,EAAK4F,aAAavG,KAAK+tD,IAAIzd,MAAO,cAElC3vC,EAAKqG,gBAAgBhH,KAAK+tD,IAAIzd,MAAO,YACrC3vC,EAAK4F,aAAavG,KAAK+tD,IAAIzd,MAAO83C,QAE/B,IAAIpoF,KAAKiiF,aAAc,CAC5BjiF,KAAKiiF,aAAe,IAEpB,IAAImG,GAAwBpoF,KAAK0vE,QAAQ1hE,QAAQsgE,IAAM,gBAAkB,WACzE3tE,GAAKqG,gBAAgBhH,KAAK+tD,IAAIzd,MAAO83C,GACrCznF,EAAKqG,gBAAgBhH,KAAK+tD,IAAIzd,MAAO,YACrC3vC,EAAKqG,gBAAgBhH,KAAK+tD,IAAIzd,MAAO,qBAGnC5b,GAAQA,EAAK2tD,gBACf1hF,EAAK4F,aAAavG,KAAK+tD,IAAIzd,MAAO,oBAC9BtwC,KAAK0vE,QAAQ1hE,SAAWhO,KAAK0vE,QAAQ1hE,QAAQsgE,IAC/CtuE,KAAK+tD,IAAI99C,MAAM5D,MAAM0gF,aAAe,OAEpC/sF,KAAK+tD,IAAI99C,MAAM5D,MAAM2gF,YAAc,OAKvC,IAAItmF,GAAYguB,GAAQA,EAAKhuB,WAAa,IACtCA,IAAa1G,KAAK0G,YAChB1G,KAAK0G,YACP/F,EAAKqG,gBAAgBhH,KAAK+tD,IAAIzd,MAAOtwC,KAAK0G,WAC1C/F,EAAKqG,gBAAgBhH,KAAK+tD,IAAIqlB,WAAYpzE,KAAK0G,WAC/C/F,EAAKqG,gBAAgBhH,KAAK+tD,IAAIriD,WAAY1L,KAAK0G,WAC/C/F,EAAKqG,gBAAgBhH,KAAK+tD,IAAIogB,KAAMnuE,KAAK0G,YAE3C/F,EAAK4F,aAAavG,KAAK+tD,IAAIzd,MAAO5pC,GAClC/F,EAAK4F,aAAavG,KAAK+tD,IAAIqlB,WAAY1sE,GACvC/F,EAAK4F,aAAavG,KAAK+tD,IAAIriD,WAAYhF,GACvC/F,EAAK4F,aAAavG,KAAK+tD,IAAIogB,KAAMznE,GACjC1G,KAAK0G,UAAYA,GAIf1G,KAAKqM,QACP1L,EAAKgM,cAAc3M,KAAK+tD,IAAIzd,MAAOtwC,KAAKqM,OACxCrM,KAAKqM,MAAQ,MAEXqoB,GAAQA,EAAKroB,QACf1L,EAAK6L,WAAWxM,KAAK+tD,IAAIzd,MAAO5b,EAAKroB,OACrCrM,KAAKqM,MAAQqoB,EAAKroB,QAQtBmhE,EAAMn7D,UAAU46E,cAAgB,WAC9B,MAAOjtF,MAAKkE,MAAMosC,MAAMlgC,OAU1Bo9D,EAAMn7D,UAAUotC,OAAS,SAAUjE,EAAOyI,EAAQ4gC,GAChD,GAAIzM,IAAU,EAIV8U,EAAeltF,KAAK+tD,IAAI6+B,OAAOprC,YAC/B0rC,IAAgBltF,KAAKmtF,mBACvBntF,KAAKmtF,iBAAmBD,EACxBvsF,EAAKuG,QAAQlH,KAAKmyC,MAAO,SAAUvjC,GACjCA,EAAK+0E,OAAQ,EACT/0E,EAAKg1E,WAAWh1E,EAAK6wC,WAG3BolC,GAAe,GAIjB7kF,KAAKotF,0BAA0BnpC,EAG/B,IAAImvB,GAAapzE,KAAK+tD,IAAIqlB,UAC1BpzE,MAAKsG,IAAM8sE,EAAWuW,UACtB3pF,KAAKoG,MAAQgtE,EAAWsU,WACxB1nF,KAAKoQ,MAAQgjE,EAAWviE,WAExB,IAAIw8E,GAAgBrtF,KAAKgkF,SACzBhkF,MAAKgkF,UAAYhkF,KAAKstF,gBAAgB9xC,EAAOyI,EAE7C,IAAIspC,GAAU1I,GAAgB7kF,KAAKusF,YAAcvsF,KAAKgkF,YAAcqJ,CAIpE,IAFArtF,KAAKwtF,wBAEDD,EAAS,CACX,GAA0C,kBAA/BvtF,MAAK0vE,QAAQ1hE,QAAQilC,MAAsB,CAKpD,GAAIhB,GAAKjyC,IAETW,GAAKuG,QAAQlH,KAAKmyC,MAAO,SAAUvjC,GAC5BA,EAAKg1E,YACRh1E,EAAK6wC,SACLxN,EAAGgyC,aAAap/E,KAAK+J,IAEvBA,EAAKyjE,aANS,IAUhB,IAAIob,GAAqBztF,KAAKoO,aAAaq+E,QAAQ9hF,QAAQoe,KAAK,SAAUvlB,EAAGC,GAC3E,MAAOwuC,GAAGy9B,QAAQ1hE,QAAQilC,MAAMzvC,EAAEkxB,KAAMjxB,EAAEixB,OAE5C9O,GAAMA,MAAM6nE,EAAoBxpC,GAAQ,GACxCjkD,KAAKikF,aAAejkF,KAAK0tF,oBAAoB1tF,KAAKoO,aAAcpO,KAAKikF,aAAczoC,OAGnFx7C,MAAKikF,aAAejkF,KAAK0tF,oBAAoB1tF,KAAKoO,aAAcpO,KAAKikF,aAAczoC,GAE/Ex7C,KAAK0vE,QAAQ1hE,QAAQ4X,MAEvBA,EAAMA,MAAM5lB,KAAKikF,aAAchgC,GAAQ,GAGvCr+B,EAAM+nE,QAAQ3tF,KAAKikF,aAAchgC,EAAQjkD,KAAKmsF,UAAWnsF,KAAK0vE,QAAQ1hE,QAAQ+xE,eAIlF//E,MAAKusF,YAAa,EAGpB,GAAIl8E,GAASrQ,KAAK4tF,iBAAiB3pC,GAG/BmvB,EAAapzE,KAAK+tD,IAAIqlB,UAC1BpzE,MAAKsG,IAAM8sE,EAAWuW,UACtB3pF,KAAKoG,MAAQgtE,EAAWsU,WACxB1nF,KAAKoQ,MAAQgjE,EAAWviE,YACxBunE,EAAUz3E,EAAK2G,eAAetH,KAAM,SAAUqQ,IAAW+nE,EAEzDA,EAAUz3E,EAAK2G,eAAetH,KAAKkE,MAAMosC,MAAO,QAAStwC,KAAK+tD,IAAI99C,MAAMc,cAAgBqnE,EACxFA,EAAUz3E,EAAK2G,eAAetH,KAAKkE,MAAMosC,MAAO,SAAUtwC,KAAK+tD,IAAI99C,MAAMuxC,eAAiB42B,EAG1Fp4E,KAAK+tD,IAAIriD,WAAWW,MAAMgE,OAASA,EAAS,KAC5CrQ,KAAK+tD,IAAIqlB,WAAW/mE,MAAMgE,OAASA,EAAS,KAC5CrQ,KAAK+tD,IAAIzd,MAAMjkC,MAAMgE,OAASA,EAAS,IAGvC,KAAK,GAAItM,GAAI,EAAG4oB,EAAK3sB,KAAKikF,aAAargF,OAAQG,EAAI4oB,EAAI5oB,IAAK,CAC1D,GAAI6K,GAAO5O,KAAKikF,aAAalgF,EAC7B6K,GAAKi/E,YAAY5pC,GACZjkD,KAAKgkF,WAA6B,kBAAhBhkF,KAAKszE,SACtB1kE,EAAKg1E,WAAWh1E,EAAKkD,OAI7B,OAAK9R,KAAKgkF,WAAahkF,KAAKqQ,OACnB+nE,GAAU,EAGZA,GAOT5K,EAAMn7D,UAAU+6E,0BAA4B,SAAUnpC,GACpD,IAAI,EAAI3iD,EAAgB,SAAGtB,KAAKmsF,WAAWvoF,OAAS,EAAG,CACrD,GAAIquC,GAAKjyC,IAETA,MAAK8tF,iBAELntF,EAAKuG,QAAQlH,KAAKikF,aAAc,SAAUr1E,OACb/K,KAAvB+K,EAAK8lB,KAAKq5D,WACZ97C,EAAGk6C,UAAUv9E,EAAK8lB,KAAKq5D,UAAU19E,OAAS5N,KAAKJ,IAAI4vC,EAAGk6C,UAAUv9E,EAAK8lB,KAAKq5D,UAAU19E,OAAQzB,EAAKyB,OAAS4zC,EAAOr1C,KAAK2rC,UACtHtI,EAAGk6C,UAAUv9E,EAAK8lB,KAAKq5D,UAAUvoC,SAAU,OAUnDgoB,EAAMn7D,UAAUi7E,gBAAkB,SAAU9xC,EAAOyI,GAEjD,MADgBjkD,MAAKsG,KAAOk1C,EAAM7qC,KAAKi+D,SAASgE,gBAAgBviE,OAASmrC,EAAM7qC,KAAKi+D,SAASqM,UAAYh3B,EAAOkqB,MAAQnuE,KAAKsG,IAAMtG,KAAKqQ,OAAS4zC,EAAOkqB,OAAS3yB,EAAM7qC,KAAKi+D,SAASqM,WAUvLzN,EAAMn7D,UAAUu7E,iBAAmB,SAAU3pC,GAE3C,GAAI5zC,GACAm8E,EAAexsF,KAAKikF,YACxB,IAAIuI,EAAa5oF,OAAS,EAAG,CAC3B,GAAIxB,GAAMoqF,EAAa,GAAGlmF,IACtBjE,EAAMmqF,EAAa,GAAGlmF,IAAMkmF,EAAa,GAAGn8E,MAKhD,IAJA1P,EAAKuG,QAAQslF,EAAc,SAAU59E,GACnCxM,EAAMK,KAAKL,IAAIA,EAAKwM,EAAKtI,KACzBjE,EAAMI,KAAKJ,IAAIA,EAAKuM,EAAKtI,IAAMsI,EAAKyB,UAElCjO,EAAM6hD,EAAOkqB,KAAM,CAErB,GAAItxC,GAASz6B,EAAM6hD,EAAOkqB,IAC1B9rE,IAAOw6B,EACPl8B,EAAKuG,QAAQslF,EAAc,SAAU59E,GACnCA,EAAKtI,KAAOu2B,IAGhBxsB,EAAShO,EAAM4hD,EAAOr1C,KAAK2rC,SAAW,MAEtClqC,GAAS,CAIX,OAFAA,GAAS5N,KAAKJ,IAAIgO,EAAQrQ,KAAKkE,MAAMosC,MAAMjgC,SAQ7Cm9D,EAAMn7D,UAAU+/D,KAAO,WAChBpyE,KAAK+tD,IAAIzd,MAAMxnC,YAClB9I,KAAK0vE,QAAQ3hB,IAAIslB,SAAS3iE,YAAY1Q,KAAK+tD,IAAIzd,OAG5CtwC,KAAK+tD,IAAIqlB,WAAWtqE,YACvB9I,KAAK0vE,QAAQ3hB,IAAIqlB,WAAW1iE,YAAY1Q,KAAK+tD,IAAIqlB,YAG9CpzE,KAAK+tD,IAAIriD,WAAW5C,YACvB9I,KAAK0vE,QAAQ3hB,IAAIriD,WAAWgF,YAAY1Q,KAAK+tD,IAAIriD,YAG9C1L,KAAK+tD,IAAIogB,KAAKrlE,YACjB9I,KAAK0vE,QAAQ3hB,IAAIogB,KAAKz9D,YAAY1Q,KAAK+tD,IAAIogB,OAO/CX,EAAMn7D,UAAUP,KAAO,WACrB,GAAIw+B,GAAQtwC,KAAK+tD,IAAIzd,KACjBA,GAAMxnC,YACRwnC,EAAMxnC,WAAW5G,YAAYouC,EAG/B,IAAI8iC,GAAapzE,KAAK+tD,IAAIqlB,UACtBA,GAAWtqE,YACbsqE,EAAWtqE,WAAW5G,YAAYkxE,EAGpC,IAAI1nE,GAAa1L,KAAK+tD,IAAIriD,UACtBA,GAAW5C,YACb4C,EAAW5C,WAAW5G,YAAYwJ,EAGpC,IAAIyiE,GAAOnuE,KAAK+tD,IAAIogB,IAChBA,GAAKrlE,YACPqlE,EAAKrlE,WAAW5G,YAAYisE,IAQhCX,EAAMn7D,UAAUse,IAAM,SAAU/hB,GAU9B,GATA5O,KAAKmyC,MAAMvjC,EAAKvO,IAAMuO,EACtBA,EAAKo/E,UAAUhuF,MACfA,KAAKusF,YAAa,MAES1oF,KAAvB+K,EAAK8lB,KAAKq5D,WACZ/tF,KAAKiuF,eAAer/E,GACpB5O,KAAKkuF,mBAGiC,GAApCluF,KAAKikF,aAAar/E,QAAQgK,GAAa,CACzC,GAAI4sC,GAAQx7C,KAAK0vE,QAAQ/+D,KAAK6qC,KAC9Bx7C,MAAKmuF,gBAAgBv/E,EAAM5O,KAAKikF,aAAczoC,KAIlDgyB,EAAMn7D,UAAU47E,eAAiB,SAAUr/E,EAAMw/E,GAC/CA,EAAaA,GAAcx/E,EAAK8lB,KAAKq5D,aACnBlqF,IAAduqF,OAA0DvqF,KAA/B7D,KAAKmsF,UAAUiC,KAC5CpuF,KAAKmsF,UAAUiC,IACb/9E,OAAQ,EACR/J,IAAK,EACL2+C,MAAOr2C,EAAK8lB,KAAKuwB,MACjBC,IAAKt2C,EAAK8lB,KAAKwwB,IACfM,SAAS,EACTzyC,MAAO/S,KAAKosF,cACZj6C,UAEFnyC,KAAKosF,iBAGH,GAAIvpF,MAAK+L,EAAK8lB,KAAKuwB,OAAS,GAAIpiD,MAAK7C,KAAKmsF,UAAUiC,GAAYnpC,SAClEjlD,KAAKmsF,UAAUiC,GAAYnpC,MAAQr2C,EAAK8lB,KAAKuwB,OAE3C,GAAIpiD,MAAK+L,EAAK8lB,KAAKwwB,KAAO,GAAIriD,MAAK7C,KAAKmsF,UAAUiC,GAAYlpC,OAChEllD,KAAKmsF,UAAUiC,GAAYlpC,IAAMt2C,EAAK8lB,KAAKwwB,KAG7CllD,KAAKmsF,UAAUiC,GAAYj8C,MAAMttC,KAAK+J,IAGxC4+D,EAAMn7D,UAAUm7E,sBAAwB,WACtC,GAAIv7C,GAAKjyC,IACT,IAAIiyC,EAAGk6C,UACL,IAAK,GAAI4B,KAAY97C,GAAGk6C,UAAW,CACjC,GAAIjW,GAAWjkC,EAAGk6C,UAAU4B,GAAU57C,MAAM,GAAGzd,KAAKuwB,MAChDkxB,EAASlkC,EAAGk6C,UAAU4B,GAAU57C,MAAM,GAAGzd,KAAKwwB,IAAM,CAExDjT,GAAGk6C,UAAU4B,GAAU57C,MAAMjrC,QAAQ,SAAU0H,GACzC,GAAI/L,MAAK+L,EAAK8lB,KAAKuwB,OAAS,GAAIpiD,MAAKqzE,KACvCA,EAAWtnE,EAAK8lB,KAAKuwB,OAEnB,GAAIpiD,MAAK+L,EAAK8lB,KAAKwwB,KAAO,GAAIriD,MAAKszE,KACrCA,EAASvnE,EAAK8lB,KAAKwwB,OAIvBjT,EAAGk6C,UAAU4B,GAAU9oC,MAAQixB,EAC/BjkC,EAAGk6C,UAAU4B,GAAU7oC,IAAM,GAAIriD,MAAKszE,EAAS,KAKrD3I,EAAMn7D,UAAU67E,eAAiB,WAC/B,OAA6BrqF,KAAzB7D,KAAKqsF,gBAA+B,CACtC,GAAIgC,KACJ,IAAmC,gBAAxBruF,MAAKqsF,gBAA6B,CAC3C,IAAK,GAAI0B,KAAY/tF,MAAKmsF,UACxBkC,EAAUxpF,MAAOkpF,SAAUA,EAAUO,UAAWtuF,KAAKmsF,UAAU4B,GAAU57C,MAAM,GAAGzd,KAAK10B,KAAKqsF,kBAE9FgC,GAAUtlE,KAAK,SAAUvlB,EAAGC,GAC1B,MAAOD,GAAE8qF,UAAY7qF,EAAE6qF,gBAEpB,IAAmC,kBAAxBtuF,MAAKqsF,gBAA+B,CACpD,IAAK,GAAI0B,KAAY/tF,MAAKmsF,UACxBkC,EAAUxpF,KAAK7E,KAAKmsF,UAAU4B,GAAU57C,MAAM,GAAGzd,KAEnD25D,GAAUtlE,KAAK/oB,KAAKqsF,iBAGtB,GAAIgC,EAAUzqF,OAAS,EACrB,IAAK,GAAIG,GAAI,EAAGA,EAAIsqF,EAAUzqF,OAAQG,IACpC/D,KAAKmsF,UAAUkC,EAAUtqF,GAAGgqF,UAAUh7E,MAAQhP,IAMtDypE,EAAMn7D,UAAUy7E,eAAiB,WAC/B,IAAK,GAAIC,KAAY/tF,MAAKmsF,UACpBnsF,KAAKmsF,UAAU7oF,eAAeyqF,KAChC/tF,KAAKmsF,UAAU4B,GAAUvoC,SAAU,EACnCxlD,KAAKmsF,UAAU4B,GAAU19E,OAAS,IASxCm9D,EAAMn7D,UAAUuhC,OAAS,SAAUhlC,SAC1B5O,MAAKmyC,MAAMvjC,EAAKvO,IACvBuO,EAAKo/E,UAAU,MACfhuF,KAAKusF,YAAa,CAGlB,IAAIx5E,GAAQ/S,KAAKikF,aAAar/E,QAAQgK,IACxB,GAAVmE,GAAa/S,KAAKikF,aAAalsD,OAAOhlB,EAAO,OAEtBlP,KAAvB+K,EAAK8lB,KAAKq5D,WACZ/tF,KAAKuuF,oBAAoB3/E,GACzB5O,KAAKkuF,mBAIT1gB,EAAMn7D,UAAUk8E,oBAAsB,SAAU3/E,EAAMw/E,GAEpD,OAAkBvqF,KADlBuqF,EAAaA,GAAcx/E,EAAK8lB,KAAKq5D,UACR,CAC3B,GAAIA,GAAW/tF,KAAKmsF,UAAUiC,EAC9B,IAAIL,EAAU,CACZ,GAAIS,GAAYT,EAAS57C,MAAMvtC,QAAQgK,EAEnC4/E,IAAa,IACfT,EAAS57C,MAAMpa,OAAOy2D,EAAW,GAC5BT,EAAS57C,MAAMvuC,OAGlB5D,KAAKwtF,8BAFExtF,MAAKmsF,UAAUiC,OAahC5gB,EAAMn7D,UAAUo8E,kBAAoB,SAAU7/E,GAC5C5O,KAAK0vE,QAAQmW,WAAWj3E,EAAKvO,KAM/BmtE,EAAMn7D,UAAU4gC,MAAQ,WAKtB,IAAK,GAJD5rC,GAAQ1G,EAAKyG,QAAQpH,KAAKmyC,OAC1Bu8C,KACAnI,KAEKxiF,EAAI,EAAGA,EAAIsD,EAAMzD,OAAQG,QACNF,KAAtBwD,EAAMtD,GAAG2wB,KAAKwwB,KAChBqhC,EAAS1hF,KAAKwC,EAAMtD,IAEtB2qF,EAAW7pF,KAAKwC,EAAMtD,GAExB/D,MAAKoO,cACHq+E,QAASiC,EACThC,MAAOnG,GAGT3gE,EAAM+oE,aAAa3uF,KAAKoO,aAAaq+E,SACrC7mE,EAAMgpE,WAAW5uF,KAAKoO,aAAas+E,QAWrClf,EAAMn7D,UAAUq7E,oBAAsB,SAAUt/E,EAAcygF,EAAiBrzC,GAC7E,GAAIyoC,MACA6K,KAEAr9B,GAAYjW,EAAM0J,IAAM1J,EAAMyJ,OAAS,EACvC8pC,EAAavzC,EAAMyJ,MAAQwM,EAC3Bu9B,EAAaxzC,EAAM0J,IAAMuM,EAGzBw9B,EAAiB,SAAwB1sF,GAC3C,MAAIA,GAAQwsF,GACF,EACCxsF,GAASysF,EACX,EAEA,EAOX,IAAIH,EAAgBjrF,OAAS,EAC3B,IAAK,GAAIG,GAAI,EAAGA,EAAI8qF,EAAgBjrF,OAAQG,IAC1C/D,KAAKkvF,6BAA6BL,EAAgB9qF,GAAIkgF,EAAc6K,EAAoBtzC,EAK5F,IAAI2zC,GAAoBxuF,EAAKwN,mBAAmBC,EAAaq+E,QAASwC,EAAgB,OAAQ,QAS9F,IANAjvF,KAAKovF,cAAcD,EAAmB/gF,EAAaq+E,QAASxI,EAAc6K,EAAoB,SAAUlgF,GACtG,MAAOA,GAAK8lB,KAAKuwB,MAAQ8pC,GAAcngF,EAAK8lB,KAAKuwB,MAAQ+pC,IAK9B,GAAzBhvF,KAAK2sF,iBAEP,IADA3sF,KAAK2sF,kBAAmB,EACnB5oF,EAAI,EAAGA,EAAIqK,EAAas+E,MAAM9oF,OAAQG,IACzC/D,KAAKkvF,6BAA6B9gF,EAAas+E,MAAM3oF,GAAIkgF,EAAc6K,EAAoBtzC,OAExF,CAEL,GAAI6zC,GAAkB1uF,EAAKwN,mBAAmBC,EAAas+E,MAAOuC,EAAgB,OAAQ,MAG1FjvF,MAAKovF,cAAcC,EAAiBjhF,EAAas+E,MAAOzI,EAAc6K,EAAoB,SAAUlgF,GAClG,MAAOA,GAAK8lB,KAAKwwB,IAAM6pC,GAAcngF,EAAK8lB,KAAKwwB,IAAM8pC,IAKzD,IAAK,GAAIjrF,GAAI,EAAGA,EAAIkgF,EAAargF,OAAQG,IAAK,CAC5C,GAAI6K,GAAOq1E,EAAalgF,EACnB6K,GAAKg1E,WAAWh1E,EAAKwjE,OAE1BxjE,EAAKyjE,cAGP,MAAO4R,IAGTzW,EAAMn7D,UAAU+8E,cAAgB,SAAUE,EAAYn9C,EAAO8xC,EAAc6K,EAAoBS,GAC7F,IAAmB,GAAfD,EAAkB,CACpB,IAAK,GAAIvrF,GAAIurF,EAAYvrF,GAAK,EAAGA,IAAK,CACpC,GAAI6K,GAAOujC,EAAMpuC,EACjB,IAAIwrF,EAAe3gF,GACjB,UAEoC/K,KAAhCirF,EAAmBlgF,EAAKvO,MAC1ByuF,EAAmBlgF,EAAKvO,KAAM,EAC9B4jF,EAAap/E,KAAK+J,IAKxB,IAAK,GAAI7K,GAAIurF,EAAa,EAAGvrF,EAAIouC,EAAMvuC,OAAQG,IAAK,CAClD,GAAI6K,GAAOujC,EAAMpuC,EACjB,IAAIwrF,EAAe3gF,GACjB,UAEoC/K,KAAhCirF,EAAmBlgF,EAAKvO,MAC1ByuF,EAAmBlgF,EAAKvO,KAAM,EAC9B4jF,EAAap/E,KAAK+J,OAkB5B4+D,EAAMn7D,UAAU87E,gBAAkB,SAAUv/E,EAAMq1E,EAAczoC,GAC1D5sC,EAAKo1E,UAAUxoC,IACZ5sC,EAAKg1E,WAAWh1E,EAAKwjE,OAE1BxjE,EAAKyjE,cACL4R,EAAap/E,KAAK+J,IAEdA,EAAKg1E,WAAWh1E,EAAKkD,QAe7B07D,EAAMn7D,UAAU68E,6BAA+B,SAAUtgF,EAAMq1E,EAAc6K,EAAoBtzC,GAC3F5sC,EAAKo1E,UAAUxoC,OACmB33C,KAAhCirF,EAAmBlgF,EAAKvO,MAC1ByuF,EAAmBlgF,EAAKvO,KAAM,EAC9B4jF,EAAap/E,KAAK+J,IAGhBA,EAAKg1E,WAAWh1E,EAAKkD,QAI7B07D,EAAMn7D,UAAUm9E,eAAiB,SAAU5gF,EAAM6gF,EAAaC,GAC5D1vF,KAAKuuF,oBAAoB3/E,EAAM6gF,GAC/BzvF,KAAKiuF,eAAer/E,EAAM8gF,GAC1B1vF,KAAKkuF,kBAGPruF,EAAOD,QAAU4tE,GAIb,SAAU3tE,EAAQD,GAWtBA,EAAQ+uF,aAAe,SAAUx8C,GAC/BA,EAAMppB,KAAK,SAAUvlB,EAAGC,GACtB,MAAOD,GAAEkxB,KAAKuwB,MAAQxhD,EAAEixB,KAAKuwB,SASjCrlD,EAAQgvF,WAAa,SAAUz8C,GAC7BA,EAAMppB,KAAK,SAAUvlB,EAAGC,GAItB,OAHY,OAASD,GAAEkxB,KAAOlxB,EAAEkxB,KAAKwwB,IAAM1hD,EAAEkxB,KAAKuwB,QACtC,OAASxhD,GAAEixB,KAAOjxB,EAAEixB,KAAKwwB,IAAMzhD,EAAEixB,KAAKuwB,UAiBtDrlD,EAAQgmB,MAAQ,SAAUusB,EAAO8R,EAAQ2mB,GACvC,GAAIA,EAEF,IAAK,GAAI7mE,GAAI,EAAGA,EAAIouC,EAAMvuC,OAAQG,IAChCouC,EAAMpuC,GAAGuC,IAAM,IAKnB,KAAK,GAAIvC,GAAI,EAAGA,EAAIouC,EAAMvuC,OAAQG,IAAK,CACrC,GAAI6K,GAAOujC,EAAMpuC,EACjB,IAAI6K,EAAKgX,OAAsB,OAAbhX,EAAKtI,IAAc,CAEnCsI,EAAKtI,IAAM29C,EAAOkqB,IAElB,GAAG,CAID,IAAK,GADDwhB,GAAgB,KACX9hF,EAAI,EAAG+hF,EAAKz9C,EAAMvuC,OAAQiK,EAAI+hF,EAAI/hF,IAAK,CAC9C,GAAI7J,GAAQmuC,EAAMtkC,EAClB,IAAkB,OAAd7J,EAAMsC,KAAgBtC,IAAU4K,GAAQ5K,EAAM4hB,OAAShmB,EAAQiwF,UAAUjhF,EAAM5K,EAAOigD,EAAOr1C,KAAM5K,EAAMgK,QAAQsgE,KAAM,CACzHqhB,EAAgB3rF,CAChB,QAIiB,MAAjB2rF,IAEF/gF,EAAKtI,IAAMqpF,EAAcrpF,IAAMqpF,EAAct/E,OAAS4zC,EAAOr1C,KAAK2rC,gBAE7Do1C,MAcf/vF,EAAQ+tF,QAAU,SAAUx7C,EAAO8R,EAAQkoC,EAAWpM,GACpD,IAAK,GAAIh8E,GAAI,EAAGA,EAAIouC,EAAMvuC,OAAQG,IAChC,OAA8BF,IAA1BsuC,EAAMpuC,GAAG2wB,KAAKq5D,SAChB57C,EAAMpuC,GAAGuC,IAAM29C,EAAOr1C,KAAK2rC,aACtB,QAA+B12C,KAA3BsuC,EAAMpuC,GAAG2wB,KAAKq5D,UAA0BhO,EAAgB,CACjE,GAAI+P,GAAS,CACb,KAAK,GAAI/B,KAAY5B,GACfA,EAAU7oF,eAAeyqF,IACQ,GAA/B5B,EAAU4B,GAAUvoC,SAAmB2mC,EAAU4B,GAAUh7E,MAAQo5E,EAAUh6C,EAAMpuC,GAAG2wB,KAAKq5D,UAAUh7E,QACvG+8E,GAAU3D,EAAU4B,GAAU19E,OAC9B87E,EAAUh6C,EAAMpuC,GAAG2wB,KAAKq5D,UAAUznF,IAAMwpF,EAI9C39C,GAAMpuC,GAAGuC,IAAMwpF,EAAS,GAAM7rC,EAAOr1C,KAAK2rC,SAGzCwlC,GACHngF,EAAQmgF,eAAe5tC,EAAO8R,EAAQkoC,IAY1CvsF,EAAQmgF,eAAiB,SAAU5tC,EAAO8R,EAAQkoC,GAChD,IAAK,GAAI4B,KAAY5B,GACnB,GAAIA,EAAU7oF,eAAeyqF,GAAW,CAEtC5B,EAAU4B,GAAUznF,IAAM,CAC1B,GAAG,CAGD,GAAIqpF,GAAgB,IACpB,KAAK,GAAII,KAAiB5D,GACxB,GAAqC,OAAjCA,EAAU4D,GAAezpF,KAAgBypF,IAAkBhC,GAAY5B,EAAU4B,GAAUh7E,MAAQo5E,EAAU4D,GAAeh9E,OAASnT,EAAQowF,iBAAiB7D,EAAU4B,GAAW5B,EAAU4D,IAAiB,CAChNJ,EAAgBxD,EAAU4D,EAC1B,OAIiB,MAAjBJ,IAEFxD,EAAU4B,GAAUznF,IAAMqpF,EAAcrpF,IAAMqpF,EAAct/E,cAEvDs/E,GAGb,IAAK,GAAI5rF,GAAI,EAAGA,EAAIouC,EAAMvuC,OAAQG,QACDF,KAA3BsuC,EAAMpuC,GAAG2wB,KAAKq5D,WAChB57C,EAAMpuC,GAAGuC,IAAM6lF,EAAUh6C,EAAMpuC,GAAG2wB,KAAKq5D,UAAUznF,IAAM,GAAM29C,EAAOr1C,KAAK2rC,WAgB/E36C,EAAQiwF,UAAY,SAAUrsF,EAAGC,EAAGwgD,EAAQqqB,GAC1C,MAAIA,GACK9qE,EAAE4C,MAAQ69C,EAAO3J,WA3Jd,KA2JqC72C,EAAE2C,MAAQ3C,EAAE2M,OAAS5M,EAAE4C,MAAQ5C,EAAE4M,MAAQ6zC,EAAO3J,WA3JrF,KA2J4G72C,EAAE2C,OAAS5C,EAAE8C,IAAM29C,EAAO1J,SA3JtI,KA2J2J92C,EAAE6C,IAAM7C,EAAE4M,QAAU7M,EAAE8C,IAAM9C,EAAE6M,OAAS4zC,EAAO1J,SA3JzM,KA2J8N92C,EAAE6C,IAEnO9C,EAAE0C,KAAO+9C,EAAO3J,WA7Jb,KA6JoC72C,EAAEyC,KAAOzC,EAAE2M,OAAS5M,EAAE0C,KAAO1C,EAAE4M,MAAQ6zC,EAAO3J,WA7JlF,KA6JyG72C,EAAEyC,MAAQ1C,EAAE8C,IAAM29C,EAAO1J,SA7JlI,KA6JuJ92C,EAAE6C,IAAM7C,EAAE4M,QAAU7M,EAAE8C,IAAM9C,EAAE6M,OAAS4zC,EAAO1J,SA7JrM,KA6J0N92C,EAAE6C,KAW1O1G,EAAQowF,iBAAmB,SAAUxsF,EAAGC,GACtC,MAAOD,GAAEyhD,OAASxhD,EAAEwhD,OAASzhD,EAAE0hD,KAAOzhD,EAAEwhD,OAASzhD,EAAE8C,IAAM7C,EAAE6C,IAAM7C,EAAE4M,QAAU7M,EAAE8C,IAAM9C,EAAE6M,OAAS5M,EAAE6C,KAAO7C,EAAEwhD,OAASzhD,EAAEyhD,OAASxhD,EAAEyhD,KAAO1hD,EAAEyhD,OAASxhD,EAAE6C,IAAM9C,EAAE8C,IAAM9C,EAAE6M,QAAU5M,EAAE6C,IAAM7C,EAAE4M,OAAS7M,EAAE8C,MAKlM,SAAUzG,EAAQD,EAASM,GAiB/B,QAAS8sE,GAAUt4C,EAAMsgD,EAAYhnE,GASnC,GARAhO,KAAKkE,OACHusC,SACErgC,MAAO,IAGXpQ,KAAKyQ,UAAW,EAChBzQ,KAAKgO,QAAUA,EAEX0mB,EAAM,CACR,OAAkB7wB,IAAd6wB,EAAKuwB,MACP,KAAM,IAAI5gD,OAAM,oCAAsCqwB,EAAKr0B,GAE7D,QAAgBwD,IAAZ6wB,EAAKwwB,IACP,KAAM,IAAI7gD,OAAM,kCAAoCqwB,EAAKr0B,IAI7DusE,EAAKrsE,KAAKP,KAAM00B,EAAMsgD,EAAYhnE,GA/BpC,GACI4+D,IADS1sE,EAAoB,KACtBA,EAAoB,KAiC/B8sE,GAAU36D,UAAY,GAAIu6D,GAAK,KAAM,KAAM,MAE3CI,EAAU36D,UAAU49E,cAAgB,qBAOpCjjB,EAAU36D,UAAU2xE,UAAY,SAAUxoC,GAExC,MAAOx7C,MAAK00B,KAAKuwB,MAAQzJ,EAAM0J,KAAOllD,KAAK00B,KAAKwwB,IAAM1J,EAAMyJ,OAM9D+nB,EAAU36D,UAAUotC,OAAS,WAC3B,GAAIsO,GAAM/tD,KAAK+tD,GAgCf,IA/BKA,IAEH/tD,KAAK+tD,OACLA,EAAM/tD,KAAK+tD,IAGXA,EAAIg1B,IAAM7yE,SAASC,cAAc,OAIjC49C,EAAI5P,MAAQjuC,SAASC,cAAc,OACnC49C,EAAI5P,MAAMz3C,UAAY,oBACtBqnD,EAAIg1B,IAAIryE,YAAYq9C,EAAI5P,OAGxB4P,EAAImiC,aAAehgF,SAASC,cAAc,OAC1C49C,EAAImiC,aAAaxpF,UAAY,yBAC7BqnD,EAAIg1B,IAAIryE,YAAYq9C,EAAImiC,cAGxBniC,EAAItd,QAAUvgC,SAASC,cAAc,OACrC49C,EAAItd,QAAQ/pC,UAAY,mBACxBqnD,EAAI5P,MAAMztC,YAAYq9C,EAAItd,SAG1Bsd,EAAIg1B,IAAI,iBAAmB/iF,KAE3BA,KAAK2jF,OAAQ,IAIV3jF,KAAKgJ,OACR,KAAM,IAAI3E,OAAM,yCAElB,KAAK0pD,EAAIg1B,IAAIj6E,WAAY,CACvB,GAAIsqE,GAAapzE,KAAKgJ,OAAO+kD,IAAIqlB,UACjC,KAAKA,EACH,KAAM,IAAI/uE,OAAM,iEAElB+uE,GAAW1iE,YAAYq9C,EAAIg1B,KAQ7B,GANA/iF,KAAK4jF,WAAY,EAMb5jF,KAAK2jF,MAAO,CACd3jF,KAAKmwF,gBAAgBnwF,KAAK+tD,IAAItd,SAC9BzwC,KAAKowF,sBAAsBpwF,KAAK+tD,IAAIg1B,KACpC/iF,KAAKqwF,aAAarwF,KAAK+tD,IAAIg1B,IAE3B,IAAIvC,GAAWxgF,KAAKwgF,SAASC,YAAczgF,KAAKwgF,SAASE,YAGrDh6E,GAAa1G,KAAK00B,KAAKhuB,UAAY,IAAM1G,KAAK00B,KAAKhuB,UAAY,KAAO1G,KAAK+lF,SAAW,gBAAkB,KAAOvF,EAAW,gBAAkB,gBAChJzyB,GAAIg1B,IAAIr8E,UAAY1G,KAAKiwF,cAAgBvpF,EAGzC1G,KAAKyQ,SAA2D,WAAhDjI,OAAOimE,iBAAiB1gB,EAAI5P,OAAO1tC,SAKnDzQ,KAAK+tD,IAAItd,QAAQpkC,MAAMikF,SAAW,OAClCtwF,KAAKkE,MAAMusC,QAAQrgC,MAAQpQ,KAAK+tD,IAAItd,QAAQ5/B,YAC5C7Q,KAAKqQ,OAASrQ,KAAK+tD,IAAIg1B,IAAI70B,aAC3BluD,KAAK+tD,IAAItd,QAAQpkC,MAAMikF,SAAW,GAElCtwF,KAAK2jF,OAAQ,EAGf3jF,KAAKuwF,gCAAgCxiC,EAAIg1B,KACzC/iF,KAAKwwF,qBAAqBziC,EAAIg1B,KAC9B/iF,KAAKywF,qBACLzwF,KAAK0wF,mBACL1wF,KAAK2wF,qBAOP3jB,EAAU36D,UAAU+/D,KAAO,WACpBpyE,KAAK4jF,WACR5jF,KAAKy/C,UAQTutB,EAAU36D,UAAUP,KAAO,WACzB,GAAI9R,KAAK4jF,UAAW,CAClB,GAAIb,GAAM/iF,KAAK+tD,IAAIg1B,GAEfA,GAAIj6E,YACNi6E,EAAIj6E,WAAW5G,YAAY6gF,GAG7B/iF,KAAK4jF,WAAY,IAarB5W,EAAU36D,UAAUggE,YAAc,SAAUue,GAC1C,GAIIC,GACA7iC,EALA8iC,EAAc9wF,KAAKgJ,OAAOoH,MAC1B60C,EAAQjlD,KAAKg1E,WAAWhG,SAAShvE,KAAK00B,KAAKuwB,OAC3CC,EAAMllD,KAAKg1E,WAAWhG,SAAShvE,KAAK00B,KAAKwwB,KACzC46B,MAA4Bj8E,KAApB7D,KAAK00B,KAAKorD,MAAsB9/E,KAAKgO,QAAQ8xE,MAAQ9/E,KAAK00B,KAAKorD,UAKzDj8E,KAAd+sF,IAAyC,IAAdA,IACzB3rC,GAAS6rC,IACX7rC,GAAS6rC,GAEP5rC,EAAM,EAAI4rC,IACZ5rC,EAAM,EAAI4rC,GAKd,IAAIC,GAAWtuF,KAAKJ,IAAI6iD,EAAMD,EAAQ,GAAK,EA+B3C,QA7BIjlD,KAAKyQ,UACHzQ,KAAKgO,QAAQsgE,IACftuE,KAAKoG,MAAQ6+C,EAEbjlD,KAAKkG,KAAO++C,EAEdjlD,KAAKoQ,MAAQ2gF,EAAW/wF,KAAKkE,MAAMusC,QAAQrgC,MAC3C49C,EAAehuD,KAAKkE,MAAMusC,QAAQrgC,QAM9BpQ,KAAKgO,QAAQsgE,IACftuE,KAAKoG,MAAQ6+C,EAEbjlD,KAAKkG,KAAO++C,EAEdjlD,KAAKoQ,MAAQ2gF,EACb/iC,EAAevrD,KAAKL,IAAI8iD,EAAMD,EAAOjlD,KAAKkE,MAAMusC,QAAQrgC,QAGtDpQ,KAAKgO,QAAQsgE,IACftuE,KAAK+tD,IAAIg1B,IAAI12E,MAAMjG,MAAQpG,KAAKoG,MAAQ,KAExCpG,KAAK+tD,IAAIg1B,IAAI12E,MAAMnG,KAAOlG,KAAKkG,KAAO,KAExClG,KAAK+tD,IAAIg1B,IAAI12E,MAAM+D,MAAQ2gF,EAAW,KAE9BjR,GACN,IAAK,OACC9/E,KAAKgO,QAAQsgE,IACftuE,KAAK+tD,IAAItd,QAAQpkC,MAAMjG,MAAQ,IAE/BpG,KAAK+tD,IAAItd,QAAQpkC,MAAMnG,KAAO,GAEhC,MAEF,KAAK,QACClG,KAAKgO,QAAQsgE,IACftuE,KAAK+tD,IAAItd,QAAQpkC,MAAMjG,MAAQ3D,KAAKJ,IAAI0uF,EAAW/iC,EAAc,GAAK,KAEtEhuD,KAAK+tD,IAAItd,QAAQpkC,MAAMnG,KAAOzD,KAAKJ,IAAI0uF,EAAW/iC,EAAc,GAAK,IAEvE,MAEF,KAAK,SACChuD,KAAKgO,QAAQsgE,IACftuE,KAAK+tD,IAAItd,QAAQpkC,MAAMjG,MAAQ3D,KAAKJ,KAAK0uF,EAAW/iC,GAAgB,EAAG,GAAK,KAE5EhuD,KAAK+tD,IAAItd,QAAQpkC,MAAMnG,KAAOzD,KAAKJ,KAAK0uF,EAAW/iC,GAAgB,EAAG,GAAK,IAG7E,MAEF,SAKM6iC,EAFA7wF,KAAKyQ,SACHy0C,EAAM,EACeziD,KAAKJ,KAAK4iD,EAAO,IAEhB+I,EAGtB/I,EAAQ,GACcA,EAED,EAGvBjlD,KAAKgO,QAAQsgE,IACftuE,KAAK+tD,IAAItd,QAAQpkC,MAAMjG,MAAQyqF,EAAuB,MAEtD7wF,KAAK+tD,IAAItd,QAAQpkC,MAAMnG,KAAO2qF,EAAuB,KACrD7wF,KAAK+tD,IAAItd,QAAQpkC,MAAM+D,MAAQ,eAAiBygF,EAAuB,SAS/E7jB,EAAU36D,UAAUw7E,YAAc,WAChC,GAAI3f,GAAcluE,KAAKgO,QAAQkgE,YAAYt/D,KACvCm0E,EAAM/iF,KAAK+tD,IAAIg1B,GAGjBA,GAAI12E,MAAM/F,IADO,OAAf4nE,EACcluE,KAAKsG,IAAM,KAEXtG,KAAKgJ,OAAOqH,OAASrQ,KAAKsG,IAAMtG,KAAKqQ,OAAS,MAQlE28D,EAAU36D,UAAUq+E,iBAAmB,WACrC,IAAK1wF,KAAK+lF,UAAY/lF,KAAKgO,QAAQuyE,qBAAqB/kC,QAAUx7C,KAAKgO,QAAQwyE,SAASC,aAAezgF,KAAK+tD,IAAIg5B,SAAU,CAExH,GAAIA,GAAW72E,SAASC,cAAc,MACtC42E,GAASrgF,UAAY,gBACrBqgF,EAASP,aAAexmF,KAExBA,KAAK+tD,IAAIg1B,IAAIryE,YAAYq2E,GACzB/mF,KAAK+tD,IAAIg5B,SAAWA,MACV/mF,MAAK+lF,UAAa/lF,KAAKgO,QAAQuyE,qBAAqB/kC,QAASx7C,KAAK+tD,IAAIg5B,WAE5E/mF,KAAK+tD,IAAIg5B,SAASj+E,YACpB9I,KAAK+tD,IAAIg5B,SAASj+E,WAAW5G,YAAYlC,KAAK+tD,IAAIg5B,UAEpD/mF,KAAK+tD,IAAIg5B,SAAW,OAQxB/Z,EAAU36D,UAAUs+E,kBAAoB,WACtC,IAAK3wF,KAAK+lF,UAAY/lF,KAAKgO,QAAQuyE,qBAAqB/kC,QAAUx7C,KAAKgO,QAAQwyE,SAASC,aAAezgF,KAAK+tD,IAAIk5B,UAAW,CAEzH,GAAIA,GAAY/2E,SAASC,cAAc,MACvC82E,GAAUvgF,UAAY,iBACtBugF,EAAUR,cAAgBzmF,KAE1BA,KAAK+tD,IAAIg1B,IAAIryE,YAAYu2E,GACzBjnF,KAAK+tD,IAAIk5B,UAAYA,MACXjnF,MAAK+lF,UAAa/lF,KAAKgO,QAAQuyE,qBAAqB/kC,QAASx7C,KAAK+tD,IAAIk5B,YAE5EjnF,KAAK+tD,IAAIk5B,UAAUn+E,YACrB9I,KAAK+tD,IAAIk5B,UAAUn+E,WAAW5G,YAAYlC,KAAK+tD,IAAIk5B,WAErDjnF,KAAK+tD,IAAIk5B,UAAY,OAIzBpnF,EAAOD,QAAUotE,GAIb,SAAUntE,EAAQD,EAASM,GAY/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAezF,QAAS8rE,GAAKl4C,EAAMsgD,EAAYhnE,GAC9BhO,KAAKK,GAAK,KACVL,KAAKgJ,OAAS,KACdhJ,KAAK00B,KAAOA,EACZ10B,KAAK+tD,IAAM,KACX/tD,KAAKg1E,WAAaA,MAClBh1E,KAAKgO,QAAUA,MACfhO,KAAK+lF,UAAW,EAChB/lF,KAAK4jF,WAAY,EACjB5jF,KAAKmyE,cAAe,EACpBnyE,KAAK2jF,OAAQ,EAEb3jF,KAAKsG,IAAM,KACXtG,KAAKoG,MAAQ,KACbpG,KAAKkG,KAAO,KACZlG,KAAKoQ,MAAQ,KACbpQ,KAAKqQ,OAAS,KAEdrQ,KAAKwgF,SAAW,KAChBxgF,KAAKgxF,oBA1CP,GAAIzvF,GAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCF,EAAQnB,EAAoB,IAE5BoB,EAAST,EAAuBQ,GAIhC6tC,EAAShvC,EAAoB,KAC7BS,EAAOT,EAAoB,GAC3BuB,EAASvB,EAAoB,GAiCjC0sE,GAAKv6D,UAAUuT,OAAQ,EAKvBgnD,EAAKv6D,UAAUyxE,OAAS,WACtB9jF,KAAK+lF,UAAW,EAChB/lF,KAAK2jF,OAAQ,EACT3jF,KAAK4jF,WAAW5jF,KAAKy/C,UAM3BmtB,EAAKv6D,UAAUwxE,SAAW,WACxB7jF,KAAK+lF,UAAW,EAChB/lF,KAAK2jF,OAAQ,EACT3jF,KAAK4jF,WAAW5jF,KAAKy/C,UAQ3BmtB,EAAKv6D,UAAUqjC,QAAU,SAAUhhB,OACA7wB,IAAd6wB,EAAK+8C,OAAsBzxE,KAAK00B,KAAK+8C,OAAS/8C,EAAK+8C,OACnC,MAAfzxE,KAAKgJ,QACvBhJ,KAAKgJ,OAAO0mE,QAAQuY,aAAajoF,KAAM00B,EAAK+8C,OAE9CzxE,KAAKgJ,OAAOujF,YAAa,MAEc1oF,IAAjB6wB,EAAKq5D,UAAyB/tF,KAAK00B,KAAKq5D,UAAYr5D,EAAKq5D,UACzC,MAAf/tF,KAAKgJ,QAC1BhJ,KAAKgJ,OAAOwmF,eAAexvF,KAAMA,KAAK00B,KAAKq5D,SAAUr5D,EAAKq5D,UAG5D/tF,KAAK00B,KAAOA,EACZ10B,KAAKgxF,oBACLhxF,KAAK2jF,OAAQ,EACT3jF,KAAK4jF,WAAW5jF,KAAKy/C,UAO3BmtB,EAAKv6D,UAAU27E,UAAY,SAAUhlF,GAC/BhJ,KAAK4jF,WACP5jF,KAAK8R,OACL9R,KAAKgJ,OAASA,EACVhJ,KAAKgJ,QACPhJ,KAAKoyE,QAGPpyE,KAAKgJ,OAASA,GASlB4jE,EAAKv6D,UAAU2xE,UAAY,SAAUxoC,GACnC,OAAO,GAOToxB,EAAKv6D,UAAU+/D,KAAO,WACpB,OAAO,GAOTxF,EAAKv6D,UAAUP,KAAO,WACpB,OAAO,GAMT86D,EAAKv6D,UAAUotC,OAAS,aAOxBmtB,EAAKv6D,UAAUggE,YAAc,aAO7BzF,EAAKv6D,UAAUw7E,YAAc,aAQ7BjhB,EAAKv6D,UAAUo+E,mBAAqB,WAClC,GAAIzwF,KAAK+lF,UAAY/lF,KAAKgO,QAAQwyE,SAASC,aAAezgF,KAAK+tD,IAAIkjC,WAAY,CAC7E,GAAIh/C,GAAKjyC,KAELixF,EAAa/gF,SAASC,cAAc,MACxC8gF,GAAWvqF,UAAY,kBACvBuqF,EAAWC,eAAiBlxF,IAC5B,IAAIo3D,GAAS,GAAIloB,GAAO+hD,EAExB75B,GAAO7lB,GAAG,MAAO,SAAUhpC,GACzB0pC,EAAGjpC,OAAO0mE,QAAQ/+D,KAAKk+D,QAAQ9iB,KAAK,SAClCxjD,MAAOA,EACPqG,KAAMqjC,EAAG5xC,OAGb+2D,EAAO7lB,GAAG,YAAa,SAAUhpC,GAC/BA,EAAMmvD,kBACNzlB,EAAGjpC,OAAO0mE,QAAQka,cAAc33C,GAChCA,EAAGjpC,OAAO0mE,QAAQ/+D,KAAKk+D,QAAQ9iB,KAAK,eAClCxjD,MAAOA,EACPqG,KAAMqjC,EAAG5xC,OAITL,KAAK+tD,IAAIg1B,IACP/iF,KAAK+tD,IAAIg5B,SACX/mF,KAAK+tD,IAAIg1B,IAAI/yC,aAAaihD,EAAYjxF,KAAK+tD,IAAIg5B,UAE/C/mF,KAAK+tD,IAAIg1B,IAAIryE,YAAYugF,GAElBjxF,KAAK+tD,IAAInzC,OAClB5a,KAAK+tD,IAAInzC,MAAMlK,YAAYugF,GAG7BjxF,KAAK+tD,IAAIkjC,WAAaA,OACZjxF,KAAK+lF,UAAY/lF,KAAK+tD,IAAIkjC,aAEhCjxF,KAAK+tD,IAAIkjC,WAAWnoF,YACtB9I,KAAK+tD,IAAIkjC,WAAWnoF,WAAW5G,YAAYlC,KAAK+tD,IAAIkjC,YAEtDjxF,KAAK+tD,IAAIkjC,WAAa,OAS1BrkB,EAAKv6D,UAAUm+E,qBAAuB,SAAU9uD,GAC9C,GAAI8+C,IAAYxgF,KAAKgO,QAAQwyE,SAASG,eAAkC,MAAjB3gF,KAAKwgF,WAAqBxgF,KAAKgO,QAAQwyE,SAAS5sC,SAAW5zC,KAAKgO,QAAQwyE,SAASG,eAAkC,MAAjB3gF,KAAKwgF,UAAoBxgF,KAAKwgF,SAAS5sC,MAEhM,IAAI5zC,KAAK+lF,UAAYvF,IAAaxgF,KAAK+tD,IAAIojC,aAAc,CAEvD,GAAIl/C,GAAKjyC,KAELmxF,EAAejhF,SAASC,cAAc,MAEtCnQ,MAAKgO,QAAQsgE,IACf6iB,EAAazqF,UAAY,iBAEzByqF,EAAazqF,UAAY,aAE3ByqF,EAAaxT,MAAQ,mBAGrB,GAAIzuC,GAAOiiD,GAAc5/C,GAAG,MAAO,SAAUhpC,GAC3CA,EAAMmvD,kBACNzlB,EAAGjpC,OAAOylF,kBAAkBx8C,KAG9BvQ,EAAOhxB,YAAYygF,GACnBnxF,KAAK+tD,IAAIojC,aAAeA,OACdnxF,KAAK+lF,UAAY/lF,KAAK+tD,IAAIojC,eAEhCnxF,KAAK+tD,IAAIojC,aAAaroF,YACxB9I,KAAK+tD,IAAIojC,aAAaroF,WAAW5G,YAAYlC,KAAK+tD,IAAIojC,cAExDnxF,KAAK+tD,IAAIojC,aAAe,OAS5BvkB,EAAKv6D,UAAUk+E,gCAAkC,SAAU7uD,GACzD,GAAK1hC,KAAKgO,QAAQwzE,wBAAlB,CAEA,GAAIhB,IAAYxgF,KAAKgO,QAAQwyE,SAASC,aAAqC,IAAvBzgF,KAAK00B,KAAK8rD,YAA6C,IAAvBxgF,KAAK00B,KAAK8rD,QAE9F,IAAIxgF,KAAK+lF,UAAYvF,IAAaxgF,KAAK+tD,IAAIqjC,wBAAyB,CAElE,GAEIA,GAA0BlhF,SAASC,cAAc,MAErDihF,GAAwB1qF,UAAY,2BACpCg7B,EAAOhxB,YAAY0gF,GACnBpxF,KAAK+tD,IAAIqjC,wBAA0BA,OACzBpxF,KAAK+lF,UAAY/lF,KAAK+tD,IAAIqjC,0BAEhCpxF,KAAK+tD,IAAIqjC,wBAAwBtoF,YACnC9I,KAAK+tD,IAAIqjC,wBAAwBtoF,WAAW5G,YAAYlC,KAAK+tD,IAAIqjC,yBAEnEpxF,KAAK+tD,IAAIqjC,wBAA0B,KAIrC,IAAIpxF,KAAK+tD,IAAIqjC,wBAAyB,CAGpCpxF,KAAK+tD,IAAIqjC,wBAAwB/kF,MAAMmE,WAAaxQ,KAAKgJ,OAAO0mE,QAAQgT,YAAYkE,eAAiB,UAAY,SAG7G5mF,KAAKgO,QAAQsgE,IACftuE,KAAK+tD,IAAIqjC,wBAAwB/kF,MAAMjG,MAAQpG,KAAK+tD,IAAItd,QAAQpkC,MAAMjG,MAEtEpG,KAAK+tD,IAAIqjC,wBAAwB/kF,MAAMnG,KAAOlG,KAAK+tD,IAAItd,QAAQpkC,MAAMnG,IAIvE,IAKImrF,GAJApW,EAAYj7E,KAAKgJ,OAAO0mE,QAAQ/+D,KAAKi+D,SAASqM,SAMhDoW,GADmC,OAAjCrxF,KAAKgO,QAAQkgE,YAAYt/D,KACL5O,KAAKsG,IAELtG,KAAKgJ,OAAOqH,OAASrQ,KAAKsG,IAAMtG,KAAKqQ,MAE1CghF,GAAsBrxF,KAAKgJ,OAAO1C,IAXjC,IAWwD20E,GAG1Ej7E,KAAK+tD,IAAIqjC,wBAAwB/kF,MAAMsyC,OAAS,GAChD3+C,KAAK+tD,IAAIqjC,wBAAwB/kF,MAAM/F,IAAMtG,KAAKqQ,OAAS,EAAI,OAE/DrQ,KAAK+tD,IAAIqjC,wBAAwB/kF,MAAM/F,IAAM,GAC7CtG,KAAK+tD,IAAIqjC,wBAAwB/kF,MAAMsyC,OAAS3+C,KAAKqQ,OAAS,EAAI,KAIpE,IAAIogC,GACAo8C,CAEA7sF,MAAKgO,QAAQwzE,yBAA2BxhF,KAAKgO,QAAQwzE,wBAAwB8P,UAC/EzE,EAAmB7sF,KAAKgO,QAAQwzE,wBAAwB8P,SAAS15B,KAAK53D,MACtEywC,EAAUo8C,EAAiB7sF,KAAK00B,QAEhC+b,EAAU,UAAYhvC,EAAOzB,KAAK00B,KAAKuwB,OAAOx/C,OAAO,oBACjDzF,KAAK00B,KAAKwwB,MACZzU,GAAW,aAAehvC,EAAOzB,KAAK00B,KAAKwwB,KAAKz/C,OAAO,sBAG3DzF,KAAK+tD,IAAIqjC,wBAAwBzwC,UAAYlQ,KASjDm8B,EAAKv6D,UAAU89E,gBAAkB,SAAUtoF,GACzC,GAAI4oC,GACAo8C,EACA0E,EACAC,EACA7f,EAAW3xE,KAAKgJ,OAAO0mE,QAAQC,UAAUl4D,IAAIzX,KAAKK,IAElDoxF,EAAezxF,KAAK+tD,IAAIg1B,KAAO/iF,KAAK+tD,IAAInzC,MACxC82E,EAAiCD,EAAaE,uBAAuB,0BAA0B,EASnG,IAPI3xF,KAAKgO,QAAQ4jF,sBACfJ,EAA+BxxF,KAAKgO,QAAQ4jF,qBAAqBh6B,KAAK53D,MACtEuxF,EAA0BC,EAA6B7f,EAAU8f,IAEjEF,EAA0B,GAGxBG,EACF,GAAIH,YAAmC9sF,WAAY8sF,YAAmCzE,UACpF0E,EAA6B7f,EAAU+f,OAClC,CACL,GAAIpxB,GAAUtgE,KAAK6xF,iBAAiB7xF,KAAKuxF,2BAA6BvxF,KAAK6xF,iBAAiBN,EAC5F,IAAIjxB,EAAS,CAEX,GAAIixB,YAAmCzE,SACrC4E,EAA+B/wC,UAAY,GAC3C+wC,EAA+BhhF,YAAY6gF,OACtC,QAA+B1tF,IAA3B0tF,EACTG,EAA+B/wC,UAAY4wC,MAE3C,IAAwB,cAAlBvxF,KAAK00B,KAAKzvB,UAA8CpB,KAAtB7D,KAAK00B,KAAK+b,QAChD,KAAM,IAAIpsC,OAAM,sCAAwCrE,KAAKK,GAIjEL,MAAKuxF,wBAA0BA,GAYrC,GAPIvxF,KAAKgO,QAAQsjF,UACfzE,EAAmB7sF,KAAKgO,QAAQsjF,SAAS15B,KAAK53D,MAC9CywC,EAAUo8C,EAAiBlb,EAAU9pE,EAAS7H,KAAK00B,OAEnD+b,EAAUzwC,KAAK00B,KAAK+b,QAGlBA,YAAmBhsC,WAAYgsC,YAAmBq8C,UACpDD,EAAiBlb,EAAU9pE,OACtB,CACL,GAAIy4D,GAAUtgE,KAAK6xF,iBAAiB7xF,KAAKywC,WAAazwC,KAAK6xF,iBAAiBphD,EAC5E,IAAI6vB,EAAS,CAEX,GAAI7vB,YAAmBq8C,SACrBjlF,EAAQ84C,UAAY,GACpB94C,EAAQ6I,YAAY+/B,OACf,QAAe5sC,IAAX4sC,EACT5oC,EAAQ84C,UAAYlQ,MAEpB,IAAwB,cAAlBzwC,KAAK00B,KAAKzvB,UAA8CpB,KAAtB7D,KAAK00B,KAAK+b,QAChD,KAAM,IAAIpsC,OAAM,sCAAwCrE,KAAKK,GAGjEL,MAAKywC,QAAUA,KAUrBm8B,EAAKv6D,UAAU+9E,sBAAwB,SAAUvoF,GAC/C,GAAI7H,KAAKgO,QAAQ8jF,gBAAkB9xF,KAAKgO,QAAQ8jF,eAAeluF,OAAS,EAAG,CACzE,GAAImuF,KAEJ,IAAI5tF,MAAMC,QAAQpE,KAAKgO,QAAQ8jF,gBAC7BC,EAAa/xF,KAAKgO,QAAQ8jF,mBACrB,CAAA,GAAmC,OAA/B9xF,KAAKgO,QAAQ8jF,eAGtB,MAFAC,IAAa,EAAIzwF,EAAgB,SAAGtB,KAAK00B,MAK3C,IAAK,GAAI3wB,GAAI,EAAGA,EAAIguF,EAAWnuF,OAAQG,IAAK,CAC1C,GAAIkR,GAAO88E,EAAWhuF,GAClBxB,EAAQvC,KAAK00B,KAAKzf,EAET,OAAT1S,EACFsF,EAAQmqF,aAAa,QAAU/8E,EAAM1S,GAErCsF,EAAQoqF,gBAAgB,QAAUh9E,MAW1C23D,EAAKv6D,UAAUg+E,aAAe,SAAUxoF,GAElC7H,KAAKqM,QACP1L,EAAKgM,cAAc9E,EAAS7H,KAAKqM,OACjCrM,KAAKqM,MAAQ,MAIXrM,KAAK00B,KAAKroB,QACZ1L,EAAK6L,WAAW3E,EAAS7H,KAAK00B,KAAKroB,OACnCrM,KAAKqM,MAAQrM,KAAK00B,KAAKroB,QAU3BugE,EAAKv6D,UAAUw/E,iBAAmB,SAAUphD,GAC1C,MAAuB,gBAAZA,GAA6BA,EACpCA,GAAW,aAAeA,GAAgBA,EAAQyhD,UAC/CzhD,GAMTm8B,EAAKv6D,UAAU2+E,kBAAoB,WAC7BhxF,KAAKgO,UAC8B,iBAA1BhO,MAAKgO,QAAQwyE,SACtBxgF,KAAKwgF,UACHC,WAAYzgF,KAAKgO,QAAQwyE,SACzBE,YAAa1gF,KAAKgO,QAAQwyE,SAC1B5sC,OAAQ5zC,KAAKgO,QAAQwyE,UAEsC,YAApD,EAAIh/E,EAAkB,SAAGxB,KAAKgO,QAAQwyE,YAC/CxgF,KAAKwgF,YACL7/E,EAAKsD,iBAAiB,aAAc,cAAe,UAAWjE,KAAKwgF,SAAUxgF,KAAKgO,QAAQwyE,YAIzFxgF,KAAKgO,SAAYhO,KAAKgO,QAAQwyE,WAAoD,IAAxCxgF,KAAKgO,QAAQwyE,SAASG,eAC/D3gF,KAAK00B,OAC2B,iBAAvB10B,MAAK00B,KAAK8rD,SACnBxgF,KAAKwgF,UACHC,WAAYzgF,KAAK00B,KAAK8rD,SACtBE,YAAa1gF,KAAK00B,KAAK8rD,SACvB5sC,OAAQ5zC,KAAK00B,KAAK8rD,UAEsC,YAAjD,EAAIh/E,EAAkB,SAAGxB,KAAK00B,KAAK8rD,YAG5CxgF,KAAKwgF,YACL7/E,EAAKsD,iBAAiB,aAAc,cAAe,UAAWjE,KAAKwgF,SAAUxgF,KAAK00B,KAAK8rD,aAU/F5T,EAAKv6D,UAAUogE,aAAe,WAC5B,MAAO,IAOT7F,EAAKv6D,UAAUkgE,cAAgB,WAC7B,MAAO,IAOT3F,EAAKv6D,UAAUm3E,SAAW,WACxB,MAAOxpF,MAAK00B,KAAKipD,OAGnB99E,EAAOD,QAAUgtE,GAIb,SAAU/sE,EAAQD,EAASM,GAmB/B,QAAS+sE,GAAgBqG,EAAS5+C,EAAMg7C,GACtClC,EAAMjtE,KAAKP,KAAMszE,EAAS5+C,EAAMg7C,GAEhC1vE,KAAKoQ,MAAQ,EACbpQ,KAAKqQ,OAAS,EACdrQ,KAAKsG,IAAM,EACXtG,KAAKkG,KAAO,EArBd,GAAI/E,GAAUjB,EAAoB,IAE9BkB,EAEJ,SAAgCN,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFnDK,GAKlCqsE,GADOttE,EAAoB,GACnBA,EAAoB,KAiBhC+sE,GAAgB56D,WAAY,EAAIjR,EAAkB,SAAGosE,EAAMn7D,WAS3D46D,EAAgB56D,UAAUotC,OAAS,SAAUjE,EAAOyI,EAAQ4gC,GAG1D7kF,KAAKikF,aAAejkF,KAAK0tF,oBAAoB1tF,KAAKoO,aAAcpO,KAAKikF,aAAczoC,GAGnFx7C,KAAKoQ,MAAQpQ,KAAK+tD,IAAIriD,WAAWmF,YAGjC7Q,KAAK+tD,IAAIriD,WAAWW,MAAMgE,OAAS,GAGnC,KAAK,GAAItM,GAAI,EAAG4oB,EAAK3sB,KAAKikF,aAAargF,OAAQG,EAAI4oB,EAAI5oB,IAAK,CAC/C/D,KAAKikF,aAAalgF,GACxB8pF,YAAY5pC,GAGnB,OAhBc,GAsBhBgpB,EAAgB56D,UAAU+/D,KAAO,WAC1BpyE,KAAK+tD,IAAIriD,WAAW5C,YACvB9I,KAAK0vE,QAAQ3hB,IAAIriD,WAAWgF,YAAY1Q,KAAK+tD,IAAIriD,aAIrD7L,EAAOD,QAAUqtE,GAIb,SAAUptE,EAAQD,EAASM,GAiB/B,QAAS4sE,GAAQp4C,EAAMsgD,EAAYhnE,GAajC,GAZAhO,KAAKkE,OACH41C,KACE1pC,MAAO,EACPC,OAAQ,GAEVupC,MACExpC,MAAO,EACPC,OAAQ,IAGZrQ,KAAKgO,QAAUA,EAEX0mB,OACgB7wB,IAAd6wB,EAAKuwB,MACP,KAAM,IAAI5gD,OAAM,oCAAsCqwB,EAI1Dk4C,GAAKrsE,KAAKP,KAAM00B,EAAMsgD,EAAYhnE,GAhCpC,GAAI4+D,GAAO1sE,EAAoB,IACpBA,GAAoB,EAkC/B4sE,GAAQz6D,UAAY,GAAIu6D,GAAK,KAAM,KAAM,MAOzCE,EAAQz6D,UAAU2xE,UAAY,SAAUxoC,GAEtC,GACIskC,GAAQ9/E,KAAKgO,QAAQ8xE,MACrBqS,EAAYnyF,KAAKoQ,MAAQorC,EAAMy6B,yBAUnC,OARa,SAAT6J,EACU9/E,KAAK00B,KAAKuwB,MAAM/hC,UAAYs4B,EAAMyJ,OAASjlD,KAAK00B,KAAKuwB,MAAM/hC,UAAYivE,EAAY32C,EAAM0J,IACnF,QAAT46B,EACG9/E,KAAK00B,KAAKuwB,MAAM/hC,UAAYivE,EAAY32C,EAAMyJ,OAASjlD,KAAK00B,KAAKuwB,MAAM/hC,UAAYs4B,EAAM0J,IAGzFllD,KAAK00B,KAAKuwB,MAAM/hC,UAAYivE,EAAY,EAAI32C,EAAMyJ,OAASjlD,KAAK00B,KAAKuwB,MAAM/hC,UAAYivE,EAAY,EAAI32C,EAAM0J,KAQ7H4nB,EAAQz6D,UAAUotC,OAAS,WACzB,GAAIsO,GAAM/tD,KAAK+tD,GA6Bf,IA5BKA,IAEH/tD,KAAK+tD,OACLA,EAAM/tD,KAAK+tD,IAGXA,EAAIg1B,IAAM7yE,SAASC,cAAc,OAGjC49C,EAAItd,QAAUvgC,SAASC,cAAc,OACrC49C,EAAItd,QAAQ/pC,UAAY,mBACxBqnD,EAAIg1B,IAAIryE,YAAYq9C,EAAItd,SAGxBsd,EAAInU,KAAO1pC,SAASC,cAAc,OAClC49C,EAAInU,KAAKlzC,UAAY,WAGrBqnD,EAAIjU,IAAM5pC,SAASC,cAAc,OACjC49C,EAAIjU,IAAIpzC,UAAY,UAGpBqnD,EAAIg1B,IAAI,iBAAmB/iF,KAE3BA,KAAK2jF,OAAQ,IAIV3jF,KAAKgJ,OACR,KAAM,IAAI3E,OAAM,yCAElB,KAAK0pD,EAAIg1B,IAAIj6E,WAAY,CACvB,GAAIsqE,GAAapzE,KAAKgJ,OAAO+kD,IAAIqlB,UACjC,KAAKA,EAAY,KAAM,IAAI/uE,OAAM,iEACjC+uE,GAAW1iE,YAAYq9C,EAAIg1B,KAE7B,IAAKh1B,EAAInU,KAAK9wC,WAAY,CACxB,GAAI4C,GAAa1L,KAAKgJ,OAAO+kD,IAAIriD,UACjC,KAAKA,EAAY,KAAM,IAAIrH,OAAM,iEACjCqH,GAAWgF,YAAYq9C,EAAInU,MAE7B,IAAKmU,EAAIjU,IAAIhxC,WAAY,CACvB,GAAIqlE,GAAOnuE,KAAKgJ,OAAO+kD,IAAIogB,IAC3B,KAAKziE,EAAY,KAAM,IAAIrH,OAAM,2DACjC8pE,GAAKz9D,YAAYq9C,EAAIjU,KAQvB,GANA95C,KAAK4jF,WAAY,EAMb5jF,KAAK2jF,MAAO,CACd3jF,KAAKmwF,gBAAgBnwF,KAAK+tD,IAAItd,SAC9BzwC,KAAKowF,sBAAsBpwF,KAAK+tD,IAAIg1B,KACpC/iF,KAAKqwF,aAAarwF,KAAK+tD,IAAIg1B,IAE3B,IAAIvC,GAAWxgF,KAAKwgF,SAASC,YAAczgF,KAAKwgF,SAASE,YAGrDh6E,GAAa1G,KAAK00B,KAAKhuB,UAAY,IAAM1G,KAAK00B,KAAKhuB,UAAY,KAAO1G,KAAK+lF,SAAW,gBAAkB,KAAOvF,EAAW,gBAAkB,gBAChJzyB,GAAIg1B,IAAIr8E,UAAY,mBAAqBA,EACzCqnD,EAAInU,KAAKlzC,UAAY,oBAAsBA,EAC3CqnD,EAAIjU,IAAIpzC,UAAY,mBAAqBA,CAKzC,IAAI0rF,GAAgBrkC,EAAIg1B,IAAI12E,MAAMjG,MAC9BisF,EAAetkC,EAAIg1B,IAAI12E,MAAMnG,IAC7BlG,MAAKgO,QAAQsgE,IACfvgB,EAAIg1B,IAAI12E,MAAMjG,MAAQ,MAEtB2nD,EAAIg1B,IAAI12E,MAAMnG,KAAO,MAIvBlG,KAAKkE,MAAM41C,IAAIzpC,OAAS09C,EAAIjU,IAAIoU,aAChCluD,KAAKkE,MAAM41C,IAAI1pC,MAAQ29C,EAAIjU,IAAIjpC,YAC/B7Q,KAAKkE,MAAM01C,KAAKxpC,MAAQ29C,EAAInU,KAAK/oC,YACjC7Q,KAAKoQ,MAAQ29C,EAAIg1B,IAAIlyE,YACrB7Q,KAAKqQ,OAAS09C,EAAIg1B,IAAI70B,aAGlBluD,KAAKgO,QAAQsgE,IACfvgB,EAAIg1B,IAAI12E,MAAMjG,MAAQgsF,EAEtBrkC,EAAIg1B,IAAI12E,MAAMnG,KAAOmsF,EAGvBryF,KAAK2jF,OAAQ,EAGf3jF,KAAKuwF,gCAAgCxiC,EAAIg1B,KACzC/iF,KAAKywF,qBACLzwF,KAAKwwF,qBAAqBziC,EAAIg1B,MAOhCjW,EAAQz6D,UAAU+/D,KAAO,WAClBpyE,KAAK4jF,WACR5jF,KAAKy/C,UAOTqtB,EAAQz6D,UAAUP,KAAO,WACvB,GAAI9R,KAAK4jF,UAAW,CAClB,GAAI71B,GAAM/tD,KAAK+tD,GAEXA,GAAIg1B,IAAIj6E,YAAYilD,EAAIg1B,IAAIj6E,WAAW5G,YAAY6rD,EAAIg1B,KACvDh1B,EAAInU,KAAK9wC,YAAYilD,EAAInU,KAAK9wC,WAAW5G,YAAY6rD,EAAInU,MACzDmU,EAAIjU,IAAIhxC,YAAYilD,EAAIjU,IAAIhxC,WAAW5G,YAAY6rD,EAAIjU,KAE3D95C,KAAK4jF,WAAY,IAQrB9W,EAAQz6D,UAAUggE,YAAc,WAC9B,GAAIptB,GAAQjlD,KAAKg1E,WAAWhG,SAAShvE,KAAK00B,KAAKuwB,OAC3C66B,EAAQ9/E,KAAKgO,QAAQ8xE,KAGZ,UAATA,EACE9/E,KAAKgO,QAAQsgE,KACftuE,KAAKoG,MAAQ6+C,EAAQjlD,KAAKoQ,MAG1BpQ,KAAK+tD,IAAIg1B,IAAI12E,MAAMjG,MAAQpG,KAAKoG,MAAQ,KACxCpG,KAAK+tD,IAAInU,KAAKvtC,MAAMjG,MAAQ6+C,EAAQjlD,KAAKkE,MAAM01C,KAAKxpC,MAAQ,KAC5DpQ,KAAK+tD,IAAIjU,IAAIztC,MAAMjG,MAAQ6+C,EAAQjlD,KAAKkE,MAAM01C,KAAKxpC,MAAQ,EAAIpQ,KAAKkE,MAAM41C,IAAI1pC,MAAQ,EAAI,OAE1FpQ,KAAKkG,KAAO++C,EAAQjlD,KAAKoQ,MAGzBpQ,KAAK+tD,IAAIg1B,IAAI12E,MAAMnG,KAAOlG,KAAKkG,KAAO,KACtClG,KAAK+tD,IAAInU,KAAKvtC,MAAMnG,KAAO++C,EAAQjlD,KAAKkE,MAAM01C,KAAKxpC,MAAQ,KAC3DpQ,KAAK+tD,IAAIjU,IAAIztC,MAAMnG,KAAO++C,EAAQjlD,KAAKkE,MAAM01C,KAAKxpC,MAAQ,EAAIpQ,KAAKkE,MAAM41C,IAAI1pC,MAAQ,EAAI,MAEzE,QAAT0vE,EACL9/E,KAAKgO,QAAQsgE,KACftuE,KAAKoG,MAAQ6+C,EAGbjlD,KAAK+tD,IAAIg1B,IAAI12E,MAAMjG,MAAQpG,KAAKoG,MAAQ,KACxCpG,KAAK+tD,IAAInU,KAAKvtC,MAAMjG,MAAQ6+C,EAAQ,KACpCjlD,KAAK+tD,IAAIjU,IAAIztC,MAAMjG,MAAQ6+C,EAAQjlD,KAAKkE,MAAM01C,KAAKxpC,MAAQ,EAAIpQ,KAAKkE,MAAM41C,IAAI1pC,MAAQ,EAAI,OAE1FpQ,KAAKkG,KAAO++C,EAGZjlD,KAAK+tD,IAAIg1B,IAAI12E,MAAMnG,KAAOlG,KAAKkG,KAAO,KACtClG,KAAK+tD,IAAInU,KAAKvtC,MAAMnG,KAAO++C,EAAQ,KACnCjlD,KAAK+tD,IAAIjU,IAAIztC,MAAMnG,KAAO++C,EAAQjlD,KAAKkE,MAAM01C,KAAKxpC,MAAQ,EAAIpQ,KAAKkE,MAAM41C,IAAI1pC,MAAQ,EAAI,MAIvFpQ,KAAKgO,QAAQsgE,KACftuE,KAAKoG,MAAQ6+C,EAAQjlD,KAAKoQ,MAAQ,EAGlCpQ,KAAK+tD,IAAIg1B,IAAI12E,MAAMjG,MAAQpG,KAAKoG,MAAQ,KACxCpG,KAAK+tD,IAAInU,KAAKvtC,MAAMjG,MAAQ6+C,EAAQjlD,KAAKkE,MAAM01C,KAAKxpC,MAAQ,KAC5DpQ,KAAK+tD,IAAIjU,IAAIztC,MAAMjG,MAAQ6+C,EAAQjlD,KAAKkE,MAAM41C,IAAI1pC,MAAQ,EAAI,OAE9DpQ,KAAKkG,KAAO++C,EAAQjlD,KAAKoQ,MAAQ,EAGjCpQ,KAAK+tD,IAAIg1B,IAAI12E,MAAMnG,KAAOlG,KAAKkG,KAAO,KACtClG,KAAK+tD,IAAInU,KAAKvtC,MAAMnG,KAAO++C,EAAQjlD,KAAKkE,MAAM01C,KAAKxpC,MAAQ,EAAI,KAC/DpQ,KAAK+tD,IAAIjU,IAAIztC,MAAMnG,KAAO++C,EAAQjlD,KAAKkE,MAAM41C,IAAI1pC,MAAQ,EAAI,OASnE08D,EAAQz6D,UAAUw7E,YAAc,WAC9B,GAAI3f,GAAcluE,KAAKgO,QAAQkgE,YAAYt/D,KACvCm0E,EAAM/iF,KAAK+tD,IAAIg1B,IACfnpC,EAAO55C,KAAK+tD,IAAInU,KAChBE,EAAM95C,KAAK+tD,IAAIjU,GAEnB,IAAmB,OAAfo0B,EACF6U,EAAI12E,MAAM/F,KAAOtG,KAAKsG,KAAO,GAAK,KAElCszC,EAAKvtC,MAAM/F,IAAM;gBACjBszC,EAAKvtC,MAAMgE,OAASrQ,KAAKgJ,OAAO1C,IAAMtG,KAAKsG,IAAM,EAAI,KACrDszC,EAAKvtC,MAAMsyC,OAAS,OACf,CAEL,GAAI2zC,GAAgBtyF,KAAKgJ,OAAO0mE,QAAQxrE,MAAMmM,OAC1C89C,EAAamkC,EAAgBtyF,KAAKgJ,OAAO1C,IAAMtG,KAAKgJ,OAAOqH,OAASrQ,KAAKsG,GAE7Ey8E,GAAI12E,MAAM/F,KAAOtG,KAAKgJ,OAAOqH,OAASrQ,KAAKsG,IAAMtG,KAAKqQ,QAAU,GAAK,KACrEupC,EAAKvtC,MAAM/F,IAAMgsF,EAAgBnkC,EAAa,KAC9CvU,EAAKvtC,MAAMsyC,OAAS,IAGtB7E,EAAIztC,MAAM/F,KAAOtG,KAAKkE,MAAM41C,IAAIzpC,OAAS,EAAI,MAO/Cy8D,EAAQz6D,UAAUogE,aAAe,WAC/B,MAAOzyE,MAAKoQ,MAAQ,GAOtB08D,EAAQz6D,UAAUkgE,cAAgB,WAChC,MAAOvyE,MAAKoQ,MAAQ,GAGtBvQ,EAAOD,QAAUktE,GAIb,SAAUjtE,EAAQD,EAASM,GAgB/B,QAAS6sE,GAAUr4C,EAAMsgD,EAAYhnE,GAenC,GAdAhO,KAAKkE,OACH41C,KACExzC,IAAK,EACL8J,MAAO,EACPC,OAAQ,GAEVogC,SACEpgC,OAAQ,EACRkiF,WAAY,EACZC,YAAa,IAGjBxyF,KAAKgO,QAAUA,EAEX0mB,OACgB7wB,IAAd6wB,EAAKuwB,MACP,KAAM,IAAI5gD,OAAM,oCAAsCqwB,EAI1Dk4C,GAAKrsE,KAAKP,KAAM00B,EAAMsgD,EAAYhnE,GAjCpC,GAAI4+D,GAAO1sE,EAAoB,IAoC/B6sE,GAAU16D,UAAY,GAAIu6D,GAAK,KAAM,KAAM,MAO3CG,EAAU16D,UAAU2xE,UAAY,SAAUxoC,GAExC,GAAI22C,GAAYnyF,KAAKoQ,MAAQorC,EAAMy6B,yBAEnC,OAAOj2E,MAAK00B,KAAKuwB,MAAM/hC,UAAYivE,EAAY32C,EAAMyJ,OAASjlD,KAAK00B,KAAKuwB,MAAQzJ,EAAM0J,KAMxF6nB,EAAU16D,UAAUotC,OAAS,WAC3B,GAAIsO,GAAM/tD,KAAK+tD,GA0Bf,IAzBKA,IAEH/tD,KAAK+tD,OACLA,EAAM/tD,KAAK+tD,IAGXA,EAAInzC,MAAQ1K,SAASC,cAAc,OAInC49C,EAAItd,QAAUvgC,SAASC,cAAc,OACrC49C,EAAItd,QAAQ/pC,UAAY,mBACxBqnD,EAAInzC,MAAMlK,YAAYq9C,EAAItd,SAG1Bsd,EAAIjU,IAAM5pC,SAASC,cAAc,OACjC49C,EAAInzC,MAAMlK,YAAYq9C,EAAIjU,KAG1BiU,EAAInzC,MAAM,iBAAmB5a,KAE7BA,KAAK2jF,OAAQ,IAIV3jF,KAAKgJ,OACR,KAAM,IAAI3E,OAAM,yCAElB,KAAK0pD,EAAInzC,MAAM9R,WAAY,CACzB,GAAIsqE,GAAapzE,KAAKgJ,OAAO+kD,IAAIqlB,UACjC,KAAKA,EACH,KAAM,IAAI/uE,OAAM,iEAElB+uE,GAAW1iE,YAAYq9C,EAAInzC,OAQ7B,GANA5a,KAAK4jF,WAAY,EAMb5jF,KAAK2jF,MAAO,CACd3jF,KAAKmwF,gBAAgBnwF,KAAK+tD,IAAItd,SAC9BzwC,KAAKowF,sBAAsBpwF,KAAK+tD,IAAInzC,OACpC5a,KAAKqwF,aAAarwF,KAAK+tD,IAAInzC,MAE3B,IAAI4lE,GAAWxgF,KAAKwgF,SAASC,YAAczgF,KAAKwgF,SAASE,YAErDh6E,GAAa1G,KAAK00B,KAAKhuB,UAAY,IAAM1G,KAAK00B,KAAKhuB,UAAY,KAAO1G,KAAK+lF,SAAW,gBAAkB,KAAOvF,EAAW,gBAAkB,gBAChJzyB,GAAInzC,MAAMlU,UAAY,qBAAuBA,EAC7CqnD,EAAIjU,IAAIpzC,UAAY,mBAAqBA,EAGzC1G,KAAKkE,MAAM41C,IAAI1pC,MAAQ29C,EAAIjU,IAAIjpC,YAC/B7Q,KAAKkE,MAAM41C,IAAIzpC,OAAS09C,EAAIjU,IAAIoU,aAChCluD,KAAKkE,MAAMusC,QAAQpgC,OAAS09C,EAAItd,QAAQyd,aAGpCluD,KAAKgO,QAAQsgE,IACfvgB,EAAItd,QAAQpkC,MAAMmmF,YAAc,EAAIxyF,KAAKkE,MAAM41C,IAAI1pC,MAAQ,KAE3D29C,EAAItd,QAAQpkC,MAAMkmF,WAAa,EAAIvyF,KAAKkE,MAAM41C,IAAI1pC,MAAQ,KAK5DpQ,KAAKoQ,MAAQ29C,EAAInzC,MAAM/J,YACvB7Q,KAAKqQ,OAAS09C,EAAInzC,MAAMszC,aAGxBH,EAAIjU,IAAIztC,MAAM/F,KAAOtG,KAAKqQ,OAASrQ,KAAKkE,MAAM41C,IAAIzpC,QAAU,EAAI,KAC5DrQ,KAAKgO,QAAQsgE,IACfvgB,EAAIjU,IAAIztC,MAAMjG,MAAQpG,KAAKkE,MAAM41C,IAAI1pC,MAAQ,EAAI,KAEjD29C,EAAIjU,IAAIztC,MAAMnG,KAAOlG,KAAKkE,MAAM41C,IAAI1pC,MAAQ,EAAI,KAGlDpQ,KAAK2jF,OAAQ,EAGf3jF,KAAKuwF,gCAAgCxiC,EAAInzC,OACzC5a,KAAKywF,qBACLzwF,KAAKwwF,qBAAqBziC,EAAInzC,QAOhCmyD,EAAU16D,UAAU+/D,KAAO,WACpBpyE,KAAK4jF,WACR5jF,KAAKy/C,UAOTstB,EAAU16D,UAAUP,KAAO,WACrB9R,KAAK4jF,YACH5jF,KAAK+tD,IAAInzC,MAAM9R,YACjB9I,KAAK+tD,IAAInzC,MAAM9R,WAAW5G,YAAYlC,KAAK+tD,IAAInzC,OAGjD5a,KAAK4jF,WAAY,IAQrB7W,EAAU16D,UAAUggE,YAAc,WAChC,GAAIptB,GAAQjlD,KAAKg1E,WAAWhG,SAAShvE,KAAK00B,KAAKuwB,MAE3CjlD,MAAKgO,QAAQsgE,KACftuE,KAAKoG,MAAQ6+C,EAAQjlD,KAAKkE,MAAM41C,IAAI1pC,MAGpCpQ,KAAK+tD,IAAInzC,MAAMvO,MAAMjG,MAAQpG,KAAKoG,MAAQ,OAE1CpG,KAAKkG,KAAO++C,EAAQjlD,KAAKkE,MAAM41C,IAAI1pC,MAGnCpQ,KAAK+tD,IAAInzC,MAAMvO,MAAMnG,KAAOlG,KAAKkG,KAAO,OAQ5C6mE,EAAU16D,UAAUw7E,YAAc,WAChC,GAAI3f,GAAcluE,KAAKgO,QAAQkgE,YAAYt/D,KACvCgM,EAAQ5a,KAAK+tD,IAAInzC,KAEnBA,GAAMvO,MAAM/F,IADK,OAAf4nE,EACgBluE,KAAKsG,IAAM,KAEXtG,KAAKgJ,OAAOqH,OAASrQ,KAAKsG,IAAMtG,KAAKqQ,OAAS,MAQpE08D,EAAU16D,UAAUogE,aAAe,WACjC,MAAOzyE,MAAKkE,MAAM41C,IAAI1pC,OAOxB28D,EAAU16D,UAAUkgE,cAAgB,WAClC,MAAOvyE,MAAKkE,MAAM41C,IAAI1pC,OAGxBvQ,EAAOD,QAAUmtE,GAIb,SAAUltE,EAAQD,EAASM,GAoB/B,QAAS2sE,GAAen4C,EAAMsgD,EAAYhnE,GASxC,GARAhO,KAAKkE,OACHusC,SACErgC,MAAO,IAGXpQ,KAAKyQ,UAAW,EAGZikB,EAAM,CACR,OAAkB7wB,IAAd6wB,EAAKuwB,MACP,KAAM,IAAI5gD,OAAM,oCAAsCqwB,EAAKr0B,GAE7D,QAAgBwD,IAAZ6wB,EAAKwwB,IACP,KAAM,IAAI7gD,OAAM,kCAAoCqwB,EAAKr0B,IAI7DusE,EAAKrsE,KAAKP,KAAM00B,EAAMsgD,EAAYhnE,GAlCpC,GACI4+D,IADS1sE,EAAoB,KACtBA,EAAoB,MAC3B+sE,EAAkB/sE,EAAoB,KACtC8sE,EAAY9sE,EAAoB,IAkCpC2sE,GAAex6D,UAAY,GAAIu6D,GAAK,KAAM,KAAM,MAEhDC,EAAex6D,UAAU49E,cAAgB,0BACzCpjB,EAAex6D,UAAUuT,OAAQ,EAOjCinD,EAAex6D,UAAU2xE,UAAY,SAAUxoC,GAE7C,MAAOx7C,MAAK00B,KAAKuwB,MAAQzJ,EAAM0J,KAAOllD,KAAK00B,KAAKwwB,IAAM1J,EAAMyJ,OAM9D4nB,EAAex6D,UAAUotC,OAAS,WAChC,GAAIsO,GAAM/tD,KAAK+tD,GA4Bf,IA3BKA,IAEH/tD,KAAK+tD,OACLA,EAAM/tD,KAAK+tD,IAGXA,EAAIg1B,IAAM7yE,SAASC,cAAc,OAIjC49C,EAAI5P,MAAQjuC,SAASC,cAAc,OACnC49C,EAAI5P,MAAMz3C,UAAY,oBACtBqnD,EAAIg1B,IAAIryE,YAAYq9C,EAAI5P,OAGxB4P,EAAItd,QAAUvgC,SAASC,cAAc,OACrC49C,EAAItd,QAAQ/pC,UAAY,mBACxBqnD,EAAI5P,MAAMztC,YAAYq9C,EAAItd,SAM1BzwC,KAAK2jF,OAAQ,IAIV3jF,KAAKgJ,OACR,KAAM,IAAI3E,OAAM,yCAElB,KAAK0pD,EAAIg1B,IAAIj6E,WAAY,CACvB,GAAI4C,GAAa1L,KAAKgJ,OAAO+kD,IAAIriD,UACjC,KAAKA,EACH,KAAM,IAAIrH,OAAM,iEAElBqH,GAAWgF,YAAYq9C,EAAIg1B,KAQ7B,GANA/iF,KAAK4jF,WAAY,EAMb5jF,KAAK2jF,MAAO,CACd3jF,KAAKmwF,gBAAgBnwF,KAAK+tD,IAAItd,SAC9BzwC,KAAKowF,sBAAsBpwF,KAAK+tD,IAAItd,SACpCzwC,KAAKqwF,aAAarwF,KAAK+tD,IAAIg1B,IAG3B,IAAIr8E,IAAa1G,KAAK00B,KAAKhuB,UAAY,IAAM1G,KAAK00B,KAAKhuB,UAAY,KAAO1G,KAAK+lF,SAAW,gBAAkB,GAC5Gh4B,GAAIg1B,IAAIr8E,UAAY1G,KAAKiwF,cAAgBvpF,EAGzC1G,KAAKyQ,SAA6D,WAAlDjI,OAAOimE,iBAAiB1gB,EAAItd,SAAShgC,SAGrDzQ,KAAKkE,MAAMusC,QAAQrgC,MAAQpQ,KAAK+tD,IAAItd,QAAQ5/B,YAC5C7Q,KAAKqQ,OAAS,EAEdrQ,KAAK2jF,OAAQ,IAQjB9W,EAAex6D,UAAU+/D,KAAOpF,EAAU36D,UAAU+/D,KAMpDvF,EAAex6D,UAAUP,KAAOk7D,EAAU36D,UAAUP,KAMpD+6D,EAAex6D,UAAUggE,YAAcrF,EAAU36D,UAAUggE,YAM3DxF,EAAex6D,UAAUw7E,YAAc,SAAU5pC,GAC/C,GAAI5zC,GACA69D,EAAcluE,KAAKgO,QAAQkgE,YAAYt/D,IAG3C,QAA2B/K,KAAvB7D,KAAK00B,KAAKq5D,SAAwB,CAGpC,GAAI0E,GAAezyF,KAAK00B,KAAKq5D,SACzB5B,EAAYnsF,KAAKgJ,OAAOmjF,SACRA,GAAUsG,GAAc1/E,KAE5C/S,MAAK+tD,IAAIg1B,IAAI12E,MAAMgE,OAASrQ,KAAKgJ,OAAOmjF,UAAUsG,GAAcpiF,OAAS,KAGvErQ,KAAK+tD,IAAIg1B,IAAI12E,MAAM/F,IADF,OAAf4nE,EACuBluE,KAAKgJ,OAAO1C,IAAMtG,KAAKgJ,OAAOmjF,UAAUsG,GAAcnsF,IAAM,KAE5DtG,KAAKgJ,OAAO1C,IAAMtG,KAAKgJ,OAAOqH,OAASrQ,KAAKgJ,OAAOmjF,UAAUsG,GAAcnsF,IAAMtG,KAAKgJ,OAAOmjF,UAAUsG,GAAcpiF,OAAS,KAEzJrQ,KAAK+tD,IAAIg1B,IAAI12E,MAAMsyC,OAAS,OAKtB3+C,MAAKgJ,iBAAkBikE,IAEzB58D,EAAS5N,KAAKJ,IAAIrC,KAAKgJ,OAAOqH,OAAQrQ,KAAKgJ,OAAO0mE,QAAQ/+D,KAAKi+D,SAAS/yB,OAAOxrC,OAAQrQ,KAAKgJ,OAAO0mE,QAAQ/+D,KAAKi+D,SAASgE,gBAAgBviE,QACzIrQ,KAAK+tD,IAAIg1B,IAAI12E,MAAMsyC,OAAwB,UAAfuvB,EAA0B,IAAM,GAC5DluE,KAAK+tD,IAAIg1B,IAAI12E,MAAM/F,IAAqB,OAAf4nE,EAAuB,IAAM,KAEtD79D,EAASrQ,KAAKgJ,OAAOqH,OAErBrQ,KAAK+tD,IAAIg1B,IAAI12E,MAAM/F,IAAMtG,KAAKgJ,OAAO1C,IAAM,KAC3CtG,KAAK+tD,IAAIg1B,IAAI12E,MAAMsyC,OAAS,GAGlC3+C,MAAK+tD,IAAIg1B,IAAI12E,MAAMgE,OAASA,EAAS,MAGvCxQ,EAAOD,QAAUitE,GAIb,SAAUhtE,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GASvChQ,EAAQ,WACV,QAASA,GAAMxsC,EAAWmrC,IACxB,EAAIoR,EAA0B,SAAG3yF,KAAM4iF,GAEvC5iF,KAAKo2C,UAAYA,EACjBp2C,KAAKuhF,eAAiBA,GAAkB,MAExCvhF,KAAKi1B,EAAI,EACTj1B,KAAK6uB,EAAI,EACT7uB,KAAKy5C,QAAU,EACfz5C,KAAKo5E,QAAS,EAGdp5E,KAAKm+C,MAAQjuC,SAASC,cAAc,OACpCnQ,KAAKm+C,MAAMz3C,UAAY,cACvB1G,KAAKo2C,UAAU1lC,YAAY1Q,KAAKm+C,OA4HlC,OAnHA,EAAI00C,EAAuB,SAAGjQ,IAC5Br7E,IAAK,cACLhF,MAAO,SAAqB0yB,EAAGpG,GAC7B7uB,KAAKi1B,EAAIjrB,SAASirB,GAClBj1B,KAAK6uB,EAAI7kB,SAAS6kB,MASpBtnB,IAAK,UACLhF,MAAO,SAAiBkuC,GAClBA,YAAmBq8C,UACrB9sF,KAAKm+C,MAAMwC,UAAY,GACvB3gD,KAAKm+C,MAAMztC,YAAY+/B,IAEvBzwC,KAAKm+C,MAAMwC,UAAYlQ,KAU3BlpC,IAAK,OACLhF,MAAO,SAAcuwF,GAKnB,OAJejvF,KAAXivF,IACFA,GAAS,IAGI,IAAXA,EAAiB,CACnB,GAAIziF,GAASrQ,KAAKm+C,MAAMqD,aACpBpxC,EAAQpQ,KAAKm+C,MAAMptC,YACnBq9D,EAAYpuE,KAAKm+C,MAAMr1C,WAAW04C,aAClC8uC,EAAWtwF,KAAKm+C,MAAMr1C,WAAWiI,YAEjC7K,EAAO,EACPI,EAAM,CAEV,IAA2B,QAAvBtG,KAAKuhF,eAA0B,CACjC,GAAIwR,IAAS,EACTC,GAAQ,CAERhzF,MAAK6uB,EAAIxe,EAASrQ,KAAKy5C,UACzBu5C,GAAQ,GAGNhzF,KAAKi1B,EAAI7kB,EAAQkgF,EAAWtwF,KAAKy5C,UACnCs5C,GAAS,GAIT7sF,EADE6sF,EACK/yF,KAAKi1B,EAAI7kB,EAETpQ,KAAKi1B,EAIZ3uB,EADE0sF,EACIhzF,KAAK6uB,EAAIxe,EAETrQ,KAAK6uB,MAGbvoB,GAAMtG,KAAK6uB,EAAIxe,EACX/J,EAAM+J,EAASrQ,KAAKy5C,QAAU20B,IAChC9nE,EAAM8nE,EAAY/9D,EAASrQ,KAAKy5C,SAE9BnzC,EAAMtG,KAAKy5C,UACbnzC,EAAMtG,KAAKy5C,SAGbvzC,EAAOlG,KAAKi1B,EACR/uB,EAAOkK,EAAQpQ,KAAKy5C,QAAU62C,IAChCpqF,EAAOoqF,EAAWlgF,EAAQpQ,KAAKy5C,SAE7BvzC,EAAOlG,KAAKy5C,UACdvzC,EAAOlG,KAAKy5C,QAIhBz5C,MAAKm+C,MAAM9xC,MAAMnG,KAAOA,EAAO,KAC/BlG,KAAKm+C,MAAM9xC,MAAM/F,IAAMA,EAAM,KAC7BtG,KAAKm+C,MAAM9xC,MAAMmE,WAAa,UAC9BxQ,KAAKo5E,QAAS,MAEdp5E,MAAK8R,UASTvK,IAAK,OACLhF,MAAO,WACLvC,KAAKo5E,QAAS,EACdp5E,KAAKm+C,MAAM9xC,MAAMmE,WAAa,YAQhCjJ,IAAK,UACLhF,MAAO,WACLvC,KAAKm+C,MAAMr1C,WAAW5G,YAAYlC,KAAKm+C,WAGpCykC,IAGThjF,GAAiB,QAAIgjF,GAIjB,SAAU/iF,EAAQD,GAItBA,EAAQmB,YAAa,EAErBnB,EAAQoB,QAAU,SAAUiyF,EAAU/+E,GACpC,KAAM++E,YAAoB/+E,IACxB,KAAM,IAAI3P,WAAU,uCAMpB,SAAU1E,EAAQD,EAASM,GAI/BN,EAAQmB,YAAa,CAErB,IAAImyF,GAAkBhzF,EAAoB,KAEtCizF,EAEJ,SAAgCryF,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAFzCoyF,EAI9CtzF,GAAQoB,QAAU,WAChB,QAASkY,GAAiBvQ,EAAQzE,GAChC,IAAK,GAAIH,GAAI,EAAGA,EAAIG,EAAMN,OAAQG,IAAK,CACrC,GAAIkU,GAAa/T,EAAMH,EACvBkU,GAAWJ,WAAaI,EAAWJ,aAAc,EACjDI,EAAWH,cAAe,EACtB,SAAWG,KAAYA,EAAWF,UAAW,IACjD,EAAIo7E,EAAiBnyF,SAAS2H,EAAQsP,EAAW1Q,IAAK0Q,IAI1D,MAAO,UAAU/D,EAAak/E,EAAYC,GAGxC,MAFID,IAAYl6E,EAAiBhF,EAAY7B,UAAW+gF,GACpDC,GAAan6E,EAAiBhF,EAAam/E,GACxCn/E,OAMP,SAAUrU,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,KAAMa,YAAY,IAIhE,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,IACpB,IAAIwb,GAAUxb,EAAoB,IAAIuE,MACtC5E,GAAOD,QAAU,SAAwBuT,EAAI5L,EAAK+rF,GAChD,MAAO53E,GAAQpE,eAAenE,EAAI5L,EAAK+rF,KAMrC,SAAUzzF,EAAQD,EAASM,GAE/B,GAAIqT,GAAUrT,EAAoB,GAElCqT,GAAQA,EAAQuC,EAAIvC,EAAQ6B,GAAKlV,EAAoB,IAAK,UAAYoX,eAAgBpX,EAAoB,IAAI6M,KAK1G,SAAUlN,EAAQD,EAASM,GAwB/B,QAAS0tE,GAASj9D,EAAM3C,GACtBhO,KAAK+tD,KACHqlB,WAAY,KACZmgB,SACAC,cACAC,cACAlkD,WACEgkD,SACAC,cACAC,gBAGJzzF,KAAKkE,OACHs3C,OACEyJ,MAAO,EACPC,IAAK,EACLqlC,YAAa,GAEfmJ,QAAS,GAGX1zF,KAAKguE,gBACHE,aACEC,KAAM,UAERwlB,iBAAiB,EACjBC,iBAAiB,EACjBC,cAAe,EACfpuF,OAAQinE,EAAS+d,OACjBhpF,OAAQA,EACRstE,SAAU,MAEZ/uE,KAAKgO,QAAUrN,EAAKC,UAAWZ,KAAKguE,gBAEpChuE,KAAK2Q,KAAOA,EAGZ3Q,KAAKmB,UAELnB,KAAKkxC,WAAWljC,GA3DlB,GAAIzM,GAAWrB,EAAoB,IAE/BsB,EAEJ,SAAgCV,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFnDS,GAIlCZ,EAAOT,EAAoB,GAC3BgtE,EAAYhtE,EAAoB,KAChCwsE,EAAWxsE,EAAoB,KAC/BusE,EAAWvsE,EAAoB,KAC/BuB,EAASvB,EAAoB,GAoDjC0tE,GAASv7D,UAAY,GAAI66D,GAUzBU,EAASv7D,UAAU6+B,WAAa,SAAUljC,GACpCA,IAEFrN,EAAKsD,iBAAiB,kBAAmB,kBAAmB,gBAAiB,cAAe,WAAY,SAAU,OAAQjE,KAAKgO,QAASA,GAGxIrN,EAAK2D,qBAAqB,UAAWtE,KAAKgO,QAASA,GAE/C,eAAiBA,KACgB,gBAAxBA,GAAQkgE,YACjBluE,KAAKgO,QAAQkgE,YAAYC,KAAOngE,EAAQkgE,YACmB,YAAlD,EAAI1sE,EAAkB,SAAGwM,EAAQkgE,cAA6B,QAAUlgE,GAAQkgE,cACzFluE,KAAKgO,QAAQkgE,YAAYC,KAAOngE,EAAQkgE,YAAYC,OAMpD,UAAYngE,KACe,kBAAlBvM,GAAO8f,OAEhB9f,EAAO8f,OAAOvT,EAAQuT,QAEtB9f,EAAO8oC,KAAKv8B,EAAQuT,WAS5BqsD,EAASv7D,UAAUlR,QAAU,WAC3BnB,KAAK+tD,IAAIqlB,WAAaljE,SAASC,cAAc,OAC7CnQ,KAAK+tD,IAAIriD,WAAawE,SAASC,cAAc,OAE7CnQ,KAAK+tD,IAAIqlB,WAAW1sE,UAAY,+BAChC1G,KAAK+tD,IAAIriD,WAAWhF,UAAY,gCAMlCknE,EAASv7D,UAAUi/B,QAAU,WAEvBtxC,KAAK+tD,IAAIqlB,WAAWtqE,YACtB9I,KAAK+tD,IAAIqlB,WAAWtqE,WAAW5G,YAAYlC,KAAK+tD,IAAIqlB,YAElDpzE,KAAK+tD,IAAIriD,WAAW5C,YACtB9I,KAAK+tD,IAAIriD,WAAW5C,WAAW5G,YAAYlC,KAAK+tD,IAAIriD,YAGtD1L,KAAK2Q,KAAO,MAOdi9D,EAASv7D,UAAUotC,OAAS,WAC1B,GAAIv7C,GAAQlE,KAAKkE,MACbkvE,EAAapzE,KAAK+tD,IAAIqlB,WACtB1nE,EAAa1L,KAAK+tD,IAAIriD,WAGtB1C,EAA0C,OAAjChJ,KAAKgO,QAAQkgE,YAAYC,KAAgBnuE,KAAK2Q,KAAKo9C,IAAIznD,IAAMtG,KAAK2Q,KAAKo9C,IAAIpP,OACpFm1C,EAAgB1gB,EAAWtqE,aAAeE,CAG9ChJ,MAAK+zF,oBAGL,IAAIJ,GAAkB3zF,KAAKgO,QAAQ2lF,iBAAqD,SAAlC3zF,KAAKgO,QAAQkgE,YAAYC,KAC3EylB,EAAkB5zF,KAAKgO,QAAQ4lF,iBAAqD,SAAlC5zF,KAAKgO,QAAQkgE,YAAYC,IAG/EjqE,GAAM8vF,iBAAmBL,EAAkBzvF,EAAM+vF,gBAAkB,EACnE/vF,EAAMgwF,iBAAmBN,EAAkB1vF,EAAMiwF,gBAAkB,EACnEjwF,EAAMmM,OAASnM,EAAM8vF,iBAAmB9vF,EAAMgwF,iBAC9ChwF,EAAMkM,MAAQgjE,EAAWviE,YAEzB3M,EAAMkwF,gBAAkBp0F,KAAK2Q,KAAKi+D,SAASlvE,KAAK2Q,OAASnM,EAAMgwF,kBAAqD,OAAjCl0F,KAAKgO,QAAQkgE,YAAYC,KAAgBnuE,KAAK2Q,KAAKi+D,SAASjwB,OAAOtuC,OAASrQ,KAAK2Q,KAAKi+D,SAAStoE,IAAI+J,QACtLnM,EAAMmwF,eAAiB,EACvBnwF,EAAMowF,gBAAkBpwF,EAAMkwF,gBAAkBlwF,EAAMgwF,iBACtDhwF,EAAMqwF,eAAiB,CAGvB,IAAIC,GAAwBphB,EAAWqhB,YACnCC,EAAwBhpF,EAAW+oF,WAmBvC,OAlBArhB,GAAWtqE,YAAcsqE,EAAWtqE,WAAW5G,YAAYkxE,GAC3D1nE,EAAW5C,YAAc4C,EAAW5C,WAAW5G,YAAYwJ,GAE3D0nE,EAAW/mE,MAAMgE,OAASrQ,KAAKkE,MAAMmM,OAAS,KAE9CrQ,KAAK20F,iBAGDH,EACFxrF,EAAOgnC,aAAaojC,EAAYohB,GAEhCxrF,EAAO0H,YAAY0iE,GAEjBshB,EACF10F,KAAK2Q,KAAKo9C,IAAI6tB,mBAAmB5rC,aAAatkC,EAAYgpF,GAE1D10F,KAAK2Q,KAAKo9C,IAAI6tB,mBAAmBlrE,YAAYhF,GAExC1L,KAAKm4E,cAAgB2b,GAO9BlmB,EAASv7D,UAAUsiF,eAAiB,WAClC,GAAIzmB,GAAcluE,KAAKgO,QAAQkgE,YAAYC,KAGvClpB,EAAQtkD,EAAKqE,QAAQhF,KAAK2Q,KAAK6qC,MAAMyJ,MAAO,UAC5CC,EAAMvkD,EAAKqE,QAAQhF,KAAK2Q,KAAK6qC,MAAM0J,IAAK,UACxC0vC,EAAgB50F,KAAK2Q,KAAKhQ,KAAKyuE,QAAQpvE,KAAKkE,MAAM2wF,gBAAkB,IAAM70F,KAAKgO,QAAQ6lF,eAAezuF,UACtGmlF,EAAcqK,EAAgBnoB,EAASiL,wBAAwB13E,KAAKgO,QAAQvM,OAAQzB,KAAK2Q,KAAKm+D,YAAa9uE,KAAK2Q,KAAK6qC,MAAOo5C,EAChIrK,IAAevqF,KAAK2Q,KAAKhQ,KAAKyuE,OAAO,GAAGhqE,SAExC,IAAImN,GAAO,GAAIm6D,GAAS,GAAI7pE,MAAKoiD,GAAQ,GAAIpiD,MAAKqiD,GAAMqlC,EAAavqF,KAAK2Q,KAAKm+D,YAC/Ev8D,GAAKq4E,UAAU5qF,KAAKgO,QAAQvM,QACxBzB,KAAKgO,QAAQvI,QACf8M,EAAKs4E,UAAU7qF,KAAKgO,QAAQvI,QAE1BzF,KAAKgO,QAAQ+gE,UACfx8D,EAAK04E,SAASjrF,KAAKgO,QAAQ+gE,UAE7B/uE,KAAKuS,KAAOA,CAKZ,IAAIw7C,GAAM/tD,KAAK+tD,GACfA,GAAIxe,UAAUgkD,MAAQxlC,EAAIwlC,MAC1BxlC,EAAIxe,UAAUikD,WAAazlC,EAAIylC,WAC/BzlC,EAAIxe,UAAUkkD,WAAa1lC,EAAI0lC,WAC/B1lC,EAAIwlC,SACJxlC,EAAIylC,cACJzlC,EAAI0lC,aAEJ,IACIhiF,GACAwjB,EACA6/D,EACApJ,EACAqJ,EAEAC,EACAp7C,EACAq7C,EAIAvuF,EAPA0J,EAAQ,EAIR8kF,MAAmBrxF,GACnB0wC,EAAQ,CAOZ,KAHAhiC,EAAK0yC,QACLxzC,EAAOc,EAAK4yC,aACZ2vC,EAAQ90F,KAAK2Q,KAAKhQ,KAAKquE,SAASv9D,GACzBc,EAAKy4E,WAAaz2C,EANf,KAM4B,CAiBpC,OAhBAA,IAEAm3C,EAAUn5E,EAAKm5E,UACfhlF,EAAY6L,EAAKs5E,eACjBoJ,EAAa1iF,EAAKo5E,gBAERl6E,EACVwjB,EAAI6/D,EAEJviF,EAAKd,OACLA,EAAOc,EAAK4yC,aACE5yC,EAAKm5E,UACnBoJ,EAAQ90F,KAAK2Q,KAAKhQ,KAAKquE,SAASv9D,GAEhCujF,EAAY5kF,EACZA,EAAQ0kF,EAAQ7/D,EACR1iB,EAAK/P,OACX,IAAK,OACHuyF,GAAgB,CAAK,MACvB,SACEA,EAAgB3kF,GAAqB,GAAZ4kF,EAG7B,GAAIh1F,KAAKgO,QAAQ2lF,iBAAmBoB,EAAe,CACjD,GAAIzkD,GAAQtwC,KAAKm1F,kBAAkBlgE,EAAGggE,EAAY/mB,EAAaxnE,EAC/D4pC,GAAMjkC,MAAM+D,MAAQA,EAAQ,KAG1Bs7E,GAAW1rF,KAAKgO,QAAQ4lF,iBACtB3+D,EAAI,QACkBpxB,IAApBqxF,IACFA,EAAmBjgE,GAErBqb,EAAQtwC,KAAKo1F,kBAAkBngE,EAAG1iB,EAAKq5E,gBAAiB1d,EAAaxnE,IAEvEkzC,EAAO55C,KAAKq1F,kBAAkBpgE,EAAG7kB,EAAO89D,EAAaxnE,IAGjDquF,EACFn7C,EAAO55C,KAAKs1F,kBAAkBrgE,EAAG7kB,EAAO89D,EAAaxnE,GAEjDkzC,IAEFA,EAAKvtC,MAAM+D,MAAQpG,SAAS4vC,EAAKvtC,MAAM+D,OAASA,EAAQ,MAYhE,GA9DU,MAwDNmkC,GAAkBghD,IACpB/vE,QAAQH,KAAK,4FACbkwE,GAAoB,GAIlBv1F,KAAKgO,QAAQ4lF,gBAAiB,CAChC,GAAI4B,GAAWx1F,KAAK2Q,KAAKhQ,KAAKyuE,OAAO,GACjCqmB,EAAWljF,EAAKq5E,cAAc4J,GAC9BE,EAAYD,EAAS7xF,QAAU5D,KAAKkE,MAAMyxF,gBAAkB,IAAM,QAE9C9xF,IAApBqxF,GAAiCQ,EAAYR,IAC/Cl1F,KAAKo1F,kBAAkB,EAAGK,EAAUvnB,EAAaxnE,GAKrD/F,EAAKuG,QAAQlH,KAAK+tD,IAAIxe,UAAW,SAAU5pC,GACzC,KAAOA,EAAI/B,QAAQ,CACjB,GAAIoC,GAAOL,EAAIiwF,KACX5vF,IAAQA,EAAK8C,YACf9C,EAAK8C,WAAW5G,YAAY8D,OAepC4nE,EAASv7D,UAAU8iF,kBAAoB,SAAUlgE,EAAGkxB,EAAM+nB,EAAaxnE,GAErE,GAAI4pC,GAAQtwC,KAAK+tD,IAAIxe,UAAUkkD,WAAWlvD,OAE1C,KAAK+L,EAAO,CAEV,GAAIG,GAAUvgC,SAAS2lF,eAAe,GACtCvlD,GAAQpgC,SAASC,cAAc,OAC/BmgC,EAAM5/B,YAAY+/B,GAClBzwC,KAAK+tD,IAAIqlB,WAAW1iE,YAAY4/B,GAgBlC,MAdAtwC,MAAK+tD,IAAI0lC,WAAW5uF,KAAKyrC,GACzBA,EAAMqQ,UAAYwF,EAElB7V,EAAMjkC,MAAM/F,IAAqB,OAAf4nE,EAAuBluE,KAAKkE,MAAMgwF,iBAAmB,KAAO,IAE1El0F,KAAKgO,QAAQsgE,KACfh+B,EAAMjkC,MAAMnG,KAAO,GACnBoqC,EAAMjkC,MAAMjG,MAAQ6uB,EAAI,MAExBqb,EAAMjkC,MAAMnG,KAAO+uB,EAAI,KAEzBqb,EAAM5pC,UAAY,sBAAwBA,EAGnC4pC,GAYTs9B,EAASv7D,UAAU+iF,kBAAoB,SAAUngE,EAAGkxB,EAAM+nB,EAAaxnE,GAErE,GAAI4pC,GAAQtwC,KAAK+tD,IAAIxe,UAAUikD,WAAWjvD,OAE1C,KAAK+L,EAAO,CAEV,GAAIG,GAAUvgC,SAASC,cAAc,MACrCmgC,GAAQpgC,SAASC,cAAc,OAC/BmgC,EAAM5/B,YAAY+/B,GAClBzwC,KAAK+tD,IAAIqlB,WAAW1iE,YAAY4/B,GAgBlC,MAbAA,GAAMwlD,WAAW,GAAGn1C,UAAYwF,EAChC7V,EAAM5pC,UAAY,sBAAwBA,EAG1C4pC,EAAMjkC,MAAM/F,IAAqB,OAAf4nE,EAAuB,IAAMluE,KAAKkE,MAAM8vF,iBAAmB,KACzEh0F,KAAKgO,QAAQsgE,KACfh+B,EAAMjkC,MAAMnG,KAAO,GACnBoqC,EAAMjkC,MAAMjG,MAAQ6uB,EAAI,MAExBqb,EAAMjkC,MAAMnG,KAAO+uB,EAAI,KAGzBj1B,KAAK+tD,IAAIylC,WAAW3uF,KAAKyrC,GAClBA,GAYTs9B,EAASv7D,UAAUijF,kBAAoB,SAAUrgE,EAAG7kB,EAAO89D,EAAaxnE,GAEtE,GAAIkzC,GAAO55C,KAAK+tD,IAAIxe,UAAUgkD,MAAMhvD,OAC/BqV,KAEHA,EAAO1pC,SAASC,cAAc,OAC9BnQ,KAAK+tD,IAAIriD,WAAWgF,YAAYkpC,IAElC55C,KAAK+tD,IAAIwlC,MAAM1uF,KAAK+0C,EAEpB,IAAI11C,GAAQlE,KAAKkE,KAiBjB,OAfE01C,GAAKvtC,MAAM/F,IADM,OAAf4nE,EACehqE,EAAMgwF,iBAAmB,KAEzBl0F,KAAK2Q,KAAKi+D,SAAStoE,IAAI+J,OAAS,KAEnDupC,EAAKvtC,MAAMgE,OAASnM,EAAMkwF,gBAAkB,KACxCp0F,KAAKgO,QAAQsgE,KACf10B,EAAKvtC,MAAMnG,KAAO,GAClB0zC,EAAKvtC,MAAMjG,MAAQ6uB,EAAI/wB,EAAMmwF,eAAiB,EAAI,KAClDz6C,EAAKlzC,UAAY,uCAAyCA,IAE1DkzC,EAAKvtC,MAAMnG,KAAO+uB,EAAI/wB,EAAMmwF,eAAiB,EAAI,KACjDz6C,EAAKlzC,UAAY,mCAAqCA,GAExDkzC,EAAKvtC,MAAM+D,MAAQA,EAAQ,KAEpBwpC,GAYTg0B,EAASv7D,UAAUgjF,kBAAoB,SAAUpgE,EAAG7kB,EAAO89D,EAAaxnE,GAEtE,GAAIkzC,GAAO55C,KAAK+tD,IAAIxe,UAAUgkD,MAAMhvD,OAC/BqV,KAEHA,EAAO1pC,SAASC,cAAc,OAC9BnQ,KAAK+tD,IAAIriD,WAAWgF,YAAYkpC,IAElC55C,KAAK+tD,IAAIwlC,MAAM1uF,KAAK+0C,EAEpB,IAAI11C,GAAQlE,KAAKkE,KAmBjB,OAjBE01C,GAAKvtC,MAAM/F,IADM,OAAf4nE,EACe,IAEAluE,KAAK2Q,KAAKi+D,SAAStoE,IAAI+J,OAAS,KAG/CrQ,KAAKgO,QAAQsgE,KACf10B,EAAKvtC,MAAMnG,KAAO,GAClB0zC,EAAKvtC,MAAMjG,MAAQ6uB,EAAI/wB,EAAMqwF,eAAiB,EAAI,KAClD36C,EAAKlzC,UAAY,uCAAyCA,IAE1DkzC,EAAKvtC,MAAMnG,KAAO+uB,EAAI/wB,EAAMqwF,eAAiB,EAAI,KACjD36C,EAAKlzC,UAAY,mCAAqCA,GAGxDkzC,EAAKvtC,MAAMgE,OAASnM,EAAMowF,gBAAkB,KAC5C16C,EAAKvtC,MAAM+D,MAAQA,EAAQ,KAEpBwpC,GAQTg0B,EAASv7D,UAAU0hF,mBAAqB,WAKjC/zF,KAAK+tD,IAAIgoC,mBACZ/1F,KAAK+tD,IAAIgoC,iBAAmB7lF,SAASC,cAAc,OACnDnQ,KAAK+tD,IAAIgoC,iBAAiBrvF,UAAY,iCACtC1G,KAAK+tD,IAAIgoC,iBAAiB1pF,MAAMkE,SAAW,WAE3CvQ,KAAK+tD,IAAIgoC,iBAAiBrlF,YAAYR,SAAS2lF,eAAe,MAC9D71F,KAAK+tD,IAAIqlB,WAAW1iE,YAAY1Q,KAAK+tD,IAAIgoC,mBAE3C/1F,KAAKkE,MAAM+vF,gBAAkBj0F,KAAK+tD,IAAIgoC,iBAAiBv0C,aACvDxhD,KAAKkE,MAAM2wF,eAAiB70F,KAAK+tD,IAAIgoC,iBAAiBhlF,YAGjD/Q,KAAK+tD,IAAIioC,mBACZh2F,KAAK+tD,IAAIioC,iBAAmB9lF,SAASC,cAAc,OACnDnQ,KAAK+tD,IAAIioC,iBAAiBtvF,UAAY,iCACtC1G,KAAK+tD,IAAIioC,iBAAiB3pF,MAAMkE,SAAW,WAE3CvQ,KAAK+tD,IAAIioC,iBAAiBtlF,YAAYR,SAAS2lF,eAAe,MAC9D71F,KAAK+tD,IAAIqlB,WAAW1iE,YAAY1Q,KAAK+tD,IAAIioC,mBAE3Ch2F,KAAKkE,MAAMiwF,gBAAkBn0F,KAAK+tD,IAAIioC,iBAAiBx0C,aACvDxhD,KAAKkE,MAAMyxF,eAAiB31F,KAAK+tD,IAAIioC,iBAAiBjlF,YAGxD,IAAIwkF,IAAoB,CAExB11F,GAAOD,QAAUguE,GAIb,SAAU/tE,EAAQD,EAASM,GAmB/B,QAAS26E,GAAUzkC,GACjBp2C,KAAKs9E,QAAS,EAEdt9E,KAAK+tD,KACH3X,UAAWA,GAGbp2C,KAAK+tD,IAAIkoC,QAAU/lF,SAASC,cAAc,OAC1CnQ,KAAK+tD,IAAIkoC,QAAQvvF,UAAY,cAE7B1G,KAAK+tD,IAAI3X,UAAU1lC,YAAY1Q,KAAK+tD,IAAIkoC,SAExCj2F,KAAKo3D,OAASloB,EAAOlvC,KAAK+tD,IAAIkoC,SAC9Bj2F,KAAKo3D,OAAO7lB,GAAG,MAAOvxC,KAAKk2F,cAAct+B,KAAK53D,MAG9C,IAAIiyC,GAAKjyC,MACK,MAAO,YAAa,QAAS,QAAS,MAAO,WAAY,UAAW,UAC3EkH,QAAQ,SAAUqB,GACvB0pC,EAAGmlB,OAAO7lB,GAAGhpC,EAAO,SAAUA,GAC5BA,EAAMmvD,sBAKNxnD,UAAYA,SAASS,OACvB3Q,KAAKm2F,QAAU,SAAU5tF,GAClB6tF,EAAW7tF,EAAMI,OAAQytC,IAC5BnE,EAAGokD,cAGPnmF,SAASS,KAAK/I,iBAAiB,QAAS5H,KAAKm2F,cAGzBtyF,KAAlB7D,KAAKmvC,UACPnvC,KAAKmvC,SAASmC,UAEhBtxC,KAAKmvC,SAAWA,IAGhBnvC,KAAKs2F,YAAct2F,KAAKq2F,WAAWz+B,KAAK53D,MAsF1C,QAASo2F,GAAWvuF,EAASmB,GAC3B,KAAOnB,GAAS,CACd,GAAIA,IAAYmB,EACd,OAAO,CAETnB,GAAUA,EAAQiB,WAEpB,OAAO,EApJT,GAAIqmC,GAAWjvC,EAAoB,KAC/Bu3C,EAAUv3C,EAAoB,IAC9BgvC,EAAShvC,EAAoB,KAC7BS,EAAOT,EAAoB,EAwD/Bu3C,GAAQojC,EAAUxoE,WAGlBwoE,EAAUjB,QAAU,KAKpBiB,EAAUxoE,UAAUi/B,QAAU,WAC5BtxC,KAAKq2F,aAGLr2F,KAAK+tD,IAAIkoC,QAAQntF,WAAW5G,YAAYlC,KAAK+tD,IAAIkoC,SAG7Cj2F,KAAKm2F,SACPjmF,SAASS,KAAKvI,oBAAoB,QAASpI,KAAKm2F,SAIlDn2F,KAAKo3D,OAAO9lB,UACZtxC,KAAKo3D,OAAS,MAQhByjB,EAAUxoE,UAAUkkF,SAAW,WAEzB1b,EAAUjB,SACZiB,EAAUjB,QAAQyc,aAEpBxb,EAAUjB,QAAU55E,KAEpBA,KAAKs9E,QAAS,EACdt9E,KAAK+tD,IAAIkoC,QAAQ5pF,MAAMoM,QAAU,OACjC9X,EAAK4F,aAAavG,KAAK+tD,IAAI3X,UAAW,cAEtCp2C,KAAK+rD,KAAK,UACV/rD,KAAK+rD,KAAK,YAIV/rD,KAAKmvC,SAASyoB,KAAK,MAAO53D,KAAKs2F,cAOjCzb,EAAUxoE,UAAUgkF,WAAa,WAC/Br2F,KAAKs9E,QAAS,EACdt9E,KAAK+tD,IAAIkoC,QAAQ5pF,MAAMoM,QAAU,GACjC9X,EAAKqG,gBAAgBhH,KAAK+tD,IAAI3X,UAAW,cACzCp2C,KAAKmvC,SAASg9B,OAAO,MAAOnsE,KAAKs2F,aAEjCt2F,KAAK+rD,KAAK,UACV/rD,KAAK+rD,KAAK,eAQZ8uB,EAAUxoE,UAAU6jF,cAAgB,SAAU3tF,GAE5CvI,KAAKu2F,WACLhuF,EAAMmvD,mBAsBR73D,EAAOD,QAAUi7E,GAIb,SAAUh7E,EAAQD,EAASM,GAqB/B,QAASktE,GAAWz8D,EAAM3C,GACxBhO,KAAK2Q,KAAOA,EAGZ3Q,KAAKguE,gBACHvsE,OAAQA,EACR4yB,QAASA,EACT9S,OAAQ,KACRlhB,OAAIwD,GACJ85E,UAAO95E,IAET7D,KAAKgO,QAAUrN,EAAKC,UAAWZ,KAAKguE,gBAEhChgE,GAAWA,EAAQsyB,KACrBtgC,KAAK+yE,WAAa/kE,EAAQsyB,KAE1BtgC,KAAK+yE,WAAa,GAAIlwE,MAGxB7C,KAAKw2F,eAELx2F,KAAKkxC,WAAWljC,GAGhBhO,KAAKmB,UAzCP,GAAI+tC,GAAShvC,EAAoB,KAC7BS,EAAOT,EAAoB,GAC3BgtE,EAAYhtE,EAAoB,KAChCuB,EAASvB,EAAoB,IAC7Bm0B,EAAUn0B,EAAoB,IAwClCktE,GAAW/6D,UAAY,GAAI66D,GAS3BE,EAAW/6D,UAAU6+B,WAAa,SAAUljC,GACtCA,GAEFrN,EAAKsD,iBAAiB,SAAU,SAAU,UAAW,MAAOjE,KAAKgO,QAASA,IAQ9Eo/D,EAAW/6D,UAAUlR,QAAU,WAgB7B,QAAS25E,GAAa7xE,GACpBjJ,KAAK2Q,KAAK6qC,MAAMm5B,cAAc1rE,GAhBhC,GAAI8nD,GAAM7gD,SAASC,cAAc,MACjC4gD,GAAI,eAAiB/wD,KACrB+wD,EAAIrqD,UAAY,oBAAsB1G,KAAKgO,QAAQ3N,IAAM,IACzD0wD,EAAI1kD,MAAMkE,SAAW,WACrBwgD,EAAI1kD,MAAM/F,IAAM,MAChByqD,EAAI1kD,MAAMgE,OAAS,OACnBrQ,KAAK+wD,IAAMA,CAEX,IAAI0lC,GAAOvmF,SAASC,cAAc,MAClCsmF,GAAKpqF,MAAMkE,SAAW,WACtBkmF,EAAKpqF,MAAM/F,IAAM,MACjBmwF,EAAKpqF,MAAMnG,KAAO,QAClBuwF,EAAKpqF,MAAMgE,OAAS,OACpBomF,EAAKpqF,MAAM+D,MAAQ,OAMfqmF,EAAK7uF,kBAEP6uF,EAAK7uF,iBAAiB,aAAckzE,EAAaljB,KAAK53D,OAAO,GAE7Dy2F,EAAK7uF,iBAAiB,iBAAkBkzE,EAAaljB,KAAK53D,OAAO,IAGjEy2F,EAAKtuF,YAAY,eAAgB2yE,EAAaljB,KAAK53D,OAGrD+wD,EAAIrgD,YAAY+lF,GAEhBz2F,KAAKo3D,OAAS,GAAIloB,GAAOunD,GACzBz2F,KAAKo3D,OAAO7lB,GAAG,WAAYvxC,KAAKw0E,aAAa5c,KAAK53D,OAClDA,KAAKo3D,OAAO7lB,GAAG,UAAWvxC,KAAKy0E,QAAQ7c,KAAK53D,OAC5CA,KAAKo3D,OAAO7lB,GAAG,SAAUvxC,KAAK00E,WAAW9c,KAAK53D,OAC9CA,KAAKo3D,OAAO3/C,IAAI,OAAOsH,KAAMqnB,UAAW,EAAGtG,UAAWoP,EAAOm2B,wBAM/D+H,EAAW/6D,UAAUi/B,QAAU,WAC7BtxC,KAAK8R,OAEL9R,KAAKo3D,OAAO9lB,UACZtxC,KAAKo3D,OAAS,KAEdp3D,KAAK2Q,KAAO,MAOdy8D,EAAW/6D,UAAUotC,OAAS,WAC5B,GAAIz2C,GAAShJ,KAAK2Q,KAAKo9C,IAAI6tB,kBACvB57E,MAAK+wD,IAAIjoD,YAAcE,IAErBhJ,KAAK+wD,IAAIjoD,YACX9I,KAAK+wD,IAAIjoD,WAAW5G,YAAYlC,KAAK+wD,KAEvC/nD,EAAO0H,YAAY1Q,KAAK+wD,KAG1B,IAAI97B,GAAIj1B,KAAK2Q,KAAKhQ,KAAKquE,SAAShvE,KAAK+yE,YAEjCxxD,EAASvhB,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,OAC1CA,KACEvhB,KAAK02F,SACRlxE,QAAQotC,IAAI,6BAAgC5yD,KAAKgO,QAAQuT,OAAS,kEAClEvhB,KAAK02F,QAAS,GAEhBn1E,EAASvhB,KAAKgO,QAAQqmB,QAAY,GAGpC,IAAIspD,GAAQ39E,KAAKgO,QAAQ2vE,KAYzB,YAVc95E,KAAV85E,GACFA,EAAQp8D,EAAO+e,KAAO,KAAOtgC,KAAKgO,QAAQvM,OAAOzB,KAAK+yE,YAAYttE,OAAO,+BACzEk4E,EAAQA,EAAM1iE,OAAO,GAAGgM,cAAgB02D,EAAMgZ,UAAU,IAC9B,kBAAVhZ,KAChBA,EAAQA,EAAMp9E,KAAKP,KAAK+yE,aAG1B/yE,KAAK+wD,IAAI1kD,MAAMnG,KAAO+uB,EAAI,KAC1Bj1B,KAAK+wD,IAAI4sB,MAAQA,GAEV,GAMTvQ,EAAW/6D,UAAUP,KAAO,WAEtB9R,KAAK+wD,IAAIjoD,YACX9I,KAAK+wD,IAAIjoD,WAAW5G,YAAYlC,KAAK+wD,MAQzCqc,EAAW/6D,UAAUmrE,cAAgB,SAAUl9C,GAC7CtgC,KAAK+yE,WAAapyE,EAAKqE,QAAQs7B,EAAM,QACrCtgC,KAAKy/C,UAOP2tB,EAAW/6D,UAAUorE,cAAgB,WACnC,MAAO,IAAI56E,MAAK7C,KAAK+yE,WAAW3tE,YAOlCgoE,EAAW/6D,UAAUurE,eAAiB,SAAUD,GAC9C39E,KAAKgO,QAAQ2vE,MAAQA,GAQvBvQ,EAAW/6D,UAAUmiE,aAAe,SAAUjsE,GAC5CvI,KAAKw2F,YAAY5gB,UAAW,EAC5B51E,KAAKw2F,YAAYzjB,WAAa/yE,KAAK+yE,WAEnCxqE,EAAMmvD,mBAQR0V,EAAW/6D,UAAUoiE,QAAU,SAAUlsE,GACvC,GAAKvI,KAAKw2F,YAAY5gB,SAAtB,CAEA,GAAI3gD,GAAIj1B,KAAK2Q,KAAKhQ,KAAKquE,SAAShvE,KAAKw2F,YAAYzjB,YAAcxqE,EAAMo1D,OACjEr9B,EAAOtgC,KAAK2Q,KAAKhQ,KAAKyuE,OAAOn6C,EAEjCj1B,MAAKw9E,cAAcl9C,GAGnBtgC,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cACrB1rD,GAAIL,KAAKgO,QAAQ3N,GACjBigC,KAAM,GAAIz9B,MAAK7C,KAAK+yE,WAAW3tE,WAC/BmD,MAAOA,IAGTA,EAAMmvD,oBAQR0V,EAAW/6D,UAAUqiE,WAAa,SAAUnsE,GACrCvI,KAAKw2F,YAAY5gB,WAGtB51E,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,eACrB1rD,GAAIL,KAAKgO,QAAQ3N,GACjBigC,KAAM,GAAIz9B,MAAK7C,KAAK+yE,WAAW3tE,WAC/BmD,MAAOA,IAGTA,EAAMmvD,oBASR0V,EAAW4F,qBAAuB,SAAUzqE,GAE1C,IADA,GAAII,GAASJ,EAAMI,OACZA,GAAQ,CACb,GAAIA,EAAOrF,eAAe,eACxB,MAAOqF,GAAO,cAEhBA,GAASA,EAAOG,WAGlB,MAAO,OAGTjJ,EAAOD,QAAUwtE,GAIb,SAAUvtE,EAAQD,GAKtBA,EAAY,IACVg6E,QAAS,UACTt5C,KAAM,QAER1gC,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACVg6E,QAAS,UACTt5C,KAAM,SAER1gC,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACVg6E,QAAS,UACTt5C,KAAM,QAER1gC,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACVg6E,QAAS,WACTt5C,KAAM,QAER1gC,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACVg6E,QAAS,SACTt5C,KAAM,SAER1gC,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACVg6E,QAAS,YACTt5C,KAAM,QAER1gC,EAAe,MAAIA,EAAY,IAI3B,SAAUC,EAAQD,EAASM,GAiB/B,QAASitE,GAAYx8D,EAAM3C,GACzBhO,KAAK2Q,KAAOA,EAGZ3Q,KAAKguE,gBACHM,KAAK,EACLsoB,iBAAiB,EAEjBn1F,OAAQA,EACR4yB,QAASA,EACT9S,OAAQ,MAEVvhB,KAAKgO,QAAUrN,EAAKC,UAAWZ,KAAKguE,gBACpChuE,KAAK68B,OAAS,EAEd78B,KAAKmB,UAELnB,KAAKkxC,WAAWljC,GA9BlB,GAAIrN,GAAOT,EAAoB,GAC3BgtE,EAAYhtE,EAAoB,KAChCuB,EAASvB,EAAoB,IAC7Bm0B,EAAUn0B,EAAoB,IA8BlCitE,GAAY96D,UAAY,GAAI66D,GAM5BC,EAAY96D,UAAUlR,QAAU,WAC9B,GAAI4vD,GAAM7gD,SAASC,cAAc,MACjC4gD,GAAIrqD,UAAY,mBAChBqqD,EAAI1kD,MAAMkE,SAAW,WACrBwgD,EAAI1kD,MAAM/F,IAAM,MAChByqD,EAAI1kD,MAAMgE,OAAS,OAEnBrQ,KAAK+wD,IAAMA,GAMboc,EAAY96D,UAAUi/B,QAAU,WAC9BtxC,KAAKgO,QAAQ4oF,iBAAkB,EAC/B52F,KAAKy/C,SAELz/C,KAAK2Q,KAAO,MAQdw8D,EAAY96D,UAAU6+B,WAAa,SAAUljC,GACvCA,GAEFrN,EAAKsD,iBAAiB,MAAO,kBAAmB,SAAU,SAAU,WAAYjE,KAAKgO,QAASA,IAQlGm/D,EAAY96D,UAAUotC,OAAS,WAC7B,GAAIz/C,KAAKgO,QAAQ4oF,gBAAiB,CAChC,GAAI5tF,GAAShJ,KAAK2Q,KAAKo9C,IAAI6tB,kBACvB57E,MAAK+wD,IAAIjoD,YAAcE,IAErBhJ,KAAK+wD,IAAIjoD,YACX9I,KAAK+wD,IAAIjoD,WAAW5G,YAAYlC,KAAK+wD,KAEvC/nD,EAAO0H,YAAY1Q,KAAK+wD,KAExB/wD,KAAKilD,QAGP,IAAIt+B,GAAM3mB,KAAKgO,QAAQvM,QAAO,GAAIoB,OAAOuC,UAAYpF,KAAK68B,QACtD5H,EAAIj1B,KAAK2Q,KAAKhQ,KAAKquE,SAASroD,GAE5BpF,EAASvhB,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,OAC1CA,KACEvhB,KAAK02F,SACRlxE,QAAQotC,IAAI,6BAAgC5yD,KAAKgO,QAAQuT,OAAS,kEAClEvhB,KAAK02F,QAAS,GAEhBn1E,EAASvhB,KAAKgO,QAAQqmB,QAAY,GAEpC,IAAIspD,GAAQp8D,EAAOq4D,QAAU,IAAMr4D,EAAO+e,KAAO,KAAO3Z,EAAIlhB,OAAO,8BACnEk4E,GAAQA,EAAM1iE,OAAO,GAAGgM,cAAgB02D,EAAMgZ,UAAU,GAEpD32F,KAAKgO,QAAQsgE,IACftuE,KAAK+wD,IAAI1kD,MAAMjG,MAAQ6uB,EAAI,KAE3Bj1B,KAAK+wD,IAAI1kD,MAAMnG,KAAO+uB,EAAI,KAE5Bj1B,KAAK+wD,IAAI4sB,MAAQA,MAGb39E,MAAK+wD,IAAIjoD,YACX9I,KAAK+wD,IAAIjoD,WAAW5G,YAAYlC,KAAK+wD,KAEvC/wD,KAAK6hD,MAGP,QAAO,GAMTsrB,EAAY96D,UAAU4yC,MAAQ,WAG5B,QAAS7S,KACPH,EAAG4P,MAGH,IAAIr/C,GAAQyvC,EAAGthC,KAAK6qC,MAAMw5B,WAAW/iC,EAAGthC,KAAKi+D,SAAS/yB,OAAOzrC,OAAO5N,MAChEivD,EAAW,EAAIjvD,EAAQ,EACvBivD,GAAW,KAAIA,EAAW,IAC1BA,EAAW,MAAMA,EAAW,KAEhCxf,EAAGwN,SACHxN,EAAGthC,KAAKk+D,QAAQ9iB,KAAK,mBAGrB9Z,EAAGgjC,iBAAmB1/B,WAAWnD,EAAQqf,GAf3C,GAAIxf,GAAKjyC,IAkBToyC,MAMF+6B,EAAY96D,UAAUwvC,KAAO,eACGh+C,KAA1B7D,KAAKi1E,mBACP3/B,aAAat1C,KAAKi1E,wBACXj1E,MAAKi1E,mBAUhB9H,EAAY96D,UAAU6sE,eAAiB,SAAU5+C,GAC/C,GAAIrzB,GAAItM,EAAKqE,QAAQs7B,EAAM,QAAQl7B,UAC/BuhB,GAAM,GAAI9jB,OAAOuC,SACrBpF,MAAK68B,OAAS5vB,EAAI0Z,EAClB3mB,KAAKy/C,UAOP0tB,EAAY96D,UAAU8sE,eAAiB,WACrC,MAAO,IAAIt8E,OAAK,GAAIA,OAAOuC,UAAYpF,KAAK68B,SAG9Ch9B,EAAOD,QAAUutE,GAIb,SAAUttE,EAAQD,EAASM,GA6B/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAzBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,IAET3C,EAAQgxE,eAAa/sE,EAErB,IAAIsZ,GAAajd,EAAoB,IAEjCixC,EAActwC,EAAuBsc,GAErC5b,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCF,EAAQnB,EAAoB,IAE5BoB,EAAST,EAAuBQ,GAEhCqxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAE3B22F,GAAa,EACbhmB,MAAa,GACbD,EAAa,sCAKbI,EAAY,WACd,QAASA,MACP,EAAI2hB,EAA0B,SAAG3yF,KAAMgxE,GAkSzC,OAvRA,EAAI6hB,EAAuB,SAAG7hB,EAAW,OACvCzpE,IAAK,WACLhF,MAAO,SAAkByL,EAAS8oF,EAAkBC,GAClDF,GAAa,EACbhmB,EAAaimB,CACb,IAAIE,GAAcF,CAKlB,YAJkBjzF,KAAdkzF,IACFC,EAAcF,EAAiBC,IAEjC/lB,EAAU/tE,MAAM+K,EAASgpF,MAClBH,KAWTtvF,IAAK,QACLhF,MAAO,SAAeyL,EAAS8oF,EAAkBG,GAC/C,IAAK,GAAI/tF,KAAU8E,GACbA,EAAQ1K,eAAe4F,IACzB8nE,EAAUkmB,MAAMhuF,EAAQ8E,EAAS8oF,EAAkBG,MAczD1vF,IAAK,QACLhF,MAAO,SAAe2G,EAAQ8E,EAAS8oF,EAAkBG,OACtBpzF,KAA7BizF,EAAiB5tF,QAAsDrF,KAA7BizF,EAAiBK,QAC7DnmB,EAAUomB,cAAcluF,EAAQ4tF,EAAkBG,OACZpzF,KAA7BizF,EAAiB5tF,QAAsDrF,KAA7BizF,EAAiBK,QAEzB,WAAvCnmB,EAAUzrE,QAAQyI,EAAQ9E,SAAkErF,KAAzCizF,EAA0B,QAAEO,SAEjFrmB,EAAUsmB,YAAYpuF,EAAQ8E,EAAS8oF,EAAkB,UAAWA,EAA0B,QAAEO,SAAUJ,GAE1GjmB,EAAUsmB,YAAYpuF,EAAQ8E,EAAS8oF,EAAkB,UAAWA,EAA0B,QAAGG,OAIzDpzF,KAAtCizF,EAAiB5tF,GAAQmuF,SAE3BrmB,EAAUsmB,YAAYpuF,EAAQ8E,EAAS8oF,EAAkB5tF,EAAQ4tF,EAAiB5tF,GAAQmuF,SAAUJ,GAEpGjmB,EAAUsmB,YAAYpuF,EAAQ8E,EAAS8oF,EAAkB5tF,EAAQ4tF,EAAiB5tF,GAAS+tF,MAgBjG1vF,IAAK,cACLhF,MAAO,SAAqB2G,EAAQ8E,EAAS8oF,EAAkBS,EAAiBC,EAAcP,GAC5F,GAAIQ,GAAazmB,EAAUzrE,QAAQyI,EAAQ9E,IACvCwuF,EAAgBF,EAAaC,OACX5zF,KAAlB6zF,EAEuC,UAArC1mB,EAAUzrE,QAAQmyF,KAC4B,IAA5CA,EAAc9yF,QAAQoJ,EAAQ9E,KAChCsc,QAAQotC,IAAI,iCAAmC1pD,EAAS,yBAAgC8nE,EAAU2mB,MAAMD,GAAiB,SAAW1pF,EAAQ9E,GAAU,MAAQ8nE,EAAU4mB,cAAcX,EAAM/tF,GAAS0nE,GACrMimB,GAAa,GAKS,WAAfY,GAA+C,YAApBF,IACpCN,EAAOt2F,EAAK+E,mBAAmBuxF,EAAM/tF,GACrC8nE,EAAU/tE,MAAM+K,EAAQ9E,GAAS4tF,EAAiBS,GAAkBN,QAErCpzF,KAAxB2zF,EAAkB,MAE3BhyE,QAAQotC,IAAI,gCAAkC1pD,EAAS,gBAAkB8nE,EAAU2mB,OAAM,EAAIr2F,EAAgB,SAAGk2F,IAAiB,eAAiBC,EAAa,MAAQzpF,EAAQ9E,GAAU,IAAM8nE,EAAU4mB,cAAcX,EAAM/tF,GAAS0nE,GACtOimB,GAAa,MAIjBtvF,IAAK,UACLhF,MAAO,SAAiBX,GACtB,GAAIqD,OAAyB,KAAXrD,EAAyB,aAAc,EAAIJ,EAAkB,SAAGI,EAElF,OAAa,WAATqD,EACa,OAAXrD,EACK,OAELA,YAAkBuD,SACb,UAELvD,YAAkBC,QACb,SAELD,YAAkBe,QACb,SAELwB,MAAMC,QAAQxC,GACT,QAELA,YAAkBiB,MACb,WAEegB,KAApBjC,EAAOiH,SACF,OAEuB,IAA5BjH,EAAOgiB,iBACF,SAEF,SACW,WAAT3e,EACF,SACW,YAATA,EACF,UACW,WAATA,EACF,aACWpB,KAAToB,EACF,YAEFA,KAGTsC,IAAK,gBACLhF,MAAO,SAAuB2G,EAAQ8E,EAASipF,GAC7C,GAAIY,GAAc7mB,EAAU8mB,cAAc5uF,EAAQ8E,EAASipF,GAAM,GAC7Dc,EAAe/mB,EAAU8mB,cAAc5uF,EAAQ2nE,MAAgB,OAKpChtE,KAA3Bg0F,EAAYG,WACdxyE,QAAQotC,IAAI,+BAAiC1pD,EAAS,QAAU8nE,EAAU4mB,cAAcC,EAAYZ,KAAM/tF,EAAQ,IAAM,6CAA+C2uF,EAAYG,WAAa,SAAUpnB,GACjMmnB,EAAav9C,UAJI,GAIiCq9C,EAAYr9C,SAAWu9C,EAAav9C,SAC/Fh1B,QAAQotC,IAAI,+BAAiC1pD,EAAS,QAAU8nE,EAAU4mB,cAAcC,EAAYZ,KAAM/tF,EAAQ,IAAM,uDAAyD8nE,EAAU4mB,cAAcG,EAAad,KAAMc,EAAaE,aAAc,IAAKrnB,GACnPinB,EAAYr9C,UAPI,EAQzBh1B,QAAQotC,IAAI,+BAAiC1pD,EAAS,oBAAsB2uF,EAAYI,aAAe,KAAOjnB,EAAU4mB,cAAcC,EAAYZ,KAAM/tF,GAAS0nE,GAEjKprD,QAAQotC,IAAI,+BAAiC1pD,EAAS,iCAAmC8nE,EAAU2mB,OAAM,EAAIr2F,EAAgB,SAAG0M,IAAYgjE,EAAU4mB,cAAcX,EAAM/tF,GAAS0nE,GAGrLimB,GAAa,KAaftvF,IAAK,gBACLhF,MAAO,SAAuB2G,EAAQ8E,EAASipF,GAC7C,GAAIiB,GAAYv0F,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAE3EvB,EAAM,IACN61F,EAAe,GACfE,KACAC,EAAkBlvF,EAAO+e,cACzB+vE,MAAan0F,EACjB,KAAK,GAAIw0F,KAAMrqF,GAAS,CACtB,GAAIwsC,OAAW,EACf,QAA6B32C,KAAzBmK,EAAQqqF,GAAIhB,WAAwC,IAAda,EAAoB,CAC5D,GAAInuF,GAASinE,EAAU8mB,cAAc5uF,EAAQ8E,EAAQqqF,GAAK13F,EAAK+E,mBAAmBuxF,EAAMoB,GACpFj2F,GAAM2H,EAAOywC,WACfy9C,EAAeluF,EAAOkuF,aACtBE,EAAmBpuF,EAAOktF,KAC1B70F,EAAM2H,EAAOywC,SACbw9C,EAAajuF,EAAOiuF,iBAG6B,IAA/CK,EAAGpwE,cAAcrjB,QAAQwzF,KAC3BJ,EAAaK,GAEf79C,EAAWw2B,EAAUsnB,oBAAoBpvF,EAAQmvF,GAC7Cj2F,EAAMo4C,IACRy9C,EAAeI,EACfF,EAAmBx3F,EAAKmF,UAAUmxF,GAClC70F,EAAMo4C,GAIZ,OAASy9C,aAAcA,EAAchB,KAAMkB,EAAkB39C,SAAUp4C,EAAK41F,WAAYA,MAG1FzwF,IAAK,gBACLhF,MAAO,SAAuB00F,EAAM/tF,GAIlC,IAAK,GAHD24B,GAASl+B,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,6BAE7EgwD,EAAM,OAAS9xB,EAAS,gBACnB99B,EAAI,EAAGA,EAAIkzF,EAAKrzF,OAAQG,IAAK,CACpC,IAAK,GAAI8J,GAAI,EAAGA,EAAI9J,EAAI,EAAG8J,IACzB8lD,GAAO,IAETA,IAAOsjC,EAAKlzF,GAAK,QAEnB,IAAK,GAAIw0F,GAAK,EAAGA,EAAKtB,EAAKrzF,OAAS,EAAG20F,IACrC5kC,GAAO,IAETA,IAAOzqD,EAAS,IAChB,KAAK,GAAI0J,GAAK,EAAGA,EAAKqkF,EAAKrzF,OAAS,EAAGgP,IAAM,CAC3C,IAAK,GAAI4lF,GAAM,EAAGA,EAAMvB,EAAKrzF,OAASgP,EAAI4lF,IACxC7kC,GAAO,IAETA,IAAO,MAET,MAAOA,GAAM,UAGfpsD,IAAK,QACLhF,MAAO,SAAeyL,GACpB,OAAO,EAAImjC,EAAqB,SAAGnjC,GAASpE,QAAQ,gCAAiC,IAAIA,QAAQ,QAAS,SAa5GrC,IAAK,sBACLhF,MAAO,SAA6BiB,EAAGC,GACrC,GAAiB,IAAbD,EAAEI,OAAc,MAAOH,GAAEG,MAC7B,IAAiB,IAAbH,EAAEG,OAAc,MAAOJ,GAAEI,MAE7B,IAGIG,GAHA00F,IAIJ,KAAK10F,EAAI,EAAGA,GAAKN,EAAEG,OAAQG,IACzB00F,EAAO10F,IAAMA,EAIf,IAAI8J,EACJ,KAAKA,EAAI,EAAGA,GAAKrK,EAAEI,OAAQiK,IACzB4qF,EAAO,GAAG5qF,GAAKA,CAIjB,KAAK9J,EAAI,EAAGA,GAAKN,EAAEG,OAAQG,IACzB,IAAK8J,EAAI,EAAGA,GAAKrK,EAAEI,OAAQiK,IACrBpK,EAAEwX,OAAOlX,EAAI,IAAMP,EAAEyX,OAAOpN,EAAI,GAClC4qF,EAAO10F,GAAG8J,GAAK4qF,EAAO10F,EAAI,GAAG8J,EAAI,GAEjC4qF,EAAO10F,GAAG8J,GAAKpL,KAAKL,IAAIq2F,EAAO10F,EAAI,GAAG8J,EAAI,GAAK,EAC/CpL,KAAKL,IAAIq2F,EAAO10F,GAAG8J,EAAI,GAAK,EAC5B4qF,EAAO10F,EAAI,GAAG8J,GAAK,GAKzB,OAAO4qF,GAAOh1F,EAAEG,QAAQJ,EAAEI,YAGvBotE,IAGTpxE,GAAiB,QAAIoxE,EACrBpxE,EAAQgxE,WAAaA,GAIjB,SAAU/wE,EAAQD,GAItB6E,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAST,IAAIilB,GAAS,SACTkxE,EAAO,UACPj0E,EAAS,SAGT7iB,EAAS,SAKTivE,GACFsM,WACEjvE,SAAWyqF,QAAWD,GACtB5xF,QAAU6xF,QAAWD,EAAME,SAAY,YACvCxiD,WAAa2X,IARP,OASNspC,UAAYz1F,OAAQA,EAAQ+2F,QAAWD,EAAME,SAAY,aAI3D9Y,OAASt4D,OAAQA,GACjB8mD,KAAOqqB,QAAWD,EAAM70F,UAAa,aACrC8qE,aACE2F,QAAUqkB,QAAWD,GACrB77D,QAAUpY,OAAQA,EAAQ5gB,UAAa,aACvCwzF,UAAYz1F,OAAQA,IAEtBo5E,gBAAkB2d,QAAWD,EAAM70F,UAAa,aAChDozE,kBAAoB0hB,QAAWD,EAAM70F,UAAa,aAClDoqE,YAAc0qB,QAAWD,GACzB3qB,gBAAkBtpD,OAAQA,GAC1Bq4D,YAAc6b,QAAWD,GACzB5G,gBAAkBtqE,OAAQA,EAAQngB,MA5BxB,SA6BVm5E,UACE7vD,KAAOgoE,QAAWD,EAAM70F,UAAa,aACrC+vC,QAAU+kD,QAAWD,EAAM70F,UAAa,aACxC68E,aAAeiY,QAAWD,EAAM70F,UAAa,aAC7C48E,YAAckY,QAAWD,EAAM70F,UAAa,aAC5C88E,eAAiBgY,QAAWD,EAAM70F,UAAa,aAC/CwzF,UAAYsB,QAAWD,EAAM92F,OAAQA,IAEvCsjD,KAAOzgC,OAAQA,EAAQgJ,KApCd,OAoC0BjG,OAAQA,EAAQ/lB,OAjCxC,UAkCXgE,QACEilF,aACE5vD,aAAetT,OAAQA,EAAQ3jB,UAAa,aAC5Cg3B,QAAUrT,OAAQA,EAAQ3jB,UAAa,aACvC+2B,QAAUpT,OAAQA,EAAQ3jB,UAAa,aACvCo2B,MAAQzS,OAAQA,EAAQ3jB,UAAa,aACrC+rB,SAAWpI,OAAQA,EAAQ3jB,UAAa,aACxCqtB,KAAO1J,OAAQA,EAAQ3jB,UAAa,aACpC8rB,MAAQnI,OAAQA,EAAQ3jB,UAAa,aACrCmoB,OAASxE,OAAQA,EAAQ3jB,UAAa,aACtCkoB,MAAQvE,OAAQA,EAAQ3jB,UAAa,aACrCwzF,UAAYz1F,OAAQA,EAAQg3F,SAAY,aAE1CjO,aACE7vD,aAAetT,OAAQA,EAAQ3jB,UAAa,aAC5Cg3B,QAAUrT,OAAQA,EAAQ3jB,UAAa,aACvC+2B,QAAUpT,OAAQA,EAAQ3jB,UAAa,aACvCo2B,MAAQzS,OAAQA,EAAQ3jB,UAAa,aACrC+rB,SAAWpI,OAAQA,EAAQ3jB,UAAa,aACxCqtB,KAAO1J,OAAQA,EAAQ3jB,UAAa,aACpC8rB,MAAQnI,OAAQA,EAAQ3jB,UAAa,aACrCmoB,OAASxE,OAAQA,EAAQ3jB,UAAa,aACtCkoB,MAAQvE,OAAQA,EAAQ3jB,UAAa,aACrCwzF,UAAYz1F,OAAQA,EAAQg3F,SAAY,aAE1CvB,UAAYz1F,OAAQA,IAEtBH,QAAUm3F,SAAY,YACtBxY,YAAc54D,OAAQA,EAAQoxE,SAAY,YAC1ChY,eACEjwD,KAAOgoE,QAAWD,EAAM70F,UAAa,aACrC+vC,QAAU+kD,QAAWD,EAAM70F,UAAa,aACxCovC,OAAS0lD,QAAWD,EAAM70F,UAAa,aACvCwzF,UAAYsB,QAAWD,EAAM92F,OAAQA,IAEvCo+E,gBAAkB4Y,SAAY,YAC9BvoF,QAAUmX,OAAQA,EAAQ/C,OAAQA,GAClCqqD,aACE7pB,OAASx3B,KA3EF,OA2EchJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OAxE5C,UAyETyjD,KAAOz3B,KA5EA,OA4EYhJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OAzE1C,UA0ET+2E,QAAUhxD,OAAQA,GAClB6vE,UAAYz1F,OAAQA,EAAQyF,MA/EpB,UAiFVk5E,sBACE3xE,MAAQ+pF,QAAWD,EAAM70F,UAAa,aACtC23C,OAASm9C,QAAWD,EAAM70F,UAAa,aACvCwzF,UAAYsB,QAAWD,EAAM92F,OAAQA,IAEvC2f,QAAUiG,OAAQA,GAClB6M,SACE8iE,SAAW0B,IAnFL,OAoFNxB,UAAYz1F,OAAQA,IAEtBqiD,QACEkqB,MAAQ1pD,OAAQA,GAChB7V,MACE0rC,YAAc71B,OAAQA,EAAQ5gB,UAAa,aAC3C02C,UAAY91B,OAAQA,EAAQ5gB,UAAa,aACzCwzF,UAAYz1F,OAAQA,EAAQ6iB,OAAQA,IAEtC4yE,UAAYz1F,OAAQA,EAAQ6iB,OAAQA,IAEtCpiB,KAAOorB,KAnGE,OAmGUhJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OAhGxC,UAiGX2sE,WAAa3pD,OAAQA,EAAQ+C,OAAQA,GACrCqsE,eAAiBpvE,OAAQA,GACzBriB,KAAOqrB,KAtGE,OAsGUhJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OAnGxC,UAoGX4sE,WAAa5pD,OAAQA,EAAQ+C,OAAQA,GACrC0sD,UAAYykB,QAAWD,GACvBpY,aAAeqY,QAAWD,GAC1B1O,qBAAuB2O,QAAWD,GAClC7X,OAAS+X,SAAY,YACrB9X,UAAY8X,SAAY,YACxB7X,QAAU6X,SAAY,YACtB3X,UAAY2X,SAAY,YACxB5X,UAAY4X,SAAY,YACxB1X,YAAc0X,SAAY,YAC1BzX,aAAeyX,SAAY,YAC3BxX,eAAiBwX,SAAY,YAC7B3lD,OAAS2lD,SAAY,YACrB1qB,aACEC,MAAQ3mD,OAAQA,EAAQ3jB,UAAa,aACrC+K,MAAQ4Y,OAAQA,EAAQ3jB,UAAa,aACrCwzF,UAAY7vE,OAAQA,EAAQ5lB,OAAQA,IAEtCy+E,YAAcsY,QAAWD,GACzB9B,iBAAmB+B,QAAWD,GAC9B9E,iBAAmB+E,QAAWD,GAC9B/E,iBAAmBgF,QAAWD,GAC9B9yE,OAAS+yE,QAAWD,GACpB3Y,gBAAkB4Y,QAAWD,GAC7BzlB,MAAQ2lB,SAAY,WAAYE,KAAQ,QACxC7zC,OAASx3B,KAhIA,OAgIYhJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OA7H1C,UA8HX6vF,UAAYsH,SAAY,YACxB1oD,eAAiB0oD,SAAY,YAC7BhH,sBAAwBpqE,OAAQA,EAAQoxE,SAAY,YACpDvX,cAAgBsX,QAAWD,GAC3Bn/C,SACE+nC,aAAeqX,QAAWD,GAC1BnX,gBAAkB/5D,QAAW,MAAO,SACpC6vE,UAAYz1F,OAAQA,IAEtB4/E,yBACE8P,UAAYsH,SAAY,YACxBvB,UAAYsB,QAAWD,EAAM92F,OAAQA,IAEvCmtE,UACEvsE,OAASglB,OAAQA,EAAQ3jB,UAAa,aACtC0O,MAAQkS,OAAQA,EAAQ5gB,UAAa,aACrCwzF,UAAYz1F,OAAQA,IAEtBqD,MAAQuiB,OAAQA,GAChBpX,OAASoX,OAAQA,EAAQ/C,OAAQA,GACjC0vD,UAAYwkB,QAAWD,GACvB1hB,SAAWxvD,QAAS,UAAW,SAAU,UAAW,KACpD6sD,SAAW5vD,OAAQA,GACnB2vD,SAAW3vD,OAAQA,GAEnB4yE,UAAYz1F,OAAQA,IAGlBkvE,GACFj/D,QACEiuE,OAAQ,SAAU,OAAQ,SAC1BhgD,WAAW,EACXmuC,YAAY,EACZ6O,YAAY,EAEZ0D,UACE7vD,KAAK,EACLijB,QAAQ,EACR8sC,aAAa,EACbD,YAAY,GAEdv7B,IAAK,GACLz/C,QACEilF,aACE5vD,YAAa,MACbD,OAAQ,IACRD,OAAQ,QACRX,KAAM,QACNrK,QAAS,QACTsB,IAAK,IACLvB,KAAM,IACN3D,MAAO,MACPD,KAAM,QAER4+D,aACE7vD,YAAa,WACbD,OAAQ,eACRD,OAAQ,aACRX,KAAM,aACNrK,QAAS,YACTsB,IAAK,YACLvB,KAAM,YACN3D,MAAO,OACPD,KAAM,KAKVgtE,iBAAiB,EACjB1oF,OAAQ,GAERkR,OAAQ,GACR0iC,QACEkqB,MAAO,GAAI,EAAG,IAAK,GACnBv/D,MACE0rC,YAAa,GAAI,EAAG,IAAK,GACzBC,UAAW,GAAI,EAAG,IAAK,KAG3Bl4C,IAAK,GACL+rE,UAAW,GACXylB,eAAgB,EAAG,EAAG,GAAI,GAC1BzxF,IAAK,GACLisE,UAAW,GACX6F,UAAU,EACVoM,aAAa,EACb0J,qBAAqB,EAOrB9b,aACEC,MAAO,OAAQ,SAAU,OACzBv/D,MAAO,SAAU,QAEnByxE,YAAY,EACZuW,iBAAiB,EACjBhD,iBAAiB,EACjBD,iBAAiB,EACjB/tE,OAAO,EACPm6D,gBAAgB,EAEhB96B,MAAO,GAMPo8B,cAAc,EACd9nC,SACE+nC,aAAa,EACbC,eAAgB,QAElBC,yBAAyB,EACzBv8E,MAAO,MAAO,QAAS,QAAS,cAChCmL,MAAO,OACP+jE,UAAU,EACV6C,SAAU,UAAW,SAAU,UAAW,IAC1C3C,SAAU,SAAiB,GAAI,SAAiB;iCAChDD,SAAU,GAAI,GAAI,SAAiB,IAIvCx0E,GAAQixE,WAAaA,EACrBjxE,EAAQkxE,iBAAmBA,GAIvB,SAAUjxE,EAAQD,EAASM,GAwB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GApBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI4a,GAAajd,EAAoB,IAEjCixC,EAActwC,EAAuBsc,GAErC5b,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCmxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAE3B84F,EAAc94F,EAAoB,KAAc,QAiBhD6wE,EAAe,WACjB,QAASA,GAAakoB,EAAcC,EAAkBpoB,GACpD,GAAIqoB,GAAax1F,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,GACrF,EAAIgvF,EAA0B,SAAG3yF,KAAM+wE,GAEvC/wE,KAAKgJ,OAASiwF,EACdj5F,KAAKo5F,kBACLp5F,KAAKo2C,UAAY8iD,EACjBl5F,KAAKq5F,eAAgB,EAErBr5F,KAAKgO,WACLhO,KAAKs5F,aAAc,EACnBt5F,KAAKu5F,aAAe,EACpBv5F,KAAKguE,gBACH9/D,SAAS,EACTpH,QAAQ,EACRsvC,cAAWvyC,GACX21F,YAAY,GAEd74F,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAE/BhuE,KAAK8wE,iBAAmBA,EACxB9wE,KAAKy5F,iBACLz5F,KAAK05F,eACL15F,KAAK25F,YACL35F,KAAK45F,WAAa,EAClB55F,KAAK65F,gBACL75F,KAAK85F,YAAc,GAAId,GAAYG,GACnCn5F,KAAKk4D,YAAUr0D,GAmuBjB,OAxtBA,EAAIgvF,EAAuB,SAAG9hB,IAC5BxpE,IAAK,aACLhF,MAAO,SAAoByL,GACzB,OAAgBnK,KAAZmK,EAAuB,CAEzBhO,KAAK65F,gBACL75F,KAAK+5F,cAEL,IAAI7rF,IAAU,CACS,iBAAZF,GACThO,KAAKgO,QAAQlH,OAASkH,EACbA,YAAmB7J,OAC5BnE,KAAKgO,QAAQlH,OAASkH,EAAQjH,OACkE,gBAAnE,KAAZiH,EAA0B,aAAc,EAAIxM,EAAkB,SAAGwM,SACxDnK,KAAtBmK,EAAQooC,YACVp2C,KAAKgO,QAAQooC,UAAYpoC,EAAQooC,eAEZvyC,KAAnBmK,EAAQlH,SACV9G,KAAKgO,QAAQlH,OAASkH,EAAQlH,YAELjD,KAAvBmK,EAAQwrF,aACVx5F,KAAKgO,QAAQwrF,WAAaxrF,EAAQwrF,gBAEZ31F,KAApBmK,EAAQE,UACVA,EAAUF,EAAQE,UAEQ,iBAAZF,IAChBhO,KAAKgO,QAAQlH,QAAS,EACtBoH,EAAUF,GACkB,kBAAZA,KAChBhO,KAAKgO,QAAQlH,OAASkH,EACtBE,GAAU,IAEgB,IAAxBlO,KAAKgO,QAAQlH,SACfoH,GAAU,GAGZlO,KAAKgO,QAAQE,QAAUA,EAEzBlO,KAAKg6F,YAGPzyF,IAAK,mBACLhF,MAAO,SAA0Bk3F,GAC/Bz5F,KAAKy5F,cAAgBA,GACQ,IAAzBz5F,KAAKgO,QAAQE,UACflO,KAAKg6F,aAC0Bn2F,KAA3B7D,KAAKgO,QAAQooC,YACfp2C,KAAKo2C,UAAYp2C,KAAKgO,QAAQooC,WAEhCp2C,KAAKmB,cAUToG,IAAK,UACLhF,MAAO,WACL,GAAI03F,GAAQj6F,IAEZA,MAAKg6F,SACLh6F,KAAKo5F,iBAEL,IAAItyF,GAAS9G,KAAKgO,QAAQlH,OACtBozF,EAAU,EACV9nB,GAAO,CACX,KAAK,GAAIlpE,KAAUlJ,MAAK8wE,iBAClB9wE,KAAK8wE,iBAAiBxtE,eAAe4F,KACvClJ,KAAKq5F,eAAgB,EACrBjnB,GAAO,EACe,kBAAXtrE,IACTsrE,EAAOtrE,EAAOoC,MACdkpE,EAAOA,GAAQpyE,KAAKm6F,cAAcn6F,KAAK8wE,iBAAiB5nE,IAAUA,IAAS,KACvD,IAAXpC,IAA+C,IAA5BA,EAAOlC,QAAQsE,KAC3CkpE,GAAO,IAGI,IAATA,IACFpyE,KAAKq5F,eAAgB,EAGjBa,EAAU,GACZl6F,KAAKo6F,cAGPp6F,KAAKq6F,YAAYnxF,GAGjBlJ,KAAKm6F,cAAcn6F,KAAK8wE,iBAAiB5nE,IAAUA,KAErDgxF,IAIJ,KAAgC,IAA5Bl6F,KAAKgO,QAAQwrF,WAAqB,CACpC,GAAIc,GAAiBpqF,SAASC,cAAc,MAC5CmqF,GAAe5zF,UAAY,sCAC3B4zF,EAAe35C,UAAY,mBAC3B25C,EAAel5C,QAAU,WACvB64C,EAAMM,iBAERD,EAAetqB,YAAc,WAC3BsqB,EAAe5zF,UAAY,6CAE7B4zF,EAAeE,WAAa,WAC1BF,EAAe5zF,UAAY,uCAG7B1G,KAAKy6F,iBAAmBvqF,SAASC,cAAc,OAC/CnQ,KAAKy6F,iBAAiB/zF,UAAY,gDAElC1G,KAAK05F,YAAY70F,KAAK7E,KAAKy6F,kBAC3Bz6F,KAAK05F,YAAY70F,KAAKy1F,GAGxBt6F,KAAK06F,WAUPnzF,IAAK,QACLhF,MAAO,WACLvC,KAAKk4D,QAAUhoD,SAASC,cAAc,OACtCnQ,KAAKk4D,QAAQxxD,UAAY,4BACzB1G,KAAKo2C,UAAU1lC,YAAY1Q,KAAKk4D,QAChC,KAAK,GAAIn0D,GAAI,EAAGA,EAAI/D,KAAK05F,YAAY91F,OAAQG,IAC3C/D,KAAKk4D,QAAQxnD,YAAY1Q,KAAK05F,YAAY31F,GAG5C/D,MAAK26F,wBASPpzF,IAAK,SACLhF,MAAO,WACL,IAAK,GAAIwB,GAAI,EAAGA,EAAI/D,KAAK05F,YAAY91F,OAAQG,IAC3C/D,KAAKk4D,QAAQh2D,YAAYlC,KAAK05F,YAAY31F,QAGvBF,KAAjB7D,KAAKk4D,UACPl4D,KAAKo2C,UAAUl0C,YAAYlC,KAAKk4D,SAChCl4D,KAAKk4D,YAAUr0D,IAEjB7D,KAAK05F,eAEL15F,KAAK+5F,kBAWPxyF,IAAK,YACLhF,MAAO,SAAmB00F,GAExB,IAAK,GADDv3D,GAAO1/B,KAAKy5F,cACP11F,EAAI,EAAGA,EAAIkzF,EAAKrzF,OAAQG,IAAK,CACpC,OAAsBF,KAAlB67B,EAAKu3D,EAAKlzF,IAEP,CACL27B,MAAO77B,EACP,OAHA67B,EAAOA,EAAKu3D,EAAKlzF,IAMrB,MAAO27B,MAWTn4B,IAAK,YACLhF,MAAO,SAAmB00F,GACxB,IAA2B,IAAvBj3F,KAAKq5F,cAAwB,CAC/B,GAAIzqF,GAAOsB,SAASC,cAAc,MAClCvB,GAAKlI,UAAY,iDAAmDuwF,EAAKrzF,MAEzE,KAAK,GAAIg3F,GAAOj3F,UAAUC,OAAQ81F,EAAcv1F,MAAMy2F,EAAO,EAAIA,EAAO,EAAI,GAAIC,EAAO,EAAGA,EAAOD,EAAMC,IACrGnB,EAAYmB,EAAO,GAAKl3F,UAAUk3F,EAOpC,OAJAnB,GAAYxyF,QAAQ,SAAUW,GAC5B+G,EAAK8B,YAAY7I,KAEnB7H,KAAK05F,YAAY70F,KAAK+J,GACf5O,KAAK05F,YAAY91F,OAE1B,MAAO,MAUT2D,IAAK,cACLhF,MAAO,SAAqB0S,GAC1B,GAAI6lF,GAAM5qF,SAASC,cAAc,MACjC2qF,GAAIp0F,UAAY,sCAChBo0F,EAAIn6C,UAAY1rC,EAChBjV,KAAKo6F,aAAcU,MAarBvzF,IAAK,aACLhF,MAAO,SAAoB0S,EAAMgiF,GAC/B,GAAI8D,GAAcp3F,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAE7Em3F,EAAM5qF,SAASC,cAAc,MAOjC,OANA2qF,GAAIp0F,UAAY,kDAAoDuwF,EAAKrzF,OAEvEk3F,EAAIn6C,WADc,IAAhBo6C,EACc,SAAW9lF,EAAO,YAElBA,EAAO,IAElB6lF,KAYTvzF,IAAK,gBACLhF,MAAO,SAAuBoD,EAAKpD,EAAO00F,GACxC,GAAInT,GAAS5zE,SAASC,cAAc,SACpC2zE,GAAOp9E,UAAY,qCACnB,IAAIs0F,GAAgB,MACNn3F,KAAVtB,IAC0B,IAAxBoD,EAAIf,QAAQrC,KACdy4F,EAAgBr1F,EAAIf,QAAQrC,GAIhC,KAAK,GAAIwB,GAAI,EAAGA,EAAI4B,EAAI/B,OAAQG,IAAK,CACnC,GAAImF,GAASgH,SAASC,cAAc,SACpCjH,GAAO3G,MAAQoD,EAAI5B,GACfA,IAAMi3F,IACR9xF,EAAO68E,SAAW,YAEpB78E,EAAOy3C,UAAYh7C,EAAI5B,GACvB+/E,EAAOpzE,YAAYxH,GAGrB,GAAI+oC,GAAKjyC,IACT8jF,GAAOn+B,SAAW,WAChB1T,EAAGgpD,QAAQj7F,KAAKuC,MAAO00F,GAGzB,IAAI3mD,GAAQtwC,KAAKk7F,WAAWjE,EAAKA,EAAKrzF,OAAS,GAAIqzF,EACnDj3F,MAAKo6F,UAAUnD,EAAM3mD,EAAOwzC,MAY9Bv8E,IAAK,aACLhF,MAAO,SAAoBoD,EAAKpD,EAAO00F,GACrC,GAAI7tF,GAAezD,EAAI,GACnBvD,EAAMuD,EAAI,GACVtD,EAAMsD,EAAI,GACV4M,EAAO5M,EAAI,GACX61C,EAAQtrC,SAASC,cAAc,QACnCqrC,GAAM90C,UAAY,oCAClB,KACE80C,EAAMv2C,KAAO,QACbu2C,EAAMp5C,IAAMA,EACZo5C,EAAMn5C,IAAMA,EACZ,MAAOuP,IACT4pC,EAAMjpC,KAAOA,CAGb,IAAI4oF,GAAc,GACdC,EAAa,CAEjB,QAAcv3F,KAAVtB,EAAqB,CAEnBA,EAAQ,GADC,IACIA,EAAiBH,GAChCo5C,EAAMp5C,IAAMK,KAAKoX,KAFN,IAEWtX,GACtB64F,EAAa5/C,EAAMp5C,IACnB+4F,EAAc,mBACL54F,EALE,IAKeH,IAC1Bo5C,EAAMp5C,IAAMK,KAAKoX,KAAKtX,EANX,KAOX64F,EAAa5/C,EAAMp5C,IACnB+4F,EAAc,mBARH,IAUT54F,EAAiBF,GAAe,IAARA,IAC1Bm5C,EAAMn5C,IAAMI,KAAKoX,KAXN,IAWWtX,GACtB64F,EAAa5/C,EAAMn5C,IACnB84F,EAAc,mBAEhB3/C,EAAMj5C,MAAQA,MAEdi5C,GAAMj5C,MAAQ6G,CAGhB,IAAI6X,GAAQ/Q,SAASC,cAAc,QACnC8Q,GAAMva,UAAY,0CAClBua,EAAM1e,MAAQi5C,EAAMj5C,KAEpB,IAAI0vC,GAAKjyC,IACTw7C,GAAMmK,SAAW,WACf1kC,EAAM1e,MAAQvC,KAAKuC,MAAM0vC,EAAGgpD,QAAQp5F,OAAO7B,KAAKuC,OAAQ00F,IAE1Dz7C,EAAM6/C,QAAU,WACdp6E,EAAM1e,MAAQvC,KAAKuC,MAGrB,IAAI+tC,GAAQtwC,KAAKk7F,WAAWjE,EAAKA,EAAKrzF,OAAS,GAAIqzF,GAC/CzI,EAAYxuF,KAAKo6F,UAAUnD,EAAM3mD,EAAOkL,EAAOv6B,EAG/B,MAAhBk6E,GAAsBn7F,KAAK65F,aAAarL,KAAe4M,IACzDp7F,KAAK65F,aAAarL,GAAa4M,EAC/Bp7F,KAAKs7F,YAAYH,EAAa3M,OAYlCjnF,IAAK,cACLhF,MAAO,SAAqBilB,EAAQzU,GAClC,GAAIwoF,GAASv7F,IAEb,KAAyB,IAArBA,KAAKs5F,cAA+C,IAAvBt5F,KAAKq5F,eAA0Br5F,KAAKu5F,aAAev5F,KAAK45F,WAAY,CACnG,GAAIkB,GAAM5qF,SAASC,cAAc,MACjC2qF,GAAIz6F,GAAK,0BACTy6F,EAAIp0F,UAAY,0BAChBo0F,EAAIn6C,UAAYn5B,EAChBszE,EAAI15C,QAAU,WACZm6C,EAAOxB,gBAET/5F,KAAKu5F,cAAgB,EACrBv5F,KAAK25F,UAAa6B,KAAMV,EAAK/nF,MAAOA,OAUxCxL,IAAK,eACLhF,MAAO,eACsBsB,KAAvB7D,KAAK25F,SAAS6B,OAChBx7F,KAAK25F,SAAS6B,KAAK1yF,WAAW5G,YAAYlC,KAAK25F,SAAS6B,MACxDlmD,aAAat1C,KAAK25F,SAAS8B,aAC3BnmD,aAAat1C,KAAK25F,SAAS+B,eAC3B17F,KAAK25F,gBAUTpyF,IAAK,qBACLhF,MAAO,WACL,GAAIo5F,GAAS37F,IAEb,QAA2B6D,KAAvB7D,KAAK25F,SAAS6B,KAAoB,CACpC,GAAII,GAAuB57F,KAAK05F,YAAY15F,KAAK25F,SAAS5mF,OACtD69B,EAAOgrD,EAAqB31F,uBAChCjG,MAAK25F,SAAS6B,KAAKnvF,MAAMnG,KAAO0qC,EAAK1qC,KAAO,KAC5ClG,KAAK25F,SAAS6B,KAAKnvF,MAAM/F,IAAMsqC,EAAKtqC,IAAM,GAAK,KAC/C4J,SAASS,KAAKD,YAAY1Q,KAAK25F,SAAS6B,MACxCx7F,KAAK25F,SAAS8B,YAAclmD,WAAW,WACrComD,EAAOhC,SAAS6B,KAAKnvF,MAAMlC,QAAU,GACpC,MACHnK,KAAK25F,SAAS+B,cAAgBnmD,WAAW,WACvComD,EAAO5B,gBACN,UAaPxyF,IAAK,gBACLhF,MAAO,SAAuB6G,EAAc7G,EAAO00F,GACjD,GAAI4E,GAAW3rF,SAASC,cAAc,QACtC0rF,GAAS52F,KAAO,WAChB42F,EAASn1F,UAAY,wCACrBm1F,EAASC,QAAU1yF,MACLvF,KAAVtB,IACFs5F,EAASC,QAAUv5F,EACfA,IAAU6G,IACyF,gBAAxE,KAAjBA,EAA+B,aAAc,EAAI5H,EAAkB,SAAG4H,IAC5E7G,IAAU6G,EAAa8E,SACzBlO,KAAKo5F,eAAev0F,MAAOoyF,KAAMA,EAAM10F,MAAOA,IAGhDvC,KAAKo5F,eAAev0F,MAAOoyF,KAAMA,EAAM10F,MAAOA,KAKpD,IAAI0vC,GAAKjyC,IACT67F,GAASl2C,SAAW,WAClB1T,EAAGgpD,QAAQj7F,KAAK87F,QAAS7E,GAG3B,IAAI3mD,GAAQtwC,KAAKk7F,WAAWjE,EAAKA,EAAKrzF,OAAS,GAAIqzF,EACnDj3F,MAAKo6F,UAAUnD,EAAM3mD,EAAOurD,MAY9Bt0F,IAAK,iBACLhF,MAAO,SAAwB6G,EAAc7G,EAAO00F,GAClD,GAAI4E,GAAW3rF,SAASC,cAAc,QACtC0rF,GAAS52F,KAAO,OAChB42F,EAASn1F,UAAY,oCACrBm1F,EAASt5F,MAAQA,EACbA,IAAU6G,GACZpJ,KAAKo5F,eAAev0F,MAAOoyF,KAAMA,EAAM10F,MAAOA,GAGhD,IAAI0vC,GAAKjyC,IACT67F,GAASl2C,SAAW,WAClB1T,EAAGgpD,QAAQj7F,KAAKuC,MAAO00F,GAGzB,IAAI3mD,GAAQtwC,KAAKk7F,WAAWjE,EAAKA,EAAKrzF,OAAS,GAAIqzF,EACnDj3F,MAAKo6F,UAAUnD,EAAM3mD,EAAOurD,MAY9Bt0F,IAAK,kBACLhF,MAAO,SAAyBoD,EAAKpD,EAAO00F,GAC1C,GAAI8E,GAAS/7F,KAETg8F,EAAer2F,EAAI,GACnBm1F,EAAM5qF,SAASC,cAAc,MACjC5N,OAAkBsB,KAAVtB,EAAsBy5F,EAAez5F,EAE/B,SAAVA,GACFu4F,EAAIp0F,UAAY,0CAChBo0F,EAAIzuF,MAAM2tC,gBAAkBz3C,GAE5Bu4F,EAAIp0F,UAAY,+CAGlBnE,MAAkBsB,KAAVtB,EAAsBy5F,EAAez5F,EAC7Cu4F,EAAI15C,QAAU,WACZ26C,EAAOE,iBAAiB15F,EAAOu4F,EAAK7D,GAGtC,IAAI3mD,GAAQtwC,KAAKk7F,WAAWjE,EAAKA,EAAKrzF,OAAS,GAAIqzF,EACnDj3F,MAAKo6F,UAAUnD,EAAM3mD,EAAOwqD,MAa9BvzF,IAAK,mBACLhF,MAAO,SAA0BA,EAAOu4F,EAAK7D,GAC3C,GAAIiF,GAASl8F,IAGb86F,GAAI15C,QAAU,aAEdphD,KAAK85F,YAAYqC,SAASrB,GAC1B96F,KAAK85F,YAAY1nB,OAEjBpyE,KAAK85F,YAAYsC,SAAS75F,GAC1BvC,KAAK85F,YAAYuC,kBAAkB,SAAUnyF,GAC3C,GAAIoyF,GAAc,QAAUpyF,EAAML,EAAI,IAAMK,EAAMJ,EAAI,IAAMI,EAAMzG,EAAI,IAAMyG,EAAM1G,EAAI,GACtFs3F,GAAIzuF,MAAM2tC,gBAAkBsiD,EAC5BJ,EAAOjB,QAAQqB,EAAarF,KAI9Bj3F,KAAK85F,YAAYyC,iBAAiB,WAChCzB,EAAI15C,QAAU,WACZ86C,EAAOD,iBAAiB15F,EAAOu4F,EAAK7D,SAa1C1vF,IAAK,gBACLhF,MAAO,SAAuBzB,GAC5B,GAAIm2F,GAAOtzF,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACtE64F,EAAY74F,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAE3EyuE,GAAO,EACPtrE,EAAS9G,KAAKgO,QAAQlH,OACtB21F,GAAe,CACnB,KAAK,GAAIC,KAAU57F,GACjB,GAAIA,EAAIwC,eAAeo5F,GAAS,CAC9BtqB,GAAO,CACP,IAAIxjE,GAAO9N,EAAI47F,GACXC,EAAUh8F,EAAK+E,mBAAmBuxF,EAAMyF,EAc5C,IAbsB,kBAAX51F,KAII,KAHbsrE,EAAOtrE,EAAO41F,EAAQzF,OAIdroF,YAAgBzK,SAA0B,gBAATyK,IAAqC,iBAATA,IAAsBA,YAAgBnK,UACvGzE,KAAKq5F,eAAgB,EACrBjnB,EAAOpyE,KAAKm6F,cAAcvrF,EAAM+tF,GAAS,GACzC38F,KAAKq5F,eAA8B,IAAdmD,IAKd,IAATpqB,EAAgB,CAClBqqB,GAAe,CACf,IAAIl6F,GAAQvC,KAAK48F,UAAUD,EAE3B,IAAI/tF,YAAgBzK,OAClBnE,KAAK68F,aAAajuF,EAAMrM,EAAOo6F,OAC1B,IAAoB,gBAAT/tF,GAChB5O,KAAK88F,eAAeluF,EAAMrM,EAAOo6F,OAC5B,IAAoB,iBAAT/tF,GAChB5O,KAAK+8F,cAAcnuF,EAAMrM,EAAOo6F,OAC3B,IAAI/tF,YAAgBnK,QAAQ,CAEjC,GAAIu4F,IAAO,CAOX,KANiC,IAA7B/F,EAAKryF,QAAQ,YACX5E,KAAKy5F,cAAcwD,QAAQC,SAAWR,IACxCM,GAAO,IAIE,IAATA,EAEF,OAAqBn5F,KAAjB+K,EAAKV,QAAuB,CAC9B,GAAIivF,GAAcx8F,EAAK+E,mBAAmBi3F,EAAS,WAC/CS,EAAep9F,KAAK48F,UAAUO,EAClC,KAAqB,IAAjBC,EAAuB,CACzB,GAAI9sD,GAAQtwC,KAAKk7F,WAAWwB,EAAQC,GAAS,EAC7C38F,MAAKo6F,UAAUuC,EAASrsD,GACxBmsD,EAAez8F,KAAKm6F,cAAcvrF,EAAM+tF,IAAYF,MAEpDz8F,MAAK+8F,cAAcnuF,EAAMwuF,EAAcT,OAEpC,CACL,GAAIU,GAASr9F,KAAKk7F,WAAWwB,EAAQC,GAAS,EAC9C38F,MAAKo6F,UAAUuC,EAASU,GACxBZ,EAAez8F,KAAKm6F,cAAcvrF,EAAM+tF,IAAYF,OAIxDj3E,SAAQ83E,MAAM,0BAA2B1uF,EAAM8tF,EAAQC,IAK/D,MAAOF,MAaTl1F,IAAK,eACLhF,MAAO,SAAsBoD,EAAKpD,EAAO00F,GACjB,gBAAXtxF,GAAI,IAA8B,UAAXA,EAAI,IACpC3F,KAAKu9F,gBAAgB53F,EAAKpD,EAAO00F,GAC7BtxF,EAAI,KAAOpD,GACbvC,KAAKo5F,eAAev0F,MAAOoyF,KAAMA,EAAM10F,MAAOA,KAErB,gBAAXoD,GAAI,IACpB3F,KAAKw9F,cAAc73F,EAAKpD,EAAO00F,GAC3BtxF,EAAI,KAAOpD,GACbvC,KAAKo5F,eAAev0F,MAAOoyF,KAAMA,EAAM10F,MAAOA,KAErB,gBAAXoD,GAAI,KACpB3F,KAAKy9F,WAAW93F,EAAKpD,EAAO00F,GACxBtxF,EAAI,KAAOpD,GACbvC,KAAKo5F,eAAev0F,MAAOoyF,KAAMA,EAAM10F,MAAOV,OAAOU,SAa3DgF,IAAK,UACLhF,MAAO,SAAiBA,EAAO00F,GAC7B,GAAIjpF,GAAUhO,KAAK09F,kBAAkBn7F,EAAO00F,EAExCj3F,MAAKgJ,OAAO2H,MAAQ3Q,KAAKgJ,OAAO2H,KAAKk+D,SAAW7uE,KAAKgJ,OAAO2H,KAAKk+D,QAAQ9iB,MAC3E/rD,KAAKgJ,OAAO2H,KAAKk+D,QAAQ9iB,KAAK,eAAgB/9C,GAEhDhO,KAAKs5F,aAAc,EACnBt5F,KAAKgJ,OAAOkoC,WAAWljC,MAGzBzG,IAAK,oBACLhF,MAAO,SAA2BA,EAAO00F,GACvC,GAAI0G,GAAah6F,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MAE5EwzE,EAAUwmB,CAGdp7F,GAAkB,SAAVA,GAA0BA,EAClCA,EAAkB,UAAVA,GAA4BA,CAEpC,KAAK,GAAIwB,GAAI,EAAGA,EAAIkzF,EAAKrzF,OAAQG,IACf,WAAZkzF,EAAKlzF,SACkBF,KAArBszE,EAAQ8f,EAAKlzF,MACfozE,EAAQ8f,EAAKlzF,QAEXA,IAAMkzF,EAAKrzF,OAAS,EACtBuzE,EAAUA,EAAQ8f,EAAKlzF,IAEvBozE,EAAQ8f,EAAKlzF,IAAMxB,EAIzB,OAAOo7F,MAGTp2F,IAAK,gBACLhF,MAAO,WACL,GAAIyL,GAAUhO,KAAK49F,YACnB59F,MAAKy6F,iBAAiB95C,UAAY,uBAAwB,EAAIxP,EAAqB,SAAGnjC,EAAS,KAAM,GAAK,YAG5GzG,IAAK,aACLhF,MAAO,WAEL,IAAK,GADDyL,MACKjK,EAAI,EAAGA,EAAI/D,KAAKo5F,eAAex1F,OAAQG,IAC9C/D,KAAK09F,kBAAkB19F,KAAKo5F,eAAer1F,GAAGxB,MAAOvC,KAAKo5F,eAAer1F,GAAGkzF,KAAMjpF,EAEpF,OAAOA,OAGJ+iE,IAGTnxE,GAAiB,QAAImxE,GAIjB,SAAUlxE,EAAQD,EAASM,GAoB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI4a,GAAajd,EAAoB,IAEjCixC,EAActwC,EAAuBsc,GAErCu1E,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvC1jD,EAAShvC,EAAoB,KAC7B06E,EAAa16E,EAAoB,KACjCS,EAAOT,EAAoB,GAE3B84F,EAAc,WAChB,QAASA,KACP,GAAIG,GAAax1F,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,GACrF,EAAIgvF,EAA0B,SAAG3yF,KAAMg5F,GAEvCh5F,KAAKm5F,WAAaA,EAClBn5F,KAAK69F,WAAY,EACjB79F,KAAK89F,mBAAsB7oE,EAAG,MAASpG,EAAG,OAC1C7uB,KAAK6J,EAAI,IAAM,IACf7J,KAAKkK,OAAUL,EAAG,IAAKC,EAAG,IAAKrG,EAAG,IAAKD,EAAG,GAC1CxD,KAAK+9F,cAAYl6F,GACjB7D,KAAKg+F,cAAiBn0F,EAAG,IAAKC,EAAG,IAAKrG,EAAG,IAAKD,EAAG,GACjDxD,KAAKi+F,kBAAgBp6F,GACrB7D,KAAKk+F,SAAU,EAGfl+F,KAAKm+F,eAAiB,aACtBn+F,KAAKo+F,cAAgB,aAGrBp+F,KAAKmB,UAwkBP,OA/jBA,EAAI0xF,EAAuB,SAAGmG,IAC5BzxF,IAAK,WACLhF,MAAO,SAAkB6zC,OACHvyC,KAAhB7D,KAAKo3D,SACPp3D,KAAKo3D,OAAO9lB,UACZtxC,KAAKo3D,WAASvzD,IAEhB7D,KAAKo2C,UAAYA,EACjBp2C,KAAKo2C,UAAU1lC,YAAY1Q,KAAKm+C,OAChCn+C,KAAKq+F,cAELr+F,KAAKshD,cASP/5C,IAAK,oBACLhF,MAAO,SAA2B4E,GAChC,GAAwB,kBAAbA,GAGT,KAAM,IAAI9C,OAAM,8EAFhBrE,MAAKm+F,eAAiBh3F,KAY1BI,IAAK,mBACLhF,MAAO,SAA0B4E,GAC/B,GAAwB,kBAAbA,GAGT,KAAM,IAAI9C,OAAM,+EAFhBrE,MAAKo+F,cAAgBj3F,KAMzBI,IAAK,iBACLhF,MAAO,SAAwB2H,GAC7B,GAAIo0F,IAAeC,MAAO,UAAWC,KAAM,UAAWC,SAAU,UAAWC,WAAY,UAAWj0F,KAAM,UAAWk0F,UAAW,UAAWn0F,MAAO,UAAWo0F,KAAM,UAAWC,SAAU,UAAWC,YAAa,UAAWC,cAAe,UAAWC,kBAAmB,UAAWC,KAAM,UAAWC,YAAa,UAAWC,KAAM,UAAWC,KAAM,UAAWC,aAAc,UAAWC,WAAY,UAAWC,cAAe,UAAWC,YAAa,UAAWC,SAAU,UAAWC,cAAe,UAAWC,UAAW,UAAWC,eAAgB,UAAWC,UAAW,UAAWC,UAAW,UAAWC,UAAW,UAAWC,cAAe,UAAWC,gBAAiB,UAAWC,OAAQ,UAAWC,eAAgB,UAAWC,UAAW,UAAWC,eAAgB,UAAWC,iBAAkB,UAAWC,QAAS,UAAWC,UAAW,UAAWC,UAAW,UAAWC,UAAW,UAAWC,eAAgB,UAAWC,gBAAiB,UAAWC,UAAW,UAAWC,WAAY,UAAWC,WAAY,UAAWC,OAAQ,UAAWC,OAAQ,UAAWC,MAAO,UAAWC,KAAM,UAAWC,QAAS,UAAWC,aAAc,UAAWC,WAAY,UAAWC,QAAS,UAAWC,YAAa,UAAWC,YAAa,UAAWC,aAAc,UAAWC,WAAY,UAAWC,aAAc,UAAWC,WAAY,UAAWC,UAAW,UAAWC,WAAY,UAAWC,YAAa,UAAWC,OAAQ,UAAWC,MAAO,UAAWC,SAAU,UAAWC,UAAW,UAAWC,YAAa,UAAWC,cAAe,UAAWC,eAAgB,UAAWC,WAAY,UAAWC,UAAW,UAAWC,cAAe,UAAWC,aAAc,UAAWC,UAAW,UAAWC,UAAW,UAAWC,OAAQ,UAAWC,gBAAiB,UAAWC,UAAW,UAAWC,KAAM,UAAWC,UAAW,UAAWC,IAAK,UAAWC,UAAW,UAAWC,cAAe,UAAWC,QAAS,UAAWC,OAAQ,UAAWC,UAAW,UAAWC,QAAS,UAAWC,UAAW,UAAWC,KAAM,UAAWC,UAAW,UAAWC,UAAW,UAAWC,SAAU,UAAWC,WAAY,UAAWC,OAAQ,UAAWC,cAAe,UAAWC,WAAY,UAAWC,MAAO,UAAWC,UAAW,UAAWC,SAAU,UAAWC,MAAO,UAAWC,WAAY,UAAWC,MAAO,UAAWC,MAAO,UAAWC,WAAY,UAAWC,UAAW,UAAWC,WAAY,UAAWC,OAAQ,UAAWC,aAAc,UAAWC,MAAO,UAAWC,qBAAsB,UAAWC,QAAS,UAAW16F,IAAK,UAAW26F,QAAS,UAAWC,QAAS,UAAWC,SAAU,UAAWC,UAAW,UAAWC,OAAQ,UAAWC,QAAS,UAAWC,MAAO,UAAWC,WAAY,UAAWC,YAAa,UAAWC,OAAQ,UAAWC,UAAW,UAAWC,KAAM,UAAWC,KAAM,UAAWC,UAAW,UAAWC,YAAa,UAAWC,SAAU,UAAWC,OAAQ,UAAWC,UAAW,UAAWC,eAAgB,UAAWC,WAAY,UAAWC,cAAe,UAAWC,SAAU,UAAWC,SAAU,UAAWC,aAAc,UAAWC,YAAa,UAAWC,KAAM,UAAWC,OAAQ,UAAWC,YAAa,UAAWC,MAAO,UAAWC,MAAO,UACjgG,IAAqB,gBAAV78F,GACT,MAAOo0F,GAAWp0F,MAkBtB3C,IAAK,WACLhF,MAAO,SAAkB2H,GACvB,GAAI88F,KAAarjG,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAEhF,IAAc,SAAVuG,EAAJ,CAIA,GAAIkD,OAAO,GAGP65F,EAAYjnG,KAAKknG,eAAeh9F,EAMpC,QALkBrG,KAAdojG,IACF/8F,EAAQ+8F,IAImB,IAAzBtmG,EAAK+B,SAASwH,IAChB,IAA+B,IAA3BvJ,EAAKkK,WAAWX,GAAiB,CACnC,GAAIi9F,GAAYj9F,EAAMG,OAAO,GAAGA,OAAO,EAAGH,EAAMtG,OAAS,GAAG+C,MAAM,IAClEyG,IAASvD,EAAGs9F,EAAU,GAAIr9F,EAAGq9F,EAAU,GAAI1jG,EAAG0jG,EAAU,GAAI3jG,EAAG,OAC1D,KAAgC,IAA5B7C,EAAKwM,YAAYjD,GAAiB,CAC3C,GAAIk9F,GAAal9F,EAAMG,OAAO,GAAGA,OAAO,EAAGH,EAAMtG,OAAS,GAAG+C,MAAM,IACnEyG,IAASvD,EAAGu9F,EAAW,GAAIt9F,EAAGs9F,EAAW,GAAI3jG,EAAG2jG,EAAW,GAAI5jG,EAAG4jG,EAAW,QACxE,KAA+B,IAA3BzmG,EAAKoK,WAAWb,GAAiB,CAC1C,GAAIm9F,GAAS1mG,EAAK8I,SAASS,EAC3BkD,IAASvD,EAAGw9F,EAAOx9F,EAAGC,EAAGu9F,EAAOv9F,EAAGrG,EAAG4jG,EAAO5jG,EAAGD,EAAG,QAGrD,IAAI0G,YAAiBzF,aACHZ,KAAZqG,EAAML,OAA+BhG,KAAZqG,EAAMJ,OAA+BjG,KAAZqG,EAAMzG,EAAiB,CAC3E,GAAI6jG,OAAoBzjG,KAAZqG,EAAM1G,EAAkB0G,EAAM1G,EAAI,KAC9C4J,IAASvD,EAAGK,EAAML,EAAGC,EAAGI,EAAMJ,EAAGrG,EAAGyG,EAAMzG,EAAGD,EAAG8jG,GAMtD,OAAazjG,KAATuJ,EACF,KAAM,IAAI/I,OAAM,iIAAkI,EAAI8sC,EAAqB,SAAGjnC,GAE9KlK,MAAKunG,UAAUn6F,EAAM45F,OAUzBz/F,IAAK,OACLhF,MAAO,eACsBsB,KAAvB7D,KAAKo+F,gBACPp+F,KAAKo+F,gBACLp+F,KAAKo+F,kBAAgBv6F,IAGvB7D,KAAKk+F,SAAU,EACfl+F,KAAKm+C,MAAM9xC,MAAMoM,QAAU,QAC3BzY,KAAKwnG,wBAaPjgG,IAAK,QACLhF,MAAO,WACL,GAAI03F,GAAQj6F,MAKU,OAHF2D,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,MAIjF3D,KAAKi+F,cAAgBt9F,EAAKC,UAAWZ,KAAKkK,SAGvB,IAAjBlK,KAAKk+F,SACPl+F,KAAKm+F,eAAen+F,KAAKg+F,cAG3Bh+F,KAAKm+C,MAAM9xC,MAAMoM,QAAU,OAI3B88B,WAAW,eACmB1xC,KAAxBo2F,EAAMmE,gBACRnE,EAAMmE,gBACNnE,EAAMmE,kBAAgBv6F,KAEvB,MASL0D,IAAK,QACLhF,MAAO,WACLvC,KAAKm+F,eAAen+F,KAAKkK,OACzBlK,KAAKk+F,SAAU,EACfl+F,KAAKynG,WASPlgG,IAAK,SACLhF,MAAO,WACLvC,KAAKk+F,SAAU,EACfl+F,KAAKm+F,eAAen+F,KAAKkK,OACzBlK,KAAK0nG,cAAc1nG,KAAKkK,UAS1B3C,IAAK,YACLhF,MAAO,eACsBsB,KAAvB7D,KAAKi+F,cACPj+F,KAAKo8F,SAASp8F,KAAKi+F,eAAe,GAElC0J,MAAM,wCAYVpgG,IAAK,YACLhF,MAAO,SAAmB6K,IAIL,OAHFzJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,MAI9E3D,KAAKg+F,aAAer9F,EAAKC,UAAWwM,IAGtCpN,KAAKkK,MAAQkD,CACb,IAAIpC,GAAMrK,EAAKmL,SAASsB,EAAKvD,EAAGuD,EAAKtD,EAAGsD,EAAK3J,GAEzCmkG,EAAe,EAAInlG,KAAKomD,GACxBH,EAAS1oD,KAAK6J,EAAImB,EAAII,EACtB6pB,EAAIj1B,KAAK89F,kBAAkB7oE,EAAIyzB,EAASjmD,KAAKw6C,IAAI2qD,EAAe58F,EAAIG,GACpE0jB,EAAI7uB,KAAK89F,kBAAkBjvE,EAAI65B,EAASjmD,KAAK06C,IAAIyqD,EAAe58F,EAAIG,EAExEnL,MAAK6nG,oBAAoBx7F,MAAMnG,KAAO+uB,EAAI,GAAMj1B,KAAK6nG,oBAAoB92F,YAAc,KACvF/Q,KAAK6nG,oBAAoBx7F,MAAM/F,IAAMuoB,EAAI,GAAM7uB,KAAK6nG,oBAAoBrmD,aAAe,KAEvFxhD,KAAK0nG,cAAct6F,MAUrB7F,IAAK,cACLhF,MAAO,SAAqBA,GAC1BvC,KAAKkK,MAAM1G,EAAIjB,EAAQ,IACvBvC,KAAK0nG,cAAc1nG,KAAKkK,UAU1B3C,IAAK,iBACLhF,MAAO,SAAwBA,GAC7B,GAAIyI,GAAMrK,EAAKmL,SAAS9L,KAAKkK,MAAML,EAAG7J,KAAKkK,MAAMJ,EAAG9J,KAAKkK,MAAMzG,EAC/DuH,GAAIK,EAAI9I,EAAQ,GAChB,IAAI6K,GAAOzM,EAAKkM,SAAS7B,EAAIG,EAAGH,EAAII,EAAGJ,EAAIK,EAC3C+B,GAAQ,EAAIpN,KAAKkK,MAAM1G,EACvBxD,KAAKkK,MAAQkD,EACbpN,KAAK0nG,mBAUPngG,IAAK,gBACLhF,MAAO,WACL,GAAI6K,GAAOzJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAKkK,MAEhFc,EAAMrK,EAAKmL,SAASsB,EAAKvD,EAAGuD,EAAKtD,EAAGsD,EAAK3J,GACzC6R,EAAMtV,KAAK8nG,kBAAkBrkD,WAAW,UACnB5/C,KAArB7D,KAAK+nG,cACP/nG,KAAKm5F,YAAc3wF,OAAOw/F,kBAAoB,IAAM1yF,EAAI2yF,8BAAgC3yF,EAAI4yF,2BAA6B5yF,EAAI6yF,0BAA4B7yF,EAAI8yF,yBAA2B9yF,EAAI+yF,wBAA0B,IAExN/yF,EAAIgzF,aAAatoG,KAAKm5F,WAAY,EAAG,EAAGn5F,KAAKm5F,WAAY,EAAG,EAG5D,IAAIl5E,GAAIjgB,KAAK8nG,kBAAkB/2F,YAC3B5F,EAAInL,KAAK8nG,kBAAkBtmD,YAC/BlsC,GAAIsuC,UAAU,EAAG,EAAG3jC,EAAG9U,GAEvBmK,EAAIizF,aAAavoG,KAAK+9F,UAAW,EAAG,GACpCzoF,EAAIuvC,UAAY,eAAiB,EAAI75C,EAAIK,GAAK,IAC9CiK,EAAIkzF,OAAOxoG,KAAK89F,kBAAkB7oE,EAAGj1B,KAAK89F,kBAAkBjvE,EAAG7uB,KAAK6J,GACpEyL,EAAI4kC,OAEJl6C,KAAKyoG,gBAAgBlmG,MAAQ,IAAMyI,EAAIK,EACvCrL,KAAK0oG,aAAanmG,MAAQ,IAAM6K,EAAK5J,EAErCxD,KAAK2oG,gBAAgBt8F,MAAM2tC,gBAAkB,QAAUh6C,KAAKg+F,aAAan0F,EAAI,IAAM7J,KAAKg+F,aAAal0F,EAAI,IAAM9J,KAAKg+F,aAAav6F,EAAI,IAAMzD,KAAKg+F,aAAax6F,EAAI,IACjKxD,KAAK4oG,YAAYv8F,MAAM2tC,gBAAkB,QAAUh6C,KAAKkK,MAAML,EAAI,IAAM7J,KAAKkK,MAAMJ,EAAI,IAAM9J,KAAKkK,MAAMzG,EAAI,IAAMzD,KAAKkK,MAAM1G,EAAI,OASnI+D,IAAK,WACLhF,MAAO,WACLvC,KAAK8nG,kBAAkBz7F,MAAM+D,MAAQ,OACrCpQ,KAAK8nG,kBAAkBz7F,MAAMgE,OAAS,OAEtCrQ,KAAK8nG,kBAAkB13F,MAAQ,IAAMpQ,KAAKm5F,WAC1Cn5F,KAAK8nG,kBAAkBz3F,OAAS,IAAMrQ,KAAKm5F,cAU7C5xF,IAAK,UACLhF,MAAO,WAYL,GAXAvC,KAAKm+C,MAAQjuC,SAASC,cAAc,OACpCnQ,KAAKm+C,MAAMz3C,UAAY,mBAEvB1G,KAAK6oG,eAAiB34F,SAASC,cAAc,OAC7CnQ,KAAK6nG,oBAAsB33F,SAASC,cAAc,OAClDnQ,KAAK6nG,oBAAoBnhG,UAAY,eACrC1G,KAAK6oG,eAAen4F,YAAY1Q,KAAK6nG,qBAErC7nG,KAAK8nG,kBAAoB53F,SAASC,cAAc,UAChDnQ,KAAK6oG,eAAen4F,YAAY1Q,KAAK8nG,mBAEhC9nG,KAAK8nG,kBAAkBrkD,WAOrB,CACL,GAAInuC,GAAMtV,KAAK8nG,kBAAkBrkD,WAAW,KAC5CzjD,MAAKm5F,YAAc3wF,OAAOw/F,kBAAoB,IAAM1yF,EAAI2yF,8BAAgC3yF,EAAI4yF,2BAA6B5yF,EAAI6yF,0BAA4B7yF,EAAI8yF,yBAA2B9yF,EAAI+yF,wBAA0B,GAEtNroG,KAAK8nG,kBAAkBrkD,WAAW,MAAM6kD,aAAatoG,KAAKm5F,WAAY,EAAG,EAAGn5F,KAAKm5F,WAAY,EAAG,OAX1D,CACtC,GAAI14C,GAAWvwC,SAASC,cAAc,MACtCswC,GAASp0C,MAAMnC,MAAQ,MACvBu2C,EAASp0C,MAAMq0C,WAAa,OAC5BD,EAASp0C,MAAMotC,QAAU,OACzBgH,EAASE,UAAY,mDACrB3gD,KAAK8nG,kBAAkBp3F,YAAY+vC,GAQrCzgD,KAAK6oG,eAAeniG,UAAY,YAEhC1G,KAAK8oG,WAAa54F,SAASC,cAAc,OACzCnQ,KAAK8oG,WAAWpiG,UAAY,cAE5B1G,KAAK+oG,cAAgB74F,SAASC,cAAc,OAC5CnQ,KAAK+oG,cAAcriG,UAAY,iBAE/B1G,KAAKgpG,SAAW94F,SAASC,cAAc,OACvCnQ,KAAKgpG,SAAStiG,UAAY,YAE1B1G,KAAK0oG,aAAex4F,SAASC,cAAc,QAC3C,KACEnQ,KAAK0oG,aAAazjG,KAAO,QACzBjF,KAAK0oG,aAAatmG,IAAM,IACxBpC,KAAK0oG,aAAarmG,IAAM,MACxB,MAAOuP,IACT5R,KAAK0oG,aAAanmG,MAAQ,MAC1BvC,KAAK0oG,aAAahiG,UAAY,YAE9B1G,KAAKyoG,gBAAkBv4F,SAASC,cAAc,QAC9C,KACEnQ,KAAKyoG,gBAAgBxjG,KAAO,QAC5BjF,KAAKyoG,gBAAgBrmG,IAAM,IAC3BpC,KAAKyoG,gBAAgBpmG,IAAM,MAC3B,MAAOuP,IACT5R,KAAKyoG,gBAAgBlmG,MAAQ,MAC7BvC,KAAKyoG,gBAAgB/hG,UAAY,YAEjC1G,KAAK8oG,WAAWp4F,YAAY1Q,KAAK0oG,cACjC1oG,KAAK+oG,cAAcr4F,YAAY1Q,KAAKyoG,gBAEpC,IAAIx2D,GAAKjyC,IACTA,MAAK0oG,aAAa/iD,SAAW,WAC3B1T,EAAGg3D,YAAYjpG,KAAKuC,QAEtBvC,KAAK0oG,aAAarN,QAAU,WAC1BppD,EAAGg3D,YAAYjpG,KAAKuC,QAEtBvC,KAAKyoG,gBAAgB9iD,SAAW,WAC9B1T,EAAGi3D,eAAelpG,KAAKuC,QAEzBvC,KAAKyoG,gBAAgBpN,QAAU,WAC7BppD,EAAGi3D,eAAelpG,KAAKuC,QAGzBvC,KAAKmpG,gBAAkBj5F,SAASC,cAAc,OAC9CnQ,KAAKmpG,gBAAgBziG,UAAY,2BACjC1G,KAAKmpG,gBAAgBxoD,UAAY,cAEjC3gD,KAAKopG,aAAel5F,SAASC,cAAc,OAC3CnQ,KAAKopG,aAAa1iG,UAAY,wBAC9B1G,KAAKopG,aAAazoD,UAAY,WAE9B3gD,KAAK4oG,YAAc14F,SAASC,cAAc,OAC1CnQ,KAAK4oG,YAAYliG,UAAY,gBAC7B1G,KAAK4oG,YAAYjoD,UAAY,MAE7B3gD,KAAK2oG,gBAAkBz4F,SAASC,cAAc,OAC9CnQ,KAAK2oG,gBAAgBjiG,UAAY,oBACjC1G,KAAK2oG,gBAAgBhoD,UAAY,UAEjC3gD,KAAKqpG,aAAen5F,SAASC,cAAc,OAC3CnQ,KAAKqpG,aAAa3iG,UAAY,wBAC9B1G,KAAKqpG,aAAa1oD,UAAY,SAC9B3gD,KAAKqpG,aAAajoD,QAAUphD,KAAKynG,MAAM7vC,KAAK53D,MAAM,GAElDA,KAAKspG,YAAcp5F,SAASC,cAAc,OAC1CnQ,KAAKspG,YAAY5iG,UAAY,uBAC7B1G,KAAKspG,YAAY3oD,UAAY,QAC7B3gD,KAAKspG,YAAYloD,QAAUphD,KAAKupG,OAAO3xC,KAAK53D,MAE5CA,KAAKwpG,WAAat5F,SAASC,cAAc,OACzCnQ,KAAKwpG,WAAW9iG,UAAY,sBAC5B1G,KAAKwpG,WAAW7oD,UAAY,OAC5B3gD,KAAKwpG,WAAWpoD,QAAUphD,KAAKypG,MAAM7xC,KAAK53D,MAE1CA,KAAK0pG,WAAax5F,SAASC,cAAc,OACzCnQ,KAAK0pG,WAAWhjG,UAAY,sBAC5B1G,KAAK0pG,WAAW/oD,UAAY,YAC5B3gD,KAAK0pG,WAAWtoD,QAAUphD,KAAK2pG,UAAU/xC,KAAK53D,MAE9CA,KAAKm+C,MAAMztC,YAAY1Q,KAAK6oG,gBAC5B7oG,KAAKm+C,MAAMztC,YAAY1Q,KAAKgpG,UAC5BhpG,KAAKm+C,MAAMztC,YAAY1Q,KAAKmpG,iBAC5BnpG,KAAKm+C,MAAMztC,YAAY1Q,KAAK+oG,eAC5B/oG,KAAKm+C,MAAMztC,YAAY1Q,KAAKopG,cAC5BppG,KAAKm+C,MAAMztC,YAAY1Q,KAAK8oG,YAC5B9oG,KAAKm+C,MAAMztC,YAAY1Q,KAAK4oG,aAC5B5oG,KAAKm+C,MAAMztC,YAAY1Q,KAAK2oG,iBAE5B3oG,KAAKm+C,MAAMztC,YAAY1Q,KAAKqpG,cAC5BrpG,KAAKm+C,MAAMztC,YAAY1Q,KAAKspG,aAC5BtpG,KAAKm+C,MAAMztC,YAAY1Q,KAAKwpG,YAC5BxpG,KAAKm+C,MAAMztC,YAAY1Q,KAAK0pG,eAS9BniG,IAAK,cACLhF,MAAO,WACL,GAAIg5F,GAASv7F,IAEbA,MAAKy2F,QACLz2F,KAAK4pG,SACL5pG,KAAKo3D,OAAS,GAAIloB,GAAOlvC,KAAK8nG,mBAC9B9nG,KAAKo3D,OAAO3/C,IAAI,SAASsH,KAAMs8C,QAAQ,IAEvCuf,EAAW/C,QAAQ73E,KAAKo3D,OAAQ,SAAU7uD,GACxCgzF,EAAOsO,cAActhG,KAEvBvI,KAAKo3D,OAAO7lB,GAAG,MAAO,SAAUhpC,GAC9BgzF,EAAOsO,cAActhG,KAEvBvI,KAAKo3D,OAAO7lB,GAAG,WAAY,SAAUhpC,GACnCgzF,EAAOsO,cAActhG,KAEvBvI,KAAKo3D,OAAO7lB,GAAG,UAAW,SAAUhpC,GAClCgzF,EAAOsO,cAActhG,KAEvBvI,KAAKo3D,OAAO7lB,GAAG,SAAU,SAAUhpC,GACjCgzF,EAAOsO,cAActhG,QAUzBhB,IAAK,qBACLhF,MAAO,WACL,IAAuB,IAAnBvC,KAAK69F,UAAqB,CAC5B,GAAIvoF,GAAMtV,KAAK8nG,kBAAkBrkD,WAAW,UACnB5/C,KAArB7D,KAAK+nG,cACP/nG,KAAKm5F,YAAc3wF,OAAOw/F,kBAAoB,IAAM1yF,EAAI2yF,8BAAgC3yF,EAAI4yF,2BAA6B5yF,EAAI6yF,0BAA4B7yF,EAAI8yF,yBAA2B9yF,EAAI+yF,wBAA0B,IAExN/yF,EAAIgzF,aAAatoG,KAAKm5F,WAAY,EAAG,EAAGn5F,KAAKm5F,WAAY,EAAG,EAG5D,IAAIl5E,GAAIjgB,KAAK8nG,kBAAkB/2F,YAC3B5F,EAAInL,KAAK8nG,kBAAkBtmD,YAC/BlsC,GAAIsuC,UAAU,EAAG,EAAG3jC,EAAG9U,EAGvB,IAAI8pB,OAAI,GACJpG,MAAI,GACJw1B,MAAM,GACNylD,MAAM,EACV9pG,MAAK89F,mBAAsB7oE,EAAO,GAAJhV,EAAS4O,EAAO,GAAJ1jB,GAC1CnL,KAAK6J,EAAI,IAAOoW,CAChB,IAAI2nF,GAAe,EAAInlG,KAAKomD,GAAK,IAE7BkhD,EAAO,EAAI/pG,KAAK6J,EAChBO,MAAM,EACV,KAAKi6C,EAAM,EAAGA,EAAM,IAAKA,IACvB,IAAKylD,EAAM,EAAGA,EAAM9pG,KAAK6J,EAAGigG,IAC1B70E,EAAIj1B,KAAK89F,kBAAkB7oE,EAAI60E,EAAMrnG,KAAKw6C,IAAI2qD,EAAevjD,GAC7Dx1B,EAAI7uB,KAAK89F,kBAAkBjvE,EAAIi7E,EAAMrnG,KAAK06C,IAAIyqD,EAAevjD,GAC7Dj6C,EAAMzJ,EAAKkM,SAASw3C,GAPb,EAAI,KAOqBylD,EAAMC,EAAM,GAC5Cz0F,EAAIuvC,UAAY,OAASz6C,EAAIP,EAAI,IAAMO,EAAIN,EAAI,IAAMM,EAAI3G,EAAI,IAC7D6R,EAAI00F,SAAS/0E,EAAI,GAAKpG,EAAI,GAAK,EAAG,EAGtCvZ,GAAIivC,YAAc,gBAClBjvC,EAAIkzF,OAAOxoG,KAAK89F,kBAAkB7oE,EAAGj1B,KAAK89F,kBAAkBjvE,EAAG7uB,KAAK6J,GACpEyL,EAAI6kC,SAEJn6C,KAAK+9F,UAAYzoF,EAAI20F,aAAa,EAAG,EAAGhqF,EAAG9U,GAE7CnL,KAAK69F,WAAY,KAWnBt2F,IAAK,gBACLhF,MAAO,SAAuBgG,GAC5B,GAAIqoC,GAAO5wC,KAAK6oG,eAAe5iG,wBAC3BC,EAAOqC,EAAMszC,OAAO5mB,EAAI2b,EAAK1qC,KAC7BI,EAAMiC,EAAMszC,OAAOhtB,EAAI+hB,EAAKtqC,IAE5B4jG,EAAU,GAAMlqG,KAAK6oG,eAAernD,aACpC2oD,EAAU,GAAMnqG,KAAK6oG,eAAe93F,YAEpCkkB,EAAI/uB,EAAOikG,EACXt7E,EAAIvoB,EAAM4jG,EAEV7sC,EAAQ56D,KAAK28D,MAAMnqC,EAAGpG,GACtB65B,EAAS,IAAOjmD,KAAKL,IAAIK,KAAKorD,KAAK54B,EAAIA,EAAIpG,EAAIA,GAAIs7E,GAEnDra,EAASrtF,KAAK06C,IAAIkgB,GAAS3U,EAASwhD,EACpCE,EAAU3nG,KAAKw6C,IAAIogB,GAAS3U,EAASyhD,CAEzCnqG,MAAK6nG,oBAAoBx7F,MAAM/F,IAAMwpF,EAAS,GAAM9vF,KAAK6nG,oBAAoBrmD,aAAe,KAC5FxhD,KAAK6nG,oBAAoBx7F,MAAMnG,KAAOkkG,EAAU,GAAMpqG,KAAK6nG,oBAAoB92F,YAAc,IAG7F,IAAI5F,GAAIkyD,GAAS,EAAI56D,KAAKomD,GAC1B19C,GAAIA,EAAI,EAAIA,EAAI,EAAIA,CACpB,IAAIC,GAAIs9C,EAAS1oD,KAAK6J,EAClBmB,EAAMrK,EAAKmL,SAAS9L,KAAKkK,MAAML,EAAG7J,KAAKkK,MAAMJ,EAAG9J,KAAKkK,MAAMzG,EAC/DuH,GAAIG,EAAIA,EACRH,EAAII,EAAIA,CACR,IAAIgC,GAAOzM,EAAKkM,SAAS7B,EAAIG,EAAGH,EAAII,EAAGJ,EAAIK,EAC3C+B,GAAQ,EAAIpN,KAAKkK,MAAM1G,EACvBxD,KAAKkK,MAAQkD,EAGbpN,KAAK2oG,gBAAgBt8F,MAAM2tC,gBAAkB,QAAUh6C,KAAKg+F,aAAan0F,EAAI,IAAM7J,KAAKg+F,aAAal0F,EAAI,IAAM9J,KAAKg+F,aAAav6F,EAAI,IAAMzD,KAAKg+F,aAAax6F,EAAI,IACjKxD,KAAK4oG,YAAYv8F,MAAM2tC,gBAAkB,QAAUh6C,KAAKkK,MAAML,EAAI,IAAM7J,KAAKkK,MAAMJ,EAAI,IAAM9J,KAAKkK,MAAMzG,EAAI,IAAMzD,KAAKkK,MAAM1G,EAAI,QAG9Hw1F,IAGTp5F,GAAiB,QAAIo5F,GAIjB,SAAUn5F,EAAQD,EAASM,GAgC/B,QAASosE,GAAQl2B,EAAWjE,EAAO07B,EAAQ7/D,GAEzC,KAAM7J,MAAMC,QAAQypE,IAAWA,YAAkBt/B,IAAWs/B,YAAkBr/B,KAAaq/B,YAAkBppE,QAAQ,CACnH,GAAIqpE,GAAgB9/D,CACpBA,GAAU6/D,EACVA,EAASC,EAKP9/D,GAAWA,EAAQ+/D,gBACrBvoD,QAAQH,KAAK,uHAGf,IAAI4sB,GAAKjyC,IACTA,MAAKguE,gBACH/oB,MAAO,KACPC,IAAK,KAEL+oB,YAAY,EAEZC,aACEC,KAAM,SACNv/D,KAAM,UAGRnN,OAAQA,EAER2O,MAAO,KACPC,OAAQ,KACR+9D,UAAW,KACXC,UAAW,MAEbruE,KAAKgO,QAAUrN,EAAK+D,cAAe1E,KAAKguE,gBAGxChuE,KAAKmB,QAAQi1C,GAGbp2C,KAAK2sE,cAEL3sE,KAAK2Q,MACHo9C,IAAK/tD,KAAK+tD,IACV6gB,SAAU5uE,KAAKkE,MACf2qE,SACEt9B,GAAIvxC,KAAKuxC,GAAGqmB,KAAK53D,MACjB0xC,IAAK1xC,KAAK0xC,IAAIkmB,KAAK53D,MACnB+rD,KAAM/rD,KAAK+rD,KAAK6L,KAAK53D,OAEvB8uE,eACAnuE,MACEquE,SAAU/8B,EAAGg9B,UAAUrX,KAAK3lB,GAC5Bi9B,eAAgBj9B,EAAGk9B,gBAAgBvX,KAAK3lB,GACxCm9B,OAAQn9B,EAAGo9B,QAAQzX,KAAK3lB,GACxBq9B,aAAcr9B,EAAGs9B,cAAc3X,KAAK3lB,KAKxCjyC,KAAKw7C,MAAQ,GAAI4X,GAAMpzD,KAAK2Q,MAC5B3Q,KAAK2sE,WAAW9nE,KAAK7E,KAAKw7C,OAC1Bx7C,KAAK2Q,KAAK6qC,MAAQx7C,KAAKw7C,MAGvBx7C,KAAK+uE,SAAW,GAAInB,GAAS5tE,KAAK2Q,MAClC3Q,KAAK2sE,WAAW9nE,KAAK7E,KAAK+uE,UAI1B/uE,KAAKyvE,YAAc,GAAItC,GAAYntE,KAAK2Q,MACxC3Q,KAAK2sE,WAAW9nE,KAAK7E,KAAKyvE,aAG1BzvE,KAAKqqG,UAAY,GAAI18B,GAAU3tE,KAAK2Q,MAEpC3Q,KAAK2sE,WAAW9nE,KAAK7E,KAAKqqG,WAE1BrqG,KAAK2vE,UAAY,KACjB3vE,KAAK4vE,WAAa,KAGlB5vE,KAAKuxC,GAAG,MAAO,SAAUhpC,GACvB0pC,EAAG8Z,KAAK,QAAS9Z,EAAG49B,mBAAmBtnE,MAEzCvI,KAAKuxC,GAAG,YAAa,SAAUhpC,GAC7B0pC,EAAG8Z,KAAK,cAAe9Z,EAAG49B,mBAAmBtnE,MAE/CvI,KAAK+tD,IAAIruD,KAAKqwE,cAAgB,SAAUxnE,GACtC0pC,EAAG8Z,KAAK,cAAe9Z,EAAG49B,mBAAmBtnE,KAI3CyF,GACFhO,KAAKkxC,WAAWljC,GAId6/D,GACF7tE,KAAKywE,UAAU5C,GAIb17B,GACFnyC,KAAK0wE,SAASv+B,GAIhBnyC,KAAK2wE,UAvIP,GAEIlvE,IAFUvB,EAAoB,IACrBA,EAAoB,KACpBA,EAAoB,KAC7BS,EAAOT,EAAoB,GAC3BquC,EAAUruC,EAAoB,IAC9BsuC,EAAWtuC,EAAoB,IAC/BkzD,EAAQlzD,EAAoB,KAC5BssE,EAAOtsE,EAAoB,KAC3B0tE,EAAW1tE,EAAoB,KAC/BitE,EAAcjtE,EAAoB,KAClCktE,EAAaltE,EAAoB,KACjCytE,EAAYztE,EAAoB,KAEhC0wE,EAAa1wE,EAAoB,KAAK0wE,WACtCC,EAAa3wE,EAAoB,KAAK2wE,WACtCC,EAAmB5wE,EAAoB,KAAK4wE,iBAE5CC,EAAe7wE,EAAoB,KAAc,QACjD8wE,EAAY9wE,EAAoB,KAAc,OAyHlDosE,GAAQj6D,UAAY,GAAIm6D,GAExBF,EAAQj6D,UAAU6+B,WAAa,SAAUljC,IAGpB,IADFgjE,EAAUI,SAASpjE,EAAS6iE,IAE3CrrD,QAAQotC,IAAI,2DAA4Dge,GAG1EpE,EAAKn6D,UAAU6+B,WAAW3wC,KAAKP,KAAMgO,IAOvCs+D,EAAQj6D,UAAUq+D,SAAW,SAAUv+B,GACrC,GAGIq/B,GAHA84B,EAAgC,MAAlBtqG,KAAK2vE,SAsBvB,IAfE6B,EAHGr/B,EAEMA,YAAiB5D,IAAW4D,YAAiB3D,GACzC2D,EAGA,GAAI5D,GAAQ4D,GACvBltC,MACEggD,MAAO,OACPC,IAAK,UARI,KAcfllD,KAAK2vE,UAAY6B,EACjBxxE,KAAKqqG,WAAarqG,KAAKqqG,UAAU35B,SAASc,GAEtC84B,EACF,OAA0BzmG,IAAtB7D,KAAKgO,QAAQi3C,WAA0CphD,IAApB7D,KAAKgO,QAAQk3C,IAAkB,CACpE,GAAID,OAA8BphD,IAAtB7D,KAAKgO,QAAQi3C,MAAqBjlD,KAAKgO,QAAQi3C,MAAQ,KAC/DC,MAA0BrhD,IAApB7D,KAAKgO,QAAQk3C,IAAmBllD,KAAKgO,QAAQk3C,IAAM,IAC7DllD,MAAKswE,UAAUrrB,EAAOC,GAAOqrB,WAAW,QAExCvwE,MAAKwwE,KAAMD,WAAW,KAS5BjE,EAAQj6D,UAAUo+D,UAAY,SAAU5C,GAEtC,GAAI2D,EAIFA,GAHG3D,EAEMA,YAAkBt/B,IAAWs/B,YAAkBr/B,GAC3Cq/B,EAGA,GAAIt/B,GAAQs/B,GALZ,KAQf7tE,KAAK4vE,WAAa4B,EAClBxxE,KAAKqqG,UAAU55B,UAAUe,IAS3BlF,EAAQj6D,UAAUk4F,UAAY,SAAUj3B,EAASljE,EAAOC,GAOtD,WANcxM,KAAVuM,IACFA,EAAQ,QAEKvM,KAAXwM,IACFA,EAAS,QAE4BxM,KAAnC7D,KAAKqqG,UAAUx8B,OAAOyF,GACjBtzE,KAAKqqG,UAAUx8B,OAAOyF,GAASi3B,UAAUn6F,EAAOC,GAEhD,sBAAwBijE,EAAU,KAS7ChH,EAAQj6D,UAAUm4F,eAAiB,SAAUl3B,GAC3C,WAAuCzvE,KAAnC7D,KAAKqqG,UAAUx8B,OAAOyF,KACjBtzE,KAAKqqG,UAAUx8B,OAAOyF,GAAS9tB,cAAkE3hD,KAAtD7D,KAAKqqG,UAAUr8F,QAAQ6/D,OAAOr9D,WAAW8iE,IAA+E,GAArDtzE,KAAKqqG,UAAUr8F,QAAQ6/D,OAAOr9D,WAAW8iE,MAYlKhH,EAAQj6D,UAAUw/D,aAAe,WAC/B,GAAIzvE,GAAM,KACNC,EAAM,IAGV,KAAK,GAAIixE,KAAWtzE,MAAKqqG,UAAUx8B,OACjC,GAAI7tE,KAAKqqG,UAAUx8B,OAAOvqE,eAAegwE,IACO,GAA1CtzE,KAAKqqG,UAAUx8B,OAAOyF,GAAS9tB,QACjC,IAAK,GAAIzhD,GAAI,EAAGA,EAAI/D,KAAKqqG,UAAUx8B,OAAOyF,GAAS3D,UAAU/rE,OAAQG,IAAK,CACxE,GAAI6K,GAAO5O,KAAKqqG,UAAUx8B,OAAOyF,GAAS3D,UAAU5rE,GAChDxB,EAAQ5B,EAAKqE,QAAQ4J,EAAKqmB,EAAG,QAAQ7vB,SACzChD,GAAa,MAAPA,EAAcG,EAAQH,EAAMG,EAAQA,EAAQH,EAClDC,EAAa,MAAPA,EAAcE,EAAQF,EAAME,EAAQA,EAAQF,EAM1D,OACED,IAAY,MAAPA,EAAc,GAAIS,MAAKT,GAAO,KACnCC,IAAY,MAAPA,EAAc,GAAIQ,MAAKR,GAAO,OAUvCiqE,EAAQj6D,UAAUw9D,mBAAqB,SAAUtnE,GAC/C,GAAI4uC,GAAU5uC,EAAMszC,OAAStzC,EAAMszC,OAAO5mB,EAAI1sB,EAAM4uC,QAChDG,EAAU/uC,EAAMszC,OAAStzC,EAAMszC,OAAOhtB,EAAItmB,EAAM+uC,QAChDriB,EAAIkiB,EAAUx2C,EAAKoF,gBAAgB/F,KAAK+tD,IAAI6kB,iBAC5C/jD,EAAIyoB,EAAU32C,EAAK0F,eAAerG,KAAK+tD,IAAI6kB,iBAC3CtyC,EAAOtgC,KAAKqvE,QAAQp6C,GAEpB89C,EAAa3F,EAAW4F,qBAAqBzqE,GAE7CV,EAAUlH,EAAK+H,UAAUH,GACzB4qE,EAAO,IACPxyE,GAAKoI,UAAUlB,EAAS7H,KAAK+uE,SAAShhB,IAAIqlB,YAC5CD,EAAO,OACEnzE,KAAKwvE,WAAa7uE,EAAKoI,UAAUlB,EAAS7H,KAAKwvE,UAAUzhB,IAAIqlB,YACtED,EAAO,OACExyE,EAAKoI,UAAUlB,EAAS7H,KAAKqqG,UAAUI,UAAU18C,IAAI5P,OAC9Dg1B,EAAO,YACExyE,EAAKoI,UAAUlB,EAAS7H,KAAKqqG,UAAUK,WAAW38C,IAAI5P,OAC/Dg1B,EAAO,YACExyE,EAAKoI,UAAUlB,EAAS7H,KAAKqqG,UAAUM,WAAW58C,IAAI5P,OAC/Dg1B,EAAO,SACExyE,EAAKoI,UAAUlB,EAAS7H,KAAKqqG,UAAUO,YAAY78C,IAAI5P,OAChEg1B,EAAO,SACgB,MAAdJ,EACTI,EAAO,cACExyE,EAAKoI,UAAUlB,EAAS7H,KAAKyvE,YAAY1e,KAClDoiB,EAAO,eACExyE,EAAKoI,UAAUlB,EAAS7H,KAAK+tD,IAAIlS,UAC1Cs3B,EAAO,aAGT,IAAI5wE,MACAkoG,EAAYzqG,KAAKqqG,UAAUI,UAC3BC,EAAa1qG,KAAKqqG,UAAUK,UAQhC,QAPKD,EAAUrxB,QAAUp5E,KAAK2vE,UAAU/rE,OAAS,GAC/CrB,EAAMsC,KAAK4lG,EAAUI,cAAch8E,KAEhC67E,EAAWtxB,QAAUp5E,KAAK2vE,UAAU/rE,OAAS,GAChDrB,EAAMsC,KAAK6lG,EAAWG,cAAch8E,KAIpCtmB,MAAOA,EACP4qE,KAAMA,EACNI,MAAOhrE,EAAMgvD,SAAWhvD,EAAMgvD,SAASgc,MAAQhrE,EAAMgrE,MACrDC,MAAOjrE,EAAMgvD,SAAWhvD,EAAMgvD,SAASic,MAAQjrE,EAAMirE,MACrDv+C,EAAGA,EACHpG,EAAGA,EACHyR,KAAMA,EACN/9B,MAAOA,IASX+pE,EAAQj6D,UAAU4+D,oBAAsB,WACtC,MAAO,IAAIF,GAAa/wE,KAAMA,KAAK+tD,IAAI3X,UAAW06B,IAGpDjxE,EAAOD,QAAU0sE,GAIb,SAAUzsE,EAAQD,EAASM,GA+B/B,QAASytE,GAAUh9D,EAAM3C,GACvBhO,KAAKK,GAAKM,EAAKuC,aACflD,KAAK2Q,KAAOA,EAEZ3Q,KAAKguE,gBACH88B,iBAAkB,OAClBC,aAAc,UACdhiF,MAAM,EACNiiF,UAAU,EACVplF,OAAO,EACPqlF,YAAa,QACbC,QACEh9F,SAAS,EACTggE,YAAa,UAEf7hE,MAAO,OACP8+F,UACE/6F,MAAO,GACPg7F,YAAY,EACZtrB,MAAO,UAETurB,eACEn9F,SAAS,EACTo9F,gBAAiB,cACjBhE,MAAO,IAET1qB,YACE1uE,SAAS,EACTmiC,KAAM,EACNhkC,MAAO,UAETk/F,YACAC,UACA39B,QACEr9D,gBAKJxQ,KAAKgO,QAAUrN,EAAKC,UAAWZ,KAAKguE,gBACpChuE,KAAK+tD,OACL/tD,KAAKkE,SACLlE,KAAKo3D,OAAS,KACdp3D,KAAK6tE,UACL7tE,KAAKyrG,oBAAqB,EAC1BzrG,KAAK0rG,iBAAkB,EACvB1rG,KAAK2rG,yBAA0B,EAC/B3rG,KAAK4rG,kBAAmB,CAExB,IAAI35D,GAAKjyC,IACTA,MAAK2vE,UAAY,KACjB3vE,KAAK4vE,WAAa,KAGlB5vE,KAAK0hF,eACH/wD,IAAO,SAAapoB,EAAOspC,EAAQC,GACjCG,EAAG0vC,OAAO9vC,EAAOM,QAEnBC,OAAU,SAAgB7pC,EAAOspC,EAAQC,GACvCG,EAAG2vC,UAAU/vC,EAAOM,QAEtByB,OAAU,SAAgBrrC,EAAOspC,EAAQC,GACvCG,EAAG4vC,UAAUhwC,EAAOM,SAKxBnyC,KAAK8hF,gBACHnxD,IAAO,SAAapoB,EAAOspC,EAAQC,GACjCG,EAAG8vC,aAAalwC,EAAOM,QAEzBC,OAAU,SAAgB7pC,EAAOspC,EAAQC,GACvCG,EAAGqwC,gBAAgBzwC,EAAOM,QAE5ByB,OAAU,SAAgBrrC,EAAOspC,EAAQC,GACvCG,EAAGswC,gBAAgB1wC,EAAOM,SAI9BnyC,KAAKmyC,SACLnyC,KAAKqxE,aACLrxE,KAAK6rG,UAAY7rG,KAAK2Q,KAAK6qC,MAAMyJ,MACjCjlD,KAAK0iF,eAEL1iF,KAAK8rG,eACL9rG,KAAKkxC,WAAWljC,GAChBhO,KAAK+rG,0BAA4B,GACjC/rG,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WACnCU,EAAG45D,UAAY55D,EAAGthC,KAAK6qC,MAAMyJ,MAC7BhT,EAAG+5D,IAAI3/F,MAAMnG,KAAOvF,EAAKuI,OAAOK,QAAQ0oC,EAAG/tC,MAAMkM,OAEjD6hC,EAAG25D,kBAAmB,EAEtB35D,EAAGwN,OAAOl/C,KAAK0xC,KAIjBjyC,KAAKmB,UACLnB,KAAKisG,WAAcD,IAAKhsG,KAAKgsG,IAAKF,YAAa9rG,KAAK8rG,YAAa99F,QAAShO,KAAKgO,QAAS6/D,OAAQ7tE,KAAK6tE,QA7HvG,GAAItsE,GAAWrB,EAAoB,IAE/BsB,EAEJ,SAAgCV,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFnDS,GAIlCZ,EAAOT,EAAoB,GAC3BouC,EAAUpuC,EAAoB,IAC9BquC,EAAUruC,EAAoB,IAC9BsuC,EAAWtuC,EAAoB,IAC/BgtE,EAAYhtE,EAAoB,KAChCmtE,EAAWntE,EAAoB,KAC/BqtE,EAAartE,EAAoB,KACjCwtE,EAASxtE,EAAoB,KAC7BgsG,EAAOhsG,EAAoB,KAC3BisG,EAAQjsG,EAAoB,KAC5BksG,EAASlsG,EAAoB,IAgHjCytE,GAAUt7D,UAAY,GAAI66D,GAK1BS,EAAUt7D,UAAUlR,QAAU,WAC5B,GAAIg9C,GAAQjuC,SAASC,cAAc,MACnCguC,GAAMz3C,UAAY,iBAClB1G,KAAK+tD,IAAI5P,MAAQA,EAGjBn+C,KAAKgsG,IAAM97F,SAAS2/B,gBAAgB,6BAA8B,OAClE7vC,KAAKgsG,IAAI3/F,MAAMkE,SAAW,WAC1BvQ,KAAKgsG,IAAI3/F,MAAMgE,QAAU,GAAKrQ,KAAKgO,QAAQi9F,aAAarhG,QAAQ,KAAM,IAAM,KAC5E5J,KAAKgsG,IAAI3/F,MAAMoM,QAAU,QACzB0lC,EAAMztC,YAAY1Q,KAAKgsG,KAGvBhsG,KAAKgO,QAAQu9F,SAASr9B,YAAc,OACpCluE,KAAKyqG,UAAY,GAAIp9B,GAASrtE,KAAK2Q,KAAM3Q,KAAKgO,QAAQu9F,SAAUvrG,KAAKgsG,IAAKhsG,KAAKgO,QAAQ6/D,QAEvF7tE,KAAKgO,QAAQu9F,SAASr9B,YAAc,QACpCluE,KAAK0qG,WAAa,GAAIr9B,GAASrtE,KAAK2Q,KAAM3Q,KAAKgO,QAAQu9F,SAAUvrG,KAAKgsG,IAAKhsG,KAAKgO,QAAQ6/D,cACjF7tE,MAAKgO,QAAQu9F,SAASr9B,YAG7BluE,KAAK2qG,WAAa,GAAIj9B,GAAO1tE,KAAK2Q,KAAM3Q,KAAKgO,QAAQw9F,OAAQ,OAAQxrG,KAAKgO,QAAQ6/D,QAClF7tE,KAAK4qG,YAAc,GAAIl9B,GAAO1tE,KAAK2Q,KAAM3Q,KAAKgO,QAAQw9F,OAAQ,QAASxrG,KAAKgO,QAAQ6/D,QAEpF7tE,KAAKoyE,QAOPzE,EAAUt7D,UAAU6+B,WAAa,SAAUljC,GACzC,GAAIA,EAAS,CACX,GAAIV,IAAU,WAAY,eAAgB,QAAS,SAAU,cAAe,mBAAoB,QAAS,WAAY,WAAY,OAAQ,cAC7GzJ,KAAxBmK,EAAQi9F,iBAAgDpnG,KAAnBmK,EAAQqC,QAC/CrQ,KAAK0rG,iBAAkB,EACvB1rG,KAAK2rG,yBAA0B,OACwB9nG,KAA9C7D,KAAK2Q,KAAKi+D,SAASgE,gBAAgBviE,YAAgDxM,KAAxBmK,EAAQi9F,aACxEjhG,UAAUgE,EAAQi9F,YAAc,IAAIrhG,QAAQ,KAAM,KAAO5J,KAAK2Q,KAAKi+D,SAASgE,gBAAgBviE,SAC9FrQ,KAAK0rG,iBAAkB,GAG3B/qG,EAAK2D,oBAAoBgJ,EAAQtN,KAAKgO,QAASA,GAC/CrN,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS;+CACzCrN,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS,cACzCrN,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS,UACzCrN,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS,UAErCA,EAAQq9F,eAC6C,WAAnD,EAAI7pG,EAAkB,SAAGwM,EAAQq9F,gBAC/Br9F,EAAQq9F,cAAcC,kBACqB,WAAzCt9F,EAAQq9F,cAAcC,gBACxBtrG,KAAKgO,QAAQq9F,cAAc/D,MAAQ,EACe,WAAzCt5F,EAAQq9F,cAAcC,gBAC/BtrG,KAAKgO,QAAQq9F,cAAc/D,MAAQ,GAEnCtnG,KAAKgO,QAAQq9F,cAAcC,gBAAkB,cAC7CtrG,KAAKgO,QAAQq9F,cAAc/D,MAAQ,KAMvCtnG,KAAKyqG,eACkB5mG,KAArBmK,EAAQu9F,WACVvrG,KAAKyqG,UAAUv5D,WAAWlxC,KAAKgO,QAAQu9F,UACvCvrG,KAAK0qG,WAAWx5D,WAAWlxC,KAAKgO,QAAQu9F,WAIxCvrG,KAAK2qG,gBACgB9mG,KAAnBmK,EAAQw9F,SACVxrG,KAAK2qG,WAAWz5D,WAAWlxC,KAAKgO,QAAQw9F,QACxCxrG,KAAK4qG,YAAY15D,WAAWlxC,KAAKgO,QAAQw9F,SAIzCxrG,KAAK6tE,OAAOvqE,eAhMJ,kBAiMVtD,KAAK6tE,OAAgB,cAAE38B,WAAWljC,GAKlChO,KAAK+tD,IAAI5P,QAEXn+C,KAAK4rG,kBAAmB,EACxB5rG,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAa3a,OAAO,MAO/Cu8B,EAAUt7D,UAAUP,KAAO,WAErB9R,KAAK+tD,IAAI5P,MAAMr1C,YACjB9I,KAAK+tD,IAAI5P,MAAMr1C,WAAW5G,YAAYlC,KAAK+tD,IAAI5P,QAQnDwvB,EAAUt7D,UAAU+/D,KAAO,WAEpBpyE,KAAK+tD,IAAI5P,MAAMr1C,YAClB9I,KAAK2Q,KAAKo9C,IAAIlS,OAAOnrC,YAAY1Q,KAAK+tD,IAAI5P,QAQ9CwvB,EAAUt7D,UAAUq+D,SAAW,SAAUv+B,GACvC,GACIQ,GADAV,EAAKjyC,KAELylF,EAAezlF,KAAK2vE,SAGxB,IAAKx9B,EAEE,CAAA,KAAIA,YAAiB5D,IAAW4D,YAAiB3D,IAGtD,KAAM,IAAIjqC,WAAU,kDAFpBvE,MAAK2vE,UAAYx9B,MAFjBnyC,MAAK2vE,UAAY,IAkBnB,IAXI8V,IAEF9kF,EAAKuG,QAAQlH,KAAK0hF,cAAe,SAAUv6E,EAAUoB,GACnDk9E,EAAa/zC,IAAInpC,EAAOpB,KAI1BwrC,EAAM8yC,EAAapyC,SACnBrzC,KAAK6hF,UAAUlvC,IAGb3yC,KAAK2vE,UAAW,CAElB,GAAItvE,GAAKL,KAAKK,EACdM,GAAKuG,QAAQlH,KAAK0hF,cAAe,SAAUv6E,EAAUoB,GACnD0pC,EAAG09B,UAAUp+B,GAAGhpC,EAAOpB,EAAU9G,KAInCsyC,EAAM3yC,KAAK2vE,UAAUt8B,SACrBrzC,KAAK2hF,OAAOhvC,KAQhBg7B,EAAUt7D,UAAUo+D,UAAY,SAAU5C,GACxC,GACIl7B,GADAV,EAAKjyC,IAIT,IAAIA,KAAK4vE,WAAY,CACnBjvE,EAAKuG,QAAQlH,KAAK8hF,eAAgB,SAAU36E,EAAUoB,GACpD0pC,EAAG29B,WAAWl+B,IAAInpC,EAAOpB,KAI3BwrC,EAAM3yC,KAAK4vE,WAAWv8B,SACtBrzC,KAAK4vE,WAAa,IAClB,KAAK,GAAI7rE,GAAI,EAAGA,EAAI4uC,EAAI/uC,OAAQG,IAC9B/D,KAAKqsG,aAAa15D,EAAI5uC,IAK1B,GAAK8pE,EAEE,CAAA,KAAIA,YAAkBt/B,IAAWs/B,YAAkBr/B,IAGxD,KAAM,IAAIjqC,WAAU,kDAFpBvE,MAAK4vE,WAAa/B,MAFlB7tE,MAAK4vE,WAAa,IAOpB,IAAI5vE,KAAK4vE,WAAY,CAEnB,GAAIvvE,GAAKL,KAAKK,EACdM,GAAKuG,QAAQlH,KAAK8hF,eAAgB,SAAU36E,EAAUoB,GACpD0pC,EAAG29B,WAAWr+B,GAAGhpC,EAAOpB,EAAU9G,KAIpCsyC,EAAM3yC,KAAK4vE,WAAWv8B,SACtBrzC,KAAK+hF,aAAapvC,KAItBg7B,EAAUt7D,UAAUuvE,UAAY,SAAUjvC,GACxC3yC,KAAKssG,oBAAoB35D,IAE3Bg7B,EAAUt7D,UAAUsvE,OAAS,SAAUhvC,GACrC3yC,KAAK4hF,UAAUjvC,IAEjBg7B,EAAUt7D,UAAUwvE,UAAY,SAAUlvC,GACxC3yC,KAAK4hF,UAAUjvC,IAEjBg7B,EAAUt7D,UAAUiwE,gBAAkB,SAAUE,GAC9CxiF,KAAKssG,oBAAoB,KAAM9pB,IAEjC7U,EAAUt7D,UAAU0vE,aAAe,SAAUS,GAC3CxiF,KAAKsiF,gBAAgBE,IAQvB7U,EAAUt7D,UAAUkwE,gBAAkB,SAAUC,GAC9C,IAAK,GAAIz+E,GAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IACnC/D,KAAKqsG,aAAa7pB,EAASz+E,GAE7B/D,MAAK4rG,kBAAmB,EACxB5rG,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAa3a,OAAO,KAQ7Cu8B,EAAUt7D,UAAUg6F,aAAe,SAAU/4B,GACvCtzE,KAAK6tE,OAAOvqE,eAAegwE,KACwB,SAAjDtzE,KAAK6tE,OAAOyF,GAAStlE,QAAQ88F,kBAC/B9qG,KAAK0qG,WAAW6B,YAAYj5B,GAC5BtzE,KAAK4qG,YAAY2B,YAAYj5B,GAC7BtzE,KAAK4qG,YAAYnrD,WAEjBz/C,KAAKyqG,UAAU8B,YAAYj5B,GAC3BtzE,KAAK2qG,WAAW4B,YAAYj5B,GAC5BtzE,KAAK2qG,WAAWlrD,gBAEXz/C,MAAK6tE,OAAOyF,KAWvB3F,EAAUt7D,UAAUm6F,aAAe,SAAU/6B,EAAO6B,GAC7CtzE,KAAK6tE,OAAOvqE,eAAegwE,IAU9BtzE,KAAK6tE,OAAOyF,GAASlhC,OAAOq/B,GACyB,SAAjDzxE,KAAK6tE,OAAOyF,GAAStlE,QAAQ88F,kBAC/B9qG,KAAK0qG,WAAWhqB,YAAYpN,EAAStzE,KAAK6tE,OAAOyF,IACjDtzE,KAAK4qG,YAAYlqB,YAAYpN,EAAStzE,KAAK6tE,OAAOyF,IAElDtzE,KAAKyqG,UAAU8B,YAAYj5B,GAC3BtzE,KAAK2qG,WAAW4B,YAAYj5B,KAE5BtzE,KAAKyqG,UAAU/pB,YAAYpN,EAAStzE,KAAK6tE,OAAOyF,IAChDtzE,KAAK2qG,WAAWjqB,YAAYpN,EAAStzE,KAAK6tE,OAAOyF,IAEjDtzE,KAAK0qG,WAAW6B,YAAYj5B,GAC5BtzE,KAAK4qG,YAAY2B,YAAYj5B,MArB/BtzE,KAAK6tE,OAAOyF,GAAW,GAAI/F,GAAWkE,EAAO6B,EAAStzE,KAAKgO,QAAShO,KAAK+rG,0BACpB,SAAjD/rG,KAAK6tE,OAAOyF,GAAStlE,QAAQ88F,kBAC/B9qG,KAAK0qG,WAAW+B,SAASn5B,EAAStzE,KAAK6tE,OAAOyF,IAC9CtzE,KAAK4qG,YAAY6B,SAASn5B,EAAStzE,KAAK6tE,OAAOyF,MAE/CtzE,KAAKyqG,UAAUgC,SAASn5B,EAAStzE,KAAK6tE,OAAOyF,IAC7CtzE,KAAK2qG,WAAW8B,SAASn5B,EAAStzE,KAAK6tE,OAAOyF,MAkBlDtzE,KAAK2qG,WAAWlrD,SAChBz/C,KAAK4qG,YAAYnrD,UAUnBkuB,EAAUt7D,UAAUi6F,oBAAsB,SAAU35D,EAAK6vC,GACvD,GAAsB,MAAlBxiF,KAAK2vE,UAAmB,CAC1B,GAAI+8B,MACAv6D,EAAQnyC,KAAK2vE,UAAUl4D,MACvBs5B,EAAU/wC,KAAK2vE,UAAU7+B,SACzB67D,IACAh6D,IACFA,EAAI7nC,IAAI,SAAUzK,GAChBssG,EAAMtsG,GAAMA,GAMhB,KAAK,GADDusG,MACK7oG,EAAI,EAAGA,EAAIouC,EAAMvuC,OAAQG,IAAK,CACrC,GAAI6K,GAAOujC,EAAMpuC,GACbuvE,EAAU1kE,EAAK6iE,KACH,QAAZ6B,OAAgCzvE,KAAZyvE,IACtBA,EAvaQ,iBAyaVs5B,EAAYtpG,eAAegwE,GAAWs5B,EAAYt5B,KAAas5B,EAAYt5B,GAAW,EAIxF,GAAIu5B,KACJ,KAAKrqB,GAAY7vC,EACf,IAAK,GAAI2gC,KAAWtzE,MAAK6tE,OACvB,GAAI7tE,KAAK6tE,OAAOvqE,eAAegwE,GAAU,CACvC,GAAI7B,GAAQzxE,KAAK6tE,OAAOyF,GACpBw5B,EAAiBr7B,EAAMiU,UAE3BgnB,GAAcp5B,GAAWw5B,EAAehmG,OAAO,SAAU8H,GAEvD,MADAi+F,GAAiBj+F,EAAKmiC,IAAYniC,EAAKmiC,GAChCniC,EAAKmiC,KAAa47D,EAAM/9F,EAAKmiC,KAEtC,IAAIkc,GAAY2/C,EAAYt5B,EAC5Bs5B,GAAYt5B,IAAYo5B,EAAcp5B,GAAS1vE,OAC3C8oG,EAAcp5B,GAAS1vE,OAASqpD,IAClCy/C,EAAcp5B,GAASrmB,EAAY,OAO3C,IAAK,GAAIlpD,GAAI,EAAGA,EAAIouC,EAAMvuC,OAAQG,IAAK,CACrC,GAAI6K,GAAOujC,EAAMpuC,GACbuvE,EAAU1kE,EAAK6iE,KAInB,IAHgB,OAAZ6B,OAAgCzvE,KAAZyvE,IACtBA,EAtcQ,iBAwcLkP,IAAY7vC,GAAO/jC,EAAKmiC,KAAa47D,EAAM/9F,EAAKmiC,MAAa87D,EAAiBvpG,eAAesL,EAAKmiC,IAAvG,CAGK27D,EAAcppG,eAAegwE,KAChCo5B,EAAcp5B,GAAW,GAAInvE,OAAMyoG,EAAYt5B,IAGjD,IAAIy5B,GAAWpsG,EAAK8M,aAAamB,EACjCm+F,GAAS93E,EAAIt0B,EAAKqE,QAAQ4J,EAAKqmB,EAAG,QAClC83E,EAAS7nD,IAAMvkD,EAAKqE,QAAQ4J,EAAKs2C,IAAK,QACtC6nD,EAASC,SAAWp+F,EAAKigB,EACzBk+E,EAASl+E,EAAIhtB,OAAO+M,EAAKigB,GACzBk+E,EAASh8D,GAAWniC,EAAKmiC,EAEzB,IAAIh+B,GAAQ25F,EAAcp5B,GAAS1vE,OAASgpG,EAAYt5B,IACxDo5B,GAAcp5B,GAASvgE,GAASg6F,GAIlC,IAAK,GAAIz5B,KAAWtzE,MAAK6tE,OACnB7tE,KAAK6tE,OAAOvqE,eAAegwE,KACxBo5B,EAAcppG,eAAegwE,KAChCo5B,EAAcp5B,GAAW,GAAInvE,OAAM,IAMzC,KAAK,GAAImvE,KAAWo5B,GAClB,GAAIA,EAAcppG,eAAegwE,GAC/B,GAAqC,GAAjCo5B,EAAcp5B,GAAS1vE,OACrB5D,KAAK6tE,OAAOvqE,eAAegwE,IAC7BtzE,KAAKqsG,aAAa/4B,OAEf,CACL,GAAI7B,OAAQ5tE,OACWA,IAAnB7D,KAAK4vE,aACP6B,EAAQzxE,KAAK4vE,WAAWn4D,IAAI67D,QAEjBzvE,IAAT4tE,IACFA,GAAUpxE,GAAIizE,EAAS7iC,QAASzwC,KAAKgO,QAAQ+8F,aAAez3B,IAE9DtzE,KAAKwsG,aAAa/6B,EAAO6B,GACzBtzE,KAAK6tE,OAAOyF,GAAS5C,SAASg8B,EAAcp5B,IAIlDtzE,KAAK4rG,kBAAmB,EACxB5rG,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAa3a,OAAO,MAQ/Cu8B,EAAUt7D,UAAUotC,OAAS,WAC3B,GAAI24B,IAAU,CAGdp4E,MAAKkE,MAAMkM,MAAQpQ,KAAK+tD,IAAI5P,MAAMttC,YAClC7Q,KAAKkE,MAAMmM,OAASrQ,KAAK2Q,KAAKi+D,SAASgE,gBAAgBviE,OAASrQ,KAAK2Q,KAAKi+D,SAASjjE,OAAOrF,IAAMtG,KAAK2Q,KAAKi+D,SAASjjE,OAAOgzC,OAG1Hy5B,EAAUp4E,KAAKm4E,cAAgBC,CAG/B,IAAIgM,GAAkBpkF,KAAK2Q,KAAK6qC,MAAM0J,IAAMllD,KAAK2Q,KAAK6qC,MAAMyJ,MACxDo/B,EAASD,GAAmBpkF,KAAKskF,mBA2BrC,IA1BAtkF,KAAKskF,oBAAsBF,EAIZ,GAAXhM,IACFp4E,KAAKgsG,IAAI3/F,MAAM+D,MAAQzP,EAAKuI,OAAOK,OAAO,EAAIvJ,KAAKkE,MAAMkM,OACzDpQ,KAAKgsG,IAAI3/F,MAAMnG,KAAOvF,EAAKuI,OAAOK,QAAQvJ,KAAKkE,MAAMkM,QAGL,IAA3CpQ,KAAKgO,QAAQqC,OAAS,IAAIzL,QAAQ,MAA8C,GAAhC5E,KAAK2rG,0BACxD3rG,KAAK0rG,iBAAkB,IAKC,GAAxB1rG,KAAK0rG,iBACH1rG,KAAKgO,QAAQi9F,aAAejrG,KAAKkE,MAAMmM,OAAS,OAClDrQ,KAAKgO,QAAQi9F,YAAcjrG,KAAKkE,MAAMmM,OAAS,KAC/CrQ,KAAKgsG,IAAI3/F,MAAMgE,OAASrQ,KAAKkE,MAAMmM,OAAS,MAE9CrQ,KAAK0rG,iBAAkB,GAEvB1rG,KAAKgsG,IAAI3/F,MAAMgE,QAAU,GAAKrQ,KAAKgO,QAAQi9F,aAAarhG,QAAQ,KAAM,IAAM,KAI/D,GAAXwuE,GAA6B,GAAViM,GAA6C,GAA3BrkF,KAAKyrG,oBAAuD,GAAzBzrG,KAAK4rG,iBAC/ExzB,EAAUp4E,KAAKitG,gBAAkB70B,EACjCp4E,KAAK4rG,kBAAmB,MAGxB,IAAsB,GAAlB5rG,KAAK6rG,UAAgB,CACvB,GAAIhvE,GAAS78B,KAAK2Q,KAAK6qC,MAAMyJ,MAAQjlD,KAAK6rG,UACtCrwD,EAAQx7C,KAAK2Q,KAAK6qC,MAAM0J,IAAMllD,KAAK2Q,KAAK6qC,MAAMyJ,KAClD,IAAwB,GAApBjlD,KAAKkE,MAAMkM,MAAY,CACzB,GAAI88F,GAAmBltG,KAAKkE,MAAMkM,MAAQorC,EACtCjL,EAAU1T,EAASqwE,CACvBltG,MAAKgsG,IAAI3/F,MAAMnG,MAAQlG,KAAKkE,MAAMkM,MAAQmgC,EAAU,MAM1D,MAFAvwC,MAAK2qG,WAAWlrD,SAChBz/C,KAAK4qG,YAAYnrD,SACV24B,GAGTzK,EAAUt7D,UAAU86F,mBAAqB,WAEvC,GAAIC,KACJ,KAAK,GAAI95B,KAAWtzE,MAAK6tE,OACvB,GAAI7tE,KAAK6tE,OAAOvqE,eAAegwE,GAAU,CACvC,GAAI7B,GAAQzxE,KAAK6tE,OAAOyF,EACH,IAAjB7B,EAAMjsB,aAAgE3hD,KAA5C7D,KAAKgO,QAAQ6/D,OAAOr9D,WAAW8iE,IAAqE,GAA3CtzE,KAAKgO,QAAQ6/D,OAAOr9D,WAAW8iE,IACpH85B,EAAUvoG,MAAOxE,GAAIizE,EAAS+5B,OAAQ57B,EAAMzjE,QAAQq/F,SAI1D1sG,EAAK+M,WAAW0/F,EAAW,SAAU5pG,EAAGC,GACtC,GAAIm5C,GAAKp5C,EAAE6pG,OACPC,EAAK7pG,EAAE4pG,MAGX,YAFWxpG,KAAP+4C,IAAkBA,EAAK,OAChB/4C,KAAPypG,IAAkBA,EAAK,GACpB1wD,GAAM0wD,EAAK,EAAI1wD,EAAK0wD,GAAM,EAAI,GAGvC,KAAK,GADD9qB,GAAW,GAAIr+E,OAAMipG,EAAUxpG,QAC1BG,EAAI,EAAGA,EAAIqpG,EAAUxpG,OAAQG,IACpCy+E,EAASz+E,GAAKqpG,EAAUrpG,GAAG1D,EAE7B,OAAOmiF,IAOT7U,EAAUt7D,UAAU46F,aAAe,WAGjC,GADA3+D,EAAQc,gBAAgBpvC,KAAK8rG,aACL,GAApB9rG,KAAKkE,MAAMkM,OAAgC,MAAlBpQ,KAAK2vE,UAAmB,CACnD,GAAI8B,GAAO1tE,EACPwpG,KAGAC,EAAUxtG,KAAK2Q,KAAKhQ,KAAK2uE,cAActvE,KAAK2Q,KAAKi+D,SAASlvE,KAAK0Q,OAC/Dq9F,EAAUztG,KAAK2Q,KAAKhQ,KAAK2uE,aAAa,EAAItvE,KAAK2Q,KAAKi+D,SAASlvE,KAAK0Q,OAGlEoyE,EAAWxiF,KAAKmtG,oBACpB,IAAI3qB,EAAS5+E,OAAS,EAAG,CACvB,GAAIgsE,KASJ,KANA5vE,KAAK0tG,iBAAiBlrB,EAAU5S,EAAY49B,EAASC,GAGrDztG,KAAK2tG,eAAenrB,EAAU5S,GAGzB7rE,EAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAC/B/D,KAAK4tG,qBAAqBh+B,EAAW4S,EAASz+E,IAWhD,IAPA/D,KAAK6tG,YAAYrrB,EAAU5S,EAAY29B,GAOnB,GAJLvtG,KAAK8tG,aAAatrB,EAAU+qB,GAOzC,MAFAj/D,GAAQmB,gBAAgBzvC,KAAK8rG,aAC7B9rG,KAAKyrG,oBAAqB,GACnB,CAETzrG,MAAKyrG,oBAAqB,CAG1B,IAAIsC,OAAQlqG,EACZ,KAAKE,EAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAC/B0tE,EAAQzxE,KAAK6tE,OAAO2U,EAASz+E,KACF,IAAvB/D,KAAKgO,QAAQ4X,OAAyC,SAAvB5lB,KAAKgO,QAAQ3B,YACLxI,IAArC4tE,EAAMzjE,QAAQggG,qBAAqCv8B,EAAMzjE,QAAQggG,0BACtDnqG,IAATkqG,IACF/tG,KAAKiuG,OAAOr+B,EAAW6B,EAAMpxE,IAAKuvE,EAAWm+B,EAAM1tG,KACf,GAAhCoxE,EAAMzjE,QAAQk9F,OAAOh9F,SAAwD,UAArCujE,EAAMzjE,QAAQk9F,OAAOh9B,cACvB,OAApCuD,EAAMzjE,QAAQk9F,OAAOh9B,aAA6D,UAArC6/B,EAAM//F,QAAQk9F,OAAOh9B,aACpE6/B,EAAM//F,QAAQk9F,OAAOh9B,YAAc,QACnC6/B,EAAM//F,QAAQk9F,OAAO53B,QAAU7B,EAAMpxE,KAErCoxE,EAAMzjE,QAAQk9F,OAAOh9B,YAAc,QACnCuD,EAAMzjE,QAAQk9F,OAAO53B,QAAUy6B,EAAM1tG,MAI3C0tG,EAAQt8B,IAGZzxE,KAAKkuG,qBAAqBt+B,EAAW4S,EAASz+E,IAAK0tE,EAIrD,IAAIrlC,KACJ,KAAKroC,EAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAE/B,GADA0tE,EAAQzxE,KAAK6tE,OAAO2U,EAASz+E,IACD,SAAxB0tE,EAAMzjE,QAAQ3B,OAAoD,GAAhColE,EAAMzjE,QAAQk9F,OAAOh9F,QAAiB,CAC1E,GAAI0jE,GAAUhC,EAAW4S,EAASz+E,GAClC,IAAe,MAAX6tE,GAAqC,GAAlBA,EAAQhuE,OAC7B,QAKF,IAHKwoC,EAAM9oC,eAAek/E,EAASz+E,MACjCqoC,EAAMo2C,EAASz+E,IAAMooG,EAAMgC,SAASv8B,EAASH,IAEN,UAArCA,EAAMzjE,QAAQk9F,OAAOh9B,YAAyB,CAChD,GAAIkgC,GAAa38B,EAAMzjE,QAAQk9F,OAAO53B,OACtC,KAAsC,IAAlCkP,EAAS59E,QAAQwpG,GAAoB,CACvC5oF,QAAQotC,IAAI6e,EAAMpxE,GAAK,wCAA0C+tG,EACjE,UAEGhiE,EAAM9oC,eAAe8qG,KACxBhiE,EAAMgiE,GAAcjC,EAAMgC,SAASv+B,EAAWw+B,GAAapuG,KAAK6tE,OAAOugC,KAEzEjC,EAAMkC,YAAYjiE,EAAMo2C,EAASz+E,IAAK0tE,EAAOrlC,EAAMgiE,GAAapuG,KAAKisG,eAErEE,GAAMkC,YAAYjiE,EAAMo2C,EAASz+E,IAAK0tE,MAAO5tE,GAAW7D,KAAKisG,WAOnE,IADAC,EAAKlP,KAAKxa,EAAU5S,EAAY5vE,KAAKisG,WAChCloG,EAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAE/B,GADA0tE,EAAQzxE,KAAK6tE,OAAO2U,EAASz+E,IACzB6rE,EAAW4S,EAASz+E,IAAIH,OAAS,EACnC,OAAQ6tE,EAAMzjE,QAAQ3B,OACpB,IAAK,OACE+/B,EAAM9oC,eAAek/E,EAASz+E,MACjCqoC,EAAMo2C,EAASz+E,IAAMooG,EAAMgC,SAASv+B,EAAW4S,EAASz+E,IAAK0tE,IAE/D06B,EAAMnP,KAAK5wD,EAAMo2C,EAASz+E,IAAK0tE,EAAOzxE,KAAKisG,UAE7C,KAAK,QAEL,IAAK,SACwB,SAAvBx6B,EAAMzjE,QAAQ3B,OAA2C,UAAvBolE,EAAMzjE,QAAQ3B,OAAyD,GAApColE,EAAMzjE,QAAQ4uE,WAAW1uE,SAChGk+F,EAAOpP,KAAKptB,EAAW4S,EAASz+E,IAAK0tE,EAAOzxE,KAAKisG,aAgB/D,MADA39D,GAAQmB,gBAAgBzvC,KAAK8rG,cACtB,GAGTn+B,EAAUt7D,UAAU47F,OAAS,SAAUv5E,EAAM45E,GAC3C,GAAIv7F,GAAO+qC,EAAIC,EAAIwwD,EAAcC,CACjCz7F,GAAQ,CAER,KAAK,GAAIlF,GAAI,EAAGA,EAAI6mB,EAAK9wB,OAAQiK,IAAK,CACpC0gG,MAAe1qG,GACf2qG,MAAe3qG,EAEf,KAAK,GAAI+J,GAAImF,EAAOnF,EAAI0gG,EAAQ1qG,OAAQgK,IAAK,CAE3C,GAAI0gG,EAAQ1gG,GAAGqnB,IAAMP,EAAK7mB,GAAGonB,EAAG,CAC9Bs5E,EAAeD,EAAQ1gG,GACvB4gG,EAAeF,EAAQ1gG,GACvBmF,EAAQnF,CACR,OACK,GAAI0gG,EAAQ1gG,GAAGqnB,EAAIP,EAAK7mB,GAAGonB,EAAG,CAEnCu5E,EAAeF,EAAQ1gG,GAErB2gG,EADO,GAAL3gG,EACa4gG,EAEAF,EAAQ1gG,EAAI,GAE7BmF,EAAQnF,CACR,YAIiB/J,KAAjB2qG,IACFD,EAAeD,EAAQA,EAAQ1qG,OAAS,GACxC4qG,EAAeF,EAAQA,EAAQ1qG,OAAS,IAG1Ck6C,EAAK0wD,EAAav5E,EAAIs5E,EAAat5E,EACnC8oB,EAAKywD,EAAa3/E,EAAI0/E,EAAa1/E,EAEjC6F,EAAK7mB,GAAGghB,EADA,GAANivB,EACUppB,EAAK7mB,GAAGm/F,SAAWwB,EAAa3/E,EAEhC6F,EAAK7mB,GAAGm/F,SAAWjvD,EAAKD,GAAMppB,EAAK7mB,GAAGonB,EAAIs5E,EAAat5E,GAAKs5E,EAAa1/E,IAkB3F8+C,EAAUt7D,UAAUq7F,iBAAmB,SAAUlrB,EAAU5S,EAAY49B,EAASC,GAC9E,GAAIh8B,GAAO1tE,EAAG8J,EAAGe,CACjB,IAAI4zE,EAAS5+E,OAAS,EACpB,IAAKG,EAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAAK,CACpC0tE,EAAQzxE,KAAK6tE,OAAO2U,EAASz+E,GAC7B,IAAI4rE,GAAY8B,EAAMiU,UAEtB,IAA0B,GAAtBjU,EAAMzjE,QAAQ+a,KAAc,CAC9B,GAAI0lF,GAAiB,SAAwBjrG,EAAGC,GAC9C,MAAOD,GAAE0f,WAAazf,EAAEyf,UAAY,EAAI1f,EAAIC,GAAK,EAAI,GAEnDirG,EAAQjsG,KAAKJ,IAAI,EAAG1B,EAAKmO,kBAAkB6gE,EAAW69B,EAAS,IAAK,SAAUiB,IAC9E9vC,EAAOl8D,KAAKL,IAAIutE,EAAU/rE,OAAQjD,EAAKmO,kBAAkB6gE,EAAW89B,EAAS,IAAK,QAASgB,GAAkB,EAC7G9vC,IAAQ,IACVA,EAAOgR,EAAU/rE,OAEnB,IAAI+qG,GAAgB,GAAIxqG,OAAMw6D,EAAO+vC,EACrC,KAAK7gG,EAAI6gG,EAAO7gG,EAAI8wD,EAAM9wD,IACxBe,EAAO6iE,EAAM9B,UAAU9hE,GACvB8gG,EAAc9gG,EAAI6gG,GAAS9/F,CAE7BghE,GAAW4S,EAASz+E,IAAM4qG,MAG1B/+B,GAAW4S,EAASz+E,IAAM0tE,EAAM9B,YAYxChC,EAAUt7D,UAAUs7F,eAAiB,SAAUnrB,EAAU5S,GACvD,GAAI6B,EACJ,IAAI+Q,EAAS5+E,OAAS,EACpB,IAAK,GAAIG,GAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAEnC,GADA0tE,EAAQzxE,KAAK6tE,OAAO2U,EAASz+E,IACC,GAA1B0tE,EAAMzjE,QAAQg9F,SAAkB,CAClC,GAAI2D,GAAgB/+B,EAAW4S,EAASz+E,GACxC,IAAI4qG,EAAc/qG,OAAS,EAAG,CAC5B,GAAIgrG,GAAY,EACZC,EAAiBF,EAAc/qG,OAK/BkrG,EAAY9uG,KAAK2Q,KAAKhQ,KAAKuuE,eAAey/B,EAAcA,EAAc/qG,OAAS,GAAGqxB,GAAKj1B,KAAK2Q,KAAKhQ,KAAKuuE,eAAey/B,EAAc,GAAG15E,GACtI85E,EAAiBF,EAAiBC,CACtCF,GAAYnsG,KAAKL,IAAIK,KAAKoX,KAAK,GAAMg1F,GAAiBpsG,KAAKJ,IAAI,EAAGI,KAAKm6B,MAAMmyE,IAG7E,KAAK,GADDC,GAAc,GAAI7qG,OAAM0qG,GACnBhhG,EAAI,EAAGA,EAAIghG,EAAgBhhG,GAAK+gG,EAAW,CAClD,GAAIp2C,GAAM/1D,KAAKm6B,MAAM/uB,EAAI+gG,EACzBI,GAAYx2C,GAAOm2C,EAAc9gG,GAEnC+hE,EAAW4S,EAASz+E,IAAMirG,EAAYj3E,OAAO,EAAGt1B,KAAKm6B,MAAMiyE,EAAiBD,OAetFjhC,EAAUt7D,UAAUw7F,YAAc,SAAUrrB,EAAU5S,EAAY29B,GAChE,GAAIvrB,GAAWvQ,EAAO1tE,EAGlBiK,EAFAihG,KACAC,IAEJ,IAAI1sB,EAAS5+E,OAAS,EAAG,CACvB,IAAKG,EAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAC/Bi+E,EAAYpS,EAAW4S,EAASz+E,IAChCiK,EAAUhO,KAAK6tE,OAAO2U,EAASz+E,IAAIiK,QAC/Bg0E,EAAUp+E,OAAS,IACrB6tE,EAAQzxE,KAAK6tE,OAAO2U,EAASz+E,KAEP,IAAlBiK,EAAQ4X,OAAoC,QAAlB5X,EAAQ3B,MACH,SAA7B2B,EAAQ88F,iBACVmE,EAAmBA,EAAiBpoG,OAAOm7E,GAE3CktB,EAAoBA,EAAkBroG,OAAOm7E,GAG/CurB,EAAY/qB,EAASz+E,IAAM0tE,EAAM09B,UAAUntB,EAAWQ,EAASz+E,IAMrEmoG,GAAKkD,iBAAiBH,EAAkB1B,EAAa/qB,EAAU,iBAAkB,QACjF0pB,EAAKkD,iBAAiBF,EAAmB3B,EAAa/qB,EAAU,kBAAmB,WAUvF7U,EAAUt7D,UAAUy7F,aAAe,SAAUtrB,EAAU+qB,GACrD,GAOI8B,GACAC,EARAl3B,GAAU,EACVm3B,GAAgB,EAChBC,GAAiB,EACjBC,EAAU,IACVC,EAAW,IACXC,GAAW,IACXC,GAAY,GAIhB,IAAIptB,EAAS5+E,OAAS,EAAG,CAEvB,IAAK,GAAIG,GAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAAK,CACxC,GAAI0tE,GAAQzxE,KAAK6tE,OAAO2U,EAASz+E,GAC7B0tE,IAA2C,SAAlCA,EAAMzjE,QAAQ88F,kBACzByE,GAAgB,EAChBE,EAAU,IACVE,GAAW,KACFl+B,GAASA,EAAMzjE,QAAQ88F,mBAChC0E,GAAiB,EACjBE,EAAW,IACXE,GAAY,KAKhB,IAAK,GAAI7rG,GAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAC/BwpG,EAAYjqG,eAAek/E,EAASz+E,MACE,IAApCwpG,EAAY/qB,EAASz+E,IAAI8rG,SAC3BR,EAAS9B,EAAY/qB,EAASz+E,IAAI3B,IAClCktG,EAAS/B,EAAY/qB,EAASz+E,IAAI1B,IAEe,SAA7CkrG,EAAY/qB,EAASz+E,IAAI+mG,kBAC3ByE,GAAgB,EAChBE,EAAUA,EAAUJ,EAASA,EAASI,EACtCE,EAAUA,EAAUL,EAASA,EAASK,IAEtCH,GAAiB,EACjBE,EAAWA,EAAWL,EAASA,EAASK,EACxCE,EAAWA,EAAWN,EAASA,EAASM,GAM3B,IAAjBL,GACFvvG,KAAKyqG,UAAUl4C,SAASk9C,EAASE,GAEb,GAAlBH,GACFxvG,KAAK0qG,WAAWn4C,SAASm9C,EAAUE,GAGvCx3B,EAAUp4E,KAAK8vG,qBAAqBP,EAAevvG,KAAKyqG,YAAcryB,EACtEA,EAAUp4E,KAAK8vG,qBAAqBN,EAAgBxvG,KAAK0qG,aAAetyB,EAElD,GAAlBo3B,GAA2C,GAAjBD,GAC5BvvG,KAAKyqG,UAAUsF,WAAY,EAC3B/vG,KAAK0qG,WAAWqF,WAAY,IAE5B/vG,KAAKyqG,UAAUsF,WAAY,EAC3B/vG,KAAK0qG,WAAWqF,WAAY,GAE9B/vG,KAAK0qG,WAAWsF,QAAUT,EAC1BvvG,KAAK0qG,WAAWuF,WAAajwG,KAAKyqG,UAEJ,GAA1BzqG,KAAK0qG,WAAWsF,QAEhBhwG,KAAKyqG,UAAUyF,WADK,GAAlBV,EAC0BxvG,KAAK0qG,WAAWt6F,MAEhB,EAG9BgoE,EAAUp4E,KAAKyqG,UAAUhrD,UAAY24B,EACrCA,EAAUp4E,KAAK0qG,WAAWjrD,UAAY24B,GAEtCA,EAAUp4E,KAAK0qG,WAAWjrD,UAAY24B,CAKxC,KAAK,GADD+3B,IAAc,iBAAkB,kBAAmB,kBAAmB,oBACjEpsG,EAAI,EAAGA,EAAIosG,EAAWvsG,OAAQG,KACG,GAApCy+E,EAAS59E,QAAQurG,EAAWpsG,KAC9By+E,EAASzqD,OAAOyqD,EAAS59E,QAAQurG,EAAWpsG,IAAK,EAIrD,OAAOq0E,IAWTzK,EAAUt7D,UAAUy9F,qBAAuB,SAAUM,EAAUjiC,GAC7D,GAAI7N,IAAU,CAYd,OAXgB,IAAZ8vC,EACEjiC,EAAKpgB,IAAI5P,MAAMr1C,YAA6B,GAAfqlE,EAAKiL,SACpCjL,EAAKr8D,OACLwuD,GAAU,GAGP6N,EAAKpgB,IAAI5P,MAAMr1C,YAA6B,GAAfqlE,EAAKiL,SACrCjL,EAAKiE,OACL9R,GAAU,GAGPA,GAYTqN,EAAUt7D,UAAUu7F,qBAAuB,SAAUyC,GAEnD,IAAK,GADDrhC,GAAWhvE,KAAK2Q,KAAKhQ,KAAKquE,SACrBjrE,EAAI,EAAGA,EAAIssG,EAAWzsG,OAAQG,IACrCssG,EAAWtsG,GAAGusG,SAAWthC,EAASqhC,EAAWtsG,GAAGkxB,GAAKj1B,KAAKkE,MAAMkM,MAChEigG,EAAWtsG,GAAGwsG,SAAWF,EAAWtsG,GAAG8qB,MACdhrB,IAArBwsG,EAAWtsG,GAAGmhD,IAChBmrD,EAAWtsG,GAAGysG,WAAaxhC,EAASqhC,EAAWtsG,GAAGmhD,KAAOllD,KAAKkE,MAAMkM,MAEpEigG,EAAWtsG,GAAGysG,eAAa3sG,IAejC8pE,EAAUt7D,UAAU67F,qBAAuB,SAAUmC,EAAY5+B,GAC/D,GAAItD,GAAOnuE,KAAKyqG,UACZgG,EAAY5uG,OAAO7B,KAAKgsG,IAAI3/F,MAAMgE,OAAOzG,QAAQ,KAAM,IACrB,UAAlC6nE,EAAMzjE,QAAQ88F,mBAChB38B,EAAOnuE,KAAK0qG,WAEd,KAAK,GAAI3mG,GAAI,EAAGA,EAAIssG,EAAWzsG,OAAQG,IACrCssG,EAAWtsG,GAAGwsG,SAAW9tG,KAAKm6B,MAAMuxC,EAAKuiC,aAAaL,EAAWtsG,GAAG8qB,GAEtE4iD,GAAMk/B,gBAAgBluG,KAAKL,IAAIquG,EAAWtiC,EAAKuiC,aAAa,MAG9D7wG,EAAOD,QAAU+tE,GAIb,SAAU9tE,EAAQD,EAASM,GAsB/B,QAASmtE,GAAS18D,EAAM3C,EAASg+F,EAAK4E,GACpC5wG,KAAKK,GAAKM,EAAKuC,aACflD,KAAK2Q,KAAOA,EAEZ3Q,KAAKguE,gBACHE,YAAa,OACbylB,iBAAiB,EACjBC,iBAAiB,EACjBid,OAAO,EACPC,iBAAkB,EAClBC,iBAAkB,EAClBC,aAAc,GACdC,aAAc,EACdC,UAAW,GACX9gG,MAAO,OACPo1C,SAAS,EACT2rD,YAAY,EACZjrG,MACEs1C,OAASp5C,QAAKyB,GAAWxB,QAAKwB,IAC9B4B,OAAQ,SAAgBlD,GACtB,MAAO,GAAKk5B,WAAWl5B,EAAM0wD,YAAY,KAE3C0qB,OAASx3B,SAAMtiD,GAAWwI,UAAOxI,KAEnCuC,OACEo1C,OAASp5C,QAAKyB,GAAWxB,QAAKwB,IAC9B4B,OAAQ,SAAgBlD,GACtB,MAAO,GAAKk5B,WAAWl5B,EAAM0wD,YAAY,KAE3C0qB,OAASx3B,SAAMtiD,GAAWwI,UAAOxI,MAIrC7D,KAAK4wG,iBAAmBA,EACxB5wG,KAAKoxG,aAAepF,EACpBhsG,KAAKkE,SACLlE,KAAKqxG,aACH9d,SACA+d,UACA3zB,UAGF39E,KAAK+tD,OACL/tD,KAAKwC,UAAQqB,GACb7D,KAAKw7C,OAAUyJ,MAAO,EAAGC,IAAK,GAE9BllD,KAAKgO,QAAUrN,EAAKC,UAAWZ,KAAKguE,gBACpChuE,KAAKuxG,iBAAmB,EAExBvxG,KAAKkxC,WAAWljC,GAChBhO,KAAKoQ,MAAQvO,QAAQ,GAAK7B,KAAKgO,QAAQoC,OAAOxG,QAAQ,KAAM,KAC5D5J,KAAKwxG,SAAWxxG,KAAKoQ,MACrBpQ,KAAKqQ,OAASrQ,KAAKoxG,aAAanrG,wBAAwBoK,OACxDrQ,KAAKo5E,QAAS,EAEdp5E,KAAKyxG,WAAa,GAClBzxG,KAAK0xG,cAAgB,EACrB1xG,KAAK2xG,eAAiB,EAEtB3xG,KAAKkwG,WAAa,EAClBlwG,KAAKgwG,QAAS,EACdhwG,KAAKiwG,WAAa,KAClBjwG,KAAK8rG,eACL9rG,KAAK4xG,cAAe,EAEpB5xG,KAAK6tE,UACL7tE,KAAK6xG,eAAiB,EAGtB7xG,KAAKmB,UACLnB,KAAKisG,WAAcD,IAAKhsG,KAAKgsG,IAAKF,YAAa9rG,KAAK8rG,YAAa99F,QAAShO,KAAKgO,QAAS6/D,OAAQ7tE,KAAK6tE,OAErG,IAAI57B,GAAKjyC,IACTA,MAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WACnCU,EAAG8b,IAAI+jD,cAAczlG,MAAM/F,IAAM2rC,EAAGthC,KAAKi+D,SAASqM,UAAY,OA5FlE,GAAI55E,GAAQnB,EAAoB,IAE5BoB,EAEJ,SAAgCR,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFrDO,GAIhCV,EAAOT,EAAoB,GAC3BouC,EAAUpuC,EAAoB,IAC9BgtE,EAAYhtE,EAAoB,KAChCotE,EAAYptE,EAAoB,IAuFpCmtE,GAASh7D,UAAY,GAAI66D,GAEzBG,EAASh7D,UAAUo6F,SAAW,SAAUn8D,EAAOyhE,GACxC/xG,KAAK6tE,OAAOvqE,eAAegtC,KAC9BtwC,KAAK6tE,OAAOv9B,GAASyhE,GAEvB/xG,KAAK6xG,gBAAkB,GAGzBxkC,EAASh7D,UAAUquE,YAAc,SAAUpwC,EAAOyhE,GAC3C/xG,KAAK6tE,OAAOvqE,eAAegtC,KAC9BtwC,KAAK6xG,gBAAkB,GAEzB7xG,KAAK6tE,OAAOv9B,GAASyhE,GAGvB1kC,EAASh7D,UAAUk6F,YAAc,SAAUj8D,GACrCtwC,KAAK6tE,OAAOvqE,eAAegtC,WACtBtwC,MAAK6tE,OAAOv9B,GACnBtwC,KAAK6xG,gBAAkB,IAI3BxkC,EAASh7D,UAAU6+B,WAAa,SAAUljC,GACxC,GAAIA,EAAS,CACX,GAAIyxC,IAAS,CACTz/C,MAAKgO,QAAQkgE,aAAelgE,EAAQkgE,iBAAuCrqE,KAAxBmK,EAAQkgE,cAC7DzuB,GAAS,EAEX,IAAInyC,IAAU,cAAe,kBAAmB,kBAAmB,QAAS,mBAAoB,mBAAoB,eAAgB,eAAgB,YAAa,QAAS,UAAW,OAAQ,QAAS,aACtM3M,GAAK2D,oBAAoBgJ,EAAQtN,KAAKgO,QAASA,GAE/ChO,KAAKwxG,SAAW3vG,QAAQ,GAAK7B,KAAKgO,QAAQoC,OAAOxG,QAAQ,KAAM,MAChD,IAAX61C,GAAmBz/C,KAAK+tD,IAAI5P,QAC9Bn+C,KAAK8R,OACL9R,KAAKoyE,UAQX/E,EAASh7D,UAAUlR,QAAU,WAC3BnB,KAAK+tD,IAAI5P,MAAQjuC,SAASC,cAAc,OACxCnQ,KAAK+tD,IAAI5P,MAAM9xC,MAAM+D,MAAQpQ,KAAKgO,QAAQoC,MAC1CpQ,KAAK+tD,IAAI5P,MAAM9xC,MAAMgE,OAASrQ,KAAKqQ,OAEnCrQ,KAAK+tD,IAAI+jD,cAAgB5hG,SAASC,cAAc,OAChDnQ,KAAK+tD,IAAI+jD,cAAczlG,MAAM+D,MAAQ,OACrCpQ,KAAK+tD,IAAI+jD,cAAczlG,MAAMgE,OAASrQ,KAAKqQ,OAC3CrQ,KAAK+tD,IAAI+jD,cAAczlG,MAAMkE,SAAW,WAGxCvQ,KAAKgsG,IAAM97F,SAAS2/B,gBAAgB,6BAA8B,OAClE7vC,KAAKgsG,IAAI3/F,MAAMkE,SAAW,WAC1BvQ,KAAKgsG,IAAI3/F,MAAM/F,IAAM,MACrBtG,KAAKgsG,IAAI3/F,MAAMgE,OAAS,OACxBrQ,KAAKgsG,IAAI3/F,MAAM+D,MAAQ,OACvBpQ,KAAKgsG,IAAI3/F,MAAMoM,QAAU,QACzBzY,KAAK+tD,IAAI5P,MAAMztC,YAAY1Q,KAAKgsG,MAGlC3+B,EAASh7D,UAAU2/F,kBAAoB,WACrC1jE,EAAQc,gBAAgBpvC,KAAK8rG,YAE7B,IAAI72E,GACAi8E,EAAYlxG,KAAKgO,QAAQkjG,UAGzBriF,EAAIojF,IAGNh9E,GAD+B,SAA7Bj1B,KAAKgO,QAAQkgE,YAHA,EAMXluE,KAAKoQ,MAAQ8gG,EANF,CASjB,IAAIgB,IAAa,EAAI5wG,EAAgB,SAAGtB,KAAK6tE,OAC7CqkC,GAAWnpF,KAAK,SAAUvlB,EAAGC,GAC3B,MAAOD,GAAIC,GAAK,EAAI,GAGtB,KAAK,GAAIM,GAAI,EAAGA,EAAImuG,EAAWtuG,OAAQG,IAAK,CAC1C,GAAIuvE,GAAU4+B,EAAWnuG,IACY,IAAjC/D,KAAK6tE,OAAOyF,GAAS9tB,aAAmE3hD,KAA9C7D,KAAK4wG,iBAAiBpgG,WAAW8iE,KAAwE,IAA9CtzE,KAAK4wG,iBAAiBpgG,WAAW8iE,KACxItzE,KAAK6tE,OAAOyF,GAASi3B,UAAU2G,EAlBlB,GAkByClxG,KAAKisG,UAAWh3E,EAAGpG,GACzEA,GAAKsjF,IAIT7jE,EAAQmB,gBAAgBzvC,KAAK8rG,aAC7B9rG,KAAK4xG,cAAe,GAGtBvkC,EAASh7D,UAAU+/F,cAAgB,YACP,IAAtBpyG,KAAK4xG,eACPtjE,EAAQc,gBAAgBpvC,KAAK8rG,aAC7Bx9D,EAAQmB,gBAAgBzvC,KAAK8rG,aAC7B9rG,KAAK4xG,cAAe,IAOxBvkC,EAASh7D,UAAU+/D,KAAO,WACxBpyE,KAAKo5E,QAAS,EACTp5E,KAAK+tD,IAAI5P,MAAMr1C,aACe,SAA7B9I,KAAKgO,QAAQkgE,YACfluE,KAAK2Q,KAAKo9C,IAAI7nD,KAAKwK,YAAY1Q,KAAK+tD,IAAI5P,OAExCn+C,KAAK2Q,KAAKo9C,IAAI3nD,MAAMsK,YAAY1Q,KAAK+tD,IAAI5P,QAIxCn+C,KAAK+tD,IAAI+jD,cAAchpG,YAC1B9I,KAAK2Q,KAAKo9C,IAAI8tB,qBAAqBnrE,YAAY1Q,KAAK+tD,IAAI+jD,gBAO5DzkC,EAASh7D,UAAUP,KAAO,WACxB9R,KAAKo5E,QAAS,EACVp5E,KAAK+tD,IAAI5P,MAAMr1C,YACjB9I,KAAK+tD,IAAI5P,MAAMr1C,WAAW5G,YAAYlC,KAAK+tD,IAAI5P,OAG7Cn+C,KAAK+tD,IAAI+jD,cAAchpG,YACzB9I,KAAK+tD,IAAI+jD,cAAchpG,WAAW5G,YAAYlC,KAAK+tD,IAAI+jD,gBAU3DzkC,EAASh7D,UAAUkgD,SAAW,SAAUtN,EAAOC,GAC7CllD,KAAKw7C,MAAMyJ,MAAQA,EACnBjlD,KAAKw7C,MAAM0J,IAAMA,GAOnBmoB,EAASh7D,UAAUotC,OAAS,WAC1B,GAAI24B,IAAU,EACVi6B,EAAe,CAGnBryG,MAAK+tD,IAAI+jD,cAAczlG,MAAM/F,IAAMtG,KAAK2Q,KAAKi+D,SAASqM,UAAY,IAElE,KAAK,GAAI3H,KAAWtzE,MAAK6tE,OACnB7tE,KAAK6tE,OAAOvqE,eAAegwE,MACQ,IAAjCtzE,KAAK6tE,OAAOyF,GAAS9tB,aAAmE3hD,KAA9C7D,KAAK4wG,iBAAiBpgG,WAAW8iE,KAAwE,IAA9CtzE,KAAK4wG,iBAAiBpgG,WAAW8iE,IACxI++B,IAIN,IAA4B,IAAxBryG,KAAK6xG,gBAAyC,IAAjBQ,EAC/BryG,KAAK8R,WACA,CACL9R,KAAKoyE,OACLpyE,KAAKqQ,OAASxO,OAAO7B,KAAKoxG,aAAa/kG,MAAMgE,OAAOzG,QAAQ,KAAM,KAGlE5J,KAAK+tD,IAAI+jD,cAAczlG,MAAMgE,OAASrQ,KAAKqQ,OAAS,KACpDrQ,KAAKoQ,OAAiC,IAAzBpQ,KAAKgO,QAAQw3C,QAAmB3jD,QAAQ,GAAK7B,KAAKgO,QAAQoC,OAAOxG,QAAQ,KAAM,KAAO,CAEnG,IAAI1F,GAAQlE,KAAKkE,MACbi6C,EAAQn+C,KAAK+tD,IAAI5P,KAGrBA,GAAMz3C,UAAY,gBAGlB1G,KAAK+zF,oBAEL,IAAI7lB,GAAcluE,KAAKgO,QAAQkgE,YAC3BylB,EAAkB3zF,KAAKgO,QAAQ2lF,gBAC/BC,EAAkB5zF,KAAKgO,QAAQ4lF,eAGnC1vF,GAAM8vF,iBAAmBL,EAAkBzvF,EAAM+vF,gBAAkB,EACnE/vF,EAAMgwF,iBAAmBN,EAAkB1vF,EAAMiwF,gBAAkB,EAEnEjwF,EAAMmwF,eAAiBr0F,KAAK2Q,KAAKo9C,IAAI8tB,qBAAqBhrE,YAAc7Q,KAAKkwG,WAAalwG,KAAKoQ,MAAQ,EAAIpQ,KAAKgO,QAAQ+iG,iBACxH7sG,EAAMkwF,gBAAkB,EACxBlwF,EAAMqwF,eAAiBv0F,KAAK2Q,KAAKo9C,IAAI8tB,qBAAqBhrE,YAAc7Q,KAAKkwG,WAAalwG,KAAKoQ,MAAQ,EAAIpQ,KAAKgO,QAAQ8iG,iBACxH5sG,EAAMowF,gBAAkB,EAGJ,SAAhBpmB,GACF/vB,EAAM9xC,MAAM/F,IAAM,IAClB63C,EAAM9xC,MAAMnG,KAAO,IACnBi4C,EAAM9xC,MAAMsyC,OAAS,GACrBR,EAAM9xC,MAAM+D,MAAQpQ,KAAKoQ,MAAQ,KACjC+tC,EAAM9xC,MAAMgE,OAASrQ,KAAKqQ,OAAS,KACnCrQ,KAAKkE,MAAMkM,MAAQpQ,KAAK2Q,KAAKi+D,SAAS1oE,KAAKkK,MAC3CpQ,KAAKkE,MAAMmM,OAASrQ,KAAK2Q,KAAKi+D,SAAS1oE,KAAKmK,SAG5C8tC,EAAM9xC,MAAM/F,IAAM,GAClB63C,EAAM9xC,MAAMsyC,OAAS,IACrBR,EAAM9xC,MAAMnG,KAAO,IACnBi4C,EAAM9xC,MAAM+D,MAAQpQ,KAAKoQ,MAAQ,KACjC+tC,EAAM9xC,MAAMgE,OAASrQ,KAAKqQ,OAAS,KACnCrQ,KAAKkE,MAAMkM,MAAQpQ,KAAK2Q,KAAKi+D,SAASxoE,MAAMgK,MAC5CpQ,KAAKkE,MAAMmM,OAASrQ,KAAK2Q,KAAKi+D,SAASxoE,MAAMiK,QAG/C+nE,EAAUp4E,KAAKsyG,gBACfl6B,EAAUp4E,KAAKm4E,cAAgBC,GAEJ,IAAvBp4E,KAAKgO,QAAQ6iG,MACf7wG,KAAKgyG,oBAELhyG,KAAKoyG,gBAGPpyG,KAAKuyG,aAAarkC,GAEpB,MAAOkK,IAOT/K,EAASh7D,UAAUigG,cAAgB,WACjC,GAAIrY,GAAQj6F,KAERo4E,GAAU,CACd9pC,GAAQc,gBAAgBpvC,KAAKqxG,YAAY9d,OACzCjlD,EAAQc,gBAAgBpvC,KAAKqxG,YAAYC,OACzC,IAAIpjC,GAAcluE,KAAKgO,QAAqB,YACxCwkG,MAAiD3uG,IAAnC7D,KAAKgO,QAAQkgE,GAAa1yB,MAAqBx7C,KAAKgO,QAAQkgE,GAAa1yB,SAGvFi3D,GAAe,MACI5uG,IAAnB2uG,EAAYnwG,MACdrC,KAAKw7C,MAAM0J,IAAMstD,EAAYnwG,IAC7BowG,GAAe,EAEjB,IAAIC,IAAiB,MACE7uG,IAAnB2uG,EAAYpwG,MACdpC,KAAKw7C,MAAMyJ,MAAQutD,EAAYpwG,IAC/BswG,GAAiB,GAGnB1yG,KAAKwC,MAAQ,GAAI8qE,GAAUttE,KAAKw7C,MAAMyJ,MAAOjlD,KAAKw7C,MAAM0J,IAAKwtD,EAAgBD,EAAczyG,KAAK+tD,IAAI5P,MAAM+P,aAAcluD,KAAKkE,MAAMiwF,gBAAiBn0F,KAAKgO,QAAQmjG,WAAYnxG,KAAKgO,QAAQkgE,GAAazoE,SAEnL,IAAhBzF,KAAKgwG,YAAuCnsG,IAAnB7D,KAAKiwG,YAChCjwG,KAAKwC,MAAMmwG,YAAY3yG,KAAKiwG,WAAWztG,OAIzCxC,KAAK4yG,aAAe,EAER5yG,KAAKwC,MAAMqwG,WACjB3rG,QAAQ,SAAU0yC,GACtB,GAAI/qB,GAAI+qB,EAAK/qB,EACT68D,EAAU9xC,EAAKk5D,KACf7Y,GAAMjsF,QAAyB,kBAAiB,IAAZ09E,GACtCuO,EAAM8Y,aAAalkF,EAAI,EAAG+qB,EAAKjiC,IAAKu2D,EAAa,uBAAwB+rB,EAAM/1F,MAAM+vF,iBAEnFvI,GACE78D,GAAK,GACPorE,EAAM8Y,aAAalkF,EAAI,EAAG+qB,EAAKjiC,IAAKu2D,EAAa,uBAAwB+rB,EAAM/1F,MAAMiwF,kBAGpE,IAAjB8F,EAAM+V,SACJtkB,EACFuO,EAAM+Y,YAAYnkF,EAAGq/C,EAAa,oCAAqC+rB,EAAMjsF,QAAQ8iG,iBAAkB7W,EAAM/1F,MAAMqwF,gBAEnH0F,EAAM+Y,YAAYnkF,EAAGq/C,EAAa,oCAAqC+rB,EAAMjsF,QAAQ+iG,iBAAkB9W,EAAM/1F,MAAMmwF,kBAMzH,IAAI4e,GAAa,MACuBpvG,KAApC7D,KAAKgO,QAAQkgE,GAAayP,WAAgE95E,KAAzC7D,KAAKgO,QAAQkgE,GAAayP,MAAMx3B,OACnF8sD,EAAajzG,KAAKkE,MAAMgvG,gBAE1B,IAAIr2E,IAAgC,IAAvB78B,KAAKgO,QAAQ6iG,MAAiBpuG,KAAKJ,IAAIrC,KAAKgO,QAAQkjG,UAAW+B,GAAcjzG,KAAKgO,QAAQgjG,aAAe,GAAKiC,EAAajzG,KAAKgO,QAAQgjG,aAAe,EAyBpK,OAtBIhxG,MAAK4yG,aAAe5yG,KAAKoQ,MAAQysB,IAAmC,IAAzB78B,KAAKgO,QAAQw3C,SAC1DxlD,KAAKoQ,MAAQpQ,KAAK4yG,aAAe/1E,EACjC78B,KAAKgO,QAAQoC,MAAQpQ,KAAKoQ,MAAQ,KAClCk+B,EAAQmB,gBAAgBzvC,KAAKqxG,YAAY9d,OACzCjlD,EAAQmB,gBAAgBzvC,KAAKqxG,YAAYC,QACzCtxG,KAAKy/C,SACL24B,GAAU,GAGHp4E,KAAK4yG,aAAe5yG,KAAKoQ,MAAQysB,IAAmC,IAAzB78B,KAAKgO,QAAQw3C,SAAoBxlD,KAAKoQ,MAAQpQ,KAAKwxG,UACnGxxG,KAAKoQ,MAAQ3N,KAAKJ,IAAIrC,KAAKwxG,SAAUxxG,KAAK4yG,aAAe/1E,GACzD78B,KAAKgO,QAAQoC,MAAQpQ,KAAKoQ,MAAQ,KAClCk+B,EAAQmB,gBAAgBzvC,KAAKqxG,YAAY9d,OACzCjlD,EAAQmB,gBAAgBzvC,KAAKqxG,YAAYC,QACzCtxG,KAAKy/C,SACL24B,GAAU,IAEV9pC,EAAQmB,gBAAgBzvC,KAAKqxG,YAAY9d,OACzCjlD,EAAQmB,gBAAgBzvC,KAAKqxG,YAAYC,QACzCl5B,GAAU,GAGPA,GAGT/K,EAASh7D,UAAUq+F,aAAe,SAAUnuG,GAC1C,MAAOvC,MAAKwC,MAAMkuG,aAAanuG,IAGjC8qE,EAASh7D,UAAUw4F,cAAgB,SAAU51E,GAC3C,MAAOj1B,MAAKwC,MAAMqoG,cAAc51E,IAYlCo4C,EAASh7D,UAAU0gG,aAAe,SAAUlkF,EAAGs3B,EAAM+nB,EAAaxnE,EAAWysG,GAE3E,GAAI7iE,GAAQhC,EAAQwB,cAAc,MAAO9vC,KAAKqxG,YAAYC,OAAQtxG,KAAK+tD,IAAI5P,MAC3E7N,GAAM5pC,UAAYA,EAClB4pC,EAAMqQ,UAAYwF,EACE,SAAhB+nB,GACF59B,EAAMjkC,MAAMnG,KAAO,IAAMlG,KAAKgO,QAAQgjG,aAAe,KACrD1gE,EAAMjkC,MAAMg5C,UAAY,UAExB/U,EAAMjkC,MAAMjG,MAAQ,IAAMpG,KAAKgO,QAAQgjG,aAAe,KACtD1gE,EAAMjkC,MAAMg5C,UAAY,QAG1B/U,EAAMjkC,MAAM/F,IAAMuoB,EAAI,GAAMskF,EAAkBnzG,KAAKgO,QAAQijG,aAAe,KAE1E9qD,GAAQ,EAER,IAAIitD,GAAe3wG,KAAKJ,IAAIrC,KAAKkE,MAAMyxF,eAAgB31F,KAAKkE,MAAM2wF,eAC9D70F,MAAK4yG,aAAezsD,EAAKviD,OAASwvG,IACpCpzG,KAAK4yG,aAAezsD,EAAKviD,OAASwvG,IAYtC/lC,EAASh7D,UAAU2gG,YAAc,SAAUnkF,EAAGq/C,EAAaxnE,EAAWm2B,EAAQzsB,GAC5E,IAAoB,IAAhBpQ,KAAKgwG,OAAiB,CACxB,GAAIp2D,GAAOtL,EAAQwB,cAAc,MAAO9vC,KAAKqxG,YAAY9d,MAAOvzF,KAAK+tD,IAAI+jD,cACzEl4D,GAAKlzC,UAAYA,EACjBkzC,EAAK+G,UAAY,GAEG,SAAhButB,EACFt0B,EAAKvtC,MAAMnG,KAAOlG,KAAKoQ,MAAQysB,EAAS,KAExC+c,EAAKvtC,MAAMjG,MAAQpG,KAAKoQ,MAAQysB,EAAS,KAG3C+c,EAAKvtC,MAAM+D,MAAQA,EAAQ,KAC3BwpC,EAAKvtC,MAAM/F,IAAMuoB,EAAI,OASzBw+C,EAASh7D,UAAUkgG,aAAe,SAAUrkC,GAI1C,GAHA5/B,EAAQc,gBAAgBpvC,KAAKqxG,YAAY1zB,WAGD95E,KAApC7D,KAAKgO,QAAQkgE,GAAayP,WAAgE95E,KAAzC7D,KAAKgO,QAAQkgE,GAAayP,MAAMx3B,KAAoB,CACvG,GAAIw3B,GAAQrvC,EAAQwB,cAAc,MAAO9vC,KAAKqxG,YAAY1zB,MAAO39E,KAAK+tD,IAAI5P,MAC1Ew/B,GAAMj3E,UAAY,4BAA8BwnE,EAChDyP,EAAMh9B,UAAY3gD,KAAKgO,QAAQkgE,GAAayP,MAAMx3B,SAGJtiD,KAA1C7D,KAAKgO,QAAQkgE,GAAayP,MAAMtxE,OAClC1L,EAAK6L,WAAWmxE,EAAO39E,KAAKgO,QAAQkgE,GAAayP,MAAMtxE,OAGrC,SAAhB6hE,EACFyP,EAAMtxE,MAAMnG,KAAOlG,KAAKkE,MAAMgvG,gBAAkB,KAEhDv1B,EAAMtxE,MAAMjG,MAAQpG,KAAKkE,MAAMgvG,gBAAkB,KAGnDv1B,EAAMtxE,MAAM+D,MAAQpQ,KAAKqQ,OAAS,KAIpCi+B,EAAQmB,gBAAgBzvC,KAAKqxG,YAAY1zB,QAQ3CtQ,EAASh7D,UAAU0hF,mBAAqB,WAEtC,KAAM,mBAAqB/zF,MAAKkE,OAAQ,CACtC,GAAImvG,GAAYnjG,SAAS2lF,eAAe,KACpCE,EAAmB7lF,SAASC,cAAc,MAC9C4lF,GAAiBrvF,UAAY,mCAC7BqvF,EAAiBrlF,YAAY2iG,GAC7BrzG,KAAK+tD,IAAI5P,MAAMztC,YAAYqlF,GAE3B/1F,KAAKkE,MAAM+vF,gBAAkB8B,EAAiBv0C,aAC9CxhD,KAAKkE,MAAM2wF,eAAiBkB,EAAiBhlF,YAE7C/Q,KAAK+tD,IAAI5P,MAAMj8C,YAAY6zF,GAG7B,KAAM,mBAAqB/1F,MAAKkE,OAAQ,CACtC,GAAIovG,GAAYpjG,SAAS2lF,eAAe,KACpCG,EAAmB9lF,SAASC,cAAc,MAC9C6lF,GAAiBtvF,UAAY,mCAC7BsvF,EAAiBtlF,YAAY4iG,GAC7BtzG,KAAK+tD,IAAI5P,MAAMztC,YAAYslF,GAE3Bh2F,KAAKkE,MAAMiwF,gBAAkB6B,EAAiBx0C,aAC9CxhD,KAAKkE,MAAMyxF,eAAiBK,EAAiBjlF,YAE7C/Q,KAAK+tD,IAAI5P,MAAMj8C,YAAY8zF,GAG7B,KAAM,mBAAqBh2F,MAAKkE,OAAQ,CACtC,GAAIqvG,GAAYrjG,SAAS2lF,eAAe,KACpC2d,EAAmBtjG,SAASC,cAAc,MAC9CqjG,GAAiB9sG,UAAY,mCAC7B8sG,EAAiB9iG,YAAY6iG,GAC7BvzG,KAAK+tD,IAAI5P,MAAMztC,YAAY8iG,GAE3BxzG,KAAKkE,MAAMgvG,gBAAkBM,EAAiBhyD,aAC9CxhD,KAAKkE,MAAMuvG,eAAiBD,EAAiBziG,YAE7C/Q,KAAK+tD,IAAI5P,MAAMj8C,YAAYsxG,KAI/B3zG,EAAOD,QAAUytE,GAIb,SAAUxtE,EAAQD,GAQtB,QAAS0tE,GAAUroB,EAAOC,EAAKwtD,EAAgBD,EAAch0B,EAAiB0V,GAC5E,GAAIuf,GAAY/vG,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAC3EgwG,EAAqBhwG,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAsBxF,IApBA3D,KAAK4zG,YAAc,EAAG,EAAG,EAAG,IAC5B5zG,KAAK6zG,YAAc,IAAM,GAAK,EAAG,GACjC7zG,KAAK8zG,YAAc,KAEnB9zG,KAAKy+E,gBAAkBA,EACvBz+E,KAAKm0F,gBAAkBA,EACvBn0F,KAAKmyD,OAASlN,EACdjlD,KAAKoyD,KAAOlN,EAEZllD,KAAKwC,MAAQ,EACbxC,KAAK+zG,cAAgB,EACrB/zG,KAAKg0G,gBAAkB,EACvBh0G,KAAKi0G,iBAELj0G,KAAK0zG,UAAYA,EACjB1zG,KAAK0yG,eAAiBA,EACtB1yG,KAAKyyG,aAAeA,EAEpBzyG,KAAK2zG,mBAAqBA,EAEtBjB,GAAkBD,EAAc,CAClC,GAAIxgE,GAAKjyC,KACL+qF,EAAe,SAAsBxoF,GACvC,GAAI2xG,GAAU3xG,EAAQA,GAAS0vC,EAAG+hE,gBAAkB/hE,EAAG4hE,WAAW5hE,EAAG8hE,cACrE,OAAIxxG,IAAS0vC,EAAG+hE,gBAAkB/hE,EAAG4hE,WAAW5hE,EAAG8hE,eAAwB9hE,EAAG+hE,gBAAkB/hE,EAAG4hE,WAAW5hE,EAAG8hE,cAA7C,GAC3DG,EAAUjiE,EAAG+hE,gBAAkB/hE,EAAG4hE,WAAW5hE,EAAG8hE,cAEhDG,EAGPxB,KACF1yG,KAAKmyD,QAAiC,EAAvBnyD,KAAKg0G,gBAAsBh0G,KAAK6zG,WAAW7zG,KAAK+zG,cAC/D/zG,KAAKmyD,OAAS44B,EAAa/qF,KAAKmyD,SAG9BsgD,IACFzyG,KAAKoyD,MAAQpyD,KAAKg0G,gBAAkBh0G,KAAK6zG,WAAW7zG,KAAK+zG,cACzD/zG,KAAKoyD,KAAO24B,EAAa/qF,KAAKoyD,OAEhCpyD,KAAKi0G,kBAIT3mC,EAAUj7D,UAAU8hG,cAAgB,SAAUhgB,GAC5Cn0F,KAAKm0F,gBAAkBA,GAGzB7mB,EAAUj7D,UAAU+hG,UAAY,SAAU31B,GACxCz+E,KAAKy+E,gBAAkBA,GAGzBnR,EAAUj7D,UAAU4hG,eAAiB,WACnC,GAAIz4D,GAAQx7C,KAAKoyD,KAAOpyD,KAAKmyD,MAC7BnyD,MAAKwC,MAAQxC,KAAKy+E,gBAAkBjjC,CACpC,IAAI64D,GAAmBr0G,KAAKm0F,gBAAkBn0F,KAAKwC,MAC/C8xG,EAAmB94D,EAAQ,EAAI/4C,KAAKm6B,MAAMn6B,KAAKmwD,IAAIpX,GAAS/4C,KAAKowD,MAAQ,CAE7E7yD,MAAK+zG,cAAgB,EACrB/zG,KAAKg0G,gBAAkBvxG,KAAKknB,IAAI,GAAI2qF,EAEpC,IAAIrvD,GAAQ,CACRqvD,GAAmB,IACrBrvD,EAAQqvD,EAIV,KAAK,GADDC,IAAgB,EACXx5F,EAAIkqC,EAAOxiD,KAAK0iB,IAAIpK,IAAMtY,KAAK0iB,IAAImvF,GAAmBv5F,IAAK,CAClE/a,KAAKg0G,gBAAkBvxG,KAAKknB,IAAI,GAAI5O,EACpC,KAAK,GAAIlN,GAAI,EAAGA,EAAI7N,KAAK6zG,WAAWjwG,OAAQiK,IAAK,CAE/C,GADe7N,KAAKg0G,gBAAkBh0G,KAAK6zG,WAAWhmG,IACtCwmG,EAAkB,CAChCE,GAAgB,EAChBv0G,KAAK+zG,aAAelmG,CACpB,QAGJ,IAAsB,IAAlB0mG,EACF,QAKNjnC,EAAUj7D,UAAUmiG,SAAW,SAAUjyG,GACvC,MAAOA,IAASvC,KAAKg0G,gBAAkBh0G,KAAK4zG,WAAW5zG,KAAK+zG,gBAAmB,GAGjFzmC,EAAUj7D,UAAU6gD,QAAU,WAC5B,MAAOlzD,MAAKg0G,gBAAkBh0G,KAAK6zG,WAAW7zG,KAAK+zG,eAGrDzmC,EAAUj7D,UAAUoiG,cAAgB,WAClC,GAAIC,GAAY10G,KAAKg0G,gBAAkBh0G,KAAK4zG,WAAW5zG,KAAK+zG,aAC5D,OAAO/zG,MAAK0wG,aAAa1wG,KAAKmyD,QAAUuiD,EAAY10G,KAAKmyD,OAASuiD,GAAaA,IAGjFpnC,EAAUj7D,UAAUsiG,YAAc,SAAU/6B,GAC1C,GAAInxE,GAAcmxE,EAAQ3mB,YAAY,EAKtC,OAJuC,kBAA5BjzD,MAAK2zG,qBACdlrG,EAAczI,KAAK2zG,mBAAmB/5B,IAGb,gBAAhBnxE,GACF,GAAKA,EACoB,gBAAhBA,GACTA,EAEAmxE,EAAQ3mB,YAAY,IAI/Bqa,EAAUj7D,UAAUwgG,SAAW,WAI7B,IAAK,GAHDtf,MACAhhF,EAAOvS,KAAKkzD,UACZ0hD,GAAgBriG,EAAOvS,KAAKmyD,OAAS5/C,GAAQA,EACxCxO,EAAI/D,KAAKmyD,OAASyiD,EAAc50G,KAAKoyD,KAAOruD,EAAI,KAASA,GAAKwO,EACjExO,GAAK/D,KAAKmyD,QAEZohC,EAAM1uF,MAAOiuG,MAAO9yG,KAAKw0G,SAASzwG,GAAI8qB,EAAG7uB,KAAK0wG,aAAa3sG,GAAI4T,IAAK3X,KAAK20G,YAAY5wG,IAGzF,OAAOwvF,IAGTjmB,EAAUj7D,UAAUsgG,YAAc,SAAU3uG,GAC1C,GAAI6wG,GAAa70G,KAAK+zG,aAClBe,EAAW90G,KAAKmyD,OAChB4iD,EAAS/0G,KAAKoyD,KAEdngB,EAAKjyC,KACLg1G,EAAoB,WACtB/iE,EAAG+hE,iBAAmB,GAEpBiB,EAAoB,WACtBhjE,EAAG+hE,iBAAmB,EAGpBhwG,GAAM+vG,cAAgB,GAAK/zG,KAAK+zG,cAAgB,GAAK/vG,EAAM+vG,aAAe,GAAK/zG,KAAK+zG,aAAe,IAE5F/vG,EAAM+vG,aAAe/zG,KAAK+zG,cAEnC/zG,KAAK+zG,aAAe,EACF,GAAdc,EACFG,KAEAA,IACAA,OAIFh1G,KAAK+zG,aAAe,EACF,GAAdc,EACFI,KAEAA,IACAA,MAYJ,KAPA,GACIC,IADQlxG,EAAM6uG,WACF7uG,EAAM0sG,aAAa,IAC/ByE,EAAYnxG,EAAMkvD,UAAYlvD,EAAMxB,MAEpCkP,GAAO,EACP6iC,EAAQ,GAEJ7iC,GAAQ6iC,IAAU,GAAG,CAG3Bv0C,KAAKwC,MAAQ2yG,GAAan1G,KAAK6zG,WAAW7zG,KAAK+zG,cAAgB/zG,KAAKg0G,gBACpE,IAAIoB,GAAWp1G,KAAKy+E,gBAAkBz+E,KAAKwC,KAG3CxC,MAAKmyD,OAAS2iD,EACd90G,KAAKoyD,KAAOpyD,KAAKmyD,OAASijD,CAE1B,IAAIC,GAAiBr1G,KAAKoyD,KAAOpyD,KAAKwC,MAClCkyG,EAAY10G,KAAKg0G,gBAAkBh0G,KAAK4zG,WAAW5zG,KAAK+zG,cACxDuB,EAAct1G,KAAKy0G,gBAAkBzwG,EAAMywG,eAE/C,IAAIz0G,KAAK0zG,UAAW,CAClB,GAAI6B,GAAaL,EAAYG,CAC7Br1G,MAAKoyD,MAAQmjD,EAAav1G,KAAKwC,MAC/BxC,KAAKmyD,OAASnyD,KAAKoyD,KAAOgjD,MAErBp1G,MAAK0yG,gBAIR1yG,KAAKmyD,QAAUmjD,EAAct1G,KAAKwC,MAClCxC,KAAKoyD,KAAOpyD,KAAKmyD,OAASijD,IAJ1Bp1G,KAAKmyD,QAAUuiD,EAAYY,EAAct1G,KAAKwC,MAC9CxC,KAAKoyD,KAAOpyD,KAAKmyD,OAASijD,EAM9B,KAAKp1G,KAAKyyG,cAAgBzyG,KAAKoyD,KAAO2iD,EAAS,KAE7CE,IACAvjG,GAAO,MAHT,CAMA,IAAK1R,KAAK0yG,gBAAkB1yG,KAAKmyD,OAAS2iD,EAAW,KAAS,CAC5D,KAAI90G,KAAK0zG,WAAaoB,GAAY,GAE3B,CAELG,IACAvjG,GAAO,CACP,UALA8T,QAAQH,KAAK,uDAQbrlB,KAAK0yG,gBAAkB1yG,KAAKyyG,cAAgB2C,EAAWL,EAASD,GAClEE,IACAtjG,GAAO,GAGTA,GAAO,KAIX47D,EAAUj7D,UAAUq+F,aAAe,SAAUnuG,GAC3C,MAAOvC,MAAKy+E,iBAAmBl8E,EAAQvC,KAAKmyD,QAAUnyD,KAAKwC,OAG7D8qE,EAAUj7D,UAAUw4F,cAAgB,SAAU2K,GAC5C,OAAQx1G,KAAKy+E,gBAAkB+2B,GAAUx1G,KAAKwC,MAAQxC,KAAKmyD,QAG7DtyD,EAAOD,QAAU0tE,GAIb,SAAUztE,EAAQD,EAASM,GA0B/B,QAASqtE,GAAWkE,EAAO6B,EAAStlE,EAAS+9F,GAC3C/rG,KAAKK,GAAKizE,CACV,IAAIhmE,IAAU,WAAY,QAAS,OAAQ,mBAAoB,WAAY,aAAc,SAAU,gBAAiB,SAAU,sBAAuB,oBACrJtN,MAAKgO,QAAUrN,EAAK0M,sBAAsBC,EAAQU,GAClDhO,KAAKy1G,sBAAwC5xG,KAApB4tE,EAAM/qE,UAC/B1G,KAAK+rG,yBAA2BA,EAChC/rG,KAAK01G,aAAe,EACpB11G,KAAKoyC,OAAOq/B,GACkB,GAA1BzxE,KAAKy1G,oBACPz1G,KAAK+rG,yBAAyB,IAAM,GAEtC/rG,KAAK2vE,aACL3vE,KAAKwlD,YAA4B3hD,KAAlB4tE,EAAMjsB,SAA+BisB,EAAMjsB,QAlC5D,GAAIjkD,GAAWrB,EAAoB,IAE/BsB,EAEJ,SAAgCV,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFnDS,GAIlCZ,EAAOT,EAAoB,GAE3BgsG,GADUhsG,EAAoB,IACvBA,EAAoB,MAC3BisG,EAAQjsG,EAAoB,KAC5BksG,EAASlsG,EAAoB,IA+BjCqtE,GAAWl7D,UAAUq+D,SAAW,SAAUv+B,GAC3B,MAATA,GACFnyC,KAAK2vE,UAAYx9B,EACQ,GAArBnyC,KAAKgO,QAAQ+a,MACfpoB,EAAK+M,WAAW1N,KAAK2vE,UAAW,SAAUnsE,EAAGC,GAC3C,MAAOD,GAAEyxB,EAAIxxB,EAAEwxB,EAAI,GAAK,KAI5Bj1B,KAAK2vE,cAITpC,EAAWl7D,UAAUqzE,SAAW,WAC9B,MAAO1lF,MAAK2vE,WAOdpC,EAAWl7D,UAAUs+F,gBAAkB,SAAU71F,GAC/C9a,KAAK01G,aAAe56F,GAOtByyD,EAAWl7D,UAAU6+B,WAAa,SAAUljC,GAC1C,OAAgBnK,KAAZmK,EAAuB,CACzB,GAAIV,IAAU,WAAY,QAAS,OAAQ,mBAAoB,WAAY,SAAU,sBAAuB,oBAC5G3M,GAAK2D,oBAAoBgJ,EAAQtN,KAAKgO,QAASA,GAGd,kBAAtBA,GAAQ4uE,aACjB5uE,EAAQ4uE,YACNC,SAAU7uE,EAAQ4uE,aAItBj8E,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS,iBACzCrN,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS,cACzCrN,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS,UAErCA,EAAQq9F,eAC6C,WAAnD,EAAI7pG,EAAkB,SAAGwM,EAAQq9F,gBAC/Br9F,EAAQq9F,cAAcC,kBACqB,WAAzCt9F,EAAQq9F,cAAcC,gBACxBtrG,KAAKgO,QAAQq9F,cAAc/D,MAAQ,EACe,WAAzCt5F,EAAQq9F,cAAcC,gBAC/BtrG,KAAKgO,QAAQq9F,cAAc/D,MAAQ,GAEnCtnG,KAAKgO,QAAQq9F,cAAcC,gBAAkB,cAC7CtrG,KAAKgO,QAAQq9F,cAAc/D,MAAQ,OAY/C/5B,EAAWl7D,UAAU+/B,OAAS,SAAUq/B,GACtCzxE,KAAKyxE,MAAQA,EACbzxE,KAAKywC,QAAUghC,EAAMhhC,SAAW,QAChCzwC,KAAK0G,UAAY+qE,EAAM/qE,WAAa1G,KAAK0G,WAAa,kBAAoB1G,KAAK+rG,yBAAyB,GAAK,GAC7G/rG,KAAKwlD,YAA4B3hD,KAAlB4tE,EAAMjsB,SAA+BisB,EAAMjsB,QAC1DxlD,KAAKqM,MAAQolE,EAAMplE,MACnBrM,KAAKkxC,WAAWugC,EAAMzjE,UAUxBu/D,EAAWl7D,UAAUk4F,UAAY,SAAU2G,EAAWiB,EAAYlG,EAAWh3E,EAAGpG,GAC9E,OAAiBhrB,IAAbooG,GAAuC,MAAbA,EAAmB,CAE/CA,GAAcD,IADJ97F,SAAS2/B,gBAAgB,6BAA8B,OACzCi8D,eAAiB99F,QAAShO,KAAKgO,QAAS6/D,QAAS7tE,OAQ3E,WANS6D,IAALoxB,GAAuB,MAALA,IACpBA,EAAI,OAEGpxB,IAALgrB,GAAuB,MAALA,IACpBA,EAAI,GAAMsjF,GAEJnyG,KAAKgO,QAAQ3B,OACnB,IAAK,OACH8/F,EAAMwJ,SAAS31G,KAAMi1B,EAAGpG,EAAGqiF,EAAWiB,EAAYlG,EAClD,MACF,KAAK,SACL,IAAK,QACHG,EAAOuJ,SAAS31G,KAAMi1B,EAAGpG,EAAGqiF,EAAWiB,EAAYlG,EACnD,MACF,KAAK,MACHC,EAAKyJ,SAAS31G,KAAMi1B,EAAGpG,EAAGqiF,EAAWiB,EAAYlG,GAGrD,OAAS2J,KAAM3J,EAAUD,IAAK17D,MAAOtwC,KAAKywC,QAASy9B,YAAaluE,KAAKgO,QAAQ88F,mBAG/Ev9B,EAAWl7D,UAAU88F,UAAY,SAAUntB,GAGzC,IAAK,GAFDhnC,GAAOgnC,EAAU,GAAGnzD,EACpBosB,EAAO+mC,EAAU,GAAGnzD,EACfhhB,EAAI,EAAGA,EAAIm0E,EAAUp+E,OAAQiK,IACpCmtC,EAAOA,EAAOgnC,EAAUn0E,GAAGghB,EAAImzD,EAAUn0E,GAAGghB,EAAImsB,EAChDC,EAAOA,EAAO+mC,EAAUn0E,GAAGghB,EAAImzD,EAAUn0E,GAAGghB,EAAIosB,CAElD,QAAS74C,IAAK44C,EAAM34C,IAAK44C,EAAM6vD,iBAAkB9qG,KAAKgO,QAAQ88F,mBAGhEjrG,EAAOD,QAAU2tE,GAIb,SAAU1tE,EAAQD,EAASM,GAO/B,QAAS21G,GAASviC,EAAStlE,IAH3B,GAAIsgC,GAAUpuC,EAAoB,IAC9BksG,EAASlsG,EAAoB,IAIjC21G,GAASF,SAAW,SAAUlkC,EAAOx8C,EAAGpG,EAAGqiF,EAAWiB,EAAYlG,GAChE,GAAI6J,GAA0B,GAAb3D,EAGb4D,EAAUznE,EAAQqB,cAAc,OAAQs8D,EAAUH,YAAaG,EAAUD,IAC7E+J,GAAQ3lE,eAAe,KAAM,IAAKnb,GAClC8gF,EAAQ3lE,eAAe,KAAM,IAAKvhB,EAAIinF,GACtCC,EAAQ3lE,eAAe,KAAM,QAAS8gE,GACtC6E,EAAQ3lE,eAAe,KAAM,SAAU,EAAI0lE,GAC3CC,EAAQ3lE,eAAe,KAAM,QAAS,cAEtC,IAAImmB,GAAW9zD,KAAKm6B,MAAM,GAAMs0E,GAC5B8E,EAAgBvkC,EAAMzjE,QAAQm9F,SAAS/6F,MACvC5N,EAAQwzG,EAAgBz/C,EACxB0/C,EAAaxzG,KAAKm6B,MAAM,GAAMu1E,GAC9B+D,EAAazzG,KAAKm6B,MAAM,IAAOu1E,GAE/Bt1E,EAASp6B,KAAKm6B,OAAOs0E,EAAY,EAAI36C,GAAY,EAKrD,IAHAjoB,EAAQqC,QAAQ1b,EAAI,GAAMshC,EAAW15B,EAAQhO,EAAIinF,EAAaG,EAAa,EAAG1/C,EAAU0/C,EAAYxkC,EAAM/qE,UAAY,WAAYulG,EAAUH,YAAaG,EAAUD,IAAKv6B,EAAMplE,OAC9KiiC,EAAQqC,QAAQ1b,EAAI,IAAMshC,EAAW15B,EAAS,EAAGhO,EAAIinF,EAAaI,EAAa,EAAG3/C,EAAU2/C,EAAYzkC,EAAM/qE,UAAY,WAAYulG,EAAUH,YAAaG,EAAUD,IAAKv6B,EAAMplE,OAE1I,GAApColE,EAAMzjE,QAAQ4uE,WAAW1uE,QAAiB,CAC5C,GAAIgiC,IACF7jC,MAAOolE,EAAMzjE,QAAQ4uE,WAAWvwE,MAChCD,OAAQqlE,EAAMzjE,QAAQ4uE,WAAWxwE,OACjCikC,KAAMohC,EAAMzjE,QAAQ4uE,WAAWvsC,KAAO7tC,EACtCkE,UAAW+qE,EAAM/qE,UAEnB4nC,GAAQ2B,UAAUhb,EAAI,GAAMshC,EAAW15B,EAAQhO,EAAIinF,EAAaG,EAAa,EAAG/lE,EAAe+7D,EAAUH,YAAaG,EAAUD,KAChI19D,EAAQ2B,UAAUhb,EAAI,IAAMshC,EAAW15B,EAAS,EAAGhO,EAAIinF,EAAaI,EAAa,EAAGhmE,EAAe+7D,EAAUH,YAAaG,EAAUD,OAUxI6J,EAAS7Y,KAAO,SAAUxa,EAAU2zB,EAAoBlK,GACtD,GAEImK,GACA7uG,EAAK8uG,EACL5kC,EACA1tE,EAAG8J,EALHyoG,KACAC,KAKAC,EAAY,CAGhB,KAAKzyG,EAAI,EAAGA,EAAIy+E,EAAS5+E,OAAQG,IAE/B,GADA0tE,EAAQw6B,EAAUp+B,OAAO2U,EAASz+E,IACN,QAAxB0tE,EAAMzjE,QAAQ3B,QACM,IAAlBolE,EAAMjsB,cAA0E3hD,KAArDooG,EAAUj+F,QAAQ6/D,OAAOr9D,WAAWgyE,EAASz+E,MAA0E,IAArDkoG,EAAUj+F,QAAQ6/D,OAAOr9D,WAAWgyE,EAASz+E,KAC5I,IAAK8J,EAAI,EAAGA,EAAIsoG,EAAmB3zB,EAASz+E,IAAIH,OAAQiK,IACtDyoG,EAAazxG,MACXyrG,SAAU6F,EAAmB3zB,EAASz+E,IAAI8J,GAAGyiG,SAC7CE,WAAY2F,EAAmB3zB,EAASz+E,IAAI8J,GAAG2iG,WAC/CD,SAAU4F,EAAmB3zB,EAASz+E,IAAI8J,GAAG0iG,SAC7Ct7E,EAAGkhF,EAAmB3zB,EAASz+E,IAAI8J,GAAGonB,EACtCiwB,IAAKixD,EAAmB3zB,EAASz+E,IAAI8J,GAAGq3C,IACxCr2B,EAAGsnF,EAAmB3zB,EAASz+E,IAAI8J,GAAGghB,EACtCykD,QAASkP,EAASz+E,GAClBusC,MAAO6lE,EAAmB3zB,EAASz+E,IAAI8J,GAAGyiC,QAE5CkmE,GAAa,CAMrB,IAAkB,IAAdA,EAiBJ,IAZAF,EAAavtF,KAAK,SAAUvlB,EAAGC,GAC7B,MAAID,GAAE8sG,WAAa7sG,EAAE6sG,SACZ9sG,EAAE8vE,QAAU7vE,EAAE6vE,SAAW,EAAI,EAE7B9vE,EAAE8sG,SAAW7sG,EAAE6sG,WAK1BuF,EAASY,sBAAsBF,EAAeD,GAGzCvyG,EAAI,EAAGA,EAAIuyG,EAAa1yG,OAAQG,IAAK,CACxC0tE,EAAQw6B,EAAUp+B,OAAOyoC,EAAavyG,GAAGuvE,QACzC,IAAIk+B,OAA8C3tG,IAAnC4tE,EAAMzjE,QAAQm9F,SAASqG,SAAwB//B,EAAMzjE,QAAQm9F,SAASqG,SAAW,GAAM//B,EAAMzjE,QAAQm9F,SAAS/6F,KAE7H7I,GAAM+uG,EAAavyG,GAAGusG,QACtB,IAAIoG,GAAe,CACnB,QAA2B7yG,KAAvB0yG,EAAchvG,GACZxD,EAAI,EAAIuyG,EAAa1yG,SACvBwyG,EAAe3zG,KAAK0iB,IAAImxF,EAAavyG,EAAI,GAAGusG,SAAW/oG,IAEzD8uG,EAAWR,EAASc,iBAAiBP,EAAc3kC,EAAO+/B,OACrD,CACL,GAAIvsC,GAAUlhE,GAAKwyG,EAAchvG,GAAKqvG,OAASL,EAAchvG,GAAKsvG,SAC/CN,GAAchvG,GAAKsvG,QAClC5xC,GAAUqxC,EAAa1yG,SACzBwyG,EAAe3zG,KAAK0iB,IAAImxF,EAAarxC,GAASqrC,SAAW/oG,IAE3D8uG,EAAWR,EAASc,iBAAiBP,EAAc3kC,EAAO+/B,GAC1D+E,EAAchvG,GAAKsvG,UAAY,GAEH,IAAxBplC,EAAMzjE,QAAQ4X,QAAwD,IAAtC6rD,EAAMzjE,QAAQggG,oBAC5CsI,EAAavyG,GAAGwsG,SAAW9+B,EAAMikC,cACnCgB,EAAeH,EAAchvG,GAAKuvG,oBAClCP,EAAchvG,GAAKuvG,qBAAuBrlC,EAAMikC,aAAeY,EAAavyG,GAAGwsG,WAE/EmG,EAAeH,EAAchvG,GAAKwvG,oBAClCR,EAAchvG,GAAKwvG,qBAAuBtlC,EAAMikC,aAAeY,EAAavyG,GAAGwsG,WAElC,IAAtC9+B,EAAMzjE,QAAQm9F,SAASC,aAChCiL,EAASjmG,MAAQimG,EAASjmG,MAAQmmG,EAAchvG,GAAKqvG,OACrDP,EAASx5E,QAAU05E,EAAchvG,GAAKsvG,SAAWR,EAASjmG,MAAQ,GAAMimG,EAASjmG,OAASmmG,EAAchvG,GAAKqvG,OAAS,IAI1H,GAAII,GAAYX,EAASjmG,MACrB60C,EAAQqxD,EAAavyG,GAAGusG,QAa5B,QAVkCzsG,IAA9ByyG,EAAavyG,GAAGysG,YAClBwG,EAAYV,EAAavyG,GAAGysG,WAAa8F,EAAavyG,GAAGusG,SACzDrrD,GAAqB,GAAZ+xD,GAET/xD,GAASoxD,EAASx5E,OAGpByR,EAAQqC,QAAQsU,EAAOqxD,EAAavyG,GAAGwsG,SAAWmG,EAAcM,EAAWvlC,EAAMikC,aAAeY,EAAavyG,GAAGwsG,SAAU9+B,EAAM/qE,UAAY,WAAYulG,EAAUH,YAAaG,EAAUD,IAAKv6B,EAAMplE,QAG3J,IAArColE,EAAMzjE,QAAQ4uE,WAAW1uE,QAAkB,CAC7C,GAAI+oG,IACF3G,SAAUgG,EAAavyG,GAAGusG,SAC1BC,SAAU+F,EAAavyG,GAAGwsG,SAAWmG,EACrCzhF,EAAGqhF,EAAavyG,GAAGkxB,EACnBpG,EAAGynF,EAAavyG,GAAG8qB,EACnBykD,QAASgjC,EAAavyG,GAAGuvE,QACzBhjC,MAAOgmE,EAAavyG,GAAGusC,MAEzB87D,GAAOpP,MAAMia,GAAYxlC,EAAOw6B,EAAWoK,EAASx5E,WAY1Dg5E,EAASY,sBAAwB,SAAUF,EAAeD,GAGxD,IAAK,GADDF,GACKryG,EAAI,EAAGA,EAAIuyG,EAAa1yG,OAAQG,IACnCA,EAAI,EAAIuyG,EAAa1yG,SACvBwyG,EAAe3zG,KAAK0iB,IAAImxF,EAAavyG,EAAI,GAAGusG,SAAWgG,EAAavyG,GAAGusG,WAErEvsG,EAAI,IACNqyG,EAAe3zG,KAAKL,IAAIg0G,EAAc3zG,KAAK0iB,IAAImxF,EAAavyG,EAAI,GAAGusG,SAAWgG,EAAavyG,GAAGusG,YAE3E,IAAjB8F,QAC8CvyG,KAA5C0yG,EAAcD,EAAavyG,GAAGusG,YAChCiG,EAAcD,EAAavyG,GAAGusG,WAC5BsG,OAAQ,EACRC,SAAU,EACVE,oBAAqB,EACrBD,oBAAqB,IAGzBP,EAAcD,EAAavyG,GAAGusG,UAAUsG,QAAU,IAcxDf,EAASc,iBAAmB,SAAUP,EAAc3kC,EAAO+/B,GACzD,GAAIphG,GAAOysB,CAqBX,OApBIu5E,GAAe3kC,EAAMzjE,QAAQm9F,SAAS/6F,OAASgmG,EAAe,GAChEhmG,EAAQgmG,EAAe5E,EAAWA,EAAW4E;mDAE7Cv5E,EAAS,EAC4B,SAAjC40C,EAAMzjE,QAAQm9F,SAASrrB,MACzBjjD,GAAU,GAAMu5E,EAC0B,UAAjC3kC,EAAMzjE,QAAQm9F,SAASrrB,QAChCjjD,GAAU,GAAMu5E,KAIlBhmG,EAAQqhE,EAAMzjE,QAAQm9F,SAAS/6F,MAC/BysB,EAAS,EAC4B,SAAjC40C,EAAMzjE,QAAQm9F,SAASrrB,MACzBjjD,GAAU,GAAM40C,EAAMzjE,QAAQm9F,SAAS/6F,MACG,UAAjCqhE,EAAMzjE,QAAQm9F,SAASrrB,QAChCjjD,GAAU,GAAM40C,EAAMzjE,QAAQm9F,SAAS/6F,SAIlCA,MAAOA,EAAOysB,OAAQA,IAGjCg5E,EAASzG,iBAAmB,SAAUkH,EAAc/I,EAAa/qB,EAAU00B,EAAYhpC,GACrF,GAAIooC,EAAa1yG,OAAS,EAAG,CAE3B0yG,EAAavtF,KAAK,SAAUvlB,EAAGC,GAC7B,MAAID,GAAE8sG,WAAa7sG,EAAE6sG,SACZ9sG,EAAE8vE,QAAU7vE,EAAE6vE,SAAW,EAAI,EAE7B9vE,EAAE8sG,SAAW7sG,EAAE6sG,UAG1B,IAAIiG,KAEJV,GAASY,sBAAsBF,EAAeD,GAC9C/I,EAAY2J,GAAcrB,EAASsB,kBAAkBZ,EAAeD,GACpE/I,EAAY2J,GAAYpM,iBAAmB58B,EAC3CsU,EAAS39E,KAAKqyG,KAIlBrB,EAASsB,kBAAoB,SAAUZ,EAAeD,GAIpD,IAAK,GAHD/uG,GACAyzC,EAAOs7D,EAAa,GAAG/F,SACvBt1D,EAAOq7D,EAAa,GAAG/F,SAClBxsG,EAAI,EAAGA,EAAIuyG,EAAa1yG,OAAQG,IACvCwD,EAAM+uG,EAAavyG,GAAGusG,aACKzsG,KAAvB0yG,EAAchvG,IAChByzC,EAAOA,EAAOs7D,EAAavyG,GAAGwsG,SAAW+F,EAAavyG,GAAGwsG,SAAWv1D,EACpEC,EAAOA,EAAOq7D,EAAavyG,GAAGwsG,SAAW+F,EAAavyG,GAAGwsG,SAAWt1D,GAEhEq7D,EAAavyG,GAAGwsG,SAAW,EAC7BgG,EAAchvG,GAAKuvG,qBAAuBR,EAAavyG,GAAGwsG,SAE1DgG,EAAchvG,GAAKwvG,qBAAuBT,EAAavyG,GAAGwsG,QAIhE,KAAK,GAAI6G,KAAQb,GACXA,EAAcjzG,eAAe8zG,KAC/Bp8D,EAAOA,EAAOu7D,EAAca,GAAMN,oBAAsBP,EAAca,GAAMN,oBAAsB97D,EAClGA,EAAOA,EAAOu7D,EAAca,GAAML,oBAAsBR,EAAca,GAAML,oBAAsB/7D,EAClGC,EAAOA,EAAOs7D,EAAca,GAAMN,oBAAsBP,EAAca,GAAMN,oBAAsB77D,EAClGA,EAAOA,EAAOs7D,EAAca,GAAML,oBAAsBR,EAAca,GAAML,oBAAsB97D,EAItG,QAAS74C,IAAK44C,EAAM34C,IAAK44C,IAG3Bp7C,EAAOD,QAAUi2G,GAIb,SAAUh2G,EAAQD,EAASM,GAY/B,QAASksG,GAAO94B,EAAStlE,IA2CzB,QAASqpG,GAAiB5lC,EAAO6lC,GAE/B,MADAA,OAA2C,KAAnBA,KAAsCA,GAE5DjrG,MAAOirG,EAAejrG,OAASolE,EAAMzjE,QAAQ4uE,WAAWvwE,MACxDD,OAAQkrG,EAAelrG,QAAUqlE,EAAMzjE,QAAQ4uE,WAAWxwE,OAC1DikC,KAAMinE,EAAejnE,MAAQohC,EAAMzjE,QAAQ4uE,WAAWvsC,KACtD3pC,UAAW4wG,EAAe5wG,WAAa+qE,EAAM/qE,WAIjD,QAAS6wG,GAAYtL,EAAWx6B,GAC9B,GAAItqE,OAAWtD,EAUf,OARIooG,GAAUj+F,SAAWi+F,EAAUj+F,QAAQ4uE,YAAcqvB,EAAUj+F,QAAQ4uE,WAAWC,UAA4D,kBAAzCovB,GAAUj+F,QAAQ4uE,WAAWC,WACpI11E,EAAW8kG,EAAUj+F,QAAQ4uE,WAAWC,UAItCpL,EAAMA,MAAMzjE,SAAWyjE,EAAMA,MAAMzjE,QAAQ4uE,YAAcnL,EAAMA,MAAMzjE,QAAQ4uE,WAAWC,UAA8D,kBAA3CpL,GAAMA,MAAMzjE,QAAQ4uE,WAAWC,WAC5I11E,EAAWsqE,EAAMA,MAAMzjE,QAAQ4uE,WAAWC,UAErC11E,EAxET,GAAI5F,GAAWrB,EAAoB,IAE/BsB,EAEJ,SAAgCV,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFnDS,GAIlC+sC,EAAUpuC,EAAoB,GAalCksG,GAAOpP,KAAO,SAAUprB,EAASH,EAAOw6B,EAAWpvE,GACjDA,EAASA,GAAU,CAGnB,KAAK,GAFD11B,GAAWowG,EAAYtL,EAAWx6B,GAE7B1tE,EAAI,EAAGA,EAAI6tE,EAAQhuE,OAAQG,IAClC,GAAKoD,EAGE,CACL,GAAImwG,GAAiBnwG,EAASyqE,EAAQ7tE,GAAI0tE,IACnB,IAAnB6lC,GAAgI,gBAA1E,KAAnBA,EAAiC,aAAc,EAAI91G,EAAkB,SAAG81G,KAC7GhpE,EAAQ2B,UAAU2hC,EAAQ7tE,GAAGusG,SAAWzzE,EAAQ+0C,EAAQ7tE,GAAGwsG,SAAU8G,EAAiB5lC,EAAO6lC,GAAiBrL,EAAUH,YAAaG,EAAUD,IAAKp6B,EAAQ7tE,GAAGusC,WAJjKhC,GAAQ2B,UAAU2hC,EAAQ7tE,GAAGusG,SAAWzzE,EAAQ+0C,EAAQ7tE,GAAGwsG,SAAU8G,EAAiB5lC,GAAQw6B,EAAUH,YAAaG,EAAUD,IAAKp6B,EAAQ7tE,GAAGusC,QAUrJ87D,EAAOuJ,SAAW,SAAUlkC,EAAOx8C,EAAGpG,EAAGqiF,EAAWiB,EAAYlG,GAC9D,GAAI6J,GAA0B,GAAb3D,EAGb4D,EAAUznE,EAAQqB,cAAc,OAAQs8D,EAAUH,YAAaG,EAAUD,IAC7E+J,GAAQ3lE,eAAe,KAAM,IAAKnb,GAClC8gF,EAAQ3lE,eAAe,KAAM,IAAKvhB,EAAIinF,GACtCC,EAAQ3lE,eAAe,KAAM,QAAS8gE,GACtC6E,EAAQ3lE,eAAe,KAAM,SAAU,EAAI0lE,GAC3CC,EAAQ3lE,eAAe,KAAM,QAAS,eAGtC9B,EAAQ2B,UAAUhb,EAAI,GAAMi8E,EAAWriF,EAAGwoF,EAAiB5lC,GAAQw6B,EAAUH,YAAaG,EAAUD,MA2BtGnsG,EAAOD,QAAUwsG,GAIb,SAAUvsG,EAAQD,EAASM,GAM/B,QAASs3G,GAAKlkC,EAAStlE,IAFvB,GAAIsgC,GAAUpuC,EAAoB,GAIlCs3G,GAAKrJ,SAAW,SAAUv8B,EAASH,GAC/B,GAAe,MAAXG,GACIA,EAAQhuE,OAAS,EAAG,CASpB,MAL2C,IAAvC6tE,EAAMzjE,QAAQq9F,cAAcn9F,QACxBspG,EAAKC,YAAY7lC,EAASH,GAE1B+lC,EAAKE,QAAQ9lC,KAOjC4lC,EAAK7B,SAAW,SAAUlkC,EAAOx8C,EAAGpG,EAAGqiF,EAAWiB,EAAYlG,GAC1D,GACIhV,GAAM0gB,EADN7B,EAA0B,GAAb3D,EAGb4D,EAAUznE,EAAQqB,cAAc,OAAQs8D,EAAUH,YAAaG,EAAUD,IA2B7E,IA1BA+J,EAAQ3lE,eAAe,KAAM,IAAKnb,GAClC8gF,EAAQ3lE,eAAe,KAAM,IAAKvhB,EAAIinF,GACtCC,EAAQ3lE,eAAe,KAAM,QAAS8gE,GACtC6E,EAAQ3lE,eAAe,KAAM,SAAU,EAAI0lE,GAC3CC,EAAQ3lE,eAAe,KAAM,QAAS,eAEtC6mD,EAAO3oD,EAAQqB,cAAc,OAAQs8D,EAAUH,YAAaG,EAAUD,KACtE/U,EAAK7mD,eAAe,KAAM,QAASqhC,EAAM/qE,eACrB7C,KAAhB4tE,EAAMplE,OACN4qF,EAAK7mD,eAAe,KAAM,QAASqhC,EAAMplE,OAG7C4qF,EAAK7mD,eAAe,KAAM,IAAK,IAAMnb,EAAI,IAAMpG,EAAI,MAAQoG,EAAIi8E,GAAa,IAAMriF,GAC9C,GAAhC4iD,EAAMzjE,QAAQk9F,OAAOh9F,UACrBypG,EAAWrpE,EAAQqB,cAAc,OAAQs8D,EAAUH,YAAaG,EAAUD,KAClC,OAApCv6B,EAAMzjE,QAAQk9F,OAAOh9B,YACrBypC,EAASvnE,eAAe,KAAM,IAAK,IAAMnb,EAAI,MAAQpG,EAAIinF,GAAc,IAAM7gF,EAAI,IAAMpG,EAAI,MAAQoG,EAAIi8E,GAAa,IAAMriF,EAAI,MAAQoG,EAAIi8E,GAAa,KAAOriF,EAAIinF,IAElK6B,EAASvnE,eAAe,KAAM,IAAK,IAAMnb,EAAI,IAAMpG,EAAI,KAAYoG,EAAI,KAAOpG,EAAIinF,GAAc,MAAa7gF,EAAIi8E,GAAa,KAAOriF,EAAIinF,GAAc,KAAO7gF,EAAIi8E,GAAa,IAAMriF,GAEzL8oF,EAASvnE,eAAe,KAAM,QAASqhC,EAAM/qE,UAAY,sBACtB7C,KAA/B4tE,EAAMzjE,QAAQk9F,OAAO7+F,OAAsD,KAA/BolE,EAAMzjE,QAAQk9F,OAAO7+F,OACjEsrG,EAASvnE,eAAe,KAAM,QAASqhC,EAAMzjE,QAAQk9F,OAAO7+F,QAI5B,GAApColE,EAAMzjE,QAAQ4uE,WAAW1uE,QAAiB,CAC1C,GAAIgiC,IACA7jC,MAAOolE,EAAMzjE,QAAQ4uE,WAAWvwE,MAChCD,OAAQqlE,EAAMzjE,QAAQ4uE,WAAWxwE,OACjCikC,KAAMohC,EAAMzjE,QAAQ4uE,WAAWvsC,KAC/B3pC,UAAW+qE,EAAM/qE,UAErB4nC,GAAQ2B,UAAUhb,EAAI,GAAMi8E,EAAWriF,EAAGqhB,EAAe+7D,EAAUH,YAAaG,EAAUD,OAIlGwL,EAAKnJ,YAAc,SAAUuJ,EAAWnmC,EAAOomC,EAAc5L,GAEzD,GAAoC,GAAhCx6B,EAAMzjE,QAAQk9F,OAAOh9F,QAAiB,CACtC,GAAIuiG,GAAY5uG,OAAOoqG,EAAUD,IAAI3/F,MAAMgE,OAAOzG,QAAQ,KAAM,KAC5D+tG,EAAWrpE,EAAQqB,cAAc,OAAQs8D,EAAUH,YAAaG,EAAUD,KAC1E/mG,EAAO,GACgC,IAAvCwsE,EAAMzjE,QAAQq9F,cAAcn9F,UAC5BjJ,EAAO,IAEX,IAAI6yG,GACAC,EAAO,CAEPA,GADoC,OAApCtmC,EAAMzjE,QAAQk9F,OAAOh9B,YACd,EACoC,UAApCuD,EAAMzjE,QAAQk9F,OAAOh9B,YACrBuiC,EAEAhuG,KAAKL,IAAIK,KAAKJ,IAAI,EAAGovE,EAAMikC,cAAejF,GAGjDqH,EADoC,SAApCrmC,EAAMzjE,QAAQk9F,OAAOh9B,aAA0C,MAAhB2pC,OAAwCh0G,IAAhBg0G,EAC/D,IAAMD,EAAU,GAAG,GAAK,IAAMA,EAAU,GAAG,GAAK,IAAM53G,KAAKg4G,cAAcJ,EAAW3yG,GAAM,GAAS,KAAO4yG,EAAaA,EAAaj0G,OAAS,GAAG,GAAK,IAAMi0G,EAAaA,EAAaj0G,OAAS,GAAG,GAAK,IAAM5D,KAAKg4G,cAAcH,EAAc5yG,GAAM,GAAQ4yG,EAAa,GAAG,GAAK,IAAMA,EAAa,GAAG,GAAK,KAE3S,IAAMD,EAAU,GAAG,GAAK,IAAMA,EAAU,GAAG,GAAK,IAAM53G,KAAKg4G,cAAcJ,EAAW3yG,GAAM,GAAS,KAAO8yG,EAAO,KAAOH,EAAU,GAAG,GAAK,KAGtJD,EAASvnE,eAAe,KAAM,QAASqhC,EAAM/qE,UAAY,iBACtB7C,KAA/B4tE,EAAMzjE,QAAQk9F,OAAO7+F,OACrBsrG,EAASvnE,eAAe,KAAM,QAASqhC,EAAMzjE,QAAQk9F,OAAO7+F,OAEhEsrG,EAASvnE,eAAe,KAAM,IAAK0nE,KAU3CN,EAAKxa,KAAO,SAAU4a,EAAWnmC,EAAOw6B,GACpC,GAAiB,MAAb2L,OAAkC/zG,IAAb+zG,EAAwB,CAC7C,GAAI3gB,GAAO3oD,EAAQqB,cAAc,OAAQs8D,EAAUH,YAAaG,EAAUD,IAC1E/U,GAAK7mD,eAAe,KAAM,QAASqhC,EAAM/qE,eACrB7C,KAAhB4tE,EAAMplE,OACN4qF,EAAK7mD,eAAe,KAAM,QAASqhC,EAAMplE,MAG7C,IAAIpH,GAAO,GACgC,IAAvCwsE,EAAMzjE,QAAQq9F,cAAcn9F,UAC5BjJ,EAAO,KAGXgyF,EAAK7mD,eAAe,KAAM,IAAK,IAAMwnE,EAAU,GAAG,GAAK,IAAMA,EAAU,GAAG,GAAK,IAAM53G,KAAKg4G,cAAcJ,EAAW3yG,GAAM,MAIjIuyG,EAAKQ,cAAgB,SAAUJ,EAAW3yG,EAAMgzG,GAC5C,GAAIL,EAAUh0G,OAAS,EAEnB,MAAO,EAEX,IAAIqI,GAAIhH,CACR,IAAIgzG,EACA,IAAK,GAAIl0G,GAAI6zG,EAAUh0G,OAAS,EAAGG,EAAI,EAAGA,IACtCkI,GAAK2rG,EAAU7zG,GAAG,GAAK,IAAM6zG,EAAU7zG,GAAG,GAAK,QAGnD,KAAK,GAAIA,GAAI,EAAGA,EAAI6zG,EAAUh0G,OAAQG,IAClCkI,GAAK2rG,EAAU7zG,GAAG,GAAK,IAAM6zG,EAAU7zG,GAAG,GAAK,GAGvD,OAAOkI,IAUXurG,EAAKU,mBAAqB,SAAUxjF,GAEhC,GAAIyjF,GAAI/sF,EAAIC,EAAIC,EAAI8sF,EAAKC,EACrBpsG,IACJA,GAAEpH,MAAMpC,KAAKm6B,MAAMlI,EAAK,GAAG47E,UAAW7tG,KAAKm6B,MAAMlI,EAAK,GAAG67E,WAGzD,KAAK,GADD3sG,GAAS8wB,EAAK9wB,OACTG,EAAI,EAAGA,EAAIH,EAAS,EAAGG,IAE5Bo0G,EAAU,GAALp0G,EAAS2wB,EAAK,GAAKA,EAAK3wB,EAAI,GACjCqnB,EAAKsJ,EAAK3wB,GACVsnB,EAAKqJ,EAAK3wB,EAAI,GACdunB,EAAKvnB,EAAI,EAAIH,EAAS8wB,EAAK3wB,EAAI,GAAKsnB,EASpC+sF,GACI9H,WAAY6H,EAAG7H,SAAW,EAAIllF,EAAGklF,SAAWjlF,EAAGilF,WAjBnC,EAAI,GAkBhBC,WAAY4H,EAAG5H,SAAW,EAAInlF,EAAGmlF,SAAWllF,EAAGklF,WAlBnC,EAAI,IAoBpB8H,GACI/H,UAAWllF,EAAGklF,SAAW,EAAIjlF,EAAGilF,SAAWhlF,EAAGglF,WArBlC,EAAI,GAsBhBC,UAAWnlF,EAAGmlF,SAAW,EAAIllF,EAAGklF,SAAWjlF,EAAGilF,WAtBlC,EAAI,IA0BpBtkG,EAAEpH,MAAMuzG,EAAI9H,SAAU8H,EAAI7H,WAC1BtkG,EAAEpH,MAAMwzG,EAAI/H,SAAU+H,EAAI9H,WAC1BtkG,EAAEpH,MAAMwmB,EAAGilF,SAAUjlF,EAAGklF,UAG5B,OAAOtkG,IAcXurG,EAAKC,YAAc,SAAU/iF,EAAM+8C,GAC/B,GAAI61B,GAAQ71B,EAAMzjE,QAAQq9F,cAAc/D,KACxC,IAAa,GAATA,OAAwBzjG,KAAVyjG,EACd,MAAOtnG,MAAKk4G,mBAAmBxjF,EAE/B,IAAIyjF,GAAI/sF,EAAIC,EAAIC,EAAI8sF,EAAKC,EAAKC,EAAIC,EAAIC,EAAI9pD,EAAGz4C,EAAGwiG,EAAG3pF,EAC/C4pF,EAAQC,EAAQC,EAASC,EAASC,EAASC,EAC3C9sG,IACJA,GAAEpH,MAAMpC,KAAKm6B,MAAMlI,EAAK,GAAG47E,UAAW7tG,KAAKm6B,MAAMlI,EAAK,GAAG67E,WAEzD,KAAK,GADD3sG,GAAS8wB,EAAK9wB,OACTG,EAAI,EAAGA,EAAIH,EAAS,EAAGG,IAE5Bo0G,EAAU,GAALp0G,EAAS2wB,EAAK,GAAKA,EAAK3wB,EAAI,GACjCqnB,EAAKsJ,EAAK3wB,GACVsnB,EAAKqJ,EAAK3wB,EAAI,GACdunB,EAAKvnB,EAAI,EAAIH,EAAS8wB,EAAK3wB,EAAI,GAAKsnB,EAEpCitF,EAAK71G,KAAKorD,KAAKprD,KAAKknB,IAAIwuF,EAAG7H,SAAWllF,EAAGklF,SAAU,GAAK7tG,KAAKknB,IAAIwuF,EAAG5H,SAAWnlF,EAAGmlF,SAAU,IAC5FgI,EAAK91G,KAAKorD,KAAKprD,KAAKknB,IAAIyB,EAAGklF,SAAWjlF,EAAGilF,SAAU,GAAK7tG,KAAKknB,IAAIyB,EAAGmlF,SAAWllF,EAAGklF,SAAU,IAC5FiI,EAAK/1G,KAAKorD,KAAKprD,KAAKknB,IAAI0B,EAAGilF,SAAWhlF,EAAGglF,SAAU,GAAK7tG,KAAKknB,IAAI0B,EAAGklF,SAAWjlF,EAAGilF,SAAU,IAY5FmI,EAASj2G,KAAKknB,IAAI6uF,EAAIlR,GACtBsR,EAAUn2G,KAAKknB,IAAI6uF,EAAI,EAAIlR,GAC3BqR,EAASl2G,KAAKknB,IAAI4uF,EAAIjR,GACtBuR,EAAUp2G,KAAKknB,IAAI4uF,EAAI,EAAIjR,GAC3ByR,EAASt2G,KAAKknB,IAAI2uF,EAAIhR,GACtBwR,EAAUr2G,KAAKknB,IAAI2uF,EAAI,EAAIhR,GAE3B54C,EAAI,EAAIoqD,EAAU,EAAIC,EAASJ,EAASE,EACxC5iG,EAAI,EAAI2iG,EAAU,EAAIF,EAASC,EAASE,EACxCJ,EAAI,EAAIM,GAAUA,EAASJ,GACvBF,EAAI,IACJA,EAAI,EAAIA,GAEZ3pF,EAAI,EAAI4pF,GAAUA,EAASC,GACvB7pF,EAAI,IACJA,EAAI,EAAIA,GAGZspF,GACI9H,WAAYuI,EAAUV,EAAG7H,SAAW5hD,EAAItjC,EAAGklF,SAAWwI,EAAUztF,EAAGilF,UAAYmI,EAC/ElI,WAAYsI,EAAUV,EAAG5H,SAAW7hD,EAAItjC,EAAGmlF,SAAWuI,EAAUztF,EAAGklF,UAAYkI,GAGnFJ,GACI/H,UAAWsI,EAAUxtF,EAAGklF,SAAWr6F,EAAIoV,EAAGilF,SAAWuI,EAAUvtF,EAAGglF,UAAYxhF,EAC9EyhF,UAAWqI,EAAUxtF,EAAGmlF,SAAWt6F,EAAIoV,EAAGklF,SAAWsI,EAAUvtF,EAAGilF,UAAYzhF,GAG9D,GAAhBspF,EAAI9H,UAAiC,GAAhB8H,EAAI7H,WACzB6H,EAAMhtF,GAEU,GAAhBitF,EAAI/H,UAAiC,GAAhB+H,EAAI9H,WACzB8H,EAAMhtF,GAEVpf,EAAEpH,MAAMuzG,EAAI9H,SAAU8H,EAAI7H,WAC1BtkG,EAAEpH,MAAMwzG,EAAI/H,SAAU+H,EAAI9H,WAC1BtkG,EAAEpH,MAAMwmB,EAAGilF,SAAUjlF,EAAGklF,UAG5B,OAAOtkG,IAUfurG,EAAKE,QAAU,SAAUhjF,GAGrB,IAAK,GADDzoB,MACKlI,EAAI,EAAGA,EAAI2wB,EAAK9wB,OAAQG,IAC7BkI,EAAEpH,MAAM6vB,EAAK3wB,GAAGusG,SAAU57E,EAAK3wB,GAAGwsG,UAEtC,OAAOtkG,IAGXpM,EAAOD,QAAU43G,GAIb,SAAU33G,EAAQD,EAASM,GAiB/B,QAASwtE,GAAO/8D,EAAM3C,EAASgrG,EAAMpI,GACnC5wG,KAAK2Q,KAAOA,EACZ3Q,KAAKguE,gBACH9/D,SAAS,EACT2iG,OAAO,EACPoI,SAAU,GACVC,YAAa,EACbhzG,MACEs/C,SAAS,EACTj1C,SAAU,YAEZnK,OACEo/C,SAAS,EACTj1C,SAAU,cAIdvQ,KAAKg5G,KAAOA,EACZh5G,KAAKgO,QAAUrN,EAAKC,UAAWZ,KAAKguE,gBACpChuE,KAAK4wG,iBAAmBA,EAExB5wG,KAAK8rG,eACL9rG,KAAK+tD,OACL/tD,KAAK6tE,UACL7tE,KAAK6xG,eAAiB,EACtB7xG,KAAKmB,UACLnB,KAAKisG,WAAcD,IAAKhsG,KAAKgsG,IAAKF,YAAa9rG,KAAK8rG,YAAa99F,QAAShO,KAAKgO,QAAS6/D,OAAQ7tE,KAAK6tE,QAErG7tE,KAAKkxC,WAAWljC,GAzClB,GAAI3M,GAAQnB,EAAoB,IAE5BoB,EAEJ,SAAgCR,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFrDO,GAIhCV,EAAOT,EAAoB,GAC3BouC,EAAUpuC,EAAoB,IAC9BgtE,EAAYhtE,EAAoB,IAoCpCwtE,GAAOr7D,UAAY,GAAI66D,GAEvBQ,EAAOr7D,UAAU4hC,MAAQ,WACvBj0C,KAAK6tE,UACL7tE,KAAK6xG,eAAiB,GAGxBnkC,EAAOr7D,UAAUo6F,SAAW,SAAUn8D,EAAOyhE,GAGG,GAA1CA,EAAa/jG,QAAQmrG,oBAClBn5G,KAAK6tE,OAAOvqE,eAAegtC,KAC9BtwC,KAAK6tE,OAAOv9B,GAASyhE,GAEvB/xG,KAAK6xG,gBAAkB,IAI3BnkC,EAAOr7D,UAAUquE,YAAc,SAAUpwC,EAAOyhE,GAC9C/xG,KAAK6tE,OAAOv9B,GAASyhE,GAGvBrkC,EAAOr7D,UAAUk6F,YAAc,SAAUj8D,GACnCtwC,KAAK6tE,OAAOvqE,eAAegtC,WACtBtwC,MAAK6tE,OAAOv9B,GACnBtwC,KAAK6xG,gBAAkB,IAI3BnkC,EAAOr7D,UAAUlR,QAAU,WACzBnB,KAAK+tD,IAAI5P,MAAQjuC,SAASC,cAAc,OACxCnQ,KAAK+tD,IAAI5P,MAAMz3C,UAAY,aAC3B1G,KAAK+tD,IAAI5P,MAAM9xC,MAAMkE,SAAW,WAChCvQ,KAAK+tD,IAAI5P,MAAM9xC,MAAM/F,IAAM,OAC3BtG,KAAK+tD,IAAI5P,MAAM9xC,MAAMoM,QAAU,QAE/BzY,KAAK+tD,IAAIqrD,SAAWlpG,SAASC,cAAc,OAC3CnQ,KAAK+tD,IAAIqrD,SAAS1yG,UAAY,kBAC9B1G,KAAK+tD,IAAIqrD,SAAS/sG,MAAMkE,SAAW,WACnCvQ,KAAK+tD,IAAIqrD,SAAS/sG,MAAM/F,IAAM,MAE9BtG,KAAKgsG,IAAM97F,SAAS2/B,gBAAgB,6BAA8B,OAClE7vC,KAAKgsG,IAAI3/F,MAAMkE,SAAW,WAC1BvQ,KAAKgsG,IAAI3/F,MAAM/F,IAAM,MACrBtG,KAAKgsG,IAAI3/F,MAAM+D,MAAQpQ,KAAKgO,QAAQirG,SAAW,EAAI,KACnDj5G,KAAKgsG,IAAI3/F,MAAMgE,OAAS,OAExBrQ,KAAK+tD,IAAI5P,MAAMztC,YAAY1Q,KAAKgsG,KAChChsG,KAAK+tD,IAAI5P,MAAMztC,YAAY1Q,KAAK+tD,IAAIqrD,WAMtC1rC,EAAOr7D,UAAUP,KAAO,WAElB9R,KAAK+tD,IAAI5P,MAAMr1C,YACjB9I,KAAK+tD,IAAI5P,MAAMr1C,WAAW5G,YAAYlC,KAAK+tD,IAAI5P,QAQnDuvB,EAAOr7D,UAAU+/D,KAAO,WAEjBpyE,KAAK+tD,IAAI5P,MAAMr1C,YAClB9I,KAAK2Q,KAAKo9C,IAAIlS,OAAOnrC,YAAY1Q,KAAK+tD,IAAI5P,QAI9CuvB,EAAOr7D,UAAU6+B,WAAa,SAAUljC,GACtC,GAAIV,IAAU,UAAW,cAAe,QAAS,OAAQ,QACzD3M,GAAK2D,oBAAoBgJ,EAAQtN,KAAKgO,QAASA,IAGjD0/D,EAAOr7D,UAAUotC,OAAS,WACxB,GAAI4yD,GAAe,EACfH,GAAa,EAAI5wG,EAAgB,SAAGtB,KAAK6tE,OAC7CqkC,GAAWnpF,KAAK,SAAUvlB,EAAGC,GAC3B,MAAOD,GAAIC,GAAK,EAAI,GAGtB,KAAK,GAAIM,GAAI,EAAGA,EAAImuG,EAAWtuG,OAAQG,IAAK,CAC1C,GAAIuvE,GAAU4+B,EAAWnuG,EACW,IAAhC/D,KAAK6tE,OAAOyF,GAAS9tB,aAAkE3hD,KAA9C7D,KAAK4wG,iBAAiBpgG,WAAW8iE,IAAuE,GAA7CtzE,KAAK4wG,iBAAiBpgG,WAAW8iE,IACvI++B,IAIJ,GAAuC,GAAnCryG,KAAKgO,QAAQhO,KAAKg5G,MAAMxzD,SAA2C,GAAvBxlD,KAAK6xG,gBAA+C,GAAxB7xG,KAAKgO,QAAQE,SAAoC,GAAhBmkG,EAC3GryG,KAAK8R,WACA,CAoBL,GAnBA9R,KAAKoyE,OACmC,YAApCpyE,KAAKgO,QAAQhO,KAAKg5G,MAAMzoG,UAA8D,eAApCvQ,KAAKgO,QAAQhO,KAAKg5G,MAAMzoG,UAC5EvQ,KAAK+tD,IAAI5P,MAAM9xC,MAAMnG,KAAO,MAC5BlG,KAAK+tD,IAAI5P,MAAM9xC,MAAMg5C,UAAY,OACjCrlD,KAAK+tD,IAAIqrD,SAAS/sG,MAAMg5C,UAAY,OACpCrlD,KAAK+tD,IAAIqrD,SAAS/sG,MAAMnG,KAAOlG,KAAKgO,QAAQirG,SAAW,GAAK,KAC5Dj5G,KAAK+tD,IAAIqrD,SAAS/sG,MAAMjG,MAAQ,GAChCpG,KAAKgsG,IAAI3/F,MAAMnG,KAAO,MACtBlG,KAAKgsG,IAAI3/F,MAAMjG,MAAQ,KAEvBpG,KAAK+tD,IAAI5P,MAAM9xC,MAAMjG,MAAQ,MAC7BpG,KAAK+tD,IAAI5P,MAAM9xC,MAAMg5C,UAAY,QACjCrlD,KAAK+tD,IAAIqrD,SAAS/sG,MAAMg5C,UAAY,QACpCrlD,KAAK+tD,IAAIqrD,SAAS/sG,MAAMjG,MAAQpG,KAAKgO,QAAQirG,SAAW,GAAK,KAC7Dj5G,KAAK+tD,IAAIqrD,SAAS/sG,MAAMnG,KAAO,GAC/BlG,KAAKgsG,IAAI3/F,MAAMjG,MAAQ,MACvBpG,KAAKgsG,IAAI3/F,MAAMnG,KAAO,IAGgB,YAApClG,KAAKgO,QAAQhO,KAAKg5G,MAAMzoG,UAA8D,aAApCvQ,KAAKgO,QAAQhO,KAAKg5G,MAAMzoG,SAC5EvQ,KAAK+tD,IAAI5P,MAAM9xC,MAAM/F,IAAM,EAAIzE,OAAO7B,KAAK2Q,KAAKo9C,IAAIlS,OAAOxvC,MAAM/F,IAAIsD,QAAQ,KAAM,KAAO,KAC1F5J,KAAK+tD,IAAI5P,MAAM9xC,MAAMsyC,OAAS,OACzB,CACL,GAAI06D,GAAmBr5G,KAAK2Q,KAAKi+D,SAAS/yB,OAAOxrC,OAASrQ,KAAK2Q,KAAKi+D,SAASgE,gBAAgBviE,MAC7FrQ,MAAK+tD,IAAI5P,MAAM9xC,MAAMsyC,OAAS,EAAI06D,EAAmBx3G,OAAO7B,KAAK2Q,KAAKo9C,IAAIlS,OAAOxvC,MAAM/F,IAAIsD,QAAQ,KAAM,KAAO,KAChH5J,KAAK+tD,IAAI5P,MAAM9xC,MAAM/F,IAAM,GAGH,GAAtBtG,KAAKgO,QAAQ6iG,OACf7wG,KAAK+tD,IAAI5P,MAAM9xC,MAAM+D,MAAQpQ,KAAK+tD,IAAIqrD,SAASvoG,YAAc,GAAK,KAClE7Q,KAAK+tD,IAAIqrD,SAAS/sG,MAAMjG,MAAQ,GAChCpG,KAAK+tD,IAAIqrD,SAAS/sG,MAAMnG,KAAO,GAC/BlG,KAAKgsG,IAAI3/F,MAAM+D,MAAQ,QAEvBpQ,KAAK+tD,IAAI5P,MAAM9xC,MAAM+D,MAAQpQ,KAAKgO,QAAQirG,SAAW,GAAKj5G,KAAK+tD,IAAIqrD,SAASvoG,YAAc,GAAK,KAC/F7Q,KAAKs5G,kBAIP,KAAK,GADD7oE,GAAU,GACL1sC,EAAI,EAAGA,EAAImuG,EAAWtuG,OAAQG,IAAK,CAC1C,GAAIuvE,GAAU4+B,EAAWnuG,EACW,IAAhC/D,KAAK6tE,OAAOyF,GAAS9tB,aAAkE3hD,KAA9C7D,KAAK4wG,iBAAiBpgG,WAAW8iE,IAAuE,GAA7CtzE,KAAK4wG,iBAAiBpgG,WAAW8iE,KACvI7iC,GAAWzwC,KAAK6tE,OAAOyF,GAAS7iC,QAAU,UAG9CzwC,KAAK+tD,IAAIqrD,SAASz4D,UAAYlQ,EAC9BzwC,KAAK+tD,IAAIqrD,SAAS/sG,MAAM8hD,WAAa,IAAOnuD,KAAKgO,QAAQirG,SAAWj5G,KAAKgO,QAAQkrG,YAAc,OAInGxrC,EAAOr7D,UAAUinG,gBAAkB,WACjC,GAAIt5G,KAAK+tD,IAAI5P,MAAMr1C,WAAY,CAC7B,GAAIopG,IAAa,EAAI5wG,EAAgB,SAAGtB,KAAK6tE,OAC7CqkC,GAAWnpF,KAAK,SAAUvlB,EAAGC,GAC3B,MAAOD,GAAIC,GAAK,EAAI,IAItB6qC,EAAQoB,cAAc1vC,KAAK8rG,YAE3B,IAAIryD,GAAUjxC,OAAOimE,iBAAiBzuE,KAAK+tD,IAAI5P,OAAOo7D,WAClDtH,EAAapwG,OAAO43C,EAAQ7vC,QAAQ,KAAM,KAC1CqrB,EAAIg9E,EACJf,EAAYlxG,KAAKgO,QAAQirG,SACzB9G,EAAa,IAAOnyG,KAAKgO,QAAQirG,SACjCpqF,EAAIojF,EAAa,GAAME,EAAa,CAExCnyG,MAAKgsG,IAAI3/F,MAAM+D,MAAQ8gG,EAAY,EAAIe,EAAa,IAEpD,KAAK,GAAIluG,GAAI,EAAGA,EAAImuG,EAAWtuG,OAAQG,IAAK,CAC1C,GAAIuvE,GAAU4+B,EAAWnuG,EACW,IAAhC/D,KAAK6tE,OAAOyF,GAAS9tB,aAAkE3hD,KAA9C7D,KAAK4wG,iBAAiBpgG,WAAW8iE,IAAuE,GAA7CtzE,KAAK4wG,iBAAiBpgG,WAAW8iE,KACvItzE,KAAK6tE,OAAOyF,GAASi3B,UAAU2G,EAAWiB,EAAYnyG,KAAKisG,UAAWh3E,EAAGpG,GACzEA,GAAKsjF,EAAanyG,KAAKgO,QAAQkrG,gBAMvCr5G,EAAOD,QAAU8tE,GAIb,SAAU7tE,EAAQD,GAItB6E,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAST,IAAIilB,GAAS,SACTkxE,EAAO,UACPj0E,EAAS,SAGT7iB,EAAS,SAKTivE,GACFsM,WACEjvE,SAAWyqF,QAAWD,GACtB5xF,QAAU6xF,QAAWD,EAAME,SAAY,YACvCxiD,WAAa2X,IARP,OASNspC,UAAYz1F,OAAQA,EAAQ+2F,QAAWD,EAAME,SAAY,aAI3DkS,kBAAoBtjF,QAAS,OAAQ,UACrCujF,cAAgBvjF,OAAQA,GACxBuB,MAAQ4vE,QAAWD,GACnBsS,UAAYrS,QAAWD,GACvB9yE,OAAS+yE,QAAWD,GACpBuS,aAAezjF,OAAQA,EAAQ/C,OAAQA,GACvCymF,QACEh9F,SAAWyqF,QAAWD,GACtBxqB,aAAe1mD,QAAS,SAAU,MAAO,OAAQ,UACjD8rD,SAAW1xE,OAAQA,GACnBy1F,UAAYsB,QAAWD,EAAM92F,OAAQA,IAEvCyK,OAASmb,QAAS,OAAQ,MAAO,WACjC2jF,UACE/6F,OAASqU,OAAQA,GACjB+sF,UAAY/sF,OAAQA,GACpB2mF,YAAczS,QAAWD,GACzB5Y,OAASt4D,QAAS,OAAQ,SAAU,UACpC6vE,UAAYz1F,OAAQA,IAEtBypG,eACEn9F,SAAWyqF,QAAWD,GACtB4S,iBAAmB9jF,QAAS,cAAe,UAAW,YACtD8/E,OAAS7iF,OAAQA,GACjB4yE,UAAYz1F,OAAQA,EAAQ+2F,QAAWD,IAEzC9b,YACE1uE,SAAWyqF,QAAWD,GACtB7b,UAAY+b,SAAY,YACxBvoD,MAAQ5rB,OAAQA,GAChBpY,OAASmb,QAAS,SAAU,WAC5B6vE,UAAYz1F,OAAQA,EAAQ+2F,QAAWD,EAAME,SAAY,aAE3D2S,UACE5X,iBAAmBgF,QAAWD,GAC9B9E,iBAAmB+E,QAAWD,GAC9BmY,OAASlY,QAAWD,GACpBtoF,OAASoX,OAAQA,EAAQ/C,OAAQA,GACjC+gC,SAAWmzC,QAAWD,GACtByY,YAAcxY,QAAWD,GACzBxyF,MACEs1C,OAASp5C,KAAOqiB,OAAQA,EAAQ5gB,UAAa,aAAexB,KAAOoiB,OAAQA,EAAQ5gB,UAAa,aAAewzF,UAAYz1F,OAAQA,IACnI6D,QAAUmzF,SAAY,YACtBjb,OAASx3B,MAAQ3+B,OAAQA,EAAQ/C,OAAQA,EAAQ5gB,UAAa,aAAewI,OAASmb,OAAQA,EAAQ3jB,UAAa,aAAewzF,UAAYz1F,OAAQA,IACtJy1F,UAAYz1F,OAAQA,IAEtBwE,OACEo1C,OAASp5C,KAAOqiB,OAAQA,EAAQ5gB,UAAa,aAAexB,KAAOoiB,OAAQA,EAAQ5gB,UAAa,aAAewzF,UAAYz1F,OAAQA,IACnI6D,QAAUmzF,SAAY,YACtBjb,OAASx3B,MAAQ3+B,OAAQA,EAAQ/C,OAAQA,EAAQ5gB,UAAa,aAAewI,OAASmb,OAAQA,EAAQ3jB,UAAa,aAAewzF,UAAYz1F,OAAQA,IACtJy1F,UAAYz1F,OAAQA,IAEtBy1F,UAAYz1F,OAAQA,IAEtB4pG,QACEt9F,SAAWyqF,QAAWD,GACtBmY,OAASlY,QAAWD,GACpBxyF,MACEs/C,SAAWmzC,QAAWD,GACtBnoF,UAAYiX,QAAS,YAAa,eAAgB,WAAY,gBAC9D6vE,UAAYz1F,OAAQA,IAEtBwE,OACEo/C,SAAWmzC,QAAWD,GACtBnoF,UAAYiX,QAAS,YAAa,eAAgB,WAAY,gBAC9D6vE,UAAYz1F,OAAQA,IAEtBy1F,UAAYz1F,OAAQA,EAAQ+2F,QAAWD,IAEzC7qB,QACEr9D,YAAcqoF,IAjFR,OAkFNxB,UAAYz1F,OAAQA,IAGtBqsE,YAAc0qB,QAAWD,GACzB3qB,gBAAkBtpD,OAAQA,GAC1Bq4D,YAAc6b,QAAWD,GACzBxzC,KAAOzgC,OAAQA,EAAQgJ,KA5Fd,OA4F0BjG,OAAQA,EAAQ/lB,OAzFxC,UA0FXgE,QACEilF,aACE5vD,aAAetT,OAAQA,EAAQ3jB,UAAa,aAC5Cg3B,QAAUrT,OAAQA,EAAQ3jB,UAAa,aACvC+2B,QAAUpT,OAAQA,EAAQ3jB,UAAa,aACvCo2B,MAAQzS,OAAQA,EAAQ3jB,UAAa,aACrC+rB,SAAWpI,OAAQA,EAAQ3jB,UAAa,aACxCqtB,KAAO1J,OAAQA,EAAQ3jB,UAAa,aACpCmoB,OAASxE,OAAQA,EAAQ3jB,UAAa,aACtCkoB,MAAQvE,OAAQA,EAAQ3jB,UAAa,aACrCwzF,UAAYz1F,OAAQA,IAEtB+oF,aACE7vD,aAAetT,OAAQA,EAAQ3jB,UAAa,aAC5Cg3B,QAAUrT,OAAQA,EAAQ3jB,UAAa,aACvC+2B,QAAUpT,OAAQA,EAAQ3jB,UAAa,aACvCo2B,MAAQzS,OAAQA,EAAQ3jB,UAAa,aACrC+rB,SAAWpI,OAAQA,EAAQ3jB,UAAa,aACxCqtB,KAAO1J,OAAQA,EAAQ3jB,UAAa,aACpCmoB,OAASxE,OAAQA,EAAQ3jB,UAAa,aACtCkoB,MAAQvE,OAAQA,EAAQ3jB,UAAa,aACrCwzF,UAAYz1F,OAAQA,IAEtBy1F,UAAYz1F,OAAQA,IAEtBH,QAAUm3F,SAAY,YACtBvoF,QAAUmX,OAAQA,EAAQ/C,OAAQA,GAClCqqD,aACE7pB,OAASx3B,KAzHF,OAyHchJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OAtH5C,UAuHTyjD,KAAOz3B,KA1HA,OA0HYhJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OAvH1C,UAwHT+2E,QAAUhxD,OAAQA,GAClB6vE,UAAYz1F,OAAQA,EAAQyF,MA7HpB,UA+HVka,QAAUiG,OAAQA,GAClB6M,SACE8iE,SAAW0B,IA5HL,OA6HNxB,UAAYz1F,OAAQA,IAEtBS,KAAOorB,KAnIE,OAmIUhJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OAhIxC,UAiIX2sE,WAAa3pD,OAAQA,EAAQ+C,OAAQA,GACrCqsE,eAAiBpvE,OAAQA,GACzBriB,KAAOqrB,KAtIE,OAsIUhJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OAnIxC,UAoIX4sE,WAAa5pD,OAAQA,EAAQ+C,OAAQA,GACrC0sD,UAAYykB,QAAWD,GACvBpY,aAAeqY,QAAWD,GAC1BxqB,aAAe1mD,OAAQA,GACvBovE,iBAAmB+B,QAAWD,GAC9B9E,iBAAmB+E,QAAWD,GAC9B/E,iBAAmBgF,QAAWD,GAC9BzzC,OAASx3B,KA9IA,OA8IYhJ,OAAQA,EAAQ+C,OAAQA,EAAQ/lB,OA3I1C,UA4IXstE,UACEvsE,OAASglB,OAAQA,EAAQ3jB,UAAa,aACtC0O,MAAQkS,OAAQA,EAAQ5gB,UAAa,aACrCwzF,UAAYz1F,OAAQA,IAEtBwO,OAASoX,OAAQA,EAAQ/C,OAAQA,GACjC0vD,UAAYwkB,QAAWD,GACvB1hB,SAAWxvD,QAAS,UAAW,SAAU,UAAW,KACpD6sD,SAAW5vD,OAAQA,GACnB2vD,SAAW3vD,OAAQA,GACnB4oF,QAAU5oF,OAAQA,GAClB4yE,UAAYz1F,OAAQA,IAGlBkvE,GACFj/D,QAEEkX,MAAM,EACNiiF,UAAU,EACVplF,OAAO,EACPslF,QACEh9F,SAAS,EACTggE,aAAc,OAAQ,MAAO,SAAU,UAEzC7hE,OAAQ,OAAQ,MAAO,UACvB8+F,UACE/6F,OAAQ,GAAI,EAAG,IAAK,GACpBohG,UAAW,GAAI,EAAG,IAAK,GACvBpG,YAAY,EACZtrB,OAAQ,OAAQ,SAAU,UAE5BurB,eACEn9F,SAAS,EACTo9F,iBAAkB,cAAe,UAAW,YAE9C1uB,YACE1uE,SAAS,EACTmiC,MAAO,EAAG,EAAG,GAAI,GACjBhkC,OAAQ,SAAU,WAEpBk/F,UACE5X,iBAAiB,EACjBC,iBAAiB,EACjBid,OAAO,EACPzgG,OAAQ,GAAI,EAAG,IAAK,GACpBo1C,SAAS,EACT2rD,YAAY,EACZjrG,MAGEy3E,OAASx3B,KAAM,GAAI95C,MAAO,KAE5BjG,OAGEu3E,OAASx3B,KAAM,GAAI95C,MAAO,MAG9Bm/F,QACEt9F,SAAS,EACT2iG,OAAO,EACP3qG,MACEs/C,SAAS,EACTj1C,UAAW,YAAa,eAAgB,WAAY,gBAEtDnK,OACEo/C,SAAS,EACTj1C,UAAW,YAAa,eAAgB,WAAY,iBAIxD09D,YAAY,EACZ6O,YAAY,EACZ53B,IAAK,GACLz/C,QACEilF,aACE5vD,YAAa,MACbD,OAAQ,IACRD,OAAQ,QACRX,KAAM,QACNrK,QAAS,QACTsB,IAAK,IACLlF,MAAO,MACPD,KAAM,QAER4+D,aACE7vD,YAAa,WACbD,OAAQ,eACRD,OAAQ,aACRX,KAAM,aACNrK,QAAS,YACTsB,IAAK,YACLlF,MAAO,OACPD,KAAM,KAIV1b,OAAQ,GACRkR,OAAQ,GACRlf,IAAK,GACL+rE,UAAW,GACXylB,eAAgB,EAAG,EAAG,GAAI,GAC1BzxF,IAAK,GACLisE,UAAW,GACX6F,UAAU,EACVhG,aAAc,OAAQ,SAAU,OAChC0oB,iBAAiB,EACjBhD,iBAAiB,EACjBD,iBAAiB,EACjB1uC,MAAO,GACP70C,MAAO,OACP+jE,UAAU,EACV6C,SAAU,UAAW,SAAU,UAAW,IAC1C3C,SAAU,SAAiB,GAAI,SAAiB,GAChDD,SAAU,GAAI,GAAI,SAAiB,GACnCi5B,OAAQ,GAIZztG,GAAQixE,WAAaA,EACrBjxE,EAAQkxE,iBAAmBA,GAIvB,SAAUjxE,EAAQD,EAASM,GAK/BN,EAAQe,KAAOT,EAAoB,GACnCN,EAAQ0uC,QAAUpuC,EAAoB,IAGtCN,EAAQ2uC,QAAUruC,EAAoB,IACtCN,EAAQ4uC,SAAWtuC,EAAoB,IACvCN,EAAQ6uC,MAAQvuC,EAAoB,IAGpCN,EAAQ45G,QAAUt5G,EAAoB,KACtCN,EAAQ65G,SACNC,OAAQx5G,EAAoB,KAC5By5G,UAAWz5G,EAAoB,KAC/B05G,YAAa15G,EAAoB,KACjC2wE,WAAY3wE,EAAoB,MAElCN,EAAQ65G,QAAQI,WAAa,SAAU54F,GACrC,MAAOrhB,GAAQ65G,QAAQE,UAAUG,WAAW74F,IAE9CrhB,EAAQ65G,QAAQM,aAAe,SAAU94F,EAAOjT,GAC9C,MAAOpO,GAAQ65G,QAAQG,YAAYI,WAAW/4F,EAAOjT,IAIvDpO,EAAQ6B,OAASvB,EAAoB,IACrCN,EAAQsvC,OAAShvC,EAAoB,KACrCN,EAAQuvC,SAAWjvC,EAAoB,MAInC,SAAUL,EAAQD,EAASM,GAoD/B,QAASs5G,GAAQpjE,EAAW1hB,EAAM1mB,GAChC,GAAIisF,GAAQj6F,IAEZ,MAAMA,eAAgBw5G,IACpB,KAAM,IAAInjE,aAAY,mDAIxBr2C,MAAKgO,WACLhO,KAAKguE,gBACHzsD,OAAQ,KACR8S,QAASA,EACTyoD,YAAY,GAEdn8E,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAc/BhuE,KAAK2Q,MACHylC,UAAWA,EAGX6jE,SACAC,eACAC,SACAC,eAEAvrC,SACEt9B,GAAIvxC,KAAKuxC,GAAGqmB,KAAK53D,MACjB0xC,IAAK1xC,KAAK0xC,IAAIkmB,KAAK53D,MACnB+rD,KAAM/rD,KAAK+rD,KAAK6L,KAAK53D,MACrB+uD,KAAM/uD,KAAK+uD,KAAK6I,KAAK53D,OAEvBq6G,gBACEC,MAAO,aACPziC,QAAS,aACT0iC,YAAa,aACbC,OAAQ,aACRC,YAAa,aACbC,OAAQ,aACRC,UAAW,aACX7/B,aAAc,aACd8/B,QAAS,aACTC,YAAa,aACb/iC,UAAW,aACXgjC,UAAW,cAEbpmF,MACEulF,MAAO,KACPE,MAAO,MAETY,WACEC,WAAY,aACZC,WAAY,aACZ7jC,WAAY,cAEdn3E,WACAi7G,MACE14G,MAAO,EACP25C,aAAelnB,EAAG,EAAGpG,EAAG,KAK5B7uB,KAAKm7G,qBAGLn7G,KAAKo7G,OAAS,GAAI1B,GAAO,WACvB,MAAOzf,GAAMtpF,KAAKk+D,QAAQ9iB,KAAK,oBAEjC/rD,KAAK6tE,OAAS,GAAIwtC,GAClBr7G,KAAKo+C,OAAS,GAAIk9D,GAAOt7G,KAAK2Q,MAC9B3Q,KAAKu7G,iBAAmB,GAAIC,GAAiBx7G,KAAK2Q,KAAM3Q,KAAKo+C,QAC7Dp+C,KAAKy7G,mBAAqB,GAAIC,GAAmB17G,KAAK2Q,KAAM3Q,KAAKo+C,OAAQp+C,KAAKu7G,kBAC9Ev7G,KAAKk7G,KAAO,GAAIS,GAAK37G,KAAK2Q,KAAM3Q,KAAKo+C,QACrCp+C,KAAK47G,SAAW,GAAIC,GAAe77G,KAAK2Q,KAAM3Q,KAAKo+C,QACnDp+C,KAAKi9F,QAAU,GAAI6e,GAAc97G,KAAK2Q,MACtC3Q,KAAK+7G,aAAe,GAAIC,GAAah8G,KAAK2Q,MAC1C3Q,KAAKi8G,WAAa,GAAIC,GAAcl8G,KAAK2Q,MACzC3Q,KAAKm8G,aAAe,GAAIC,GAAmBp8G,KAAK2Q,KAAM3Q,KAAKo+C,OAAQp+C,KAAKu7G,kBAExEv7G,KAAKq8G,aAAe,GAAIC,GAAat8G,KAAK2Q,KAAM3Q,KAAKo7G,OAAQp7G,KAAK6tE,OAAQ7tE,KAAK+7G,cAC/E/7G,KAAKu8G,aAAe,GAAIC,GAAax8G,KAAK2Q,KAAM3Q,KAAKo7G,OAAQp7G,KAAK6tE,QAElE7tE,KAAK2Q,KAAK1Q,QAAqB,YAAI,GAAIw8G,GAAYz8G,KAAK2Q,KAAM,IAAK,KACnE3Q,KAAK2Q,KAAK1Q,QAAoB,WAAID,KAAKi8G,WAGvCj8G,KAAKo+C,OAAOj9C,UAGZnB,KAAKkxC,WAAWljC,GAGhBhO,KAAK01C,QAAQhhB,GAvJfx0B,EAAoB,IAEpB,IAAIu3C,GAAUv3C,EAAoB,IAC9BS,EAAOT,EAAoB,GAG3By5G,GAFUz5G,EAAoB,IACnBA,EAAoB,IACnBA,EAAoB,MAChC05G,EAAc15G,EAAoB,KAClC26E,EAAY36E,EAAoB,KAChCm0B,EAAUn0B,EAAoB,KAE9Bw5G,EAASx5G,EAAoB,KAAc,QAC3Cm7G,EAASn7G,EAAoB,KAAc,QAC3Co8G,EAAep8G,EAAoB,KAAc,QACjDs8G,EAAet8G,EAAoB,KAAc,QACjD47G,EAAgB57G,EAAoB,KAAc,QAClDg8G,EAAgBh8G,EAAoB,KAAc,QAClD27G,EAAiB37G,EAAoB,KAAc,QACnDo7G,EAASp7G,EAAoB,KAAc,QAC3Cy7G,EAAOz7G,EAAoB,KAAc,QACzCw7G,EAAqBx7G,EAAoB,KAAc,QACvDs7G,EAAmBt7G,EAAoB,KAAc,QACrD87G,EAAe97G,EAAoB,KAAc,QACjDk8G,EAAqBl8G,EAAoB,KAAc,QACvD6wE,EAAe7wE,EAAoB,KAAc,QACjD8wE,EAAY9wE,EAAoB,KAAc,QAE9Cw8G,EAAWx8G,EAAoB,KAC/B0wE,EAAa8rC,EAAS9rC,WAEtB+rC,EAAYz8G,EAAoB,KAChC2wE,EAAa8rC,EAAU9rC,WACvBC,EAAmB6rC,EAAU7rC,iBAE7B2rC,EAAcv8G,EAAoB,KAAc,OAyHpDu3C,GAAQ+hE,EAAQnnG,WAMhBmnG,EAAQnnG,UAAU6+B,WAAa,SAAUljC,GACvC,GAAIutF,GAASv7F,IAEb,QAAgB6D,KAAZmK,EAAuB,EAEN,IADFgjE,EAAUI,SAASpjE,EAAS6iE,IAE3CrrD,QAAQotC,IAAI,2DAA4Dge,EAI1E,IAAItjE,IAAU,SAAU,UAAW,aAoCnC,IAnCA3M,EAAK2D,oBAAoBgJ,EAAQtN,KAAKgO,QAASA,GAG/CA,EAAUhO,KAAK+7G,aAAa7qE,WAAWljC,EAAQ4uG,OAAQ5uG,GAEvDhO,KAAKo+C,OAAOlN,WAAWljC,GAGvBhO,KAAK6tE,OAAO38B,WAAWljC,EAAQ6/D,QAC/B7tE,KAAKq8G,aAAanrE,WAAWljC,EAAQisG,OACrCj6G,KAAKu8G,aAAarrE,WAAWljC,EAAQmsG,OACrCn6G,KAAKi9F,QAAQ/rD,WAAWljC,EAAQivF,SAChCj9F,KAAKm8G,aAAajrE,WAAWljC,EAAQmuG,aAAcnuG,EAAShO,KAAKgO,SAEjEhO,KAAKy7G,mBAAmBvqE,WAAWljC,EAAQ6uG,aAC3C78G,KAAK47G,SAAS1qE,WAAWljC,EAAQ6uG,aACjC78G,KAAKu7G,iBAAiBrqE,WAAWljC,EAAQ6uG,iBAGlBh5G,KAAnBmK,EAAQ6/D,QACV7tE,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBAMrB,aAAe/9C,KACZhO,KAAKk9E,eACRl9E,KAAKk9E,aAAe,GAAInM,GAAa/wE,KAAMA,KAAK2Q,KAAKylC,UAAW06B,EAAkB9wE,KAAKo+C,OAAO+6C,aAGhGn5F,KAAKk9E,aAAahsC,WAAWljC,EAAQmvE,YAInCn9E,KAAKk9E,eAAsD,IAAtCl9E,KAAKk9E,aAAalvE,QAAQE,QAAkB,CACnE,GAAI4uG,IAAmB7C,SAAWE,SAAWyC,UAAYC,eAAiBV,gBAAkBlf,WAAaprF,UACzGlR,GAAK+D,WAAWo4G,EAAe7C,MAAOj6G,KAAKq8G,aAAaruG,SACxDrN,EAAK+D,WAAWo4G,EAAe3C,MAAOn6G,KAAKu8G,aAAavuG,SACxDrN,EAAK+D,WAAWo4G,EAAeF,OAAQ58G,KAAK+7G,aAAa/tG,SAEzDrN,EAAK+D,WAAWo4G,EAAeD,YAAa78G,KAAKu7G,iBAAiBvtG,SAClErN,EAAK+D,WAAWo4G,EAAeD,YAAa78G,KAAK47G,SAAS5tG,SAE1DrN,EAAK+D,WAAWo4G,EAAeD,YAAa78G,KAAKy7G,mBAAmBztG,SACpErN,EAAK+D,WAAWo4G,EAAeX,aAAcn8G,KAAKm8G,aAAanuG,SAC/DrN,EAAK+D,WAAWo4G,EAAe7f,QAASj9F,KAAKi9F,QAAQjvF,SAGrDrN,EAAK+D,WAAWo4G,EAAejrG,OAAQ7R,KAAKo+C,OAAOpwC,SACnDrN,EAAK+D,WAAWo4G,EAAejrG,OAAQ7R,KAAKgO,SAE5ChO,KAAKk9E,aAAaG,iBAAiBy/B,OAIVj5G,KAAvBmK,EAAQ8uE,YACiB,IAAvB9uE,EAAQ8uE,eACaj5E,KAAnB7D,KAAK+8E,YACP/8E,KAAK+8E,UAAY,GAAIlC,GAAU76E,KAAKo+C,OAAOD,OAC3Cn+C,KAAK+8E,UAAUxrC,GAAG,SAAU,WAC1BgqD,EAAO5qF,KAAKk+D,QAAQ9iB,KAAK,oBAINloD,KAAnB7D,KAAK+8E,YACP/8E,KAAK+8E,UAAUzrC,gBACRtxC,MAAK+8E,WAEd/8E,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,aAGzB/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,YAGzB/rD,KAAKo+C,OAAOmQ,UAEZvuD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,qBAQ3BytD,EAAQnnG,UAAU0qG,sBAAwB,WACxC,GAAI9C,GAAQj6G,KAAK2Q,KAAKspG,MAClBE,EAAQn6G,KAAK2Q,KAAKwpG,KACtBn6G,MAAK2Q,KAAKupG,eACVl6G,KAAK2Q,KAAKypG,cAEV,KAAK,GAAI4C,KAAU/C,GACbA,EAAM32G,eAAe05G,KACc,IAAjC/C,EAAM+C,GAAQhvG,QAAQorE,QACxBp5E,KAAK2Q,KAAKupG,YAAYr1G,KAAKo1G,EAAM+C,GAAQ38G,GAK/C,KAAK,GAAI48G,KAAU9C,GACbA,EAAM72G,eAAe25G,KACc,IAAjC9C,EAAM8C,GAAQjvG,QAAQorE,QACxBp5E,KAAK2Q,KAAKypG,YAAYv1G,KAAKs1G,EAAM8C,GAAQ58G,KASjDm5G,EAAQnnG,UAAU8oG,mBAAqB,WACrC,GAAIxf,GAAS37F,IAGbA,MAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WAEnCoqD,EAAOohB,wBACPphB,EAAOhrF,KAAKk+D,QAAQ9iB,KAAK,kBAEzB4vC,EAAOhrF,KAAKk+D,QAAQ9iB,KAAK,kBAI3B/rD,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WAEnCoqD,EAAOuhB,kBAAkBvhB,EAAOhrF,KAAKspG,OACrCte,EAAOuhB,kBAAkBvhB,EAAOhrF,KAAKwpG,OAErCxe,EAAOhrF,KAAKk+D,QAAQ9iB,KAAK,mBACzB4vC,EAAOhrF,KAAKk+D,QAAQ9iB,KAAK,qBAc7BytD,EAAQnnG,UAAUqjC,QAAU,SAAUhhB,GAQpC,GANA10B,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBACvB/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cAGvB/rD,KAAKu7G,iBAAiB4B,cAElBzoF,GAAQA,EAAKolB,MAAQplB,EAAKulF,OAASvlF,EAAKylF,OAC1C,KAAM,IAAI9jE,aAAY,iGAMxB,IAFAr2C,KAAKkxC,WAAWxc,GAAQA,EAAK1mB,SAEzB0mB,GAAQA,EAAKolB,IAAK,CACpBt0B,QAAQotC,IAAI,4PAEZ,IAAIwqD,GAAUzD,EAAUG,WAAWplF,EAAKolB,IAExC,YADA95C,MAAK01C,QAAQ0nE,GAER,GAAI1oF,GAAQA,EAAK2oF,MAAO,CAE7B73F,QAAQotC,IAAI,oQACZ,IAAI0qD,GAAY1D,EAAYI,WAAWtlF,EAAK2oF,MAE5C,YADAr9G,MAAK01C,QAAQ4nE,GAGbt9G,KAAKq8G,aAAa3mE,QAAQhhB,GAAQA,EAAKulF,OAAO,GAC9Cj6G,KAAKu8G,aAAa7mE,QAAQhhB,GAAQA,EAAKylF,OAAO,GAIhDn6G,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBAGvB/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,eAGvB/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBASzBytD,EAAQnnG,UAAUi/B,QAAU,WAC1BtxC,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAEvB/rD,KAAK2Q,KAAKk+D,QAAQn9B,MAClB1xC,KAAK0xC,YAGE1xC,MAAK6tE,aACL7tE,MAAKo+C,aACLp+C,MAAKu7G,uBACLv7G,MAAKy7G,yBACLz7G,MAAKk7G,WACLl7G,MAAK47G,eACL57G,MAAKi9F,cACLj9F,MAAK+7G,mBACL/7G,MAAKi8G,iBACLj8G,MAAKm8G,mBACLn8G,MAAKq8G,mBACLr8G,MAAKu8G,mBACLv8G,MAAKk9E,mBACLl9E,MAAKo7G,MAEZ,KAAK,GAAI4B,KAAUh9G,MAAK2Q,KAAKspG,YACpBj6G,MAAK2Q,KAAKspG,MAAM+C,EAEzB,KAAK,GAAIC,KAAUj9G,MAAK2Q,KAAKwpG,YACpBn6G,MAAK2Q,KAAKwpG,MAAM8C,EAIzBt8G,GAAKmB,mBAAmB9B,KAAK2Q,KAAKylC,YAWpCojE,EAAQnnG,UAAU6qG,kBAAoB,SAAUp8G,GAC9C,GAAIT,GAGAs6C,MAAW92C,GACX+2C,MAAW/2C,GACX05G,EAAa,CACjB,KAAKl9G,IAAMS,GACT,GAAIA,EAAIwC,eAAejD,GAAK,CAC1B,GAAIkC,GAAQzB,EAAIT,GAAIswD,eACN9sD,KAAVtB,IACFo4C,MAAwB92C,KAAb82C,EAAyBp4C,EAAQE,KAAKL,IAAIG,EAAOo4C,GAC5DC,MAAwB/2C,KAAb+2C,EAAyBr4C,EAAQE,KAAKJ,IAAIE,EAAOq4C,GAC5D2iE,GAAch7G,GAMpB,OAAiBsB,KAAb82C,OAAuC92C,KAAb+2C,EAC5B,IAAKv6C,IAAMS,GACLA,EAAIwC,eAAejD,IACrBS,EAAIT,GAAIm9G,cAAc7iE,EAAUC,EAAU2iE,IAUlD/D,EAAQnnG,UAAU0oE,SAAW,WAC3B,OAAQ/6E,KAAK+8E,WAAa/8E,KAAK+8E,UAAUO,QAG3Ck8B,EAAQnnG,UAAUk8C,QAAU,WAC1B,MAAOvuD,MAAKo+C,OAAOmQ,QAAQj4C,MAAMtW,KAAKo+C,OAAQz6C,YAEhD61G,EAAQnnG,UAAUorG,YAAc,WAC9B,MAAOz9G,MAAKo+C,OAAOq/D,YAAYnnG,MAAMtW,KAAKo+C,OAAQz6C,YAEpD61G,EAAQnnG,UAAUqrG,YAAc,WAC9B,MAAO19G,MAAKo+C,OAAOs/D,YAAYpnG,MAAMtW,KAAKo+C,OAAQz6C,YAEpD61G,EAAQnnG,UAAUsrG,SAAW,WAC3B,MAAO39G,MAAKi8G,WAAW0B,SAASrnG,MAAMtW,KAAKi8G,WAAYt4G,YAEzD61G,EAAQnnG,UAAUurG,UAAY,WAC5B,MAAO59G,MAAKi8G,WAAW2B,UAAUtnG,MAAMtW,KAAKi8G,WAAYt4G,YAE1D61G,EAAQnnG,UAAUwrG,YAAc,WAC9B,MAAO79G,MAAKi8G,WAAW4B,YAAYvnG,MAAMtW,KAAKi8G,WAAYt4G,YAE5D61G,EAAQnnG,UAAUyrG,QAAU,WAC1B,MAAO99G,MAAKi8G,WAAW6B,QAAQxnG,MAAMtW,KAAKi8G,WAAYt4G,YAExD61G,EAAQnnG,UAAU0rG,kBAAoB,WACpC,MAAO/9G,MAAKi8G,WAAW8B,kBAAkBznG,MAAMtW,KAAKi8G,WAAYt4G,YAElE61G,EAAQnnG,UAAU2rG,oBAAsB,WACtC,MAAOh+G,MAAKi8G,WAAW+B,oBAAoB1nG,MAAMtW,KAAKi8G,WAAYt4G,YAEpE61G,EAAQnnG,UAAU4rG,iBAAmB,WACnC,MAAOj+G,MAAKi8G,WAAWgC,iBAAiB3nG,MAAMtW,KAAKi8G,WAAYt4G,YAEjE61G,EAAQnnG,UAAU6rG,gBAAkB,WAClC,MAAOl+G,MAAKi8G,WAAWiC,gBAAgB5nG,MAAMtW,KAAKi8G,WAAYt4G,YAEhE61G,EAAQnnG,UAAU8rG,QAAU,WAC1B,MAAOn+G,MAAK+7G,aAAaoC,QAAQ7nG,MAAMtW,KAAK+7G,aAAcp4G,YAE5D61G,EAAQnnG,UAAU+rG,eAAiB,WACjC,MAAOp+G,MAAKm8G,aAAaiC,eAAe9nG,MAAMtW,KAAKm8G,aAAcx4G,YAEnE61G,EAAQnnG,UAAUgsG,gBAAkB,WAClC,MAAOr+G,MAAKm8G,aAAakC,gBAAgB/nG,MAAMtW,KAAKm8G,aAAcx4G,YAEpE61G,EAAQnnG,UAAUisG,YAAc,WAC9B,MAAOt+G,MAAKm8G,aAAamC,YAAYhoG,MAAMtW,KAAKm8G,aAAcx4G,YAEhE61G,EAAQnnG,UAAUksG,SAAW,WAC3B,MAAOv+G,MAAKm8G,aAAaoC,SAASjoG,MAAMtW,KAAKm8G,aAAcx4G,YAE7D61G,EAAQnnG,UAAUmsG,aAAe,WACyC,MAAxEh5F,SAAQotC,IAAI,4DAAmE5yD,KAAKm8G,aAAaoC,SAASjoG,MAAMtW,KAAKm8G,aAAcx4G,YAErI61G,EAAQnnG,UAAUosG,YAAc,WAC9B,MAAOz+G,MAAKm8G,aAAasC,YAAYnoG,MAAMtW,KAAKm8G,aAAcx4G,YAEhE61G,EAAQnnG,UAAUqsG,aAAe,WAC/B,MAAO1+G,MAAKm8G,aAAauC,aAAapoG,MAAMtW,KAAKm8G,aAAcx4G,YAEjE61G,EAAQnnG,UAAUssG,eAAiB,WACjC,MAAO3+G,MAAKm8G,aAAawC,eAAeroG,MAAMtW,KAAKm8G,aAAcx4G,YAEnE61G,EAAQnnG,UAAUusG,aAAe,WAC/B,MAAO5+G,MAAKq8G,aAAauC,aAAatoG,MAAMtW,KAAKq8G,aAAc14G,YAEjE61G,EAAQnnG,UAAUwsG,eAAiB,WACjC,MAAO7+G,MAAKq8G,aAAawC,eAAevoG,MAAMtW,KAAKq8G,aAAc14G,YAEnE61G,EAAQnnG,UAAUysG,SAAW,WAC3B,MAAO9+G,MAAKq8G,aAAayC,SAASxoG,MAAMtW,KAAKq8G,aAAc14G,YAE7D61G,EAAQnnG,UAAU0sG,eAAiB,WACjC,MAAO/+G,MAAKq8G,aAAa0C,eAAezoG,MAAMtW,KAAKq8G,aAAc14G,YAEnE61G,EAAQnnG,UAAU2sG,kBAAoB,SAAUC,GAC9C,WAAkCp7G,KAA9B7D,KAAK2Q,KAAKspG,MAAMgF,GACXj/G,KAAKq8G,aAAa2C,kBAAkB1oG,MAAMtW,KAAKq8G,aAAc14G,WAE7D3D,KAAKu8G,aAAayC,kBAAkB1oG,MAAMtW,KAAKu8G,aAAc54G,YAGxE61G,EAAQnnG,UAAU6sG,kBAAoB,WACpC,MAAOl/G,MAAKq8G,aAAa6C,kBAAkB5oG,MAAMtW,KAAKq8G,aAAc14G,YAEtE61G,EAAQnnG,UAAU8sG,gBAAkB,WAClC,MAAOn/G,MAAKi9F,QAAQkiB,gBAAgB7oG,MAAMtW,KAAKi9F,QAASt5F,YAE1D61G,EAAQnnG,UAAU+sG,eAAiB,WACjC,MAAOp/G,MAAKi9F,QAAQmiB,eAAe9oG,MAAMtW,KAAKi9F,QAASt5F,YAEzD61G,EAAQnnG,UAAUgtG,UAAY,WAC5B,MAAOr/G,MAAKi9F,QAAQoiB,UAAU/oG,MAAMtW,KAAKi9F,QAASt5F,YAEpD61G,EAAQnnG,UAAUi/D,aAAe,WAC/B,MAAOtxE,MAAKu7G,iBAAiBjqC,aAAah7D,MAAMtW,KAAKu7G,iBAAkB53G,YAEzE61G,EAAQnnG,UAAUk/D,aAAe,WAC/B,MAAOvxE,MAAKu7G,iBAAiBhqC,aAAaj7D,MAAMtW,KAAKu7G,iBAAkB53G,YAEzE61G,EAAQnnG,UAAUitG,iBAAmB,WACnC,MAAOt/G,MAAKu7G,iBAAiB+D,iBAAiBhpG,MAAMtW,KAAKu7G,iBAAkB53G,YAE7E61G,EAAQnnG,UAAUktG,iBAAmB,WACnC,MAAOv/G,MAAKu7G,iBAAiBgE,iBAAiBjpG,MAAMtW,KAAKu7G,iBAAkB53G,YAE7E61G,EAAQnnG,UAAUmtG,UAAY,WAC5B,GAAI/xE,GAAOztC,KAAKu7G,iBAAiBiE,UAAUlpG,MAAMtW,KAAKu7G,iBAAkB53G,UACxE,YAAaE,KAAT4pC,OAAkC5pC,KAAZ4pC,EAAKptC,GACtBotC,EAAKptC,GAEPotC,GAET+rE,EAAQnnG,UAAUotG,UAAY,WAC5B,GAAIC,GAAO1/G,KAAKu7G,iBAAiBkE,UAAUnpG,MAAMtW,KAAKu7G,iBAAkB53G,UACxE,YAAaE,KAAT67G,OAAkC77G,KAAZ67G,EAAKr/G,GACtBq/G,EAAKr/G,GAEPq/G,GAETlG,EAAQnnG,UAAUstG,YAAc,WAC9B,MAAO3/G,MAAKu7G,iBAAiBoE,YAAYrpG,MAAMtW,KAAKu7G,iBAAkB53G,YAExE61G,EAAQnnG,UAAUutG,YAAc,WAC9B,MAAO5/G,MAAKu7G,iBAAiBqE,YAAYtpG,MAAMtW,KAAKu7G,iBAAkB53G,YAExE61G,EAAQnnG,UAAU8qG,YAAc,WAC9Bn9G,KAAKu7G,iBAAiB4B,YAAY7mG,MAAMtW,KAAKu7G,iBAAkB53G,WAC/D3D,KAAKy/C,UAEP+5D,EAAQnnG,UAAUotC,OAAS,WACzB,MAAOz/C,MAAK47G,SAASn8D,OAAOnpC,MAAMtW,KAAK47G,SAAUj4G,YAEnD61G,EAAQnnG,UAAU4rD,SAAW,WAC3B,MAAOj+D,MAAKk7G,KAAKj9C,SAAS3nD,MAAMtW,KAAKk7G,KAAMv3G,YAE7C61G,EAAQnnG,UAAUwtG,gBAAkB,WAClC,MAAO7/G,MAAKk7G,KAAK2E,gBAAgBvpG,MAAMtW,KAAKk7G,KAAMv3G,YAEpD61G,EAAQnnG,UAAUm+D,IAAM,WACtB,MAAOxwE,MAAKk7G,KAAK1qC,IAAIl6D,MAAMtW,KAAKk7G,KAAMv3G,YAExC61G,EAAQnnG,UAAUoyC,OAAS,WACzB,MAAOzkD,MAAKk7G,KAAKz2D,OAAOnuC,MAAMtW,KAAKk7G,KAAMv3G,YAE3C61G,EAAQnnG,UAAUq/D,MAAQ,WACxB,MAAO1xE,MAAKk7G,KAAKxpC,MAAMp7D,MAAMtW,KAAKk7G,KAAMv3G,YAE1C61G,EAAQnnG,UAAUytG,YAAc,WAC9B,MAAO9/G,MAAKk7G,KAAK4E,YAAYxpG,MAAMtW,KAAKk7G,KAAMv3G,YAEhD61G,EAAQnnG,UAAU0tG,2BAA6B,WAC7C,GAAI/xG,KAIJ,OAHIhO,MAAKk9E,eACPlvE,EAAUhO,KAAKk9E,aAAa0gB,WAAWtnF,MAAMtW,KAAKk9E,eAE7ClvE,GAGTnO,EAAOD,QAAU45G,GAIb,SAAU35G,EAAQD,GAOkB,mBAA7BogH,4BAKTA,yBAAyB3tG,UAAUm2F,OAAS,SAAUvzE,EAAGpG,EAAGhlB,GAC1D7J,KAAKwkD,YACLxkD,KAAK4oD,IAAI3zB,EAAGpG,EAAGhlB,EAAG,EAAG,EAAIpH,KAAKomD,IAAI,GAClC7oD,KAAK8kD,aASPk7D,yBAAyB3tG,UAAU4tG,OAAS,SAAUhrF,EAAGpG,EAAGhlB,GAC1D7J,KAAKwkD,YACLxkD,KAAK4wC,KAAK3b,EAAIprB,EAAGglB,EAAIhlB,EAAO,EAAJA,EAAW,EAAJA,GAC/B7J,KAAK8kD,aASPk7D,yBAAyB3tG,UAAU+6C,SAAW,SAAUn4B,EAAGpG,EAAGhlB,GAE5D7J,KAAKwkD,YAGL36C,GAAK,KACLglB,GAAK,KAAQhlB,CAEb,IAAIuB,GAAQ,EAAJvB,EACJq2G,EAAK90G,EAAI,EACT+0G,EAAK19G,KAAKorD,KAAK,GAAK,EAAIziD,EACxBD,EAAI1I,KAAKorD,KAAKziD,EAAIA,EAAI80G,EAAKA,EAG/BlgH,MAAKykD,OAAOxvB,EAAGpG,GAAK1jB,EAAIg1G,IACxBngH,KAAK0kD,OAAOzvB,EAAIirF,EAAIrxF,EAAIsxF,GACxBngH,KAAK0kD,OAAOzvB,EAAIirF,EAAIrxF,EAAIsxF,GACxBngH,KAAK0kD,OAAOzvB,EAAGpG,GAAK1jB,EAAIg1G,IACxBngH,KAAK8kD,aASPk7D,yBAAyB3tG,UAAU+tG,aAAe,SAAUnrF,EAAGpG,EAAGhlB,GAEhE7J,KAAKwkD,YAGL36C,GAAK,KACLglB,GAAK,KAAQhlB,CAEb,IAAIuB,GAAQ,EAAJvB,EACJq2G,EAAK90G,EAAI,EACT+0G,EAAK19G,KAAKorD,KAAK,GAAK,EAAIziD,EACxBD,EAAI1I,KAAKorD,KAAKziD,EAAIA,EAAI80G,EAAKA,EAE/BlgH,MAAKykD,OAAOxvB,EAAGpG,GAAK1jB,EAAIg1G,IACxBngH,KAAK0kD,OAAOzvB,EAAIirF,EAAIrxF,EAAIsxF,GACxBngH,KAAK0kD,OAAOzvB,EAAIirF,EAAIrxF,EAAIsxF,GACxBngH,KAAK0kD,OAAOzvB,EAAGpG,GAAK1jB,EAAIg1G,IACxBngH,KAAK8kD,aASPk7D,yBAAyB3tG,UAAUguG,KAAO,SAAUprF,EAAGpG,EAAGhlB,GAExD7J,KAAKwkD,YAGL36C,GAAK,IACLglB,GAAK,GAAMhlB,CAEX,KAAK,GAAI8jC,GAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,GAAI+a,GAAS/a,EAAI,GAAM,EAAQ,IAAJ9jC,EAAc,GAAJA,CACrC7J,MAAK0kD,OAAOzvB,EAAIyzB,EAASjmD,KAAKw6C,IAAQ,EAAJtP,EAAQlrC,KAAKomD,GAAK,IAAKh6B,EAAI65B,EAASjmD,KAAK06C,IAAQ,EAAJxP,EAAQlrC,KAAKomD,GAAK,KAGnG7oD,KAAK8kD,aASPk7D,yBAAyB3tG,UAAUiuG,QAAU,SAAUrrF,EAAGpG,EAAGhlB,GAE3D7J,KAAKwkD,YAELxkD,KAAK0kD,OAAOzvB,EAAGpG,EAAIhlB,GACnB7J,KAAK0kD,OAAOzvB,EAAIprB,EAAGglB,GACnB7uB,KAAK0kD,OAAOzvB,EAAGpG,EAAIhlB,GACnB7J,KAAK0kD,OAAOzvB,EAAIprB,EAAGglB,GAEnB7uB,KAAK8kD,aAMPk7D,yBAAyB3tG,UAAUkuG,UAAY,SAAUtrF,EAAGpG,EAAG5O,EAAG9U,EAAGtB,GACnE,GAAI22G,GAAM/9G,KAAKomD,GAAK,GAChB5oC,GAAI,EAAIpW,EAAI,IACdA,EAAIoW,EAAI,GAEN9U,EAAI,EAAItB,EAAI,IACdA,EAAIsB,EAAI,GAEVnL,KAAKwkD,YACLxkD,KAAKykD,OAAOxvB,EAAIprB,EAAGglB,GACnB7uB,KAAK0kD,OAAOzvB,EAAIhV,EAAIpW,EAAGglB,GACvB7uB,KAAK4oD,IAAI3zB,EAAIhV,EAAIpW,EAAGglB,EAAIhlB,EAAGA,EAAS,IAAN22G,EAAiB,IAANA,GAAW,GACpDxgH,KAAK0kD,OAAOzvB,EAAIhV,EAAG4O,EAAI1jB,EAAItB,GAC3B7J,KAAK4oD,IAAI3zB,EAAIhV,EAAIpW,EAAGglB,EAAI1jB,EAAItB,EAAGA,EAAG,EAAS,GAAN22G,GAAU,GAC/CxgH,KAAK0kD,OAAOzvB,EAAIprB,EAAGglB,EAAI1jB,GACvBnL,KAAK4oD,IAAI3zB,EAAIprB,EAAGglB,EAAI1jB,EAAItB,EAAGA,EAAS,GAAN22G,EAAgB,IAANA,GAAW,GACnDxgH,KAAK0kD,OAAOzvB,EAAGpG,EAAIhlB,GACnB7J,KAAK4oD,IAAI3zB,EAAIprB,EAAGglB,EAAIhlB,EAAGA,EAAS,IAAN22G,EAAiB,IAANA,GAAW,GAChDxgH,KAAK8kD,aAQPk7D,yBAAyB3tG,UAAUouG,YAAc,SAAUxrF,EAAGpG,EAAG5O,EAAG9U,GAClE,GACIu1G,GAAKzgG,EAAI,EADD,SAGZ0gG,EAAKx1G,EAAI,EAHG,SAKZy1G,EAAK3rF,EAAIhV,EAET4gG,EAAKhyF,EAAI1jB,EAET21G,EAAK7rF,EAAIhV,EAAI,EAEb8gG,EAAKlyF,EAAI1jB,EAAI,CAEbnL,MAAKwkD,YACLxkD,KAAKykD,OAAOxvB,EAAG8rF,GACf/gH,KAAKghH,cAAc/rF,EAAG8rF,EAAKJ,EAAIG,EAAKJ,EAAI7xF,EAAGiyF,EAAIjyF,GAC/C7uB,KAAKghH,cAAcF,EAAKJ,EAAI7xF,EAAG+xF,EAAIG,EAAKJ,EAAIC,EAAIG,GAChD/gH,KAAKghH,cAAcJ,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACjD7gH,KAAKghH,cAAcF,EAAKJ,EAAIG,EAAI5rF,EAAG8rF,EAAKJ,EAAI1rF,EAAG8rF,GAC/C/gH,KAAK8kD,aAMPk7D,yBAAyB3tG,UAAU4uG,SAAW,SAAUhsF,EAAGpG,EAAG5O,EAAG9U,GAC/D,GACI+1G,GAAWjhG,EACXkhG,EAAWh2G,GAFP,EAAI,GAKRu1G,EAAKQ,EAAW,EADR,SAGZP,EAAKQ,EAAW,EAHJ,SAKZP,EAAK3rF,EAAIisF,EAETL,EAAKhyF,EAAIsyF,EAETL,EAAK7rF,EAAIisF,EAAW,EAEpBH,EAAKlyF,EAAIsyF,EAAW,EAEpBC,EAAMvyF,GAAK1jB,EAAIg2G,EAAW,GAE1BE,EAAMxyF,EAAI1jB,CAEVnL,MAAKwkD,YACLxkD,KAAKykD,OAAOm8D,EAAIG,GAEhB/gH,KAAKghH,cAAcJ,EAAIG,EAAKJ,EAAIG,EAAKJ,EAAIG,EAAIC,EAAID,GACjD7gH,KAAKghH,cAAcF,EAAKJ,EAAIG,EAAI5rF,EAAG8rF,EAAKJ,EAAI1rF,EAAG8rF,GAE/C/gH,KAAKghH,cAAc/rF,EAAG8rF,EAAKJ,EAAIG,EAAKJ,EAAI7xF,EAAGiyF,EAAIjyF,GAC/C7uB,KAAKghH,cAAcF,EAAKJ,EAAI7xF,EAAG+xF,EAAIG,EAAKJ,EAAIC,EAAIG,GAEhD/gH,KAAK0kD,OAAOk8D,EAAIQ,GAEhBphH,KAAKghH,cAAcJ,EAAIQ,EAAMT,EAAIG,EAAKJ,EAAIW,EAAKP,EAAIO,GACnDrhH,KAAKghH,cAAcF,EAAKJ,EAAIW,EAAKpsF,EAAGmsF,EAAMT,EAAI1rF,EAAGmsF,GAEjDphH,KAAK0kD,OAAOzvB,EAAG8rF,IAMjBf,yBAAyB3tG,UAAUivG,cAAgB,SAAUrsF,EAAGpG,EAAGwuC,EAAOz5D,GAExE,GAAI29G,GAAKtsF,EAAIrxB,EAASnB,KAAK06C,IAAIkgB,GAC3BmkD,EAAK3yF,EAAIjrB,EAASnB,KAAKw6C,IAAIogB,GAG3BokD,EAAKxsF,EAAa,GAATrxB,EAAenB,KAAK06C,IAAIkgB,GACjCqkD,EAAK7yF,EAAa,GAATjrB,EAAenB,KAAKw6C,IAAIogB,GAGjCskD,EAAKJ,EAAK39G,EAAS,EAAInB,KAAK06C,IAAIkgB,EAAQ,GAAM56D,KAAKomD,IACnD+4D,EAAKJ,EAAK59G,EAAS,EAAInB,KAAKw6C,IAAIogB,EAAQ,GAAM56D,KAAKomD,IAGnDg5D,EAAKN,EAAK39G,EAAS,EAAInB,KAAK06C,IAAIkgB,EAAQ,GAAM56D,KAAKomD,IACnDi5D,EAAKN,EAAK59G,EAAS,EAAInB,KAAKw6C,IAAIogB,EAAQ,GAAM56D,KAAKomD;6MAEvD7oD,MAAKwkD,YACLxkD,KAAKykD,OAAOxvB,EAAGpG,GACf7uB,KAAK0kD,OAAOi9D,EAAIC,GAChB5hH,KAAK0kD,OAAO+8D,EAAIC,GAChB1hH,KAAK0kD,OAAOm9D,EAAIC,GAChB9hH,KAAK8kD,aAMPk7D,yBAAyB3tG,UAAU0vG,eAAiB,SAAU9sF,EAAGpG,EAAGwuC,EAAOz5D,GACzE,GAAI8kD,GAAkB,GAAT9kD,EACTo+G,EAAK/sF,EAAIyzB,EAASjmD,KAAK06C,IAAIkgB,GAC3B4kD,EAAKpzF,EAAI65B,EAASjmD,KAAKw6C,IAAIogB,EAC/Br9D,MAAKwoG,OAAOwZ,EAAIC,EAAIv5D,IAStBs3D,yBAAyB3tG,UAAU6vG,WAAa,SAAUjtF,EAAGpG,EAAGszF,EAAIC,EAAIC,GACtEriH,KAAKwkD,YACLxkD,KAAKykD,OAAOxvB,EAAGpG,EAYf,KAVA,GAAIyzF,GAAgBD,EAAQz+G,OACxBk6C,EAAKqkE,EAAKltF,EACV8oB,EAAKqkE,EAAKvzF,EACV0zF,EAAQxkE,EAAKD,EACb0kE,EAAgB//G,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GACzC0kE,EAAe,EACfzlB,GAAO,EACPjiD,EAAQ,EACR2nE,EAAaL,EAAQ,GAElBG,GAAiB,IACtBE,EAAaL,EAAQI,IAAiBH,GAClCI,EAAaF,IACfE,EAAaF,GAGfznE,EAAQt4C,KAAKorD,KAAK60D,EAAaA,GAAc,EAAIH,EAAQA,IACzDxnE,EAAQ+C,EAAK,GAAK/C,EAAQA,EAC1B9lB,GAAK8lB,EACLlsB,GAAK0zF,EAAQxnE,GAEA,IAATiiD,EACFh9F,KAAK0kD,OAAOzvB,EAAGpG,GAEf7uB,KAAKykD,OAAOxvB,EAAGpG,GAGjB2zF,GAAiBE,EACjB1lB,GAAQA,KAOV,SAAUn9F,EAAQD,EAASM,GA8C/B,QAASyiH,GAASjuF,GAEhB,MADAolB,GAAMplB,EACCkuF,IAkDT,QAASlU,KACP37F,EAAQ,EACRtS,EAAIq5C,EAAI7+B,OAAO,GAQjB,QAASxJ,KACPsB,IACAtS,EAAIq5C,EAAI7+B,OAAOlI,GAOjB,QAAS8vG,KACP,MAAO/oE,GAAI7+B,OAAOlI,EAAQ,GAS5B,QAAS+vG,GAAeriH,GACtB,MAAOsiH,GAAkB71G,KAAKzM,GAShC,QAAS0kE,GAAM3hE,EAAGC,GAKhB,GAJKD,IACHA,MAGEC,EACF,IAAK,GAAIwR,KAAQxR,GACXA,EAAEH,eAAe2R,KACnBzR,EAAEyR,GAAQxR,EAAEwR,GAIlB,OAAOzR,GAeT,QAASw/G,GAASliH,EAAKm2F,EAAM10F,GAG3B,IAFA,GAAIwR,GAAOkjF,EAAKtwF,MAAM,KAClBwiC,EAAIroC,EACDiT,EAAKnQ,QAAQ,CAClB,GAAI2D,GAAMwM,EAAKwwB,OACXxwB,GAAKnQ,QAEFulC,EAAE5hC,KACL4hC,EAAE5hC,OAEJ4hC,EAAIA,EAAE5hC,IAGN4hC,EAAE5hC,GAAOhF,GAWf,QAAS0gH,GAAQ7yD,EAAO3iB,GAOtB,IANA,GAAI1pC,GAAGgB,EACH60E,EAAU,KAGVspC,GAAU9yD,GACV1wD,EAAO0wD,EACJ1wD,EAAKsJ,QACVk6G,EAAOr+G,KAAKnF,EAAKsJ,QACjBtJ,EAAOA,EAAKsJ,MAId,IAAItJ,EAAKu6G,MACP,IAAKl2G,EAAI,EAAGgB,EAAMrF,EAAKu6G,MAAMr2G,OAAQG,EAAIgB,EAAKhB,IAC5C,GAAI0pC,EAAKptC,KAAOX,EAAKu6G,MAAMl2G,GAAG1D,GAAI,CAChCu5E,EAAUl6E,EAAKu6G,MAAMl2G,EACrB,OAiBN,IAZK61E,IAEHA,GACEv5E,GAAIotC,EAAKptC,IAEP+vD,EAAM3iB,OAERmsC,EAAQupC,KAAOh+C,EAAMyU,EAAQupC,KAAM/yD,EAAM3iB,QAKxC1pC,EAAIm/G,EAAOt/G,OAAS,EAAGG,GAAK,EAAGA,IAAK,CACvC,GAAI+F,GAAIo5G,EAAOn/G,EAEV+F,GAAEmwG,QACLnwG,EAAEmwG,WAE8B,IAA9BnwG,EAAEmwG,MAAMr1G,QAAQg1E,IAClB9vE,EAAEmwG,MAAMp1G,KAAK+0E,GAKbnsC,EAAK01E,OACPvpC,EAAQupC,KAAOh+C,EAAMyU,EAAQupC,KAAM11E,EAAK01E,OAS5C,QAASC,GAAQhzD,EAAOsvD,GAKtB,GAJKtvD,EAAM+pD,QACT/pD,EAAM+pD,UAER/pD,EAAM+pD,MAAMt1G,KAAK66G,GACbtvD,EAAMsvD,KAAM,CACd,GAAIyD,GAAOh+C,KAAU/U,EAAMsvD,KAC3BA,GAAKyD,KAAOh+C,EAAMg+C,EAAMzD,EAAKyD,OAajC,QAASlI,GAAW7qD,EAAOzsC,EAAMD,EAAIze,EAAMk+G,GACzC,GAAIzD,IACF/7F,KAAMA,EACND,GAAIA,EACJze,KAAMA,EAQR,OALImrD,GAAMsvD,OACRA,EAAKyD,KAAOh+C,KAAU/U,EAAMsvD,OAE9BA,EAAKyD,KAAOh+C,EAAMu6C,EAAKyD,SAAYA,GAE5BzD,EAOT,QAAS2D,KAKP,IAJAC,EAAYC,EAAUC,KACtB35F,EAAQ,GAGK,MAANppB,GAAmB,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAE9CgR,GAGF,GAAG,CACD,GAAIgyG,IAAY,CAGhB,IAAU,MAANhjH,EAAW,CAGb,IADA,GAAIsD,GAAIgP,EAAQ,EACS,MAAlB+mC,EAAI7+B,OAAOlX,IAAgC,OAAlB+1C,EAAI7+B,OAAOlX,IACzCA,GAEF,IAAsB,OAAlB+1C,EAAI7+B,OAAOlX,IAAiC,KAAlB+1C,EAAI7+B,OAAOlX,GAAW,CAElD,KAAY,IAALtD,GAAgB,MAALA,GAChBgR,GAEFgyG,IAAY,GAGhB,GAAU,MAANhjH,GAA+B,MAAlBoiH,IAAuB,CAEtC,KAAY,IAALpiH,GAAgB,MAALA,GAChBgR,GAEFgyG,IAAY,EAEd,GAAU,MAANhjH,GAA+B,MAAlBoiH,IAAuB,CAEtC,KAAY,IAALpiH,GAAS,CACd,GAAU,MAANA,GAA+B,MAAlBoiH,IAAuB,CAEtCpxG,IACAA,GACA,OAEAA,IAGJgyG,GAAY,EAId,KAAa,MAANhjH,GAAmB,OAANA,GAAoB,OAANA,GAAoB,OAANA,GAE9CgR,UAEKgyG,EAGT,IAAU,KAANhjH,EAGF,YADA6iH,EAAYC,EAAUG,UAKxB,IAAIC,GAAKljH,EAAIoiH,GACb,IAAIe,EAAWD,GAKb,MAJAL,GAAYC,EAAUG,UACtB75F,EAAQ85F,EACRlyG,QACAA,IAKF,IAAImyG,EAAWnjH,GAIb,MAHA6iH,GAAYC,EAAUG,UACtB75F,EAAQppB,MACRgR,IAMF,IAAIqxG,EAAeriH,IAAY,MAANA,EAAW,CAIlC,IAHAopB,GAASppB,EACTgR,IAEOqxG,EAAeriH,IACpBopB,GAASppB,EACTgR,GAUF,OARc,UAAVoY,EACFA,GAAQ,EACW,SAAVA,EACTA,GAAQ,EACE7mB,MAAMnB,OAAOgoB,MACvBA,EAAQhoB,OAAOgoB,SAEjBy5F,EAAYC,EAAUM,YAKxB,GAAU,MAANpjH,EAAW,CAEb,IADAgR,IACY,IAALhR,IAAiB,KAALA,GAAkB,MAANA,GAA+B,MAAlBoiH,MAChC,MAANpiH,GAEFopB,GAASppB,EACTgR,KACe,OAANhR,GAAgC,MAAlBoiH,KAEvBh5F,GAAS,KACTpY,KAEAoY,GAASppB,EAEXgR,GAEF,IAAS,KAALhR,EACF,KAAMqjH,GAAe,2BAIvB,OAFAryG,UACA6xG,EAAYC,EAAUM,YAMxB,IADAP,EAAYC,EAAUQ,QACV,IAALtjH,GACLopB,GAASppB,EACTgR,GAEF,MAAM,IAAI4kC,aAAY,yBAA2B2tE,EAAKn6F,EAAO,IAAM,KAOrE,QAAS+4F,KACP,GAAIxyD,KAwBJ,IAtBAs+C,IACA2U,IAGc,WAAVx5F,IACFumC,EAAM5uC,QAAS,EACf6hG,KAIY,UAAVx5F,GAA+B,YAAVA,IACvBumC,EAAMnrD,KAAO4kB,EACbw5F,KAIEC,IAAcC,EAAUM,aAC1BzzD,EAAM/vD,GAAKwpB,EACXw5F,KAIW,KAATx5F,EACF,KAAMi6F,GAAe,2BAQvB,IANAT,IAGAY,EAAgB7zD,GAGH,KAATvmC,EACF,KAAMi6F,GAAe,2BAKvB,IAHAT,IAGc,KAAVx5F,EACF,KAAMi6F,GAAe,uBASvB,OAPAT,WAGOjzD,GAAM3iB,WACN2iB,GAAMsvD,WACNtvD,GAAMA,MAENA,EAOT,QAAS6zD,GAAgB7zD,GACvB,KAAiB,KAAVvmC,GAAyB,KAATA,GACrBq6F,EAAe9zD,GACD,MAAVvmC,GACFw5F,IAWN,QAASa,GAAe9zD,GAEtB,GAAI+zD,GAAWC,EAAch0D,EAC7B,IAAI+zD,EAIF,WAFAE,GAAUj0D,EAAO+zD,EAOnB,KADWG,EAAwBl0D,GACnC,CAKA,GAAIkzD,GAAaC,EAAUM,WACzB,KAAMC,GAAe,sBAEvB,IAAIzjH,GAAKwpB,CAGT,IAFAw5F,IAEc,MAAVx5F,EAAe,CAGjB,GADAw5F,IACIC,GAAaC,EAAUM,WACzB,KAAMC,GAAe,sBAEvB1zD,GAAM/vD,GAAMwpB,EACZw5F,QAGAkB,GAAmBn0D,EAAO/vD,IAS9B,QAAS+jH,GAAch0D,GACrB,GAAI+zD,GAAW,IAgBf,IAbc,aAAVt6F,IACFs6F,KACAA,EAASl/G,KAAO,WAChBo+G,IAGIC,IAAcC,EAAUM,aAC1BM,EAAS9jH,GAAKwpB,EACdw5F,MAKU,MAAVx5F,EAAe,CAejB,GAdAw5F,IAEKc,IACHA,MAEFA,EAASn7G,OAASonD,EAClB+zD,EAAS12E,KAAO2iB,EAAM3iB,KACtB02E,EAASzE,KAAOtvD,EAAMsvD,KACtByE,EAAS/zD,MAAQA,EAAMA,MAGvB6zD,EAAgBE,GAGH,KAATt6F,EACF,KAAMi6F,GAAe,2BAEvBT,WAGOc,GAAS12E,WACT02E,GAASzE,WACTyE,GAAS/zD,YACT+zD,GAASn7G,OAGXonD,EAAMo0D,YACTp0D,EAAMo0D,cAERp0D,EAAMo0D,UAAU3/G,KAAKs/G,GAGvB,MAAOA,GAYT,QAASG,GAAwBl0D,GAE/B,MAAc,SAAVvmC,GACFw5F,IAGAjzD,EAAM3iB,KAAOg3E,IACN,QACY,SAAV56F,GACTw5F,IAGAjzD,EAAMsvD,KAAO+E,IACN,QACY,UAAV56F,GACTw5F,IAGAjzD,EAAMA,MAAQq0D,IACP,SAGF,KAQT,QAASF,GAAmBn0D,EAAO/vD,GAEjC,GAAIotC,IACFptC,GAAIA,GAEF8iH,EAAOsB,GACPtB,KACF11E,EAAK01E,KAAOA,GAEdF,EAAQ7yD,EAAO3iB,GAGf42E,EAAUj0D,EAAO/vD,GAQnB,QAASgkH,GAAUj0D,EAAOzsC,GACxB,KAAiB,OAAVkG,GAA4B,OAAVA,GAAgB,CACvC,GAAInG,GACAze,EAAO4kB,CACXw5F,IAEA,IAAIc,GAAWC,EAAch0D,EAC7B,IAAI+zD,EACFzgG,EAAKygG,MACA,CACL,GAAIb,GAAaC,EAAUM,WACzB,KAAMC,GAAe,kCAEvBpgG,GAAKmG,EACLo5F,EAAQ7yD,GACN/vD,GAAIqjB,IAEN2/F,IAQFD,EAAQhzD,EADG6qD,EAAW7qD,EAAOzsC,EAAMD,EAAIze,EAH5Bw/G,MAMX9gG,EAAOD,GASX,QAAS+gG,KAGP,IAFA,GAAItB,GAAO,KAEM,MAAVt5F,GAAe,CAGpB,IAFAw5F,IACAF,KACiB,KAAVt5F,GAAyB,KAATA,GAAc,CACnC,GAAIy5F,GAAaC,EAAUM,WACzB,KAAMC,GAAe,0BAEvB,IAAI7uG,GAAO4U,CAGX,IADAw5F,IACa,KAATx5F,EACF,KAAMi6F,GAAe,wBAIvB,IAFAT,IAEIC,GAAaC,EAAUM,WACzB,KAAMC,GAAe,2BAGvBd,GAASG,EAAMluG,EADH4U,GAGZw5F,IACa,KAATx5F,GACFw5F,IAIJ,GAAa,KAATx5F,EACF,KAAMi6F,GAAe,qBAEvBT,KAGF,MAAOF,GAQT,QAASW,GAAe/qD,GACtB,MAAO,IAAI1iB,aAAY0iB,EAAU,UAAYirD,EAAKn6F,EAAO,IAAM,WAAa9W,EAAQ,KAStF,QAASixG,GAAK79D,EAAMu+D,GAClB,MAAOv+D,GAAKviD,QAAU8gH,EAAYv+D,EAAOA,EAAK97C,OAAO,EAAG,IAAM,MAShE,QAASs6G,GAAS5/F,EAAQC,EAAQvd,GAC5BtD,MAAMC,QAAQ2gB,GAChBA,EAAO7d,QAAQ,SAAU09G,GACnBzgH,MAAMC,QAAQ4gB,GAChBA,EAAO9d,QAAQ,SAAU29G,GACvBp9G,EAAGm9G,EAAOC,KAGZp9G,EAAGm9G,EAAO5/F,KAIV7gB,MAAMC,QAAQ4gB,GAChBA,EAAO9d,QAAQ,SAAU29G,GACvBp9G,EAAGsd,EAAQ8/F,KAGbp9G,EAAGsd,EAAQC,GAcjB,QAAS8/F,GAAQljH,EAAQq1F,EAAM10F,GAM7B,IAAK,GALD8W,GAAQ49E,EAAKtwF,MAAM,KACnBtD,EAAOgW,EAAMu8E,MAGb90F,EAAMc,EACDmC,EAAI,EAAGA,EAAIsV,EAAMzV,OAAQG,IAAK,CACrC,GAAIkR,GAAOoE,EAAMtV,EACXkR,KAAQnU,KACZA,EAAImU,OAENnU,EAAMA,EAAImU,GAMZ,MAFAnU,GAAIuC,GAAQd,EAELX,EAST,QAASmjH,GAAY5B,EAAM6B,GACzB,GAAIrwE,KAEJ,KAAK,GAAItxC,KAAQ8/G,GACf,GAAIA,EAAK7/G,eAAeD,GAAO,CAC7B,GAAI4hH,GAAUD,EAAQ3hH,EAClBc,OAAMC,QAAQ6gH,GAChBA,EAAQ/9G,QAAQ,SAAUg+G,GACxBJ,EAAQnwE,EAAWuwE,EAAU/B,EAAK9/G,MAER,gBAAZ4hH,GAChBH,EAAQnwE,EAAWswE,EAAS9B,EAAK9/G,IAEjCyhH,EAAQnwE,EAAWtxC,EAAM8/G,EAAK9/G,IAKpC,MAAOsxC,GAST,QAASmlE,GAAWplF,GAElB,GAAI0oF,GAAUuF,EAASjuF,GACnBywF,GACFlL,SACAE,SACAnsG,WAmBF,IAfIovG,EAAQnD,OACVmD,EAAQnD,MAAM/yG,QAAQ,SAAUk+G,GAC9B,GAAIC,IACFhlH,GAAI+kH,EAAQ/kH,GACZiwC,MAAO3tC,OAAOyiH,EAAQ90E,OAAS80E,EAAQ/kH,IAEzC8kE,GAAMkgD,EAAWN,EAAYK,EAAQjC,KAAMmC,IACvCD,EAAUE,QACZF,EAAUG,MAAQ,SAEpBL,EAAUlL,MAAMp1G,KAAKwgH,KAKrBjI,EAAQjD,MAAO,CAMjB,GAAIsL,GAAc,SAAqBC,GACrC,GAAIC,IACFhiG,KAAM+hG,EAAQ/hG,KACdD,GAAIgiG,EAAQhiG,GAKd,OAHAyhD,GAAMwgD,EAAWZ,EAAYW,EAAQvC,KAAMyC,IAC3CD,EAAUE,OAA0B,OAAjBH,EAAQzgH,KAAgB,SAAOpB,GAE3C8hH,EAGTvI,GAAQjD,MAAMjzG,QAAQ,SAAUw+G,GAC9B,GAAI/hG,GAAMD,CAERC,GADE+hG,EAAQ/hG,eAAgBlf,QACnBihH,EAAQ/hG,KAAKs2F,OAGlB55G,GAAIqlH,EAAQ/hG,MAQdD,EADEgiG,EAAQhiG,aAAcjf,QACnBihH,EAAQhiG,GAAGu2F,OAGd55G,GAAIqlH,EAAQhiG,IAIZgiG,EAAQ/hG,eAAgBlf,SAAUihH,EAAQ/hG,KAAKw2F,OACjDuL,EAAQ/hG,KAAKw2F,MAAMjzG,QAAQ,SAAU4+G,GACnC,GAAIH,GAAYF,EAAYK,EAC5BX,GAAUhL,MAAMt1G,KAAK8gH,KAIzBhB,EAAShhG,EAAMD,EAAI,SAAUC,EAAMD,GACjC,GAAIoiG,GAAU7K,EAAWkK,EAAWxhG,EAAKtjB,GAAIqjB,EAAGrjB,GAAIqlH,EAAQzgH,KAAMygH,EAAQvC,MACtEwC,EAAYF,EAAYK,EAC5BX,GAAUhL,MAAMt1G,KAAK8gH,KAGnBD,EAAQhiG,aAAcjf,SAAUihH,EAAQhiG,GAAGy2F,OAC7CuL,EAAQhiG,GAAGy2F,MAAMjzG,QAAQ,SAAU4+G,GACjC,GAAIH,GAAYF,EAAYK,EAC5BX,GAAUhL,MAAMt1G,KAAK8gH,OAW7B,MAJIvI,GAAQ+F,OACVgC,EAAUn3G,QAAUovG,EAAQ+F,MAGvBgC,EAx5BT,GAAIhkH,GAAUjB,EAAoB,IAE9BkB,EAEJ,SAAgCN,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,IAFnDK,GA8ClCmkH,GACFS,SAAY,YACZC,UAAa,aACbC,eAAkB,aAClBC,SAAY,YACZh8G,OAAU,eAAgB,oBAC1Bi8G,UAAa,mBACb5sE,QAAW,QACX6sE,aAAgB,SAEdR,GAAoB,EAAIxkH,EAAkB,SAAGkkH,EACjDM,GAAkB17G,MAAQ,aAG1B,IAAIq5G,IACFC,KAAM,EACNE,UAAW,EACXG,WAAY,EACZE,QAAS,GAIPH,GACFyC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,EAELC,MAAM,EACNC,MAAM,GAGJ/sE,EAAM,GACN/mC,EAAQ,EACRtS,EAAI,GACJopB,EAAQ,GACRy5F,EAAYC,EAAUC,KAmCtBT,EAAoB,iBAkyBxBnjH,GAAQ+iH,SAAWA,EACnB/iH,EAAQk6G,WAAaA,GAIjB,SAAUj6G,EAAQD,GAItB,QAASo6G,GAAW8M,EAAWnpB,GAC7B,GAAIwc,MACAF,KACAjsG,GACFmsG,OACE4M,cAAc,GAEhB9M,OACE+M,OAAO,EACPp8G,YAAY,QAIG/G,KAAf85F,QACuB95F,KAArB85F,EAAWqpB,QACbh5G,EAAQisG,MAAM+M,MAAQrpB,EAAWqpB,WAELnjH,KAA1B85F,EAAW/yF,aACboD,EAAQisG,MAAMrvG,WAAa+yF,EAAW/yF,gBAER/G,KAA5B85F,EAAWopB,eACb/4G,EAAQmsG,MAAM4M,aAAeppB,EAAWopB,cAM5C,KAAK,GAFDE,GAASH,EAAU3M,MACnB+M,EAASJ,EAAU7M,MACdl2G,EAAI,EAAGA,EAAIkjH,EAAOrjH,OAAQG,IAAK,CACtC,GAAI27G,MACAyH,EAAQF,EAAOljH,EACnB27G,GAAS,GAAIyH,EAAM9mH,GACnBq/G,EAAW,KAAIyH,EAAM5xG,OACrBmqG,EAAS,GAAIyH,EAAMx+G,OACnB+2G,EAAiB,WAAIyH,EAAMp1B,WAC3B2tB,EAAY,MAAIyH,EAAM72E,MACtBovE,EAAY,UAAyB77G,KAArBsjH,EAAMp1B,WAA2Bo1B,EAAMp1B,WAAWpU,UAAQ95E,GACpD,aAAlBsjH,EAAY,OACdzH,EAAa,OAAI,MAIfyH,EAAMj9G,QAAkC,IAAzB8D,EAAQ+4G,eACzBrH,EAAY,MAAIyH,EAAMj9G,OAExBiwG,EAAMt1G,KAAK66G,GAGb,IAAK,GAAI37G,GAAI,EAAGA,EAAImjH,EAAOtjH,OAAQG,IAAK,CACtC,GAAI0pC,MACA25E,EAAQF,EAAOnjH,EACnB0pC,GAAS,GAAI25E,EAAM/mH,GACnBotC,EAAiB,WAAI25E,EAAMr1B,WAC3BtkD,EAAQ,EAAI25E,EAAMnyF,EAClBwY,EAAQ,EAAI25E,EAAMv4F,EAClB4e,EAAY,MAAI25E,EAAM92E,MACtB7C,EAAY,UAAyB5pC,KAArBujH,EAAMr1B,WAA2Bq1B,EAAMr1B,WAAWpU,MAAQypC,EAAMzpC,OAC/C,IAA7B3vE,EAAQisG,MAAMrvG,WAChB6iC,EAAY,MAAI25E,EAAMl9G,MAEtBujC,EAAY,UAAoB5pC,KAAhBujH,EAAMl9G,OAAwBwB,WAAY07G,EAAMl9G,MAAOyB,OAAQy7G,EAAMl9G,MAAO0B,WAAaF,WAAY07G,EAAMl9G,MAAOyB,OAAQy7G,EAAMl9G,OAAS2B,OAASH,WAAY07G,EAAMl9G,MAAOyB,OAAQy7G,EAAMl9G,YAAYrG,GAEvN4pC,EAAW,KAAI25E,EAAM/2E,KACrB5C,EAAY,MAAIz/B,EAAQisG,MAAM+M,WAAqBnjH,KAAZujH,EAAMnyF,OAA+BpxB,KAAZujH,EAAMv4F,EACtEorF,EAAMp1G,KAAK4oC,GAGb,OAASwsE,MAAOA,EAAOE,MAAOA,GAGhCv6G,EAAQo6G,WAAaA,GAIjB,SAAUn6G,EAAQD,GAKtBA,EAAY,IACVynH,KAAM,OACNC,IAAK,kBACLC,KAAM,OACNtE,QAAS,WACTG,QAAS,WACT7E,SAAU,YACViJ,SAAU,YACVC,eAAgB,+CAChBC,gBAAiB,qEACjBC,oBAAqB,wEACrBC,gBAAiB,kCACjBC,mBAAoB,8BACpBC,iBAAkB,8BAEpBloH,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACVynH,KAAM,YACNC,IAAK,iBACLC,KAAM,SACNtE,QAAS,oBACTG,QAAS,mBACT7E,SAAU,mBACViJ,SAAU,kBACVC,eAAgB,oEAChBC,gBAAiB,8FACjBC,oBAAqB,0FACrBC,gBAAiB,0DACjBC,mBAAoB,wCACpBC,iBAAkB,yCAEpBloH,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACVynH,KAAM,SACNC,IAAK,qBACLC,KAAM,QACNtE,QAAS,cACTG,QAAS,gBACT7E,SAAU,cACViJ,SAAU,gBACVC,eAAgB,0DAChBC,gBAAiB,8EACjBC,oBAAqB,2EACrBC,gBAAiB,8CACjBC,mBAAoB,iCACpBC,iBAAkB,gCAEpBloH,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACVynH,KAAM,WACNC,IAAK,wBACLC,KAAM,WACNtE,QAAS,mBACTG,QAAS,sBACT7E,SAAU,mBACViJ,SAAU,sBACVC,eAAgB,sCAChBC,gBAAiB,mEACjBC,oBAAqB,yEACrBC,gBAAiB,iDACjBC,mBAAoB,0CACpBC,iBAAkB,6CAEpBloH,EAAe,MAAIA,EAAY,GAG/BA,EAAY,IACVynH,KAAM,WACNC,IAAK,uBACLC,KAAM,QACNtE,QAAS,iBACTG,QAAS,iBACT7E,SAAU,gBACViJ,SAAU,gBACVC,eAAgB,uDAChBC,gBAAiB,6EACjBC,oBAAqB,kFACrBC,gBAAiB,wCACjBC,mBAAoB,0CACpBC,iBAAkB,0CAEpBloH,EAAe,MAAIA,EAAY,GAC/BA,EAAe,MAAIA,EAAY,GAG/BA,EAAQ,UACNynH,KAAM,SACNC,IAAK,sBACLC,KAAM,SACNtE,QAAS,eACTG,QAAS,mBACT7E,SAAU,YACViJ,SAAU,gBACVC,eAAgB,0DAChBC,gBAAiB,mEACjBC,oBAAqB,yEACrBC,gBAAiB,gDACjBC,mBAAoB,sCACpBC,iBAAkB,sCAEpBloH,EAAQ,SAAWA,EAAQ,SAC3BA,EAAe,MAAIA,EAAQ,SAC3BA,EAAe,MAAIA,EAAQ,SAG3BA,EAAY,IACVynH,KAAM,gBACNC,IAAK,oBACLC,KAAM,QACNtE,QAAS,gBACTG,QAAS,iBACT7E,SAAU,qBACViJ,SAAU,sBACVC,eAAgB,yDAChBC,gBAAiB,yEACjBC,oBAAqB,mFACrBC,gBAAiB,wCACjBC,mBAAoB,iCACpBC,iBAAkB,2CAEpBloH,EAAe,MAAIA,EAAY,IAI3B,SAAUC,EAAQD,EAASM,GAoB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhBzF2D,OAAO6S,eAAe1X,EAAS,cAC3B2C,OAAO,GAGX,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvCm1B,EAAe7nH,EAAoB,KAEnC8nH,EAAgBnnH,EAAuBknH,GAQvCrO,EAAS,WACT,QAASA,GAAOvyG,IACZ,EAAIwrF,EAA0B,SAAG3yF,KAAM05G,GAEvC15G,KAAKo7G,UACLp7G,KAAKioH,eACLjoH,KAAKmH,SAAWA,EAyGpB,OA/FA,EAAI0rF,EAAuB,SAAG6mB,IAC1BnyG,IAAK,oBACLhF,MAAO,SAA2B2lH,EAAKC,EAAWC,GAE9C,OAAYvkH,KAARqkH,OAAgDrkH,KAA3BukH,EAAzB,CACA,OAAkBvkH,KAAdskH,EAEA,WADA3iG,SAAQH,KAAK,8BAKjB+iG,GAAuBC,QAAU,WAC7B7iG,QAAQ83E,MAAM,8BAA+B6qB,IAKjDC,EAAuB7C,MAAM7sG,IAAMyvG,MAQvC5gH,IAAK,mBACLhF,MAAO,SAA0B+lH,GACzBtoH,KAAKmH,UACLnH,KAAKmH,SAASmhH,MAWtB/gH,IAAK,OACLhF,MAAO,SAAc2lH,EAAKC,EAAW9nH,GACjC,GAAI45F,GAAQj6F,KAGRuoH,EAAcvoH,KAAKo7G,OAAO8M,EAC9B,IAAIK,EAAa,MAAOA,EAGxB,IAAIC,GAAM,GAAIR,GAAuB,OAyBrC,OArBAhoH,MAAKo7G,OAAO8M,GAAOM,EAGnBA,EAAIjD,MAAMkD,OAAS,WAEfxuB,EAAMyuB,qBAAqBF,EAAIjD,OAC/BiD,EAAIltD,OACJ2+B,EAAM0uB,iBAAiBH,IAI3BA,EAAIjD,MAAM8C,QAAU,WAChB7iG,QAAQ83E,MAAM,wBAAyB4qB,GAEvCjuB,EAAM2uB,kBAAkBV,EAAKC,EAAWK,IAI5CA,EAAIjD,MAAM7sG,IAAMwvG,EAGTM,KAYXjhH,IAAK,uBACLhF,MAAO,SAA8BsmH,GACN,IAAvBA,EAAaz4G,QACbF,SAASS,KAAKD,YAAYm4G,GAC1BA,EAAaz4G,MAAQy4G,EAAah4G,YAClCg4G,EAAax4G,OAASw4G,EAAa36D,aACnCh+C,SAASS,KAAKzO,YAAY2mH,QAI/BnP,IAGX95G,GAAiB,QAAI85G,GAIjB,SAAU75G,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAavCk2B,EAAc,WAChB,QAASA,GAAYvD,IACnB,EAAI5yB,EAA0B,SAAG3yF,KAAM8oH,GAEvC9oH,KAAK+oH,eAAiB,EAEtB/oH,KAAKulH,MAAQ,GAAIyD,OACjBhpH,KAAKo+C,OAASluC,SAASC,cAAc,UAmJvC,OA3IA,EAAI0iF,EAAuB,SAAGi2B,IAC5BvhH,IAAK,OACLhF,MAAO,WACL,IAAIvC,KAAKs5F,cAAT,CAEAt5F,KAAK0Y,IAAM1Y,KAAKulH,MAAM7sG,GACtB,IAAIuH,GAAIjgB,KAAKulH,MAAMn1G,MACfjF,EAAInL,KAAKulH,MAAMl1G,MAGnBrQ,MAAKoQ,MAAQ6P,EACbjgB,KAAKqQ,OAASlF,EAGdnL,KAAKo+C,OAAOhuC,MAAQ,EAAI6P,EAAI,EAC5BjgB,KAAKo+C,OAAO/tC,OAASlF,EAAI,EAIzBnL,KAAKipH,cAAgB,EAAG,EAAGhpG,EAAI,EAAG9U,EAAI,IAAK8U,EAAI,EAAG,EAAGA,EAAI,EAAG9U,EAAI,IAAK8U,EAAI,EAAG9U,EAAI,EAAG8U,EAAI,EAAG9U,EAAI,IAAK,EAAI8U,EAAI,EAAG9U,EAAI,EAAG8U,EAAI,GAAI9U,EAAI,KAEjInL,KAAKkpH,kBAQP3hH,IAAK,cACLhF,MAAO,WACL,WAA4BsB,KAArB7D,KAAKipH,eAsBd1hH,IAAK,cACLhF,MAAO,WACL,GAAI+S,GAAMtV,KAAKo+C,OAAOqF,WAAW,MAG7B//B,EAAK1jB,KAAKipH,YAAY,EAC1B3zG,GAAI6zG,UAAUnpH,KAAKulH,MAAO7hG,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAGlD,KAAK,GAAI0lG,GAAa,EAAGA,EAAappH,KAAK+oH,eAAgBK,IAAc,CACvE,GAAIzlG,GAAO3jB,KAAKipH,YAAYG,EAAa,GACrCC,EAAMrpH,KAAKipH,YAAYG,EAE3B9zG,GAAI6zG,UAAUnpH,KAAKo+C,OAAQz6B,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAI0lG,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,QAiB/F9hH,IAAK,sBACLhF,MAAO,SAA6B+S,EAAK48D,EAAQhsE,EAAMI,EAAK8J,EAAOC,GACjE,GAAI6hE,EAAS,GAAKlyE,KAAKs5F,cAAe,CAEpCpnB,GAAU,EAEV,KADA,GAAIk3C,GAAa,EACVl3C,EAAS,GAAKk3C,EAAappH,KAAK+oH,gBACrC72C,GAAU,GACVk3C,GAAc,CAGZA,IAAcppH,KAAK+oH,iBACrBK,EAAappH,KAAK+oH,eAAiB,EAIrC,IAAIplG,GAAO3jB,KAAKipH,YAAYG,EAC5B9zG,GAAI6zG,UAAUnpH,KAAKo+C,OAAQz6B,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIzd,EAAMI,EAAK8J,EAAOC,OACxErQ,MAAKspH,cAEdh0G,EAAI6zG,UAAUnpH,KAAKulH,MAAOr/G,EAAMI,EAAK8J,EAAOC,MAahD9I,IAAK,aACLhF,MAAO,SAAoBimH,GACzB,GAAIA,GAAMxoH,KAAKulH,KAKf,SAAKiD,EAAIe,eAQuB,KAArBf,EAAIgB,cAAqD,IAArBhB,EAAIgB,kBAQhDV,IAGTlpH,GAAiB,QAAIkpH,GAIjB,SAAUjpH,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAO3Bm7G,EAAS,WACX,QAASA,MACP,EAAI1oB,EAA0B,SAAG3yF,KAAMq7G,GAEvCr7G,KAAKi0C,QACLj0C,KAAKypH,aAAe,EACpBzpH,KAAK0pH,eACL1pH,KAAKonF,WAAa,EAElBpnF,KAAK2pH,gBAAmBh+G,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aACjKC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAG7I1L,KAAKgO,WACLhO,KAAKguE,gBACH47C,kBAAkB,GAEpBjpH,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBA+EjC,OA5EA,EAAI6kB,EAAuB,SAAGwoB,IAC5B9zG,IAAK,aACLhF,MAAO,SAAoByL,GACzB,GAAI67G,IAAgB,mBAEpB,QAAgBhmH,KAAZmK,EACF,IAAK,GAAI87G,KAAa97G,GACpB,GAAIA,EAAQ1K,eAAewmH,KACgB,IAArCD,EAAajlH,QAAQklH,GAAmB,CAC1C,GAAIr4C,GAAQzjE,EAAQ87G,EACpB9pH,MAAK2wB,IAAIm5F,EAAWr4C,OAY9BlqE,IAAK,QACLhF,MAAO,WACLvC,KAAK6tE,UACL7tE,KAAK0pH,kBAWPniH,IAAK,MACLhF,MAAO,SAAawnH,GAClB,GAAIt4C,GAAQzxE,KAAK6tE,OAAOk8C,EACxB,QAAclmH,KAAV4tE,EACF,IAAsC,IAAlCzxE,KAAKgO,QAAQ47G,kBAA8B5pH,KAAK0pH,YAAY9lH,OAAS,EAAG,CAE1E,GAAImP,GAAQ/S,KAAKonF,WAAapnF,KAAK0pH,YAAY9lH,MAC/C5D,MAAKonF,aACL3V,KACAA,EAAMvnE,MAAQlK,KAAK6tE,OAAO7tE,KAAK0pH,YAAY32G,IAC3C/S,KAAK6tE,OAAOk8C,GAAat4C,MACpB,CAEL,GAAIu4C,GAAShqH,KAAKypH,aAAezpH,KAAK2pH,cAAc/lH,MACpD5D,MAAKypH,eACLh4C,KACAA,EAAMvnE,MAAQlK,KAAK2pH,cAAcK,GACjChqH,KAAK6tE,OAAOk8C,GAAat4C,EAI7B,MAAOA,MAYTlqE,IAAK,MACLhF,MAAO,SAAaunH,EAAWz9G,GAG7B,MAFArM,MAAK6tE,OAAOi8C,GAAaz9G,EACzBrM,KAAK0pH,YAAY7kH,KAAKilH,GACfz9G,MAGJgvG,IAGTz7G,GAAiB,QAAIy7G,GAIjB,SAAUx7G,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAC3BquC,EAAUruC,EAAoB,IAC9BsuC,EAAWtuC,EAAoB,IAE/B+pH,EAAO/pH,EAAoB,KAAc,QACzCgqH,EAAQhqH,EAAoB,KAAc,QAE1Co8G,EAAe,WACjB,QAASA,GAAa3rG,EAAMyqG,EAAQvtC,EAAQkuC,GAC1C,GAAI9hB,GAAQj6F,IAqIZ,KAnIA,EAAI2yF,EAA0B,SAAG3yF,KAAMs8G,GAEvCt8G,KAAK2Q,KAAOA,EACZ3Q,KAAKo7G,OAASA,EACdp7G,KAAK6tE,OAASA,EACd7tE,KAAK+7G,aAAeA,EAGpB/7G,KAAK2Q,KAAKoqG,UAAUC,WAAah7G,KAAKgY,OAAO4/C,KAAK53D,MAElDA,KAAKmqH,gBACHx5F,IAAK,SAAapoB,EAAOspC,GACvBooD,EAAMtpE,IAAIkhB,EAAOM,QAEnBC,OAAQ,SAAgB7pC,EAAOspC,GAC7BooD,EAAM7nD,OAAOP,EAAOM,MAAON,EAAOnd,OAEpCkf,OAAQ,SAAgBrrC,EAAOspC,GAC7BooD,EAAMrmD,OAAO/B,EAAOM,SAIxBnyC,KAAKgO,WACLhO,KAAKguE,gBACH/Y,YAAa,EACbm1D,oBAAqB,EACrBC,gBAAaxmH,GACbqG,OACEyB,OAAQ,UACRD,WAAY,UACZE,WACED,OAAQ,UACRD,WAAY,WAEdG,OACEF,OAAQ,UACRD,WAAY,YAGhBs7G,OACE/xF,GAAG,EACHpG,GAAG,GAELs1B,MACEj6C,MAAO,UACPmmC,KAAM,GACNi6E,KAAM,QACN5+G,WAAY,OACZ0uC,YAAa,EACbmwE,YAAa,UACbzqC,MAAO,SACP0qC,QAAS,EACTC,OAAO,EACPC,MACEC,IAAK,QAEPC,UACED,IAAK,eAEPE,MACEF,IAAK,UAEPG,MACEH,IAAK,GACLt6E,KAAM,GACNi6E,KAAM,YACNE,QAAS,IAGb/4C,UAAO5tE,GACPu1E,QAAQ,EACRw8B,MACE0U,KAAM,cACN91F,SAAM3wB,GACNwsC,KAAM,GACNnmC,MAAO,WAETq7G,UAAO1hH,GACPysC,UAAOzsC,GACPknH,oBAAoB,EACpBC,UAAOnnH,GACPogD,QACE39C,IAAK,EACLF,MAAO,EACPu4C,OAAQ,EACRz4C,KAAM,GAER+kH,KAAM,EACNhuB,SAAS,EACTiuB,SACE9oH,IAAK,GACLC,IAAK,GACLiuC,OACEpiC,SAAS,EACT9L,IAAK,GACLC,IAAK,GACL8oH,WAAY,GACZC,cAAe,GAEjBC,sBAAuB,SAA+BjpH,EAAKC,EAAKC,EAAOC,GACrE,GAAIF,IAAQD,EACV,MAAO,EAEP,IAAII,GAAQ,GAAKH,EAAMD,EACvB,OAAOK,MAAKJ,IAAI,GAAIE,EAAQH,GAAOI,KAIzC8oH,QACEp9G,SAAS,EACThE,MAAO,kBACPmmC,KAAM,GACNpb,EAAG,EACHpG,EAAG,GAEL22F,MAAO,UACP+F,iBACEC,cAAc,EACd9xE,aAAc,EACd2xD,eAAe,EACfogB,cAAc,EACdC,oBAAoB,GAEtBr7E,KAAM,GACNstC,UAAO95E,GACPtB,UAAOsB,GACPoxB,MAAGpxB,GACHgrB,MAAGhrB,IAID7D,KAAKguE,eAAei9C,MAAQ,EAC9B,KAAM,oFAGRtqH,GAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAE/BhuE,KAAKm7G,qBA0XP,OAvXA,EAAItoB,EAAuB,SAAGypB,IAC5B/0G,IAAK,qBACLhF,MAAO,WACL,GAAIg5F,GAASv7F,IAGbA,MAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgBvxC,KAAK21C,QAAQiiB,KAAK53D,OACvDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAWvxC,KAAK21C,QAAQiiB,KAAK53D,OAClDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,WAC9B5wC,EAAKuG,QAAQq0F,EAAO4uB,eAAgB,SAAUhjH,EAAUoB,GAClDgzF,EAAO5qF,KAAK+jB,KAAKulF,OAAO1e,EAAO5qF,KAAK+jB,KAAKulF,MAAMvoE,IAAInpC,EAAOpB,WAEzDo0F,GAAO5qF,KAAKoqG,UAAUC,iBACtBzf,GAAO4uB,eAAex5F,UACtB4qE,GAAO4uB,eAAe/3E,aACtBmpD,GAAO4uB,eAAev2E,aACtB2nD,GAAO4uB,oBAIlB5iH,IAAK,aACLhF,MAAO,SAAoByL,GAEzB,GADAhO,KAAK2rH,YAAc39G,MACHnK,KAAZmK,EAAuB,CAIzB,GAHAi8G,EAAK2B,aAAa5rH,KAAKgO,QAASA,OAGVnK,KAAlBmK,EAAQw3G,MACV,IAAK,GAAIxI,KAAUh9G,MAAK2Q,KAAKspG,MACvBj6G,KAAK2Q,KAAKspG,MAAM32G,eAAe05G,IACjCh9G,KAAK2Q,KAAKspG,MAAM+C,GAAQ6O,aAM9B,QAAqBhoH,KAAjBmK,EAAQm2C,KAAoB,CAC9B+lE,EAAM0B,aAAa5rH,KAAKgO,QAAQm2C,KAAMn2C,EACtC,KAAK,GAAI0/B,KAAW1tC,MAAK2Q,KAAKspG,MACxBj6G,KAAK2Q,KAAKspG,MAAM32G,eAAeoqC,KACjC1tC,KAAK2Q,KAAKspG,MAAMvsE,GAASo+E,oBACzB9rH,KAAK2Q,KAAKspG,MAAMvsE,GAASq+E,gBAM/B,OAAqBloH,KAAjBmK,EAAQqiC,KACV,IAAK,GAAI27E,KAAYhsH,MAAK2Q,KAAKspG,MACzBj6G,KAAK2Q,KAAKspG,MAAM32G,eAAe0oH,IACjChsH,KAAK2Q,KAAKspG,MAAM+R,GAAUD,mBAMTloH,KAAnBmK,EAAQorE,YAA4Cv1E,KAApBmK,EAAQivF,SAC1Cj9F,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,oBAY7BxkD,IAAK,UACLhF,MAAO,SAAiB03G,GACtB,GAAIgS,GAAYtoH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAE3EuoH,EAAelsH,KAAK2Q,KAAK+jB,KAAKulF,KAElC,IAAIA,YAAiB1rE,IAAW0rE,YAAiBzrE,GAC/CxuC,KAAK2Q,KAAK+jB,KAAKulF,MAAQA,MAClB,IAAI91G,MAAMC,QAAQ61G,GACvBj6G,KAAK2Q,KAAK+jB,KAAKulF,MAAQ,GAAI1rE,GAC3BvuC,KAAK2Q,KAAK+jB,KAAKulF,MAAMtpF,IAAIspF,OACpB,CAAA,GAAKA,EAGV,KAAM,IAAI11G,WAAU,4BAFpBvE,MAAK2Q,KAAK+jB,KAAKulF,MAAQ,GAAI1rE,GAe7B,GAVI29E,GAEFvrH,EAAKuG,QAAQlH,KAAKmqH,eAAgB,SAAUhjH,EAAUoB,GACpD2jH,EAAax6E,IAAInpC,EAAOpB,KAK5BnH,KAAK2Q,KAAKspG,SAENj6G,KAAK2Q,KAAK+jB,KAAKulF,MAAO,CAExB,GAAIhoE,GAAKjyC,IACTW,GAAKuG,QAAQlH,KAAKmqH,eAAgB,SAAUhjH,EAAUoB,GACpD0pC,EAAGthC,KAAK+jB,KAAKulF,MAAM1oE,GAAGhpC,EAAOpB,IAI/B,IAAIwrC,GAAM3yC,KAAK2Q,KAAK+jB,KAAKulF,MAAM5mE,QAC/BrzC,MAAK2wB,IAAIgiB,GAAK,IAGE,IAAds5E,GACFjsH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAW3BxkD,IAAK,MACLhF,MAAO,SAAaowC,GAKlB,IAAK,GAJDs5E,GAAYtoH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAE3EtD,MAAK,GACL8rH,KACKpoH,EAAI,EAAGA,EAAI4uC,EAAI/uC,OAAQG,IAAK,CACnC1D,EAAKsyC,EAAI5uC,EACT,IAAIo1D,GAAan5D,KAAK2Q,KAAK+jB,KAAKulF,MAAMxiG,IAAIpX,GACtCotC,EAAOztC,KAAKgY,OAAOmhD,EACvBgzD,GAAStnH,KAAK4oC,GACdztC,KAAK2Q,KAAKspG,MAAM55G,GAAMotC,EAGxBztC,KAAK+7G,aAAaqQ,kBAAkBD,IAElB,IAAdF,GACFjsH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAW3BxkD,IAAK,SACLhF,MAAO,SAAgBowC,EAAK05E,GAG1B,IAAK,GAFDpS,GAAQj6G,KAAK2Q,KAAKspG,MAClBqS,GAAc,EACTvoH,EAAI,EAAGA,EAAI4uC,EAAI/uC,OAAQG,IAAK,CACnC,GAAI1D,GAAKsyC,EAAI5uC,GACT0pC,EAAOwsE,EAAM55G,GACbq0B,EAAO23F,EAAYtoH,OACVF,KAAT4pC,EAEF6+E,EAAc7+E,EAAKyD,WAAWxc,IAE9B43F,GAAc,EAEd7+E,EAAOztC,KAAKgY,OAAO0c,GACnBulF,EAAM55G,GAAMotC,IAGI,IAAhB6+E,EACFtsH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBAEvB/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAW3BxkD,IAAK,SACLhF,MAAO,SAAgBowC,GAGrB,IAAK,GAFDsnE,GAAQj6G,KAAK2Q,KAAKspG,MAEbl2G,EAAI,EAAGA,EAAI4uC,EAAI/uC,OAAQG,IAAK,OAE5Bk2G,GADEtnE,EAAI5uC,IAIf/D,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAUzBxkD,IAAK,SACLhF,MAAO,SAAgB42D,GAGrB,MAAO,KAFgBx1D,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAKsmH,GAE/D9wD,EAAYn5D,KAAK2Q,KAAM3Q,KAAKo7G,OAAQp7G,KAAK6tE,OAAQ7tE,KAAKgO,QAAShO,KAAKguE,eAAgBhuE,KAAK2rH,gBAGvHpkH,IAAK,UACLhF,MAAO,WACL,GAAIgqH,GAAiB5oH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAEhFs2G,EAAQj6G,KAAK2Q,KAAKspG,KACtB,KAAK,GAAI+C,KAAU/C,GAAO,CACxB,GAAIxsE,OAAO5pC,EACPo2G,GAAM32G,eAAe05G,KACvBvvE,EAAOwsE,EAAM+C,GAEf,IAAItoF,GAAO10B,KAAK2Q,KAAK+jB,KAAKulF,MAAMxiG,IAAIulG,OACvBn5G,KAAT4pC,OAA+B5pC,KAAT6wB,KACD,IAAnB63F,GACF9+E,EAAKyD,YAAajc,EAAG,KAAMpG,EAAG,OAEhC4e,EAAKyD,YAAa81E,OAAO,IACzBv5E,EAAKyD,WAAWxc,QAYtBntB,IAAK,eACLhF,MAAO,SAAsBowC,GAC3B,GAAI65E,KACJ,QAAY3oH,KAAR8uC,GACF,IAA2B,IAAvBxuC,MAAMC,QAAQuuC,IAChB,IAAK,GAAI5uC,GAAI,EAAGA,EAAI4uC,EAAI/uC,OAAQG,IAC9B,OAAgCF,KAA5B7D,KAAK2Q,KAAKspG,MAAMtnE,EAAI5uC,IAAmB,CACzC,GAAI0pC,GAAOztC,KAAK2Q,KAAKspG,MAAMtnE,EAAI5uC,GAC/ByoH,GAAU75E,EAAI5uC,KAAQkxB,EAAGxyB,KAAKm6B,MAAM6Q,EAAKxY,GAAIpG,EAAGpsB,KAAKm6B,MAAM6Q,EAAK5e,SAIpE,QAA6BhrB,KAAzB7D,KAAK2Q,KAAKspG,MAAMtnE,GAAoB,CACtC,GAAI85E,GAAQzsH,KAAK2Q,KAAKspG,MAAMtnE,EAC5B65E,GAAU75E,IAAS1d,EAAGxyB,KAAKm6B,MAAM6vF,EAAMx3F,GAAIpG,EAAGpsB,KAAKm6B,MAAM6vF,EAAM59F,SAInE,KAAK,GAAIjc,GAAK,EAAGA,EAAK5S,KAAK2Q,KAAKupG,YAAYt2G,OAAQgP,IAAM,CACxD,GAAI85G,GAAS1sH,KAAK2Q,KAAKspG,MAAMj6G,KAAK2Q,KAAKupG,YAAYtnG,GACnD45G,GAAUxsH,KAAK2Q,KAAKupG,YAAYtnG,KAASqiB,EAAGxyB,KAAKm6B,MAAM8vF,EAAOz3F,GAAIpG,EAAGpsB,KAAKm6B,MAAM8vF,EAAO79F,IAG3F,MAAO29F,MAQTjlH,IAAK,iBACLhF,MAAO,WAEL,GAAIiqH,MACA56C,EAAU5xE,KAAK2Q,KAAK+jB,KAAKulF,MAAM3mE,YAEnC,KAAK,GAAI0pE,KAAUprC,GAAQp1C,MACzB,GAAIo1C,EAAQp1C,MAAMl5B,eAAe05G,GAAS,CACxC,GAAIvvE,GAAOztC,KAAK2Q,KAAKspG,MAAM+C,EACvBprC,GAAQp1C,MAAMwgF,GAAQ/nF,GAAKxyB,KAAKm6B,MAAM6Q,EAAKxY,IAAM28C,EAAQp1C,MAAMwgF,GAAQnuF,GAAKpsB,KAAKm6B,MAAM6Q,EAAK5e,IAC9F29F,EAAU3nH,MAAOxE,GAAIotC,EAAKptC,GAAI40B,EAAGxyB,KAAKm6B,MAAM6Q,EAAKxY,GAAIpG,EAAGpsB,KAAKm6B,MAAM6Q,EAAK5e,KAI9E+iD,EAAQx/B,OAAOo6E,MAUjBjlH,IAAK,iBACLhF,MAAO,SAAwBy6G,GAC7B,OAAgCn5G,KAA5B7D,KAAK2Q,KAAKspG,MAAM+C,GAClB,MAAOh9G,MAAK2Q,KAAKspG,MAAM+C,GAAQwI,MAAMmH,eAazCplH,IAAK,oBACLhF,MAAO,SAA2By6G,EAAQl9E,GACxC,GAAI8sF,KACJ,QAAgC/oH,KAA5B7D,KAAK2Q,KAAKspG,MAAM+C,GAGlB,IAAK,GAFDvvE,GAAOztC,KAAK2Q,KAAKspG,MAAM+C,GACvB6P,KACK9oH,EAAI,EAAGA,EAAI0pC,EAAK0sE,MAAMv2G,OAAQG,IAAK,CAC1C,GAAI27G,GAAOjyE,EAAK0sE,MAAMp2G,EACJ,QAAd+7B,GAAsB4/E,EAAKoN,MAAQr/E,EAAKptC,OAEbwD,KAAzBgpH,EAAQnN,EAAKqN,UACfH,EAAS/nH,KAAK66G,EAAKqN,QACnBF,EAAQnN,EAAKqN,SAAU,GAEF,SAAdjtF,GAAwB4/E,EAAKqN,QAAUt/E,EAAKptC,QAE1BwD,KAAvBgpH,EAAQnN,EAAKoN,QACfF,EAAS/nH,KAAK66G,EAAKoN,MACnBD,EAAQnN,EAAKoN,OAAQ,GAK7B,MAAOF,MAUTrlH,IAAK,oBACLhF,MAAO,SAA2By6G,GAChC,GAAIgQ,KACJ,QAAgCnpH,KAA5B7D,KAAK2Q,KAAKspG,MAAM+C,GAElB,IAAK,GADDvvE,GAAOztC,KAAK2Q,KAAKspG,MAAM+C,GAClBj5G,EAAI,EAAGA,EAAI0pC,EAAK0sE,MAAMv2G,OAAQG,IACrCipH,EAASnoH,KAAK4oC,EAAK0sE,MAAMp2G,GAAG1D,QAG9BmlB,SAAQotC,IAAI,mEAAoEoqD,EAElF,OAAOgQ,MAWTzlH,IAAK,WACLhF,MAAO,SAAkBy6G,EAAQ/nF,EAAGpG,GAClC,GAAI8sE,GAAS37F,SAEmB6D,KAA5B7D,KAAK2Q,KAAKspG,MAAM+C,IAClBh9G,KAAK2Q,KAAKspG,MAAM+C,GAAQ/nF,EAAIpzB,OAAOozB,GACnCj1B,KAAK2Q,KAAKspG,MAAM+C,GAAQnuF,EAAIhtB,OAAOgtB,GACnC0mB,WAAW,WACTomD,EAAOhrF,KAAKk+D,QAAQ9iB,KAAK,oBACxB,IAEHvmC,QAAQotC,IAAI,0DAA2DoqD,OAItEV,IAGT18G,GAAiB,QAAI08G,GAIjB,SAAUz8G,EAAQD,EAASM,GAoB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIhB,GAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCmxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAE3BgqH,EAAQhqH,EAAoB,KAAc,QAE1C+sH,EAAM/sH,EAAoB,KAAc,QACxCgtH,EAAShtH,EAAoB,KAAc,QAC3CitH,EAAgBjtH,EAAoB,KAAc,QAClDktH,EAAWltH,EAAoB,KAAc,QAC7CmtH,EAAUntH,EAAoB,KAAc,QAC5CotH,EAAMptH,EAAoB,KAAc,QACxCqtH,EAAUrtH,EAAoB,KAAc,QAC5CstH,EAAOttH,EAAoB,KAAc,QACzC8oH,EAAQ9oH,EAAoB,KAAc,QAC1CutH,EAASvtH,EAAoB,KAAc,QAC3CwtH,EAAOxtH,EAAoB,KAAc,QACzCytH,EAAOztH,EAAoB,KAAc,QACzC0tH,EAAW1tH,EAAoB,KAAc,QAC7C2tH,EAAe3tH,EAAoB,KAAc,QAGjDw8G,GAFYx8G,EAAoB,KAAc,QAEnCA,EAAoB,MAC/B0wE,EAAa8rC,EAAS9rC,WA6BtBq5C,EAAO,WACT,QAASA,GAAKj8G,EAAS2C,EAAMm9G,EAAW1gB,EAAWn/F,EAAe+/D,EAAgB29C,IAChF,EAAIh5B,EAA0B,SAAG3yF,KAAMiqH,GAEvCjqH,KAAKgO,QAAUrN,EAAK8M,aAAaQ,GACjCjO,KAAKiO,cAAgBA,EACrBjO,KAAKguE,eAAiBA,EACtBhuE,KAAK2rH,YAAcA,EACnB3rH,KAAK2Q,KAAOA,EAEZ3Q,KAAKm6G,SAGLn6G,KAAKK,OAAKwD,GACV7D,KAAK8tH,UAAYA,EACjB9tH,KAAKotG,UAAYA,EAGjBptG,KAAKi1B,MAAIpxB,GACT7D,KAAK6uB,MAAIhrB,GACT7D,KAAK+tH,SAAW/tH,KAAKgO,QAAQqiC,KAC7BrwC,KAAKguH,aAAehuH,KAAKgO,QAAQm2C,KAAK9T,KACtCrwC,KAAKiuH,oBAAqB,EAC1BjuH,KAAK+lF,UAAW,EAChB/lF,KAAK6L,OAAQ,EAEb7L,KAAKkuH,YAAc,GAAIhE,GAAMlqH,KAAK2Q,KAAM3Q,KAAKgO,SAAS,GACtDhO,KAAKkxC,WAAWljC,GA+gBlB,OAtgBA,EAAI6kF,EAAuB,SAAGo3B,IAC5B1iH,IAAK,aACLhF,MAAO,SAAoBm9G,IACS,IAA9B1/G,KAAKm6G,MAAMv1G,QAAQ86G,IACrB1/G,KAAKm6G,MAAMt1G,KAAK66G,MAUpBn4G,IAAK,aACLhF,MAAO,SAAoBm9G,GACzB,GAAI3sG,GAAQ/S,KAAKm6G,MAAMv1G,QAAQ86G,IACjB,GAAV3sG,GACF/S,KAAKm6G,MAAMpiF,OAAOhlB,EAAO,MAW7BxL,IAAK,aACLhF,MAAO,SAAoByL,GACzB,GAAImgH,GAAenuH,KAAKgO,QAAQw3G,KAChC,IAAKx3G,EAAL,CASA,OAJmBnK,KAAfmK,EAAQ3N,KACVL,KAAKK,GAAK2N,EAAQ3N,QAGJwD,KAAZ7D,KAAKK,GACP,KAAM,sBA6BR,IA1BA4pH,EAAKmE,UAAUpgH,EAAShO,KAAKK,QAIXwD,KAAdmK,EAAQinB,IACQ,OAAdjnB,EAAQinB,GACVj1B,KAAKi1B,MAAIpxB,GAAU7D,KAAKiuH,oBAAqB,IAE7CjuH,KAAKi1B,EAAIjrB,SAASgE,EAAQinB,GAAGj1B,KAAKiuH,oBAAqB,QAGzCpqH,KAAdmK,EAAQ6gB,IACQ,OAAd7gB,EAAQ6gB,GACV7uB,KAAK6uB,MAAIhrB,GAAU7D,KAAKiuH,oBAAqB,IAE7CjuH,KAAK6uB,EAAI7kB,SAASgE,EAAQ6gB,GAAG7uB,KAAKiuH,oBAAqB,QAGtCpqH,KAAjBmK,EAAQqiC,OACVrwC,KAAK+tH,SAAW//G,EAAQqiC,UAEJxsC,KAAlBmK,EAAQzL,QACVyL,EAAQzL,MAAQk5B,WAAWztB,EAAQzL,QAIR,gBAAlByL,GAAQyjE,OAA+C,gBAAlBzjE,GAAQyjE,OAAuC,IAAjBzjE,EAAQyjE,MAAa,CACjG,GAAI48C,GAAWruH,KAAKotG,UAAU31F,IAAIzJ,EAAQyjE,MAC1C9wE,GAAK+D,WAAW1E,KAAKgO,QAASqgH,GAE9BruH,KAAKgO,QAAQ9D,MAAQvJ,EAAKiK,WAAW5K,KAAKgO,QAAQ9D,OAapD,MATA+/G,GAAK2B,aAAa5rH,KAAKgO,QAASA,GAAS,EAAMhO,KAAKiO,eAEpDjO,KAAKsuH,SAAStgH,GAEdhO,KAAKuuH,eACLvuH,KAAK8rH,kBAAkB99G,GACvBhO,KAAK6rH,YAAYsC,GACjBnuH,KAAKkuH,YAAYM,eAAexuH,KAAK2rH,YAAa39G,EAAShO,KAAKguE,oBAEzCnqE,KAAnBmK,EAAQorE,YAA4Cv1E,KAApBmK,EAAQivF,YAgB9C11F,IAAK,eACLhF,MAAO,WAEL,GAA2B,kBAAvBvC,KAAKgO,QAAQw3G,OAAoD,UAAvBxlH,KAAKgO,QAAQw3G,MAA3D,CAIA,OAA2B3hH,KAAvB7D,KAAKgO,QAAQu3G,MACf,KAAM,+CAAiDvlH,KAAKgO,QAAQw3G,MAAQ,GAG9E,QAAuB3hH,KAAnB7D,KAAK8tH,UACP,KAAM,oCAGR,IAAkC,gBAAvB9tH,MAAKgO,QAAQu3G,MACtBvlH,KAAKyuH,SAAWzuH,KAAK8tH,UAAUY,KAAK1uH,KAAKgO,QAAQu3G,MAAOvlH,KAAKgO,QAAQq8G,YAAarqH,KAAKK,QAClF,CACL,OAAsCwD,KAAlC7D,KAAKgO,QAAQu3G,MAAMoJ,WACrB,KAAM,8BAGR3uH,MAAKyuH,SAAWzuH,KAAK8tH,UAAUY,KAAK1uH,KAAKgO,QAAQu3G,MAAMoJ,WAAY3uH,KAAKgO,QAAQq8G,YAAarqH,KAAKK,QAE9DwD,KAAhC7D,KAAKgO,QAAQu3G,MAAMx/B,SACrB/lF,KAAK4uH,YAAc5uH,KAAK8tH,UAAUY,KAAK1uH,KAAKgO,QAAQu3G,MAAMx/B,SAAU/lF,KAAKgO,QAAQq8G,YAAarqH,KAAKK,IAEnGL,KAAK4uH,gBAAc/qH,QAezB0D,IAAK,WACLhF,MAAO,SAAkByL,GACvBhO,KAAK6uH,SAAU,CAEf,IAAI59G,IAAQjD,EAAShO,KAAKgO,QAAShO,KAAKguE,gBAEpC8gD,EAASnuH,EAAKqQ,QAAQC,EAAM,SAChC,IAAsB,iBAAX69G,GACT9uH,KAAK6uH,QAAUC,MACV,IAAyF,gBAAlE,KAAXA,EAAyB,aAAc,EAAIttH,EAAkB,SAAGstH,IAAuB,CACxG,GAAIC,GAAapuH,EAAKqQ,QAAQC,GAAO,SAAU,QACrB,kBAAf89G,IAAkD,kBAAfA,KAC5C/uH,KAAK6uH,QAAUE,OAKrBxnH,IAAK,sBACLhF,MAAO,WACL,GAAI2S,IACFhL,MAAOlK,KAAKgO,QAAQ9D,MAAMwB,WAC1BupD,YAAaj1D,KAAKgO,QAAQinD,YAC1B/M,YAAaloD,KAAKgO,QAAQ9D,MAAMyB,OAChC0kC,KAAMrwC,KAAKgO,QAAQqiC,KACnBm7E,aAAcxrH,KAAKgO,QAAQu9G,gBAAgBC,aAC3C9xE,aAAc15C,KAAKgO,QAAQu9G,gBAAgB7xE,aAC3C4xE,OAAQtrH,KAAKgO,QAAQs9G,OAAOp9G,QAC5B8gH,YAAahvH,KAAKgO,QAAQs9G,OAAOphH,MACjC+kH,WAAYjvH,KAAKgO,QAAQs9G,OAAOj7E,KAChC6+E,QAASlvH,KAAKgO,QAAQs9G,OAAOr2F,EAC7Bk6F,QAASnvH,KAAKgO,QAAQs9G,OAAOz8F,EAyB/B,OAvBI7uB,MAAK+lF,UAAY/lF,KAAK6L,OACH,IAAjB7L,KAAK6uH,QACH7uH,KAAK+lF,UACP7wE,EAAO+/C,aAAe,EACtB//C,EAAOhL,MAAQlK,KAAKgO,QAAQ9D,MAAM0B,UAAUF,WAC5CwJ,EAAOgzC,YAAcloD,KAAKgO,QAAQ9D,MAAM0B,UAAUD,OAClDuJ,EAAOo2G,OAAStrH,KAAKgO,QAAQs9G,OAAOp9G,SAC3BlO,KAAK6L,QACdqJ,EAAOhL,MAAQlK,KAAKgO,QAAQ9D,MAAM2B,MAAMH,WACxCwJ,EAAOgzC,YAAcloD,KAAKgO,QAAQ9D,MAAM2B,MAAMF,OAC9CuJ,EAAOo2G,OAAStrH,KAAKgO,QAAQs9G,OAAOp9G,SAEL,kBAAjBlO,MAAK6uH,UACrB7uH,KAAK6uH,QAAQ35G,EAAQlV,KAAKgO,QAAQ3N,GAAIL,KAAK+lF,SAAU/lF,KAAK6L,QACpC,IAAlBqJ,EAAOo2G,SACLp2G,EAAO85G,cAAgBhvH,KAAKgO,QAAQs9G,OAAOphH,OAASgL,EAAO+5G,aAAejvH,KAAKgO,QAAQs9G,OAAOj7E,MAAQn7B,EAAOg6G,UAAYlvH,KAAKgO,QAAQs9G,OAAOr2F,GAAK/f,EAAOi6G,UAAYnvH,KAAKgO,QAAQs9G,OAAOz8F,IAC3L3Z,EAAOo2G,QAAS,KAKtBp2G,EAAOo2G,OAAStrH,KAAKgO,QAAQs9G,OAAOp9G,QAE/BgH,KAGT3N,IAAK,oBACLhF,MAAO,SAA2ByL,OACLnK,KAAvB7D,KAAKgO,QAAQsiC,OAA8C,OAAvBtwC,KAAKgO,QAAQsiC,QACnDtwC,KAAKgO,QAAQsiC,MAAQ,IAEvBtwC,KAAKkuH,YAAYh9E,WAAWlxC,KAAKgO,SAAS,OACRnK,KAA9B7D,KAAKkuH,YAAYH,WACnB/tH,KAAKguH,aAAehuH,KAAKkuH,YAAYH,UAEvC/tH,KAAKkuH,YAAYkB,UAAUpvH,KAAK2rH,YAAa39G,EAAShO,KAAKguE,gBAC3DhuE,KAAKkuH,YAAYI,SAAStuH,KAAK2rH,YAAa39G,EAAShO,KAAKguE,mBAG5DzmE,IAAK,cACLhF,MAAO,SAAqB4rH,GAC1B,GAAIA,IAAiBnuH,KAAKgO,QAAQw3G,OAASxlH,KAAKwlH,MAC9CxlH,KAAKwlH,MAAMt0E,WAAWlxC,KAAKgO,QAAShO,KAAKyuH,SAAUzuH,KAAK4uH,iBAGxD,QAAQ5uH,KAAKgO,QAAQw3G,OACnB,IAAK,MACHxlH,KAAKwlH,MAAQ,GAAIyH,GAAIjtH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACnD,MACF,KAAK,SACHluH,KAAKwlH,MAAQ,GAAI0H,GAAOltH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACtD,MACF,KAAK,gBACHluH,KAAKwlH,MAAQ,GAAI2H,GAAcntH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YAAaluH,KAAKyuH,SAAUzuH,KAAK4uH,YAC9F,MACF,KAAK,WACH5uH,KAAKwlH,MAAQ,GAAI4H,GAASptH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACxD,MACF,KAAK,UACHluH,KAAKwlH,MAAQ,GAAI6H,GAAQrtH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACvD,MACF,KAAK,MACHluH,KAAKwlH,MAAQ,GAAI8H,GAAIttH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACnD,MACF,KAAK,UACHluH,KAAKwlH,MAAQ,GAAI+H,GAAQvtH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACvD,MACF,KAAK,OACHluH,KAAKwlH,MAAQ,GAAIgI,GAAKxtH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACpD,MACF,KAAK,QACHluH,KAAKwlH,MAAQ,GAAIwD,GAAMhpH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YAAaluH,KAAKyuH,SAAUzuH,KAAK4uH,YACtF,MACF,KAAK,SACH5uH,KAAKwlH,MAAQ,GAAIiI,GAAOztH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACtD,MACF,KAAK,OACHluH,KAAKwlH,MAAQ,GAAIkI,GAAK1tH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACpD,MACF,KAAK,OACHluH,KAAKwlH,MAAQ,GAAImI,GAAK3tH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACpD,MACF,KAAK,WACHluH,KAAKwlH,MAAQ,GAAIoI,GAAS5tH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YACxD,MACF,KAAK,eACHluH,KAAKwlH,MAAQ,GAAIqI,GAAa7tH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,YAC5D,MACF,SACEluH,KAAKwlH,MAAQ,GAAI+H,GAAQvtH,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,aAI7DluH,KAAK+rH,kBAQPxkH,IAAK,SACLhF,MAAO,WACLvC,KAAK+lF,UAAW,EAChB/lF,KAAK+rH,kBAQPxkH,IAAK,WACLhF,MAAO,WACLvC,KAAK+lF,UAAW,EAChB/lF,KAAK+rH,kBAQPxkH,IAAK,eACLhF,MAAO,WACLvC,KAAKwlH,MAAM6J,eAAgB,KAU7B9nH,IAAK,WACLhF,MAAO,WACL,MAAOvC,MAAKgO,QAAQ2vE,SAWtBp2E,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKwlH,MAAM8J,iBAAiBh6G,EAAK+nD,MAS1C91D,IAAK,UACLhF,MAAO,WACL,MAAOvC,MAAKgO,QAAQg5G,MAAM/xF,GAAKj1B,KAAKgO,QAAQg5G,MAAMn4F,KASpDtnB,IAAK,aACLhF,MAAO,WACL,MAAOvC,MAAK+lF,YASdx+E,IAAK,WACLhF,MAAO,WACL,MAAOvC,MAAKgO,QAAQzL,SAWtBgF,IAAK,gBACLhF,MAAO,SAAuBH,EAAKC,EAAKC,GACtC,OAA2BuB,KAAvB7D,KAAKgO,QAAQzL,MAAqB,CACpC,GAAIC,GAAQxC,KAAKgO,QAAQk9G,QAAQG,sBAAsBjpH,EAAKC,EAAKC,EAAOtC,KAAKgO,QAAQzL,OACjFgtH,EAAWvvH,KAAKgO,QAAQk9G,QAAQ7oH,IAAMrC,KAAKgO,QAAQk9G,QAAQ9oH,GAC/D,KAA2C,IAAvCpC,KAAKgO,QAAQk9G,QAAQ56E,MAAMpiC,QAAkB,CAC/C,GAAIshH,GAAWxvH,KAAKgO,QAAQk9G,QAAQ56E,MAAMjuC,IAAMrC,KAAKgO,QAAQk9G,QAAQ56E,MAAMluC,GAC3EpC,MAAKgO,QAAQm2C,KAAK9T,KAAOrwC,KAAKgO,QAAQk9G,QAAQ56E,MAAMluC,IAAMI,EAAQgtH,EAEpExvH,KAAKgO,QAAQqiC,KAAOrwC,KAAKgO,QAAQk9G,QAAQ9oH,IAAMI,EAAQ+sH,MAEvDvvH,MAAKgO,QAAQqiC,KAAOrwC,KAAK+tH,SACzB/tH,KAAKgO,QAAQm2C,KAAK9T,KAAOrwC,KAAKguH,YAGhChuH,MAAK8rH,uBAUPvkH,IAAK,OACLhF,MAAO,SAAc+S,GACnB,GAAIJ,GAASlV,KAAKyvH,qBAClBzvH,MAAKwlH,MAAMxoB,KAAK1nF,EAAKtV,KAAKi1B,EAAGj1B,KAAK6uB,EAAG7uB,KAAK+lF,SAAU/lF,KAAK6L,MAAOqJ,MAQlE3N,IAAK,oBACLhF,MAAO,SAA2B+S,GAChCtV,KAAKwlH,MAAMkK,kBAAkB1vH,KAAKi1B,EAAGj1B,KAAK6uB,EAAGvZ,MAU/C/N,IAAK,SACLhF,MAAO,SAAgB+S;kBACrB,GAAIJ,GAASlV,KAAKyvH,qBAClBzvH,MAAKwlH,MAAMmK,OAAOr6G,EAAKtV,KAAK+lF,SAAU/lF,KAAK6L,MAAOqJ,MAUpD3N,IAAK,oBACLhF,MAAO,SAA2BzB,GAChC,MAAOd,MAAKwlH,MAAMt/G,KAAOpF,EAAIsF,OAASpG,KAAKwlH,MAAMt/G,KAAOlG,KAAKwlH,MAAMp1G,MAAQtP,EAAIoF,MAAQlG,KAAKwlH,MAAMl/G,IAAMxF,EAAI69C,QAAU3+C,KAAKwlH,MAAMl/G,IAAMtG,KAAKwlH,MAAMn1G,OAASvP,EAAIwF,OAUjKiB,IAAK,+BACLhF,MAAO,SAAsCzB,GAC3C,MAAOd,MAAKwlH,MAAMmH,YAAYzmH,KAAOpF,EAAIsF,OAASpG,KAAKwlH,MAAMmH,YAAYvmH,MAAQtF,EAAIoF,MAAQlG,KAAKwlH,MAAMmH,YAAYrmH,IAAMxF,EAAI69C,QAAU3+C,KAAKwlH,MAAMmH,YAAYhuE,OAAS79C,EAAIwF,SAU9KiB,IAAK,eACLhF,MAAO,SAAsBqtH,EAAeC,GAC1C,GAAInsH,GAAgBC,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAC/EsK,EAAgBtK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MAE/E2J,GAAU,QAAS,OAAQ,QAAS,SASxC,IARA3M,EAAKgE,uBAAuB2I,EAAQsiH,EAAeC,EAAYnsH,GAE/DumH,EAAKmE,UAAUyB,GAGflvH,EAAKmN,aAAa8hH,EAAeC,EAAY,SAAUnsH,EAAeuK,OAG7CpK,KAArBgsH,EAAW3lH,OAA4C,OAArB2lH,EAAW3lH,MAAgB,CAC/D,GAAI4lH,GAAcnvH,EAAKiK,WAAWilH,EAAW3lH,MAC7CvJ,GAAK4C,cAAcqsH,EAAc1lH,MAAO4lH,QACb,IAAlBpsH,GAA+C,OAArBmsH,EAAW3lH,QAC9C0lH,EAAc1lH,MAAQvJ,EAAK8M,aAAaQ,EAAc/D,YAI/BrG,KAArBgsH,EAAW7I,OAA4C,OAArB6I,EAAW7I,QACf,iBAArB6I,GAAW7I,OACpB4I,EAAc5I,MAAM/xF,EAAI46F,EAAW7I,MACnC4I,EAAc5I,MAAMn4F,EAAIghG,EAAW7I,YAERnjH,KAAvBgsH,EAAW7I,MAAM/xF,GAAiD,iBAAvB46F,GAAW7I,MAAM/xF,IAC9D26F,EAAc5I,MAAM/xF,EAAI46F,EAAW7I,MAAM/xF,OAEhBpxB,KAAvBgsH,EAAW7I,MAAMn4F,GAAiD,iBAAvBghG,GAAW7I,MAAMn4F,IAC9D+gG,EAAc5I,MAAMn4F,EAAIghG,EAAW7I,MAAMn4F,SAMvBhrB,KAApBgsH,EAAW1rE,MAA0C,OAApB0rE,EAAW1rE,KAC9C+lE,EAAM0B,aAAagE,EAAczrE,KAAM0rE,IACZ,IAAlBnsH,GAA8C,OAApBmsH,EAAW1rE,OAC9CyrE,EAAczrE,KAAOxjD,EAAK8M,aAAaQ,EAAck2C,WAI5BtgD,KAAvBgsH,EAAW3E,SACbvqH,EAAKmN,aAAa8hH,EAAc1E,QAAS2E,EAAW3E,QAAS,QAASxnH,EAAeuK,EAAci9G,YAIvG3jH,IAAK,YACLhF,MAAO,SAAmByL,EAAS3N,GACjC,OAAqBwD,KAAjBmK,EAAQi9G,MAAsBj9G,EAAQi9G,MAAQ,EAAG,CACnD,GAAI8E,GAAQ,OACDlsH,KAAPxD,IACF0vH,EAAQ,gBAAkB1vH,GAE5BmlB,QAAQotC,IAAI,qCAAuCm9D,EAAQ,uBAAwBn/C,GACnF5iE,EAAQi9G,KAAO,OAIdhB,IAGTrqH,GAAiB,QAAIqqH,GAIjB,SAAUpqH,EAAQD,EAASM,GA4B/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAxBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIytH,GAAkB9vH,EAAoB,KAEtC+vH,EAAkBpvH,EAAuBmvH,GAEzC/uH,EAAgBf,EAAoB,GAEpCgB,EAAgBL,EAAuBI,GAEvCM,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCmxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAE3BgqH,EAAQ,WACV,QAASA,GAAMv5G,EAAM3C,GACnB,GAAIkiH,GAAYvsH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,IAC/E,EAAIgvF,EAA0B,SAAG3yF,KAAMkqH,GAEvClqH,KAAK2Q,KAAOA,EAEZ3Q,KAAKmwH,aAAc,EACnBnwH,KAAK+tH,aAAWlqH,GAChB7D,KAAKowH,eACLpwH,KAAKkxC,WAAWljC,GAChBhO,KAAKqwC,MAAS/pC,IAAK,EAAGJ,KAAM,EAAGkK,MAAO,EAAGC,OAAQ,EAAGggH,MAAO,GAC3DrwH,KAAKswH,YAAcJ,EA49BrB,OAz9BA,EAAIr9B,EAAuB,SAAGq3B,IAC5B3iH,IAAK,aACLhF,MAAO,SAAoByL,GACzB,GAAItK,GAAgBC,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAEnF3D,MAAKuwH,eAAiBviH,EAItBhO,KAAKowH,YAAczvH,EAAK+D,cAAesJ,EAAQm2C,MAAM,OAE/BtgD,KAAlBmK,EAAQsiC,QACVtwC,KAAKwwH,YAAa,OAGC3sH,KAAjBmK,EAAQm2C,OACV+lE,EAAM0B,aAAa5rH,KAAKowH,YAAapiH,EAAStK,GAClB,gBAAjBsK,GAAQm2C,KACjBnkD,KAAK+tH,SAAW/tH,KAAKowH,YAAY//E,KACmB,YAA3C,EAAI7uC,EAAkB,SAAGwM,EAAQm2C,WAChBtgD,KAAtBmK,EAAQm2C,KAAK9T,OACfrwC,KAAK+tH,SAAW//G,EAAQm2C,KAAK9T,UAMrC9oC,IAAK,YAILhF,MAAO,SAAmBguH,EAAgBviH,EAASggE,GACjDhuE,KAAKowH,YAAYK,gBAAiB,EAClCzwH,KAAKowH,YAAYM,QAAU,EAC3B1wH,KAAKowH,YAAYO,QAAU,CAE3B,IAAI1/G,IAAQjD,EAASuiH,EAAgBviD,GAEjC4iD,EAAkBjwH,EAAKqQ,QAAQC,EAAM,kBACzC,IAA+B,gBAApB2/G,GACT5wH,KAAKowH,YAAYM,OAAS7uH,OAAO+uH,GACjC5wH,KAAKowH,YAAYO,OAAS9uH,OAAO+uH,OAC5B,IAA2G,gBAA3E,KAApBA,EAAkC,aAAc,EAAIpvH,EAAkB,SAAGovH,IAAgC,CAC1H,GAAIC,GAAyBlwH,EAAKqQ,QAAQC,GAAO,kBAAmB,WAC9B,iBAA3B4/G,KACT7wH,KAAKowH,YAAYM,OAAS7uH,OAAOgvH,GAEnC,IAAIC,GAAyBnwH,EAAKqQ,QAAQC,GAAO,kBAAmB,WAC9B,iBAA3B6/G,KACT9wH,KAAKowH,YAAYO,OAAS9uH,OAAOivH,IAIrC9wH,KAAKowH,YAAYW,iBAAkB,EACnC/wH,KAAKowH,YAAYY,QAAU,EAC3BhxH,KAAKowH,YAAYa,OAAS,QAE1B,IAAIC,GAAmBvwH,EAAKqQ,QAAQC,EAAM,mBAC1C,IAAgC,gBAArBigH,GACTlxH,KAAKowH,YAAYY,OAASnvH,OAAOqvH,OAC5B,IAA6G,gBAA5E,KAArBA,EAAmC,aAAc,EAAI1vH,EAAkB,SAAG0vH,IAAiC,CAC5H,GAAIC,GAA0BxwH,EAAKqQ,QAAQC,GAAO,mBAAoB,WAC/B,iBAA5BkgH,KACTnxH,KAAKowH,YAAYY,OAASnvH,OAAOsvH,GAEnC,IAAIC,GAAyBzwH,EAAKqQ,QAAQC,GAAO,mBAAoB,UAC/B,iBAA3BmgH,KACsB,QAA3BA,GAA+D,WAA3BA,IACtCpxH,KAAKowH,YAAYa,OAASG,QASlC7pH,IAAK,WACLhF,MAAO,SAAkBguH,EAAgBviH,EAASggE,GAChDhuE,KAAKowH,YAAYvB,SAAU,CAE3B,IAAI59G,IAAQjD,EAASuiH,EAAgBviD,GAEjC8gD,EAASnuH,EAAKqQ,QAAQC,EAAM,SAChC,IAAsB,iBAAX69G,GACT9uH,KAAKowH,YAAYvB,QAAUC,MACtB,IAAyF,gBAAlE,KAAXA,EAAyB,aAAc,EAAIttH,EAAkB,SAAGstH,IAAuB,CACxG,GAAIuC,GAAc1wH,EAAKqQ,QAAQC,GAAO,SAAU,SACrB,kBAAhBogH,IAAoD,kBAAhBA,KAC7CrxH,KAAKowH,YAAYvB,QAAUwC,OASjC9pH,IAAK,cACLhF,MAAO,SAAqB+uH,GAC1B,GAAIC,GAAYD,EAAUA,EAAQlrH,MAAQkrH,EAAQprH,KAAO,CACrDlG,MAAKowH,YAAYK,iBACnBzwH,KAAKowH,YAAYM,QAAUa,EAC3BvxH,KAAKowH,YAAYO,QAAUY,EAE7B,IAAIC,GAAaF,EAAUA,EAAQhrH,IAAMgrH,EAAQ3yE,OAAS,CACtD3+C,MAAKowH,YAAYW,kBACnB/wH,KAAKowH,YAAYY,QAAUQ,MAgB/BjqH,IAAK,iBACLhF,MAAO,SAAwByL,EAASi4E,EAAcjY,GACpD,GAAKhuE,KAAKowH,YAAY3F,MAAtB,CAYA,GAAIgH,GAAQ,SAAezjH,EAAS28G,GAClC,IAAK38G,IAAYA,EAAQm2C,KAAM,MAAO,KAEtC,IAAIutE,GAAM1jH,EAAQm2C,IAElB,IAAIwmE,EAAK,CACP,IAAK+G,EAAI/G,GAAM,MAAO,KACtB+G,GAAMA,EAAI/G,GAGZ,MAAO+G,IASLC,EAAO,SAAc3jH,EAAS28G,EAAKrwD,GACrC,GAAIo3D,GAAMD,EAAMzjH,EAAS28G,EAEzB,OAAI+G,IAAOA,EAAIpuH,eAAeg3D,GACrBo3D,EAAIp3D,GAGN,MAGLs3D,GAAQ,OAAQ,OAAQ,WAAY,QACpCxgH,GAA4B,EAC5BC,GAAoB,EACpBC,MAAiBzN,EAErB,KACE,IAAK,GAAqD0N,GAAjDC,GAAY,EAAItQ,EAAuB,SAAG0wH,KAAgBxgH,GAA6BG,EAAQC,EAAUC,QAAQC,MAAON,GAA4B,EAAM,CACjK,GAAIu5G,GAAMp5G,EAAMhP,MAEZsvH,EAAa7xH,KAAKowH,YAAYzF,GAC9BmH,EAAc9jD,EAAe7pB,KAAKwmE,EAEtC,IAAIT,EAAM6H,gBAAgBF,EAAYJ,EAAMzjH,EAAS28G,IACnDkH,EAAWrH,QAAUxqH,KAAKowH,YAAY5F,QACtCqH,EAAWlH,IAAMmH,EAAYnH,QACxB,CAQLkH,EAAWvH,KAAOqH,EAAK3jH,EAAS28G,EAAK,SAAWgH,EAAK1rC,EAAc0kC,EAAK,UAAoB,SAARA,EAAiBmH,EAAYxH,KAAO,OAASqH,EAAK1rC,EAAc,KAAM,SAAWjmF,KAAKowH,YAAY9F,KAGtLuH,EAAW3nH,MAAQynH,EAAK3jH,EAAS28G,EAAK,UAAYgH,EAAK1rC,EAAc0kC,EAAK,UAAYgH,EAAK1rC,EAAc,KAAM,UAAYjmF,KAAKowH,YAAYlmH,MAG5I2nH,EAAWlH,IAAMgH,EAAK3jH,EAAS28G,EAAK,QAAUgH,EAAK1rC,EAAc0kC,EAAK,QAAUgH,EAAK1rC,EAAc,KAAM,QAAU6rC,EAAYnH,GAK/H,IAAIqH,OAAQ,EASRH,GAAWvH,OAASwH,EAAYxH,MAAQtqH,KAAKowH,YAAY9F,OAASt8C,EAAe7pB,KAAKmmE,OAExF0H,EAAQhyH,KAAKowH,YAAY//E,KAAOxuC,OAAOmsE,EAAe7pB,KAAK9T,OAG7DwhF,EAAWxhF,KAAOshF,EAAK3jH,EAAS28G,EAAK,SAAWgH,EAAK1rC,EAAc0kC,EAAK,UAAYqH,EAAQF,EAAYzhF,KAAO2hF,EAAQ,OACvHL,EAAK1rC,EAAc,KAAM,SAAWjmF,KAAKowH,YAAY//E,KAErDwhF,EAAWrH,QAAUmH,EAAK3jH,EAAS28G,EAAK,YAAcgH,EAAK1rC,EAAc0kC,EAAK,aAAeqH,EAAQF,EAAYtH,QAAU/nH,KAAKm6B,MAAMo1F,GAAS,OAC/IhyH,KAAKowH,YAAY5F,QAGnBqH,EAAWxhF,KAAOxuC,OAAOgwH,EAAWxhF,MACpCwhF,EAAWrH,QAAU3oH,OAAOgwH,EAAWrH,UAEzC,MAAO54G,GACPP,GAAoB,EACpBC,EAAiBM,EACjB,QACA,KACOR,GAA6BI,EAAkB,QAClDA,EAAkB,SAEpB,QACA,GAAIH,EACF,KAAMC,SAgBd/J,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,GACxC,GAAIomH,GAAWtuH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,QAGnF,QAAkCE,KAA9B7D,KAAKuwH,eAAejgF,MAAxB,CAGA,GAAI4hF,GAAelyH,KAAKowH,YAAY//E,KAAOrwC,KAAK2Q,KAAKuqG,KAAK14G,KACtDxC,MAAKuwH,eAAejgF,OAAS4hF,EAAelyH,KAAKuwH,eAAerF,QAAQ56E,MAAM86E,cAAgB,IAGlGprH,KAAKmyH,mBAAmB78G,EAAKywE,EAAUl6E,EAAOopB,EAAGpG,EAAGojG,GAGpDjyH,KAAKoyH,gBAAgB98G,GAErBtV,KAAKqyH,UAAU/8G,EAAKywE,EAAUl6E,EAAOopB,EAAGpG,EAAGojG,QAU7C1qH,IAAK,kBACLhF,MAAO,SAAyB+S,GAC9B,OAAoCzR,KAAhC7D,KAAKowH,YAAY1kH,YAA4D,SAAhC1L,KAAKowH,YAAY1kH,WAAuB,CACvF4J,EAAIuvC,UAAY7kD,KAAKowH,YAAY1kH,UAIjC,IAAI1L,KAAKswH,YACP,OAAQtwH,KAAKowH,YAAYtwC,OACvB,IAAK,SACHxqE,EAAI00F,SAA4B,IAAlBhqG,KAAKqwC,KAAKjgC,MAAiC,IAAnBpQ,KAAKqwC,KAAKhgC,OAAcrQ,KAAKqwC,KAAKjgC,MAAOpQ,KAAKqwC,KAAKhgC,OACzF,MACF,KAAK,MACHiF,EAAI00F,SAA4B,IAAlBhqG,KAAKqwC,KAAKjgC,QAAepQ,KAAKqwC,KAAKhgC,OARtC,GAQ4DrQ,KAAKqwC,KAAKjgC,MAAOpQ,KAAKqwC,KAAKhgC,OAClG,MACF,KAAK,SACHiF,EAAI00F,SAA4B,IAAlBhqG,KAAKqwC,KAAKjgC,MAXb,EAWsCpQ,KAAKqwC,KAAKjgC,MAAOpQ,KAAKqwC,KAAKhgC,OAC5E,MACF,SACEiF,EAAI00F,SAAShqG,KAAKqwC,KAAKnqC,KAAMlG,KAAKqwC,KAAK/pC,IAAM,EAAkBtG,KAAKqwC,KAAKjgC,MAAOpQ,KAAKqwC,KAAKhgC,YAI9FiF,GAAI00F,SAAShqG,KAAKqwC,KAAKnqC,KAAMlG,KAAKqwC,KAAK/pC,IAAM,EAAkBtG,KAAKqwC,KAAKjgC,MAAOpQ,KAAKqwC,KAAKhgC,YAchG9I,IAAK,YACLhF,MAAO,SAAmB+S,EAAKywE,EAAUl6E,EAAOopB,EAAGpG,GACjD,GAAIojG,GAAWtuH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,SAE/E2uH,EAAWtyH,KAAKowH,YAAY//E,KAC5B6hF,EAAeI,EAAWtyH,KAAK2Q,KAAKuqG,KAAK14G,KAEzC0vH,IAAgBlyH,KAAKuwH,eAAerF,QAAQ56E,MAAM66E,aACpDmH,EAAWzwH,OAAO7B,KAAKuwH,eAAerF,QAAQ56E,MAAM66E,YAAcnrH,KAAK2Q,KAAKuqG,KAAK14G,MAGnF,IAAI6tH,GAAQrwH,KAAKqwC,KAAKggF,MAElBkC,EAAiBvyH,KAAKwyH,cAAcl9G,EAAK2f,EAAGo7F,EAAO4B,GAEnDQ,GAAiB,EAAIxC,EAAyB,SAAGsC,EAAgB,EAErEt9F,GAAIw9F,EAAe,GACnBpC,EAAQoC,EAAe,GAGvBn9G,EAAI+vC,UAAY,OAChBpwB,GAAQj1B,KAAKqwC,KAAKjgC,MAAQ,EACtBpQ,KAAKowH,YAAYa,QAAUjxH,KAAKqwC,KAAKhgC,OAASrQ,KAAKqwC,KAAKqiF,cAC1B,QAA5B1yH,KAAKowH,YAAYa,SACnBZ,IAAUrwH,KAAKqwC,KAAKhgC,OAASrQ,KAAKqwC,KAAKqiF,aAAe,GAExB,WAA5B1yH,KAAKowH,YAAYa,SACnBZ,IAAUrwH,KAAKqwC,KAAKhgC,OAASrQ,KAAKqwC,KAAKqiF,aAAe,GAK1D,KAAK,GAAI3uH,GAAI,EAAGA,EAAI/D,KAAK2yH,UAAW5uH,IAClC,GAAI/D,KAAKuzF,MAAMxvF,IAAM/D,KAAKuzF,MAAMxvF,GAAG6uH,OAAQ,CACzC,GAAIxiH,GAAQ,CACRpQ,MAAKswH,aAA0C,WAA3BtwH,KAAKowH,YAAYtwC,MACvC1vE,IAAUpQ,KAAKqwC,KAAKjgC,MAAQpQ,KAAKuzF,MAAMxvF,GAAGqM,OAAS,EACf,UAA3BpQ,KAAKowH,YAAYtwC,QAC1B1vE,GAASpQ,KAAKqwC,KAAKjgC,MAAQpQ,KAAKuzF,MAAMxvF,GAAGqM,MAE3C,KAAK,GAAIvC,GAAI,EAAGA,EAAI7N,KAAKuzF,MAAMxvF,GAAG6uH,OAAOhvH,OAAQiK,IAAK,CACpD,GAAIglH,GAAQ7yH,KAAKuzF,MAAMxvF,GAAG6uH,OAAO/kH,EACjCyH,GAAI6uC,KAAO0uE,EAAM1uE,IAEjB,IAAI2uE,GAAa9yH,KAAK+yH,UAAUF,EAAM3oH,MAAOgoH,EAAcW,EAAMtI,aAC7DyI,GAAa,EAAI/C,EAAyB,SAAG6C,EAAY,GACzDG,EAAYD,EAAW,GACvBzI,EAAcyI,EAAW,EAEzBH,GAAMz4E,YAAc,IACtB9kC,EAAI4uC,UAAY2uE,EAAMz4E,YACtB9kC,EAAIivC,YAAcgmE,EAClBj1G,EAAIouC,SAAW,SAEjBpuC,EAAIuvC,UAAYouE,EAEZJ,EAAMz4E,YAAc,GACtB9kC,EAAI49G,WAAWL,EAAM1sE,KAAMlxB,EAAI7kB,EAAOigH,EAAQwC,EAAMrI,SAEtDl1G,EAAIiwC,SAASstE,EAAM1sE,KAAMlxB,EAAI7kB,EAAOigH,EAAQwC,EAAMrI,SAClDp6G,GAASyiH,EAAMziH,MAEjBigH,GAASrwH,KAAKuzF,MAAMxvF,GAAGsM,WAK7B9I,IAAK,gBACLhF,MAAO,SAAuB+S,EAAK2f,EAAGo7F,EAAO4B,GAG3C,GAAIjyH,KAAKswH,aAA0C,eAA3BtwH,KAAKowH,YAAYtwC,QAA+C,IAArB9/E,KAAKmwH,YAAuB,CAC7Fl7F,EAAI,EACJo7F,EAAQ,CAGuB,SAA3BrwH,KAAKowH,YAAYtwC,OACnBxqE,EAAIgwC,aAAe,aACnB+qE,GAAS,GAC2B,WAA3BrwH,KAAKowH,YAAYtwC,OAC1BxqE,EAAIgwC,aAAe,UACnB+qE,GAAS,GAET/6G,EAAIgwC,aAAe,aAGrBhwC,GAAIgwC,aAAe2sE,CAErB,QAAQh9F,EAAGo7F,MAab9oH,IAAK,YACLhF,MAAO,SAAmB2H,EAAOgoH,EAAciB,GAC7C,GAAIF,GAAY/oH,GAAS,UACrBqgH,EAAc4I,GAAsB,SACxC,IAAIjB,GAAgBlyH,KAAKuwH,eAAerF,QAAQ56E,MAAM86E,cAAe,CACnE,GAAIjhH,GAAU1H,KAAKJ,IAAI,EAAGI,KAAKL,IAAI,EAAG,GAAKpC,KAAKuwH,eAAerF,QAAQ56E,MAAM86E,cAAgB8G,IAC7Fe,GAAYtyH,EAAKsJ,gBAAgBgpH,EAAW9oH,GAC5CogH,EAAc5pH,EAAKsJ,gBAAgBsgH,EAAapgH,GAElD,OAAQ8oH,EAAW1I,MAWrBhjH,IAAK,cACLhF,MAAO,SAAqB+S,GAC1B,GAAIywE,GAAWpiF,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAC1EkI,EAAQlI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAG3E,OADA3D,MAAKozH,cAAc99G,EAAKywE,EAAUl6E,IAEhCuE,MAAOpQ,KAAKqwC,KAAKjgC,MACjBC,OAAQrQ,KAAKqwC,KAAKhgC,OAClBsiH,UAAW3yH,KAAK2yH,cAcpBprH,IAAK,qBACLhF,MAAO,SAA4B+S,EAAKywE,EAAUl6E,GAChD,GAAIopB,GAAItxB,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,EACxEkrB,EAAIlrB,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,EACxEsuH,EAAWtuH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,UAE3D,IAApB3D,KAAKwwH,YACPxwH,KAAKozH,cAAc99G,EAAKywE,EAAUl6E,GAEpC7L,KAAKqwC,KAAKnqC,KAAO+uB,EAAsB,GAAlBj1B,KAAKqwC,KAAKjgC,MAC/BpQ,KAAKqwC,KAAK/pC,IAAMuoB,EAAuB,GAAnB7uB,KAAKqwC,KAAKhgC,OAC9BrQ,KAAKqwC,KAAKggF,MAAQxhG,EAA2B,IAAtB,EAAI7uB,KAAK2yH,WAAmB3yH,KAAKowH,YAAY//E,KACnD,YAAb4hF,IACFjyH,KAAKqwC,KAAK/pC,KAAO,GAAMtG,KAAKowH,YAAY//E,KACxCrwC,KAAKqwC,KAAK/pC,KAAO,EACjBtG,KAAKqwC,KAAKggF,OAAS,GAErBrwH,KAAKwwH,YAAa,KAQpBjpH,IAAK,qBACLhF,MAAO,SAA4B8wH,GACjC,GAAIC,GAAS,MAMb,OALqB,aAAjBD,GAAgD,OAAjBA,EACjCC,EAAS,YACiB,IAAjBD,GAA0C,SAAjBA,IAClCC,EAAS,QAEJA,KAWT/rH,IAAK,cACLhF,MAAO,SAAqB4jD,EAAMktE,GAChC,GAAIC,GAAStzH,KAAKuzH,mBAAmBF,EACrC,OAAe,SAAXC,IAEAntE,KAAMA,EACNwkE,IAAK,WAEa,aAAX2I,EACFtzH,KAAKwzH,oBAAoBrtE,GACZ,SAAXmtE,EACFtzH,KAAKyzH,gBAAgBttE,OADvB,MAKT5+C,IAAK,sBACLhF,MAAO,SAA6B4jD,GAClC,GAAIysE,MACAxnH,GACFs/G,MAAM,EACNG,MAAM,EACNC,MAAM,EACN4I,WAAW,EACXC,SAAS,EACTpjH,SAAU,EACVqjH,OAAQ,GACRC,YAwCF,KAtCAzoH,EAAEu/G,IAAM,WACN,MAAgC,KAAzB3qH,KAAK6zH,SAASjwH,OAAe,SAAW5D,KAAK6zH,SAAS,IAE/DzoH,EAAE0oH,QAAU,WACV,MAA6B,KAAzB9zH,KAAK6zH,SAASjwH,OAAqB,SAAuC,SAArB5D,KAAK6zH,SAAS,GAAsB,OACvFzoH,EAAEs/G,MAAQt/G,EAAEy/G,KACP,WACEz/G,EAAEs/G,KACJ,OACEt/G,EAAEy/G,KACJ,WADF,IAKXz/G,EAAE2oH,UAAY,WACGpwH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAE1E3D,MAAK2zH,UACP3zH,KAAK2wB,IAAI,KACT3wB,KAAK2zH,SAAU,GAEb3zH,KAAK4zH,OAAOhwH,OAAS,IACvBgvH,EAAO/tH,MAAOshD,KAAMnmD,KAAK4zH,OAAQjJ,IAAK3qH,KAAK8zH,YAC3C9zH,KAAK4zH,OAAS,KAGlBxoH,EAAEulB,IAAM,SAAUw1B,GACH,MAATA,IACF/6C,EAAEuoH,SAAU,GAEVvoH,EAAEuoH,UACJ3zH,KAAK4zH,QAAU,IACf5zH,KAAK2zH,SAAU,GAEL,KAARxtE,IACFnmD,KAAK4zH,QAAUztE,IAGZ/6C,EAAEmF,SAAW41C,EAAKviD,QAAQ,CAC/B,GAAIowH,GAAK7tE,EAAKlrC,OAAO7P,EAAEmF,SACnB,SAAQrD,KAAK8mH,IACV5oH,EAAE0/G,KAGL1/G,EAAEulB,IAAIqjG,GAFN5oH,EAAEuoH,SAAU,EAIdvoH,EAAEsoH,WAAY,GACL,KAAKxmH,KAAK8mH,GACf5oH,EAAEmF,SAAW41C,EAAKviD,OAAS,IAC7BwH,EAAEmF,WACFyjH,EAAK7tE,EAAKlrC,OAAO7P,EAAEmF,UACf,MAAMrD,KAAK8mH,GACb5oH,EAAEuoH,SAAU,GAEZvoH,EAAEulB,IAAIqjG,GACN5oH,EAAEsoH,WAAY,IAGRtoH,EAAE0/G,MAAS1/G,EAAEs/G,OAASt/G,EAAEsoH,YAAatoH,EAAEuoH,UAAY,KAAKzmH,KAAK8mH,GAI7D5oH,EAAE0/G,MAAS1/G,EAAEy/G,OAASz/G,EAAEsoH,YAAatoH,EAAEuoH,UAAY,KAAKzmH,KAAK8mH,IAI7D5oH,EAAE0/G,OAAS1/G,EAAEsoH,WAAatoH,EAAEuoH,UAAY,IAAIzmH,KAAK8mH,IAC3D5oH,EAAE2oH,YACF3oH,EAAE0/G,MAAO,EACT1/G,EAAEyoH,SAASI,QAAQ,UACT7oH,EAAE0/G,MAAoB,SAAZ1/G,EAAEu/G,OAAoB,KAAKz9G,KAAK8mH,GAChD5oH,EAAEmF,WAAa41C,EAAKviD,OAAS,GAAK,cAAcsJ,KAAKi5C,EAAKlrC,OAAO7P,EAAEmF,SAAW,KAChFnF,EAAE2oH,YACF3oH,EAAEs/G,MAAO,EACTt/G,EAAEyoH,SAAStvF,SAEXn5B,EAAEulB,IAAIqjG,IAEE5oH,EAAE0/G,MAAoB,SAAZ1/G,EAAEu/G,OAAoB,KAAKz9G,KAAK8mH,GAChD5oH,EAAEmF,WAAa41C,EAAKviD,OAAS,GAAK,cAAcsJ,KAAKi5C,EAAKlrC,OAAO7P,EAAEmF,SAAW,KAChFnF,EAAE2oH,YACF3oH,EAAEy/G,MAAO,EACTz/G,EAAEyoH,SAAStvF,SAEXn5B,EAAEulB,IAAIqjG,GAEC5oH,EAAE0/G,MAAoB,SAAZ1/G,EAAEu/G,OAAoB,IAAIz9G,KAAK8mH,GAC9C5oH,EAAEmF,WAAa41C,EAAKviD,OAAS,GAAK,cAAcsJ,KAAKi5C,EAAKlrC,OAAO7P,EAAEmF,SAAW,KAChFnF,EAAE2oH,YACF3oH,EAAE0/G,MAAO,EACT1/G,EAAEyoH,SAAStvF,SAEXn5B,EAAEulB,IAAIqjG,IAGR5oH,EAAEulB,IAAIqjG,GACN5oH,EAAEsoH,WAAY,IAjCdtoH,EAAE2oH,YACF3oH,EAAEy/G,MAAO,EACTz/G,EAAEyoH,SAASI,QAAQ,UANnB7oH,EAAE2oH,YACF3oH,EAAEs/G,MAAO,EACTt/G,EAAEyoH,SAASI,QAAQ,SAqCrB7oH,EAAEmF,WAGJ,MADAnF,GAAE2oH,YACKnB,KAGTrrH,IAAK,kBACLhF,MAAO,SAAyB4jD,GAC9B,GAAIysE,MACAxnH,GACFs/G,MAAM,EACNG,MAAM,EACNC,MAAM,EACN6I,SAAS,EACTpjH,SAAU,EACVqjH,OAAQ,GACRC,YAwCF,KAtCAzoH,EAAEu/G,IAAM,WACN,MAAgC,KAAzB3qH,KAAK6zH,SAASjwH,OAAe,SAAW5D,KAAK6zH,SAAS,IAE/DzoH,EAAE0oH,QAAU,WACV,MAA6B,KAAzB9zH,KAAK6zH,SAASjwH,OAAqB,SAAuC,SAArB5D,KAAK6zH,SAAS,GAAsB,OACvFzoH,EAAEs/G,MAAQt/G,EAAEy/G,KACP,WACEz/G,EAAEs/G,KACJ,OACEt/G,EAAEy/G,KACJ,WADF,IAKXz/G,EAAE2oH,UAAY,WACGpwH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAE1E3D,MAAK2zH,UACP3zH,KAAK2wB,IAAI,KACT3wB,KAAK2zH,SAAU,GAEb3zH,KAAK4zH,OAAOhwH,OAAS,IACvBgvH,EAAO/tH,MAAOshD,KAAMnmD,KAAK4zH,OAAQjJ,IAAK3qH,KAAK8zH,YAC3C9zH,KAAK4zH,OAAS,KAGlBxoH,EAAEulB,IAAM,SAAUw1B,GACH,MAATA,IACF/6C,EAAEuoH,SAAU,GAEVvoH,EAAEuoH,UACJ3zH,KAAK4zH,QAAU,IACf5zH,KAAK2zH,SAAU,GAEL,KAARxtE,IACFnmD,KAAK4zH,QAAUztE,IAGZ/6C,EAAEmF,SAAW41C,EAAKviD,QAAQ,CAC/B,GAAIowH,GAAK7tE,EAAKlrC,OAAO7P,EAAEmF,SACnB,SAAQrD,KAAK8mH,GACV5oH,EAAE0/G,KAGL1/G,EAAEulB,IAAIqjG,GAFN5oH,EAAEuoH,SAAU,EAIL,IAAIzmH,KAAK8mH,GACb5oH,EAAE0/G,MAAS1/G,EAAEs/G,OAAQ,MAAMx9G,KAAKi5C,EAAK97C,OAAOe,EAAEmF,SAAU,IAKjDnF,EAAE0/G,MAAS1/G,EAAEy/G,OAAQ,MAAM39G,KAAKi5C,EAAK97C,OAAOe,EAAEmF,SAAU,KAKxDnF,EAAE0/G,MAAQ,SAAS59G,KAAKi5C,EAAK97C,OAAOe,EAAEmF,SAAU,KAC1DnF,EAAE2oH,YACF3oH,EAAE0/G,MAAO,EACT1/G,EAAEyoH,SAASI,QAAQ,QACnB7oH,EAAEmF,UAAY,IACJnF,EAAE0/G,MAAoB,SAAZ1/G,EAAEu/G,OAAoB,QAAQz9G,KAAKi5C,EAAK97C,OAAOe,EAAEmF,SAAU,KAC/EnF,EAAE2oH,YACF3oH,EAAEs/G,MAAO,EACTt/G,EAAEyoH,SAAStvF,QACXn5B,EAAEmF,UAAY,IACJnF,EAAE0/G,MAAoB,SAAZ1/G,EAAEu/G,OAAoB,QAAQz9G,KAAKi5C,EAAK97C,OAAOe,EAAEmF,SAAU,KAC/EnF,EAAE2oH,YACF3oH,EAAEy/G,MAAO,EACTz/G,EAAEyoH,SAAStvF,QACXn5B,EAAEmF,UAAY,GACO,SAAZnF,EAAEu/G,OAAoB,WAAWz9G,KAAKi5C,EAAK97C,OAAOe,EAAEmF,SAAU,KACvEnF,EAAE2oH,YACF3oH,EAAE0/G,MAAO,EACT1/G,EAAEyoH,SAAStvF,QACXn5B,EAAEmF,UAAY,GAEdnF,EAAEulB,IAAIqjG,IAzBN5oH,EAAE2oH,YACF3oH,EAAEy/G,MAAO,EACTz/G,EAAEyoH,SAASI,QAAQ,QACnB7oH,EAAEmF,UAAY,IARdnF,EAAE2oH,YACF3oH,EAAEs/G,MAAO,EACTt/G,EAAEyoH,SAASI,QAAQ,QACnB7oH,EAAEmF,UAAY,GA6BP,IAAIrD,KAAK8mH,GACd,OAAO9mH,KAAKi5C,EAAK97C,OAAOe,EAAEmF,SAAU,KACtCnF,EAAEulB,IAAI,KACNvlB,EAAEmF,UAAY,GACL,QAAQrD,KAAKi5C,EAAK97C,OAAOe,EAAEmF,SAAU,KAC9CnF,EAAEulB,IAAI,KACNvlB,EAAEmF,UAAY,GAEdnF,EAAEulB,IAAI,KAGRvlB,EAAEulB,IAAIqjG,GAER5oH,EAAEmF,WAGJ,MADAnF,GAAE2oH,YACKnB,KAGTrrH,IAAK,sBACLhF,MAAO,SAA6B+S,EAAKywE,EAAUl6E,EAAO8+G,GACxD,GAAIh6D,GAAW,SAAkBy/D,EAAazF,EAAKzhH,GACjD,MAAY,WAARyhH,EACa,QAAXzhH,EAAyB,GACtBknH,EAAYlnH,GAGjBknH,EAAYzF,GAAKzhH,GACZknH,EAAYzF,GAAKzhH,GAGjBknH,EAAYlnH,IAInBgM,GACFhL,MAAOymD,EAAS3wD,KAAKowH,YAAazF,EAAK,SACvCt6E,KAAMsgB,EAAS3wD,KAAKowH,YAAazF,EAAK,QACtCL,KAAM35D,EAAS3wD,KAAKowH,YAAazF,EAAK,QACtCA,IAAKh6D,EAAS3wD,KAAKowH,YAAazF,EAAK,OACrCH,QAAS75D,EAAS3wD,KAAKowH,YAAazF,EAAK,WACzCvwE,YAAap6C,KAAKowH,YAAYh2E,YAC9BmwE,YAAavqH,KAAKowH,YAAY7F,YAchC,QAZIxkC,GAAYl6E,KACF,WAAR8+G,IAAiD,IAA7B3qH,KAAKowH,YAAYvB,SAAoB7uH,KAAKuwH,eAAexF,mBAC/E71G,EAAOy1G,IAAM,OAE2B,kBAA7B3qH,MAAKowH,YAAYvB,SAC1B7uH,KAAKowH,YAAYvB,QAAQ35G,EAAQlV,KAAKuwH,eAAelwH,GAAI0lF,EAAUl6E,IAIzEyJ,EAAI6uC,MAAQjvC,EAAOy1G,IAAM,IAAMz1G,EAAOm7B,KAAO,MAAQn7B,EAAOo1G,MAAM1gH,QAAQ,KAAM,IAChFsL,EAAOivC,KAAO7uC,EAAI6uC,KAClBjvC,EAAO7E,OAAS6E,EAAOm7B,KAChBn7B,KAGT3N,IAAK,iBACLhF,MAAO,SAAwBwjF,EAAUl6E,GACvC,MAAOk6E,KAAa/lF,KAAKowH,YAAY8D,eAAiBroH,IAAU7L,KAAKowH,YAAY+D,cAWnF5sH,IAAK,gBACLhF,MAAO,SAAuB+S,EAAKywE,EAAUl6E,GAC3C,GAAIuE,GAAQ,EACRC,EAAS,EAETkjF,KACA3lF,EAAI,CAeR,IAdA2lF,EAAM5iE,IAAM,SAAU5V,EAAGorC,EAAMhC,EAAMj6C,EAAOkG,EAAOC,EAAQm6G,EAASG,EAAKvwE,EAAamwE,GAChFvqH,KAAK4D,QAAUmX,IACjB/a,KAAK+a,IAAO3K,MAAO,EAAGC,OAAQ,EAAGuiH,YAEnC5yH,KAAK+a,GAAG63G,OAAO/tH,MAAOshD,KAAMA,EAAMhC,KAAMA,EAAMj6C,MAAOA,EAAOkG,MAAOA,EAAOC,OAAQA,EAAQm6G,QAASA,EAASG,IAAKA,EAAKvwE,YAAaA,EAAamwE,YAAaA,KAE/Jh3B,EAAM6gC,WAAa,SAAUr5G,EAAG3K,EAAOC,GACrCrQ,KAAK+a,GAAG3K,OAASA,EACjBpQ,KAAK+a,GAAG1K,OAASA,EAASrQ,KAAK+a,GAAG1K,OAASA,EAASrQ,KAAK+a,GAAG1K,QAE9DkjF,EAAM8gC,iBAAmB,SAAUt5G,EAAGorC,EAAMhC,EAAMj6C,EAAOkG,EAAOC,EAAQm6G,EAASG,EAAKvwE,EAAamwE,GACjGvqH,KAAK2wB,IAAI5V,EAAGorC,EAAMhC,EAAMj6C,EAAOkG,EAAOC,EAAQm6G,EAASG,EAAKvwE,EAAamwE,GACzEvqH,KAAKo0H,WAAWr5G,EAAG3K,EAAOC,QAEMxM,KAA9B7D,KAAKuwH,eAAejgF,MAAqB,CAC3C,GAAIgkF,GAAW3xH,OAAO3C,KAAKuwH,eAAejgF,OAAO3pC,MAAM,MACnDgsH,EAAY2B,EAAS1wH,MACzB,IAAI5D,KAAKuwH,eAAepsE,KAAKsmE,MAC3B,IAAK,GAAI1mH,GAAI,EAAGA,EAAI4uH,EAAW5uH,IAAK,CAClC,GAAI6uH,GAAS5yH,KAAKu0H,YAAYD,EAASvwH,GAAI/D,KAAKuwH,eAAepsE,KAAKsmE,OAChEvmE,EAAY,EACZiK,EAAa,CACjB,IAAIykE,EAAQ,CACV,GAAqB,GAAjBA,EAAOhvH,OAAa,CACtB,GAAIsR,GAASlV,KAAKyvH,oBAAoBn6G,EAAKywE,EAAUl6E,EAAO,SAC5D0nF,GAAM8gC,iBAAiBzmH,EAAG,GAAIsH,EAAOivC,KAAMjvC,EAAOhL,MAAO,EAAGgL,EAAOm7B,KAAMn7B,EAAOs1G,QAAS,SAAUt1G,EAAOklC,YAAallC,EAAOq1G,aAC9Hl6G,GAAUkjF,EAAM3lF,GAAGyC,OACnBzC,GACA,UAEF,IAAK,GAAIC,GAAI,EAAGA,EAAI+kH,EAAOhvH,OAAQiK,IACjC,GAAI7N,KAAKowH,YAAYM,OAAS,EAQ5B,IAPA,GAAI8D,GAAUx0H,KAAKyvH,oBAAoBn6G,EAAKywE,EAAUl6E,EAAO+mH,EAAO/kH,GAAG88G,KACnE8J,EAAQ7B,EAAO/kH,GAAGs4C,KAAKx/C,MAAM,KAC7B+tH,GAAU,EACVvuE,EAAO,GACPwuE,GAAYvkH,MAAO,GACnBwkH,MAAc,GACd30G,EAAI,EACDA,EAAIw0G,EAAM7wH,QAAQ,CACvB,GAAIixH,GAAMH,EAAU,GAAK,GACzBE,GAAcD,EACdA,EAAUr/G,EAAIw/G,YAAY3uE,EAAO0uE,EAAMJ,EAAMx0G,IACzCikC,EAAYywE,EAAQvkH,MAAQpQ,KAAKowH,YAAYM,QAA+B,GAArBkE,EAAYxkH,OACrE+9C,EAAaqmE,EAAQnkH,OAAS89C,EAAaqmE,EAAQnkH,OAAS89C,EAC5DolC,EAAM5iE,IAAI/iB,EAAGu4C,EAAMquE,EAAQrwE,KAAMqwE,EAAQtqH,MAAO0qH,EAAYxkH,MAAOokH,EAAQnkH,OAAQmkH,EAAQhK,QAASoI,EAAO/kH,GAAG88G,IAAK6J,EAAQp6E,YAAao6E,EAAQjK,aAChJh3B,EAAM6gC,WAAWxmH,EAAGgnH,EAAYxkH,MAAO+9C,GACvChI,EAAO,GACPuuE,GAAU,EACVxwE,EAAY,EACZ9zC,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAClDC,GAAUkjF,EAAM3lF,GAAGyC,OACnBzC,MAEAu4C,EAAOA,EAAO0uE,EAAMJ,EAAMx0G,GACtBA,IAAMw0G,EAAM7wH,OAAS,IACvBuqD,EAAaqmE,EAAQnkH,OAAS89C,EAAaqmE,EAAQnkH,OAAS89C,EAC5DjK,GAAaywE,EAAQvkH,MACrBmjF,EAAM5iE,IAAI/iB,EAAGu4C,EAAMquE,EAAQrwE,KAAMqwE,EAAQtqH,MAAOyqH,EAAQvkH,MAAOokH,EAAQnkH,OAAQmkH,EAAQhK,QAASoI,EAAO/kH,GAAG88G,IAAK6J,EAAQp6E,YAAao6E,EAAQjK,aAC5Ih3B,EAAM6gC,WAAWxmH,EAAG+mH,EAAQvkH,MAAO+9C,GAC/BtgD,IAAM+kH,EAAOhvH,OAAS,IACxBwM,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAClDC,GAAUkjF,EAAM3lF,GAAGyC,OACnBzC,MAGJqS,IACAy0G,GAAU,OAGT,CACL,GAAIK,GAAW/0H,KAAKyvH,oBAAoBn6G,EAAKywE,EAAUl6E,EAAO+mH,EAAO/kH,GAAG88G,KACpEqK,EAAW1/G,EAAIw/G,YAAYlC,EAAO/kH,GAAGs4C,KACzCotC,GAAM8gC,iBAAiBzmH,EAAGglH,EAAO/kH,GAAGs4C,KAAM4uE,EAAS5wE,KAAM4wE,EAAS7qH,MAAO8qH,EAAS5kH,MAAO2kH,EAAS1kH,OAAQ0kH,EAASvK,QAASoI,EAAO/kH,GAAG88G,IAAKoK,EAAS36E,YAAa26E,EAASxK,aAC1Kn6G,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAC9CwiH,EAAOhvH,OAAS,IAAMiK,IACxBwC,GAAUkjF,EAAM3lF,GAAGyC,OACnBzC,WAOV,KAAK,GAAIgF,GAAK,EAAGA,EAAK+/G,EAAW//G,IAAM,CACrC,GAAIqiH,GAAWj1H,KAAKyvH,oBAAoBn6G,EAAKywE,EAAUl6E,EAAO,SAC9D,IAAI7L,KAAKowH,YAAYM,OAAS,EAM5B,IALA,GAAIwE,GAASZ,EAAS1hH,GAAIjM,MAAM,KAC5BwuH,EAAQ,GACRC,GAAchlH,MAAO,GACrBilH,MAAe,GACf1pG,EAAK,EACFA,EAAKupG,EAAOtxH,QAAQ,CACzB,GAAI0xH,GAAiB,KAAVH,EAAe,GAAK,GAC/BE,GAAeD,EACfA,EAAY9/G,EAAIw/G,YAAYK,EAAQG,EAAOJ,EAAOvpG,IAC9CypG,EAAUhlH,MAAQpQ,KAAKowH,YAAYM,QAAgC,GAAtB2E,EAAajlH,OAC5DmjF,EAAM8gC,iBAAiBzmH,EAAGunH,EAAOF,EAAS9wE,KAAM8wE,EAAS/qH,MAAOmrH,EAAajlH,MAAO6kH,EAAS5kF,KAAM4kF,EAASzK,QAAS,SAAUyK,EAAS76E,YAAa66E,EAAS1K,aAC9Jn6G,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAClDC,GAAUkjF,EAAM3lF,GAAGyC,OACnB8kH,EAAQ,GACRvnH,MAEAunH,EAAQA,EAAQG,EAAOJ,EAAOvpG,GAC1BA,IAAOupG,EAAOtxH,OAAS,IACzB2vF,EAAM8gC,iBAAiBzmH,EAAGunH,EAAOF,EAAS9wE,KAAM8wE,EAAS/qH,MAAOkrH,EAAUhlH,MAAO6kH,EAAS5kF,KAAM4kF,EAASzK,QAAS,SAAUyK,EAAS76E,YAAa66E,EAAS1K,aAC3Jn6G,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAClDC,GAAUkjF,EAAM3lF,GAAGyC,OACnBzC,KAEF+d,SAGC,CACL,GAAI4pG,GAASjB,EAAS1hH,GAClB4iH,EAAYlgH,EAAIw/G,YAAYS,EAChChiC,GAAM8gC,iBAAiBzmH,EAAG2nH,EAAQN,EAAS9wE,KAAM8wE,EAAS/qH,MAAOsrH,EAAUplH,MAAO6kH,EAAS5kF,KAAM4kF,EAASzK,QAAS,SAAUyK,EAAS76E,YAAa66E,EAAS1K,aAC5Jn6G,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAAQmjF,EAAM3lF,GAAGwC,MAAQA,EAClDC,GAAUkjF,EAAM3lF,GAAGyC,OACnBzC,MAKJ5N,KAAKowH,YAAYO,OAAS,GAAKvgH,EAAQpQ,KAAKowH,YAAYO,SAC1DvgH,EAAQpQ,KAAKowH,YAAYO,QAE3B3wH,KAAKqwC,KAAKqiF,YAAcriH,EACpBrQ,KAAKowH,YAAYY,OAAS,GAAK3gH,EAASrQ,KAAKowH,YAAYY,SAC3D3gH,EAASrQ,KAAKowH,YAAYY,QAE5BhxH,KAAKuzF,MAAQA,EACbvzF,KAAK2yH,UAAYp/B,EAAM3vF,OACvB5D,KAAKqwC,KAAKjgC,MAAQA,EAClBpQ,KAAKqwC,KAAKhgC,OAASA,EACnBrQ,KAAKk0H,cAAgBnuC,EACrB/lF,KAAKm0H,WAAatoH,OAGpBtE,IAAK,eACLhF,MAAO,SAAsBqtH,EAAeC,GAC1C,GAAInsH,GAAgBC,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAE/EumH,GAAM6H,gBAAgBnC,EAAeC,EAAW1rE,MAClDyrE,EAAcpF,QAAU,EAC+B,YAA9C,EAAIhpH,EAAkB,SAAGquH,EAAW1rE,OAC7CxjD,EAAK4C,cAAcqsH,EAAeC,EAAW1rE,KAAMzgD,GAErDksH,EAAcv/E,KAAOxuC,OAAO+tH,EAAcv/E,MAC1Cu/E,EAAcpF,QAAU3oH,OAAO+tH,EAAcpF,YAiB/CjjH,IAAK,kBACLhF,MAAO,SAAyBkzH,EAAYC,GAC1C,IAAKA,GAAkC,gBAAdA,GAAwB,OAAO,CAExD,IAAIC,GAAkBD,EAAU/uH,MAAM,IAMtC,OAJA8uH,GAAWplF,KAAOslF,EAAgB,GAAG/rH,QAAQ,KAAM,IACnD6rH,EAAWnL,KAAOqL,EAAgB,GAClCF,EAAWvrH,MAAQyrH,EAAgB,IAE5B,MAGJzL,IAGTtqH,GAAiB,QAAIsqH,GAIjB,SAAUrqH,EAAQD,EAASM,GAc/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAVvFlB,EAAQmB,YAAa,CAErB,IAAI60H,GAAe11H,EAAoB,KAEnC21H,EAAeh1H,EAAuB+0H,GAEtC30H,EAAgBf,EAAoB,GAEpCgB,EAAgBL,EAAuBI,EAI3CrB,GAAQoB,QAAU,WAChB,QAAS80H,GAAcnwH,EAAK5B,GAC1B,GAAIgyH,MACAC,GAAK,EACL/yG,GAAK,EACLgzG,MAAKpyH,EAET,KACE,IAAK,GAA0CqyH,GAAtCtjH,GAAK,EAAI1R,EAAcF,SAAS2E,KAAYqwH,GAAME,EAAKtjH,EAAGnB,QAAQC,QACzEqkH,EAAKlxH,KAAKqxH,EAAG3zH,QAETwB,GAAKgyH,EAAKnyH,SAAWG,GAHuDiyH,GAAK,IAKvF,MAAOpkH,GACPqR,GAAK,EACLgzG,EAAKrkH,EACL,QACA,KACOokH,GAAMpjH,EAAW,QAAGA,EAAW,SACpC,QACA,GAAIqQ,EAAI,KAAMgzG,IAIlB,MAAOF,GAGT,MAAO,UAAUpwH,EAAK5B,GACpB,GAAII,MAAMC,QAAQuB,GAChB,MAAOA,EACF,KAAI,EAAIkwH,EAAa70H,SAASyD,OAAOkB,IAC1C,MAAOmwH,GAAcnwH,EAAK5B,EAE1B,MAAM,IAAIQ,WAAU,6DAOtB,SAAU1E,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,KAAMa,YAAY,IAIhE,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,GACpBA,EAAoB,IACpBL,EAAOD,QAAUM,EAAoB,MAKjC,SAAUL,EAAQD,EAASM,GAE/B,GAAIkb,GAAUlb,EAAoB,IAC9B2T,EAAW3T,EAAoB,IAAI,YACnC6R,EAAY7R,EAAoB,EACpCL,GAAOD,QAAUM,EAAoB,IAAIi2H,WAAa,SAAUhjH,GAC9D,GAAIL,GAAIrO,OAAO0O,EACf,YAAuBtP,KAAhBiP,EAAEe,IACJ,cAAgBf,IAEhBf,EAAUzO,eAAe8X,EAAQtI,MAMpC,SAAUjT,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCE,EAAax2H,EAAoB,KAEjCy2H,EAAa91H,EAAuB61H,GAIpCzJ,EAAM,SAAU2J,GAGlB,QAAS3J,GAAIj/G,EAAS2C,EAAMu9G,IAC1B,EAAIv7B,EAA0B,SAAG3yF,KAAMitH,EAEvC,IAAIhzB,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAOitH,EAAI4J,YAAa,EAAIR,EAA0B,SAAGpJ,IAAM1sH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,GAGjJ,OADAj0B,GAAM68B,YAAY5I,GACXj0B,EA+CT,OAvDA,EAAIw8B,EAAoB,SAAGxJ,EAAK2J,IAWhC,EAAI/jC,EAAuB,SAAGo6B,IAC5B1lH,IAAK,SACLhF,MAAO,SAAgB+S,GACrB,GAAIywE,GAAWpiF,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK+lF,SACpFl6E,EAAQlI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK6L,KAEjF7L,MAAK+rH,aAAahmC,EAAUl6E,KAC9B7L,KAAK+2H,SAAW/2H,KAAKkuH,YAAY8I,YAAY1hH,EAAKywE,EAAUl6E,GAC5D7L,KAAKoQ,MAAQpQ,KAAK+2H,SAAS3mH,MAAQpQ,KAAKikD,OAAO79C,MAAQpG,KAAKikD,OAAO/9C,KACnElG,KAAKqQ,OAASrQ,KAAK+2H,SAAS1mH,OAASrQ,KAAKikD,OAAO39C,IAAMtG,KAAKikD,OAAOtF,OACnE3+C,KAAK0oD,OAAS1oD,KAAKoQ,MAAQ,MAI/B7I,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAK2vH,OAAOr6G,EAAKywE,EAAUl6E,GAC3B7L,KAAKkG,KAAO+uB,EAAIj1B,KAAKoQ,MAAQ,EAC7BpQ,KAAKsG,IAAMuoB,EAAI7uB,KAAKqQ,OAAS,EAE7BrQ,KAAKi3H,mBAAmB3hH,EAAKJ,GAC7BI,EAAIirG,UAAUvgH,KAAKkG,KAAMlG,KAAKsG,IAAKtG,KAAKoQ,MAAOpQ,KAAKqQ,OAAQ6E,EAAOwkC,cACnE15C,KAAKk3H,YAAY5hH,EAAKJ,GAEtBlV,KAAK0vH,kBAAkBz6F,EAAGpG,EAAGvZ,EAAKywE,EAAUl6E,GAC5C7L,KAAKkuH,YAAYlxB,KAAK1nF,EAAKtV,KAAKkG,KAAOlG,KAAK+2H,SAAS3mH,MAAQ,EAAIpQ,KAAKikD,OAAO/9C,KAAMlG,KAAKsG,IAAMtG,KAAK+2H,SAAS1mH,OAAS,EAAIrQ,KAAKikD,OAAO39C,IAAKy/E,EAAUl6E,MAGtJtE,IAAK,oBACLhF,MAAO,SAA2B0yB,EAAGpG,EAAGvZ,EAAKywE,EAAUl6E,GACrD7L,KAAKm3H,mBAAmBliG,EAAGpG,EAAGvZ,EAAKywE,EAAUl6E,EAE7C,IAAI6tC,GAAe15C,KAAKgO,QAAQu9G,gBAAgB7xE,YAChD15C,MAAKo3H,sBAAsB19E,MAG7BnyC,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpCr9D,KAAK2vH,OAAOr6G,EACZ,IAAI2/C,GAAcj1D,KAAKgO,QAAQinD,WAE/B,OAAOxyD,MAAKL,IAAIK,KAAK0iB,IAAInlB,KAAKoQ,MAAQ,EAAI3N,KAAK06C,IAAIkgB,IAAS56D,KAAK0iB,IAAInlB,KAAKqQ,OAAS,EAAI5N,KAAKw6C,IAAIogB,KAAWpI,MAGxGg4D,GACP0J,EAAoB,QAEtB/2H,GAAiB,QAAIqtH,GAIjB,SAAUptH,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,KAAMa,YAAY,IAIhE,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,KACpBL,EAAOD,QAAUM,EAAoB,IAAIuE,OAAOmP,gBAK5C,SAAU/T,EAAQD,EAASM,GAG/B,GAAIua,GAAWva,EAAoB,IAC/Bm3H,EAAkBn3H,EAAoB,GAE1CA,GAAoB,IAAI,iBAAkB,WACxC,MAAO,UAAwBiT,GAC7B,MAAOkkH,GAAgB58G,EAAStH,QAOhC,SAAUtT,EAAQD,EAASM,GAI/BN,EAAQmB,YAAa,CAErB,IAAIQ,GAAWrB,EAAoB,IAE/BsB,EAEJ,SAAgCV,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,IAFjDS,EAItC3B,GAAQoB,QAAU,SAAU2V,EAAMpW,GAChC,IAAKoW,EACH,KAAM,IAAI2gH,gBAAe,4DAG3B,QAAO/2H,GAAuF,gBAA7D,KAATA,EAAuB,aAAc,EAAIiB,EAASR,SAAST,KAAuC,kBAATA,GAA8BoW,EAAPpW,IAKtI,SAAUV,EAAQD,EAASM,GAkB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAASF,GAdvFlB,EAAQmB,YAAa,CAErB,IAAIw2H,GAAkBr3H,EAAoB,KAEtCs3H,EAAmB32H,EAAuB02H,GAE1Cp2H,EAAUjB,EAAoB,IAE9BkB,EAAWP,EAAuBM,GAElCI,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,EAItC3B,GAAQoB,QAAU,SAAUy2H,EAAUC,GACpC,GAA0B,kBAAfA,IAA4C,OAAfA,EACtC,KAAM,IAAInzH,WAAU,gEAAoF,KAAfmzH,EAA6B,aAAc,EAAIl2H,EAASR,SAAS02H,IAG5JD,GAASplH,WAAY,EAAIjR,EAASJ,SAAS02H,GAAcA,EAAWrlH,WAClE7N,aACEjC,MAAOk1H,EACP5/G,YAAY,EACZE,UAAU,EACVD,cAAc,KAGd4/G,IAAYF,EAAiBx2H,SAAU,EAAIw2H,EAAiBx2H,SAASy2H,EAAUC,GAAcD,EAASZ,UAAYa,KAKpH,SAAU73H,EAAQD,EAASM,GAE/BL,EAAOD,SAAYoB,QAAWd,EAAoB,KAAMa,YAAY,IAIhE,SAAUlB,EAAQD,EAASM,GAE/BA,EAAoB,KACpBL,EAAOD,QAAUM,EAAoB,IAAIuE,OAAOkzH,gBAK5C,SAAU93H,EAAQD,EAASM,GAG/B,GAAIqT,GAAUrT,EAAoB,GAClCqT,GAAQA,EAAQuC,EAAG,UAAY6hH,eAAgBz3H,EAAoB,KAAK6e,OAKpE,SAAUlf,EAAQD,EAASM,GAI/B,GAAIsX,GAAWtX,EAAoB,IAC/BiX,EAAWjX,EAAoB,IAC/Bg3F,EAAQ,SAAUpkF,EAAGV,GAEvB,GADA+E,EAASrE,IACJ0E,EAASpF,IAAoB,OAAVA,EAAgB,KAAM7N,WAAU6N,EAAQ,6BAElEvS,GAAOD,SACLmf,IAAKta,OAAOkzH,iBAAmB,gBAC7B,SAAUzqH,EAAM0qH,EAAO74G,GACrB,IACEA,EAAM7e,EAAoB,IAAIqW,SAAShW,KAAML,EAAoB,IAAI6M,EAAEtI,OAAO4N,UAAW,aAAa0M,IAAK,GAC3GA,EAAI7R,MACJ0qH,IAAU1qH,YAAgB/I,QAC1B,MAAO8E,GAAK2uH,GAAQ,EACtB,MAAO,UAAwB9kH,EAAGV,GAIhC,MAHA8kF,GAAMpkF,EAAGV,GACLwlH,EAAO9kH,EAAE+jH,UAAYzkH,EACpB2M,EAAIjM,EAAGV,GACLU,QAEL,OAASjP,IACjBqzF,MAAOA,IAML,SAAUr3F,EAAQD,EAASM,GAoB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIhB,GAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCmxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCilC,EAAW,WACb,QAASA,GAAS7pH,EAAS2C,EAAMu9G,IAC/B,EAAIv7B,EAA0B,SAAG3yF,KAAM63H,GAEvC73H,KAAK2Q,KAAOA,EACZ3Q,KAAKkuH,YAAcA,EACnBluH,KAAKkxC,WAAWljC,GAChBhO,KAAKsG,QAAMzC,GACX7D,KAAKkG,SAAOrC,GACZ7D,KAAKqQ,WAASxM,GACd7D,KAAKoQ,UAAQvM,GACb7D,KAAK0oD,WAAS7kD,GACd7D,KAAKikD,WAASpgD,GACd7D,KAAKqvH,eAAgB,EACrBrvH,KAAK2sH,aAAgBrmH,IAAK,EAAGJ,KAAM,EAAGE,MAAO,EAAGu4C,OAAQ,GAyL1D,OAtLA,EAAIk0C,EAAuB,SAAGglC,IAC5BtwH,IAAK,aACLhF,MAAO,SAAoByL,GACzBhO,KAAKgO,QAAUA,KAGjBzG,IAAK,cACLhF,MAAO,SAAqB2rH,GAC1BluH,KAAKikD,UACDjkD,KAAKgO,QAAQi2C,SACsC,WAAjD,EAAIziD,EAAkB,SAAGxB,KAAKgO,QAAQi2C,SACxCjkD,KAAKikD,OAAO39C,IAAMtG,KAAKgO,QAAQi2C,OAAO39C,IACtCtG,KAAKikD,OAAO79C,MAAQpG,KAAKgO,QAAQi2C,OAAO79C,MACxCpG,KAAKikD,OAAOtF,OAAS3+C,KAAKgO,QAAQi2C,OAAOtF,OACzC3+C,KAAKikD,OAAO/9C,KAAOlG,KAAKgO,QAAQi2C,OAAO/9C,OAEvClG,KAAKikD,OAAO39C,IAAMtG,KAAKgO,QAAQi2C,OAC/BjkD,KAAKikD,OAAO79C,MAAQpG,KAAKgO,QAAQi2C,OACjCjkD,KAAKikD,OAAOtF,OAAS3+C,KAAKgO,QAAQi2C,OAClCjkD,KAAKikD,OAAO/9C,KAAOlG,KAAKgO,QAAQi2C,SAGpCiqE,EAAY4J,YAAY93H,KAAKikD,WAG/B18C,IAAK,oBACLhF,MAAO,SAA2B+S,EAAK+nD,GACrC,GAAIpI,GAAcj1D,KAAKgO,QAAQinD,WAE/B,OADAj1D,MAAK2vH,OAAOr6G,GACL7S,KAAKL,IAAIK,KAAK0iB,IAAInlB,KAAKoQ,MAAQ,EAAI3N,KAAK06C,IAAIkgB,IAAS56D,KAAK0iB,IAAInlB,KAAKqQ,OAAS,EAAI5N,KAAKw6C,IAAIogB,KAAWpI,KAG7G1tD,IAAK,eACLhF,MAAO,SAAsB+S,EAAKJ,GAC5BA,EAAOo2G,SACTh2G,EAAI05G,YAAc95G,EAAO85G,YACzB15G,EAAIyiH,WAAa7iH,EAAO+5G,WACxB35G,EAAI0iH,cAAgB9iH,EAAOg6G,QAC3B55G,EAAI2iH,cAAgB/iH,EAAOi6G,YAI/B5nH,IAAK,gBACLhF,MAAO,SAAuB+S,EAAKJ,GAC7BA,EAAOo2G,SACTh2G,EAAI05G,YAAc,gBAClB15G,EAAIyiH,WAAa,EACjBziH,EAAI0iH,cAAgB,EACpB1iH,EAAI2iH,cAAgB,MAIxB1wH,IAAK,qBACLhF,MAAO,SAA4B+S,EAAKJ,GACtC,IAA4B,IAAxBA,EAAOs2G,aACT,OAAwB3nH,KAApByR,EAAI4iH,YAA2B,CACjC,GAAIC,GAASjjH,EAAOs2G,cACL,IAAX2M,IACFA,GAAU,EAAG,KAEf7iH,EAAI4iH,YAAYC,OAEhB3yG,SAAQH,KAAK,oFACbrlB,KAAKgO,QAAQu9G,gBAAgBC,cAAe,EAC5Ct2G,EAAOs2G,cAAe,KAK5BjkH,IAAK,sBACLhF,MAAO,SAA6B+S,EAAKJ,IACX,IAAxBA,EAAOs2G,mBACe3nH,KAApByR,EAAI4iH,YACN5iH,EAAI4iH,aAAa,KAEjB1yG,QAAQH,KAAK,oFACbrlB,KAAKgO,QAAQu9G,gBAAgBC,cAAe,EAC5Ct2G,EAAOs2G,cAAe,OAY5BjkH,IAAK,eACLhF,MAAO,SAAsBwjF,EAAUl6E,GACrC,OAA2B,IAAvB7L,KAAKqvH,eAGPrvH,KAAKqvH,eAAgB,GACd,OAGaxrH,KAAf7D,KAAKoQ,OAAuBpQ,KAAKkuH,YAAYkK,eAAeryC,EAAUl6E,MAG/EtE,IAAK,qBACLhF,MAAO,SAA4B+S,EAAKJ,GACtC,GAAI+/C,GAAc//C,EAAO+/C,YAAcj1D,KAAK2Q,KAAKuqG,KAAK14G,KAEtD8S,GAAI4uC,UAAYzhD,KAAKL,IAAIpC,KAAKoQ,MAAO6kD,GACrC3/C,EAAIivC,YAAcrvC,EAAOgzC,YACzB5yC,EAAIuvC,UAAY3vC,EAAOhL,SAGzB3C,IAAK,gBACLhF,MAAO,SAAuB+S,EAAKJ,GACjC,GAAI+/C,GAAc//C,EAAO+/C,YAAcj1D,KAAK2Q,KAAKuqG,KAAK14G,KAGtD8S,GAAI+iH,OAEApjE,EAAc,IAChBj1D,KAAKs4H,mBAAmBhjH,EAAKJ,GAE7BI,EAAI6kC,SAEJn6C,KAAKu4H,oBAAoBjjH,EAAKJ,IAEhCI,EAAIkjH,aAGNjxH,IAAK,cACLhF,MAAO,SAAqB+S,EAAKJ,GAE/BlV,KAAKy4H,aAAanjH,EAAKJ,GAEvBI,EAAI4kC,OAEJl6C,KAAK04H,cAAcpjH,EAAKJ,GAExBlV,KAAK24H,cAAcrjH,EAAKJ,MAG1B3N,IAAK,wBACLhF,MAAO,SAA+B0hD,GACpCjkD,KAAK2sH,YAAYzmH,MAAQ+9C,EACzBjkD,KAAK2sH,YAAYrmH,KAAO29C,EACxBjkD,KAAK2sH,YAAYhuE,QAAUsF,EAC3BjkD,KAAK2sH,YAAYvmH,OAAS69C,KAW5B18C,IAAK,qBACLhF,MAAO,SAA4B0yB,EAAGpG,EAAGvZ,EAAKywE,EAAUl6E,OAC1ChI,KAARyR,GACFtV,KAAK2vH,OAAOr6G,EAAKywE,EAAUl6E,GAG7B7L,KAAKkG,KAAO+uB,EAAIj1B,KAAKoQ,MAAQ,EAC7BpQ,KAAKsG,IAAMuoB,EAAI7uB,KAAKqQ,OAAS,EAE7BrQ,KAAK2sH,YAAYzmH,KAAOlG,KAAKkG,KAC7BlG,KAAK2sH,YAAYrmH,IAAMtG,KAAKsG,IAC5BtG,KAAK2sH,YAAYhuE,OAAS3+C,KAAKsG,IAAMtG,KAAKqQ,OAC1CrQ,KAAK2sH,YAAYvmH,MAAQpG,KAAKkG,KAAOlG,KAAKoQ,SAU5C7I,IAAK,oBACLhF,MAAO,SAA2B0yB,EAAGpG,EAAGvZ,EAAKywE,EAAUl6E,GACrD7L,KAAKm3H,mBAAmBliG,EAAGpG,EAAGvZ,EAAKywE,EAAUl6E,OAG1CgsH,IAGTj4H,GAAiB,QAAIi4H,GAIjB,SAAUh4H,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCoC,EAAoB14H,EAAoB,KAExC24H,EAAoBh4H,EAAuB+3H,GAI3C1L,EAAS,SAAU4L,GAGrB,QAAS5L,GAAOl/G,EAAS2C,EAAMu9G,IAC7B,EAAIv7B,EAA0B,SAAG3yF,KAAMktH,EAEvC,IAAIjzB,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAOktH,EAAO2J,YAAa,EAAIR,EAA0B,SAAGnJ,IAAS3sH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,GAGvJ,OADAj0B,GAAM68B,YAAY5I,GACXj0B,EA8CT,OAtDA,EAAIw8B,EAAoB,SAAGvJ,EAAQ4L,IAWnC,EAAIjmC,EAAuB,SAAGq6B,IAC5B3lH,IAAK,SACLhF,MAAO,SAAgB+S,GACrB,GAAIywE,GAAWpiF,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK+lF,SACpFl6E,EAAQlI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK6L,KAErF,IAAI7L,KAAK+rH,aAAahmC,EAAUl6E,GAAQ,CACtC7L,KAAK+2H,SAAW/2H,KAAKkuH,YAAY8I,YAAY1hH,EAAKywE,EAAUl6E,EAC5D,IAAIktH,GAAWt2H,KAAKJ,IAAIrC,KAAK+2H,SAAS3mH,MAAQpQ,KAAKikD,OAAO79C,MAAQpG,KAAKikD,OAAO/9C,KAAMlG,KAAK+2H,SAAS1mH,OAASrQ,KAAKikD,OAAO39C,IAAMtG,KAAKikD,OAAOtF,OACzI3+C,MAAKgO,QAAQqiC,KAAO0oF,EAAW,EAE/B/4H,KAAKoQ,MAAQ2oH,EACb/4H,KAAKqQ,OAAS0oH,EACd/4H,KAAK0oD,OAAS1oD,KAAKoQ,MAAQ,MAI/B7I,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAK2vH,OAAOr6G,EAAKywE,EAAUl6E,GAC3B7L,KAAKkG,KAAO+uB,EAAIj1B,KAAKoQ,MAAQ,EAC7BpQ,KAAKsG,IAAMuoB,EAAI7uB,KAAKqQ,OAAS,EAE7BrQ,KAAKg5H,eAAe1jH,EAAK2f,EAAGpG,EAAG3Z,GAE/BlV,KAAK0vH,kBAAkBz6F,EAAGpG,GAC1B7uB,KAAKkuH,YAAYlxB,KAAK1nF,EAAKtV,KAAKkG,KAAOlG,KAAK+2H,SAAS3mH,MAAQ,EAAIpQ,KAAKikD,OAAO/9C,KAAM2oB,EAAGk3D,EAAUl6E,MAGlGtE,IAAK,oBACLhF,MAAO,SAA2B0yB,EAAGpG,GACnC7uB,KAAK2sH,YAAYrmH,IAAMuoB,EAAI7uB,KAAKgO,QAAQqiC,KACxCrwC,KAAK2sH,YAAYzmH,KAAO+uB,EAAIj1B,KAAKgO,QAAQqiC,KACzCrwC,KAAK2sH,YAAYvmH,MAAQ6uB,EAAIj1B,KAAKgO,QAAQqiC,KAC1CrwC,KAAK2sH,YAAYhuE,OAAS9vB,EAAI7uB,KAAKgO,QAAQqiC,QAG7C9oC,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GAEpC,MADAr9D,MAAK2vH,OAAOr6G,GACQ,GAAbtV,KAAKoQ,UAGT88G,GACP2L,EAA2B,QAE7Bj5H,GAAiB,QAAIstH,GAIjB,SAAUrtH,EAAQD,EAASM,GAoC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhCzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCE,EAAax2H,EAAoB,KAEjCy2H,EAAa91H,EAAuB61H,GAEpC3O,EAAe7nH,EAAoB,KAmBnC+4H,GAjBgBp4H,EAAuBknH,GAiBrB,SAAU6O,GAG9B,QAASqC,GAAgBjrH,EAAS2C,EAAMu9G,IACtC,EAAIv7B,EAA0B,SAAG3yF,KAAMi5H,EAEvC,IAAIh/B,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAOi5H,EAAgBpC,YAAa,EAAIR,EAA0B,SAAG4C,IAAkB14H,KAAKP,KAAMgO,EAAS2C,EAAMu9G,GAIzK,OAFAj0B,GAAMi/B,YAAc,EACpBj/B,EAAMlU,UAAW,EACVkU,EAkJT,OA3JA,EAAIw8B,EAAoB,SAAGwC,EAAiBrC,IAY5C,EAAI/jC,EAAuB,SAAGomC,IAC5B1xH,IAAK,aACLhF,MAAO,SAAoByL,EAASygH,EAAUG,GAC5C5uH,KAAKgO,QAAUA,MAEInK,KAAb4qH,OAA0C5qH,KAAhB+qH,GAC9B5uH,KAAKm5H,UAAU1K,EAAUG,MAkB7BrnH,IAAK,YACLhF,MAAO,SAAmBksH,EAAUG,GAC9BA,GAAe5uH,KAAK+lF,UACtB/lF,KAAKyuH,SAAWG,EAChB5uH,KAAK4uH,YAAcH,IAEnBzuH,KAAKyuH,SAAWA,EAChBzuH,KAAK4uH,YAAcA,MAavBrnH,IAAK,eACLhF,MAAO,SAAsBwjF,GAC3B,GAAIqzC,GAAoBrzC,IAAa/lF,KAAK+lF,WAAaA,GAAY/lF,KAAK+lF,QAGxE,IAFA/lF,KAAK+lF,SAAWA,MAESliF,KAArB7D,KAAK4uH,aAA6BwK,EAAmB,CACvD,GAAIC,GAAWr5H,KAAKyuH,QACpBzuH,MAAKyuH,SAAWzuH,KAAK4uH,YACrB5uH,KAAK4uH,YAAcyK,MAWvB9xH,IAAK,eACLhF,MAAO,WACL,GAAI6N,GAAOC,CAEX,KAAkD,IAA9CrQ,KAAKgO,QAAQu9G,gBAAgBE,aAAwB,CAEvD,GAAI6N,GAAc,EACdC,EAAe,CAGfv5H,MAAKyuH,SAASr+G,OAASpQ,KAAKyuH,SAASp+G,SACnCrQ,KAAKyuH,SAASr+G,MAAQpQ,KAAKyuH,SAASp+G,OACtCipH,EAAct5H,KAAKyuH,SAASr+G,MAAQpQ,KAAKyuH,SAASp+G,OAElDkpH,EAAev5H,KAAKyuH,SAASp+G,OAASrQ,KAAKyuH,SAASr+G,OAIxDA,EAA4B,EAApBpQ,KAAKgO,QAAQqiC,KAAWipF,EAChCjpH,EAA6B,EAApBrQ,KAAKgO,QAAQqiC,KAAWkpF,MAGjCnpH,GAAQpQ,KAAKyuH,SAASr+G,MACtBC,EAASrQ,KAAKyuH,SAASp+G,MAGzBrQ,MAAKoQ,MAAQA,EACbpQ,KAAKqQ,OAASA,EACdrQ,KAAK0oD,OAAS,GAAM1oD,KAAKoQ,SAG3B7I,IAAK,iBACLhF,MAAO,SAAwB+S,EAAK2f,EAAGpG,EAAG3Z,GACxClV,KAAKi3H,mBAAmB3hH,EAAKJ,GAC7BI,EAAIkzF,OAAOvzE,EAAGpG,EAAG3Z,EAAOm7B,MACxBrwC,KAAKk3H,YAAY5hH,EAAKJ,MAGxB3N,IAAK,uBACLhF,MAAO,SAA8B+S,EAAKJ,GACxC,GAA2B,GAAvBlV,KAAKyuH,SAASr+G,MAAY,CAE5BkF,EAAIkkH,YAAc,EAGlBx5H,KAAKy4H,aAAanjH,EAAKJ,EAEvB,IAAIg9D,GAAS,GACsC,IAA/ClyE,KAAKgO,QAAQu9G,gBAAgBlgB,gBAC/Bn5B,EAASlyE,KAAKyuH,SAASr+G,MAAQpQ,KAAKoQ,MAAQpQ,KAAK2Q,KAAKuqG,KAAK14G,OAG7DxC,KAAKyuH,SAASgL,oBAAoBnkH,EAAK48D,EAAQlyE,KAAKkG,KAAMlG,KAAKsG,IAAKtG,KAAKoQ,MAAOpQ,KAAKqQ,QAGrFrQ,KAAK04H,cAAcpjH,EAAKJ,OAI5B3N,IAAK,kBACLhF,MAAO,SAAyB+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,GACnD,GAAIisC,GACAjb,EAAS,CAEb,QAAoBh5B,KAAhB7D,KAAKqQ,OAAsB,CAC7BwsB,EAAuB,GAAd78B,KAAKqQ,MACd,IAAIqpH,GAAkB15H,KAAKkuH,YAAY8I,YAAY1hH,EAAKywE,EAAUl6E,EAC9D6tH,GAAgB/G,WAAa,IAC/B91F,GAAU68F,EAAgBrpH,OAAS,GAIvCynC,EAASjpB,EAAIgO,EAET78B,KAAKgO,QAAQsiC,QACftwC,KAAKk5H,YAAcr8F,GAErB78B,KAAKkuH,YAAYlxB,KAAK1nF,EAAK2f,EAAG6iB,EAAQiuC,EAAUl6E,EAAO,eAGpDotH,GACPtC,EAAoB,SAEtB/2H,GAAiB,QAAIq5H,GAIjB,SAAUp5H,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCoC,EAAoB14H,EAAoB,KAExC24H,EAAoBh4H,EAAuB+3H,GAI3CzL,EAAgB,SAAU2L,GAG5B,QAAS3L,GAAcn/G,EAAS2C,EAAMu9G,EAAaO,EAAUG,IAC3D,EAAIj8B,EAA0B,SAAG3yF,KAAMmtH,EAEvC,IAAIlzB,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAOmtH,EAAc0J,YAAa,EAAIR,EAA0B,SAAGlJ,IAAgB5sH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,GAGrK,OADAj0B,GAAMk/B,UAAU1K,EAAUG,GACnB30B,EAuET,OA/EA,EAAIw8B,EAAoB,SAAGtJ,EAAe2L,IAW1C,EAAIjmC,EAAuB,SAAGs6B,IAC5B5lH,IAAK,SACLhF,MAAO,SAAgB+S,GACrB,GAAIywE,GAAWpiF,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK+lF,SACpFl6E,EAAQlI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK6L,KAIrF,QAFwChI,KAAtB7D,KAAKyuH,SAAS/1G,SAA6C7U,KAAxB7D,KAAKyuH,SAASr+G,WAAgDvM,KAAzB7D,KAAKyuH,SAASp+G,OAEvF,CACf,GAAI0oH,GAA+B,EAApB/4H,KAAKgO,QAAQqiC,IAI5B,OAHArwC,MAAKoQ,MAAQ2oH,EACb/4H,KAAKqQ,OAAS0oH,OACd/4H,KAAK0oD,OAAS,GAAM1oD,KAAKoQ,OAKvBpQ,KAAK+rH,aAAahmC,EAAUl6E,IAC9B7L,KAAK25H,kBAITpyH,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAK45H,aAAa7zC,GAClB/lF,KAAK2vH,SACL3vH,KAAKkG,KAAO+uB,EAAIj1B,KAAKoQ,MAAQ,EAC7BpQ,KAAKsG,IAAMuoB,EAAI7uB,KAAKqQ,OAAS,EAG7BrQ,KAAKg5H,eAAe1jH,EAAK2f,EAAGpG,EAAG3Z,GAG/BI,EAAI+iH,OAEJ/iH,EAAIukH,OAEJ75H,KAAK85H,qBAAqBxkH,EAAKJ,GAE/BI,EAAIkjH,UAEJx4H,KAAK+5H,gBAAgBzkH,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,GAE1C7L,KAAK0vH,kBAAkBz6F,EAAGpG,MAM5BtnB,IAAK,oBACLhF,MAAO,SAA2B0yB,EAAGpG,GACnC7uB,KAAK2sH,YAAYrmH,IAAMuoB,EAAI7uB,KAAKgO,QAAQqiC,KACxCrwC,KAAK2sH,YAAYzmH,KAAO+uB,EAAIj1B,KAAKgO,QAAQqiC,KACzCrwC,KAAK2sH,YAAYvmH,MAAQ6uB,EAAIj1B,KAAKgO,QAAQqiC,KAC1CrwC,KAAK2sH,YAAYhuE,OAAS9vB,EAAI7uB,KAAKgO,QAAQqiC,KAG3CrwC,KAAK2sH,YAAYzmH,KAAOzD,KAAKL,IAAIpC,KAAK2sH,YAAYzmH,KAAMlG,KAAKkuH,YAAY79E,KAAKnqC,MAC9ElG,KAAK2sH,YAAYvmH,MAAQ3D,KAAKJ,IAAIrC,KAAK2sH,YAAYvmH,MAAOpG,KAAKkuH,YAAY79E,KAAKnqC,KAAOlG,KAAKkuH,YAAY79E,KAAKjgC,OAC7GpQ,KAAK2sH,YAAYhuE,OAASl8C,KAAKJ,IAAIrC,KAAK2sH,YAAYhuE,OAAQ3+C,KAAK2sH,YAAYhuE,OAAS3+C,KAAKk5H,gBAG7F3xH,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GAEpC,MADAr9D,MAAK2vH,OAAOr6G,GACQ,GAAbtV,KAAKoQ,UAGT+8G,GACP0L,EAA2B,QAE7Bj5H,GAAiB,QAAIutH,GAIjB,SAAUttH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCE,EAAax2H,EAAoB,KAEjCy2H,EAAa91H,EAAuB61H,GAIpCtJ,EAAW,SAAUwJ,GAGvB,QAASxJ,GAASp/G,EAAS2C,EAAMu9G,IAC/B,EAAIv7B,EAA0B,SAAG3yF,KAAMotH,EAEvC,IAAInzB,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAOotH,EAASyJ,YAAa,EAAIR,EAA0B,SAAGjJ,IAAW7sH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,GAG3J,OADAj0B,GAAM68B,YAAY5I,GACXj0B,EAkCT,OA1CA,EAAIw8B,EAAoB,SAAGrJ,EAAUwJ,IAWrC,EAAI/jC,EAAuB,SAAGu6B,IAC5B7lH,IAAK,SACLhF,MAAO,SAAgB+S,EAAKywE,EAAUl6E,GACpC,GAAI7L,KAAK+rH,aAAahmC,EAAUl6E,GAAQ,CACtC7L,KAAK+2H,SAAW/2H,KAAKkuH,YAAY8I,YAAY1hH,EAAKywE,EAAUl6E,EAC5D,IAAIwkC,GAAOrwC,KAAK+2H,SAAS3mH,MAAQpQ,KAAKikD,OAAO79C,MAAQpG,KAAKikD,OAAO/9C,IACjElG,MAAKoQ,MAAQigC,EACbrwC,KAAKqQ,OAASggC,EACdrwC,KAAK0oD,OAAS1oD,KAAKoQ,MAAQ,MAI/B7I,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAK2vH,OAAOr6G,EAAKywE,EAAUl6E,GAC3B7L,KAAKkG,KAAO+uB,EAAIj1B,KAAKoQ,MAAQ,EAC7BpQ,KAAKsG,IAAMuoB,EAAI7uB,KAAKqQ,OAAS,EAE7BrQ,KAAKi3H,mBAAmB3hH,EAAKJ,GAC7BI,EAAI2rG,SAAShsF,EAAIj1B,KAAKoQ,MAAQ,EAAGye,EAAI7uB,KAAKqQ,OAAS,EAAGrQ,KAAKoQ,MAAOpQ,KAAKqQ,QACvErQ,KAAKk3H,YAAY5hH,EAAKJ,GAEtBlV,KAAK0vH,kBAAkBz6F,EAAGpG,EAAGvZ,EAAKywE,EAAUl6E,GAC5C7L,KAAKkuH,YAAYlxB,KAAK1nF,EAAKtV,KAAKkG,KAAOlG,KAAK+2H,SAAS3mH,MAAQ,EAAIpQ,KAAKikD,OAAO/9C,KAAMlG,KAAKsG,IAAMtG,KAAK+2H,SAAS1mH,OAAS,EAAIrQ,KAAKikD,OAAO39C,IAAKy/E,EAAUl6E,MAGtJtE,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKg6H,kBAAkB1kH,EAAK+nD,OAGhC+vD,GACPuJ,EAAoB,QAEtB/2H,GAAiB,QAAIwtH,GAIjB,SAAUvtH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCyD,EAAc/5H,EAAoB,KAElCg6H,EAAcr5H,EAAuBo5H,GAIrC5M,EAAU,SAAU8M,GAGtB,QAAS9M,GAAQr/G,EAAS2C,EAAMu9G,GAE9B,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMqtH,IAChC,EAAIkJ,EAAqC,SAAGv2H,MAAOqtH,EAAQwJ,YAAa,EAAIR,EAA0B,SAAGhJ,IAAU9sH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IActJ,OAlBA,EAAIuI,EAAoB,SAAGpJ,EAAS8M,IAOpC,EAAItnC,EAAuB,SAAGw6B,IAC5B9lH,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAKo6H,WAAW9kH,EAAK,UAAW,EAAG2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,MAG5D3N,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKg6H,kBAAkB1kH,EAAK+nD,OAGhCgwD,GACP6M,EAAqB,QAEvBt6H,GAAiB,QAAIytH,GAIjB,SAAUxtH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCE,EAAax2H,EAAoB,KAEjCy2H,EAAa91H,EAAuB61H,GAIpC2D,EAAY,SAAUzD,GAGxB,QAASyD,GAAUrsH,EAAS2C,EAAMu9G,GAEhC,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMq6H,IAChC,EAAI9D,EAAqC,SAAGv2H,MAAOq6H,EAAUxD,YAAa,EAAIR,EAA0B,SAAGgE,IAAY95H,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IAqD1J,OAzDA,EAAIuI,EAAoB,SAAG4D,EAAWzD,IAOtC,EAAI/jC,EAAuB,SAAGwnC,IAC5B9yH,IAAK,SACLhF,MAAO,SAAgB+S,GACrB,GAAIywE,GAAWpiF,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK+lF,SACpFl6E,EAAQlI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK6L,MACjFqJ,EAASvR,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,IAAO0sC,KAAMrwC,KAAKgO,QAAQqiC,KAEtG,IAAIrwC,KAAK+rH,aAAahmC,EAAUl6E,GAAQ,CACtC7L,KAAKkuH,YAAY8I,YAAY1hH,EAAKywE,EAAUl6E,EAC5C,IAAIwkC,GAAO,EAAIn7B,EAAOm7B,IACtBrwC,MAAKoQ,MAAQigC;cACbrwC,KAAKqQ,OAASggC,EACdrwC,KAAK0oD,OAAS,GAAM1oD,KAAKoQ,UAI7B7I,IAAK,aACLhF,MAAO,SAAoB+S,EAAKkwG,EAAO8U,EAAgBrlG,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAS5E,GARAlV,KAAK2vH,OAAOr6G,EAAKywE,EAAUl6E,EAAOqJ,GAClClV,KAAKkG,KAAO+uB,EAAIj1B,KAAKoQ,MAAQ,EAC7BpQ,KAAKsG,IAAMuoB,EAAI7uB,KAAKqQ,OAAS,EAE7BrQ,KAAKi3H,mBAAmB3hH,EAAKJ,GAC7BI,EAAIkwG,GAAOvwF,EAAGpG,EAAG3Z,EAAOm7B,MACxBrwC,KAAKk3H,YAAY5hH,EAAKJ,OAEKrR,KAAvB7D,KAAKgO,QAAQsiC,MAAqB,CAEpCtwC,KAAKkuH,YAAYiE,mBAAmB78G,EAAKywE,EAAUl6E,EAAOopB,EAAGpG,EAAG,UAChE,IAAIipB,GAASjpB,EAAI,GAAM7uB,KAAKqQ,OAAS,GAAMrQ,KAAKkuH,YAAY79E,KAAKhgC,MACjErQ,MAAKkuH,YAAYlxB,KAAK1nF,EAAK2f,EAAG6iB,EAAQiuC,EAAUl6E,EAAO,WAGzD7L,KAAK0vH,kBAAkBz6F,EAAGpG,MAG5BtnB,IAAK,oBACLhF,MAAO,SAA2B0yB,EAAGpG,GACnC7uB,KAAK2sH,YAAYrmH,IAAMuoB,EAAI7uB,KAAKgO,QAAQqiC,KACxCrwC,KAAK2sH,YAAYzmH,KAAO+uB,EAAIj1B,KAAKgO,QAAQqiC,KACzCrwC,KAAK2sH,YAAYvmH,MAAQ6uB,EAAIj1B,KAAKgO,QAAQqiC,KAC1CrwC,KAAK2sH,YAAYhuE,OAAS9vB,EAAI7uB,KAAKgO,QAAQqiC,SAEhBxsC,KAAvB7D,KAAKgO,QAAQsiC,OAAuBtwC,KAAKkuH,YAAY79E,KAAKjgC,MAAQ,IACpEpQ,KAAK2sH,YAAYzmH,KAAOzD,KAAKL,IAAIpC,KAAK2sH,YAAYzmH,KAAMlG,KAAKkuH,YAAY79E,KAAKnqC,MAC9ElG,KAAK2sH,YAAYvmH,MAAQ3D,KAAKJ,IAAIrC,KAAK2sH,YAAYvmH,MAAOpG,KAAKkuH,YAAY79E,KAAKnqC,KAAOlG,KAAKkuH,YAAY79E,KAAKjgC,OAC7GpQ,KAAK2sH,YAAYhuE,OAASl8C,KAAKJ,IAAIrC,KAAK2sH,YAAYhuE,OAAQ3+C,KAAK2sH,YAAYhuE,OAAS3+C,KAAKkuH,YAAY79E,KAAKhgC,aAI3GgqH,GACP1D,EAAoB,QAEtB/2H,GAAiB,QAAIy6H,GAIjB,SAAUx6H,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCyD,EAAc/5H,EAAoB,KAElCg6H,EAAcr5H,EAAuBo5H,GAIrC3M,EAAM,SAAU6M,GAGlB,QAAS7M,GAAIt/G,EAAS2C,EAAMu9G,GAE1B,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMstH,IAChC,EAAIiJ,EAAqC,SAAGv2H,MAAOstH,EAAIuJ,YAAa,EAAIR,EAA0B,SAAG/I,IAAM/sH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IAe9I,OAnBA,EAAIuI,EAAoB,SAAGnJ,EAAK6M,IAOhC,EAAItnC,EAAuB,SAAGy6B,IAC5B/lH,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAKo6H,WAAW9kH,EAAK,SAAU,EAAG2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,MAG3D3N,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GAEpC,MADAr9D,MAAK2vH,OAAOr6G,GACLtV,KAAKgO,QAAQqiC,SAGjBi9E,GACP4M,EAAqB,QAEvBt6H,GAAiB,QAAI0tH,GAIjB,SAAUztH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCE,EAAax2H,EAAoB,KAEjCy2H,EAAa91H,EAAuB61H,GAIpCnJ,EAAU,SAAUqJ,GAGtB,QAASrJ,GAAQv/G,EAAS2C,EAAMu9G,GAE9B,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMutH,IAChC,EAAIgJ,EAAqC,SAAGv2H,MAAOutH,EAAQsJ,YAAa,EAAIR,EAA0B,SAAG9I,IAAUhtH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IA0CtJ,OA9CA,EAAIuI,EAAoB,SAAGlJ,EAASqJ,IAOpC,EAAI/jC,EAAuB,SAAG06B,IAC5BhmH,IAAK,SACLhF,MAAO,SAAgB+S,GACrB,GAAIywE,GAAWpiF,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK+lF,SACpFl6E,EAAQlI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK6L,KAErF,IAAI7L,KAAK+rH,aAAahmC,EAAUl6E,GAAQ,CACtC,GAAIkrH,GAAW/2H,KAAKkuH,YAAY8I,YAAY1hH,EAAKywE,EAAUl6E,EAE3D7L,MAAKqQ,OAA2B,EAAlB0mH,EAAS1mH,OACvBrQ,KAAKoQ,MAAQ2mH,EAAS3mH,MAAQpQ,KAAKqQ,OACnCrQ,KAAK0oD,OAAS,GAAM1oD,KAAKoQ,UAI7B7I,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAK2vH,OAAOr6G,EAAKywE,EAAUl6E,GAC3B7L,KAAKkG,KAAO+uB,EAAiB,GAAbj1B,KAAKoQ,MACrBpQ,KAAKsG,IAAMuoB,EAAkB,GAAd7uB,KAAKqQ,OAEpBrQ,KAAKi3H,mBAAmB3hH,EAAKJ,GAC7BI,EAAImrG,YAAYzgH,KAAKkG,KAAMlG,KAAKsG,IAAKtG,KAAKoQ,MAAOpQ,KAAKqQ,QACtDrQ,KAAKk3H,YAAY5hH,EAAKJ,GAEtBlV,KAAK0vH,kBAAkBz6F,EAAGpG,EAAGvZ,EAAKywE,EAAUl6E,GAC5C7L,KAAKkuH,YAAYlxB,KAAK1nF,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,MAG7CtE,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpCr9D,KAAK2vH,OAAOr6G,EACZ,IAAI9R,GAAiB,GAAbxD,KAAKoQ,MACT3M,EAAkB,GAAdzD,KAAKqQ,OACT4P,EAAIxd,KAAKw6C,IAAIogB,GAAS75D,EACtB2H,EAAI1I,KAAK06C,IAAIkgB,GAAS55D,CAC1B,OAAOD,GAAIC,EAAIhB,KAAKorD,KAAK5tC,EAAIA,EAAI9U,EAAIA,OAGlCoiH,GACPoJ,EAAoB,QAEtB/2H,GAAiB,QAAI2tH,GAIjB,SAAU1tH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCE,EAAax2H,EAAoB,KAEjCy2H,EAAa91H,EAAuB61H,GAIpClJ,EAAO,SAAUoJ,GAGnB,QAASpJ,GAAKx/G,EAAS2C,EAAMu9G,IAC3B,EAAIv7B,EAA0B,SAAG3yF,KAAMwtH,EAEvC,IAAIvzB,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAOwtH,EAAKqJ,YAAa,EAAIR,EAA0B,SAAG7I,IAAOjtH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,GAGnJ,OADAj0B,GAAM68B,YAAY5I,GACXj0B,EA6ET,OArFA,EAAIw8B,EAAoB,SAAGjJ,EAAMoJ,IAWjC,EAAI/jC,EAAuB,SAAG26B,IAC5BjmH,IAAK,SACLhF,MAAO,SAAgB+S,EAAKywE,EAAUl6E,GAChC7L,KAAK+rH,aAAahmC,EAAUl6E,KAC9B7L,KAAKi5G,UACH7oG,MAAOvO,OAAO7B,KAAKgO,QAAQ4nG,KAAKvlE,MAChChgC,OAAQxO,OAAO7B,KAAKgO,QAAQ4nG,KAAKvlE,OAEnCrwC,KAAKoQ,MAAQpQ,KAAKi5G,SAAS7oG,MAAQpQ,KAAKikD,OAAO79C,MAAQpG,KAAKikD,OAAO/9C,KACnElG,KAAKqQ,OAASrQ,KAAKi5G,SAAS5oG,OAASrQ,KAAKikD,OAAO39C,IAAMtG,KAAKikD,OAAOtF,OACnE3+C,KAAK0oD,OAAS,GAAM1oD,KAAKoQ,UAI7B7I,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAQ/C,GAPAlV,KAAK2vH,OAAOr6G,EAAKywE,EAAUl6E,GAC3B7L,KAAKgO,QAAQ4nG,KAAKvlE,KAAOrwC,KAAKgO,QAAQ4nG,KAAKvlE,MAAQ,GAEnDrwC,KAAKkG,KAAO+uB,EAAIj1B,KAAKoQ,MAAQ,EAC7BpQ,KAAKsG,IAAMuoB,EAAI7uB,KAAKqQ,OAAS,EAC7BrQ,KAAKu6H,MAAMjlH,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,OAEZrR,KAAvB7D,KAAKgO,QAAQsiC,MAAqB,CAEpCtwC,KAAKkuH,YAAYlxB,KAAK1nF,EAAKtV,KAAKkG,KAAOlG,KAAKi5G,SAAS7oG,MAAQ,EAAIpQ,KAAKikD,OAAO/9C,KAAM2oB,EAAI7uB,KAAKqQ,OAAS,EAD/E,EACoG01E,GAG5H/lF,KAAK0vH,kBAAkBz6F,EAAGpG,MAG5BtnB,IAAK,oBACLhF,MAAO,SAA2B0yB,EAAGpG,GAMnC,GALA7uB,KAAK2sH,YAAYrmH,IAAMuoB,EAA6B,GAAzB7uB,KAAKgO,QAAQ4nG,KAAKvlE,KAC7CrwC,KAAK2sH,YAAYzmH,KAAO+uB,EAA6B,GAAzBj1B,KAAKgO,QAAQ4nG,KAAKvlE,KAC9CrwC,KAAK2sH,YAAYvmH,MAAQ6uB,EAA6B,GAAzBj1B,KAAKgO,QAAQ4nG,KAAKvlE,KAC/CrwC,KAAK2sH,YAAYhuE,OAAS9vB,EAA6B,GAAzB7uB,KAAKgO,QAAQ4nG,KAAKvlE,SAErBxsC,KAAvB7D,KAAKgO,QAAQsiC,OAAuBtwC,KAAKkuH,YAAY79E,KAAKjgC,MAAQ,EAAG,CAEvEpQ,KAAK2sH,YAAYzmH,KAAOzD,KAAKL,IAAIpC,KAAK2sH,YAAYzmH,KAAMlG,KAAKkuH,YAAY79E,KAAKnqC,MAC9ElG,KAAK2sH,YAAYvmH,MAAQ3D,KAAKJ,IAAIrC,KAAK2sH,YAAYvmH,MAAOpG,KAAKkuH,YAAY79E,KAAKnqC,KAAOlG,KAAKkuH,YAAY79E,KAAKjgC,OAC7GpQ,KAAK2sH,YAAYhuE,OAASl8C,KAAKJ,IAAIrC,KAAK2sH,YAAYhuE,OAAQ3+C,KAAK2sH,YAAYhuE,OAAS3+C,KAAKkuH,YAAY79E,KAAKhgC,OAHtF,OAO1B9I,IAAK,QACLhF,MAAO,SAAe+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAChD,GAAI+jG,GAAWp3G,OAAO7B,KAAKgO,QAAQ4nG,KAAKvlE,UAETxsC,KAA3B7D,KAAKgO,QAAQ4nG,KAAKphF,MACpBlf,EAAI6uC,MAAQ4hC,EAAW,QAAU,IAAMkzB,EAAW,MAAQj5G,KAAKgO,QAAQ4nG,KAAK0U,KAG5Eh1G,EAAIuvC,UAAY7kD,KAAKgO,QAAQ4nG,KAAK1rG,OAAS,QAC3CoL,EAAI+vC,UAAY,SAChB/vC,EAAIgwC,aAAe,SAGnBtlD,KAAKy4H,aAAanjH,EAAKJ,GACvBI,EAAIiwC,SAASvlD,KAAKgO,QAAQ4nG,KAAKphF,KAAMS,EAAGpG,GAGxC7uB,KAAK04H,cAAcpjH,EAAKJ,IAExBsQ,QAAQ83E,MAAM,gIAIlB/1F,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKg6H,kBAAkB1kH,EAAK+nD,OAGhCmwD,GACPmJ,EAAoB,QAEtB/2H,GAAiB,QAAI4tH,GAIjB,SAAU3tH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCoC,EAAoB14H,EAAoB,KAExC24H,EAAoBh4H,EAAuB+3H,GAI3C5P,EAAQ,SAAU8P,GAGpB,QAAS9P,GAAMh7G,EAAS2C,EAAMu9G,EAAaO,EAAUG,IACnD,EAAIj8B,EAA0B,SAAG3yF,KAAMgpH,EAEvC,IAAI/uB,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAOgpH,EAAM6N,YAAa,EAAIR,EAA0B,SAAGrN,IAAQzoH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,GAGrJ,OADAj0B,GAAMk/B,UAAU1K,EAAUG,GACnB30B,EA6ET,OArFA,EAAIw8B,EAAoB,SAAGzN,EAAO8P,IAWlC,EAAIjmC,EAAuB,SAAGm2B,IAC5BzhH,IAAK,SACLhF,MAAO,SAAgB+S,GACrB,GAAIywE,GAAWpiF,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK+lF,SACpFl6E,EAAQlI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK6L,KAIrF,QAFwChI,KAAtB7D,KAAKyuH,SAAS/1G,SAA6C7U,KAAxB7D,KAAKyuH,SAASr+G,WAAgDvM,KAAzB7D,KAAKyuH,SAASp+G,OAEvF,CACf,GAAI2oG,GAA2B,EAApBh5G,KAAKgO,QAAQqiC,IAGxB,OAFArwC,MAAKoQ,MAAQ4oG,OACbh5G,KAAKqQ,OAAS2oG,GAIZh5G,KAAK+rH,aAAahmC,EAAUl6E,IAC9B7L,KAAK25H,kBAITpyH,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAM/C,GALAlV,KAAK45H,aAAa7zC,GAClB/lF,KAAK2vH,SACL3vH,KAAKkG,KAAO+uB,EAAIj1B,KAAKoQ,MAAQ,EAC7BpQ,KAAKsG,IAAMuoB,EAAI7uB,KAAKqQ,OAAS,GAE2B,IAApDrQ,KAAKgO,QAAQu9G,gBAAgBG,mBAA6B,CAC5D,GAAI8O,GAAqBx6H,KAAKgO,QAAQinD,YAClCwlE,EAAqBz6H,KAAKgO,QAAQo8G,qBAAuB,EAAIpqH,KAAKgO,QAAQinD,YAC1EA,GAAe8wB,EAAW00C,EAAqBD,GAAsBx6H,KAAK2Q,KAAKuqG,KAAK14G,KACxF8S,GAAI4uC,UAAYzhD,KAAKL,IAAIpC,KAAKoQ,MAAO6kD,GAErC3/C,EAAIkvC,YAGJlvC,EAAIivC,YAAcwhC,EAAW/lF,KAAKgO,QAAQ9D,MAAM0B,UAAUD,OAASE,EAAQ7L,KAAKgO,QAAQ9D,MAAM2B,MAAMF,OAAS3L,KAAKgO,QAAQ9D,MAAMyB,OAGhI2J,EAAIuvC,UAAYkhC,EAAW/lF,KAAKgO,QAAQ9D,MAAM0B,UAAUF,WAAaG,EAAQ7L,KAAKgO,QAAQ9D,MAAM2B,MAAMH,WAAa1L,KAAKgO,QAAQ9D,MAAMwB,WAGtI4J,EAAIs7B,KAAK5wC,KAAKkG,KAAO,GAAMoP,EAAI4uC,UAAWlkD,KAAKsG,IAAM,GAAMgP,EAAI4uC,UAAWlkD,KAAKoQ,MAAQkF,EAAI4uC,UAAWlkD,KAAKqQ,OAASiF,EAAI4uC,WACxH5uC,EAAI4kC,OAEJl6C,KAAK24H,cAAcrjH,EAAKJ,GAExBI,EAAIwvC,YAGN9kD,KAAK85H,qBAAqBxkH,EAAKJ,GAE/BlV,KAAK+5H,gBAAgBzkH,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,GAE1C7L,KAAK0vH,kBAAkBz6F,EAAGpG,MAG5BtnB,IAAK,oBACLhF,MAAO,SAA2B0yB,EAAGpG,GACnC7uB,KAAK2vH,SACL3vH,KAAKm3H,mBAAmBliG,EAAGpG,OAEAhrB,KAAvB7D,KAAKgO,QAAQsiC,OAAuBtwC,KAAKkuH,YAAY79E,KAAKjgC,MAAQ,IACpEpQ,KAAK2sH,YAAYzmH,KAAOzD,KAAKL,IAAIpC,KAAK2sH,YAAYzmH,KAAMlG,KAAKkuH,YAAY79E,KAAKnqC,MAC9ElG,KAAK2sH,YAAYvmH,MAAQ3D,KAAKJ,IAAIrC,KAAK2sH,YAAYvmH,MAAOpG,KAAKkuH,YAAY79E,KAAKnqC,KAAOlG,KAAKkuH,YAAY79E,KAAKjgC,OAC7GpQ,KAAK2sH,YAAYhuE,OAASl8C,KAAKJ,IAAIrC,KAAK2sH,YAAYhuE,OAAQ3+C,KAAK2sH,YAAYhuE,OAAS3+C,KAAKk5H,iBAI/F3xH,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKg6H,kBAAkB1kH,EAAK+nD,OAGhC2rD,GACP6P,EAA2B,QAE7Bj5H,GAAiB,QAAIopH,GAIjB,SAAUnpH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCyD,EAAc/5H,EAAoB,KAElCg6H,EAAcr5H,EAAuBo5H,GAIrCxM,EAAS,SAAU0M,GAGrB,QAAS1M,GAAOz/G,EAAS2C,EAAMu9G,GAE7B,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMytH,IAChC,EAAI8I,EAAqC,SAAGv2H,MAAOytH,EAAOoJ,YAAa,EAAIR,EAA0B,SAAG5I,IAASltH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IAcpJ,OAlBA,EAAIuI,EAAoB,SAAGhJ,EAAQ0M,IAOnC,EAAItnC,EAAuB,SAAG46B,IAC5BlmH,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAKo6H,WAAW9kH,EAAK,SAAU,EAAG2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,MAG3D3N,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKg6H,kBAAkB1kH,EAAK+nD,OAGhCowD,GACPyM,EAAqB,QAEvBt6H,GAAiB,QAAI6tH,GAIjB,SAAU5tH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCyD,EAAc/5H,EAAoB,KAElCg6H,EAAcr5H,EAAuBo5H,GAIrCvM,EAAO,SAAUyM,GAGnB,QAASzM,GAAK1/G,EAAS2C,EAAMu9G,GAE3B,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAM0tH,IAChC,EAAI6I,EAAqC,SAAGv2H,MAAO0tH,EAAKmJ,YAAa,EAAIR,EAA0B,SAAG3I,IAAOntH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IAchJ,OAlBA,EAAIuI,EAAoB,SAAG/I,EAAMyM,IAOjC,EAAItnC,EAAuB,SAAG66B,IAC5BnmH,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAKo6H,WAAW9kH,EAAK,OAAQ,EAAG2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,MAGzD3N,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKg6H,kBAAkB1kH,EAAK+nD,OAGhCqwD,GACPwM,EAAqB,QAEvBt6H,GAAiB,QAAI8tH,GAIjB,SAAU7tH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCE,EAAax2H,EAAoB,KAEjCy2H,EAAa91H,EAAuB61H,GAIpC/I,EAAO,SAAUiJ,GAGnB,QAASjJ,GAAK3/G,EAAS2C,EAAMu9G,IAC3B,EAAIv7B,EAA0B,SAAG3yF,KAAM2tH,EAEvC,IAAI1zB,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAO2tH,EAAKkJ,YAAa,EAAIR,EAA0B,SAAG1I,IAAOptH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,GAGnJ,OADAj0B,GAAM68B,YAAY5I,GACXj0B,EAmCT,OA3CA,EAAIw8B,EAAoB,SAAG9I,EAAMiJ,IAWjC,EAAI/jC,EAAuB,SAAG86B,IAC5BpmH,IAAK,SACLhF,MAAO,SAAgB+S,EAAKywE,EAAUl6E,GAChC7L,KAAK+rH,aAAahmC,EAAUl6E,KAC9B7L,KAAK+2H,SAAW/2H,KAAKkuH,YAAY8I,YAAY1hH,EAAKywE,EAAUl6E,GAC5D7L,KAAKoQ,MAAQpQ,KAAK+2H,SAAS3mH,MAAQpQ,KAAKikD,OAAO79C,MAAQpG,KAAKikD,OAAO/9C,KACnElG,KAAKqQ,OAASrQ,KAAK+2H,SAAS1mH,OAASrQ,KAAKikD,OAAO39C,IAAMtG,KAAKikD,OAAOtF,OACnE3+C,KAAK0oD,OAAS,GAAM1oD,KAAKoQ,UAI7B7I,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAK2vH,OAAOr6G,EAAKywE,EAAUl6E,GAC3B7L,KAAKkG,KAAO+uB,EAAIj1B,KAAKoQ,MAAQ,EAC7BpQ,KAAKsG,IAAMuoB,EAAI7uB,KAAKqQ,OAAS,EAG7BrQ,KAAKy4H,aAAanjH,EAAKJ,GACvBlV,KAAKkuH,YAAYlxB,KAAK1nF,EAAKtV,KAAKkG,KAAOlG,KAAK+2H,SAAS3mH,MAAQ,EAAIpQ,KAAKikD,OAAO/9C,KAAMlG,KAAKsG,IAAMtG,KAAK+2H,SAAS1mH,OAAS,EAAIrQ,KAAKikD,OAAO39C,IAAKy/E,EAAUl6E,GAGpJ7L,KAAK04H,cAAcpjH,EAAKJ,GAExBlV,KAAK0vH,kBAAkBz6F,EAAGpG,EAAGvZ,EAAKywE,EAAUl6E,MAG9CtE,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKg6H,kBAAkB1kH,EAAK+nD,OAGhCswD,GACPgJ,EAAoB,QAEtB/2H,GAAiB,QAAI+tH,GAIjB,SAAU9tH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCyD,EAAc/5H,EAAoB,KAElCg6H,EAAcr5H,EAAuBo5H,GAIrCrM,EAAW,SAAUuM,GAGvB,QAASvM,GAAS5/G,EAAS2C,EAAMu9G,GAE/B,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAM4tH,IAChC,EAAI2I,EAAqC,SAAGv2H,MAAO4tH,EAASiJ,YAAa,EAAIR,EAA0B,SAAGzI,IAAWrtH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IAcxJ,OAlBA,EAAIuI,EAAoB,SAAG7I,EAAUuM,IAOrC,EAAItnC,EAAuB,SAAG+6B,IAC5BrmH,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAKo6H,WAAW9kH,EAAK,WAAY,EAAG2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,MAG7D3N,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKg6H,kBAAkB1kH,EAAK+nD,OAGhCuwD,GACPsM,EAAqB,QAEvBt6H,GAAiB,QAAIguH,GAIjB,SAAU/tH,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCyD,EAAc/5H,EAAoB,KAElCg6H,EAAcr5H,EAAuBo5H,GAIrCpM,EAAe,SAAUsM,GAG3B,QAAStM,GAAa7/G,EAAS2C,EAAMu9G,GAEnC,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAM6tH,IAChC,EAAI0I,EAAqC,SAAGv2H,MAAO6tH,EAAagJ,YAAa,EAAIR,EAA0B,SAAGxI,IAAettH,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IAchK,OAlBA,EAAIuI,EAAoB,SAAG5I,EAAcsM,IAOzC,EAAItnC,EAAuB,SAAGg7B,IAC5BtmH,IAAK,OACLhF,MAAO,SAAc+S,EAAK2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,GAC/ClV,KAAKo6H,WAAW9kH,EAAK,eAAgB,EAAG2f,EAAGpG,EAAGk3D,EAAUl6E,EAAOqJ,MAGjE3N,IAAK,mBACLhF,MAAO,SAA0B+S,EAAK+nD,GACpC,MAAOr9D,MAAKg6H,kBAAkB1kH,EAAK+nD,OAGhCwwD,GACPqM,EAAqB,QAEvBt6H,GAAiB,QAAIiuH,GAIjB,SAAUhuH,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAC3BquC,EAAUruC,EAAoB,IAC9BsuC,EAAWtuC,EAAoB,IAE/Bw6H,EAAOx6H,EAAoB,KAAc,QACzCgqH,EAAQhqH,EAAoB,KAAc,QAG1Cs8G,GAFet8G,EAAoB,KAAc,QAElC,WACjB,QAASs8G,GAAa7rG,EAAMyqG,EAAQvtC,GAClC,GAAIosB,GAAQj6F,MAEZ,EAAI2yF,EAA0B,SAAG3yF,KAAMw8G,GAEvCx8G,KAAK2Q,KAAOA,EACZ3Q,KAAKo7G,OAASA,EACdp7G,KAAK6tE,OAASA,EAGd7tE,KAAK2Q,KAAKoqG,UAAUE,WAAaj7G,KAAKgY,OAAO4/C,KAAK53D,MAElDA,KAAK26H,gBACHhqG,IAAK,SAAapoB,EAAOspC,GACvBooD,EAAMtpE,IAAIkhB,EAAOM,QAEnBC,OAAQ,SAAgB7pC,EAAOspC,GAC7BooD,EAAM7nD,OAAOP,EAAOM,QAEtByB,OAAQ,SAAgBrrC,EAAOspC,GAC7BooD,EAAMrmD,OAAO/B,EAAOM,SAIxBnyC,KAAKgO,WACLhO,KAAKguE,gBACH63C,QACEniG,IAAMxV,SAAS,EAAO0sH,YAAa,EAAG31H,KAAM,SAC5C0J,QAAUT,SAAS,EAAO0sH,YAAa,EAAG31H,KAAM,SAChD0e,MAAQzV,SAAS,EAAO0sH,YAAa,EAAG31H,KAAM,UAEhD41H,oBAAoB,EACpB3wH,OACEA,MAAO,UACP0B,UAAW,UACXC,MAAO,UACPotD,QAAS,OACT9uD,QAAS,GAEXguH,QAAQ,EACRh0E,MACEj6C,MAAO,UACPmmC,KAAM,GACNi6E,KAAM,QACN5+G,WAAY,OACZ0uC,YAAa,EACbmwE,YAAa,UACbzqC,MAAO,aACP2qC,OAAO,EACPD,QAAS,EACTE,MACEC,IAAK,QAEPC,UACED,IAAK,eAEPE,MACEF,IAAK,UAEPG,MACEH,IAAK,GACLt6E,KAAM,GACNi6E,KAAM,cACNE,QAAS,IAGbpxC,QAAQ,EACR0hD,WAAY,IACZxqF,UAAOzsC,GACPknH,oBAAoB,EACpBnnH,WAAQC,GACRo5F,SAAS,EACTiuB,SACE9oH,IAAK,EACLC,IAAK,GACLiuC,OACEpiC,SAAS,EACT9L,IAAK,GACLC,IAAK,GACL8oH,WAAY,GACZC,cAAe,GAEjBC,sBAAuB,SAA+BjpH,EAAKC,EAAKC,EAAOC,GACrE,GAAIF,IAAQD,EACV,MAAO,EAEP,IAAII,GAAQ,GAAKH,EAAMD,EACvB,OAAOK,MAAKJ,IAAI,GAAIE,EAAQH,GAAOI,KAIzCu4H,eAAgB,IAChBC,kBAAmB,GACnB1P,QACEp9G,SAAS,EACThE,MAAO,kBACPmmC,KAAM,GACNpb,EAAG,EACHpG,EAAG,GAELosG,QACE/sH,SAAS,EACTjJ,KAAM,UACNi2H,eAAgB,OAChBC,UAAW,IAEbx9C,UAAO95E,GACPuM,MAAO,EACP7N,UAAOsB,IAGTlD,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAE/BhuE,KAAKm7G,qBA4TP,OAzTA,EAAItoB,EAAuB,SAAG2pB,IAC5Bj1G,IAAK,qBACLhF,MAAO,WACL,GAAIg5F,GAASv7F,IAGbA,MAAK2Q,KAAKk+D,QAAQt9B,GAAG,6BAA8B,SAAUtsC,GAC3D,GAAI8mD,KAAOpoD,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAE7D,aAATsB,IACFA,EAAO,aAET,IAAIqnH,IAAc,CAClB,KAAK,GAAIrP,KAAU1hB,GAAO5qF,KAAKwpG,MAC7B,GAAI5e,EAAO5qF,KAAKwpG,MAAM72G,eAAe25G,GAAS,CAC5C,GAAIyC,GAAOnkB,EAAO5qF,KAAKwpG,MAAM8C,GACzBme,EAAW7/B,EAAO5qF,KAAK+jB,KAAKylF,MAAM39E,MAAMygF,EAI5C,QAAiBp5G,KAAbu3H,EAAwB,CAC1B,GAAIC,GAAcD,EAASH,WACPp3H,KAAhBw3H,IAC0B,IAAxBA,EAAYntH,SAAyC,YAArBmtH,EAAYp2H,WACjCpB,KAAToB,EACFy6G,EAAKxuE,YAAa+pF,QAAQ,IAE1Bvb,EAAKxuE,YAAa+pF,QAAUh2H,KAAMA,KAEpCqnH,GAAc,KAMX,IAATvgE,IAAiC,IAAhBugE,GACnB/wB,EAAO5qF,KAAKk+D,QAAQ9iB,KAAK,kBAY7B/rD,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WACnCgqD,EAAO+/B,mBAITt7H,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgBvxC,KAAK21C,QAAQiiB,KAAK53D,OACvDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAWvxC,KAAK21C,QAAQiiB,KAAK53D,OAClDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,WAC9B5wC,EAAKuG,QAAQq0F,EAAOo/B,eAAgB,SAAUxzH,EAAUoB,GAClDgzF,EAAO5qF,KAAK+jB,KAAKylF,OAAO5e,EAAO5qF,KAAK+jB,KAAKylF,MAAMzoE,IAAInpC,EAAOpB,WAEzDo0F,GAAO5qF,KAAKoqG,UAAUE,iBACtB1f,GAAOo/B,eAAehqG,UACtB4qE,GAAOo/B,eAAevoF,aACtBmpD,GAAOo/B,eAAe/mF,aACtB2nD,GAAOo/B,oBAIlBpzH,IAAK,aACLhF,MAAO,SAAoByL,GAEzB,GADAhO,KAAKq7H,YAAcrtH,MACHnK,KAAZmK,EAAuB,CAEzB0sH,EAAK9O,aAAa5rH,KAAKgO,QAASA,EAGhC,IAAIs+G,IAAc,CAClB,QAAuBzoH,KAAnBmK,EAAQitH,OACV,IAAK,GAAIhe,KAAUj9G,MAAK2Q,KAAKwpG,MACvBn6G,KAAK2Q,KAAKwpG,MAAM72G,eAAe25G,KACjCqP,EAActsH,KAAK2Q,KAAKwpG,MAAM8C,GAAQse,kBAAoBjP,EAMhE,QAAqBzoH,KAAjBmK,EAAQm2C,KAAoB,CAE9B+lE,EAAM0B,aAAa5rH,KAAKgO,QAAQm2C,KAAMn2C,EACtC,KAAK,GAAIwtH,KAAWx7H,MAAK2Q,KAAKwpG,MACxBn6G,KAAK2Q,KAAKwpG,MAAM72G,eAAek4H,IACjCx7H,KAAK2Q,KAAKwpG,MAAMqhB,GAAS1P,wBAMRjoH,KAAnBmK,EAAQorE,YAA4Cv1E,KAApBmK,EAAQivF,UAAyC,IAAhBqvB,GACnEtsH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,oBAa7BxkD,IAAK,UACLhF,MAAO,SAAiB43G,GACtB,GAAIxe,GAAS37F,KAETisH,EAAYtoH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAE3E83H,EAAez7H,KAAK2Q,KAAK+jB,KAAKylF,KAElC,IAAIA,YAAiB5rE,IAAW4rE,YAAiB3rE,GAC/CxuC,KAAK2Q,KAAK+jB,KAAKylF,MAAQA,MAClB,IAAIh2G,MAAMC,QAAQ+1G,GACvBn6G,KAAK2Q,KAAK+jB,KAAKylF,MAAQ,GAAI5rE,GAC3BvuC,KAAK2Q,KAAK+jB,KAAKylF,MAAMxpF,IAAIwpF,OACpB,CAAA,GAAKA,EAGV,KAAM,IAAI51G,WAAU,4BAFpBvE,MAAK2Q,KAAK+jB,KAAKylF,MAAQ,GAAI5rE,GAiB7B,GAXIktF,GAEF96H,EAAKuG,QAAQlH,KAAK26H,eAAgB,SAAUxzH,EAAUoB,GACpDkzH,EAAa/pF,IAAInpC,EAAOpB,KAK5BnH,KAAK2Q,KAAKwpG,SAGNn6G,KAAK2Q,KAAK+jB,KAAKylF,MAAO,CAExBx5G,EAAKuG,QAAQlH,KAAK26H,eAAgB,SAAUxzH,EAAUoB,GACpDozF,EAAOhrF,KAAK+jB,KAAKylF,MAAM5oE,GAAGhpC,EAAOpB,IAInC,IAAIwrC,GAAM3yC,KAAK2Q,KAAK+jB,KAAKylF,MAAM9mE,QAC/BrzC,MAAK2wB,IAAIgiB,GAAK,GAGhB3yC,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,sCACL,IAAdkgE,GACFjsH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAW3BxkD,IAAK,MACLhF,MAAO,SAAaowC,GAMlB,IAAK,GALDs5E,GAAYtoH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAE3Ew2G,EAAQn6G,KAAK2Q,KAAKwpG,MAClBuhB,EAAY17H,KAAK2Q,KAAK+jB,KAAKylF,MAEtBp2G,EAAI,EAAGA,EAAI4uC,EAAI/uC,OAAQG,IAAK,CACnC,GAAI1D,GAAKsyC,EAAI5uC,GAET43H,EAAUxhB,EAAM95G,EAChBs7H,IACFA,EAAQC,YAGV,IAAIlnG,GAAOgnG,EAAUjkH,IAAIpX,GAAMw7H,iBAAmB,GAClD1hB,GAAM95G,GAAML,KAAKgY,OAAO0c,GAG1B10B,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,sCAEL,IAAdkgE,GACFjsH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAW3BxkD,IAAK,SACLhF,MAAO,SAAgBowC,GAIrB,IAAK,GAHDwnE,GAAQn6G,KAAK2Q,KAAKwpG,MAClBuhB,EAAY17H,KAAK2Q,KAAK+jB,KAAKylF,MAC3BmS,GAAc,EACTvoH,EAAI,EAAGA,EAAI4uC,EAAI/uC,OAAQG,IAAK,CACnC,GAAI1D,GAAKsyC,EAAI5uC,GACT2wB,EAAOgnG,EAAUjkH,IAAIpX,GACrBq/G,EAAOvF,EAAM95G,OACJwD,KAAT67G,GAEFA,EAAKkc,aACLtP,EAAc5M,EAAKxuE,WAAWxc,IAAS43F,EACvC5M,EAAKoc,YAGL97H,KAAK2Q,KAAKwpG,MAAM95G,GAAML,KAAKgY,OAAO0c,GAClC43F,GAAc,IAIE,IAAhBA,GACFtsH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,qCACvB/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,iBAEvB/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAW3BxkD,IAAK,SACLhF,MAAO,SAAgBowC,GAErB,IAAK,GADDwnE,GAAQn6G,KAAK2Q,KAAKwpG,MACbp2G,EAAI,EAAGA,EAAI4uC,EAAI/uC,OAAQG,IAAK,CACnC,GAAI1D,GAAKsyC,EAAI5uC,GACT27G,EAAOvF,EAAM95G,OACJwD,KAAT67G,IACFA,EAAKqc,UACLrc,EAAKkc,mBACEzhB,GAAM95G,IAIjBL,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAGzBxkD,IAAK,UACLhF,MAAO,WACL,GAAI43G,GAAQn6G,KAAK2Q,KAAKwpG,KACtB,KAAK,GAAI8C,KAAU9C,GAAO,CACxB,GAAIuF,OAAO77G,EACPs2G,GAAM72G,eAAe25G,KACvByC,EAAOvF,EAAM8C,GAEf,IAAIvoF,GAAO10B,KAAK2Q,KAAK+jB,KAAKylF,MAAM39E,MAAMygF,OACzBp5G,KAAT67G,OAA+B77G,KAAT6wB,GACxBgrF,EAAKxuE,WAAWxc,OAKtBntB,IAAK,SACLhF,MAAO,SAAgB42D,GACrB,MAAO,IAAIuhE,GAAKvhE,EAAYn5D,KAAK2Q,KAAM3Q,KAAKgO,QAAShO,KAAKguE,eAAgBhuE,KAAKq7H,gBASjF9zH,IAAK,iBACLhF,MAAO,WACL,GAAIlC,GACA45G,EAAQj6G,KAAK2Q,KAAKspG,MAClBE,EAAQn6G,KAAK2Q,KAAKwpG,KAEtB,KAAK95G,IAAM45G,GACLA,EAAM32G,eAAejD,KACvB45G,EAAM55G,GAAI85G,SAId,KAAK95G,IAAM85G,GACT,GAAIA,EAAM72G,eAAejD,GAAK,CAC5B,GAAIq/G,GAAOvF,EAAM95G,EACjBq/G,GAAK/7F,KAAO,KACZ+7F,EAAKh8F,GAAK,KACVg8F,EAAKoc,cAKXv0H,IAAK,oBACLhF,MAAO,SAA2B06G,GAChC,GAAI2P,KACJ,QAAgC/oH,KAA5B7D,KAAK2Q,KAAKwpG,MAAM8C,GAAuB,CACzC,GAAIyC,GAAO1/G,KAAK2Q,KAAKwpG,MAAM8C,OACPp5G,KAAhB67G,EAAKqN,QACPH,EAAS/nH,KAAK66G,EAAKqN,YAEHlpH,KAAd67G,EAAKoN,MACPF,EAAS/nH,KAAK66G,EAAKoN,MAGvB,MAAOF,OAGJpQ,KAGT58G,GAAiB,QAAI48G,GAIjB,SAAU38G,EAAQD,EAASM,GA4B/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAxBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI4a,GAAajd,EAAoB,IAEjCixC,EAActwC,EAAuBsc,GAErChc,EAAUjB,EAAoB,IAE9BkB,EAAWP,EAAuBM,GAElCI,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCmxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAE3BgqH,EAAQhqH,EAAoB,KAAc,QAC1C87H,EAAkB97H,EAAoB,KAAc,QACpD+7H,EAAoB/7H,EAAoB,KAAc,QACtDg8H,EAAmBh8H,EAAoB,KAAc,QACrDi8H,EAAej8H,EAAoB,KAAc,QAkBjDw6H,EAAO,WACT,QAASA,GAAK1sH,EAAS2C,EAAM1C,EAAe+/D,EAAgBqtD,GAG1D,IAFA,EAAI1oC,EAA0B,SAAG3yF,KAAM06H,OAE1B72H,KAAT8M,EACF,KAAM,kBAER3Q,MAAKgO,QAAUrN,EAAK8M,aAAaQ,GACjCjO,KAAKiO,cAAgBA,EACrBjO,KAAKguE,eAAiBA,EACtBhuE,KAAKq7H,YAAcA,EACnBr7H,KAAK2Q,KAAOA,EAGZ3Q,KAAKK,OAAKwD,GACV7D,KAAK+sH,WAASlpH,GACd7D,KAAK8sH,SAAOjpH,GACZ7D,KAAK+lF,UAAW,EAChB/lF,KAAK6L,OAAQ,EACb7L,KAAKwwH,YAAa,EAElBxwH,KAAKo8H,UAAYp8H,KAAKgO,QAAQoC,MAC9BpQ,KAAKguH,aAAehuH,KAAKgO,QAAQm2C,KAAK9T,KAEtCrwC,KAAK2jB,SAAO9f,GACZ7D,KAAK0jB,OAAK7f,GAEV7D,KAAKq8H,aAAWx4H,GAEhB7D,KAAKs8H,WAAY,EAEjBt8H,KAAKkuH,YAAc,GAAIhE,GAAMlqH,KAAK2Q,KAAM3Q,KAAKgO,SAAS,GACtDhO,KAAKkxC,WAAWljC,GA2lBlB,OAjlBA,EAAI6kF,EAAuB,SAAG6nC,IAC5BnzH,IAAK,aACLhF,MAAO,SAAoByL,GACzB,GAAKA,EAAL,CAIA0sH,EAAK9O,aAAa5rH,KAAKgO,QAASA,GAAS,EAAMhO,KAAKiO,mBAEjCpK,KAAfmK,EAAQ3N,KACVL,KAAKK,GAAK2N,EAAQ3N,QAECwD,KAAjBmK,EAAQ2V,OACV3jB,KAAK+sH,OAAS/+G,EAAQ2V,UAEL9f,KAAfmK,EAAQ0V,KACV1jB,KAAK8sH,KAAO9+G,EAAQ0V,QAEA7f,KAAlBmK,EAAQ2vE,QACV39E,KAAK29E,MAAQ3vE,EAAQ2vE,WAED95E,KAAlBmK,EAAQzL,QACVyL,EAAQzL,MAAQk5B,WAAWztB,EAAQzL,QAGrCvC,KAAKsuH,SAAStgH,GAGdhO,KAAK8rH,kBAAkB99G,GACvBhO,KAAKkuH,YAAYM,eAAexuH,KAAKq7H,YAAartH,EAAShO,KAAKguE,eAEhE,IAAIs+C,GAActsH,KAAKu7H,gBAYvB,OATAv7H,MAAKu8H,wBAGLv8H,KAAK87H,cAEkBj4H,KAAnBmK,EAAQorE,YAA4Cv1E,KAApBmK,EAAQivF,UAC1CqvB,GAAc,GAGTA,MAGT/kH,IAAK,WACLhF,MAAO,SAAkByL,GACvBhO,KAAK6uH,SAAU,CAEf,IAAI59G,IAAQjD,EAAShO,KAAKgO,QAAShO,KAAKq7H,YAAar7H,KAAKguE,gBAEtD8gD,EAASnuH,EAAKqQ,QAAQC,EAAM,SAChC,IAAsB,iBAAX69G,GACT9uH,KAAK6uH,QAAUC,MACV,IAAyF,gBAAlE,KAAXA,EAAyB,aAAc,EAAIttH,EAAkB,SAAGstH,IAAuB,CACxG,GAAI0N,GAAa77H,EAAKqQ,QAAQC,GAAO,SAAU,QACrB,kBAAfurH,IAAkD,kBAAfA,KAC5Cx8H,KAAK6uH,QAAU2N,OAKrBj1H,IAAK,sBACLhF,MAAO,WACL,GAAIk6H,IAAqC,IAA3Bz8H,KAAKgO,QAAQ63G,OAAOniG,KAAkD,IAAnC1jB,KAAKgO,QAAQ63G,OAAOniG,GAAGxV,QACpEwuH,GAAyC,IAA7B18H,KAAKgO,QAAQ63G,OAAOliG,OAAsD,IAArC3jB,KAAKgO,QAAQ63G,OAAOliG,KAAKzV,QAC1EyuH,GAA6C,IAA/B38H,KAAKgO,QAAQ63G,OAAOl3G,SAA0D,IAAvC3O,KAAKgO,QAAQ63G,OAAOl3G,OAAOT,QAChF0uH,EAAgB58H,KAAKgO,QAAQ9D,MAAM+uD,QACnC/jD,GACFunH,QAASA,EACTI,aAAc78H,KAAKgO,QAAQ63G,OAAOniG,GAAGk3G,YACrCkC,YAAa98H,KAAKgO,QAAQ63G,OAAOniG,GAAGze,KACpC03H,YAAaA,EACbI,iBAAkB/8H,KAAKgO,QAAQ63G,OAAOl3G,OAAOisH,YAC7CoC,gBAAiBh9H,KAAKgO,QAAQ63G,OAAOl3G,OAAO1J,KAC5Cy3H,UAAWA,EACXO,eAAgBj9H,KAAKgO,QAAQ63G,OAAOliG,KAAKi3G,YACzCsC,cAAel9H,KAAKgO,QAAQ63G,OAAOliG,KAAK1e,KACxC41H,mBAAoB76H,KAAKgO,QAAQ6sH,mBACjC3wH,MAAO0yH,MAAgB/4H,GAAY7D,KAAKgO,QAAQ9D,MAAMA,MACtD0yH,cAAeA,EACfzyH,QAASnK,KAAKgO,QAAQ9D,MAAMC,QAC5BivE,OAAQp5E,KAAKgO,QAAQorE,OACrBx1E,OAAQ5D,KAAKgO,QAAQpK,OACrB0nH,OAAQtrH,KAAKgO,QAAQs9G,OAAOp9G,QAC5B8gH,YAAahvH,KAAKgO,QAAQs9G,OAAOphH,MACjC+kH,WAAYjvH,KAAKgO,QAAQs9G,OAAOj7E,KAChC6+E,QAASlvH,KAAKgO,QAAQs9G,OAAOr2F,EAC7Bk6F,QAASnvH,KAAKgO,QAAQs9G,OAAOz8F,EAC7BspG,OAAQn4H,KAAKgO,QAAQmqH,OACrB/nH,MAAOpQ,KAAKgO,QAAQoC,MAEtB,IAAIpQ,KAAK+lF,UAAY/lF,KAAK6L,MACxB,IAAqB,IAAjB7L,KAAK6uH,SACP,GAAI7uH,KAAK+lF,SAAU,CACjB,GAAIo3C,GAAgBn9H,KAAKgO,QAAQ+sH,cACJ,mBAAlBoC,GACTjoH,EAAO9E,MAAQ+sH,EAAcjoH,EAAO9E,OACF,gBAAlB+sH,KAChBjoH,EAAO9E,OAAS+sH,GAElBjoH,EAAO9E,MAAQ3N,KAAKJ,IAAI6S,EAAO9E,MAAO,GAAMpQ,KAAK2Q,KAAKuqG,KAAK14G,OAC3D0S,EAAOhL,MAAQlK,KAAKgO,QAAQ9D,MAAM0B,UAClCsJ,EAAOo2G,OAAStrH,KAAKgO,QAAQs9G,OAAOp9G,YAC/B,IAAIlO,KAAK6L,MAAO,CACrB,GAAIivH,GAAa96H,KAAKgO,QAAQ8sH,UACJ,mBAAfA,GACT5lH,EAAO9E,MAAQ0qH,EAAW5lH,EAAO9E,OACF,gBAAf0qH,KAChB5lH,EAAO9E,OAAS0qH,GAElB5lH,EAAO9E,MAAQ3N,KAAKJ,IAAI6S,EAAO9E,MAAO,GAAMpQ,KAAK2Q,KAAKuqG,KAAK14G,OAC3D0S,EAAOhL,MAAQlK,KAAKgO,QAAQ9D,MAAM2B,MAClCqJ,EAAOo2G,OAAStrH,KAAKgO,QAAQs9G,OAAOp9G,aAEL,kBAAjBlO,MAAK6uH,UACrB7uH,KAAK6uH,QAAQ35G,EAAQlV,KAAKgO,QAAQ3N,GAAIL,KAAK+lF,SAAU/lF,KAAK6L,WACrChI,KAAjBqR,EAAOhL,QACTgL,EAAO0nH,eAAgB,IAEH,IAAlB1nH,EAAOo2G,SACLp2G,EAAO85G,cAAgBhvH,KAAKgO,QAAQs9G,OAAOphH,OAASgL,EAAO+5G,aAAejvH,KAAKgO,QAAQs9G,OAAOj7E,MAAQn7B,EAAOg6G,UAAYlvH,KAAKgO,QAAQs9G,OAAOr2F,GAAK/f,EAAOi6G,UAAYnvH,KAAKgO,QAAQs9G,OAAOz8F,IAC3L3Z,EAAOo2G,QAAS,SAKtBp2G,GAAOo2G,OAAStrH,KAAKgO,QAAQs9G,OAAOp9G,QACpCgH,EAAO9E,MAAQ3N,KAAKJ,IAAI6S,EAAO9E,MAAO,GAAMpQ,KAAK2Q,KAAKuqG,KAAK14G,MAE7D,OAAO0S,MAQT3N,IAAK,oBACLhF,MAAO,SAA2ByL,GAChChO,KAAKkuH,YAAYh9E,WAAWlxC,KAAKgO,SAAS,OACRnK,KAA9B7D,KAAKkuH,YAAYH,WACnB/tH,KAAKguH,aAAehuH,KAAKkuH,YAAYH,UAEvC/tH,KAAKkuH,YAAYkB,UAAUpvH,KAAKq7H,YAAartH,EAAShO,KAAKguE,gBAC3DhuE,KAAKkuH,YAAYI,SAAStuH,KAAKq7H,YAAartH,EAAShO,KAAKguE,mBAS5DzmE,IAAK,iBACLhF,MAAO,WACL,GAAI04H,GAASj7H,KAAKgO,QAAQitH,OACtB3O,GAAc,EACd8Q,GAAe,CA0BnB,YAzBsBv5H,KAAlB7D,KAAKq8H,YACHr8H,KAAKq8H,mBAAoBJ,KAAwC,IAAnBhB,EAAO/sH,SAAoC,YAAhB+sH,EAAOh2H,MAAsBjF,KAAKq8H,mBAAoBL,KAAsC,IAAnBf,EAAO/sH,SAAoC,gBAAhB+sH,EAAOh2H,MAA0BjF,KAAKq8H,mBAAoBH,KAAuC,IAAnBjB,EAAO/sH,SAAoC,YAAhB+sH,EAAOh2H,MAAsC,gBAAhBg2H,EAAOh2H,MAA0BjF,KAAKq8H,mBAAoBF,KAAwC,IAAxBlB,EAAOh2H,KAAKiJ,WAC3YkvH,GAAe,IAEI,IAAjBA,IACF9Q,EAActsH,KAAK+7H,aAGF,IAAjBqB,GACqB,IAAnBnC,EAAO/sH,QACW,YAAhB+sH,EAAOh2H,MACTqnH,GAAc,EACdtsH,KAAKq8H,SAAW,GAAIJ,GAAkBj8H,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,cAC3C,gBAAhB+M,EAAOh2H,KAChBjF,KAAKq8H,SAAW,GAAIL,GAAgBh8H,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,aAElEluH,KAAKq8H,SAAW,GAAIH,GAAiBl8H,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,aAGrEluH,KAAKq8H,SAAW,GAAIF,GAAan8H,KAAKgO,QAAShO,KAAK2Q,KAAM3Q,KAAKkuH,aAIjEluH,KAAKq8H,SAASnrF,WAAWlxC,KAAKgO,SAEzBs+G,KAQT/kH,IAAK,UACLhF,MAAO,WACLvC,KAAK47H,aAEL57H,KAAK2jB,KAAO3jB,KAAK2Q,KAAKspG,MAAMj6G,KAAK+sH,aAAWlpH,GAC5C7D,KAAK0jB,GAAK1jB,KAAK2Q,KAAKspG,MAAMj6G,KAAK8sH,WAASjpH,GACxC7D,KAAKs8H,cAA0Bz4H,KAAd7D,KAAK2jB,UAAkC9f,KAAZ7D,KAAK0jB,IAE1B,IAAnB1jB,KAAKs8H,WACPt8H,KAAK2jB,KAAK05G,WAAWr9H,MACrBA,KAAK0jB,GAAG25G,WAAWr9H,QAEfA,KAAK2jB,MACP3jB,KAAK2jB,KAAK25G,WAAWt9H,MAEnBA,KAAK0jB,IACP1jB,KAAK0jB,GAAG45G,WAAWt9H,OAIvBA,KAAKq8H,SAASP,aAQhBv0H,IAAK,aACLhF,MAAO,WACDvC,KAAK2jB,OACP3jB,KAAK2jB,KAAK25G,WAAWt9H,MACrBA,KAAK2jB,SAAO9f,IAEV7D,KAAK0jB,KACP1jB,KAAK0jB,GAAG45G,WAAWt9H,MACnBA,KAAK0jB,OAAK7f,IAGZ7D,KAAKs8H,WAAY,KAUnB/0H,IAAK,WACLhF,MAAO,WACL,MAAOvC,MAAK29E,SASdp2E,IAAK,aACLhF,MAAO,WACL,MAAOvC,MAAK+lF,YASdx+E,IAAK,WACLhF,MAAO,WACL,MAAOvC,MAAKgO,QAAQzL,SAYtBgF,IAAK,gBACLhF,MAAO,SAAuBH,EAAKC,EAAKC,GACtC,OAA2BuB,KAAvB7D,KAAKgO,QAAQzL,MAAqB,CACpC,GAAIC,GAAQxC,KAAKgO,QAAQk9G,QAAQG,sBAAsBjpH,EAAKC,EAAKC,EAAOtC,KAAKgO,QAAQzL,OACjFg7H,EAAYv9H,KAAKgO,QAAQk9G,QAAQ7oH,IAAMrC,KAAKgO,QAAQk9G,QAAQ9oH,GAChE,KAA2C,IAAvCpC,KAAKgO,QAAQk9G,QAAQ56E,MAAMpiC,QAAkB,CAC/C,GAAIshH,GAAWxvH,KAAKgO,QAAQk9G,QAAQ56E,MAAMjuC,IAAMrC,KAAKgO,QAAQk9G,QAAQ56E,MAAMluC,GAC3EpC,MAAKgO,QAAQm2C,KAAK9T,KAAOrwC,KAAKgO,QAAQk9G,QAAQ56E,MAAMluC,IAAMI,EAAQgtH,EAEpExvH,KAAKgO,QAAQoC,MAAQpQ,KAAKgO,QAAQk9G,QAAQ9oH,IAAMI,EAAQ+6H,MAExDv9H,MAAKgO,QAAQoC,MAAQpQ,KAAKo8H,UAC1Bp8H,KAAKgO,QAAQm2C,KAAK9T,KAAOrwC,KAAKguH,YAGhChuH,MAAKu8H,wBACLv8H,KAAK8rH,uBAGPvkH,IAAK,wBACLhF,MAAO,WACkC,kBAA5BvC,MAAKgO,QAAQ8sH,WACtB96H,KAAKq8H,SAASvB,WAAa96H,KAAKgO,QAAQ8sH,WAAW96H,KAAKgO,QAAQoC,OAEhEpQ,KAAKq8H,SAASvB,WAAa96H,KAAKgO,QAAQ8sH,WAAa96H,KAAKgO,QAAQoC,MAEzB,kBAAhCpQ,MAAKgO,QAAQ+sH,eACtB/6H,KAAKq8H,SAAStB,eAAiB/6H,KAAKgO,QAAQ+sH,eAAe/6H,KAAKgO,QAAQoC,OAExEpQ,KAAKq8H,SAAStB,eAAiB/6H,KAAKgO,QAAQ+sH,eAAiB/6H,KAAKgO,QAAQoC,SAY9E7I,IAAK,OACLhF,MAAO,SAAc+S,GACnB,GAAIJ,GAASlV,KAAKyvH,qBAClB,KAAIv6G,EAAOkkE,OAAX,CAKA,GAAIokD,GAAUx9H,KAAKq8H,SAASoB,aACxBC,IAGJ19H,MAAKq8H,SAASsB,UAAY39H,KAAKq8H,SAAS14G,KACxC3jB,KAAKq8H,SAASuB,QAAU59H,KAAKq8H,SAAS34G,GAGlCxO,EAAOwnH,YACTgB,EAAU/5G,KAAO3jB,KAAKq8H,SAASwB,aAAavoH,EAAK,OAAQkoH,EAASx9H,KAAK+lF,SAAU/lF,KAAK6L,MAAOqJ,IAC3D,IAA9BA,EAAO2lH,qBAA8B76H,KAAKq8H,SAASsB,UAAYD,EAAU/5G,KAAKtO,OAEhFH,EAAOunH,UACTiB,EAAUh6G,GAAK1jB,KAAKq8H,SAASwB,aAAavoH,EAAK,KAAMkoH,EAASx9H,KAAK+lF,SAAU/lF,KAAK6L,MAAOqJ,IACvD,IAA9BA,EAAO2lH,qBAA8B76H,KAAKq8H,SAASuB,QAAUF,EAAUh6G,GAAGrO,OAI5EH,EAAOynH,cACTe,EAAU/uH,OAAS3O,KAAKq8H,SAASwB,aAAavoH,EAAK,SAAUkoH,EAASx9H,KAAK+lF,SAAU/lF,KAAK6L,MAAOqJ,IAInGlV,KAAKq8H,SAASyB,SAASxoH,EAAKJ,EAAQlV,KAAK+lF,SAAU/lF,KAAK6L,MAAO2xH,GAC/Dx9H,KAAK+9H,WAAWzoH,EAAKooH,EAAWxoH,GAChClV,KAAKg+H,UAAU1oH,EAAKkoH,OAGtBj2H,IAAK,aACLhF,MAAO,SAAoB+S,EAAKooH,EAAWxoH,GACrCA,EAAOwnH,WACT18H,KAAKq8H,SAAS4B,cAAc3oH,EAAKJ,EAAQlV,KAAK+lF,SAAU/lF,KAAK6L,MAAO6xH,EAAU/5G,MAE5EzO,EAAOynH,aACT38H,KAAKq8H,SAAS4B,cAAc3oH,EAAKJ,EAAQlV,KAAK+lF,SAAU/lF,KAAK6L,MAAO6xH,EAAU/uH,QAE5EuG,EAAOunH,SACTz8H,KAAKq8H,SAAS4B,cAAc3oH,EAAKJ,EAAQlV,KAAK+lF,SAAU/lF,KAAK6L,MAAO6xH,EAAUh6G,OAIlFnc,IAAK,YACLhF,MAAO,SAAmB+S,EAAKkoH,GAC7B,OAA2B35H,KAAvB7D,KAAKgO,QAAQsiC,MAAqB,CAEpC,GAAI4tF,GAAQl+H,KAAK2jB,KACbw6G,EAAQn+H,KAAK0jB,EAMjB,IAJI1jB,KAAKkuH,YAAYkK,eAAep4H,KAAK+lF,SAAU/lF,KAAK6L,QACtD7L,KAAKkuH,YAAY8I,YAAY1hH,EAAKtV,KAAK+lF,SAAU/lF,KAAK6L,OAGpDqyH,EAAM79H,IAAM89H,EAAM99H,GAAI,CACxBL,KAAKkuH,YAAYiC,aAAc,CAC/B,IAAIv1G,GAAQ5a,KAAKq8H,SAAS+B,SAAS,GAAKZ,EACxCloH,GAAI+iH,OAG4B,eAA5Br4H,KAAKgO,QAAQm2C,KAAK27B,QACpB9/E,KAAKkuH,YAAYiE,mBAAmB78G,EAAKtV,KAAK+lF,SAAU/lF,KAAK6L,MAAO+O,EAAMqa,EAAGra,EAAMiU,GACnFvZ,EAAI+oH,UAAUzjH,EAAMqa,EAAGj1B,KAAKkuH,YAAY79E,KAAKggF,OAC7CrwH,KAAKs+H,yBAAyBhpH,IAIhCtV,KAAKkuH,YAAYlxB,KAAK1nF,EAAKsF,EAAMqa,EAAGra,EAAMiU,EAAG7uB,KAAK+lF,SAAU/lF,KAAK6L,OACjEyJ,EAAIkjH,cACC,CAELx4H,KAAKkuH,YAAYiC,aAAc,CAC/B,IAAIl7F,GAAGpG,EACH65B,EAAS1oD,KAAKgO,QAAQgtH,iBACtBkD,GAAM1Y,MAAMp1G,MAAQ8tH,EAAM1Y,MAAMn1G,QAClC4kB,EAAIipG,EAAMjpG,EAAwB,GAApBipG,EAAM1Y,MAAMp1G,MAC1Bye,EAAIqvG,EAAMrvG,EAAI65B,IAEdzzB,EAAIipG,EAAMjpG,EAAIyzB,EACd75B,EAAIqvG,EAAMrvG,EAAyB,GAArBqvG,EAAM1Y,MAAMn1G,QAE5BuK,EAAQ5a,KAAKu+H,eAAetpG,EAAGpG,EAAG65B,EAAQ,MAC1C1oD,KAAKkuH,YAAYlxB,KAAK1nF,EAAKsF,EAAMqa,EAAGra,EAAMiU,EAAG7uB,KAAK+lF,SAAU/lF,KAAK6L,YAYvEtE,IAAK,oBACLhF,MAAO,SAA2BzB,GAChC,GAAId,KAAKs8H,UAAW,CAClB,GACIkC,GAAQx+H,KAAK2jB,KAAKsR,EAClBwpG,EAAQz+H,KAAK2jB,KAAKkL,EAClB6vG,EAAM1+H,KAAK0jB,GAAGuR,EACd0pG,EAAM3+H,KAAK0jB,GAAGmL,EACd+vG,EAAO99H,EAAIoF,KACX24H,EAAO/9H,EAAIwF,GAIf,OAFWtG,MAAKq8H,SAASyC,kBAAkBN,EAAOC,EAAOC,EAAKC,EAAKC,EAAMC,GAR3D,GAYd,OAAO,KAWXt3H,IAAK,2BACLhF,MAAO,SAAkC+S,GACvC,GAAIyoC,GAAK/9C,KAAK2jB,KAAKkL,EAAI7uB,KAAK0jB,GAAGmL,EAC3BivB,EAAK99C,KAAK2jB,KAAKsR,EAAIj1B,KAAK0jB,GAAGuR,EAC3B8pG,EAAiBt8H,KAAK28D,MAAMrhB,EAAID,IAGhCihF,GAAkB,GAAKjhF,EAAK,GAAKihF,EAAiB,GAAKjhF,EAAK,KAC9DihF,GAAkCt8H,KAAKomD,IAGzCvzC,EAAI0pH,OAAOD,MAcbx3H,IAAK,iBACLhF,MAAO,SAAwB0yB,EAAGpG,EAAG65B,EAAQy1B,GAC3C,GAAI9gB,GAAqB,EAAb8gB,EAAiB17E,KAAKomD,EAClC,QACE5zB,EAAGA,EAAIyzB,EAASjmD,KAAK06C,IAAIkgB,GACzBxuC,EAAGA,EAAI65B,EAASjmD,KAAKw6C,IAAIogB,OAI7B91D,IAAK,SACLhF,MAAO,WACLvC,KAAK+lF,UAAW,KAGlBx+E,IAAK,WACLhF,MAAO,WACLvC,KAAK+lF,UAAW,KASlBx+E,IAAK,UACLhF,MAAO,WACL,MAAOvC,MAAKq8H,SAASN,eAGvBx0H,IAAK,eACLhF,MAAO,SAAsBqtH,EAAeC,GAC1C,GAAInsH,GAAgBC,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAC/EsK,EAAgBtK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MAE/E2J,GAAU,qBAAsB,KAAM,OAAQ,SAAU,aAAc,QAAS,qBAAsB,SAAU,OAAQ,UAAW,UAAW,UAAW,iBAAkB,oBAAqB,KAAM,QAAS,QAAS,QA4B3N,IAzBA3M,EAAK2D,oBAAoBgJ,EAAQsiH,EAAeC,EAAYnsH,GAE5D/C,EAAKmN,aAAa8hH,EAAeC,EAAY,SAAUnsH,EAAeuK,GACtEtN,EAAKmN,aAAa8hH,EAAeC,EAAY,SAAUnsH,EAAeuK,OAE5CpK,KAAtBgsH,EAAWsI,QAA8C,OAAtBtI,EAAWsI,OAChDvI,EAAcuI,OAAStI,EAAWsI,QACP,IAAlBz0H,GAAgD,OAAtBmsH,EAAWsI,SAC9CvI,EAAcuI,QAAS,EAAI/2H,EAAkB,SAAG6M,EAAckqH,aAIrCt0H,KAAvBgsH,EAAW3E,SAAgD,OAAvB2E,EAAW3E,aAClBrnH,KAA3BgsH,EAAW3E,QAAQ9oH,MACrBwtH,EAAc1E,QAAQ9oH,IAAMytH,EAAW3E,QAAQ9oH,SAElByB,KAA3BgsH,EAAW3E,QAAQ7oH,MACrButH,EAAc1E,QAAQ7oH,IAAMwtH,EAAW3E,QAAQ7oH,KAEjD1B,EAAKmN,aAAa8hH,EAAc1E,QAAS2E,EAAW3E,QAAS,QAASxnH,EAAeuK,EAAci9G,WACxE,IAAlBxnH,GAAiD,OAAvBmsH,EAAW3E,UAC9C0E,EAAc1E,SAAU,EAAI9pH,EAAkB,SAAG6M,EAAci9G,cAIvCrnH,KAAtBgsH,EAAWhK,QAA8C,OAAtBgK,EAAWhK,OAChD,GAAiC,gBAAtBgK,GAAWhK,OAAqB,CACzC,GAAIA,GAASgK,EAAWhK,OAAO59F,aAC/B2nG,GAAc/J,OAAOniG,GAAGxV,SAAmC,GAAzB23G,EAAOjhH,QAAQ,MACjDgrH,EAAc/J,OAAOl3G,OAAOT,SAAuC,GAA7B23G,EAAOjhH,QAAQ,UACrDgrH,EAAc/J,OAAOliG,KAAKzV,SAAqC,GAA3B23G,EAAOjhH,QAAQ,YAC9C,CAAA,GAAoD,YAAhD,EAAIpD,EAAkB,SAAGquH,EAAWhK,QAK7C,KAAM,IAAIxhH,OAAM,iGAAkG,EAAI8sC,EAAqB,SAAG0+E,EAAWhK,QAJzJllH,GAAKmN,aAAa8hH,EAAc/J,OAAQgK,EAAWhK,OAAQ,KAAMniH,EAAeuK,EAAc43G,QAC9FllH,EAAKmN,aAAa8hH,EAAc/J,OAAQgK,EAAWhK,OAAQ,SAAUniH,EAAeuK,EAAc43G,QAClGllH,EAAKmN,aAAa8hH,EAAc/J,OAAQgK,EAAWhK,OAAQ,OAAQniH,EAAeuK,EAAc43G,aAIvE,IAAlBniH,GAAgD,OAAtBmsH,EAAWhK,SAC9C+J,EAAc/J,QAAS,EAAIzkH,EAAkB,SAAG6M,EAAc43G,QAIhE,QAAyBhiH,KAArBgsH,EAAW3lH,OAA4C,OAArB2lH,EAAW3lH,MAG/C,GADA0lH,EAAc1lH,MAAQvJ,EAAK+D,cAAekrH,EAAc1lH,OAAO,GAC3DvJ,EAAK+B,SAASmtH,EAAW3lH,OAC3B0lH,EAAc1lH,MAAMA,MAAQ2lH,EAAW3lH,MACvC0lH,EAAc1lH,MAAM0B,UAAYikH,EAAW3lH,MAC3C0lH,EAAc1lH,MAAM2B,MAAQgkH,EAAW3lH,MACvC0lH,EAAc1lH,MAAM+uD,SAAU,MACzB,CACL,GAAIgmE,IAAgB,MACWp7H,KAA3BgsH,EAAW3lH,MAAMA,QACnB0lH,EAAc1lH,MAAMA,MAAQ2lH,EAAW3lH,MAAMA,MAAM+0H,GAAgB,OAElCp7H,KAA/BgsH,EAAW3lH,MAAM0B,YACnBgkH,EAAc1lH,MAAM0B,UAAYikH,EAAW3lH,MAAM0B,UAAUqzH,GAAgB,OAE9Cp7H,KAA3BgsH,EAAW3lH,MAAM2B,QACnB+jH,EAAc1lH,MAAM2B,MAAQgkH,EAAW3lH,MAAM2B,MAAMozH,GAAgB,OAEpCp7H,KAA7BgsH,EAAW3lH,MAAM+uD,UACnB22D,EAAc1lH,MAAM+uD,QAAU42D,EAAW3lH,MAAM+uD,aAEhBp1D,KAA7BgsH,EAAW3lH,MAAMC,UACnBylH,EAAc1lH,MAAMC,QAAU1H,KAAKL,IAAI,EAAGK,KAAKJ,IAAI,EAAGwtH,EAAW3lH,MAAMC,eAGxCtG,KAA7BgsH,EAAW3lH,MAAM+uD,UAA2C,IAAlBgmE,IAC5CrP,EAAc1lH,MAAM+uD,SAAU,QAGP,IAAlBv1D,GAA+C,OAArBmsH,EAAW3lH,QAC9C0lH,EAAc1lH,MAAQvJ,EAAK8M,aAAaQ,EAAc/D,YAIhCrG,KAApBgsH,EAAW1rE,MAA0C,OAApB0rE,EAAW1rE,KAC9C+lE,EAAM0B,aAAagE,EAAczrE,KAAM0rE,IACZ,IAAlBnsH,GAA8C,OAApBmsH,EAAW1rE,OAC9CyrE,EAAczrE,KAAOxjD,EAAK8M,aAAaQ,EAAck2C,WAIpDu2E,IAGT96H,GAAiB,QAAI86H,GAIjB,SAAU76H,EAAQD,EAASM,GAoC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhCzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIytH,GAAkB9vH,EAAoB,KAEtC+vH,EAAkBpvH,EAAuBmvH,GAEzCoG,EAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpC0I,EAAwBh/H,EAAoB,KAE5Ci/H,EAAwBt+H,EAAuBq+H,GAI/ClD,EAAkB,SAAUoD,GAG9B,QAASpD,GAAgBhuH,EAAS2C,EAAMu9G,GAEtC,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMg8H,IAChC,EAAIzF,EAAqC,SAAGv2H,MAAOg8H,EAAgBnF,YAAa,EAAIR,EAA0B,SAAG2F,IAAkBz7H,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IA+FtK,OAnGA,EAAIuI,EAAoB,SAAGuF,EAAiBoD,IAc5C,EAAIvsC,EAAuB,SAAGmpC,IAC5Bz0H,IAAK,QACLhF,MAAO,SAAe+S,EAAKJ,EAAQmqH,GAEjC,GAAIC,GAAOD,EAAS,GAChBE,EAAOF,EAAS,EACpBr/H,MAAKw/H,aAAalqH,EAAKJ,EAAQoqH,EAAMC,MAGvCh4H,IAAK,qBACLhF,MAAO,WACL,GAAIu7C,GAAK99C,KAAK2jB,KAAKsR,EAAIj1B,KAAK0jB,GAAGuR,EAC3B8oB,EAAK/9C,KAAK2jB,KAAKkL,EAAI7uB,KAAK0jB,GAAGmL,EAE3B4wG,MAAK,GACLC,MAAK,GACLvd,MAAK,GACLC,MAAK,GACL+Y,EAAYn7H,KAAKgO,QAAQitH,OAAOE,SAepC,QAZK14H,KAAK0iB,IAAI24B,GAAMr7C,KAAK0iB,IAAI44B,KAA8C,IAAvC/9C,KAAKgO,QAAQitH,OAAOC,gBAAkE,eAAvCl7H,KAAKgO,QAAQitH,OAAOC,iBAA2E,aAAvCl7H,KAAKgO,QAAQitH,OAAOC,gBAC7JwE,EAAK1/H,KAAK2jB,KAAKkL,EACfuzF,EAAKpiH,KAAK0jB,GAAGmL,EACb4wG,EAAKz/H,KAAK2jB,KAAKsR,EAAIkmG,EAAYr9E,EAC/BqkE,EAAKniH,KAAK0jB,GAAGuR,EAAIkmG,EAAYr9E,IAE7B4hF,EAAK1/H,KAAK2jB,KAAKkL,EAAIssG,EAAYp9E,EAC/BqkE,EAAKpiH,KAAK0jB,GAAGmL,EAAIssG,EAAYp9E,EAC7B0hF,EAAKz/H,KAAK2jB,KAAKsR,EACfktF,EAAKniH,KAAK0jB,GAAGuR,KAGLA,EAAGwqG,EAAI5wG,EAAG6wG,IAAQzqG,EAAGktF,EAAItzF,EAAGuzF,OAGxC76G,IAAK,aACLhF,MAAO,WACL,MAAOvC,MAAK2/H,wBAGdp4H,IAAK,sBACLhF,MAAO,SAA6Bq9H,EAAUtqH,GAC5C,MAAOtV,MAAK6/H,0BAA0BD,EAAUtqH,MAGlD/N,IAAK,qBACLhF,MAAO,SAA4Bk9H,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,GACrD,GAAIC,GAAOr8H,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK2/H,qBAChFM,GAAQ,EAAIhQ,EAAyB,SAAG+P,EAAM,GAC9CV,EAAOW,EAAM,GACbV,EAAOU,EAAM,EAGjB,OAAOjgI,MAAKkgI,yBAAyBT,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,EAAIT,EAAMC,MAYrEh4H,IAAK,WACLhF,MAAO,SAAkB47E,GACvB,GAAIgiD,GAAQx8H,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK2/H,qBACjFS,GAAQ,EAAInQ,EAAyB,SAAGkQ,EAAO,GAC/Cb,EAAOc,EAAM,GACbb,EAAOa,EAAM,GAEbnzH,EAAIkxE,EACJkiD,IAQJ,OAPAA,GAAI,GAAK59H,KAAKknB,IAAI,EAAI1c,EAAG,GACzBozH,EAAI,GAAK,EAAIpzH,EAAIxK,KAAKknB,IAAI,EAAI1c,EAAG,GACjCozH,EAAI,GAAK,EAAI59H,KAAKknB,IAAI1c,EAAG,IAAM,EAAIA,GACnCozH,EAAI,GAAK59H,KAAKknB,IAAI1c,EAAG,IAIZgoB,EAHDorG,EAAI,GAAKrgI,KAAK29H,UAAU1oG,EAAIorG,EAAI,GAAKf,EAAKrqG,EAAIorG,EAAI,GAAKd,EAAKtqG,EAAIorG,EAAI,GAAKrgI,KAAK49H,QAAQ3oG,EAG/EpG,EAFPwxG,EAAI,GAAKrgI,KAAK29H,UAAU9uG,EAAIwxG,EAAI,GAAKf,EAAKzwG,EAAIwxG,EAAI,GAAKd,EAAK1wG,EAAIwxG,EAAI,GAAKrgI,KAAK49H,QAAQ/uG,OAK3FmtG,GACPmD,EAA+B,QAEjCv/H,GAAiB,QAAIo8H,GAIjB,SAAUn8H,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpC8J,EAAmBpgI,EAAoB,KAEvCqgI,EAAmB1/H,EAAuBy/H,GAI1CE,EAAsB,SAAUC,GAGlC,QAASD,GAAoBxyH,EAAS2C,EAAMu9G,GAE1C,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMwgI,IAChC,EAAIjK,EAAqC,SAAGv2H,MAAOwgI,EAAoB3J,YAAa,EAAIR,EAA0B,SAAGmK,IAAsBjgI,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IAkD9K,OAtDA,EAAIuI,EAAoB,SAAG+J,EAAqBC,IAsBhD,EAAI5tC,EAAuB,SAAG2tC,IAC5Bj5H,IAAK,2BACLhF,MAAO,SAAkCk9H,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,EAAIT,EAAMC,GAErE,GAAImB,GAAc,IACdlmF,MAAW,GACXz2C,MAAI,GACJkJ,MAAI,GACJgoB,MAAI,GACJpG,MAAI,GACJ8xG,EAAQlB,EACRmB,EAAQlB,EACRW,GAAO,EAAG,EAAG,EAAG,EACpB,KAAKt8H,EAAI,EAAGA,EAAI,GAAIA,IAClBkJ,EAAI,GAAMlJ,EACVs8H,EAAI,GAAK59H,KAAKknB,IAAI,EAAI1c,EAAG,GACzBozH,EAAI,GAAK,EAAIpzH,EAAIxK,KAAKknB,IAAI,EAAI1c,EAAG,GACjCozH,EAAI,GAAK,EAAI59H,KAAKknB,IAAI1c,EAAG,IAAM,EAAIA,GACnCozH,EAAI,GAAK59H,KAAKknB,IAAI1c,EAAG,GACrBgoB,EAAIorG,EAAI,GAAKZ,EAAKY,EAAI,GAAKf,EAAKrqG,EAAIorG,EAAI,GAAKd,EAAKtqG,EAAIorG,EAAI,GAAKle,EAC/DtzF,EAAIwxG,EAAI,GAAKX,EAAKW,EAAI,GAAKf,EAAKzwG,EAAIwxG,EAAI,GAAKd,EAAK1wG,EAAIwxG,EAAI,GAAKje,EAC3Dr+G,EAAI,IACNy2C,EAAWx6C,KAAK6gI,mBAAmBF,EAAOC,EAAO3rG,EAAGpG,EAAGixG,EAAIC,GAC3DW,EAAclmF,EAAWkmF,EAAclmF,EAAWkmF,GAEpDC,EAAQ1rG,EACR2rG,EAAQ/xG,CAGV,OAAO6xG,OAGJF,GACPD,EAA0B,QAE5B3gI,GAAiB,QAAI4gI,GAIjB,SAAU3gI,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCsK,EAAa5gI,EAAoB,KAEjC6gI,EAAalgI,EAAuBigI,GAIpCE,EAAiB,SAAUC,GAG7B,QAASD,GAAehzH,EAAS2C,EAAMu9G,GAErC,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMghI,IAChC,EAAIzK,EAAqC,SAAGv2H,MAAOghI,EAAenK,YAAa,EAAIR,EAA0B,SAAG2K,IAAiBzgI,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IAuJpK,OA3JA,EAAIuI,EAAoB,SAAGuK,EAAgBC,IAsB3C,EAAIpuC,EAAuB,SAAGmuC,IAC5Bz5H,IAAK,4BACLhF,MAAO,SAAmCq9H,EAAUtqH,GAClD,GAMIwF,GAAKuiD,EAAOiyD,EAAkB4R,EAAiBC,EAN/C3D,EAAU75H,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK2/H,qBAGnFnxH,EAAY,EACZC,EAAM,EACNC,EAAO,EAGP++B,EAAOztC,KAAK0jB,GACZC,GAAO,CAMX,KALIi8G,EAASv/H,KAAOL,KAAK2jB,KAAKtjB,KAC5BotC,EAAOztC,KAAK2jB,KACZA,GAAO,GAGFlV,GAAOC,GAAQF,EAbF,IAa6B,CAC/C,GAAIG,GAAwB,IAAdF,EAAMC,EAOpB,IALAoM,EAAM9a,KAAKo+H,SAASzvH,EAAQ6uH,GAC5BngE,EAAQ56D,KAAK28D,MAAM3xB,EAAK5e,EAAI/T,EAAI+T,EAAG4e,EAAKxY,EAAIna,EAAIma,GAChDq6F,EAAmB7hF,EAAK6hF,iBAAiBh6G,EAAK+nD,GAC9C6jE,EAAkBz+H,KAAKorD,KAAKprD,KAAKknB,IAAI7O,EAAIma,EAAIwY,EAAKxY,EAAG,GAAKxyB,KAAKknB,IAAI7O,EAAI+T,EAAI4e,EAAK5e,EAAG,IACnFsyG,EAAa7R,EAAmB4R,EAC5Bz+H,KAAK0iB,IAAIg8G,GAhBC,GAiBZ,KACSA,GAAa,GAET,IAATx9G,EACFlV,EAAME,EAEND,EAAOC,GAGI,IAATgV,EACFjV,EAAOC,EAEPF,EAAME,EAIVH,IAIF,MAFAsM,GAAI7N,EAAI0B,EAEDmM,KAiBTvT,IAAK,2BACLhF,MAAO,SAAkCk9H,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,EAAIqB,GAE/D,GAAIV,GAAc,IACdlmF,MAAW,GACXz2C,MAAI,GACJkJ,MAAI,GACJgoB,MAAI,GACJpG,MAAI,GACJ8xG,EAAQlB,EACRmB,EAAQlB,CACZ,KAAK37H,EAAI,EAAGA,EAAI,GAAIA,IAClBkJ,EAAI,GAAMlJ,EACVkxB,EAAIxyB,KAAKknB,IAAI,EAAI1c,EAAG,GAAKwyH,EAAK,EAAIxyH,GAAK,EAAIA,GAAKm0H,EAAInsG,EAAIxyB,KAAKknB,IAAI1c,EAAG,GAAKk1G,EACzEtzF,EAAIpsB,KAAKknB,IAAI,EAAI1c,EAAG,GAAKyyH,EAAK,EAAIzyH,GAAK,EAAIA,GAAKm0H,EAAIvyG,EAAIpsB,KAAKknB,IAAI1c,EAAG,GAAKm1G,EACrEr+G,EAAI,IACNy2C,EAAWx6C,KAAK6gI,mBAAmBF,EAAOC,EAAO3rG,EAAGpG,EAAGixG,EAAIC,GAC3DW,EAAclmF,EAAWkmF,EAAclmF,EAAWkmF,GAEpDC,EAAQ1rG,EACR2rG,EAAQ/xG,CAGV,OAAO6xG,MAkBTn5H,IAAK,eACLhF,MAAO,SAAsB+S,EAAKJ,EAAQmsH,EAAUC,GAClD,GAAIC,OAAwB19H,KAAbw9H,OAAyCx9H,KAAfw9H,EAASpsG,EAC9CusG,MAAwB39H,KAAby9H,OAAyCz9H,KAAfy9H,EAASrsG,CAElD3f,GAAIkvC,YACJlvC,EAAImvC,OAAOzkD,KAAK29H,UAAU1oG,EAAGj1B,KAAK29H,UAAU9uG,GAExC0yG,GAAYC,EACdlsH,EAAI0rG,cAAcqgB,EAASpsG,EAAGosG,EAASxyG,EAAGyyG,EAASrsG,EAAGqsG,EAASzyG,EAAG7uB,KAAK49H,QAAQ3oG,EAAGj1B,KAAK49H,QAAQ/uG,GACtF0yG,EACTjsH,EAAImsH,iBAAiBJ,EAASpsG,EAAGosG,EAASxyG,EAAG7uB,KAAK49H,QAAQ3oG,EAAGj1B,KAAK49H,QAAQ/uG,GAG1EvZ,EAAIovC,OAAO1kD,KAAK49H,QAAQ3oG,EAAGj1B,KAAK49H,QAAQ/uG,GAI1C7uB,KAAKy4H,aAAanjH,EAAKJ,GACvBI,EAAI6kC,SACJn6C,KAAK04H,cAAcpjH,EAAKJ,MAG1B3N,IAAK,aACLhF,MAAO,WACL,MAAOvC,MAAK2/H,yBAGTqB,GACPD,EAAoB,QAEtBnhI,GAAiB,QAAIohI,GAIjB,SAAUnhI,EAAQD,EAASM,GAoB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIytH,GAAkB9vH,EAAoB,KAEtC+vH,EAAkBpvH,EAAuBmvH,GAEzCt9B,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAE3BwhI,EAAW,WACb,QAASA,GAAS1zH,EAAS2C,EAAMu9G,IAC/B,EAAIv7B,EAA0B,SAAG3yF,KAAM0hI,GAEvC1hI,KAAK2Q,KAAOA,EACZ3Q,KAAKkuH,YAAcA,EACnBluH,KAAKgO,WACLhO,KAAKkxC,WAAWljC,GAChBhO,KAAK2hI,YAAa,EAClB3hI,KAAKkK,SACLlK,KAAK+6H,eAAiB,EACtB/6H,KAAK86H,WAAa,IAClB96H,KAAK29H,UAAY39H,KAAK2jB;yBACtB3jB,KAAK49H,QAAU59H,KAAK0jB,GAuhBtB,OAphBA,EAAImvE,EAAuB,SAAG6uC,IAC5Bn6H,IAAK,UACLhF,MAAO,WACLvC,KAAK2jB,KAAO3jB,KAAK2Q,KAAKspG,MAAMj6G,KAAKgO,QAAQ2V,MACzC3jB,KAAK0jB,GAAK1jB,KAAK2Q,KAAKspG,MAAMj6G,KAAKgO,QAAQ0V,OAGzCnc,IAAK,UACLhF,MAAO,WACL,OAAO,KAGTgF,IAAK,aACLhF,MAAO,SAAoByL,GACzBhO,KAAKgO,QAAUA,EACfhO,KAAK2jB,KAAO3jB,KAAK2Q,KAAKspG,MAAMj6G,KAAKgO,QAAQ2V,MACzC3jB,KAAK0jB,GAAK1jB,KAAK2Q,KAAKspG,MAAMj6G,KAAKgO,QAAQ0V,IACvC1jB,KAAKK,GAAKL,KAAKgO,QAAQ3N,MAYzBkH,IAAK,WACLhF,MAAO,SAAkB+S,EAAKJ,EAAQ6wE,EAAUl6E,EAAO2xH,GAErDloH,EAAIivC,YAAcvkD,KAAK4hI,SAAStsH,EAAKJ,EAAQ6wE,EAAUl6E,GACvDyJ,EAAI4uC,UAAYhvC,EAAO9E,OAED,IAAlB8E,EAAOijH,OACTn4H,KAAK6hI,gBAAgBvsH,EAAKJ,EAAQsoH,GAElCx9H,KAAK8hI,UAAUxsH,EAAKJ,EAAQsoH,MAIhCj2H,IAAK,YACLhF,MAAO,SAAmB+S,EAAKJ,EAAQsoH,EAASG,EAAWC,GACzD,GAAI59H,KAAK2jB,MAAQ3jB,KAAK0jB,GAEpB1jB,KAAKolD,MAAM9vC,EAAKJ,EAAQsoH,EAASG,EAAWC,OACvC,CACL,GAAImE,GAAkB/hI,KAAKgiI,eAAe1sH,GACtC2sH,GAAkB,EAAIhS,EAAyB,SAAG8R,EAAiB,GACnE9sG,EAAIgtG,EAAgB,GACpBpzG,EAAIozG,EAAgB,GACpBv5E,EAASu5E,EAAgB,EAE7BjiI,MAAKkiI,QAAQ5sH,EAAKJ,EAAQ+f,EAAGpG,EAAG65B,OAIpCnhD,IAAK,kBACLhF,MAAO,SAAyB+S,EAAKJ,EAAQsoH,EAASG,EAAWC,GAC/DtoH,EAAIquC,QAAU,OACd,IAAI0+D,IAAW,EAAG,EAMlB,KALqC,IAAjCl+G,MAAMC,QAAQ8Q,EAAOijH,UACvB9V,EAAUntG,EAAOijH,YAIKt0H,KAApByR,EAAI4iH,YAA2B,CAQjC,GAPA5iH,EAAI+iH,OAGJ/iH,EAAI4iH,YAAY7V,GAChB/sG,EAAI6sH,eAAiB,EAGjBniI,KAAK2jB,MAAQ3jB,KAAK0jB,GAEpB1jB,KAAKolD,MAAM9vC,EAAKJ,EAAQsoH,OACnB,CACL,GAAI4E,GAAkBpiI,KAAKgiI,eAAe1sH,GACtC+sH,GAAkB,EAAIpS,EAAyB,SAAGmS,EAAiB,GACnEntG,EAAIotG,EAAgB,GACpBxzG,EAAIwzG,EAAgB,GACpB35E,EAAS25E,EAAgB,EAE7BriI,MAAKkiI,QAAQ5sH,EAAKJ,EAAQ+f,EAAGpG,EAAG65B,GAIlCpzC,EAAI4iH,aAAa,IACjB5iH,EAAI6sH,eAAiB,EACrB7sH,EAAIkjH,cACC,CAEL,GAAIx4H,KAAK2jB,MAAQ3jB,KAAK0jB,GAEpBpO,EAAI4sG,WAAWliH,KAAK2jB,KAAKsR,EAAGj1B,KAAK2jB,KAAKkL,EAAG7uB,KAAK0jB,GAAGuR,EAAGj1B,KAAK0jB,GAAGmL,EAAGwzF,OAC1D,CACL,GAAIigB,GAAkBtiI,KAAKgiI,eAAe1sH,GACtCitH,GAAkB,EAAItS,EAAyB,SAAGqS,EAAiB,GACnEE,EAAKD,EAAgB,GACrBE,EAAKF,EAAgB,GACrBG,EAAUH,EAAgB,EAE9BviI,MAAKkiI,QAAQ5sH,EAAKJ,EAAQstH,EAAIC,EAAIC,GAGpC1iI,KAAKy4H,aAAanjH,EAAKJ,GAEvBI,EAAI6kC,SAGJn6C,KAAK04H,cAAcpjH,EAAKJ,OAI5B3N,IAAK,qBACLhF,MAAO,SAA4Bq9H,EAAUtqH,EAAKtH,GAChD,MAAIhO,MAAK2jB,MAAQ3jB,KAAK0jB,GACb1jB,KAAK2iI,oBAAoB/C,EAAUtqH,EAAKtH,GAExChO,KAAK4iI,0BAA0BhD,EAAUtqH,EAAKtH,MAIzDzG,IAAK,sBACLhF,MAAO,SAA6B+S,GAClC,GAAIqO,MACAD,IACJ,IAAI1jB,KAAK2jB,MAAQ3jB,KAAK0jB,GACpBC,EAAO3jB,KAAK2iI,oBAAoB3iI,KAAK2jB,KAAMrO,GAC3CoO,EAAK1jB,KAAK2iI,oBAAoB3iI,KAAK0jB,GAAIpO,OAClC,CACL,GAAIutH,GAAkB7iI,KAAKgiI,eAAe1sH,GACtCwtH,GAAkB,EAAI7S,EAAyB,SAAG4S,EAAiB,GACnE5tG,EAAI6tG,EAAgB,GACpBj0G,EAAIi0G,EAAgB,EACXA,GAAgB,EAE7Bn/G,GAAO3jB,KAAK4iI,0BAA0B5iI,KAAK2jB,KAAMrO,GAAO2f,EAAGA,EAAGpG,EAAGA,EAAGpgB,IAAK,IAAMC,KAAM,GAAKoxB,WAAY,IACtGpc,EAAK1jB,KAAK4iI,0BAA0B5iI,KAAK2jB,KAAMrO,GAAO2f,EAAGA,EAAGpG,EAAGA,EAAGpgB,IAAK,GAAKC,KAAM,GAAKoxB,UAAW,IAEpG,OAASnc,KAAMA,EAAMD,GAAIA,MAG3Bnc,IAAK,iBACLhF,MAAO,SAAwB+S,GAC7B,GAAI2f,OAAI,GACJpG,MAAI,GACJ4e,EAAOztC,KAAK2jB,KACZ+kC,EAAS1oD,KAAKgO,QAAQgtH,iBAgB1B,YAdYn3H,KAARyR,OACuBzR,KAArB4pC,EAAK+3E,MAAMp1G,OACbq9B,EAAK+3E,MAAMmK,OAAOr6G,GAKlBm4B,EAAK+3E,MAAMp1G,MAAQq9B,EAAK+3E,MAAMn1G,QAChC4kB,EAAIwY,EAAKxY,EAAuB,GAAnBwY,EAAK+3E,MAAMp1G,MACxBye,EAAI4e,EAAK5e,EAAI65B,IAEbzzB,EAAIwY,EAAKxY,EAAIyzB,EACb75B,EAAI4e,EAAK5e,EAAwB,GAApB4e,EAAK+3E,MAAMn1G,SAElB4kB,EAAGpG,EAAG65B,MAchBnhD,IAAK,iBACLhF,MAAO,SAAwB0yB,EAAGpG,EAAG65B,EAAQy1B,GAC3C,GAAI9gB,GAAqB,EAAb8gB,EAAiB17E,KAAKomD,EAClC,QACE5zB,EAAGA,EAAIyzB,EAASjmD,KAAK06C,IAAIkgB,GACzBxuC,EAAGA,EAAI65B,EAASjmD,KAAKw6C,IAAIogB,OAc7B91D,IAAK,4BACLhF,MAAO,SAAmCkrC,EAAMn4B,EAAKtH,GAkBnD,IAjBA,GAAIinB,GAAIjnB,EAAQinB,EACZpG,EAAI7gB,EAAQ6gB,EACZpgB,EAAMT,EAAQS,IACdC,EAAOV,EAAQU,KACfoxB,EAAY9xB,EAAQ8xB,UAGpBtxB,EAAY,EACZk6C,EAAS1oD,KAAKgO,QAAQgtH,kBACtBlgH,MAAM,GACNuiD,MAAQ,GACRiyD,MAAmB,GACnB4R,MAAkB,GAClBC,MAAa,GAEbxyH,EAAwB,IAAdF,EAAMC,GAEbD,GAAOC,GAAQF,EAXF,KAYlBG,EAAwB,IAAdF,EAAMC,GAEhBoM,EAAM9a,KAAKu+H,eAAetpG,EAAGpG,EAAG65B,EAAQ/5C,GACxC0uD,EAAQ56D,KAAK28D,MAAM3xB,EAAK5e,EAAI/T,EAAI+T,EAAG4e,EAAKxY,EAAIna,EAAIma,GAChDq6F,EAAmB7hF,EAAK6hF,iBAAiBh6G,EAAK+nD,GAC9C6jE,EAAkBz+H,KAAKorD,KAAKprD,KAAKknB,IAAI7O,EAAIma,EAAIwY,EAAKxY,EAAG,GAAKxyB,KAAKknB,IAAI7O,EAAI+T,EAAI4e,EAAK5e,EAAG,IACnFsyG,EAAa7R,EAAmB4R,IAC5Bz+H,KAAK0iB,IAAIg8G,GAXC,OAaHA,EAAa,EAElBrhG,EAAY,EACdrxB,EAAME,EAEND,EAAOC,EAGLmxB,EAAY,EACdpxB,EAAOC,EAEPF,EAAME,EAGVH,GAIF,OAFAsM,GAAI7N,EAAI0B,EAEDmM,KAWTvT,IAAK,eACLhF,MAAO,SAAsBwjF,EAAUl6E,GACrC,OAAiB,IAAbk6E,EACKtjF,KAAKJ,IAAIrC,KAAK+6H,eAAgB,GAAM/6H,KAAK2Q,KAAKuqG,KAAK14G,QAE5C,IAAVqJ,EACKpJ,KAAKJ,IAAIrC,KAAK86H,WAAY,GAAM96H,KAAK2Q,KAAKuqG,KAAK14G,OAE/CC,KAAKJ,IAAIrC,KAAKgO,QAAQoC,MAAO,GAAMpQ,KAAK2Q,KAAKuqG,KAAK14G,UAK/D+E,IAAK,WACLhF,MAAO,SAAkB+S,EAAKJ,EAAQ6wE,EAAUl6E,GAC9C,IAA6B,IAAzBqJ,EAAO0nH,cAAyB,CAElC,GAA6B,SAAzB1nH,EAAO0nH,eAA4B58H,KAAK2jB,KAAKtjB,KAAOL,KAAK0jB,GAAGrjB,GAAI,CAClE,GAAI0iI,GAAMztH,EAAI0tH,qBAAqBhjI,KAAK2jB,KAAKsR,EAAGj1B,KAAK2jB,KAAKkL,EAAG7uB,KAAK0jB,GAAGuR,EAAGj1B,KAAK0jB,GAAGmL,GAC5Eo0G,MAAY,GACZC,MAAU,EAgBd,OAfAD,GAAYjjI,KAAK2jB,KAAK3V,QAAQ9D,MAAM0B,UAAUD,OAC9Cu3H,EAAUljI,KAAK0jB,GAAG1V,QAAQ9D,MAAM0B,UAAUD,QAEf,IAAvB3L,KAAK2jB,KAAKoiE,WAA2C,IAArB/lF,KAAK0jB,GAAGqiE,UAC1Ck9C,EAAYtiI,EAAKsJ,gBAAgBjK,KAAK2jB,KAAK3V,QAAQ9D,MAAMyB,OAAQuJ,EAAO/K,SACxE+4H,EAAUviI,EAAKsJ,gBAAgBjK,KAAK0jB,GAAG1V,QAAQ9D,MAAMyB,OAAQuJ,EAAO/K,WACpC,IAAvBnK,KAAK2jB,KAAKoiE,WAA0C,IAArB/lF,KAAK0jB,GAAGqiE,SAChDm9C,EAAUljI,KAAK0jB,GAAG1V,QAAQ9D,MAAMyB,QACA,IAAvB3L,KAAK2jB,KAAKoiE,WAA2C,IAArB/lF,KAAK0jB,GAAGqiE,WACjDk9C,EAAYjjI,KAAK2jB,KAAK3V,QAAQ9D,MAAMyB,QAEtCo3H,EAAII,aAAa,EAAGF,GACpBF,EAAII,aAAa,EAAGD,GAGbH,EAGT,MAA6B,OAAzB7tH,EAAO0nH,cACFj8H,EAAKsJ,gBAAgBjK,KAAK0jB,GAAG1V,QAAQ9D,MAAMyB,OAAQuJ,EAAO/K,SAG1DxJ,EAAKsJ,gBAAgBjK,KAAK2jB,KAAK3V,QAAQ9D,MAAMyB,OAAQuJ,EAAO/K,SAGrE,MAAOxJ,GAAKsJ,gBAAgBiL,EAAOhL,MAAOgL,EAAO/K,YAcrD5C,IAAK,UACLhF,MAAO,SAAiB+S,EAAKJ,EAAQ+f,EAAGpG,EAAG65B,GAEzC1oD,KAAKy4H,aAAanjH,EAAKJ,GAGvBI,EAAIkvC,YACJlvC,EAAIszC,IAAI3zB,EAAGpG,EAAG65B,EAAQ,EAAG,EAAIjmD,KAAKomD,IAAI,GACtCvzC,EAAI6kC,SAGJn6C,KAAK04H,cAAcpjH,EAAKJ,MAiB1B3N,IAAK,oBACLhF,MAAO,SAA2Bk9H,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,EAAIqB,EAAKlsH,GAE7D,GAAIzM,GAAc,CAClB,IAAIzI,KAAK2jB,MAAQ3jB,KAAK0jB,GACpBjb,EAAczI,KAAKojI,mBAAmB3D,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,EAAIqB,OACzD,CACL,GAAIiC,GAAmBrjI,KAAKgiI,mBAAen+H,IACvCy/H,GAAmB,EAAIrT,EAAyB,SAAGoT,EAAkB,GACrEpuG,EAAIquG,EAAiB,GACrBz0G,EAAIy0G,EAAiB,GACrB56E,EAAS46E,EAAiB,GAE1BxlF,EAAK7oB,EAAI6qG,EACT/hF,EAAKlvB,EAAIkxG,CACbt3H,GAAchG,KAAK0iB,IAAI1iB,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GAAM2K,GAGxD,MAAI1oD,MAAKkuH,YAAY79E,KAAKnqC,KAAO45H,GAAM9/H,KAAKkuH,YAAY79E,KAAKnqC,KAAOlG,KAAKkuH,YAAY79E,KAAKjgC,MAAQ0vH,GAAM9/H,KAAKkuH,YAAY79E,KAAK/pC,IAAMy5H,GAAM//H,KAAKkuH,YAAY79E,KAAK/pC,IAAMtG,KAAKkuH,YAAY79E,KAAKhgC,OAAS0vH,EAC5L,EAEAt3H,KAIXlB,IAAK,qBACLhF,MAAO,SAA4Bk9H,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,GACrD,GAAI9lH,GAAKkoG,EAAKsd,EACV8D,EAAKnhB,EAAKsd,EACV8D,EAAYvpH,EAAKA,EAAKspH,EAAKA,EAC3Bz6G,IAAMg3G,EAAKL,GAAMxlH,GAAM8lH,EAAKL,GAAM6D,GAAMC,CAExC16G,GAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,EAGN,IAAImM,GAAIwqG,EAAK32G,EAAI7O,EACb4U,EAAI6wG,EAAK52G,EAAIy6G,EACbzlF,EAAK7oB,EAAI6qG,EACT/hF,EAAKlvB,EAAIkxG,CAQb,OAAOt9H,MAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,MAWlCx2C,IAAK,eACLhF,MAAO,SAAsB+S,EAAK/E,EAAUitH,EAASz3C,EAAUl6E,EAAOqJ,GAEpE,GAAImoD,OAAQ,GACRomE,MAAa,GACbvF,MAAQ,GACRC,MAAQ,GACRuF,MAAc,GACd9I,MAAc,GACd31H,MAAO,GACPi/C,EAAYhvC,EAAO9E,KAsBvB,IApBiB,SAAbG,GACF2tH,EAAQl+H,KAAK2jB,KACbw6G,EAAQn+H,KAAK0jB,GACbggH,EAAc,GACd9I,EAAc1lH,EAAO+nH,eACrBh4H,EAAOiQ,EAAOgoH,eACQ,OAAb3sH,GACT2tH,EAAQl+H,KAAK0jB,GACby6G,EAAQn+H,KAAK2jB,KACb+/G,GAAe,GACf9I,EAAc1lH,EAAO2nH,aACrB53H,EAAOiQ,EAAO4nH,cAEdoB,EAAQl+H,KAAK0jB,GACby6G,EAAQn+H,KAAK2jB,KACbi3G,EAAc1lH,EAAO6nH,iBACrB93H,EAAOiQ,EAAO8nH,iBAIZkB,GAASC,EACX,GAAiB,WAAb5tH,EAEF,IAAoC,IAAhCvQ,KAAKgO,QAAQitH,OAAO/sH,QAAkB,CACxCu1H,EAAazjI,KAAK2jI,mBAAmBzF,EAAO5oH,GAAO8rH,IAAK5D,GACxD,IAAIoG,GAAW5jI,KAAKo+H,SAAS37H,KAAKJ,IAAI,EAAKI,KAAKL,IAAI,EAAKqhI,EAAWx2H,EAAIy2H,IAAelG,EACvFngE,GAAQ56D,KAAK28D,MAAMqkE,EAAW50G,EAAI+0G,EAAS/0G,EAAG40G,EAAWxuG,EAAI2uG,EAAS3uG,OAEtEooC,GAAQ56D,KAAK28D,MAAM8+D,EAAMrvG,EAAIsvG,EAAMtvG,EAAGqvG,EAAMjpG,EAAIkpG,EAAMlpG,GACtDwuG,EAAazjI,KAAK2jI,mBAAmBzF,EAAO5oH,OAG9C+nD,GAAQ56D,KAAK28D,MAAM8+D,EAAMrvG,EAAIsvG,EAAMtvG,EAAGqvG,EAAMjpG,EAAIkpG,EAAMlpG,GACtDwuG,EAAazjI,KAAKo+H,SAAS,GAAKZ,OAE7B,CAEL,GAAIqG,GAAmB7jI,KAAKgiI,eAAe1sH,GACvCwuH,GAAmB,EAAI7T,EAAyB,SAAG4T,EAAkB,GACrE5uG,EAAI6uG,EAAiB,GACrBj1G,EAAIi1G,EAAiB,GACrBp7E,EAASo7E,EAAiB,EAEb,UAAbvzH,GACFkzH,EAAazjI,KAAK2jI,mBAAmB3jI,KAAK2jB,KAAMrO,GAAO2f,EAAGA,EAAGpG,EAAGA,EAAGpgB,IAAK,IAAMC,KAAM,GAAKoxB,WAAY,IACrGu9B,GAAwB,EAAhBomE,EAAWx2H,EAASxK,KAAKomD,GAAK,IAAMpmD,KAAKomD,GAAK,GAAMpmD,KAAKomD,IAC3C,OAAbt4C,GACTkzH,EAAazjI,KAAK2jI,mBAAmB3jI,KAAK2jB,KAAMrO,GAAO2f,EAAGA,EAAGpG,EAAGA,EAAGpgB,IAAK,GAAKC,KAAM,EAAKoxB,UAAW,IACnGu9B,GAAwB,EAAhBomE,EAAWx2H,EAASxK,KAAKomD,GAAK,IAAMpmD,KAAKomD,GAAK,IAAMpmD,KAAKomD,KAEjE46E,EAAazjI,KAAKu+H,eAAetpG,EAAGpG,EAAG65B,EAAQ,MAC/C2U,EAAQ,oBAIZ,GAAIz5D,GAAS,GAAKg3H,EAAc,EAAI12E,CAMpC,QAAStpC,MAAO6oH,EAAYpuH,MAFV4f,EAFTwuG,EAAWxuG,EAAa,GAATrxB,EAAenB,KAAK06C,IAAIkgB,GAEvBxuC,EADhB40G,EAAW50G,EAAa,GAATjrB,EAAenB,KAAKw6C,IAAIogB,IAGHA,MAAOA,EAAOz5D,OAAQA,EAAQqB,KAAMA,MAYnFsC,IAAK,gBACLhF,MAAO,SAAuB+S,EAAKJ,EAAQ6wE,EAAUl6E,EAAO6xH,GAE1DpoH,EAAIivC,YAAcvkD,KAAK4hI,SAAStsH,EAAKJ,EAAQ6wE,EAAUl6E,GACvDyJ,EAAIuvC,UAAYvvC,EAAIivC,YACpBjvC,EAAI4uC,UAAYhvC,EAAO9E,MAEnBstH,EAAUz4H,MAAyC,WAAjCy4H,EAAUz4H,KAAKgjB,cAEnC3S,EAAIysG,eAAe2b,EAAU9iH,MAAMqa,EAAGyoG,EAAU9iH,MAAMiU,EAAG6uG,EAAUrgE,MAAOqgE,EAAU95H,QAGpF0R,EAAIgsG,cAAcoc,EAAU9iH,MAAMqa,EAAGyoG,EAAU9iH,MAAMiU,EAAG6uG,EAAUrgE,MAAOqgE,EAAU95H,QAIrF5D,KAAKy4H,aAAanjH,EAAKJ,GACvBI,EAAI4kC,OAEJl6C,KAAK04H,cAAcpjH,EAAKJ,MAG1B3N,IAAK,eACLhF,MAAO,SAAsB+S,EAAKJ,IACV,IAAlBA,EAAOo2G,SACTh2G,EAAI05G,YAAc95G,EAAO85G,YACzB15G,EAAIyiH,WAAa7iH,EAAO+5G,WACxB35G,EAAI0iH,cAAgB9iH,EAAOg6G,QAC3B55G,EAAI2iH,cAAgB/iH,EAAOi6G,YAI/B5nH,IAAK,gBACLhF,MAAO,SAAuB+S,EAAKJ,IACX,IAAlBA,EAAOo2G,SACTh2G,EAAI05G,YAAc,gBAClB15G,EAAIyiH,WAAa,EACjBziH,EAAI0iH,cAAgB,EACpB1iH,EAAI2iH,cAAgB,OAInByJ,IAGT9hI,GAAiB,QAAI8hI,GAIjB,SAAU7hI,EAAQD,EAASM,GAoC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhCzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIytH,GAAkB9vH,EAAoB,KAEtC+vH,EAAkBpvH,EAAuBmvH,GAEzCoG,EAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpC8J,EAAmBpgI,EAAoB,KAEvCqgI,EAAmB1/H,EAAuBy/H,GAI1CrE,EAAoB,SAAUwE,GAGhC,QAASxE,GAAkBjuH,EAAS2C,EAAMu9G,IACxC,EAAIv7B,EAA0B,SAAG3yF,KAAMi8H,EAGvC,IAAIhiC,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAOi8H,EAAkBpF,YAAa,EAAIR,EAA0B,SAAG4F,IAAoB17H,KAAKP,KAAMgO,EAAS2C,EAAMu9G,GAQ7K,OAJAj0B,GAAM8pC,eAAiB,WACrB9pC,EAAM+pC,sBAER/pC,EAAMtpF,KAAKk+D,QAAQt9B,GAAG,yBAA0B0oD,EAAM8pC,gBAC/C9pC,EAiKT,OA/KA,EAAIw8B,EAAoB,SAAGwF,EAAmBwE,IAiB9C,EAAI5tC,EAAuB,SAAGopC,IAC5B10H,IAAK,aACLhF,MAAO,SAAoByL,GAEzB,GAAIi2H,IAAgB,CAChBjkI,MAAKgO,QAAQivF,UAAYjvF,EAAQivF,UACnCgnC,GAAgB,GAIlBjkI,KAAKgO,QAAUA,EACfhO,KAAKK,GAAKL,KAAKgO,QAAQ3N,GACvBL,KAAK2jB,KAAO3jB,KAAK2Q,KAAKspG,MAAMj6G,KAAKgO,QAAQ2V,MACzC3jB,KAAK0jB,GAAK1jB,KAAK2Q,KAAKspG,MAAMj6G,KAAKgO,QAAQ0V,IAGvC1jB,KAAKkkI,mBACLlkI,KAAK87H,WAGiB,IAAlBmI,IACFjkI,KAAKohI,IAAIlwF,YAAa+rD,QAASj9F,KAAKgO,QAAQivF,UAC5Cj9F,KAAKgkI,yBAITz8H,IAAK,UACLhF,MAAO,WACLvC,KAAK2jB,KAAO3jB,KAAK2Q,KAAKspG,MAAMj6G,KAAKgO,QAAQ2V,MACzC3jB,KAAK0jB,GAAK1jB,KAAK2Q,KAAKspG,MAAMj6G,KAAKgO,QAAQ0V,QACrB7f,KAAd7D,KAAK2jB,UAAkC9f,KAAZ7D,KAAK0jB,KAA6C,IAAzB1jB,KAAKgO,QAAQivF,QACnEj9F,KAAKohI,IAAIlwF,YAAa+rD,SAAS,IAG3Bj9F,KAAK2jB,KAAKtjB,KAAOL,KAAK0jB,GAAGrjB,GAC3BL,KAAKohI,IAAIlwF,YAAa+rD,SAAS,IAE/Bj9F,KAAKohI,IAAIlwF,YAAa+rD,SAAS,OAWrC11F,IAAK,UACLhF,MAAO,WAEL,MADAvC,MAAK2Q,KAAKk+D,QAAQn9B,IAAI,yBAA0B1xC,KAAK+jI,oBACpClgI,KAAb7D,KAAKohI,YACAphI,MAAK2Q,KAAKspG,MAAMj6G,KAAKohI,IAAI/gI,IAChCL,KAAKohI,QAAMv9H,IACJ,MAcX0D,IAAK,mBACLhF,MAAO,WACL,OAAiBsB,KAAb7D,KAAKohI,IAAmB,CAC1B,GAAIpkB,GAAS,UAAYh9G,KAAKK,GAC1BotC,EAAOztC,KAAK2Q,KAAKoqG,UAAUC,YAC7B36G,GAAI28G,EACJwI,MAAO,SACPvoB,SAAS,EACT7jB,QAAQ,GAEVp5E,MAAK2Q,KAAKspG,MAAM+C,GAAUvvE,EAC1BztC,KAAKohI,IAAM3zF,EACXztC,KAAKohI,IAAI+C,aAAenkI,KAAKK,GAC7BL,KAAKgkI,yBAITz8H,IAAK,qBACLhF,MAAO,eACYsB,KAAb7D,KAAKohI,SAAmCv9H,KAAd7D,KAAK2jB,UAAkC9f,KAAZ7D,KAAK0jB,IAC5D1jB,KAAKohI,IAAInsG,EAAI,IAAOj1B,KAAK2jB,KAAKsR,EAAIj1B,KAAK0jB,GAAGuR,GAC1Cj1B,KAAKohI,IAAIvyG,EAAI,IAAO7uB,KAAK2jB,KAAKkL,EAAI7uB,KAAK0jB,GAAGmL,QACpBhrB,KAAb7D,KAAKohI,MACdphI,KAAKohI,IAAInsG,EAAI,EACbj1B,KAAKohI,IAAIvyG,EAAI,MAWjBtnB,IAAK,QACLhF,MAAO,SAAe+S,EAAKJ,EAAQsoH,GACjCx9H,KAAKw/H,aAAalqH,EAAKJ,EAAQsoH,MAGjCj2H,IAAK,aACLhF,MAAO,WACL,MAAOvC,MAAKohI,OAYd75H,IAAK,WACLhF,MAAO,SAAkB47E,GACvB,GAAIq/C,GAAU75H,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAKohI,IAEnFn0H,EAAIkxE,EACJlpD,MAAI,GACJpG,MAAI,EACR,IAAI7uB,KAAK2jB,OAAS3jB,KAAK0jB,GAAI,CACzB,GAAIs+G,GAAiBhiI,KAAKgiI,eAAehiI,KAAK2jB,MAC1Co+G,GAAkB,EAAI9R,EAAyB,SAAG+R,EAAgB,GAClEnlF,EAAKklF,EAAgB,GACrBjlF,EAAKilF,EAAgB,GACrBqC,EAAKrC,EAAgB,GAErBv+H,EAAI,EAAIf,KAAKomD,IAAM,EAAI57C,EAC3BgoB,GAAI4nB,EAAKunF,EAAK3hI,KAAKw6C,IAAIz5C,GACvBqrB,EAAIiuB,EAAKsnF,EAAKA,GAAM,EAAI3hI,KAAK06C,IAAI35C,QAEjCyxB,GAAIxyB,KAAKknB,IAAI,EAAI1c,EAAG,GAAKjN,KAAK29H,UAAU1oG,EAAI,EAAIhoB,GAAK,EAAIA,GAAKuwH,EAAQvoG,EAAIxyB,KAAKknB,IAAI1c,EAAG,GAAKjN,KAAK49H,QAAQ3oG,EACxGpG,EAAIpsB,KAAKknB,IAAI,EAAI1c,EAAG,GAAKjN,KAAK29H,UAAU9uG,EAAI,EAAI5hB,GAAK,EAAIA,GAAKuwH,EAAQ3uG,EAAIpsB,KAAKknB,IAAI1c,EAAG,GAAKjN,KAAK49H,QAAQ/uG,CAG1G,QAASoG,EAAGA,EAAGpG,EAAGA,MAGpBtnB,IAAK,sBACLhF,MAAO,SAA6Bq9H,EAAUtqH,GAC5C,MAAOtV,MAAK6/H,0BAA0BD,EAAUtqH,EAAKtV,KAAKohI,QAG5D75H,IAAK,qBACLhF,MAAO,SAA4Bk9H,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,GAErD,MAAO//H,MAAKkgI,yBAAyBT,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,EAAI//H,KAAKohI,SAG/DnF,GACPsE,EAA0B,QAE5B3gI,GAAiB,QAAIq8H,GAIjB,SAAUp8H,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpC8J,EAAmBpgI,EAAoB,KAEvCqgI,EAAmB1/H,EAAuBy/H,GAI1CpE,EAAmB,SAAUuE,GAG/B,QAASvE,GAAiBluH,EAAS2C,EAAMu9G,GAEvC,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMk8H,IAChC,EAAI3F,EAAqC,SAAGv2H,MAAOk8H,EAAiBrF,YAAa,EAAIR,EAA0B,SAAG6F,IAAmB37H,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IA+KxK,OAnLA,EAAIuI,EAAoB,SAAGyF,EAAkBuE,IAc7C,EAAI5tC,EAAuB,SAAGqpC,IAC5B30H,IAAK,QACLhF,MAAO,SAAe+S,EAAKJ,EAAQsoH,GACjCx9H,KAAKw/H,aAAalqH,EAAKJ,EAAQsoH,MAGjCj2H,IAAK,aACLhF,MAAO,WACL,MAAOvC,MAAK2/H,wBAUdp4H,IAAK,qBACLhF,MAAO,WAEL,GAAI8hI,OAAOxgI,GACPygI,MAAOzgI,GACPquE,EAASlyE,KAAKgO,QAAQitH,OAAOE,UAC7Bl2H,EAAOjF,KAAKgO,QAAQitH,OAAOh2H,KAC3B64C,EAAKr7C,KAAK0iB,IAAInlB,KAAK2jB,KAAKsR,EAAIj1B,KAAK0jB,GAAGuR,GACpC8oB,EAAKt7C,KAAK0iB,IAAInlB,KAAK2jB,KAAKkL,EAAI7uB,KAAK0jB,GAAGmL,EACxC,IAAa,aAAT5pB,GAAgC,kBAATA,EAA0B,CACnD,GAAIs/H,OAAQ,GACRC,MAAQ,EAGVD,GAAQC,EADN1mF,GAAMC,EACQm0B,EAASn0B,EAETm0B,EAASp0B,EAGvB99C,KAAK2jB,KAAKsR,EAAIj1B,KAAK0jB,GAAGuR,IAAGsvG,GAASA,GAClCvkI,KAAK2jB,KAAKkL,GAAK7uB,KAAK0jB,GAAGmL,IAAG21G,GAASA,GAEvCH,EAAOrkI,KAAK2jB,KAAKsR,EAAIsvG,EACrBD,EAAOtkI,KAAK2jB,KAAKkL,EAAI21G,EAER,aAATv/H,IACE64C,GAAMC,EACRsmF,EAAOvmF,EAAKo0B,EAASn0B,EAAK/9C,KAAK2jB,KAAKsR,EAAIovG,EAExCC,EAAOvmF,EAAKm0B,EAASp0B,EAAK99C,KAAK2jB,KAAKkL,EAAIy1G,OAGvC,IAAa,kBAATr/H,EAA0B,CACnC,GAAIw/H,IAAU,EAAIvyD,GAAUp0B,EACxB4mF,GAAU,EAAIxyD,GAAUn0B,CAExBD,IAAMC,GAER0mF,EAAS,EACLzkI,KAAK2jB,KAAKkL,EAAI7uB,KAAK0jB,GAAGmL,IAAG61G,GAAUA,KAGnC1kI,KAAK2jB,KAAKsR,EAAIj1B,KAAK0jB,GAAGuR,IAAGwvG,GAAUA,GACvCC,EAAS,GAEXL,EAAOrkI,KAAK0jB,GAAGuR,EAAIwvG,EACnBH,EAAOtkI,KAAK0jB,GAAGmL,EAAI61G,MACd,IAAa,eAATz/H,EAAuB,CAChC,GAAI0/H,IAAW,EAAIzyD,GAAUp0B,CACzB99C,MAAK2jB,KAAKsR,EAAIj1B,KAAK0jB,GAAGuR,IAAG0vG,GAAWA,GACxCN,EAAOrkI,KAAK0jB,GAAGuR,EAAI0vG,EACnBL,EAAOtkI,KAAK2jB,KAAKkL,MACZ,IAAa,aAAT5pB,EAAqB,CAC9B,GAAI2/H,IAAW,EAAI1yD,GAAUn0B,CACzB/9C,MAAK2jB,KAAKkL,EAAI7uB,KAAK0jB,GAAGmL,IAAG+1G,GAAWA,GACxCP,EAAOrkI,KAAK2jB,KAAKsR,EACjBqvG,EAAOtkI,KAAK0jB,GAAGmL,EAAI+1G,MACd,IAAa,aAAT3/H,EAAqB,CAC9B64C,EAAK99C,KAAK0jB,GAAGuR,EAAIj1B,KAAK2jB,KAAKsR,EAC3B8oB,EAAK/9C,KAAK2jB,KAAKkL,EAAI7uB,KAAK0jB,GAAGmL,CAC3B,IAAI65B,GAASjmD,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GAClC8mF,EAAKpiI,KAAKomD,GAEVi8E,EAAgBriI,KAAK28D,MAAMrhB,EAAID,GAC/BinF,GAAWD,GAA0B,GAAT5yD,EAAe,IAAO2yD,IAAO,EAAIA,EAEjER,GAAOrkI,KAAK2jB,KAAKsR,GAAc,GAATi9C,EAAe,IAAOxpB,EAASjmD,KAAKw6C,IAAI8nF,GAC9DT,EAAOtkI,KAAK2jB,KAAKkL,GAAc,GAATqjD,EAAe,IAAOxpB,EAASjmD,KAAK06C,IAAI4nF,OACzD,IAAa,cAAT9/H,EAAsB,CAC/B64C,EAAK99C,KAAK0jB,GAAGuR,EAAIj1B,KAAK2jB,KAAKsR,EAC3B8oB,EAAK/9C,KAAK2jB,KAAKkL,EAAI7uB,KAAK0jB,GAAGmL,CAC3B,IAAI6zG,GAAUjgI,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GACnCinF,EAAMviI,KAAKomD,GAEXo8E,EAAiBxiI,KAAK28D,MAAMrhB,EAAID,GAChConF,GAAYD,GAA4B,IAAT/yD,EAAe,IAAO8yD,IAAQ,EAAIA,EAErEX,GAAOrkI,KAAK2jB,KAAKsR,GAAc,GAATi9C,EAAe,IAAOwwD,EAAUjgI,KAAKw6C,IAAIioF,GAC/DZ,EAAOtkI,KAAK2jB,KAAKkL,GAAc,GAATqjD,EAAe,IAAOwwD,EAAUjgI,KAAK06C,IAAI+nF,OAC1D,CAEL,GAAIC,OAAU,GACVC,MAAU,EAGZD,GAAUC,EADRtnF,GAAMC,EACYm0B,EAASn0B,EAETm0B,EAASp0B,EAG3B99C,KAAK2jB,KAAKsR,EAAIj1B,KAAK0jB,GAAGuR,IAAGkwG,GAAWA,GACpCnlI,KAAK2jB,KAAKkL,GAAK7uB,KAAK0jB,GAAGmL,IAAGu2G,GAAWA,GAEzCf,EAAOrkI,KAAK2jB,KAAKsR,EAAIkwG,EACrBb,EAAOtkI,KAAK2jB,KAAKkL,EAAIu2G,EAEjBtnF,GAAMC,EAENsmF,EADErkI,KAAK2jB,KAAKsR,GAAKj1B,KAAK0jB,GAAGuR,EAClBj1B,KAAK0jB,GAAGuR,EAAIovG,EAAOrkI,KAAK0jB,GAAGuR,EAAIovG,EAE/BrkI,KAAK0jB,GAAGuR,EAAIovG,EAAOrkI,KAAK0jB,GAAGuR,EAAIovG,EAItCC,EADEtkI,KAAK2jB,KAAKkL,GAAK7uB,KAAK0jB,GAAGmL,EAClB7uB,KAAK0jB,GAAGmL,EAAIy1G,EAAOtkI,KAAK0jB,GAAGmL,EAAIy1G,EAE/BtkI,KAAK0jB,GAAGmL,EAAIy1G,EAAOtkI,KAAK0jB,GAAGmL,EAAIy1G,EAI5C,OAASrvG,EAAGovG,EAAMx1G,EAAGy1G,MAGvB/8H,IAAK,sBACLhF,MAAO,SAA6Bq9H,EAAUtqH,GAC5C,GAAItH,GAAUrK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAE7E,OAAO3D,MAAK6/H,0BAA0BD,EAAUtqH,EAAKtH,EAAQozH,QAG/D75H,IAAK,qBACLhF,MAAO,SAA4Bk9H,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,GACrD,GAAIvC,GAAU75H,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK2/H,oBAEvF,OAAO3/H,MAAKkgI,yBAAyBT,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,EAAIvC,MAY/Dj2H,IAAK,WACLhF,MAAO,SAAkB47E,GACvB,GAAIq/C,GAAU75H,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAK2/H,qBAEnF1yH,EAAIkxE,CAIR,QAASlpD,EAHDxyB,KAAKknB,IAAI,EAAI1c,EAAG,GAAKjN,KAAK29H,UAAU1oG,EAAI,EAAIhoB,GAAK,EAAIA,GAAKuwH,EAAQvoG,EAAIxyB,KAAKknB,IAAI1c,EAAG,GAAKjN,KAAK49H,QAAQ3oG,EAG7FpG,EAFPpsB,KAAKknB,IAAI,EAAI1c,EAAG,GAAKjN,KAAK29H,UAAU9uG,EAAI,EAAI5hB,GAAK,EAAIA,GAAKuwH,EAAQ3uG,EAAIpsB,KAAKknB,IAAI1c,EAAG,GAAKjN,KAAK49H,QAAQ/uG,OAKzGqtG,GACPqE,EAA0B,QAE5B3gI,GAAiB,QAAIs8H,GAIjB,SAAUr8H,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCsK,EAAa5gI,EAAoB,KAEjC6gI,EAAalgI,EAAuBigI,GAIpC3E,EAAe,SAAU8E,GAG3B,QAAS9E,GAAanuH,EAAS2C,EAAMu9G,GAEnC,OADA,EAAIv7B,EAA0B,SAAG3yF,KAAMm8H,IAChC,EAAI5F,EAAqC,SAAGv2H,MAAOm8H,EAAatF,YAAa,EAAIR,EAA0B,SAAG8F,IAAe57H,KAAKP,KAAMgO,EAAS2C,EAAMu9G,IA0EhK,OA9EA,EAAIuI,EAAoB,SAAG0F,EAAc8E,IAczC,EAAIpuC,EAAuB,SAAGspC,IAC5B50H,IAAK,QACLhF,MAAO,SAAe+S,EAAKJ,GAEzBI,EAAIkvC,YACJlvC,EAAImvC,OAAOzkD,KAAK29H,UAAU1oG,EAAGj1B,KAAK29H,UAAU9uG,GAC5CvZ,EAAIovC,OAAO1kD,KAAK49H,QAAQ3oG,EAAGj1B,KAAK49H,QAAQ/uG,GAExC7uB,KAAKy4H,aAAanjH,EAAKJ,GACvBI,EAAI6kC,SACJn6C,KAAK04H,cAAcpjH,EAAKJ,MAG1B3N,IAAK,aACLhF,MAAO,eAaPgF,IAAK,WACLhF,MAAO,SAAkB47E,GACvB,OACElpD,GAAI,EAAIkpD,GAAcn+E,KAAK29H,UAAU1oG,EAAIkpD,EAAan+E,KAAK49H,QAAQ3oG,EACnEpG,GAAI,EAAIsvD,GAAcn+E,KAAK29H,UAAU9uG,EAAIsvD,EAAan+E,KAAK49H,QAAQ/uG,MAIvEtnB,IAAK,sBACLhF,MAAO,SAA6Bq9H,EAAUtqH,GAC5C,GAAI4oH,GAAQl+H,KAAK0jB,GACby6G,EAAQn+H,KAAK2jB,IACbi8G,GAASv/H,KAAOL,KAAK2jB,KAAKtjB,KAC5B69H,EAAQl+H,KAAK2jB,KACbw6G,EAAQn+H,KAAK0jB,GAGf,IAAI25C,GAAQ56D,KAAK28D,MAAM8+D,EAAMrvG,EAAIsvG,EAAMtvG,EAAGqvG,EAAMjpG,EAAIkpG,EAAMlpG,GACtD6oB,EAAKogF,EAAMjpG,EAAIkpG,EAAMlpG,EACrB8oB,EAAKmgF,EAAMrvG,EAAIsvG,EAAMtvG,EACrBw2G,EAAoB5iI,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GAC7CunF,EAAe1F,EAAStQ,iBAAiBh6G,EAAK+nD,GAC9CkoE,GAAiBF,EAAoBC,GAAgBD,EAErDG,IAIJ,OAHAA,GAAUvwG,GAAK,EAAIswG,GAAiBpH,EAAMlpG,EAAIswG,EAAgBrH,EAAMjpG,EACpEuwG,EAAU32G,GAAK,EAAI02G,GAAiBpH,EAAMtvG,EAAI02G,EAAgBrH,EAAMrvG,EAE7D22G,KAGTj+H,IAAK,qBACLhF,MAAO,SAA4Bk9H,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,GAErD,MAAO//H,MAAK6gI,mBAAmBpB,EAAIC,EAAIvd,EAAIC,EAAI0d,EAAIC,OAGhD5D,GACP4E,EAAoB,QAEtBnhI,GAAiB,QAAIu8H,GAIjB,SAAUt8H,EAAQD,EAASM,GA4B/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAxBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIlB,GAAQnB,EAAoB,IAE5BoB,EAAST,EAAuBQ,GAEhC2uH,EAAkB9vH,EAAoB,KAEtC+vH,EAAkBpvH,EAAuBmvH,GAEzCzuH,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCmxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAC3BulI,EAAcvlI,EAAoB,KAAc,QAWhDwlI,EAAqB,WACvB,QAASA,MACP,EAAI/yC,EAA0B,SAAG3yF,KAAM0lI,GAEvC1lI,KAAK2lI,qBACL3lI,KAAK4lI,mBACL5lI,KAAK6lI,UACL7lI,KAAK8lI,SAEL9lI,KAAK+lI,QAAS,EAiKhB,OAzJA,EAAIlzC,EAAuB,SAAG6yC,IAC5Bn+H,IAAK,cACLhF,MAAO,SAAqByjI,EAAcC,OACKpiI,KAAzC7D,KAAK2lI,kBAAkBK,KACzBhmI,KAAK2lI,kBAAkBK,OAEzBhmI,KAAK2lI,kBAAkBK,GAAcnhI,KAAKohI,OAEApiI,KAAtC7D,KAAK4lI,gBAAgBK,KACvBjmI,KAAK4lI,gBAAgBK,OAEvBjmI,KAAK4lI,gBAAgBK,GAAaphI,KAAKmhI,MAYzCz+H,IAAK,cACLhF,MAAO,WACL,IAAK,GAAIwB,KAAK/D,MAAK4lI,gBACjB,GAAI5lI,KAAK4lI,gBAAgB7hI,GAAGH,OAAS,EAEnC,YADA5D,KAAK+lI,QAAS,EAKlB/lI,MAAK+lI,QAAS,KAUhBx+H,IAAK,cACLhF,MAAO,SAAqBy6G,OACEn5G,KAAxB7D,KAAK6lI,OAAO7oB,KACdh9G,KAAK6lI,OAAO7oB,GAAU,MAW1Bz1G,IAAK,cACLhF,MAAO,SAAqBy6G,GAC1B,GAAI/iB,GAAQj6F,KAERkmI,IAmBJ,OAjBmB,SAASC,GAAanpB,GACvC,OAA4Bn5G,KAAxBqiI,EAAYlpB,GACd,MAAOkpB,GAAYlpB,EAErB,IAAIgO,GAAQ/wB,EAAM4rC,OAAO7oB,EACzB,IAAI/iB,EAAM0rC,kBAAkB3oB,GAAS,CACnC,GAAI3wE,GAAW4tD,EAAM0rC,kBAAkB3oB,EACvC,IAAI3wE,EAASzoC,OAAS,EACpB,IAAK,GAAIG,GAAI,EAAGA,EAAIsoC,EAASzoC,OAAQG,IACnCinH,EAAQvoH,KAAKJ,IAAI2oH,EAAOmb,EAAa95F,EAAStoC,KAKpD,MADAmiI,GAAYlpB,GAAUgO,EACfA,GAGWhO,MAGtBz1G,IAAK,kBACLhF,MAAO,SAAyB6jI,EAAOC,OACPxiI,KAA1B7D,KAAK6lI,OAAOQ,EAAMhmI,UAEUwD,KAA1B7D,KAAK6lI,OAAOO,EAAM/lI,MACpBL,KAAK6lI,OAAOO,EAAM/lI,IAAM,GAG1BL,KAAK6lI,OAAOQ,EAAMhmI,IAAML,KAAK6lI,OAAOO,EAAM/lI,IAAM,MASpDkH,IAAK,oBACLhF,MAAO,SAA2B03G,GAChC,GAAIqsB,GAAW,GAEf,KAAK,GAAItpB,KAAU/C,GACbA,EAAM32G,eAAe05G,QACKn5G,KAAxB7D,KAAK6lI,OAAO7oB,KACdspB,EAAW7jI,KAAKL,IAAIpC,KAAK6lI,OAAO7oB,GAASspB,GAM/C,KAAK,GAAI54F,KAAWusE,GACdA,EAAM32G,eAAeoqC,QACM7pC,KAAzB7D,KAAK6lI,OAAOn4F,KACd1tC,KAAK6lI,OAAOn4F,IAAY44F,MAWhC/+H,IAAK,cACLhF,MAAO,SAAqB03G,EAAOlnG,GACjC,GAAIwzH,GAAQ,IACRC,GAAS,IACTC,EAAQ,IACRC,GAAS,GAEb,KAAK,GAAI1pB,KAAUh9G,MAAK8lI,MACtB,GAAI9lI,KAAK8lI,MAAMxiI,eAAe05G,IACxBh9G,KAAK8lI,MAAM9oB,KAAYjqG,EAAO,CAChC,GAAI06B,GAAOwsE,EAAM+C,EACjBupB,GAAQ9jI,KAAKL,IAAIqrC,EAAKxY,EAAGsxG,GACzBC,EAAQ/jI,KAAKJ,IAAIorC,EAAKxY,EAAGuxG,GACzBC,EAAQhkI,KAAKL,IAAIqrC,EAAK5e,EAAG43G,GACzBC,EAAQjkI,KAAKJ,IAAIorC,EAAK5e,EAAG63G,GAK/B,OACEH,MAAOA,EACPC,MAAOA,EACPC,MAAOA,EACPC,MAAOA,OAINhB,KAGL1pB,EAAe,WACjB,QAASA,GAAarrG,IACpB,EAAIgiF,EAA0B,SAAG3yF,KAAMg8G,GAEvCh8G,KAAK2Q,KAAOA,EAEZ3Q,KAAK2mI,kBAAoBlkI,KAAKm6B,MAAsB,IAAhBn6B,KAAKyX,UACzCla,KAAK4mI,WAAa5mI,KAAK2mI,kBACvB3mI,KAAK6mI,YAAa,EAClB7mI,KAAKgO,WACLhO,KAAK8mI,eAAkB7pC,YAEvBj9F,KAAKguE,gBACH44D,eAAY/iI,GACZkjI,gBAAgB,EAChBC,cACE94H,SAAS,EACT+4H,gBAAiB,IACjBC,YAAa,IACbC,YAAa,IACbC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtBxnG,UAAW,KACXynG,WAAY,YAGhB5mI,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAC/BhuE,KAAKm7G,qBAi/CP,OA9+CA,EAAItoB,EAAuB,SAAGmpB,IAC5Bz0G,IAAK,qBACLhF,MAAO,WACL,GAAIg5F,GAASv7F,IAEbA,MAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WACnCgqD,EAAOisC,4BAETxnI,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,cAAe,WAClCgqD,EAAOksC,kBAETznI,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,2BAA4B,WAC/CgqD,EAAOisC,4BAETxnI,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,oCAAqC,WACxD,IAA4C,IAAxCgqD,EAAOvtF,QAAQg5H,aAAa94H,QAAhC,CAIA,GAAIjJ,GAAOs2F,EAAOmsC,eAGlBnsC,GAAO5qF,KAAKk+D,QAAQ9iB,KAAK,6BAA8B9mD,GAAM,SAIjEsC,IAAK,aACLhF,MAAO,SAAoByL,EAAS6iE,GAClC,OAAgBhtE,KAAZmK,EAAuB,CACzB,GAAIg5H,GAAehnI,KAAKgO,QAAQg5H,aAC5BW,EAAwBX,EAAa94H,OAOzC,IANAvN,EAAK2D,qBAAqB,aAAc,kBAAmBtE,KAAKgO,QAASA,GACzErN,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS,oBACdnK,KAAvBmK,EAAQ44H,aACV5mI,KAAK2mI,kBAAoB34H,EAAQ44H,aAGN,IAAzBI,EAAa94H,QAoBf,OAnB8B,IAA1By5H,GAEF3nI,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAAW,GAIL,OAA3Bi7E,EAAalnG,WAAiD,OAA3BknG,EAAalnG,UAC9CknG,EAAaC,gBAAkB,IACjCD,EAAaC,kBAAoB,GAG/BD,EAAaC,gBAAkB,IACjCD,EAAaC,kBAAoB,GAIrCjnI,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,4BAGhB/rD,KAAK4nI,qCAAqC/2D,EAEjD,KAA8B,IAA1B82D,EAGF,MADA3nI,MAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAChBprD,EAAK+D,WAAWmsE,EAAY7wE,KAAK8mI,eAI9C,MAAOj2D,MAGTtpE,IAAK,uCACLhF,MAAO,SAA8CsuE,GACnD,IAA0C,IAAtC7wE,KAAKgO,QAAQg5H,aAAa94H,QAAkB,CAC9C,GAAI25H,GAAgB7nI,KAAK8mI,cAAc7pC,YAGZp5F,KAAvBgtE,EAAWosB,UAAgD,IAAvBpsB,EAAWosB,SACjDpsB,EAAWosB,SACT/uF,YAAmCrK,KAA1BgkI,EAAc35H,SAA+B25H,EAAc35H,QACpEgvF,OAAQ,yBAEV2qC,EAAc35H,YAAoCrK,KAA1BgkI,EAAc35H,SAA+B25H,EAAc35H,QACnF25H,EAAc3qC,OAAS2qC,EAAc3qC,QAAU,aACW,YAAjD,EAAI17F,EAAkB,SAAGqvE,EAAWosB,UAC7C4qC,EAAc35H,YAAyCrK,KAA/BgtE,EAAWosB,QAAQ/uF,SAA+B2iE,EAAWosB,QAAQ/uF,QAC7F25H,EAAc3qC,OAASrsB,EAAWosB,QAAQC,QAAU,YACpDrsB,EAAWosB,QAAQC,OAAS,0BACI,IAAvBrsB,EAAWosB,UACpB4qC,EAAc3qC,OAAS,YACvBrsB,EAAWosB,SAAYC,OAAQ,yBAIjC,IAAIj4F,GAAOjF,KAAK0nI,eAIhB,QAAyB7jI,KAArBgtE,EAAWspC,MACbn6G,KAAK8mI,cAAc3sB,OAAU8gB,QAAU/sH,SAAS,EAAMjJ,KAAM,YAC5D4rE,EAAWspC,OAAU8gB,QAAQ,OACxB,QAAgCp3H,KAA5BgtE,EAAWspC,MAAM8gB,OAC1Bj7H,KAAK8mI,cAAc3sB,OAAU8gB,QAAU/sH,SAAS,EAAMjJ,KAAM,YAC5D4rE,EAAWspC,MAAM8gB,QAAS,MAE1B,IAAuC,iBAA5BpqD,GAAWspC,MAAM8gB,OAC1Bj7H,KAAK8mI,cAAc3sB,OAAU8gB,OAAQpqD,EAAWspC,MAAM8gB,QACtDpqD,EAAWspC,MAAM8gB,QAAW/sH,QAAS2iE,EAAWspC,MAAM8gB,OAAQh2H,KAAMA,OAC/D,CACL,GAAIg2H,GAASpqD,EAAWspC,MAAM8gB,WAGVp3H,KAAhBo3H,EAAOh2H,MAAsC,YAAhBg2H,EAAOh2H,OACtCA,EAAOg2H,EAAOh2H,MAIhBjF,KAAK8mI,cAAc3sB,OACjB8gB,WAA2Bp3H,KAAnBo3H,EAAO/sH,SAA+B+sH,EAAO/sH,QACrDjJ,SAAsBpB,KAAhBo3H,EAAOh2H,KAAqB,UAAYg2H,EAAOh2H,KACrDk2H,cAAgCt3H,KAArBo3H,EAAOE,UAA0B,GAAMF,EAAOE,UACzDD,mBAA0Cr3H,KAA1Bo3H,EAAOC,gBAAuCD,EAAOC,gBAIvErqD,EAAWspC,MAAM8gB,QACf/sH,YAA4BrK,KAAnBo3H,EAAO/sH,SAA+B+sH,EAAO/sH,QACtDjJ,KAAMA,EACNk2H,cAAgCt3H,KAArBo3H,EAAOE,UAA0B,GAAMF,EAAOE,UACzDD,mBAA0Cr3H,KAA1Bo3H,EAAOC,gBAAuCD,EAAOC,gBAO3El7H,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,6BAA8B9mD,GAGvD,MAAO4rE,MAGTtpE,IAAK,eACLhF,MAAO,WACL,GAAI0yB,GAAkC,IAA9BxyB,KAAKw6C,IAAIj9C,KAAK4mI,aACtB,OAAO3xG,GAAIxyB,KAAKqK,MAAMmoB,MAGxB1tB,IAAK,oBACLhF,MAAO,SAA2BulI,GAChC,IAA0C,IAAtC9nI,KAAKgO,QAAQg5H,aAAa94H,QAAkB,CAC9ClO,KAAK4mI,WAAa5mI,KAAK2mI,iBAEvB,KAAK,GADDj+E,GAASo/E,EAAWlkI,OAAS,GACxBG,EAAI,EAAGA,EAAI+jI,EAAWlkI,OAAQG,IAAK,CAC1C,GAAI0pC,GAAOq6F,EAAW/jI,GAClBs5D,EAAQ,EAAI56D,KAAKomD,GAAK7oD,KAAK+nI,mBAChBlkI,KAAX4pC,EAAKxY,IACPwY,EAAKxY,EAAIyzB,EAASjmD,KAAK06C,IAAIkgB,QAEdx5D,KAAX4pC,EAAK5e,IACP4e,EAAK5e,EAAI65B,EAASjmD,KAAKw6C,IAAIogB,SAYnC91D,IAAK,gBACLhF,MAAO,WACL,IAA0C,IAAtCvC,KAAKgO,QAAQg5H,aAAa94H,UAAoD,IAAhClO,KAAKgO,QAAQ+4H,eAAyB,CAMtF,IAAK,GALDiB,GAAUhoI,KAAK2Q,KAAKupG,YAIpB+tB,EAAkB,EACblkI,EAAI,EAAGA,EAAIikI,EAAQpkI,OAAQG,IAAK,EAEP,IADrB/D,KAAK2Q,KAAKspG,MAAM+tB,EAAQjkI,IAC1BkqH,qBACPga,GAAmB,GAKvB,GAAIA,EAAkB,GAAMD,EAAQpkI,OAAQ,CAC1C,GACIonH,GAAQ,EAIRkd,GACFC,uBACElN,QACE/sH,SAAS,IASf,IAAI85H,EAAQpkI,OAfW,IAegB,CAErC,IADA,GAAIwkI,GAAcJ,EAAQpkI,OACnBokI,EAAQpkI,OAjBM,KAiBuBonH,GAnB7B,IAmBkD,CAE/DA,GAAS,CACT,IAAIqd,GAASL,EAAQpkI,MAEjBonH,GAAQ,GAAM,EAChBhrH,KAAK2Q,KAAK1Q,QAAQg8G,WAAWqsB,eAAeJ,GAE5CloI,KAAK2Q,KAAK1Q,QAAQg8G,WAAWiC,gBAAgBgqB,EAG/C,IAAIG,GADQL,EAAQpkI,QACGonH,EAAQ,GAAM,EAInC,MAHAhrH,MAAKuoI,gBACLvoI,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,qBACvBvmC,SAAQgjH,KAAK,gJAOjBxoI,KAAK2Q,KAAK1Q,QAAQwoI,YAAYv3F,YAAaw3F,aAAcjmI,KAAKJ,IAAI,IAAK,EAAI+lI,KAEzEpd,EA1Ca,IA2CfxlG,QAAQgjH,KAAK,4GAIfxoI,KAAK2Q,KAAK1Q,QAAQwoI,YAAYE,MAAMX,EAAShoI,KAAK2Q,KAAKypG,aAAa,GAGpEp6G,KAAK4oI,gBAIL,KAAK,GAAIh2H,GAAK,EAAGA,EAAKo1H,EAAQpkI,OAAQgP,IAAM,CAE1C,GAAI65G,GAAQzsH,KAAK2Q,KAAKspG,MAAM+tB,EAAQp1H,KACH,IAA7B65G,EAAMwB,qBACRxB,EAAMx3F,GALG,IAKG,GAAMj1B,KAAK+nI,gBACvBtb,EAAM59F,GANG,IAMG,GAAM7uB,KAAK+nI,iBAK3B/nI,KAAKuoI,gBAGLvoI,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,+BAW7BxkD,IAAK,iBACLhF,MAAO,WAGL,IAAK,GAFDi5C,GAAQiqF,EAAYoD,aAAa7oI,KAAK2Q,KAAKspG,MAAOj6G,KAAK2Q,KAAKupG,aAC5Dr+D,EAAS4pF,EAAYqD,WAAWttF,GAC3Bz3C,EAAI,EAAGA,EAAI/D,KAAK2Q,KAAKupG,YAAYt2G,OAAQG,IAAK,CACrD,GAAI0pC,GAAOztC,KAAK2Q,KAAKspG,MAAMj6G,KAAK2Q,KAAKupG,YAAYn2G,GACjD0pC,GAAKxY,GAAK4mB,EAAO5mB,EACjBwY,EAAK5e,GAAKgtB,EAAOhtB,MAIrBtnB,IAAK,gBACLhF,MAAO,WAEL,IADA,GAAIwmI,IAAkB,GACK,IAApBA,GAA0B,CAC/BA,GAAkB,CAClB,KAAK,GAAIhlI,GAAI,EAAGA,EAAI/D,KAAK2Q,KAAKupG,YAAYt2G,OAAQG,KACY,IAAxD/D,KAAK2Q,KAAKspG,MAAMj6G,KAAK2Q,KAAKupG,YAAYn2G,IAAI65G,YAC5CmrB,GAAkB,EAClB/oI,KAAK2Q,KAAK1Q,QAAQg8G,WAAW4B,YAAY79G,KAAK2Q,KAAKupG,YAAYn2G,OAAQ,KAGnD,IAApBglI,GACF/oI,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,oBAK7BxkD,IAAK,UACLhF,MAAO,WACL,MAAOvC,MAAK2mI,qBAWdp/H,IAAK,0BACLhF,MAAO,WACL,IAA0C,IAAtCvC,KAAKgO,QAAQg5H,aAAa94H,SAAoBlO,KAAK2Q,KAAKupG,YAAYt2G,OAAS,EAAG,CAElF,GAAI6pC,OAAO,GACPuvE,MAAS,GACTgsB,GAAe,EAEfC,GAAiB,CACrBjpI,MAAKkpI,mBACLlpI,KAAKgnI,aAAe,GAAItB,GACxB1lI,KAAKmpI,WAAa,EAElBnpI,KAAKopI,wBACLppI,KAAKqpI,qBACLrpI,KAAKspI,+BAEL,KAAKtsB,IAAUh9G,MAAK2Q,KAAKspG,MACnBj6G,KAAK2Q,KAAKspG,MAAM32G,eAAe05G,KACjCvvE,EAAOztC,KAAK2Q,KAAKspG,MAAM+C,OACAn5G,KAAnB4pC,EAAKz/B,QAAQinB,OAAsCpxB,KAAnB4pC,EAAKz/B,QAAQ6gB,IAC5B,MAEMhrB,KAAvB4pC,EAAKz/B,QAAQg9G,OACfge,GAAe,EACfhpI,KAAKgnI,aAAanB,OAAO7oB,GAAUvvE,EAAKz/B,QAAQg9G,OAEhDie,GAAiB,EAMvB,KAAuB,IAAnBA,IAA4C,IAAjBD,EAC7B,KAAM,IAAI3kI,OAAM,wHAGhB,KAAuB,IAAnB4kI,EAAyB,CAC3B,GAAI1B,GAAavnI,KAAKgO,QAAQg5H,aAAaO,UACxB,aAAfA,EACFvnI,KAAKupI,4BACmB,aAAfhC,EACTvnI,KAAKwpI,2BACmB,WAAfjC,GACTvnI,KAAKypI,iCAKT,IAAK,GAAIzd,KAAYhsH,MAAK2Q,KAAKspG,MACzBj6G,KAAK2Q,KAAKspG,MAAM32G,eAAe0oH,IACjChsH,KAAKgnI,aAAa0C,YAAY1d,EAIlC,IAAI2d,GAAe3pI,KAAK4pI,kBAGxB5pI,MAAK6pI,eAGL7pI,KAAK8pI,uBAAuBH,GAG5B3pI,KAAK+pI,qBAGL/pI,KAAK4oI,qBAUXrhI,IAAK,qBACLhF,MAAO,WACL,GAAIo5F,GAAS37F,KAGTgqI,GAAgB,EAChBC,KAcAC,EAAY,SAAmBn3H,EAAO8pB,GACxC,IAAK,GAAImgF,KAAUrhB,GAAOqrC,aAAalB,MACrC,GAAInqC,EAAOqrC,aAAalB,MAAMxiI,eAAe05G,IACvCrhB,EAAOqrC,aAAalB,MAAM9oB,KAAYjqG,EAAO,CAC/C,GAAI06B,GAAOkuD,EAAOhrF,KAAKspG,MAAM+C,GACzBliG,EAAM6gF,EAAOwuC,yBAAyB18F,EAC1CkuD,GAAOyuC,yBAAyB38F,EAAM3yB,EAAM+hB,MAAQh5B,IAAW,KAOnEwmI,EAAc,SAAqBt3H,GACrC,GAAIqO,GAAMu6E,EAAOqrC,aAAaqD,YAAY1uC,EAAOhrF,KAAKspG,MAAOlnG,EAC7D,OAAI4oF,GAAO2uC,eACAloI,IAAKgf,EAAImlH,MAAOlkI,IAAK+e,EAAIolH,QAEzBpkI,IAAKgf,EAAIqlH,MAAOpkI,IAAK+e,EAAIslH,QAKlC6D,EAAe,WAEjB,IAAK,GADDC,MACKzmI,EAAI,EAAGA,GAAK43F,EAAOwtC,UAAWplI,IACrCymI,EAAW3lI,KAAKwlI,EAAYtmI,GAE9B,OAAOymI,IAILC,EAAiB,QAASA,GAAel1H,EAAQzK,GACnD,IAAIA,EAAIyK,EAAOlV,MAGfyK,EAAIyK,EAAOlV,KAAM,EACbs7F,EAAOqrC,aAAarB,kBAAkBpwH,EAAOlV,KAAK,CACpD,GAAIgsC,GAAWsvD,EAAOqrC,aAAarB,kBAAkBpwH,EAAOlV,GAC5D,IAAIgsC,EAASzoC,OAAS,EACpB,IAAK,GAAIG,GAAI,EAAGA,EAAIsoC,EAASzoC,OAAQG,IACnC0mI,EAAe9uC,EAAOhrF,KAAKspG,MAAM5tE,EAAStoC,IAAK+G,KAQnD4/H,EAAoB,SAA2BC,GACjD,GAAIC,GAAWjnI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,IAE/EknI,EAAW,IACXC,EAAW,IACX1oI,EAAM,IACNC,GAAO,GACX,KAAK,GAAI0oI,KAAcJ,GACrB,GAAIA,EAAUrnI,eAAeynI,GAAa,CACxC,GAAIt9F,GAAOkuD,EAAOhrF,KAAKspG,MAAM8wB,GACzB/f,EAAQrvB,EAAOqrC,aAAanB,OAAOp4F,EAAKptC,IACxCkQ,EAAWorF,EAAOwuC,yBAAyB18F,GAI3Cu9F,EAAuBrvC,EAAOsvC,oBAAoBx9F,EAAMk9F,GACxDO,GAAuB,EAAIjb,EAAyB,SAAG+a,EAAsB,GAC7EG,EAAeD,EAAqB,GACpCE,EAAeF,EAAqB,EAExCL,GAAWpoI,KAAKL,IAAI+oI,EAAcN,GAClCC,EAAWroI,KAAKL,IAAIgpI,EAAcN,GAG9B9f,GAAS4f,IACXxoI,EAAMK,KAAKL,IAAImO,EAAUnO,GACzBC,EAAMI,KAAKJ,IAAIkO,EAAUlO,IAK/B,OAAQD,EAAKC,EAAKwoI,EAAUC,IAI1BO,EAAoB,SAA2BnN,EAAOC,GACxD,GAAImN,GAAY3vC,EAAOqrC,aAAauE,YAAYrN,EAAM79H,IAClDmrI,EAAY7vC,EAAOqrC,aAAauE,YAAYpN,EAAM99H,GACtD,OAAOoC,MAAKL,IAAIkpI,EAAWE,IAIzBC,EAAgB,SAAuBvN,EAAOC,GAChD,GAAIuN,GAAW/vC,EAAOqrC,aAAapB,gBAAgB1H,EAAM79H,IACrDsrI,EAAWhwC,EAAOqrC,aAAapB,gBAAgBzH,EAAM99H,GACzD,QAAiBwD,KAAb6nI,OAAuC7nI,KAAb8nI,EAC5B,OAAO,CAGT,KAAK,GAAI5nI,GAAI,EAAGA,EAAI2nI,EAAS9nI,OAAQG,IACnC,IAAK,GAAI8J,GAAI,EAAGA,EAAI89H,EAAS/nI,OAAQiK,IACnC,GAAI69H,EAAS3nI,IAAM4nI,EAAS99H,GAC1B,OAAO,CAIb,QAAO,GAIL+9H,EAAsB,SAA6BzkI,EAAU0+H,EAAQgG,GACvE,IAAK,GAAI9nI,GAAI,EAAGA,EAAI8hI,EAAOjiI,OAAQG,IAAK,CACtC,GAAIinH,GAAQ6a,EAAO9hI,GACf+nI,EAAanwC,EAAOytC,qBAAqBpe,EAC7C,IAAI8gB,EAAWloI,OAAS,EACtB,IAAK,GAAIiK,GAAI,EAAGA,EAAIi+H,EAAWloI,OAAS,EAAGiK,KACe,IAApD49H,EAAcK,EAAWj+H,GAAIi+H,EAAWj+H,EAAI,KAC1C8tF,EAAOqrC,aAAalB,MAAMgG,EAAWj+H,GAAGxN,MAAQs7F,EAAOqrC,aAAalB,MAAMgG,EAAWj+H,EAAI,GAAGxN,KAC9F8G,EAAS2kI,EAAWj+H,GAAIi+H,EAAWj+H,EAAI,GAAIg+H,KASnDE,EAAsB,SAA6B7N,EAAOC,GAC5D,GAAI6N,GAAeroI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAG9EmmC,EAAO6xD,EAAOwuC,yBAAyBjM,GACvCn0F,EAAO4xD,EAAOwuC,yBAAyBhM,GACvC8N,EAAUxpI,KAAK0iB,IAAI4kB,EAAOD,GAC1Bo9F,EAAcvrC,EAAO3tF,QAAQg5H,aAAaE,WAE9C,IAAI+E,EAAU/E,EAAa,CACzB,GAAIgF,MACAC,IAEJ1B,GAAevM,EAAOgO,GACtBzB,EAAetM,EAAOgO,EAGtB,IAAIvB,GAAWS,EAAkBnN,EAAOC,GAEpCiO,EAAqB1B,EAAkBwB,EAActB,GACrDyB,GAAsB,EAAIpc,EAAyB,SAAGmc,EAAoB,GAE1EE,GADOD,EAAoB,GACpBA,EAAoB,IAI3BE,GAHYF,EAAoB,GACpBA,EAAoB,GAEV3B,EAAkByB,EAAcvB,IACtD4B,GAAsB,EAAIvc,EAAyB,SAAGsc,EAAqB,GAC3EE,EAAOD,EAAoB,GAE3BE,GADOF,EAAoB,GACfA,EAAoB,GACpBA,GAAoB,EAOpC,IADiB/pI,KAAK0iB,IAAImnH,EAAOG,GAChBvF,EAAa,CAC5B,GAAIrqG,GAASyvG,EAAOG,EAAOvF,CACvBrqG,IAAU6vG,EAAYxF,IACxBrqG,GAAU6vG,EAAYxF,GAGpBrqG,EAAS,IAEX8+D,EAAOgxC,YAAYxO,EAAM99H,GAAIw8B,GAC7BmtG,GAAgB,GAEK,IAAjBgC,GAAuBrwC,EAAOixC,cAAczO,OAOpD0O,EAAqB,SAA4BzjB,EAAY37E,GAW/D,IAAK,GARDuvE,GAASvvE,EAAKptC,GACdysI,EAAWr/F,EAAK0sE,MAChB4yB,EAAYpxC,EAAOqrC,aAAanB,OAAOp4F,EAAKptC,IAG5C2sI,EAAKrxC,EAAO3tF,QAAQg5H,aAAaC,gBAAkBtrC,EAAO3tF,QAAQg5H,aAAaC,gBAC/EgG,KACAC,KACKnpI,EAAI,EAAGA,EAAI+oI,EAASlpI,OAAQG,IAAK,CACxC,GAAI27G,GAAOotB,EAAS/oI,EACpB,IAAI27G,EAAKoN,MAAQpN,EAAKqN,OAAQ,CAC5B,GAAIogB,GAAYztB,EAAKoN,MAAQ9P,EAAS0C,EAAK/7F,KAAO+7F,EAAKh8F,EACvDupH,GAAeH,EAAS/oI,GAAG1D,IAAM8sI,EAC7BxxC,EAAOqrC,aAAanB,OAAOsH,EAAU9sI,IAAM0sI,GAC7CG,EAAWroI,KAAK66G,IAMtB,GAAI0tB,GAAQ,SAAexyH,EAAOu/F,GAEhC,IAAK,GADD5qD,GAAM,EACD89E,EAAM,EAAGA,EAAMlzB,EAAMv2G,OAAQypI,IACpC,OAAsCxpI,KAAlCopI,EAAe9yB,EAAMkzB,GAAKhtI,IAAmB,CAC/C,GAAImD,GAAIm4F,EAAOwuC,yBAAyB8C,EAAe9yB,EAAMkzB,GAAKhtI,KAAOua,CACzE20C,IAAO/rD,EAAIf,KAAKorD,KAAKrqD,EAAIA,EAAIwpI,GAGjC,MAAOz9E,IAIL+9E,EAAS,SAAgB1yH,EAAOu/F,GAElC,IAAK,GADD5qD,GAAM,EACDg+E,EAAM,EAAGA,EAAMpzB,EAAMv2G,OAAQ2pI,IACpC,OAAsC1pI,KAAlCopI,EAAe9yB,EAAMozB,GAAKltI,IAAmB,CAC/C,GAAImD,GAAIm4F,EAAOwuC,yBAAyB8C,EAAe9yB,EAAMozB,GAAKltI,KAAOua,CACzE20C,IAAOy9E,EAAKvqI,KAAKknB,IAAInmB,EAAIA,EAAIwpI,GAAK,KAGtC,MAAOz9E,IAGLi+E,EAAW,SAAkBpkB,EAAYjP,GAI3C,IAAK,GAHDszB,GAAQ9xC,EAAOwuC,yBAAyB18F,GAExCigG,KACKC,EAAM,EAAGA,EAAMvkB,EAAYukB,IAAO,CACzC,GAAIC,GAAKR,EAAMK,EAAOtzB,GAClB0zB,EAAMP,EAAOG,EAAOtzB,EAOxB,IAFAszB,GADYhrI,KAAKJ,KADL,GACiBI,KAAKL,IADtB,GACiCK,KAAKm6B,MAAMgxG,EAAKC,SAGrChqI,KAApB6pI,EAASD,GACX,KAEFC,GAASD,GAASE,EAEpB,MAAOF,IAkELA,EAAQD,EAASpkB,EAAY8jB,IA/DhB,SAAoBO,GAEnC,GAAIK,GAAenyC,EAAOwuC,yBAAyB18F,EAGnD,QAA0B5pC,KAAtBomI,EAASx8F,EAAKptC,IAAmB,CACnC,GAAI0tI,KACJtD,GAAeh9F,EAAMsgG,GACrB9D,EAASx8F,EAAKptC,IAAM0tI,EAGtB,GAAIC,GAAsBtD,EAAkBT,EAASx8F,EAAKptC,KACtD4tI,GAAsB,EAAIhe,EAAyB,SAAG+d,EAAqB,GAG3EE,GAFYD,EAAoB,GACpBA,EAAoB,GACfA,EAAoB,IACrCE,EAAiBF,EAAoB,GAErCrmH,EAAO6lH,EAAQK,EAGfM,EAAe,CACfxmH,GAAO,EACTwmH,EAAe3rI,KAAKL,IAAIwlB,EAAMumH,EAAiBxyC,EAAO3tF,QAAQg5H,aAAaE,aAClEt/G,EAAO,IAChBwmH,GAAgB3rI,KAAKL,KAAKwlB,EAAMsmH,EAAiBvyC,EAAO3tF,QAAQg5H,aAAaE,cAG3D,GAAhBkH,IAEFzyC,EAAOgxC,YAAYl/F,EAAKptC,GAAI+tI,GAE5BpE,GAAgB,IAgCTyD,GACXA,EAAQD,EAASpkB,EAAY0jB,GA7Bd,SAAkBW,GAC/B,GAAIK,GAAenyC,EAAOwuC,yBAAyB18F,GAI/C4gG,EAAuB1yC,EAAOsvC,oBAAoBx9F,GAClD6gG,GAAuB,EAAIre,EAAyB,SAAGoe,EAAsB,GAC7ExD,EAAWyD,EAAqB,GAChCxD,EAAWwD,EAAqB,GAEhC1mH,EAAO6lH,EAAQK,EAEfS,EAAcT,CACdlmH,GAAO,EACT2mH,EAAc9rI,KAAKL,IAAI0rI,GAAgBhD,EAAWnvC,EAAO3tF,QAAQg5H,aAAaE,aAAcuG,GACnF7lH,EAAO,IAChB2mH,EAAc9rI,KAAKJ,IAAIyrI,GAAgBjD,EAAWlvC,EAAO3tF,QAAQg5H,aAAaE,aAAcuG,IAG1Fc,IAAgBT,IAElBnyC,EAAOyuC,yBAAyB38F,EAAM8gG,MAAa1qI,IAAW,GAE9DmmI,GAAgB,IAOXyD,KA2DqC,IAA5CztI,KAAKgO,QAAQg5H,aAAaI,gBAlCI,SAAqChe,GACrE,GAAIyc,IAAS,EAAIvkI,EAAgB,SAAGq6F,EAAOytC,qBAC3CvD,GAASA,EAAO2I,SAChB,KAAK,GAAIzqI,GAAI,EAAGA,EAAIqlH,IAClB4gB,GAAgB,EAChB4B,EAAoBG,EAAqBlG,GAAQ,IAC3B,IAAlBmE,GAH0BjmI,OAgCJ,GArBP,WACrB,IAAK,GAAIi5G,KAAUrhB,GAAOhrF,KAAKspG,MACzBte,EAAOhrF,KAAKspG,MAAM32G,eAAe05G,IAASrhB,EAAOixC,cAAcjxC,EAAOhrF,KAAKspG,MAAM+C,SAwBtC,IAA/Ch9G,KAAKgO,QAAQg5H,aAAaK,kBA5DG,SAAoCje,GACnE,GAAIyc,IAAS,EAAIvkI,EAAgB,SAAGq6F,EAAOytC,qBAC3CvD,GAASA,EAAO2I,SAChB,KAAK,GAAIzqI,GAAI,EAAGA,EAAIqlH,EAAYrlH,IAAK,CACnCimI,GAAgB,CAChB,KAAK,GAAIn8H,GAAI,EAAGA,EAAIg4H,EAAOjiI,OAAQiK,IAGjC,IAAK,GAFDm9G,GAAQ6a,EAAOh4H,GACfi+H,EAAanwC,EAAOytC,qBAAqBpe,GACpCp9G,EAAI,EAAGA,EAAIk+H,EAAWloI,OAAQgK,IACrCi/H,EAAmB,IAAMf,EAAWl+H,GAGxC,KAAsB,IAAlBo8H,EAEF,QA+CuB,KAG0B,IAAnDhqI,KAAKgO,QAAQg5H,aAAaM,sBAvBC,WAC7B,GAAIzB,IAAS,EAAIvkI,EAAgB,SAAGq6F,EAAOytC,qBAC3CvD,GAASA,EAAO2I,SAChB,KAAK,GAAIzqI,GAAI,EAAGA,EAAI8hI,EAAOjiI,OAAQG,IAGjC,IAAK,GAFDinH,GAAQ6a,EAAO9hI,GACf+nI,EAAanwC,EAAOytC,qBAAqBpe,GACpCn9G,EAAI,EAAGA,EAAIi+H,EAAWloI,OAAQiK,IACrC8tF,EAAOixC,cAAcd,EAAWj+H,OA3XrB,WAGf,IAAK,GAFD4gI,GAAYlE,IACZmE,EAAU,EACL3qI,EAAI,EAAGA,EAAI0qI,EAAU7qI,OAAS,EAAGG,IAAK,CAE7C2qI,GADWD,EAAU1qI,GAAG1B,IAAMosI,EAAU1qI,EAAI,GAAG3B,IAC7Bu5F,EAAO3tF,QAAQg5H,aAAaG,YAC9C+C,EAAUnmI,EAAI,EAAG2qI,UAsZvBnnI,IAAK,sBACLhF,MAAO,SAA6BkrC,EAAM3iC,GACxC,GAAI6jI,IAAS,MACD9qI,KAARiH,IACF6jI,GAAS,EAEX,IAAI3jB,GAAQhrH,KAAKgnI,aAAanB,OAAOp4F,EAAKptC,GAC1C,QAAcwD,KAAVmnH,EAAqB,CACvB,GAAIj4G,GAAQ/S,KAAKqpI,kBAAkB57F,EAAKptC,IACpCkQ,EAAWvQ,KAAKmqI,yBAAyB18F,GACzClS,EAAWv7B,KAAKopI,qBAAqBpe,GACrC6f,EAAW,IACXC,EAAW,GACf,IAAc,IAAV/3H,EAAa,CACf,GAAI67H,GAAWrzG,EAASxoB,EAAQ,EAChC,KAAe,IAAX47H,OAAwC9qI,KAArBiH,EAAI8jI,EAASvuI,MAAgC,IAAXsuI,EAAkB,CAEzE9D,EAAWt6H,EADGvQ,KAAKmqI,yBAAyByE,IAKhD,GAAI77H,GAASwoB,EAAS33B,OAAS,EAAG,CAChC,GAAIirI,GAAWtzG,EAASxoB,EAAQ,EAChC,KAAe,IAAX47H,OAAwC9qI,KAArBiH,EAAI+jI,EAASxuI,MAAgC,IAAXsuI,EAAkB,CACzE,GAAIG,GAAU9uI,KAAKmqI,yBAAyB0E,EAC5C/D,GAAWroI,KAAKL,IAAI0oI,EAAUgE,EAAUv+H,IAI5C,OAAQs6H,EAAUC,GAElB,OAAQ,EAAG,MAWfvjI,IAAK,gBACLhF,MAAO,SAAuBkrC,GAC5B,GAAIztC,KAAKgnI,aAAapB,gBAAgBn4F,EAAKptC,IAEzC,IAAK,GADD0uI,GAAU/uI,KAAKgnI,aAAapB,gBAAgBn4F,EAAKptC,IAC5C0D,EAAI,EAAGA,EAAIgrI,EAAQnrI,OAAQG,IAAK,CACvC,GAAIirI,GAAWD,EAAQhrI,GACnB+E,EAAa9I,KAAK2Q,KAAKspG,MAAM+0B,GAC7B3iG,EAAWrsC,KAAKgnI,aAAarB,kBAAkBqJ,EAEnD,QAAiBnrI,KAAbwoC,EAAwB,CAE1B,GAAIkiG,GAAcvuI,KAAKivI,mBAAmB5iG,GAEtC97B,EAAWvQ,KAAKmqI,yBAAyBrhI,GAEzComI,EAAuBlvI,KAAKirI,oBAAoBniI,GAChDqmI,GAAuB,EAAIlf,EAAyB,SAAGif,EAAsB,GAC7ErE,EAAWsE,EAAqB,GAChCrE,EAAWqE,EAAqB,GAEhCvnH,EAAOrX,EAAWg+H,GAClB3mH,EAAO,GAAKnlB,KAAK0iB,IAAIyC,GAAQkjH,EAAW9qI,KAAKgO,QAAQg5H,aAAaE,aAAet/G,EAAO,GAAKnlB,KAAK0iB,IAAIyC,GAAQijH,EAAW7qI,KAAKgO,QAAQg5H,aAAaE,cACrJlnI,KAAKoqI,yBAAyBthI,EAAYylI,MAAa1qI,IAAW,QAe5E0D,IAAK,yBACLhF,MAAO,SAAgConI,GACrC3pI,KAAKovI,kBAEL,KAAK,GAAIpkB,KAAS2e,GAChB,GAAIA,EAAarmI,eAAe0nH,GAAQ,CAEtC,GAAIqkB,IAAY,EAAI/tI,EAAgB,SAAGqoI,EAAa3e,GACpDqkB,GAAYrvI,KAAKsvI,mBAAmBD,GACpCrvI,KAAKuvI,eAAeF,EAGpB,KAAK,GAFDG,GAAmB,EAEdzrI,EAAI,EAAGA,EAAIsrI,EAAUzrI,OAAQG,IAAK,CACzC,GAAI0pC,GAAO4hG,EAAUtrI,EACrB,QAAsCF,KAAlC7D,KAAKovI,gBAAgB3hG,EAAKptC,IAAmB,CAC/C,GAAIszH,GAAU3zH,KAAKgO,QAAQg5H,aAAaE,YACpCpsH,EAAM64G,EAAU6b,CAGhBA,GAAmB,IACrB10H,EAAM9a,KAAKmqI,yBAAyBkF,EAAUtrI,EAAI,IAAM4vH,GAE1D3zH,KAAKoqI,yBAAyB38F,EAAM3yB,EAAKkwG,GACzChrH,KAAKyvI,6BAA6BhiG,EAAMu9E,EAAOlwG,GAE/C00H,UAiBVjoI,IAAK,oBACLhF,MAAO,SAA2BysI,EAAUU,GAC1C,GAAIC,GAAW3vI,KAAKgnI,aAAarB,kBAAkBqJ,EAGnD,QAAiBnrI,KAAb8rI,EAAJ,CAMA,IAAK,GADD75C,MACK/xF,EAAI,EAAGA,EAAI4rI,EAAS/rI,OAAQG,IACnC+xF,EAAWjxF,KAAK7E,KAAK2Q,KAAKspG,MAAM01B,EAAS5rI,IAI3C/D,MAAKuvI,eAAez5C,EAGpB,KAAK,GAAI85C,GAAM,EAAGA,EAAM95C,EAAWlyF,OAAQgsI,IAAO,CAChD,GAAIC,GAAY/5C,EAAW85C,GACvBE,EAAiB9vI,KAAKgnI,aAAanB,OAAOgK,EAAUxvI,GAExD,MAAIyvI,EAAiBJ,OAAsD7rI,KAAvC7D,KAAKovI,gBAAgBS,EAAUxvI,KAejE,MAbA,IAAIszH,GAAU3zH,KAAKgO,QAAQg5H,aAAaE,YACpCpsH,MAAM,EAKRA,GADU,IAAR80H,EACI5vI,KAAKmqI,yBAAyBnqI,KAAK2Q,KAAKspG,MAAM+0B,IAE9ChvI,KAAKmqI,yBAAyBr0C,EAAW85C,EAAM,IAAMjc,EAE7D3zH,KAAKoqI,yBAAyByF,EAAW/0H,EAAKg1H,GAC9C9vI,KAAKyvI,6BAA6BI,EAAWC,EAAgBh1H,GAOjE,GAAI+gC,GAAS77C,KAAKivI,mBAAmBn5C,EACrC91F,MAAKoqI,yBAAyBpqI,KAAK2Q,KAAKspG,MAAM+0B,GAAWnzF,EAAQ6zF,OAanEnoI,IAAK,+BACLhF,MAAO,SAAsCkrC,EAAMu9E,EAAOlwG,GAGxD,GAAK9a,KAAKgnI,aAAajB,OAAvB,CAGA,OAAoCliI,KAAhC7D,KAAKkpI,gBAAgBle,GAAsB,CAC7C,GAAI+kB,GAAc/vI,KAAKmqI,yBAAyBnqI,KAAK2Q,KAAKspG,MAAMj6G,KAAKkpI,gBAAgBle,IACrF,IAAIlwG,EAAMi1H,EAAc/vI,KAAKgO,QAAQg5H,aAAaE,YAAa,CAC7D,GAAIt/G,GAAOmoH,EAAc/vI,KAAKgO,QAAQg5H,aAAaE,YAAcpsH,EAC7Dk1H,EAAehwI,KAAKiwI,kBAAkBjwI,KAAKkpI,gBAAgBle,GAAQv9E,EAAKptC,GAC5EL,MAAK2sI,YAAYqD,EAAaE,UAAWtoH,IAK7C5nB,KAAKkpI,gBAAgBle,GAASv9E,EAAKptC,GAEnCL,KAAKovI,gBAAgB3hG,EAAKptC,KAAM,EAEhCL,KAAKmwI,kBAAkB1iG,EAAKptC,GAAI2qH,OAUlCzjH,IAAK,qBACLhF,MAAO,SAA4B6tI,GAEjC,IAAK,GADD/oI,MACKtD,EAAI,EAAGA,EAAIqsI,EAAQxsI,OAAQG,IAClCsD,EAAMxC,KAAK7E,KAAK2Q,KAAKspG,MAAMm2B,EAAQrsI,IAErC,OAAOsD,MAWTE,IAAK,mBACLhF,MAAO,WACL,GAAIonI,MACA3sB,MAAS,GACTvvE,MAAO,EAKX,KAAKuvE,IAAUh9G,MAAK2Q,KAAKspG,MACvB,GAAIj6G,KAAK2Q,KAAKspG,MAAM32G,eAAe05G,GAAS,CAC1CvvE,EAAOztC,KAAK2Q,KAAKspG,MAAM+C,EACvB,IAAIgO,OAA6CnnH,KAArC7D,KAAKgnI,aAAanB,OAAO7oB,GAAwB,EAAIh9G,KAAKgnI,aAAanB,OAAO7oB,EACtFh9G,MAAKsqI,eACP78F,EAAK5e,EAAI7uB,KAAKgO,QAAQg5H,aAAaC,gBAAkBjc,EACrDv9E,EAAKz/B,QAAQg5G,MAAMn4F,GAAI,IAEvB4e,EAAKxY,EAAIj1B,KAAKgO,QAAQg5H,aAAaC,gBAAkBjc,EACrDv9E,EAAKz/B,QAAQg5G,MAAM/xF,GAAI,OAEGpxB,KAAxB8lI,EAAa3e,KACf2e,EAAa3e,OAEf2e,EAAa3e,GAAOhO,GAAUvvE,EAGlC,MAAOk8F,MAWTpiI,IAAK,kBACLhF,MAAO,SAAyBkrC,GAC9B,GAAI1jC,KAEJ,KAAK,GAAI8D,KAAK4/B,GAAK0sE,MAAO,CACxB,GAAIuF,GAAOjyE,EAAK0sE,MAAMtsG,IAC0B,IAA5C7N,KAAK2Q,KAAKypG,YAAYx1G,QAAQ86G,EAAKr/G,KACrC0J,EAAOlF,KAAK66G,GAIhB,MAAO31G,MAWTxC,IAAK,eACLhF,MAAO,WACL,GAAI8tI,MACAC,EAAUtwI,KAAK2Q,KAAKupG,WAExB,KAAK,GAAIn2G,KAAKusI,GAAS,CACrB,GAAItzB,GAASszB,EAAQvsI,GACjB0pC,EAAOztC,KAAK2Q,KAAKspG,MAAM+C,EAE3BqzB,GADcrwI,KAAKuwI,gBAAgB9iG,GAAM7pC,SACrB,EAItB,GAAImG,KACJ,KAAK,GAAIsmC,KAAQggG,GACftmI,EAAOlF,KAAKhD,OAAOwuC,GAMrB,OAJAtmC,GAAOgf,KAAK,SAAUvlB,EAAGC,GACvB,MAAOA,GAAID,IAGNuG,KAUTxC,IAAK,4BACLhF,MAAO,WASL,IAAK,GARDw5F,GAAS/7F,KAETwwI,EAAkB,SAAyBpK,EAAOC,GACpDtqC,EAAOirC,aAAawJ,gBAAgBpK,EAAOC,IAGzCgK,EAAWrwI,KAAKywI,eAEX1sI,EAAI,EAAGA,EAAIssI,EAASzsI,SAAUG,EAAG,CACxC,GAAI2sI,GAAUL,EAAStsI,EACvB,IAAgB,IAAZ2sI,EAAe,KAEnB,IAAIJ,GAAUtwI,KAAK2Q,KAAKupG,WACxB,KAAK,GAAIrsG,KAAKyiI,GAAS,CACrB,GAAItzB,GAASszB,EAAQziI,GACjB4/B,EAAOztC,KAAK2Q,KAAKspG,MAAM+C,EAEvB0zB,KAAY1wI,KAAKuwI,gBAAgB9iG,GAAM7pC,QACzC5D,KAAK2wI,cAAcH,EAAiBxzB,QAc5Cz1G,IAAK,iCACLhF,MAAO,WACL,GAAI25F,GAASl8F,KAST4wI,EAAmB,SAA0BxK,EAAOC,EAAO3mB,GAC7D,GAAImxB,GAAS30C,EAAO8qC,aAAanB,OAAOO,EAAM/lI,QAE/BwD,KAAXgtI,IACFA,EAAS30C,EAAO8qC,aAAanB,OAAOO,EAAM/lI,IAX/B,IAcb,IAAIunB,IAAsB69G,EAAYqL,aAAa1K,EAAO,QAASX,EAAYqL,aAAazK,EAAO,YAASZ,GAAYqL,aAAapxB,EAAM,QAE3IxjB,GAAO8qC,aAAanB,OAAOQ,EAAMhmI,IAAMwwI,EAASjpH,EAGlD5nB,MAAK2wI,cAAcC,GACnB5wI,KAAKgnI,aAAa+J,kBAAkB/wI,KAAK2Q,KAAKspG,UAWhD1yG,IAAK,2BACLhF,MAAO,WACL,GAAIyuI,GAAShxI,KAIT4wI,EAAmB,SAA0BxK,EAAOC,EAAO3mB,GAC7D,GAAImxB,GAASG,EAAOhK,aAAanB,OAAOO,EAAM/lI,QAE/BwD,KAAXgtI,IACFA,EAASG,EAAOhK,aAAanB,OAAOO,EAAM/lI,IAN/B,KAQTq/G,EAAKoN,MAAQuZ,EAAMhmI,GACrB2wI,EAAOhK,aAAanB,OAAOQ,EAAMhmI,IAAMwwI,EAAS,EAEhDG,EAAOhK,aAAanB,OAAOQ,EAAMhmI,IAAMwwI,EAAS,EAIpD7wI,MAAK2wI,cAAcC,GACnB5wI,KAAKgnI,aAAa+J,kBAAkB/wI,KAAK2Q,KAAKspG,UAShD1yG,IAAK,eACLhF,MAAO,WACL,GAAI0uI,GAASjxI,KAETkxI,EAAkB,SAAyBpoI,EAAY+mI,GACrDoB,EAAOjK,aAAanB,OAAOgK,EAAUxvI,IAAM4wI,EAAOjK,aAAanB,OAAO/8H,EAAWzI,KACnF4wI,EAAOjK,aAAamK,YAAYroI,EAAWzI,GAAIwvI,EAAUxvI,IAI7DL,MAAK2wI,cAAcO,GACnBlxI,KAAKgnI,aAAaoK,iBAWpB7pI,IAAK,gBACLhF,MAAO,WACL,GAAI8uI,GAASrxI,KAETmH,EAAWxD,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,aAC/E2tI,EAAiB3tI,UAAU,GAE3BktD,KACAs4E,EAAY,EAEZoI,EAAU,QAASA,GAAQ9jG,EAAM+jG,GACnC,OAA0B3tI,KAAtBgtD,EAASpjB,EAAKptC,IAAmB,KAEQwD,KAAvCwtI,EAAOrK,aAAalB,MAAMr4F,EAAKptC,MACjCgxI,EAAOrK,aAAalB,MAAMr4F,EAAKptC,IAAMmxI,EACrCH,EAAOlI,UAAY1mI,KAAKJ,IAAImvI,EAAMH,EAAOlI,YAG3Ct4E,EAASpjB,EAAKptC,KAAM,CAGpB,KAAK,GAFDwvI,OAAY,GACZ11B,EAAQk3B,EAAOd,gBAAgB9iG,GAC1B1pC,EAAI,EAAGA,EAAIo2G,EAAMv2G,OAAQG,IAAK,CACrC,GAAI27G,GAAOvF,EAAMp2G,IACM,IAAnB27G,EAAK4c,YAGLuT,EAFEnwB,EAAKoN,MAAQr/E,EAAKptC,GAERq/G,EAAK/7F,KAEL+7F,EAAKh8F,GAGf+pB,EAAKptC,IAAMwvI,EAAUxvI,KAEvB8G,EAASsmC,EAAMoiG,EAAWnwB,GAC1B6xB,EAAQ1B,EAAW2B,OAQ7B,QAAuB3tI,KAAnBytI,EACF,IAAK,GAAIvtI,GAAI,EAAGA,EAAI/D,KAAK2Q,KAAKupG,YAAYt2G,OAAQG,IAAK,CACrD,GAAI0pC,GAAOztC,KAAK2Q,KAAKspG,MAAMj6G,KAAK2Q,KAAKupG,YAAYn2G,QACvBF,KAAtBgtD,EAASpjB,EAAKptC,MAChBkxI,EAAQ9jG,EAAM07F,GACdA,GAAa,OAGZ,CACL,GAAIzc,GAAS1sH,KAAK2Q,KAAKspG,MAAMq3B,EAC7B,QAAeztI,KAAX6oH,EAEF,WADAlnG,SAAQ83E,MAAM,kBAAmBg0C,EAGnCC,GAAQ7kB,OAYZnlH,IAAK,cACLhF,MAAO,SAAqBysI,EAAUpnH,GACpC,GAAI6pH,GAASzxI,KAET6wD,MACU,QAAS6gF,GAAQ1C,GAC7B,IAAIn+E,EAASm+E,GAAb,CAGAn+E,EAASm+E,IAAY,EACjByC,EAAOnH,cACTmH,EAAO9gI,KAAKspG,MAAM+0B,GAAU/5G,GAAKrN,EAEjC6pH,EAAO9gI,KAAKspG,MAAM+0B,GAAUngH,GAAKjH,CAGnC,IAAI+nH,GAAW8B,EAAOzK,aAAarB,kBAAkBqJ,EACrD,QAAiBnrI,KAAb8rI,EACF,IAAK,GAAI5rI,GAAI,EAAGA,EAAI4rI,EAAS/rI,OAAQG,IACnC2tI,EAAQ/B,EAAS5rI,MAIfirI,MAYVznI,IAAK,oBACLhF,MAAO,SAA2BovI,EAAQC,GACxC,GAAIC,GAAU7xI,KAEV+uI,IA6BJ,OA5BqB,SAAS+C,GAAe/C,EAAS71E,GACpD,GAAI64E,GAAYF,EAAQ7K,aAAapB,gBAAgB1sE,EACrD,QAAkBr1D,KAAdkuI,EACF,IAAK,GAAIhuI,GAAI,EAAGA,EAAIguI,EAAUnuI,OAAQG,IAAK,CACzC,GAAIiF,GAAS+oI,EAAUhuI,EACvBgrI,GAAQ/lI,IAAU,EAClB8oI,EAAe/C,EAAS/lI,KAqBf+lI,EAAS4C,GAjBP,QAASK,GAAWjD,EAAS71E,GAC5C,GAAI64E,GAAYF,EAAQ7K,aAAapB,gBAAgB1sE,EACrD,QAAkBr1D,KAAdkuI,EACF,IAAK,GAAIhuI,GAAI,EAAGA,EAAIguI,EAAUnuI,OAAQG,IAAK,CACzC,GAAIiF,GAAS+oI,EAAUhuI,EACvB,QAAwBF,KAApBkrI,EAAQ/lI,GACV,OAASipI,YAAajpI,EAAQknI,UAAWh3E,EAE3C,IAAIg5E,GAASF,EAAWjD,EAAS/lI,EACjC,IAA2B,OAAvBkpI,EAAOD,YACT,MAAOC,GAIb,OAASD,YAAa,KAAM/B,UAAWh3E,IAIvB61E,EAAS6C,MAY7BrqI,IAAK,2BACLhF,MAAO,SAAkCkrC,EAAMl9B,EAAUy6G,IAInC,KAHFrnH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,UAItCE,KAArC7D,KAAKopI,qBAAqBpe,KAC5BhrH,KAAKopI,qBAAqBpe;yIAC1BhrH,KAAKspI,6BAA6Bte,WAGsBnnH,KAAtD7D,KAAKspI,6BAA6Bte,GAAOv9E,EAAKptC,MAChDL,KAAKopI,qBAAqBpe,GAAOnmH,KAAK4oC,GACtCztC,KAAKqpI,kBAAkB57F,EAAKptC,IAAML,KAAKopI,qBAAqBpe,GAAOpnH,OAAS,GAE9E5D,KAAKspI,6BAA6Bte,GAAOv9E,EAAKptC,KAAM,GAGlDL,KAAKsqI,cACP78F,EAAKxY,EAAI1kB,EAETk9B,EAAK5e,EAAIte,KAabhJ,IAAK,cACLhF,MAAO,WACL,MAA+C,OAAxCvC,KAAKgO,QAAQg5H,aAAalnG,WAA8D,OAAxC9/B,KAAKgO,QAAQg5H,aAAalnG,aAWnFv4B,IAAK,2BACLhF,MAAO,SAAkCkrC,GACvC,MAAIztC,MAAKsqI,cACA78F,EAAKxY,EAELwY,EAAK5e,KAWhBtnB,IAAK,iBACLhF,MAAO,SAAwB8sI,GACzBA,EAAUzrI,OAAS,IACjB5D,KAAKsqI,cACP+E,EAAUtmH,KAAK,SAAUvlB,EAAGC,GAC1B,MAAOD,GAAEyxB,EAAIxxB,EAAEwxB,IAGjBo6G,EAAUtmH,KAAK,SAAUvlB,EAAGC,GAC1B,MAAOD,GAAEqrB,EAAIprB,EAAEorB,QAevBtnB,IAAK,gBACLhF,MAAO,WAEL,GAAI0C,GAAO,YAKX,OAJKjF,MAAKsqI,gBACRrlI,EAAO,YAGFA,KAaTsC,IAAK,qBACLhF,MAAO,SAA4BuzF,GAIjC,IAAK,GAHDq8C,GAAS,IACTC,GAAU,IAELruI,EAAI,EAAGA,EAAI+xF,EAAWlyF,OAAQG,IAAK,CAC1C,GAAI8rI,OAAY,EAChB,QAAyBhsI,KAArBiyF,EAAW/xF,GAAG1D,GAChBwvI,EAAY/5C,EAAW/xF,OAClB,CACL,GAAIkiI,GAAcnwC,EAAW/xF,EAC7B8rI,GAAY7vI,KAAK2Q,KAAKspG,MAAMgsB,GAG9B,GAAI11H,GAAWvQ,KAAKmqI,yBAAyB0F,EAC7CsC,GAAS1vI,KAAKL,IAAI+vI,EAAQ5hI,GAC1B6hI,EAAS3vI,KAAKJ,IAAI+vI,EAAQ7hI,GAG5B,MAAO,IAAO4hI,EAASC,OAGpBp2B,IAGTp8G,GAAiB,QAAIo8G,GAIjB,SAAUn8G,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAE3BulI,EAAc,WAChB,QAASA,MACP,EAAI9yC,EAA0B,SAAG3yF,KAAMylI,GAkHzC,OA1GA,EAAI5yC,EAAuB,SAAG4yC,EAAa,OACzCl+H,IAAK,WACLhF,MAAO,SAAkB8vI,GACvB,GAMI5kG,GANA6kG,EAAgB3uI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MAE/E4uI,EAAO,IACPC,GAAQ,IACRC,EAAO,IACPC,GAAQ,GAEZ,IAAIJ,EAAc1uI,OAAS,EACzB,IAAK,GAAIG,GAAI,EAAGA,EAAIuuI,EAAc1uI,OAAQG,IACxC0pC,EAAO4kG,EAASC,EAAcvuI,IAC1B0uI,EAAOhlG,EAAK+3E,MAAMmH,YAAYzmH,OAChCusI,EAAOhlG,EAAK+3E,MAAMmH,YAAYzmH,MAE5BwsI,EAAOjlG,EAAK+3E,MAAMmH,YAAYvmH,QAChCssI,EAAOjlG,EAAK+3E,MAAMmH,YAAYvmH,OAE5BmsI,EAAO9kG,EAAK+3E,MAAMmH,YAAYrmH,MAChCisI,EAAO9kG,EAAK+3E,MAAMmH,YAAYrmH,KAE5BksI,EAAO/kG,EAAK+3E,MAAMmH,YAAYhuE,SAChC6zF,EAAO/kG,EAAK+3E,MAAMmH,YAAYhuE,OAQpC,OAHa,OAAT8zF,IAA0B,MAAVC,GAA0B,MAATH,IAA0B,MAAVC,IACnDD,EAAO,EAAGC,EAAO,EAAGC,EAAO,EAAGC,EAAO,IAE9BD,KAAMA,EAAMC,KAAMA,EAAMH,KAAMA,EAAMC,KAAMA,MAQrDjrI,IAAK,eACLhF,MAAO,SAAsB8vI,GAC3B,GAMI5kG,GANA6kG,EAAgB3uI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MAE/E4uI,EAAO,IACPC,GAAQ,IACRC,EAAO,IACPC,GAAQ,GAEZ,IAAIJ,EAAc1uI,OAAS,EACzB,IAAK,GAAIG,GAAI,EAAGA,EAAIuuI,EAAc1uI,OAAQG,IACxC0pC,EAAO4kG,EAASC,EAAcvuI,IAC1B0uI,EAAOhlG,EAAKxY,IACdw9G,EAAOhlG,EAAKxY,GAEVy9G,EAAOjlG,EAAKxY,IACdy9G,EAAOjlG,EAAKxY,GAEVs9G,EAAO9kG,EAAK5e,IACd0jH,EAAO9kG,EAAK5e,GAEV2jH,EAAO/kG,EAAK5e,IACd2jH,EAAO/kG,EAAK5e,EAQlB,OAHa,OAAT4jH,IAA0B,MAAVC,GAA0B,MAATH,IAA0B,MAAVC,IACnDD,EAAO,EAAGC,EAAO,EAAGC,EAAO,EAAGC,EAAO,IAE9BD,KAAMA,EAAMC,KAAMA,EAAMH,KAAMA,EAAMC,KAAMA,MASrDjrI,IAAK,aACLhF,MAAO,SAAoBi5C,GACzB,OAASvmB,EAAG,IAAOumB,EAAMk3F,KAAOl3F,EAAMi3F,MACpC5jH,EAAG,IAAO2sB,EAAMg3F,KAAOh3F,EAAM+2F,UAWjChrI,IAAK,eACLhF,MAAO,SAAsBqM,EAAM3J,GACjC,GAAI0tI,KASJ,YARa9uI,KAAToB,GAA+B,SAATA,GACxBtE,EAAK+D,WAAWiuI,EAAe/jI,EAAKZ,SAAS,GAC7C2kI,EAAc19G,EAAIrmB,EAAKqmB,EACvB09G,EAAc9jH,EAAIjgB,EAAKigB,EACvB8jH,EAAcC,oBAAsBhkI,EAAKurG,MAAMv2G,QAE/CjD,EAAK+D,WAAWiuI,EAAe/jI,EAAKZ,SAAS,GAExC2kI,MAGJlN,IAGT7lI,GAAiB,QAAI6lI,GAIjB,SAAU5lI,EAAQD,EAASM,GAoB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAhBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIlB,GAAQnB,EAAoB,IAE5BoB,EAAST,EAAuBQ,GAEhCqxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCigD,EAAkB3yI,EAAoB,KAAc,QACpD4yI,EAAY5yI,EAAoB,KAAc,QAC9C6yI,EAAwB7yI,EAAoB,KAAc,QAC1D8yI,EAAe9yI,EAAoB,KAAc,QACjD+yI,EAA2B/yI,EAAoB,KAAc,QAC7DgzI,EAAuBhzI,EAAoB,KAAc,QACzDizI,EAAkCjzI,EAAoB,KAAc,QACpEkzI,EAAuClzI,EAAoB,KAAc,QAEzES,EAAOT,EAAoB,GAE3B47G,EAAgB,WAClB,QAASA,GAAcnrG,IACrB,EAAIgiF,EAA0B,SAAG3yF,KAAM87G,GAEvC97G,KAAK2Q,KAAOA,EACZ3Q,KAAKqzI,aAAgBC,sBAAwBC,sBAAwBC,UAAYC,eAEjFzzI,KAAK0zI,gBAAiB,EACtB1zI,KAAK2zI,mBAAqB,IAAO,GACjC3zI,KAAK4zI,iBAAkB,EACvB5zI,KAAK6zI,kBACL7zI,KAAK8zI,kBACL9zI,KAAK+zI,eACL/zI,KAAKg0I,gBAAcnwI,GAGnB7D,KAAKi0I,kBAAmB,EACxBj0I,KAAKk0I,yBAA0B,EAC/Bl0I,KAAKm0I,gBAAkB,EACvBn0I,KAAKo0I,iBAAmB,EAExBp0I,KAAKq0I,YAAa,EAClBr0I,KAAKs0I,sBAAuB,EAC5Bt0I,KAAKu0I,wBAA0B,EAC/Bv0I,KAAKw0I,OAAQ,EAGbx0I,KAAKgO,WACLhO,KAAKguE,gBACH9/D,SAAS,EACTumI,WACEC,MAAO,GACPC,uBAAwB,IACxBC,eAAgB,GAChBlM,aAAc,GACdmM,eAAgB,IAChBC,QAAS,IACTC,aAAc,GAEhBC,kBACEN,MAAO,GACPC,uBAAwB,GACxBC,eAAgB,IAChBC,eAAgB,IAChBnM,aAAc,IACdoM,QAAS,GACTC,aAAc,GAEhBE,WACEL,eAAgB,GAChBlM,aAAc,IACdmM,eAAgB,IAChBK,aAAc,IACdJ,QAAS,IACTC,aAAc,GAEhBI,uBACEP,eAAgB,EAChBlM,aAAc,IACdmM,eAAgB,IAChBK,aAAc,IACdJ,QAAS,KAEXM,YAAa,GACbC,YAAa,IACbn4C,OAAQ,YACRo4C,eACEpnI,SAAS,EACTk7G,WAAY,IACZmsB,eAAgB,GAChBC,kBAAkB,EAClBhlE,KAAK,GAEPilE,SAAU,GACVxB,kBAAkB,GAEpBtzI,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAC/BhuE,KAAKy1I,SAAW,GAChBz1I,KAAK01I,cAAe,EAEpB11I,KAAKm7G,qBA0rBP,OAvrBA,EAAItoB,EAAuB,SAAGipB,IAC5Bv0G,IAAK,qBACLhF,MAAO,WACL,GAAI03F,GAAQj6F,IAEZA,MAAK2Q,KAAKk+D,QAAQt9B,GAAG,cAAe,WAClC0oD,EAAM07C,gBAER31I,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,gBAAiB,WACpC0oD,EAAMy7C,cAAe,IAEvB11I,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WACnC0oD,EAAMmlB,iBAAiBnlB,EAAMu6C,OAAQ,IAEvCx0I,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,iBAAkB,WACrC0oD,EAAMy5C,gBAAiB,EAAMz5C,EAAMmlB,mBAErCp/G,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,iBAAkB,WACrC0oD,EAAM/oD,WAAW+oD,EAAMjsF,UACH,IAAhBisF,EAAMu6C,OACRv6C,EAAMklB,oBAGVn/G,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,kBAAmB,YAClB,IAAhB0oD,EAAMu6C,OACRv6C,EAAMklB,oBAGVn/G,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,iBAAkB,WACrC0oD,EAAMmlB,mBAERp/G,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,WAC9B0oD,EAAMmlB,gBAAe,GACrBnlB,EAAMtpF,KAAKk+D,QAAQn9B,QAGrB1xC,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WAEnC0oD,EAAM27C,yBAaVruI,IAAK,aACLhF,MAAO,SAAoByL,OACTnK,KAAZmK,KACc,IAAZA,GACFhO,KAAKgO,QAAQE,SAAU,EACvBlO,KAAK0zI,gBAAiB,EACtB1zI,KAAKo/G,mBAELp/G,KAAK0zI,gBAAiB,EACtB/yI,EAAKgE,wBAAwB,iBAAkB3E,KAAKgO,QAASA,GAC7DrN,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS,qBAEjBnK,KAApBmK,EAAQE,UACVlO,KAAKgO,QAAQE,SAAU,IAGI,IAAzBlO,KAAKgO,QAAQE,UACflO,KAAK0zI,gBAAiB,EACtB1zI,KAAKo/G,kBAIPp/G,KAAKy1I,SAAWz1I,KAAKgO,QAAQynI,WAGjCz1I,KAAKs7D,UAQP/zD,IAAK,OACLhF,MAAO,WACL,GAAIyL,EACwB,sBAAxBhO,KAAKgO,QAAQkvF,QACflvF,EAAUhO,KAAKgO,QAAQgnI,iBACvBh1I,KAAK61I,YAAc,GAAI1C,GAAgCnzI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,GACpFhO,KAAK81I,YAAc,GAAI9C,GAAahzI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,GACjEhO,KAAK+1I,cAAgB,GAAI3C,GAAqCpzI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,IAC1D,cAAxBhO,KAAKgO,QAAQkvF,QACtBlvF,EAAUhO,KAAKgO,QAAQinI,UACvBj1I,KAAK61I,YAAc,GAAI/C,GAAU9yI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,GAC9DhO,KAAK81I,YAAc,GAAI9C,GAAahzI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,GACjEhO,KAAK+1I,cAAgB,GAAI7C,GAAqBlzI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,IAC1C,0BAAxBhO,KAAKgO,QAAQkvF,QACtBlvF,EAAUhO,KAAKgO,QAAQmnI,sBACvBn1I,KAAK61I,YAAc,GAAI9C,GAAsB/yI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,GAC1EhO,KAAK81I,YAAc,GAAI7C,GAAyBjzI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,GAC7EhO,KAAK+1I,cAAgB,GAAI7C,GAAqBlzI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,KAG3EA,EAAUhO,KAAKgO,QAAQymI,UACvBz0I,KAAK61I,YAAc,GAAIhD,GAAgB7yI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,GACpEhO,KAAK81I,YAAc,GAAI9C,GAAahzI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,GACjEhO,KAAK+1I,cAAgB,GAAI7C,GAAqBlzI,KAAK2Q,KAAM3Q,KAAKqzI,YAAarlI,IAG7EhO,KAAKg2I,aAAehoI,KAQtBzG,IAAK,cACLhF,MAAO,YACuB,IAAxBvC,KAAK0zI,iBAAoD,IAAzB1zI,KAAKgO,QAAQE,SACJ,IAAvClO,KAAKgO,QAAQsnI,cAAcpnI,QAC7BlO,KAAKq/G,aAELr/G,KAAKq0I,YAAa,EAClBr0I,KAAKw0I,OAAQ,EACbx0I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,SAAW/rD,KAAK01I,cACvC11I,KAAKm/G,oBAGPn/G,KAAKw0I,OAAQ,EACbx0I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WAS3BxkD,IAAK,kBACLhF,MAAO,YACuB,IAAxBvC,KAAK0zI,iBAAoD,IAAzB1zI,KAAKgO,QAAQE,SAC/ClO,KAAKq0I,YAAa,EAGlBr0I,KAAKi0I,kBAAmB,EAGxBj0I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,oBACGloD,KAAtB7D,KAAKi2I,eACPj2I,KAAKi2I,aAAej2I,KAAKk2I,eAAet+E,KAAK53D,MAC7CA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAcvxC,KAAKi2I,cACxCj2I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,qBAGzB/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cAS3BxkD,IAAK,iBACLhF,MAAO,WACL,GAAIwpD,KAAOpoD,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAE1E3D,MAAKq0I,YAAa,GACL,IAATtoF,GACF/rD,KAAKm2I,sBAEmBtyI,KAAtB7D,KAAKi2I,eACPj2I,KAAK2Q,KAAKk+D,QAAQn9B,IAAI,aAAc1xC,KAAKi2I,cACzCj2I,KAAKi2I,iBAAepyI,IACP,IAATkoD,GACF/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,sBAW7BxkD,IAAK,iBACLhF,MAAO,WAEL,GAAI6zI,GAAYvzI,KAAK8jB,KACrB3mB,MAAKq2I,eACaxzI,KAAK8jB,MAAQyvH,EAGZ,GAAMp2I,KAAK2zI,qBAA8C,IAAxB3zI,KAAKs2I,kBAAgD,IAApBt2I,KAAKq0I,aACxFr0I,KAAKq2I,cAGLr2I,KAAKs2I,gBAAiB,IAGA,IAApBt2I,KAAKq0I,YACPr0I,KAAKo/G,oBAUT73G,IAAK,kBACLhF,MAAO,WACL,GAAIg5F,GAASv7F,KAETu2I,EAAqB5yI,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAKu0I,yBAE9Fv0I,KAAKu0I,wBAA0B,IAAmC,IAA9Bv0I,KAAKs0I,uBAC3C/+F,WAAW,WACTgmD,EAAO5qF,KAAKk+D,QAAQ9iB,KAAK,cAAgBq9D,WAAYmtB,IACrDh7C,EAAO+4C,sBAAuB,EAC9B/4C,EAAOg5C,wBAA0B,GAChC,MAWPhtI,IAAK,cACLhF,MAAO,WAOL,IALkC,IAA9BvC,KAAKs0I,uBACPt0I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,oBACvB/rD,KAAKs0I,sBAAuB,IAGN,IAApBt0I,KAAKq0I,WAAsB,CAE7B,IAA8B,IAA1Br0I,KAAKi0I,mBAA8D,IAAjCj0I,KAAKk0I,wBAAkC,CAKvEl0I,KAAKm0I,gBAAkBn0I,KAAKo0I,kBAAqB,GAGnDp0I,KAAKy1I,SAAW,EAAIz1I,KAAKy1I,SACzBz1I,KAAKw2I,kBACLx2I,KAAKy2I,YACLz2I,KAAK02I,SAGL12I,KAAKy1I,SAAW,GAAMz1I,KAAKy1I,SAG3Bz1I,KAAKw2I,kBACLx2I,KAAKy2I,YACLz2I,KAAKw2I,kBACLx2I,KAAKy2I,aAG+B,IAAhCz2I,KAAK22I,uBACP32I,KAAKy1I,SAtBI,IAsBgBz1I,KAAKy1I,SAK1Bz1I,KAAKy1I,SA3BA,IA2BoBz1I,KAAKgO,QAAQynI,SACxCz1I,KAAKy1I,SAAWz1I,KAAKgO,QAAQynI,UAI7Bz1I,KAAKm0I,iBAAmB,EACxBn0I,KAAKy1I,SAAWhzI,KAAKJ,IAAIrC,KAAKgO,QAAQynI,SAAUz1I,KAAKy1I,SAjC9C,QAsCXz1I,KAAKw2I,kBACLx2I,KAAKy2I,aAIPz2I,KAAKm0I,iBAAmB,MAGxBn0I,MAAKy1I,SAAWz1I,KAAKgO,QAAQynI,SAC7Bz1I,KAAKw2I,kBACLx2I,KAAKy2I,aAIiB,IAApBz2I,KAAKq0I,YACPr0I,KAAK02I,SAGP12I,KAAKu0I,8BAWThtI,IAAK,oBACLhF,MAAO,WACLvC,KAAKqzI,YAAYG,UACjBxzI,KAAKqzI,YAAYC,sBACjBtzI,KAAKqzI,YAAYE,qBACjB,IAAIt5B,GAAQj6G,KAAK2Q,KAAKspG,MAClBE,EAAQn6G,KAAK2Q,KAAKwpG,KAGtB,KAAK,GAAI6C,KAAU/C,GACbA,EAAM32G,eAAe05G,KACe,IAAlC/C,EAAM+C,GAAQhvG,QAAQivF,SACxBj9F,KAAKqzI,YAAYC,mBAAmBzuI,KAAKo1G,EAAM+C,GAAQ38G,GAM7D,KAAK,GAAI48G,KAAU9C,GACbA,EAAM72G,eAAe25G,KACe,IAAlC9C,EAAM8C,GAAQjvG,QAAQivF,SACxBj9F,KAAKqzI,YAAYE,mBAAmB1uI,KAAKs1G,EAAM8C,GAAQ58G,GAM7D,KAAK,GAAI0D,GAAI,EAAGA,EAAI/D,KAAKqzI,YAAYC,mBAAmB1vI,OAAQG,IAAK,CACnE,GAAI2pC,GAAU1tC,KAAKqzI,YAAYC,mBAAmBvvI,EAClD/D,MAAKqzI,YAAYG,OAAO9lG,IAAazY,EAAG,EAAGpG,EAAG,OAGDhrB,KAAzC7D,KAAKqzI,YAAYI,WAAW/lG,KAC9B1tC,KAAKqzI,YAAYI,WAAW/lG,IAAazY,EAAG,EAAGpG,EAAG,IAKtD,IAAK,GAAIm9F,KAAYhsH,MAAKqzI,YAAYI,eACZ5vI,KAApBo2G,EAAM+R,UACDhsH,MAAKqzI,YAAYI,WAAWznB,MAUzCzkH,IAAK,SACLhF,MAAO,WACL,GAAI+tI,IAAU,EAAIhvI,EAAgB,SAAGtB,KAAK6zI,gBACtC55B,EAAQj6G,KAAK2Q,KAAKspG,MAClBw5B,EAAazzI,KAAKqzI,YAAYI,UAClCzzI,MAAK8zI,iBAEL,KAAK,GAAI/vI,GAAI,EAAGA,EAAIusI,EAAQ1sI,OAAQG,IAAK,CACvC,GAAIi5G,GAASszB,EAAQvsI,OACCF,KAAlBo2G,EAAM+C,IAC8B,IAAlC/C,EAAM+C,GAAQhvG,QAAQivF,UACxBj9F,KAAK8zI,eAAe92B,IAClB45B,WAAa3hH,EAAGglF,EAAM+C,GAAQ/nF,EAAGpG,EAAGorF,EAAM+C,GAAQnuF,IAEpD4kH,EAAWz2B,GAAQ/nF,EAAIj1B,KAAK6zI,eAAe72B,GAAQ65B,GACnDpD,EAAWz2B,GAAQnuF,EAAI7uB,KAAK6zI,eAAe72B,GAAQ85B,GACnD78B,EAAM+C,GAAQ/nF,EAAIj1B,KAAK6zI,eAAe72B,GAAQ/nF,EAC9CglF,EAAM+C,GAAQnuF,EAAI7uB,KAAK6zI,eAAe72B,GAAQnuF,SAGzC7uB,MAAK6zI,eAAe72B,OAUjCz1G,IAAK,uBACLhF,MAAO,WACL,GAAIu7C,OAAK,GACLC,MAAK,GAELk8D,EAAQj6G,KAAK2Q,KAAKspG,MAClB88B,EAAY/2I,KAAK8zI,cAGrB,KAAK,GAAI92B,KAAUh9G,MAAK8zI,eACtB,GAAI9zI,KAAK8zI,eAAexwI,eAAe05G,QAA6Bn5G,KAAlBo2G,EAAM+C,KACtDl/D,EAAKm8D,EAAM+C,GAAQ/nF,EAAI8hH,EAAU/5B,GAAQ45B,UAAU3hH,EACnD8oB,EAAKk8D,EAAM+C,GAAQnuF,EAAIkoH,EAAU/5B,GAAQ45B,UAAU/nH,EAE5CpsB,KAAKorD,KAAKprD,KAAKknB,IAAIm0B,EAAI,GAAKr7C,KAAKknB,IAAIo0B,EAAI,IAPjC,IAUb,OAAO,CAIb,QAAO,KASTx2C,IAAK,YACLhF,MAAO,WASL,IAAK,GARD23G,GAAcl6G,KAAKqzI,YAAYC,mBAC/B8B,EAAcp1I,KAAKgO,QAAQonI,YAAcp1I,KAAKgO,QAAQonI,YAAc,IACpE4B,EAAkB,EAClBC,EAAsB,EAKjBlzI,EAAI,EAAGA,EAAIm2G,EAAYt2G,OAAQG,IAAK,CAC3C,GAAIi5G,GAAS9C,EAAYn2G,GACrBmzI,EAAel3I,KAAKm3I,aAAan6B,EAAQo4B,EAE7C4B,GAAkBv0I,KAAKJ,IAAI20I,EAAiBE,GAC5CD,GAAuBC,EAIzBl3I,KAAKk0I,wBAA0B+C,EAAsB/8B,EAAYt2G,OAXjC,EAYhC5D,KAAKq0I,WAAa2C,EAAkBh3I,KAAKgO,QAAQqnI,eAanD9tI,IAAK,eACLhF,MAAO,SAAsBy6G,EAAQo4B,GACnC,GAAI3nG,GAAOztC,KAAK2Q,KAAKspG,MAAM+C,GACvBy4B,EAAWz1I,KAAKy1I,SAChBjC,EAASxzI,KAAKqzI,YAAYG,OAC1BC,EAAazzI,KAAKqzI,YAAYI,UAKlC,IAFAzzI,KAAK6zI,eAAe72B,IAAY/nF,EAAGwY,EAAKxY,EAAGpG,EAAG4e,EAAK5e,EAAGgoH,GAAIpD,EAAWz2B,GAAQ/nF,EAAG6hH,GAAIrD,EAAWz2B,GAAQnuF,IAE1E,IAAzB4e,EAAKz/B,QAAQg5G,MAAM/xF,EAAa,CAClC,GAAI6oB,GAAK99C,KAAKg2I,aAAalB,QAAUrB,EAAWz2B,GAAQ/nF,EACpDynB,GAAM82F,EAAOx2B,GAAQ/nF,EAAI6oB,GAAMrQ,EAAKz/B,QAAQi9G,IAChDwoB,GAAWz2B,GAAQ/nF,GAAKynB,EAAK+4F,EAC7BhC,EAAWz2B,GAAQ/nF,EAAIxyB,KAAK0iB,IAAIsuH,EAAWz2B,GAAQ/nF,GAAKmgH,EAAc3B,EAAWz2B,GAAQ/nF,EAAI,EAAImgH,GAAeA,EAAc3B,EAAWz2B,GAAQ/nF,EACjJwY,EAAKxY,GAAKw+G,EAAWz2B,GAAQ/nF,EAAIwgH,MAEjCjC,GAAOx2B,GAAQ/nF,EAAI,EACnBw+G,EAAWz2B,GAAQ/nF,EAAI,CAGzB,KAA6B,IAAzBwY,EAAKz/B,QAAQg5G,MAAMn4F,EAAa,CAClC,GAAIkvB,GAAK/9C,KAAKg2I,aAAalB,QAAUrB,EAAWz2B,GAAQnuF,EACpD8tB,GAAM62F,EAAOx2B,GAAQnuF,EAAIkvB,GAAMtQ,EAAKz/B,QAAQi9G,IAChDwoB,GAAWz2B,GAAQnuF,GAAK8tB,EAAK84F,EAC7BhC,EAAWz2B,GAAQnuF,EAAIpsB,KAAK0iB,IAAIsuH,EAAWz2B,GAAQnuF,GAAKumH,EAAc3B,EAAWz2B,GAAQnuF,EAAI,EAAIumH,GAAeA,EAAc3B,EAAWz2B,GAAQnuF,EACjJ4e,EAAK5e,GAAK4kH,EAAWz2B,GAAQnuF,EAAI4mH,MAEjCjC,GAAOx2B,GAAQnuF,EAAI,EACnB4kH,EAAWz2B,GAAQnuF,EAAI,CAIzB,OADoBpsB,MAAKorD,KAAKprD,KAAKknB,IAAI8pH,EAAWz2B,GAAQ/nF,EAAG,GAAKxyB,KAAKknB,IAAI8pH,EAAWz2B,GAAQnuF,EAAG,OASnGtnB,IAAK,kBACLhF,MAAO,WACLvC,KAAK+1I,cAAcpN,QACnB3oI,KAAK61I,YAAYlN,QACjB3oI,KAAK81I,YAAYnN,WAWnBphI,IAAK,eACLhF,MAAO,WACL,GAAI03G,GAAQj6G,KAAK2Q,KAAKspG,KACtB,KAAK,GAAI55G,KAAM45G,GACTA,EAAM32G,eAAejD,IACnB45G,EAAM55G,GAAI40B,GAAKglF,EAAM55G,GAAIwuB,IAC3B7uB,KAAK+zI,YAAY1zI,IAAQ40B,EAAGglF,EAAM55G,GAAI2N,QAAQg5G,MAAM/xF,EAAGpG,EAAGorF,EAAM55G,GAAI2N,QAAQg5G,MAAMn4F,GAClForF,EAAM55G,GAAI2N,QAAQg5G,MAAM/xF,GAAI,EAC5BglF,EAAM55G,GAAI2N,QAAQg5G,MAAMn4F,GAAI,MAapCtnB,IAAK,sBACLhF,MAAO,WACL,GAAI03G,GAAQj6G,KAAK2Q,KAAKspG,KACtB,KAAK,GAAI55G,KAAM45G,GACTA,EAAM32G,eAAejD,QACMwD,KAAzB7D,KAAK+zI,YAAY1zI,KACnB45G,EAAM55G,GAAI2N,QAAQg5G,MAAM/xF,EAAIj1B,KAAK+zI,YAAY1zI,GAAI40B,EACjDglF,EAAM55G,GAAI2N,QAAQg5G,MAAMn4F,EAAI7uB,KAAK+zI,YAAY1zI,GAAIwuB,EAIvD7uB,MAAK+zI,kBAQPxsI,IAAK,YACLhF,MAAO,WACL,GAAIo5F,GAAS37F,KAETopH,EAAazlH,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAKgO,QAAQsnI,cAAclsB,UAOhH,IAL0B,gBAAfA,KACT5jG,QAAQotC,IAAI,oFAAqF5yD,KAAKgO,QAAQsnI,cAAclsB,YAC5HA,EAAappH,KAAKgO,QAAQsnI,cAAclsB,YAGS,IAA/CppH,KAAKqzI,YAAYC,mBAAmB1vI,OAEtC,YADA5D,KAAKw0I,OAAQ,EAKfx0I,MAAKi0I,iBAA2Bj0I,KAAKgO,QAAQimI,iBAG7Cj0I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBAGvB/rD,KAAKo/G,iBAGLp/G,KAAKq0I,YAAa,EAGlBr0I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBACvB/rD,KAAKo3I,iBAAmBhuB,GAG4B,IAAhDppH,KAAKgO,QAAQsnI,cAAcE,kBAC7Bx1I,KAAKq3I,eAEPr3I,KAAKu0I,wBAA0B,EAE/Bh/F,WAAW,WACT,MAAOomD,GAAO27C,uBACb,MASL/vI,IAAK,sBACLhF,MAAO,WACL,GAAIoU,GAAO3W,KACPu3I,EAAU,WACZ,OAA2B,IAApB5gI,EAAK09H,YAAwB19H,EAAK49H,wBAA0B59H,EAAKygI,kBAEtEI,EAAe,WACjB7gI,EAAKhG,KAAKk+D,QAAQ9iB,KAAK,yBACrBq9D,WAAYzyG,EAAK49H,wBACjBjyI,MAAOqU,EAAKygI,qBAKkB,IAA9Bp3I,KAAKs0I,uBACPt0I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,oBACvB/rD,KAAKs0I,sBAAuB,EAC5BkD,IAIF,KADA,GAAIjjG,GAAQ,EACLgjG,KAAahjG,EAAQv0C,KAAKgO,QAAQsnI,cAAcC,gBACrDv1I,KAAKq2I,cACL9hG,GAGFijG,KAEID,IACFhiG,WAAWv1C,KAAKs3I,oBAAoB1/E,KAAK53D,MAAO,GAEhDA,KAAKy3I,4BAUTlwI,IAAK,yBACLhF,MAAO,WACLvC,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,iBACgB,IAAnC/rD,KAAKgO,QAAQsnI,cAAc9kE,KAC7BxwE,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,QAG2B,IAAhD/rD,KAAKgO,QAAQsnI,cAAcE,kBAC7Bx1I,KAAK03I,sBAGP13I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,+BACvB/rD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAEC,IAApB/rD,KAAKq0I,WACPr0I,KAAKm2I,kBAELn2I,KAAKm/G,kBAGPn/G,KAAKw0I,OAAQ,KAGfjtI,IAAK,cACLhF,MAAO,SAAqB+S,GAC1B,IAAK,GAAIvR,GAAI,EAAGA,EAAI/D,KAAKqzI,YAAYC,mBAAmB1vI,OAAQG,IAAK,CACnE,GAAI0pC,GAAOztC,KAAK2Q,KAAKspG,MAAMj6G,KAAKqzI,YAAYC,mBAAmBvvI,IAC3D6mE,EAAQ5qE,KAAKqzI,YAAYG,OAAOxzI,KAAKqzI,YAAYC,mBAAmBvvI,IAGpE4zI,EAAYl1I,KAAKorD,KAAKprD,KAAKknB,IAAIihD,EAAM31C,EAAG,GAAKxyB,KAAKknB,IAAIihD,EAAM31C,EAAG,IAE/Dob,EAAO5tC,KAAKL,IAAIK,KAAKJ,IAAI,EAAGs1I,GAAY,IACxCC,EAAY,EAAIvnG,EAEhBnmC,EAAQvJ,EAAK6K,UAAU,IAA0D,IAApD/I,KAAKL,IAAI,EAAGK,KAAKJ,IAAI,EANpC,IAMqDs1I,KAAqB,IAAK,EAAG,EAEpGriI,GAAI4uC,UAAY7T,EAChB/6B,EAAIivC,YAAcr6C,EAClBoL,EAAIkvC,YACJlvC,EAAImvC,OAAOhX,EAAKxY,EAAGwY,EAAK5e,GACxBvZ,EAAIovC,OAAOjX,EAAKxY,EAbH,GAagB21C,EAAM31C,EAAGwY,EAAK5e,EAb9B,GAa2C+7C,EAAM/7C,GAC9DvZ,EAAI6kC,QAEJ,IAAIkjB,GAAQ56D,KAAK28D,MAAMwL,EAAM/7C,EAAG+7C,EAAM31C,EACtC3f,GAAIuvC,UAAY36C,EAChBoL,EAAIgsG,cAAc7zE,EAAKxY,EAlBV,GAkBuB21C,EAAM31C,EAAIxyB,KAAK06C,IAAIkgB,GAASu6E,EAAWnqG,EAAK5e,EAlBnE,GAkBgF+7C,EAAM/7C,EAAIpsB,KAAKw6C,IAAIogB,GAASu6E,EAAWv6E,EAAOu6E,GAC3ItiI,EAAI4kC,YAIH4hE,IAGTl8G,GAAiB,QAAIk8G,GAIjB,SAAUj8G,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCigD,EAAkB,WACpB,QAASA,GAAgBliI,EAAM0iI,EAAarlI,IAC1C,EAAI2kF,EAA0B,SAAG3yF,KAAM6yI,GAEvC7yI,KAAK2Q,KAAOA,EACZ3Q,KAAKqzI,YAAcA,EACnBrzI,KAAK63I,cACL73I,KAAKkxC,WAAWljC,GAChBhO,KAAK4mI,WAAa,EAsepB,OAheA,EAAI/zC,EAAuB,SAAGggD,IAC5BtrI,IAAK,aACLhF,MAAO,SAAoByL,GACzBhO,KAAKgO,QAAUA,EACfhO,KAAK83I,cAAgB,EAAI93I,KAAKgO,QAAQ0mI,MACtC10I,KAAK+3I,uBAAyB,EAAIt1I,KAAKJ,IAAI,EAAGI,KAAKL,IAAI,EAAGpC,KAAKgO,QAAQ+mI,kBAGzExtI,IAAK,eACLhF,MAAO,WACL,GAAI0yB,GAAkC,IAA9BxyB,KAAKw6C,IAAIj9C,KAAK4mI,aACtB,OAAO3xG,GAAIxyB,KAAKqK,MAAMmoB,MAWxB1tB,IAAK,QACLhF,MAAO,WACL,GAA2C,IAAvCvC,KAAKgO,QAAQ2mI,uBAA+B30I,KAAKqzI,YAAYC,mBAAmB1vI,OAAS,EAAG,CAC9F,GAAI6pC,OAAO,GACPwsE,EAAQj6G,KAAK2Q,KAAKspG,MAClBC,EAAcl6G,KAAKqzI,YAAYC,mBAC/B0E,EAAY99B,EAAYt2G,OAGxBi0I,EAAgB73I,KAAKi4I,mBAAmBh+B,EAAOC,EAGnDl6G,MAAK63I,cAAgBA,CAGrB,KAAK,GAAI9zI,GAAI,EAAGA,EAAIi0I,EAAWj0I,IAC7B0pC,EAAOwsE,EAAMC,EAAYn2G,IACrB0pC,EAAKz/B,QAAQi9G,KAAO,IAEtBjrH,KAAKk4I,sBAAsBL,EAAcn4I,KAAK2sC,SAAS8rG,GAAI1qG,GAC3DztC,KAAKk4I,sBAAsBL,EAAcn4I,KAAK2sC,SAAS+rG,GAAI3qG,GAC3DztC,KAAKk4I,sBAAsBL,EAAcn4I,KAAK2sC,SAASgsG,GAAI5qG,GAC3DztC,KAAKk4I,sBAAsBL,EAAcn4I,KAAK2sC,SAASisG,GAAI7qG,QAgBnElmC,IAAK,wBACLhF,MAAO,SAA+Bg2I,EAAc9qG,GAElD,GAAI8qG,EAAaC,cAAgB,EAAG,CAClC,GAAI16F,OAAK,GACLC,MAAK,GACLvD,MAAW,EAGfsD,GAAKy6F,EAAaE,aAAaxjH,EAAIwY,EAAKxY,EACxC8oB,EAAKw6F,EAAaE,aAAa5pH,EAAI4e,EAAK5e,EACxC2rB,EAAW/3C,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GAKhCvD,EAAW+9F,EAAaG,SAAW14I,KAAK83I,cAC1C93I,KAAK24I,iBAAiBn+F,EAAUsD,EAAIC,EAAItQ,EAAM8qG,GAGX,IAA/BA,EAAaC,eACfx4I,KAAKk4I,sBAAsBK,EAAalsG,SAAS8rG,GAAI1qG,GACrDztC,KAAKk4I,sBAAsBK,EAAalsG,SAAS+rG,GAAI3qG,GACrDztC,KAAKk4I,sBAAsBK,EAAalsG,SAASgsG,GAAI5qG,GACrDztC,KAAKk4I,sBAAsBK,EAAalsG,SAASisG,GAAI7qG,IAGjD8qG,EAAalsG,SAAS3X,KAAKr0B,IAAMotC,EAAKptC,IAExCL,KAAK24I,iBAAiBn+F,EAAUsD,EAAIC,EAAItQ,EAAM8qG,OAmBxDhxI,IAAK,mBACLhF,MAAO,SAA0Bi4C,EAAUsD,EAAIC,EAAItQ,EAAM8qG,GACtC,IAAb/9F,IACFA,EAAW,GACXsD,EAAKtD,GAGHx6C,KAAK+3I,uBAAyB,GAAKtqG,EAAK+3E,MAAM98D,SAChDlO,EAAW/3C,KAAKJ,IAAI,GAAMrC,KAAK+3I,uBAAyBtqG,EAAK+3E,MAAM98D,OAAQlO,EAAW/M,EAAK+3E,MAAM98D,QAKnG,IAAIkwF,GAAe54I,KAAKgO,QAAQ2mI,sBAAwB4D,EAAattB,KAAOx9E,EAAKz/B,QAAQi9G,KAAOxoH,KAAKknB,IAAI6wB,EAAU,GAC/GozF,EAAK9vF,EAAK86F,EACVC,EAAK96F,EAAK66F,CAEd54I,MAAKqzI,YAAYG,OAAO/lG,EAAKptC,IAAI40B,GAAK24G,EACtC5tI,KAAKqzI,YAAYG,OAAO/lG,EAAKptC,IAAIwuB,GAAKgqH,KAYxCtxI,IAAK,qBACLhF,MAAO,SAA4B03G,EAAOC,GAUxC,IAAK,GATDzsE,OAAO,GACPuqG,EAAY99B,EAAYt2G,OAExB6uI,EAAOx4B,EAAMC,EAAY,IAAIjlF,EAC7Bs9G,EAAOt4B,EAAMC,EAAY,IAAIrrF,EAC7B6jH,EAAOz4B,EAAMC,EAAY,IAAIjlF,EAC7Bu9G,EAAOv4B,EAAMC,EAAY,IAAIrrF,EAGxB9qB,EAAI,EAAGA,EAAIi0I,EAAWj0I,IAAK,CAClC,GAAIkxB,GAAIglF,EAAMC,EAAYn2G,IAAIkxB,EAC1BpG,EAAIorF,EAAMC,EAAYn2G,IAAI8qB,CAC1BorF,GAAMC,EAAYn2G,IAAIiK,QAAQi9G,KAAO,IACnCh2F,EAAIw9G,IACNA,EAAOx9G,GAELA,EAAIy9G,IACNA,EAAOz9G,GAELpG,EAAI0jH,IACNA,EAAO1jH,GAELA,EAAI2jH,IACNA,EAAO3jH,IAKb,GAAI0gG,GAAW9sH,KAAK0iB,IAAIutH,EAAOD,GAAQhwI,KAAK0iB,IAAIqtH,EAAOD,EACnDhjB,GAAW,GACbgjB,GAAQ,GAAMhjB,EACdijB,GAAQ,GAAMjjB,IAGZkjB,GAAQ,GAAMljB,EACdmjB,GAAQ,GAAMnjB,EAIlB,IACIupB,GAAWr2I,KAAKJ,IADE,KACmBI,KAAK0iB,IAAIutH,EAAOD,IACrDsG,EAAe,GAAMD,EACrB3uC,EAAU,IAAOsoC,EAAOC,GACxBxoC,EAAU,IAAOqoC,EAAOC,GAGxBqF,GACFn4I,MACE+4I,cAAgBxjH,EAAG,EAAGpG,EAAG,GACzBo8F,KAAM,EACNzvE,OACEi3F,KAAMtoC,EAAU4uC,EAAcrG,KAAMvoC,EAAU4uC,EAC9CxG,KAAMroC,EAAU6uC,EAAcvG,KAAMtoC,EAAU6uC,GAEhD1oG,KAAMyoG,EACNJ,SAAU,EAAII,EACdzsG,UAAY3X,KAAM,MAClB47D,SAAU,EACV06B,MAAO,EACPwtB,cAAe,GAGnBx4I,MAAKg5I,aAAanB,EAAcn4I,KAGhC,KAAK,GAAIkT,GAAK,EAAGA,EAAKolI,EAAWplI,IAC/B66B,EAAOwsE,EAAMC,EAAYtnG,IACrB66B,EAAKz/B,QAAQi9G,KAAO,GACtBjrH,KAAKi5I,aAAapB,EAAcn4I,KAAM+tC,EAK1C,OAAOoqG,MAYTtwI,IAAK,oBACLhF,MAAO,SAA2Bg2I,EAAc9qG,GAC9C,GAAIyrG,GAAYX,EAAattB,KAAOx9E,EAAKz/B,QAAQi9G,KAC7CkuB,EAAe,EAAID,CAEvBX,GAAaE,aAAaxjH,EAAIsjH,EAAaE,aAAaxjH,EAAIsjH,EAAattB,KAAOx9E,EAAKxY,EAAIwY,EAAKz/B,QAAQi9G,KACtGstB,EAAaE,aAAaxjH,GAAKkkH,EAE/BZ,EAAaE,aAAa5pH,EAAI0pH,EAAaE,aAAa5pH,EAAI0pH,EAAattB,KAAOx9E,EAAK5e,EAAI4e,EAAKz/B,QAAQi9G,KACtGstB,EAAaE,aAAa5pH,GAAKsqH,EAE/BZ,EAAattB,KAAOiuB,CACpB,IAAIE,GAAc32I,KAAKJ,IAAII,KAAKJ,IAAIorC,EAAKp9B,OAAQo9B,EAAKib,QAASjb,EAAKr9B,MACpEmoI,GAAajoD,SAAWioD,EAAajoD,SAAW8oD,EAAcA,EAAcb,EAAajoD,YAa3F/oF,IAAK,eACLhF,MAAO,SAAsBg2I,EAAc9qG,EAAM4rG,GACzB,GAAlBA,OAA6Cx1I,KAAnBw1I,GAE5Br5I,KAAKs5I,kBAAkBf,EAAc9qG,GAGnC8qG,EAAalsG,SAAS8rG,GAAG38F,MAAMk3F,KAAOjlG,EAAKxY,EAEzCsjH,EAAalsG,SAAS8rG,GAAG38F,MAAMg3F,KAAO/kG,EAAK5e,EAE7C7uB,KAAKu5I,eAAehB,EAAc9qG,EAAM,MAGxCztC,KAAKu5I,eAAehB,EAAc9qG,EAAM,MAItC8qG,EAAalsG,SAAS8rG,GAAG38F,MAAMg3F,KAAO/kG,EAAK5e,EAE7C7uB,KAAKu5I,eAAehB,EAAc9qG,EAAM,MAGxCztC,KAAKu5I,eAAehB,EAAc9qG,EAAM,SAe9ClmC,IAAK,iBACLhF,MAAO,SAAwBg2I,EAAc9qG,EAAM+rG,GACjD,OAAQjB,EAAalsG,SAASmtG,GAAQhB,eACpC,IAAK,GAEHD,EAAalsG,SAASmtG,GAAQntG,SAAS3X,KAAO+Y,EAC9C8qG,EAAalsG,SAASmtG,GAAQhB,cAAgB,EAC9Cx4I,KAAKs5I,kBAAkBf,EAAalsG,SAASmtG,GAAS/rG,EACtD,MACF,KAAK,GAIC8qG,EAAalsG,SAASmtG,GAAQntG,SAAS3X,KAAKO,IAAMwY,EAAKxY,GAAKsjH,EAAalsG,SAASmtG,GAAQntG,SAAS3X,KAAK7F,IAAM4e,EAAK5e,GACrH4e,EAAKxY,GAAKj1B,KAAK+nI,eACft6F,EAAK5e,GAAK7uB,KAAK+nI,iBAEf/nI,KAAKg5I,aAAaT,EAAalsG,SAASmtG,IACxCx5I,KAAKi5I,aAAaV,EAAalsG,SAASmtG,GAAS/rG,GAEnD,MACF,KAAK,GAEHztC,KAAKi5I,aAAaV,EAAalsG,SAASmtG,GAAS/rG,OAcvDlmC,IAAK,eACLhF,MAAO,SAAsBg2I,GAE3B,GAAIkB,GAAgB,IACe,KAA/BlB,EAAaC,gBACfiB,EAAgBlB,EAAalsG,SAAS3X,KACtC6jH,EAAattB,KAAO,EACpBstB,EAAaE,aAAaxjH,EAAI,EAC9BsjH,EAAaE,aAAa5pH,EAAI,GAEhC0pH,EAAaC,cAAgB,EAC7BD,EAAalsG,SAAS3X,KAAO,KAC7B10B,KAAK05I,cAAcnB,EAAc,MACjCv4I,KAAK05I,cAAcnB,EAAc,MACjCv4I,KAAK05I,cAAcnB,EAAc,MACjCv4I,KAAK05I,cAAcnB,EAAc,MAEZ,MAAjBkB,GACFz5I,KAAKi5I,aAAaV,EAAckB,MAgBpClyI,IAAK,gBACLhF,MAAO,SAAuBg2I,EAAciB,GAC1C,GAAI/G,OAAO,GACPC,MAAO,GACPH,MAAO,GACPC,MAAO,GACPmH,EAAY,GAAMpB,EAAaloG,IACnC,QAAQmpG,GACN,IAAK,KACH/G,EAAO8F,EAAa/8F,MAAMi3F,KAC1BC,EAAO6F,EAAa/8F,MAAMi3F,KAAOkH,EACjCpH,EAAOgG,EAAa/8F,MAAM+2F,KAC1BC,EAAO+F,EAAa/8F,MAAM+2F,KAAOoH,CACjC,MACF,KAAK,KACHlH,EAAO8F,EAAa/8F,MAAMi3F,KAAOkH,EACjCjH,EAAO6F,EAAa/8F,MAAMk3F,KAC1BH,EAAOgG,EAAa/8F,MAAM+2F,KAC1BC,EAAO+F,EAAa/8F,MAAM+2F,KAAOoH,CACjC,MACF,KAAK,KACHlH,EAAO8F,EAAa/8F,MAAMi3F,KAC1BC,EAAO6F,EAAa/8F,MAAMi3F,KAAOkH,EACjCpH,EAAOgG,EAAa/8F,MAAM+2F,KAAOoH,EACjCnH,EAAO+F,EAAa/8F,MAAMg3F,IAC1B,MACF,KAAK,KACHC,EAAO8F,EAAa/8F,MAAMi3F,KAAOkH,EACjCjH,EAAO6F,EAAa/8F,MAAMk3F,KAC1BH,EAAOgG,EAAa/8F,MAAM+2F,KAAOoH,EACjCnH,EAAO+F,EAAa/8F,MAAMg3F,KAI9B+F,EAAalsG,SAASmtG,IACpBf,cAAgBxjH,EAAG,EAAGpG,EAAG,GACzBo8F,KAAM,EACNzvE,OAASi3F,KAAMA,EAAMC,KAAMA,EAAMH,KAAMA,EAAMC,KAAMA,GACnDniG,KAAM,GAAMkoG,EAAaloG,KACzBqoG,SAAU,EAAIH,EAAaG,SAC3BrsG,UAAY3X,KAAM,MAClB47D,SAAU,EACV06B,MAAOutB,EAAavtB,MAAQ,EAC5BwtB,cAAe,MAgBnBjxI,IAAK,SACLhF,MAAO,SAAgB+S,EAAKpL,OACCrG,KAAvB7D,KAAK63I,gBAEPviI,EAAI4uC,UAAY,EAEhBlkD,KAAK45I,YAAY55I,KAAK63I,cAAcn4I,KAAM4V,EAAKpL,OAcnD3C,IAAK,cACLhF,MAAO,SAAqB2vI,EAAQ58H,EAAKpL,OACzBrG,KAAVqG,IACFA,EAAQ,WAGmB,IAAzBgoI,EAAOsG,gBACTx4I,KAAK45I,YAAY1H,EAAO7lG,SAAS8rG,GAAI7iI,GACrCtV,KAAK45I,YAAY1H,EAAO7lG,SAAS+rG,GAAI9iI,GACrCtV,KAAK45I,YAAY1H,EAAO7lG,SAASisG,GAAIhjI,GACrCtV,KAAK45I,YAAY1H,EAAO7lG,SAASgsG,GAAI/iI,IAEvCA,EAAIivC,YAAcr6C,EAClBoL,EAAIkvC,YACJlvC,EAAImvC,OAAOytF,EAAO12F,MAAMi3F,KAAMP,EAAO12F,MAAM+2F,MAC3Cj9H,EAAIovC,OAAOwtF,EAAO12F,MAAMk3F,KAAMR,EAAO12F,MAAM+2F,MAC3Cj9H,EAAI6kC,SAEJ7kC,EAAIkvC,YACJlvC,EAAImvC,OAAOytF,EAAO12F,MAAMk3F,KAAMR,EAAO12F,MAAM+2F,MAC3Cj9H,EAAIovC,OAAOwtF,EAAO12F,MAAMk3F,KAAMR,EAAO12F,MAAMg3F,MAC3Cl9H,EAAI6kC,SAEJ7kC,EAAIkvC,YACJlvC,EAAImvC,OAAOytF,EAAO12F,MAAMk3F,KAAMR,EAAO12F,MAAMg3F,MAC3Cl9H,EAAIovC,OAAOwtF,EAAO12F,MAAMi3F,KAAMP,EAAO12F,MAAMg3F,MAC3Cl9H,EAAI6kC,SAEJ7kC,EAAIkvC,YACJlvC,EAAImvC,OAAOytF,EAAO12F,MAAMi3F,KAAMP,EAAO12F,MAAMg3F,MAC3Cl9H,EAAIovC,OAAOwtF,EAAO12F,MAAMi3F,KAAMP,EAAO12F,MAAM+2F,MAC3Cj9H,EAAI6kC,aAUD04F,IAGTjzI,GAAiB,QAAIizI,GAIjB,SAAUhzI,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCinD,EAAkB,WACpB,QAASA,GAAgBlpI,EAAM0iI,EAAarlI,IAC1C,EAAI2kF,EAA0B,SAAG3yF,KAAM65I,GAEvC75I,KAAK2Q,KAAOA,EACZ3Q,KAAKqzI,YAAcA,EACnBrzI,KAAKkxC,WAAWljC,GAoElB,OAjEA,EAAI6kF,EAAuB,SAAGgnD,IAC5BtyI,IAAK,aACLhF,MAAO,SAAoByL,GACzBhO,KAAKgO,QAAUA,KAUjBzG,IAAK,QACLhF,MAAO,WAgBL,IAAK,GAfDu7C,GAAIC,EAAIvD,EAAUozF,EAAIiL,EAAIiB,EAAgB5b,EAAOC,EAEjDlkB,EAAQj6G,KAAK2Q,KAAKspG,MAClBC,EAAcl6G,KAAKqzI,YAAYC,mBAC/BE,EAASxzI,KAAKqzI,YAAYG,OAG1B0B,EAAel1I,KAAKgO,QAAQknI,aAG5B1xI,GAAK,EAAI,EAAI0xI,EAKRnxI,EAAI,EAAGA,EAAIm2G,EAAYt2G,OAAS,EAAGG,IAAK,CAC/Cm6H,EAAQjkB,EAAMC,EAAYn2G,GAC1B,KAAK,GAAI8J,GAAI9J,EAAI,EAAG8J,EAAIqsG,EAAYt2G,OAAQiK,IAC1CswH,EAAQlkB,EAAMC,EAAYrsG,IAE1BiwC,EAAKqgF,EAAMlpG,EAAIipG,EAAMjpG,EACrB8oB,EAAKogF,EAAMtvG,EAAIqvG,EAAMrvG,EACrB2rB,EAAW/3C,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GAGnB,IAAbvD,IACFA,EAAW,GAAM/3C,KAAKyX,SACtB4jC,EAAKtD,GAGHA,EAAW,EAAI06F,IAEf4E,EADEt/F,EAAW,GAAM06F,EACF,EAEA1xI,EAAIg3C,EAvBrB,EAAI,EAyBNs/F,GAAkCt/F,EAElCozF,EAAK9vF,EAAKg8F,EACVjB,EAAK96F,EAAK+7F,EAEVtG,EAAOtV,EAAM79H,IAAI40B,GAAK24G,EACtB4F,EAAOtV,EAAM79H,IAAIwuB,GAAKgqH,EACtBrF,EAAOrV,EAAM99H,IAAI40B,GAAK24G,EACtB4F,EAAOrV,EAAM99H,IAAIwuB,GAAKgqH,QAMzBgB,IAGTj6I,GAAiB,QAAIi6I,GAIjB,SAAUh6I,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCmnD,EAA8B,WAChC,QAASA,GAA4BppI,EAAM0iI,EAAarlI,IACtD,EAAI2kF,EAA0B,SAAG3yF,KAAM+5I,GAEvC/5I,KAAK2Q,KAAOA,EACZ3Q,KAAKqzI,YAAcA,EACnBrzI,KAAKkxC,WAAWljC,GAiElB,OA9DA,EAAI6kF,EAAuB,SAAGknD,IAC5BxyI,IAAK,aACLhF,MAAO,SAAoByL,GACzBhO,KAAKgO,QAAUA,KAWjBzG,IAAK,QACLhF,MAAO,WACL,GAAIu7C,GAAIC,EAAIvD,EAAUozF,EAAIiL,EAAIiB,EAAgB5b,EAAOC,EAAOp6H,EAAG8J,EAE3DosG,EAAQj6G,KAAK2Q,KAAKspG,MAClBC,EAAcl6G,KAAKqzI,YAAYC,mBAC/BE,EAASxzI,KAAKqzI,YAAYG,OAG1B0B,EAAel1I,KAAKgO,QAAQknI,YAIhC,KAAKnxI,EAAI,EAAGA,EAAIm2G,EAAYt2G,OAAS,EAAGG,IAEtC,IADAm6H,EAAQjkB,EAAMC,EAAYn2G,IACrB8J,EAAI9J,EAAI,EAAG8J,EAAIqsG,EAAYt2G,OAAQiK,IAItC,GAHAswH,EAAQlkB,EAAMC,EAAYrsG,IAGtBqwH,EAAMlT,QAAUmT,EAAMnT,MAAO,CAC/BltE,EAAKqgF,EAAMlpG,EAAIipG,EAAMjpG,EACrB8oB,EAAKogF,EAAMtvG,EAAIqvG,EAAMrvG,EACrB2rB,EAAW/3C,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,EAIlC+7F,GADEt/F,EAAW06F,GACKzyI,KAAKknB,IAFT,IAEyB6wB,EAAU,GAAK/3C,KAAKknB,IAF7C,IAE6DurH,EAAc,GAExE,EAGF,IAAb16F,EACFA,EAAW,IAEXs/F,GAAkCt/F,EAEpCozF,EAAK9vF,EAAKg8F,EACVjB,EAAK96F,EAAK+7F,EAEVtG,EAAOtV,EAAM79H,IAAI40B,GAAK24G,EACtB4F,EAAOtV,EAAM79H,IAAIwuB,GAAKgqH,EACtBrF,EAAOrV,EAAM99H,IAAI40B,GAAK24G,EACtB4F,EAAOrV,EAAM99H,IAAIwuB,GAAKgqH,OAMzBkB,IAGTn6I,GAAiB,QAAIm6I,GAIjB,SAAUl6I,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCogD,EAAe,WACjB,QAASA,GAAariI,EAAM0iI,EAAarlI,IACvC,EAAI2kF,EAA0B,SAAG3yF,KAAMgzI,GAEvChzI,KAAK2Q,KAAOA,EACZ3Q,KAAKqzI,YAAcA,EACnBrzI,KAAKkxC,WAAWljC,GAqFlB,OAlFA,EAAI6kF,EAAuB,SAAGmgD,IAC5BzrI,IAAK,aACLhF,MAAO,SAAoByL,GACzBhO,KAAKgO,QAAUA,KAUjBzG,IAAK,QACLhF,MAAO,WAUL,IAAK,GATDy3I,OAAa,GACbt6B,MAAO,GACPtF,EAAcp6G,KAAKqzI,YAAYE,mBAC/Bp5B,EAAQn6G,KAAK2Q,KAAKwpG,MAClB+jB,MAAQ,GACRC,MAAQ,GACR8b,MAAQ,GAGHl2I,EAAI,EAAGA,EAAIq2G,EAAYx2G,OAAQG,IACtC27G,EAAOvF,EAAMC,EAAYr2G,KACF,IAAnB27G,EAAK4c,WAAsB5c,EAAKoN,OAASpN,EAAKqN,YAEblpH,KAA/B7D,KAAK2Q,KAAKspG,MAAMyF,EAAKoN,WAAwDjpH,KAAjC7D,KAAK2Q,KAAKspG,MAAMyF,EAAKqN,cACzClpH,KAAtB67G,EAAK2c,SAAS+E,KAChB4Y,MAAqCn2I,KAAxB67G,EAAK1xG,QAAQpK,OAAuB5D,KAAKgO,QAAQ06H,aAAehpB,EAAK1xG,QAAQpK,OAC1Fs6H,EAAQxe,EAAKh8F,GACby6G,EAAQze,EAAK2c,SAAS+E,IACtB6Y,EAAQv6B,EAAK/7F,KAEb3jB,KAAKk6I,sBAAsBhc,EAAOC,EAAO,GAAM6b,GAC/Ch6I,KAAKk6I,sBAAsB/b,EAAO8b,EAAO,GAAMD,KAI/CA,MAAqCn2I,KAAxB67G,EAAK1xG,QAAQpK,OAAmD,IAA5B5D,KAAKgO,QAAQ06H,aAAqBhpB,EAAK1xG,QAAQpK,OAChG5D,KAAKk6I,sBAAsBx6B,EAAK/7F,KAAM+7F,EAAKh8F,GAAIs2H,QAiBzDzyI,IAAK,wBACLhF,MAAO,SAA+B27H,EAAOC,EAAO6b,GAClD,GAAIl8F,GAAKogF,EAAMjpG,EAAIkpG,EAAMlpG,EACrB8oB,EAAKmgF,EAAMrvG,EAAIsvG,EAAMtvG,EACrB2rB,EAAW/3C,KAAKJ,IAAII,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GAAK,KAGlDo8F,EAAcn6I,KAAKgO,QAAQ6mI,gBAAkBmF,EAAax/F,GAAYA,EAEtEozF,EAAK9vF,EAAKq8F,EACVtB,EAAK96F,EAAKo8F,MAG4Bt2I,KAAtC7D,KAAKqzI,YAAYG,OAAOtV,EAAM79H,MAChCL,KAAKqzI,YAAYG,OAAOtV,EAAM79H,IAAI40B,GAAK24G,EACvC5tI,KAAKqzI,YAAYG,OAAOtV,EAAM79H,IAAIwuB,GAAKgqH,OAGCh1I,KAAtC7D,KAAKqzI,YAAYG,OAAOrV,EAAM99H,MAChCL,KAAKqzI,YAAYG,OAAOrV,EAAM99H,IAAI40B,GAAK24G,EACvC5tI,KAAKqzI,YAAYG,OAAOrV,EAAM99H,IAAIwuB,GAAKgqH,OAItC7F,IAGTpzI,GAAiB,QAAIozI,GAIjB,SAAUnzI,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCqgD,EAA2B,WAC7B,QAASA,GAAyBtiI,EAAM0iI,EAAarlI,IACnD,EAAI2kF,EAA0B,SAAG3yF,KAAMizI,GAEvCjzI,KAAK2Q,KAAOA,EACZ3Q,KAAKqzI,YAAcA,EACnBrzI,KAAKkxC,WAAWljC,GAuGlB,OApGA,EAAI6kF,EAAuB,SAAGogD,IAC5B1rI,IAAK,aACLhF,MAAO,SAAoByL,GACzBhO,KAAKgO,QAAUA,KAUjBzG,IAAK,QACLhF,MAAO,WAWL,IAAK,GAVDy3I,GAAYt6B,EACZ5hE,EAAIC,EAAI6vF,EAAIiL,EAAIsB,EAAa3/F,EAC7B2/D,EAAQn6G,KAAK2Q,KAAKwpG,MAGlBC,EAAcp6G,KAAKqzI,YAAYE,mBAC/Br5B,EAAcl6G,KAAKqzI,YAAYC,mBAC/BE,EAASxzI,KAAKqzI,YAAYG,OAGrBzvI,EAAI,EAAGA,EAAIm2G,EAAYt2G,OAAQG,IAAK,CAC3C,GAAIi5G,GAAS9C,EAAYn2G,EACzByvI,GAAOx2B,GAAQo9B,SAAW,EAC1B5G,EAAOx2B,GAAQq9B,SAAW,EAI5B,IAAK,GAAIznI,GAAK,EAAGA,EAAKwnG,EAAYx2G,OAAQgP,IACxC8sG,EAAOvF,EAAMC,EAAYxnG,KACF,IAAnB8sG,EAAK4c,YACP0d,MAAqCn2I,KAAxB67G,EAAK1xG,QAAQpK,OAAuB5D,KAAKgO,QAAQ06H,aAAehpB,EAAK1xG,QAAQpK,OAE1Fk6C,EAAK4hE,EAAK/7F,KAAKsR,EAAIyqF,EAAKh8F,GAAGuR,EAC3B8oB,EAAK2hE,EAAK/7F,KAAKkL,EAAI6wF,EAAKh8F,GAAGmL,EAC3B2rB,EAAW/3C,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GACpCvD,EAAwB,IAAbA,EAAiB,IAAOA,EAGnC2/F,EAAcn6I,KAAKgO,QAAQ6mI,gBAAkBmF,EAAax/F,GAAYA,EAEtEozF,EAAK9vF,EAAKq8F,EACVtB,EAAK96F,EAAKo8F,EAENz6B,EAAKh8F,GAAGsnG,OAAStL,EAAK/7F,KAAKqnG,WACHnnH,KAAtB2vI,EAAO9zB,EAAKoN,QACd0mB,EAAO9zB,EAAKoN,MAAMstB,UAAYxM,EAC9B4F,EAAO9zB,EAAKoN,MAAMutB,UAAYxB,OAEJh1I,KAAxB2vI,EAAO9zB,EAAKqN,UACdymB,EAAO9zB,EAAKqN,QAAQqtB,UAAYxM,EAChC4F,EAAO9zB,EAAKqN,QAAQstB,UAAYxB,SAGRh1I,KAAtB2vI,EAAO9zB,EAAKoN,QACd0mB,EAAO9zB,EAAKoN,MAAM73F,GAzCb,GAyC2B24G,EAChC4F,EAAO9zB,EAAKoN,MAAMj+F,GA1Cb,GA0C2BgqH,OAENh1I,KAAxB2vI,EAAO9zB,EAAKqN,UACdymB,EAAO9zB,EAAKqN,QAAQ93F,GA7Cf,GA6C6B24G,EAClC4F,EAAO9zB,EAAKqN,QAAQl+F,GA9Cf,GA8C6BgqH,IAS1C,KAAK,GADDuB,GAAUC,EADVF,EAAc,EAET9M,EAAM,EAAGA,EAAMnzB,EAAYt2G,OAAQypI,IAAO,CACjD,GAAI3/F,GAAUwsE,EAAYmzB,EAC1B+M,GAAW33I,KAAKL,IAAI+3I,EAAa13I,KAAKJ,KAAK83I,EAAa3G,EAAO9lG,GAAS0sG,WACxEC,EAAW53I,KAAKL,IAAI+3I,EAAa13I,KAAKJ,KAAK83I,EAAa3G,EAAO9lG,GAAS2sG,WAExE7G,EAAO9lG,GAASzY,GAAKmlH,EACrB5G,EAAO9lG,GAAS7e,GAAKwrH,EAMvB,IAAK,GAFDC,GAAU,EACVC,EAAU,EACLhN,EAAM,EAAGA,EAAMrzB,EAAYt2G,OAAQ2pI,IAAO,CACjD,GAAIvhB,GAAW9R,EAAYqzB,EAC3B+M,IAAW9G,EAAOxnB,GAAU/2F,EAC5BslH,GAAW/G,EAAOxnB,GAAUn9F,EAK9B,IAAK,GAHD2rH,GAAeF,EAAUpgC,EAAYt2G,OACrC62I,EAAeF,EAAUrgC,EAAYt2G,OAEhC+pI,EAAM,EAAGA,EAAMzzB,EAAYt2G,OAAQ+pI,IAAO,CACjD,GAAI+M,GAAWxgC,EAAYyzB,EAC3B6F,GAAOkH,GAAUzlH,GAAKulH,EACtBhH,EAAOkH,GAAU7rH,GAAK4rH,OAIrBxH,IAGTrzI,GAAiB,QAAIqzI,GAIjB,SAAUpzI,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCsgD,EAAuB,WACzB,QAASA,GAAqBviI,EAAM0iI,EAAarlI,IAC/C,EAAI2kF,EAA0B,SAAG3yF,KAAMkzI,GAEvClzI,KAAK2Q,KAAOA,EACZ3Q,KAAKqzI,YAAcA,EACnBrzI,KAAKkxC,WAAWljC,GA2ClB,OAxCA,EAAI6kF,EAAuB,SAAGqgD,IAC5B3rI,IAAK,aACLhF,MAAO,SAAoByL,GACzBhO,KAAKgO,QAAUA,KAGjBzG,IAAK,QACLhF,MAAO,WASL,IAAK,GARDu7C,OAAK,GACLC,MAAK,GACLvD,MAAW,GACX/M,MAAO,GACPwsE,EAAQj6G,KAAK2Q,KAAKspG,MAClBC,EAAcl6G,KAAKqzI,YAAYC,mBAC/BE,EAASxzI,KAAKqzI,YAAYG,OAErBzvI,EAAI,EAAGA,EAAIm2G,EAAYt2G,OAAQG,IAAK,CAE3C0pC,EAAOwsE,EADMC,EAAYn2G,IAEzB+5C,GAAMrQ,EAAKxY,EACX8oB,GAAMtQ,EAAK5e,EACX2rB,EAAW/3C,KAAKorD,KAAK/P,EAAKA,EAAKC,EAAKA,GAEpC/9C,KAAK24I,iBAAiBn+F,EAAUsD,EAAIC,EAAIy1F,EAAQ/lG,OAUpDlmC,IAAK,mBACLhF,MAAO,SAA0Bi4C,EAAUsD,EAAIC,EAAIy1F,EAAQ/lG,GACzD,GAAImrG,GAA4B,IAAbp+F,EAAiB,EAAIx6C,KAAKgO,QAAQ4mI,eAAiBp6F,CACtEg5F,GAAO/lG,EAAKptC,IAAI40B,EAAI6oB,EAAK86F,EACzBpF,EAAO/lG,EAAKptC,IAAIwuB,EAAIkvB,EAAK66F,MAGtB1F,IAGTtzI,GAAiB,QAAIszI,GAIjB,SAAUrzI,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCmkB,EAAoBz6I,EAAoB,KAExC06I,EAAoB/5I,EAAuB85I,GAI3CxH,EAAkC,SAAU0H,GAG9C,QAAS1H,GAAgCxiI,EAAM0iI,EAAarlI,GAE1D,OADA,EAAI2kF,EAA0B,SAAG3yF,KAAMmzI,IAChC,EAAI5c,EAAqC,SAAGv2H,MAAOmzI,EAAgCtc,YAAa,EAAIR,EAA0B,SAAG8c,IAAkC5yI,KAAKP,KAAM2Q,EAAM0iI,EAAarlI,IAsC1M,OA1CA,EAAIyoH,EAAoB,SAAG0c,EAAiC0H,IAmB5D,EAAIhoD,EAAuB,SAAGsgD,IAC5B5rI,IAAK,mBACLhF,MAAO,SAA0Bi4C,EAAUsD,EAAIC,EAAItQ,EAAM8qG,GACtC,IAAb/9F,IACFA,EAAW,GAAM/3C,KAAKyX,SACtB4jC,EAAKtD,GAGHx6C,KAAK+3I,uBAAyB,GAAKtqG,EAAK+3E,MAAM98D,SAChDlO,EAAW/3C,KAAKJ,IAAI,GAAMrC,KAAK+3I,uBAAyBtqG,EAAK+3E,MAAM98D,OAAQlO,EAAW/M,EAAK+3E,MAAM98D,QAGnG,IAAIoyF,GAASrtG,EAAK0sE,MAAMv2G,OAAS,EAG7Bg1I,EAAe54I,KAAKgO,QAAQ2mI,sBAAwB4D,EAAattB,KAAOx9E,EAAKz/B,QAAQi9G,KAAO6vB,EAASr4I,KAAKknB,IAAI6wB,EAAU,GACxHozF,EAAK9vF,EAAK86F,EACVC,EAAK96F,EAAK66F,CAEd54I,MAAKqzI,YAAYG,OAAO/lG,EAAKptC,IAAI40B,GAAK24G,EACtC5tI,KAAKqzI,YAAYG,OAAO/lG,EAAKptC,IAAIwuB,GAAKgqH,MAGnC1F,GACPyH,EAA2B,QAE7Bh7I,GAAiB,QAAIuzI,GAIjB,SAAUtzI,EAAQD,EAASM,GAgC/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GA5BzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvC0jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCukB,EAAyB76I,EAAoB,KAE7C86I,EAAyBn6I,EAAuBk6I,GAIhD3H,EAAuC,SAAU6H,GAGnD,QAAS7H,GAAqCziI,EAAM0iI,EAAarlI,GAE/D,OADA,EAAI2kF,EAA0B,SAAG3yF,KAAMozI,IAChC,EAAI7c,EAAqC,SAAGv2H,MAAOozI,EAAqCvc,YAAa,EAAIR,EAA0B,SAAG+c,IAAuC7yI,KAAKP,KAAM2Q,EAAM0iI,EAAarlI,IAoBpN,OAxBA,EAAIyoH,EAAoB,SAAG2c,EAAsC6H,IAajE,EAAIpoD,EAAuB,SAAGugD,IAC5B7rI,IAAK,mBACLhF,MAAO,SAA0Bi4C,EAAUsD,EAAIC,EAAIy1F,EAAQ/lG,GACzD,GAAI+M,EAAW,EAAG,CAChB,GAAIsgG,GAASrtG,EAAK0sE,MAAMv2G,OAAS,EAC7Bg1I,EAAe54I,KAAKgO,QAAQ4mI,eAAiBkG,EAASrtG,EAAKz/B,QAAQi9G,IACvEuoB,GAAO/lG,EAAKptC,IAAI40B,EAAI6oB,EAAK86F,EACzBpF,EAAO/lG,EAAKptC,IAAIwuB,EAAIkvB,EAAK66F,OAIxBxF,GACP4H,EAAgC,QAElCp7I,GAAiB,QAAIwzI,GAIjB,SAAUvzI,EAAQD,EAASM,GAwB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GApBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIlB,GAAQnB,EAAoB,IAE5BoB,EAAST,EAAuBQ,GAEhCE,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCmxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAC3BulI,EAAcvlI,EAAoB,KAAc,QAChDg7I,EAAUh7I,EAAoB,KAAc,QAE5Cg8G,EAAgB,WAClB,QAASA,GAAcvrG,GACrB,GAAIspF,GAAQj6F,MAEZ,EAAI2yF,EAA0B,SAAG3yF,KAAMk8G,GAEvCl8G,KAAK2Q,KAAOA,EACZ3Q,KAAKm7I,kBACLn7I,KAAKo7I,kBAELp7I,KAAKgO,WACLhO,KAAKguE,kBACLrtE,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAE/BhuE,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAc,WACjC0oD,EAAMkhD,kBAAoBlhD,EAAMmhD,oBA26BpC,OAh6BA,EAAIvoD,EAAuB,SAAGqpB,IAC5B30G,IAAK,mBACLhF,MAAO,SAA0B84I,EAASrtI,OACxBnK,KAAZw3I,EACFA,EAAUr7I,KAAKs7I,cACiF,gBAAnE,KAAZD,EAA0B,aAAc,EAAI75I,EAAkB,SAAG65I,MAClFrtI,EAAUhO,KAAKu7I,cAAcF,GAC7BA,EAAUr7I,KAAKs7I,cAIjB,KAAK,GADDE,MACKz3I,EAAI,EAAGA,EAAI/D,KAAK2Q,KAAKupG,YAAYt2G,OAAQG,IAAK,CACrD,GAAI0pC,GAAOztC,KAAK2Q,KAAKspG,MAAMj6G,KAAK2Q,KAAKupG,YAAYn2G,GAC7C0pC,GAAK0sE,MAAMv2G,QAAUy3I,GACvBG,EAAe32I,KAAK4oC,EAAKptC,IAI7B,IAAK,GAAIuS,GAAK,EAAGA,EAAK4oI,EAAe53I,OAAQgP,IAC3C5S,KAAKg+G,oBAAoBw9B,EAAe5oI,GAAK5E,GAAS,EAGxDhO,MAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAUzBxkD,IAAK,UACLhF,MAAO,WACL,GAAIyL,GAAUrK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MACzE83I,IAAc93I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAEjF,QAA8BE,KAA1BmK,EAAQ0tI,cACV,KAAM,IAAIr3I,OAAM,iFAIlB2J,GAAUhO,KAAKu7I,cAAcvtI,EAM7B,KAAK,GAJD2tI,MACAC,KAGK73I,EAAI,EAAGA,EAAI/D,KAAK2Q,KAAKupG,YAAYt2G,OAAQG,IAAK,CACrD,GAAIi5G,GAASh9G,KAAK2Q,KAAKupG,YAAYn2G,GAC/B0pC,EAAOztC,KAAK2Q,KAAKspG,MAAM+C,GACvB21B,EAAgBlN,EAAYqL,aAAarjG,EAC7C,KAA6C,IAAzCz/B,EAAQ0tI,cAAc/I,GAAyB,CACjDgJ,EAAc3+B,GAAUh9G,KAAK2Q,KAAKspG,MAAM+C,EAGxC,KAAK,GAAIqwB,GAAM,EAAGA,EAAM5/F,EAAK0sE,MAAMv2G,OAAQypI,IAAO,CAChD,GAAI3tB,GAAOjyE,EAAK0sE,MAAMkzB,OACexpI,KAAjC7D,KAAKo7I,eAAe17B,EAAKr/G,MAC3Bu7I,EAAcl8B,EAAKr/G,IAAMq/G,KAMjC1/G,KAAK67I,SAASF,EAAeC,EAAe5tI,EAASytI,MAWvDl0I,IAAK,qBACLhF,MAAO,SAA4Bu5I,EAAW9tI,GAC5C,GAAIytI,KAAc93I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAEjFqK,GAAUhO,KAAKu7I,cAAcvtI,EAS7B,KAAK,GARD+tI,MACAC,KACAt8B,MAAO,GACPvF,MAAQ,GACR1sE,MAAO,GACPuvE,MAAS,GACTi/B,MAAoB,GAEfl4I,EAAI,EAAGA,EAAI/D,KAAK2Q,KAAKupG,YAAYt2G,OAAQG,IAAK,CACrD,GAAI43I,MACAC,IAIJ,IAHA5+B,EAASh9G,KAAK2Q,KAAKupG,YAAYn2G,OAGLF,KAAtBm4I,EAAUh/B,GAAuB,CACnCi/B,EAAoB,EACpBxuG,EAAOztC,KAAK2Q,KAAKspG,MAAM+C,GACvB7C,IACA,KAAK,GAAItsG,GAAI,EAAGA,EAAI4/B,EAAK0sE,MAAMv2G,OAAQiK,IACrC6xG,EAAOjyE,EAAK0sE,MAAMtsG,OACmBhK,KAAjC7D,KAAKo7I,eAAe17B,EAAKr/G,MACvBq/G,EAAKoN,OAASpN,EAAKqN,QACrBkvB,IAEF9hC,EAAMt1G,KAAK66G,GAKf,IAAIu8B,IAAsBH,EAAW,CAEnC,IAAK,GADDI,IAAsB,EACjB3jD,EAAK,EAAGA,EAAK4hB,EAAMv2G,OAAQ20F,IAAM,CACxCmnB,EAAOvF,EAAM5hB,EACb,IAAI0tC,GAAcjmI,KAAKm8I,gBAAgBz8B,EAAM1C,EAE7C,QAA8Bn5G,KAA1BmK,EAAQ0tI,cACVE,EAAcl8B,EAAKr/G,IAAMq/G,EACzBi8B,EAAc3+B,GAAUh9G,KAAK2Q,KAAKspG,MAAM+C,GACxC2+B,EAAc1V,GAAejmI,KAAK2Q,KAAKspG,MAAMgsB,GAC7C+V,EAAUh/B,IAAU,MACf,CACL,GAAI21B,GAAgBlN,EAAYqL,aAAa9wI,KAAK2Q,KAAKspG,MAAM+C,GAC7D,KAA6C,IAAzChvG,EAAQ0tI,cAAc/I,GAInB,CAELuJ,GAAsB,CACtB,OANAN,EAAcl8B,EAAKr/G,IAAMq/G,EACzBi8B,EAAc3+B,GAAUh9G,KAAK2Q,KAAKspG,MAAM+C,GACxCg/B,EAAUh/B,IAAU,IAUtB,EAAI17G,EAAgB,SAAGq6I,GAAe/3I,OAAS,IAAK,EAAItC,EAAgB,SAAGs6I,GAAeh4I,OAAS,IAA6B,IAAxBs4I,GAC1GH,EAASl3I,MAAOo1G,MAAO0hC,EAAexhC,MAAOyhC,MAMrD,IAAK,GAAIrO,GAAM,EAAGA,EAAMwO,EAASn4I,OAAQ2pI,IACvCvtI,KAAK67I,SAASE,EAASxO,GAAKtzB,MAAO8hC,EAASxO,GAAKpzB,MAAOnsG,GAAS,IAG/C,IAAhBytI,GACFz7I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAW3BxkD,IAAK,kBACLhF,MAAO,SAAyByL,GAC9B,GAAIytI,KAAc93I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAEjF3D,MAAKo8I,mBAAmB,EAAGpuI,EAASytI,MAUtCl0I,IAAK,iBACLhF,MAAO,SAAwByL,GAC7B,GAAIytI,KAAc93I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAEjF3D,MAAKo8I,mBAAmB,EAAGpuI,EAASytI,MAWtCl0I,IAAK,sBACLhF,MAAO,SAA6By6G,EAAQhvG,GAC1C,GAAIytI,KAAc93I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAGjF,QAAeE,KAAXm5G,EACF,KAAM,IAAI34G,OAAM,6CAElB,QAAgCR,KAA5B7D,KAAK2Q,KAAKspG,MAAM+C,GAClB,KAAM,IAAI34G,OAAM,0DAGlB,IAAIopC,GAAOztC,KAAK2Q,KAAKspG,MAAM+C,EAC3BhvG,GAAUhO,KAAKu7I,cAAcvtI,EAASy/B,OACE5pC,KAApCmK,EAAQquI,sBAAsBpnH,IAChCjnB,EAAQquI,sBAAsBpnH,EAAIwY,EAAKxY,OAEDpxB,KAApCmK,EAAQquI,sBAAsBxtH,IAChC7gB,EAAQquI,sBAAsBxtH,EAAI4e,EAAK5e,OAEGhrB,KAAxCmK,EAAQquI,sBAAsBr1B,QAChCh5G,EAAQquI,sBAAsBr1B,SAC9Bh5G,EAAQquI,sBAAsBr1B,MAAM/xF,EAAIwY,EAAKz/B,QAAQg5G,MAAM/xF,EAC3DjnB,EAAQquI,sBAAsBr1B,MAAMn4F,EAAI4e,EAAKz/B,QAAQg5G,MAAMn4F,EAG7D,IAAI8sH,MACAC,KACA5V,EAAev4F,EAAKptC,GACpBi8I,EAAsB7W,EAAYqL,aAAarjG,EACnDkuG,GAAc3V,GAAgBv4F,CAG9B,KAAK,GAAI1pC,GAAI,EAAGA,EAAI0pC,EAAK0sE,MAAMv2G,OAAQG,IAAK,CAC1C,GAAI27G,GAAOjyE,EAAK0sE,MAAMp2G,EACtB,QAAqCF,KAAjC7D,KAAKo7I,eAAe17B,EAAKr/G,IAAmB,CAC9C,GAAI4lI,GAAcjmI,KAAKm8I,gBAAgBz8B,EAAMsmB,EAG7C,QAAyCniI,KAArC7D,KAAKm7I,eAAelV,GACtB,GAAIA,IAAgBD,EAClB,OAA8BniI,KAA1BmK,EAAQ0tI,cACVE,EAAcl8B,EAAKr/G,IAAMq/G,EACzBi8B,EAAc1V,GAAejmI,KAAK2Q,KAAKspG,MAAMgsB,OACxC,CAEL,GAAIsW,GAAqB9W,EAAYqL,aAAa9wI,KAAK2Q,KAAKspG,MAAMgsB,KACK,IAAnEj4H,EAAQ0tI,cAAcY,EAAqBC,KAC7CX,EAAcl8B,EAAKr/G,IAAMq/G,EACzBi8B,EAAc1V,GAAejmI,KAAK2Q,KAAKspG,MAAMgsB,QAKjD2V,GAAcl8B,EAAKr/G,IAAMq/G,GAKjC,GAAI88B,IAAe,EAAIl7I,EAAgB,SAAGq6I,GAAe7wI,IAAI,SAAU+kI,GACrE,MAAO8L,GAAc9L,GAAWxvI,IAGlC,KAAKwvI,IAAa8L,GAEhB,IAAK,GADD9L,GAAY8L,EAAc9L,GACrBhhH,EAAI,EAAGA,EAAIghH,EAAU11B,MAAMv2G,OAAQirB,IAAK,CAC/C,GAAI4tH,GAAY5M,EAAU11B,MAAMtrF,EAC5B2tH,GAAa53I,QAAQ5E,KAAKm8I,gBAAgBM,EAAW5M,EAAUxvI,MAAQ,IACzEu7I,EAAca,EAAUp8I,IAAMo8I,GAIpCz8I,KAAK67I,SAASF,EAAeC,EAAe5tI,EAASytI,MAevDl0I,IAAK,sBACLhF,MAAO,SAA6Bo5I,EAAeC,EAAeS,EAAuBlU,GAYvF,IAAK,GAXDzoB,OAAO,GACPumB,MAAc,GACd4J,MAAY,GACZ/iB,MAAO,GACPC,MAAS,GACT2vB,MAAc,GAIdC,GAAY,EAAIr7I,EAAgB,SAAGq6I,GACnCiB,KACK74I,EAAI,EAAGA,EAAI44I,EAAU/4I,OAAQG,IAAK,CACzCkiI,EAAc0W,EAAU54I,GACxB8rI,EAAY8L,EAAc1V,EAG1B,KAAK,GAAIp4H,GAAI,EAAGA,EAAIgiI,EAAU11B,MAAMv2G,OAAQiK,IAC1C6xG,EAAOmwB,EAAU11B,MAAMtsG,OAEchK,KAAjC7D,KAAKo7I,eAAe17B,EAAKr/G,MAEvBq/G,EAAKoN,MAAQpN,EAAKqN,OACpB6uB,EAAcl8B,EAAKr/G,IAAMq/G,EAGrBA,EAAKoN,MAAQmZ,GAEfnZ,EAAOuvB,EAAsBh8I,GAC7B0sH,EAASrN,EAAKqN,OACd2vB,EAAc3vB,IAEdD,EAAOpN,EAAKoN,KACZC,EAASsvB,EAAsBh8I,GAC/Bq8I,EAAc5vB,OAKiBjpH,KAA/B83I,EAAce,IAChBE,EAAY/3I,MAAO66G,KAAMA,EAAMqN,OAAQA,EAAQD,KAAMA,KAQ7D,IAAK,GAAIt0B,GAAM,EAAGA,EAAMokD,EAAYh5I,OAAQ40F,IAAO,CACjD,GAAIqkD,GAAQD,EAAYpkD,GAAKknB,KAEzBizB,EAAgBlN,EAAYqL,aAAa+L,EAAO,OAEpDl8I,GAAK+D,WAAWiuI,EAAexK,GAG/BwK,EAAchvH,KAAOi5H,EAAYpkD,GAAKu0B,OACtC4lB,EAAcjvH,GAAKk5H,EAAYpkD,GAAKs0B,KACpC6lB,EAActyI,GAAK,eAAiBM,EAAKuC,YAIzC,IAAI45I,GAAU98I,KAAK2Q,KAAKoqG,UAAUE,WAAW03B,EAC7CmK,GAAQC,0BAA4BF,EAAMx8I,GAG1CL,KAAK2Q,KAAKwpG,MAAM0iC,EAAMx8I,IAAI28I,iBAAmBF,EAAQz8I,GAGrDL,KAAK2Q,KAAKwpG,MAAM2iC,EAAQz8I,IAAMy8I,EAC9BA,EAAQhhB,UAGR97H,KAAKi9I,mBAAmBJ,GACxBA,EAAM3rG,YAAa+rD,SAAS,EAAO7jB,QAAQ,QAa/C7xE,IAAK,gBACLhF,MAAO,WACL,GAAIyL,GAAUrK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAS7E,YAPsCE,KAAlCmK,EAAQm6H,wBACVn6H,EAAQm6H,8BAE4BtkI,KAAlCmK,EAAQquI,wBACVruI,EAAQquI,0BAGHruI,KAaTzG,IAAK,WACLhF,MAAO,SAAkBo5I,EAAeC,EAAe5tI,GACrD,GAAIytI,KAAc93I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAGjF,IAAoD,IAAhD,EAAIrC,EAAgB,SAAGq6I,GAAe/3I,SAKU,IAAhD,EAAItC,EAAgB,SAAGq6I,GAAe/3I,QAAuE,GAAxDoK,EAAQquI,sBAAsBa,wBAAvF,CAKA,IAAK,GAAIlgC,KAAU2+B,GACjB,GAAIA,EAAcr4I,eAAe05G,QACKn5G,KAAhC7D,KAAKm7I,eAAen+B,GACtB,MAKN,IAAIq/B,GAAwB17I,EAAK+D,cAAesJ,EAAQquI,sBAGxD,QAAkCx4I,KAA9BmK,EAAQmvI,kBAAiC,CAE3C,GAAIC,KACJ,KAAK,GAAI1vG,KAAWiuG,GAClB,GAAIA,EAAcr4I,eAAeoqC,GAAU,CACzC,GAAIilG,GAAgBlN,EAAYqL,aAAa6K,EAAcjuG,GAC3D0vG,GAAkBv4I,KAAK8tI,GAK3B,GAAI0K,KACJ,KAAK,GAAIpgC,KAAU2+B,GACjB,GAAIA,EAAct4I,eAAe25G,IAEF,iBAAzBA,EAAO5yG,OAAO,EAAG,IAAwB,CAC3C,GAAIizI,GAAiB7X,EAAYqL,aAAa8K,EAAc3+B,GAAS,OACrEogC,GAAkBx4I,KAAKy4I,GAM7B,KADAjB,EAAwBruI,EAAQmvI,kBAAkBd,EAAuBe,EAAmBC,IAE1F,KAAM,IAAIh5I,OAAM,kEAKaR,KAA7Bw4I,EAAsBh8I,KACxBg8I,EAAsBh8I,GAAK,WAAaM,EAAKuC,aAE/C,IAAIq6I,GAAYlB,EAAsBh8I,OAEFwD,KAAhCw4I,EAAsB/rG,QACxB+rG,EAAsB/rG,MAAQ,UAIhC,IAAIx1B,OAAMjX,OACsBA,KAA5Bw4I,EAAsBpnH,IACxBna,EAAM9a,KAAKw9I,oBAAoB7B,GAC/BU,EAAsBpnH,EAAIna,EAAIma,OAEApxB,KAA5Bw4I,EAAsBxtH,QACZhrB,KAARiX,IACFA,EAAM9a,KAAKw9I,oBAAoB7B,IAEjCU,EAAsBxtH,EAAI/T,EAAI+T,GAIhCwtH,EAAsBh8I,GAAKk9I;MAG3B,IAAIE,GAAcz9I,KAAK2Q,KAAKoqG,UAAUC,WAAWqhC,EAAuBnB,EACxEuC,GAAY7/B,WAAY,EACxB6/B,EAAYC,eAAiB/B,EAC7B8B,EAAYE,eAAiB/B,EAE7B6B,EAAYtV,sBAAwBn6H,EAAQm6H,sBAG5CnoI,KAAK2Q,KAAKspG,MAAMoiC,EAAsBh8I,IAAMo9I,EAG5Cz9I,KAAK49I,oBAAoBjC,EAAeC,EAAeS,EAAuBruI,EAAQm6H,sBAGtF,KAAK,GAAI3M,KAAWogB,GAClB,GAAIA,EAAct4I,eAAek4H,QACE33H,KAA7B7D,KAAK2Q,KAAKwpG,MAAMqhB,GAAwB,CAC1C,GAAI9b,GAAO1/G,KAAK2Q,KAAKwpG,MAAMqhB,EAE3Bx7H,MAAKi9I,mBAAmBv9B,GAExBA,EAAKxuE,YAAa+rD,SAAS,EAAO7jB,QAAQ,IAMhD,IAAK,GAAI4yC,KAAY2vB,GACfA,EAAcr4I,eAAe0oH,KAC/BhsH,KAAKm7I,eAAenvB,IAAcuxB,UAAWlB,EAAsBh8I,GAAIotC,KAAMztC,KAAK2Q,KAAKspG,MAAM+R,IAC7FhsH,KAAK2Q,KAAKspG,MAAM+R,GAAU96E,YAAakoC,QAAQ,EAAM6jB,SAAS,IAKlEo/C,GAAsBh8I,OAAKwD,IAGP,IAAhB43I,GACFz7I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,oBAI3BxkD,IAAK,qBACLhF,MAAO,SAA4Bm9G,OACI77G,KAAjC7D,KAAKo7I,eAAe17B,EAAKr/G,MAC3BL,KAAKo7I,eAAe17B,EAAKr/G,KAAQ48F,QAASyiB,EAAK1xG,QAAQivF,QAAS7jB,OAAQsmC,EAAK1xG,QAAQorE,YAIzF7xE,IAAK,eACLhF,MAAO,SAAsBm9G,GAC3B,GAAIm+B,GAAkB79I,KAAKo7I,eAAe17B,EAAKr/G,QACvBwD,KAApBg6I,IACFn+B,EAAKxuE,YAAa+rD,QAAS4gD,EAAgB5gD,QAAS7jB,OAAQykE,EAAgBzkE,eACrEp5E,MAAKo7I,eAAe17B,EAAKr/G,QAWpCkH,IAAK,YACLhF,MAAO,SAAmBy6G,GACxB,WAAgCn5G,KAA5B7D,KAAK2Q,KAAKspG,MAAM+C,IAC2B,IAAtCh9G,KAAK2Q,KAAKspG,MAAM+C,GAAQY,WAE/Bp4F,QAAQotC,IAAI,yBACL,MAYXrrD,IAAK,sBACLhF,MAAO,SAA6Bo5I,GAOlC,IAAK,GANDgB,IAAY,EAAIr7I,EAAgB,SAAGq6I,GACnClJ,EAAOkJ,EAAcgB,EAAU,IAAI1nH,EACnCy9G,EAAOiJ,EAAcgB,EAAU,IAAI1nH,EACnCs9G,EAAOoJ,EAAcgB,EAAU,IAAI9tH,EACnC2jH,EAAOmJ,EAAcgB,EAAU,IAAI9tH,EACnC4e,MAAO,GACF1pC,EAAI,EAAGA,EAAI44I,EAAU/4I,OAAQG,IACpC0pC,EAAOkuG,EAAcgB,EAAU54I,IAC/B0uI,EAAOhlG,EAAKxY,EAAIw9G,EAAOhlG,EAAKxY,EAAIw9G,EAChCC,EAAOjlG,EAAKxY,EAAIy9G,EAAOjlG,EAAKxY,EAAIy9G,EAChCH,EAAO9kG,EAAK5e,EAAI0jH,EAAO9kG,EAAK5e,EAAI0jH,EAChCC,EAAO/kG,EAAK5e,EAAI2jH,EAAO/kG,EAAK5e,EAAI2jH,CAGlC,QAASv9G,EAAG,IAAOw9G,EAAOC,GAAO7jH,EAAG,IAAO0jH,EAAOC,OAUpDjrI,IAAK,cACLhF,MAAO,SAAqBu7I,EAAe9vI,GACzC,GAAIytI,KAAc93I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAGjF,QAAsBE,KAAlBi6I,EACF,KAAM,IAAIz5I,OAAM,4CAElB,QAAuCR,KAAnC7D,KAAK2Q,KAAKspG,MAAM6jC,GAClB,KAAM,IAAIz5I,OAAM,4DAElB,QAAsDR,KAAlD7D,KAAK2Q,KAAKspG,MAAM6jC,GAAeJ,eAEjC,WADAl4H,SAAQotC,IAAI,YAAckrF,EAAgB,qBAG5C,IAAIL,GAAcz9I,KAAK2Q,KAAKspG,MAAM6jC,GAC9BJ,EAAiBD,EAAYC,eAC7BC,EAAiBF,EAAYE,cAGjC,QAAgB95I,KAAZmK,OAAqDnK,KAA5BmK,EAAQ+vI,iBAAoE,kBAA5B/vI,GAAQ+vI,gBAAgC,CACnH,GAAInH,MACAoH,GAAoB/oH,EAAGwoH,EAAYxoH,EAAGpG,EAAG4uH,EAAY5uH,EACzD,KAAK,GAAImuF,KAAU0gC,GACjB,GAAIA,EAAep6I,eAAe05G,GAAS,CACzC,GAAIy8B,GAAgBz5I,KAAK2Q,KAAKspG,MAAM+C,EACpC45B,GAAU55B,IAAY/nF,EAAGwkH,EAAcxkH,EAAGpG,EAAG4qH,EAAc5qH,GAG/D,GAAIovH,GAAejwI,EAAQ+vI,gBAAgBC,EAAiBpH,EAE5D,KAAK,GAAI8D,KAAYgD,GACnB,GAAIA,EAAep6I,eAAeo3I,GAAW,CAC3C,GAAIwD,GAAiBl+I,KAAK2Q,KAAKspG,MAAMygC,OACN72I,KAA3Bo6I,EAAavD,KACfwD,EAAejpH,MAAiCpxB,KAA7Bo6I,EAAavD,GAAUzlH,EAAkBwoH,EAAYxoH,EAAIgpH,EAAavD,GAAUzlH,EACnGipH,EAAervH,MAAiChrB,KAA7Bo6I,EAAavD,GAAU7rH,EAAkB4uH,EAAY5uH,EAAIovH,EAAavD,GAAU7rH,QAMzG,KAAK,GAAIsvH,KAAYT,GACnB,GAAIA,EAAep6I,eAAe66I,GAAW,CAC3C,GAAIC,GAAkBp+I,KAAK2Q,KAAKspG,MAAMkkC,EACtCC,GAAkBV,EAAeS,IAEO,IAApCC,EAAgBpwI,QAAQg5G,MAAM/xF,IAChCmpH,EAAgBnpH,EAAIwoH,EAAYxoH,IAEM,IAApCmpH,EAAgBpwI,QAAQg5G,MAAMn4F,IAChCuvH,EAAgBvvH,EAAI4uH,EAAY5uH,GAOxC,IAAK,GAAIwvH,KAAYX,GACnB,GAAIA,EAAep6I,eAAe+6I,GAAW,CAC3C,GAAIC,GAAkBt+I,KAAK2Q,KAAKspG,MAAMokC,EAGtCC,GAAgBzH,GAAK4G,EAAY5G,GACjCyH,EAAgBxH,GAAK2G,EAAY3G,GAGjCwH,EAAgBptG,YAAakoC,QAAQ,EAAO6jB,SAAS,UAE9Cj9F,MAAKm7I,eAAekD,GAM/B,IAAK,GADDE,MACKx6I,EAAI,EAAGA,EAAI05I,EAAYtjC,MAAMv2G,OAAQG,IAC5Cw6I,EAAiB15I,KAAK44I,EAAYtjC,MAAMp2G,GAI1C,KAAK,GAAI4pI,GAAM,EAAGA,EAAM4Q,EAAiB36I,OAAQ+pI,IAAO,CACtD,GAAIjuB,GAAO6+B,EAAiB5Q,GAExB+O,EAAc18I,KAAKm8I,gBAAgBz8B,EAAMo+B,EAE7C,QAAyCj6I,KAArC7D,KAAKm7I,eAAeuB,GAA4B,CAElD,GAAI8B,GAAex+I,KAAK2Q,KAAKspG,MAAMj6G,KAAKm7I,eAAeuB,GAAaa,WAChEkB,EAAez+I,KAAK2Q,KAAKwpG,MAAMuF,EAAKq9B,0BACxC,QAAqBl5I,KAAjB46I,EAA4B,CAC9BD,EAAab,eAAec,EAAap+I,IAAMo+I,QAGxCd,GAAec,EAAap+I,GAInC,IAAI0sH,GAAS0xB,EAAa1xB,OACtBD,EAAO2xB,EAAa3xB,IACpB2xB,GAAa3xB,MAAQ4vB,EACvB5vB,EAAO9sH,KAAKm7I,eAAeuB,GAAaa,UAExCxwB,EAAS/sH,KAAKm7I,eAAeuB,GAAaa,SAI5C,IAAI5K,GAAgBlN,EAAYqL,aAAa2N,EAAc,OAC3D99I,GAAK+D,WAAWiuI,EAAe6L,EAAarW,sBAG5C,IAAI9nI,GAAK,eAAiBM,EAAKuC,YAC/BvC,GAAK+D,WAAWiuI,GAAiBhvH,KAAMopG,EAAQrpG,GAAIopG,EAAM1zC,QAAQ,EAAO6jB,SAAS,EAAM58F,GAAIA,GAG3F,IAAIy8I,GAAU98I,KAAK2Q,KAAKoqG,UAAUE,WAAW03B,EAC7CmK,GAAQC,0BAA4B0B,EAAap+I,GACjDL,KAAK2Q,KAAKwpG,MAAM95G,GAAMy8I,EACtB98I,KAAK2Q,KAAKwpG,MAAM95G,GAAIy7H,eAEjB,CACL,GAAI4iB,GAAe1+I,KAAK2Q,KAAKwpG,MAAMuF,EAAKq9B,+BACnBl5I,KAAjB66I,GACF1+I,KAAK2+I,aAAaD,GAGtBh/B,EAAKqc,UAELrc,EAAKkc,mBACE57H,MAAK2Q,KAAKwpG,MAAMuF,EAAKr/G,IAI9B,IAAK,GAAI48G,KAAU0gC,GACbA,EAAer6I,eAAe25G,IAChCj9G,KAAK2+I,aAAahB,EAAe1gC,UAK9Bj9G,MAAK2Q,KAAKspG,MAAM6jC,IAEH,IAAhBrC,GACFz7I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAI3BxkD,IAAK,oBACLhF,MAAO,SAA2Bg7I,GAChC,GAAIzV,KACJ,KAAkC,IAA9B9nI,KAAK49G,UAAU2/B,GAAqB,CACtC,GAAIG,GAAiB19I,KAAK2Q,KAAKspG,MAAMsjC,GAAWG,cAChD,KAAK,GAAI1gC,KAAU0gC,GACbA,EAAep6I,eAAe05G,IAChC8qB,EAAWjjI,KAAK7E,KAAK2Q,KAAKspG,MAAM+C,GAAQ38G,IAK9C,MAAOynI,MAaTvgI,IAAK,WACLhF,MAAO,SAAkBy6G,GAMvB,IALA,GAAIp3F,MAEAs0E,EAAU,EACVzsD,MAAO,OAE4B5pC,KAAhC7D,KAAKm7I,eAAen+B,IAAyB9iB,EAJ1C,KAIyD,CAEjE,OAAar2F,MADb4pC,EAAOztC,KAAK2Q,KAAKspG,MAAM+C,IACC,QACxBp3F,GAAM/gB,KAAK4oC,EAAKptC,IAEhB28G,EAASh9G,KAAKm7I,eAAen+B,GAAQugC,UACrCrjD,IAIF,WAAar2F,MADb4pC,EAAOztC,KAAK2Q,KAAKspG,MAAM+C,QAEvBp3F,EAAM/gB,KAAK4oC,EAAKptC,IAEhBulB,EAAM4oH,UACC5oH,MAUTre,IAAK,sBACLhF,MAAO,SAA6Bq8I,EAAiB/uB,GACnD,OAAwBhsH,KAApB+6I,EACF,KAAM,IAAIv6I,OAAM,sDAElB,QAAmBR,KAAfgsH,EACF,KAAM,IAAIxrH,OAAM,iDAElB,QAAyCR,KAArC7D,KAAK2Q,KAAKspG,MAAM2kC,GAClB,KAAM,IAAIv6I,OAAM,sEAGlBrE,MAAK2Q,KAAKspG,MAAM2kC,GAAiB1tG,WAAW2+E,GAC5C7vH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAUzBxkD,IAAK,aACLhF,MAAO,SAAoBs8I,EAAahvB,GACtC,OAAoBhsH,KAAhBg7I,EACF,KAAM,IAAIx6I,OAAM,yCAElB,QAAmBR,KAAfgsH,EACF,KAAM,IAAIxrH,OAAM,wCAElB,QAAqCR,KAAjC7D,KAAK2Q,KAAKwpG,MAAM0kC,GAClB,KAAM,IAAIx6I,OAAM,yDAIlB,KAAK,GADDy6I,GAAa9+I,KAAK++I,kBAAkBF,GAC/B96I,EAAI,EAAGA,EAAI+6I,EAAWl7I,OAAQG,IAAK,CAC/B/D,KAAK2Q,KAAKwpG,MAAM2kC,EAAW/6I,IACjCmtC,WAAW2+E,GAElB7vH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAUzBxkD,IAAK,oBACLhF,MAAO,SAA2B06G,GAKhC,IAJA,GAAIr3F,MAEAs0E,EAAU,MAEIr2F,KAAXo5G,OAAoDp5G,KAA5B7D,KAAK2Q,KAAKwpG,MAAM8C,IAAyB/iB,EAH9D,KAIRt0E,EAAM/gB,KAAK7E,KAAK2Q,KAAKwpG,MAAM8C,GAAQ58G,IACnC48G,EAASj9G,KAAK2Q,KAAKwpG,MAAM8C,GAAQ+/B,iBACjC9iD,GAGF,OADAt0E,GAAM4oH,UACC5oH,KAUTre,IAAK,cACLhF,MAAO,SAAqBy8I,GAK1B,IAJA,GAAIC,GAAaD,EAEb9kD,EAAU,MAEar2F,KAApBm7I,OAAsEn7I,KAArC7D,KAAK2Q,KAAKwpG,MAAM6kC,IAAkC9kD,EAHhF,KAIR8kD,EAAkBh/I,KAAK2Q,KAAKwpG,MAAM6kC,GAAiBjC,0BACnD7iD,QACwBr2F,KAApBm7I,IACFC,EAAaD,EAGjB,OAAOC,MAYT13I,IAAK,kBACLhF,MAAO,SAAyBm9G,EAAM1C,GACpC,MAAI0C,GAAKoN,MAAQ9P,EACR0C,EAAKoN,MACHpN,EAAKqN,OACPrN,EAAKqN,WAchBxlH,IAAK,cACLhF,MAAO,WAML,IAAK,GALD28I,GAAU,EACVC,EAAiB,EACjBC,EAAa,EACbC,EAAa,EAERt7I,EAAI,EAAGA,EAAI/D,KAAK2Q,KAAKupG,YAAYt2G,OAAQG,IAAK,CACrD,GAAI0pC,GAAOztC,KAAK2Q,KAAKspG,MAAMj6G,KAAK2Q,KAAKupG,YAAYn2G,GAC7C0pC,GAAK0sE,MAAMv2G,OAASy7I,IACtBA,EAAa5xG,EAAK0sE,MAAMv2G,QAE1Bs7I,GAAWzxG,EAAK0sE,MAAMv2G,OACtBu7I,GAAkB18I,KAAKknB,IAAI8jB,EAAK0sE,MAAMv2G,OAAQ,GAC9Cw7I,GAAc,EAEhBF,GAAoBE,EACpBD,GAAkCC,CAElC,IAAIE,GAAWH,EAAiB18I,KAAKknB,IAAIu1H,EAAS,GAC9CK,EAAoB98I,KAAKorD,KAAKyxF,GAE9BE,EAAe/8I,KAAKqK,MAAMoyI,EAAU,EAAIK,EAO5C,OAJIC,GAAeH,IACjBG,EAAeH,GAGVG,MAGJtjC,IAGTt8G,GAAiB,QAAIs8G,GAIjB,SAAUr8G,EAAQD,EAASM,GA4B/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAxBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAI6zH,GAAkBl2H,EAAoB,KAEtCm2H,EAAmBx1H,EAAuBu1H,GAE1C1jC,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1C4jC,EAA8Bp2H,EAAoB,KAElDq2H,EAA8B11H,EAAuBy1H,GAErDE,EAAat2H,EAAoB,KAEjCu2H,EAAa51H,EAAuB21H,GAEpCipB,EAASv/I,EAAoB,KAE7Bw/I,EAAS7+I,EAAuB4+I,GAOhCvE,EAAU,SAAUyE,GAGtB,QAASzE,GAAQltI,EAAS2C,EAAMm9G,EAAW1gB,EAAWn/F,IACpD,EAAI0kF,EAA0B,SAAG3yF,KAAMk7I,EAEvC,IAAIjhD,IAAQ,EAAIs8B,EAAqC,SAAGv2H,MAAOk7I,EAAQrkB,YAAa,EAAIR,EAA0B,SAAG6kB,IAAU36I,KAAKP,KAAMgO,EAAS2C,EAAMm9G,EAAW1gB,EAAWn/F,GAK/K,OAHAgsF,GAAM2jB,WAAY,EAClB3jB,EAAMyjD,kBACNzjD,EAAM0jD,kBACC1jD,EAGT,OAbA,EAAIw8B,EAAoB,SAAGykB,EAASyE,GAa7BzE,GACPwE,EAAgB,QAElB9/I,GAAiB,QAAIs7I,GAIjB,SAAUr7I,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,EAIrB,oBAAXpqF,UACTA,OAAOb,sBAAwBa,OAAOb,uBAAyBa,OAAOo3I,0BAA4Bp3I,OAAOq3I,6BAA+Br3I,OAAOs3I,wBAGjJ,IAAIn/I,GAAOT,EAAoB,GAE3B27G,EAAiB,WACnB,QAASA,GAAelrG,EAAMytC,IAC5B,EAAIu0C,EAA0B,SAAG3yF,KAAM67G,GAEvC77G,KAAK2Q,KAAOA,EACZ3Q,KAAKo+C,OAASA,EAEdp+C,KAAK+/I,iBAAkB,EACvB//I,KAAKg0I,gBAAcnwI,GACnB7D,KAAK4zI,iBAAkB,EACvB5zI,KAAKggJ,iBAAkB,EACvBhgJ,KAAKigJ,eAAiB,EACtBjgJ,KAAKkgJ,aAAc,EAEnBlgJ,KAAK41E,UAAW,EAChB51E,KAAKgO,WACLhO,KAAKguE,gBACHmyE,iBAAiB,EACjBC,iBAAiB,GAEnBz/I,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAE/BhuE,KAAKqgJ,0BACLrgJ,KAAKm7G,qBA8TP,OA3TA,EAAItoB,EAAuB,SAAGgpB,IAC5Bt0G,IAAK,qBACLhF,MAAO,WACL,GAAI03F,GAAQj6F,IAEZA,MAAK2Q,KAAKk+D,QAAQt9B,GAAG,YAAa,WAChC0oD,EAAMrkB,UAAW,IAEnB51E,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,WAC9B0oD,EAAMrkB,UAAW,IAEnB51E,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WACnC0oD,EAAMqmD,iBAERtgJ,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,YACA,IAA1B0oD,EAAM+lD,iBACR/lD,EAAMtpB,YAGV3wE,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WACnC0oD,EAAMimD,aAAc,IAEtBlgJ,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WACnC0oD,EAAMimD,aAAc,EAAKjmD,EAAM8lD,iBAAkB,IAEnD//I,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,iBAAkBvxC,KAAKugJ,eAAe3oF,KAAK53D,OAChEA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,kBAAmB,WACtC0oD,EAAMgmD,gBAAkB,EACxBhmD,EAAM+lD,iBAAkB,EACxB/lD,EAAMumD,oBAERxgJ,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,iBAAkB,WACrC0oD,EAAMgmD,gBAAkB,EACxBhmD,EAAM+lD,gBAAkB/lD,EAAMgmD,eAAiB,EAC/ChmD,EAAM+5C,gBAAcnwI,KAEtB7D,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,WAC9B0oD,EAAMgmD,eAAiB,EACvBhmD,EAAMimD,aAAc,EACpBjmD,EAAM+lD,iBAAkB,GACM,IAA1B/lD,EAAM25C,gBACRt+F,aAAa2kD,EAAM+5C,aAEnBxrI,OAAOi4I,qBAAqBxmD,EAAM+5C,aAEpC/5C,EAAMtpF,KAAKk+D,QAAQn9B,WAIvBnqC,IAAK,aACLhF,MAAO,SAAoByL,GACzB,OAAgBnK,KAAZmK,EAAuB,CACzB,GAAIV,IAAU,kBAAmB,kBACjC3M,GAAK2D,oBAAoBgJ,EAAQtN,KAAKgO,QAASA,OAInDzG,IAAK,kBACLhF,MAAO,YACwB,IAAzBvC,KAAKggJ,qBACkBn8I,KAArB7D,KAAKg0I,eACsB,IAAzBh0I,KAAK4zI,gBACP5zI,KAAKg0I,YAAcxrI,OAAO+sC,WAAWv1C,KAAK0gJ,YAAY9oF,KAAK53D,MAAOA,KAAK2zI,oBAEvE3zI,KAAKg0I,YAAcxrI,OAAOb,sBAAsB3H,KAAK0gJ,YAAY9oF,KAAK53D,WAM9EuH,IAAK,cACLhF,MAAO,YACwB,IAAzBvC,KAAKggJ,kBAEPhgJ,KAAKg0I,gBAAcnwI,IAEU,IAAzB7D,KAAK4zI,iBAEP5zI,KAAKwgJ,kBAGPxgJ,KAAK2wE,WAEwB,IAAzB3wE,KAAK4zI,iBAEP5zI,KAAKwgJ,sBAWXj5I,IAAK,SACLhF,MAAO,WACLvC,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,WACvB/rD,KAAK2wE,aAUPppE,IAAK,iBACLhF,MAAO,WACL,GAAIg5F,GAASv7F,MAEgB,IAAzBA,KAAK+/I,kBAAqD,IAAzB//I,KAAKggJ,kBAAkD,IAArBhgJ,KAAKkgJ,cAC1ElgJ,KAAK+/I,iBAAkB,GACM,IAAzB//I,KAAK4zI,gBACPprI,OAAO+sC,WAAW,WAChBgmD,EAAO5qB,SAAQ,IACd,GAEHnoE,OAAOb,sBAAsB,WAC3B4zF,EAAO5qB,SAAQ,SAMvBppE,IAAK,UACLhF,MAAO,WACL,GAAI62E,GAASz1E,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAE5E,KAAyB,IAArB3D,KAAKkgJ,YAAsB,CAC7BlgJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cAEvB/rD,KAAK+/I,iBAAkB,EAGgB,IAAnC//I,KAAKo+C,OAAOD,MAAMC,OAAOhuC,OAAmD,IAApCpQ,KAAKo+C,OAAOD,MAAMC,OAAO/tC,QACnErQ,KAAKo+C,OAAOmQ,UAGdvuD,KAAKo+C,OAAOkqD,cAEZ,IAAIhzF,GAAMtV,KAAKo+C,OAAOqF,aAGlBxjC,EAAIjgB,KAAKo+C,OAAOD,MAAMC,OAAOrtC,YAC7B5F,EAAInL,KAAKo+C,OAAOD,MAAMC,OAAOoD,YAIjC,IAHAlsC,EAAIsuC,UAAU,EAAG,EAAG3jC,EAAG9U,GAGe,IAAlCnL,KAAKo+C,OAAOD,MAAMptC,YACpB,MAIFuE,GAAI+iH,OACJ/iH,EAAI+oH,UAAUr+H,KAAK2Q,KAAKuqG,KAAK/+D,YAAYlnB,EAAGj1B,KAAK2Q,KAAKuqG,KAAK/+D,YAAYttB,GACvEvZ,EAAI9S,MAAMxC,KAAK2Q,KAAKuqG,KAAK14G,MAAOxC,KAAK2Q,KAAKuqG,KAAK14G,OAE/C8S,EAAIkvC,YACJxkD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBAAiBz2C,GACxCA,EAAIwvC,aAEW,IAAXs0B,KACoB,IAAlBp5E,KAAK41E,WAAwC,IAAlB51E,KAAK41E,WAAsD,IAAjC51E,KAAKgO,QAAQmyI,kBACpEngJ,KAAK2gJ,WAAWrrI,KAIE,IAAlBtV,KAAK41E,WAAwC,IAAlB51E,KAAK41E,WAAsD,IAAjC51E,KAAKgO,QAAQoyI,kBACpEpgJ,KAAK4gJ,WAAWtrI,EAAK8jE,GAGvB9jE,EAAIkvC,YACJxkD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,eAAgBz2C,GACvCA,EAAIwvC,YAGJxvC,EAAIkjH,WACW,IAAXp/C,GACF9jE,EAAIsuC,UAAU,EAAG,EAAG3jC,EAAG9U,OAc7B5D,IAAK,eACLhF,MAAO,WACLvC,KAAKo+C,OAAOkqD,cACZ,IAAIhzF,GAAMtV,KAAKo+C,OAAOqF,YACtBnuC,GAAI+iH,OACJ/iH,EAAI+oH,UAAUr+H,KAAK2Q,KAAKuqG,KAAK/+D,YAAYlnB,EAAGj1B,KAAK2Q,KAAKuqG,KAAK/+D,YAAYttB,GACvEvZ,EAAI9S,MAAMxC,KAAK2Q,KAAKuqG,KAAK14G,MAAOxC,KAAK2Q,KAAKuqG,KAAK14G,MAE/C,IAAIy3G,GAAQj6G,KAAK2Q,KAAKspG,MAClBxsE,MAAO,EAGX,KAAK,GAAIuvE,KAAU/C,GACbA,EAAM32G,eAAe05G,KACvBvvE,EAAOwsE,EAAM+C,GACbvvE,EAAKkiF,OAAOr6G,GACZm4B,EAAKiiF,kBAAkBp6G,EAAKm4B,EAAKs4C,UAKrCzwE,GAAIkjH,aAYNjxH,IAAK,aACLhF,MAAO,SAAoB+S,GAgBzB,IAAK,GAfDurI,GAAal9I,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAE5Es2G,EAAQj6G,KAAK2Q,KAAKspG,MAClBC,EAAcl6G,KAAK2Q,KAAKupG,YACxBzsE,MAAO,GACPs4C,KAEA+6D,EAAU9gJ,KAAKo+C,OAAOs/D,aAAczoF,GAD3B,GACuCpG,GADvC,KAETkyH,EAAc/gJ,KAAKo+C,OAAOs/D,aAC5BzoF,EAAGj1B,KAAKo+C,OAAOD,MAAMC,OAAOrtC,YAHjB,GAIX8d,EAAG7uB,KAAKo+C,OAAOD,MAAMC,OAAOoD,aAJjB,KAMTw/F,GAAiB16I,IAAKw6I,EAAQjyH,EAAG3oB,KAAM46I,EAAQ7rH,EAAG0pB,OAAQoiG,EAAYlyH,EAAGzoB,MAAO26I,EAAY9rH,GAGvFlxB,EAAI,EAAGA,EAAIm2G,EAAYt2G,OAAQG,IACtC0pC,EAAOwsE,EAAMC,EAAYn2G,IAErB0pC,EAAKwzG,aACPl7D,EAASlhF,KAAKq1G,EAAYn2G,KAEP,IAAf88I,EACFpzG,EAAKuvD,KAAK1nF,IACmD,IAApDm4B,EAAKyzG,6BAA6BF,GAC3CvzG,EAAKuvD,KAAK1nF,GAEVm4B,EAAKiiF,kBAAkBp6G,EAAKm4B,EAAKs4C,SAMvC,KAAK,GAAInzE,GAAK,EAAGA,EAAKmzE,EAASniF,OAAQgP,IACrC66B,EAAOwsE,EAAMl0B,EAASnzE,IACtB66B,EAAKuvD,KAAK1nF,MAWd/N,IAAK,aACLhF,MAAO,SAAoB+S,GAKzB,IAAK,GAJD6kG,GAAQn6G,KAAK2Q,KAAKwpG,MAClBC,EAAcp6G,KAAK2Q,KAAKypG,YACxBsF,MAAO,GAEF37G,EAAI,EAAGA,EAAIq2G,EAAYx2G,OAAQG,IACtC27G,EAAOvF,EAAMC,EAAYr2G,KACF,IAAnB27G,EAAK4c,WACP5c,EAAK1iB,KAAK1nF,MAYhB/N,IAAK,0BACLhF,MAAO,WACL,GAAsB,mBAAXiG,QAAwB,CACjC,GAAI24I,GAAcl5I,UAAUC,UAAU+f,aACtCjoB,MAAK4zI,iBAAkB,GACiB,GAApCuN,EAAYv8I,QAAQ,YAEtB5E,KAAK4zI,iBAAkB,GACoB,GAAlCuN,EAAYv8I,QAAQ,WAEzBu8I,EAAYv8I,QAAQ,YAAc,IACpC5E,KAAK4zI,iBAAkB,OAI3B5zI,MAAK4zI,iBAAkB,MAItB/3B,IAGTj8G,GAAiB,QAAIi8G,GAIjB,SAAUh8G,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvC1jD,EAAShvC,EAAoB,KAC7B06E,EAAa16E,EAAoB,KAEjCS,EAAOT,EAAoB,GAU3Bo7G,EAAS,WACX,QAASA,GAAO3qG,IACd,EAAIgiF,EAA0B,SAAG3yF,KAAMs7G,GAEvCt7G,KAAK2Q,KAAOA,EACZ3Q,KAAKm5F,WAAa,EAClBn5F,KAAKohJ,gBAAcv9I,GACnB7D,KAAKqhJ,eAAiBrhJ,KAAKq/E,UAAUznB,KAAK53D,MAC1CA,KAAKshJ,eACLthJ,KAAKs5F,aAAc,EACnBt5F,KAAKuhJ,oBAELvhJ,KAAKgO,WACLhO,KAAKguE,gBACHC,YAAY,EACZ59D,OAAQ,OACRD,MAAO,QAETzP,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAE/BhuE,KAAKm7G,qBA6dP,OA1dA,EAAItoB,EAAuB,SAAGyoB,IAC5B/zG,IAAK,qBACLhF,MAAO,WACL,GAAI03F,GAAQj6F,IAGZA,MAAK2Q,KAAKk+D,QAAQ9f,KAAK,SAAU,SAAUjuD,GACvB,IAAdA,EAAIsP,QACN6pF,EAAMtpF,KAAKuqG,KAAK/+D,YAAYlnB,EAAgB,GAAZn0B,EAAIsP,OAEnB,IAAftP,EAAIuP,SACN4pF,EAAMtpF,KAAKuqG,KAAK/+D,YAAYttB,EAAiB,GAAb/tB,EAAIuP,UAGxCrQ,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAWvxC,KAAKuuD,QAAQqJ,KAAK53D,OAClDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,WAC9B0oD,EAAMunD,YAAYlwG,UAClB2oD,EAAM7iC,OAAO9lB,UACb2oD,EAAMwnD,gBAIVl6I,IAAK,aACLhF,MAAO,SAAoByL,GACzB,GAAIutF,GAASv7F,IAEb,QAAgB6D,KAAZmK,EAAuB,CACzB,GAAIV,IAAU,QAAS,SAAU,aACjC3M,GAAK2D,oBAAoBgJ,EAAQtN,KAAKgO,QAASA,IAGjB,IAA5BhO,KAAKgO,QAAQigE,aAEfjuE,KAAKyhJ,WACLzhJ,KAAKohJ,YAAc3hE,YAAY,YAEb,IADF8b,EAAOhtC,WAEnBgtC,EAAO5qF,KAAKk+D,QAAQ9iB,KAAK,mBAE1B,KACH/rD,KAAKqhJ,eAAiBrhJ,KAAKq/E,UAAUznB,KAAK53D,MAC1CW,EAAKiH,iBAAiBY,OAAQ,SAAUxI,KAAKqhJ,oBAIjD95I,IAAK,WACLhF,MAAO,eAEoBsB,KAArB7D,KAAKohJ,aACP1vF,cAAc1xD,KAAKohJ,aAErBzgJ,EAAKyH,oBAAoBI,OAAQ,SAAUxI,KAAKqhJ,gBAChDrhJ,KAAKqhJ,mBAAiBx9I,MAGxB0D,IAAK,YACLhF,MAAO,WACLvC,KAAKuuD,UACLvuD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cASzBxkD,IAAK,kBACLhF,MAAO,WACL,GAAI42F,GAAax1F,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAKm5F,YAEjE,IAArBn5F,KAAKs5F,cACPt5F,KAAKshJ,YAAYI,cAAgB1hJ,KAAKm+C,MAAMC,OAAOhuC,MAAQ+oF,EAC3Dn5F,KAAKshJ,YAAYK,eAAiB3hJ,KAAKm+C,MAAMC,OAAO/tC,OAAS8oF,EAC7Dn5F,KAAKshJ,YAAY9+I,MAAQxC,KAAK2Q,KAAKuqG,KAAK14G,MACxCxC,KAAKshJ,YAAY/wI,SAAWvQ,KAAK09G,aAC/BzoF,EAAG,GAAMj1B,KAAKm+C,MAAMC,OAAOhuC,MAAQ+oF,EACnCtqE,EAAG,GAAM7uB,KAAKm+C,MAAMC,OAAO/tC,OAAS8oF,QAW1C5xF,IAAK,kBACLhF,MAAO,WACL,OAA+BsB,KAA3B7D,KAAKshJ,YAAY9+I,OAAyD,IAAlCxC,KAAKm+C,MAAMC,OAAOrtC,aAAwD,IAAnC/Q,KAAKm+C,MAAMC,OAAOoD,cAA0C,IAApBxhD,KAAKm5F,YAAoBn5F,KAAKshJ,YAAYI,cAAgB,EAAG,CAEtL,GAAIE,GAAa5hJ,KAAKm+C,MAAMC,OAAOhuC,MAAQpQ,KAAKm5F,WAAan5F,KAAKshJ,YAAYI,cAC1EG,EAAc7hJ,KAAKm+C,MAAMC,OAAO/tC,OAASrQ,KAAKm5F,WAAan5F,KAAKshJ,YAAYK,eAC5EG,EAAW9hJ,KAAKshJ,YAAY9+I,KAEd,IAAdo/I,GAAkC,GAAfC,EACrBC,EAAoC,GAAzB9hJ,KAAKshJ,YAAY9+I,OAAeo/I,EAAaC,GACjC,GAAdD,EACTE,EAAW9hJ,KAAKshJ,YAAY9+I,MAAQo/I,EACZ,GAAfC,IACTC,EAAW9hJ,KAAKshJ,YAAY9+I,MAAQq/I,GAGtC7hJ,KAAK2Q,KAAKuqG,KAAK14G,MAAQs/I,CAEvB,IAAIC,GAAoB/hJ,KAAK09G,aAC3BzoF,EAAG,GAAMj1B,KAAKm+C,MAAMC,OAAOrtC,YAC3B8d,EAAG,GAAM7uB,KAAKm+C,MAAMC,OAAOoD,eAGzBwgG,GACF/sH,EAAG8sH,EAAkB9sH,EAAIj1B,KAAKshJ,YAAY/wI,SAAS0kB,EACnDpG,EAAGkzH,EAAkBlzH,EAAI7uB,KAAKshJ,YAAY/wI,SAASse,EAErD7uB,MAAK2Q,KAAKuqG,KAAK/+D,YAAYlnB,GAAK+sH,EAAmB/sH,EAAIj1B,KAAK2Q,KAAKuqG,KAAK14G,MACtExC,KAAK2Q,KAAKuqG,KAAK/+D,YAAYttB,GAAKmzH,EAAmBnzH,EAAI7uB,KAAK2Q,KAAKuqG,KAAK14G,UAI1E+E,IAAK,gBACLhF,MAAO,SAAuBA,GAC5B,GAAqB,gBAAVA,GACT,MAAOA,GAAQ,IACV,IAAqB,gBAAVA,GAAoB,CACpC,IAA4B,IAAxBA,EAAMqC,QAAQ,OAAwC,IAAzBrC,EAAMqC,QAAQ,MAC7C,MAAOrC,EACF,KAA4B,IAAxBA,EAAMqC,QAAQ,KACvB,MAAOrC,GAAQ,KAGnB,KAAM,IAAI8B,OAAM,wDAA0D9B,MAQ5EgF,IAAK,UACLhF,MAAO,WAEL,KAAOvC,KAAK2Q,KAAKylC,UAAUp0C,iBACzBhC,KAAK2Q,KAAKylC,UAAUl0C,YAAYlC,KAAK2Q,KAAKylC,UAAUn0C,WAetD,IAZAjC,KAAKm+C,MAAQjuC,SAASC,cAAc,OACpCnQ,KAAKm+C,MAAMz3C,UAAY,cACvB1G,KAAKm+C,MAAM9xC,MAAMkE,SAAW,WAC5BvQ,KAAKm+C,MAAM9xC,MAAMoE,SAAW,SAC5BzQ,KAAKm+C,MAAM8jG,SAAW,IAItBjiJ,KAAKm+C,MAAMC,OAASluC,SAASC,cAAc,UAC3CnQ,KAAKm+C,MAAMC,OAAO/xC,MAAMkE,SAAW,WACnCvQ,KAAKm+C,MAAMztC,YAAY1Q,KAAKm+C,MAAMC,QAE7Bp+C,KAAKm+C,MAAMC,OAAOqF,WAQrBzjD,KAAKkiJ,iBACLliJ,KAAKsoG,mBAT4B,CACjC,GAAI7nD,GAAWvwC,SAASC,cAAc,MACtCswC,GAASp0C,MAAMnC,MAAQ,MACvBu2C,EAASp0C,MAAMq0C,WAAa,OAC5BD,EAASp0C,MAAMotC,QAAU,OACzBgH,EAASE,UAAY,mDACrB3gD,KAAKm+C,MAAMC,OAAO1tC,YAAY+vC,GAOhCzgD,KAAK2Q,KAAKylC,UAAU1lC,YAAY1Q,KAAKm+C,OAErCn+C,KAAK2Q,KAAKuqG,KAAK14G,MAAQ,EACvBxC,KAAK2Q,KAAKuqG,KAAK/+D,aAAgBlnB,EAAG,GAAMj1B,KAAKm+C,MAAMC,OAAOrtC,YAAa8d,EAAG,GAAM7uB,KAAKm+C,MAAMC,OAAOoD,cAElGxhD,KAAKq+F,iBASP92F,IAAK,cACLhF,MAAO,WACL,GAAIo5F,GAAS37F,SAEO6D,KAAhB7D,KAAKo3D,QACPp3D,KAAKo3D,OAAO9lB,UAEdtxC,KAAKy2F,QACLz2F,KAAK4pG,SAGL5pG,KAAKo3D,OAAS,GAAIloB,GAAOlvC,KAAKm+C,MAAMC,QACpCp+C,KAAKo3D,OAAO3/C,IAAI,SAASsH,KAAMs8C,QAAQ,IAEvCr7D,KAAKo3D,OAAO3/C,IAAI,OAAOsH,KAAMqnB,UAAW,EAAGtG,UAAWoP,EAAOq2B,gBAE7DqV,EAAW/C,QAAQ73E,KAAKo3D,OAAQ,SAAU7uD,GACxCozF,EAAOhrF,KAAK0pG,eAAexiC,QAAQtvE,KAErCvI,KAAKo3D,OAAO7lB,GAAG,MAAO,SAAUhpC,GAC9BozF,EAAOhrF,KAAK0pG,eAAeC,MAAM/xG,KAEnCvI,KAAKo3D,OAAO7lB,GAAG,YAAa,SAAUhpC,GACpCozF,EAAOhrF,KAAK0pG,eAAeE,YAAYhyG,KAEzCvI,KAAKo3D,OAAO7lB,GAAG,QAAS,SAAUhpC,GAChCozF,EAAOhrF,KAAK0pG,eAAeG,OAAOjyG,KAEpCvI,KAAKo3D,OAAO7lB,GAAG,WAAY,SAAUhpC,GACnCozF,EAAOhrF,KAAK0pG,eAAeI,YAAYlyG,KAEzCvI,KAAKo3D,OAAO7lB,GAAG,UAAW,SAAUhpC,GAClCozF,EAAOhrF,KAAK0pG,eAAeK,OAAOnyG,KAEpCvI,KAAKo3D,OAAO7lB,GAAG,SAAU,SAAUhpC,GACjCozF,EAAOhrF,KAAK0pG,eAAeM,UAAUpyG,KAEvCvI,KAAKo3D,OAAO7lB,GAAG,QAAS,SAAUhpC,GAChCozF,EAAOhrF,KAAK0pG,eAAeO,QAAQryG,KAIrCvI,KAAKm+C,MAAMC,OAAOx2C,iBAAiB,aAAc,SAAUW,GACzDozF,EAAOhrF,KAAK0pG,eAAev/B,aAAavyE,KAE1CvI,KAAKm+C,MAAMC,OAAOx2C,iBAAiB,iBAAkB,SAAUW,GAC7DozF,EAAOhrF,KAAK0pG,eAAev/B,aAAavyE,KAG1CvI,KAAKm+C,MAAMC,OAAOx2C,iBAAiB,YAAa,SAAUW,GACxDozF,EAAOhrF,KAAK0pG,eAAeQ,YAAYtyG,KAEzCvI,KAAKm+C,MAAMC,OAAOx2C,iBAAiB,cAAe,SAAUW,GAC1DozF,EAAOhrF,KAAK0pG,eAAeS,UAAUvyG,KAGvCvI,KAAKwhJ,YAAc,GAAItyG,GAAOlvC,KAAKm+C,OACnCy8B,EAAW9C,UAAU93E,KAAKwhJ,YAAa,SAAUj5I,GAC/CozF,EAAOhrF,KAAK0pG,eAAeviC,UAAUvvE,QAazChB,IAAK,UACLhF,MAAO,WACL,GAAI6N,GAAQzM,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAKgO,QAAQoC,MACzFC,EAAS1M,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAKgO,QAAQqC,MAE9FD,GAAQpQ,KAAKmiJ,cAAc/xI,GAC3BC,EAASrQ,KAAKmiJ,cAAc9xI,EAE5B,IAAI+xI,IAAY,EACZC,EAAWriJ,KAAKm+C,MAAMC,OAAOhuC,MAC7BkyI,EAAYtiJ,KAAKm+C,MAAMC,OAAO/tC,OAc9BkyI,EAAgBviJ,KAAKm5F,UAGzB,IAFAn5F,KAAKkiJ,iBAED9xI,GAASpQ,KAAKgO,QAAQoC,OAASC,GAAUrQ,KAAKgO,QAAQqC,QAAUrQ,KAAKm+C,MAAM9xC,MAAM+D,OAASA,GAASpQ,KAAKm+C,MAAM9xC,MAAMgE,QAAUA,EAChIrQ,KAAKwiJ,gBAAgBD,GAErBviJ,KAAKm+C,MAAM9xC,MAAM+D,MAAQA,EACzBpQ,KAAKm+C,MAAM9xC,MAAMgE,OAASA,EAE1BrQ,KAAKm+C,MAAMC,OAAO/xC,MAAM+D,MAAQ,OAChCpQ,KAAKm+C,MAAMC,OAAO/xC,MAAMgE,OAAS,OAEjCrQ,KAAKm+C,MAAMC,OAAOhuC,MAAQ3N,KAAKm6B,MAAM58B,KAAKm+C,MAAMC,OAAOrtC,YAAc/Q,KAAKm5F,YAC1En5F,KAAKm+C,MAAMC,OAAO/tC,OAAS5N,KAAKm6B,MAAM58B,KAAKm+C,MAAMC,OAAOoD,aAAexhD,KAAKm5F,YAE5En5F,KAAKgO,QAAQoC,MAAQA,EACrBpQ,KAAKgO,QAAQqC,OAASA,EAEtBrQ,KAAKuhJ,kBACHtsH,EAAG,GAAMj1B,KAAKm+C,MAAMptC,YACpB8d,EAAG,GAAM7uB,KAAKm+C,MAAMqD,cAGtB4gG,GAAY,MACP,CAIL,GAAIK,GAAWhgJ,KAAKm6B,MAAM58B,KAAKm+C,MAAMC,OAAOrtC,YAAc/Q,KAAKm5F,YAC3DupD,EAAYjgJ,KAAKm6B,MAAM58B,KAAKm+C,MAAMC,OAAOoD,aAAexhD,KAAKm5F,WAG7Dn5F,MAAKm+C,MAAMC,OAAOhuC,QAAUqyI,GAAYziJ,KAAKm+C,MAAMC,OAAO/tC,SAAWqyI,GACvE1iJ,KAAKwiJ,gBAAgBD,GAGnBviJ,KAAKm+C,MAAMC,OAAOhuC,QAAUqyI,IAC9BziJ,KAAKm+C,MAAMC,OAAOhuC,MAAQqyI,EAC1BL,GAAY,GAEVpiJ,KAAKm+C,MAAMC,OAAO/tC,SAAWqyI,IAC/B1iJ,KAAKm+C,MAAMC,OAAO/tC,OAASqyI,EAC3BN,GAAY,GAkBhB,OAdkB,IAAdA,IACFpiJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,UACrB37C,MAAO3N,KAAKm6B,MAAM58B,KAAKm+C,MAAMC,OAAOhuC,MAAQpQ,KAAKm5F,YACjD9oF,OAAQ5N,KAAKm6B,MAAM58B,KAAKm+C,MAAMC,OAAO/tC,OAASrQ,KAAKm5F,YACnDkpD,SAAU5/I,KAAKm6B,MAAMylH,EAAWriJ,KAAKm5F,YACrCmpD,UAAW7/I,KAAKm6B,MAAM0lH,EAAYtiJ,KAAKm5F,cAIzCn5F,KAAK2iJ,mBAIP3iJ,KAAKs5F,aAAc,EACZ8oD,KAGT76I,IAAK,aACLhF,MAAO,WACL,MAAOvC,MAAKm+C,MAAMC,OAAOqF,WAAW,SAUtCl8C,IAAK,uBACLhF,MAAO,WACL,GAAI+S,GAAMtV,KAAKyjD,YACf,QAAY5/C,KAARyR,EACF,KAAM,8BAGR,QAAQ9M,OAAOw/F,kBAAoB,IAAM1yF,EAAI2yF,8BAAgC3yF,EAAI4yF,2BAA6B5yF,EAAI6yF,0BAA4B7yF,EAAI8yF,yBAA2B9yF,EAAI+yF,wBAA0B,MAU7M9gG,IAAK,iBACLhF,MAAO,WACLvC,KAAKm5F,WAAan5F,KAAK4iJ,0BAQzBr7I,IAAK,eACLhF,MAAO,WACL,GAAI+S,GAAMtV,KAAKyjD,YACf,QAAY5/C,KAARyR,EACF,KAAM,8BAGRA,GAAIgzF,aAAatoG,KAAKm5F,WAAY,EAAG,EAAGn5F,KAAKm5F,WAAY,EAAG,MAY9D5xF,IAAK,uBACLhF,MAAO,SAA8B0yB,GACnC,OAAQA,EAAIj1B,KAAK2Q,KAAKuqG,KAAK/+D,YAAYlnB,GAAKj1B,KAAK2Q,KAAKuqG,KAAK14G,SAY7D+E,IAAK,uBACLhF,MAAO,SAA8B0yB,GACnC,MAAOA,GAAIj1B,KAAK2Q,KAAKuqG,KAAK14G,MAAQxC,KAAK2Q,KAAKuqG,KAAK/+D,YAAYlnB,KAY/D1tB,IAAK,uBACLhF,MAAO,SAA8BssB,GACnC,OAAQA,EAAI7uB,KAAK2Q,KAAKuqG,KAAK/+D,YAAYttB,GAAK7uB,KAAK2Q,KAAKuqG,KAAK14G,SAY7D+E,IAAK,uBACLhF,MAAO,SAA8BssB,GACnC,MAAOA,GAAI7uB,KAAK2Q,KAAKuqG,KAAK14G,MAAQxC,KAAK2Q,KAAKuqG,KAAK/+D,YAAYttB,KAW/DtnB,IAAK,cACLhF,MAAO,SAAqBuY,GAC1B,OAASma,EAAGj1B,KAAK6iJ,qBAAqB/nI,EAAIma,GAAIpG,EAAG7uB,KAAK8iJ,qBAAqBhoI,EAAI+T,OAWjFtnB,IAAK,cACLhF,MAAO,SAAqBuY,GAC1B,OAASma,EAAGj1B,KAAK+iJ,qBAAqBjoI,EAAIma,GAAIpG,EAAG7uB,KAAKgjJ,qBAAqBloI,EAAI+T,QAG5EysF,IAGT17G,GAAiB,QAAI07G,GAIjB,SAAUz7G,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAE3BulI,EAAcvlI,EAAoB,KAAc,QAEhDy7G,EAAO,WACT,QAASA,GAAKhrG,EAAMytC,GAClB,GAAI67C,GAAQj6F,MAEZ,EAAI2yF,EAA0B,SAAG3yF,KAAM27G,GAEvC37G,KAAK2Q,KAAOA,EACZ3Q,KAAKo+C,OAASA,EAEdp+C,KAAKijJ,eAAiB,EAAIjjJ,KAAKkjJ,kBAC/BljJ,KAAKmjJ,wBAA0B,iBAC/BnjJ,KAAKojJ,WAAa,EAClBpjJ,KAAKqjJ,YAAc,EACnBrjJ,KAAKsjJ,YAAc,EACnBtjJ,KAAKujJ,kBAAoB,EACzBvjJ,KAAKwjJ,kBAAoB,EACzBxjJ,KAAKyjJ,mBAAiB5/I,GACtB7D,KAAK0jJ,uBAAqB7/I,GAC1B7D,KAAK2jJ,UAAY,EAEjB3jJ,KAAKi2I,iBAAepyI,GAEpB7D,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,MAAOvxC,KAAKwwE,IAAI5Y,KAAK53D,OAC1CA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,oBAAqB,WACxC0oD,EAAMtpF,KAAKk+D,QAAQ9iB,KAAK,oBAE1B/rD,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAcvxC,KAAK8/G,YAAYloD,KAAK53D,OAwS3D,OArSA,EAAI6yF,EAAuB,SAAG8oB,IAC5Bp0G,IAAK,aACLhF,MAAO,WACL,GAAIyL,GAAUrK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAE7E3D,MAAKgO,QAAUA,KAUjBzG,IAAK,MACLhF,MAAO,WACL,GAAIyL,GAAUrK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,IAAOs2G,UAChF2pC,EAAcjgJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAE7E63C,MAAQ,GACRqoG,MAAY,EAKhB,QAJsBhgJ,KAAlBmK,EAAQisG,OAAgD,IAAzBjsG,EAAQisG,MAAMr2G,SAC/CoK,EAAQisG,MAAQj6G,KAAK2Q,KAAKupG,cAGR,IAAhB0pC,EAAsB,CAExB,GAAI3b,GAAkB,CACtB,KAAK,GAAIjrB,KAAUh9G,MAAK2Q,KAAKspG,MAC3B,GAAIj6G,KAAK2Q,KAAKspG,MAAM32G,eAAe05G,GAAS,CAC1C,GAAIvvE,GAAOztC,KAAK2Q,KAAKspG,MAAM+C,IACK,IAA5BvvE,EAAKwgF,qBACPga,GAAmB,GAIzB,GAAIA,EAAkB,GAAMjoI,KAAK2Q,KAAKupG,YAAYt2G,OAEhD,WADA5D,MAAKwwE,IAAIxiE,GAAS,EAIpBwtC,GAAQiqF,EAAYrvD,SAASp2E,KAAK2Q,KAAKspG,MAAOjsG,EAAQisG,MAGtD4pC,GAAY,QADQ7jJ,KAAK2Q,KAAKupG,YAAYt2G,OACJ,QAAU,QAIhDigJ,IADaphJ,KAAKL,IAAIpC,KAAKo+C,OAAOD,MAAMC,OAAOrtC,YAAc,IAAK/Q,KAAKo+C,OAAOD,MAAMC,OAAOoD,aAAe,SAErG,CACLxhD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBACvBvQ,EAAQiqF,EAAYrvD,SAASp2E,KAAK2Q,KAAKspG,MAAOjsG,EAAQisG,MAEtD,IAAInL,GAAgD,IAApCrsG,KAAK0iB,IAAIq2B,EAAMk3F,KAAOl3F,EAAMi3F,MACxCqR,EAAgD,IAApCrhJ,KAAK0iB,IAAIq2B,EAAMg3F,KAAOh3F,EAAM+2F,MAExCwR,EAAa/jJ,KAAKo+C,OAAOD,MAAMC,OAAOrtC,YAAc+9F,EACpDk1C,EAAahkJ,KAAKo+C,OAAOD,MAAMC,OAAOoD,aAAesiG,CAEzDD,GAAYE,GAAcC,EAAaD,EAAaC,EAGlDH,EAAY,EACdA,EAAY,EACW,IAAdA,IACTA,EAAY,EAGd,IAAIhoG,GAAS4pF,EAAYqD,WAAWttF,GAChCyoG,GAAqB1zI,SAAUsrC,EAAQr5C,MAAOqhJ,EAAWtzE,UAAWviE,EAAQuiE,UAChFvwE,MAAKykD,OAAOw/F,MAad18I,IAAK,QACLhF,MAAO,SAAey6G,GACpB,GAAIhvG,GAAUrK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,KAE7E,QAAgCE,KAA5B7D,KAAK2Q,KAAKspG,MAAM+C,GAAuB,CACzC,GAAI8wB,IAAiB74G,EAAGj1B,KAAK2Q,KAAKspG,MAAM+C,GAAQ/nF,EAAGpG,EAAG7uB,KAAK2Q,KAAKspG,MAAM+C,GAAQnuF,EAC9E7gB,GAAQuC,SAAWu9H,EACnB9/H,EAAQk2I,aAAelnC,EAEvBh9G,KAAKykD,OAAOz2C,OAEZwX,SAAQotC,IAAI,SAAWoqD,EAAS,wBAapCz1G,IAAK,SACLhF,MAAO,SAAgByL,GACrB,OAAgBnK,KAAZmK,EAEF,YADAA,UAGqBnK,KAAnBmK,EAAQ6uB,SACV7uB,EAAQ6uB,QAAW5H,EAAG,EAAGpG,EAAG,QAELhrB,KAArBmK,EAAQ6uB,OAAO5H,IACjBjnB,EAAQ6uB,OAAO5H,EAAI,OAEIpxB,KAArBmK,EAAQ6uB,OAAOhO,IACjB7gB,EAAQ6uB,OAAOhO,EAAI,OAEChrB,KAAlBmK,EAAQxL,QACVwL,EAAQxL,MAAQxC,KAAK2Q,KAAKuqG,KAAK14G,WAERqB,KAArBmK,EAAQuC,WACVvC,EAAQuC,SAAWvQ,KAAK6/G,uBAEAh8G,KAAtBmK,EAAQuiE,YACVviE,EAAQuiE,WAAcz0C,SAAU,KAER,IAAtB9tB,EAAQuiE,YACVviE,EAAQuiE,WAAcz0C,SAAU,KAER,IAAtB9tB,EAAQuiE,YACVviE,EAAQuiE,kBAEyB1sE,KAA/BmK,EAAQuiE,UAAUz0C,WACpB9tB,EAAQuiE,UAAUz0C,SAAW,SAEUj4B,KAArCmK,EAAQuiE,UAAUkF,iBACpBznE,EAAQuiE,UAAUkF,eAAiB,iBAGrCz1E,KAAKmkJ,YAAYn2I,MAgBnBzG,IAAK,cACLhF,MAAO,SAAqByL,GAC1B,OAAgBnK,KAAZmK,EAAJ,CAGAhO,KAAKmjJ,wBAA0Bn1I,EAAQuiE,UAAUkF,eAEjDz1E,KAAK8/G,eACkB,IAAnB9xG,EAAQo2I,SACVpkJ,KAAKyjJ,eAAiBz1I,EAAQk2I,aAC9BlkJ,KAAK0jJ,mBAAqB11I,EAAQ6uB,QAIb,GAAnB78B,KAAKojJ,YACPpjJ,KAAKqkJ,mBAAkB,GAGzBrkJ,KAAKqjJ,YAAcrjJ,KAAK2Q,KAAKuqG,KAAK14G,MAClCxC,KAAKujJ,kBAAoBvjJ,KAAK2Q,KAAKuqG,KAAK/+D,YACxCn8C,KAAKsjJ,YAAct1I,EAAQxL,MAI3BxC,KAAK2Q,KAAKuqG,KAAK14G,MAAQxC,KAAKsjJ,WAC5B,IAAIgB,GAAatkJ,KAAKo+C,OAAOs/D,aAAczoF,EAAG,GAAMj1B,KAAKo+C,OAAOD,MAAMC,OAAOrtC,YAAa8d,EAAG,GAAM7uB,KAAKo+C,OAAOD,MAAMC,OAAOoD,eAExHwgG,GACF/sH,EAAGqvH,EAAWrvH,EAAIjnB,EAAQuC,SAAS0kB,EACnCpG,EAAGy1H,EAAWz1H,EAAI7gB,EAAQuC,SAASse,EAErC7uB,MAAKwjJ,mBACHvuH,EAAGj1B,KAAKujJ,kBAAkBtuH,EAAI+sH,EAAmB/sH,EAAIj1B,KAAKsjJ,YAAct1I,EAAQ6uB,OAAO5H,EACvFpG,EAAG7uB,KAAKujJ,kBAAkB10H,EAAImzH,EAAmBnzH,EAAI7uB,KAAKsjJ,YAAct1I,EAAQ6uB,OAAOhO,GAItD,IAA/B7gB,EAAQuiE,UAAUz0C,aACOj4B,IAAvB7D,KAAKyjJ,gBACPzjJ,KAAKi2I,aAAej2I,KAAKukJ,cAAc3sF,KAAK53D,MAC5CA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAcvxC,KAAKi2I,gBAExCj2I,KAAK2Q,KAAKuqG,KAAK14G,MAAQxC,KAAKsjJ,YAC5BtjJ,KAAK2Q,KAAKuqG,KAAK/+D,YAAcn8C,KAAKwjJ,kBAClCxjJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,oBAGzB/rD,KAAKijJ,eAAiB,GAAK,GAAKj1I,EAAQuiE,UAAUz0C,SAAW,OAAU,EAAI,GAC3E97B,KAAKmjJ,wBAA0Bn1I,EAAQuiE,UAAUkF,eAEjDz1E,KAAKi2I,aAAej2I,KAAKqkJ,kBAAkBzsF,KAAK53D,MAChDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAcvxC,KAAKi2I,cACxCj2I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,wBAU3BxkD,IAAK,gBACLhF,MAAO,WACL,GAAIurI,IAAiB74G,EAAGj1B,KAAK2Q,KAAKspG,MAAMj6G,KAAKyjJ,gBAAgBxuH,EAAGpG,EAAG7uB,KAAK2Q,KAAKspG,MAAMj6G,KAAKyjJ,gBAAgB50H,GACpGy1H,EAAatkJ,KAAKo+C,OAAOs/D,aAAczoF,EAAG,GAAMj1B,KAAKo+C,OAAOD,MAAMC,OAAOrtC,YAAa8d,EAAG,GAAM7uB,KAAKo+C,OAAOD,MAAMC,OAAOoD,eACxHwgG,GACF/sH,EAAGqvH,EAAWrvH,EAAI64G,EAAa74G,EAC/BpG,EAAGy1H,EAAWz1H,EAAIi/G,EAAaj/G,GAE7B00H,EAAoBvjJ,KAAK2Q,KAAKuqG,KAAK/+D,YACnCqnG,GACFvuH,EAAGsuH,EAAkBtuH,EAAI+sH,EAAmB/sH,EAAIj1B,KAAK2Q,KAAKuqG,KAAK14G,MAAQxC,KAAK0jJ,mBAAmBzuH,EAC/FpG,EAAG00H,EAAkB10H,EAAImzH,EAAmBnzH,EAAI7uB,KAAK2Q,KAAKuqG,KAAK14G,MAAQxC,KAAK0jJ,mBAAmB70H,EAGjG7uB,MAAK2Q,KAAKuqG,KAAK/+D,YAAcqnG,KAG/Bj8I,IAAK,cACLhF,MAAO,eACuBsB,KAAxB7D,KAAKyjJ,oBAAsD5/I,KAAtB7D,KAAKi2I,eAC5Cj2I,KAAK2Q,KAAKk+D,QAAQn9B,IAAI,aAAc1xC,KAAKi2I,cACzCj2I,KAAKyjJ,mBAAiB5/I,GACtB7D,KAAK0jJ,uBAAqB7/I,OAW9B0D,IAAK,oBACLhF,MAAO,WACL,GAAIiiJ,GAAW7gJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,EAE9E3D,MAAKojJ,YAAcpjJ,KAAKijJ,eACxBjjJ,KAAKojJ,YAA0B,IAAboB,EAAoB,EAAMxkJ,KAAKojJ,UAEjD,IAAIvyF,GAAWlwD,EAAKuO,gBAAgBlP,KAAKmjJ,yBAAyBnjJ,KAAKojJ,WAEvEpjJ,MAAK2Q,KAAKuqG,KAAK14G,MAAQxC,KAAKqjJ,aAAerjJ,KAAKsjJ,YAActjJ,KAAKqjJ,aAAexyF,EAClF7wD,KAAK2Q,KAAKuqG,KAAK/+D,aACblnB,EAAGj1B,KAAKujJ,kBAAkBtuH,GAAKj1B,KAAKwjJ,kBAAkBvuH,EAAIj1B,KAAKujJ,kBAAkBtuH,GAAK47B,EACtFhiC,EAAG7uB,KAAKujJ,kBAAkB10H,GAAK7uB,KAAKwjJ,kBAAkB30H,EAAI7uB,KAAKujJ,kBAAkB10H,GAAKgiC,GAIpF7wD,KAAKojJ,YAAc,IACrBpjJ,KAAK2Q,KAAKk+D,QAAQn9B,IAAI,aAAc1xC,KAAKi2I,cACzCj2I,KAAKojJ,WAAa,MACSv/I,IAAvB7D,KAAKyjJ,iBACPzjJ,KAAKi2I,aAAej2I,KAAKukJ,cAAc3sF,KAAK53D,MAC5CA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAcvxC,KAAKi2I,eAE1Cj2I,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,yBAI3BxkD,IAAK,WACLhF,MAAO,WACL,MAAOvC,MAAK2Q,KAAKuqG,KAAK14G,SAGxB+E,IAAK,kBACLhF,MAAO,WACL,MAAOvC,MAAKo+C,OAAOs/D,aAAczoF,EAAG,GAAMj1B,KAAKo+C,OAAOD,MAAMC,OAAOrtC,YAAa8d,EAAG,GAAM7uB,KAAKo+C,OAAOD,MAAMC,OAAOoD,mBAG/Gm6D,IAGT/7G,GAAiB,QAAI+7G,GAIjB,SAAU97G,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAE3BukJ,EAAoBvkJ,EAAoB,KAAc,QACtD0iF,EAAQ1iF,EAAoB,KAAc,QAE1Cw7G,EAAqB,WACvB,QAASA,GAAmB/qG,EAAMytC,EAAQm9D,IACxC,EAAI5oB,EAA0B,SAAG3yF,KAAM07G,GAEvC17G,KAAK2Q,KAAOA,EACZ3Q,KAAKo+C,OAASA,EACdp+C,KAAKu7G,iBAAmBA,EACxBv7G,KAAK0kJ,kBAAoB,GAAID,GAAkB9zI,EAAMytC,GAGrDp+C,KAAK2Q,KAAK0pG,eAAeC,MAAQt6G,KAAKs6G,MAAM1iD,KAAK53D,MACjDA,KAAK2Q,KAAK0pG,eAAexiC,QAAU73E,KAAK63E,QAAQjgB,KAAK53D,MACrDA,KAAK2Q,KAAK0pG,eAAeE,YAAcv6G,KAAKu6G,YAAY3iD,KAAK53D,MAC7DA,KAAK2Q,KAAK0pG,eAAeG,OAASx6G,KAAKw6G,OAAO5iD,KAAK53D,MACnDA,KAAK2Q,KAAK0pG,eAAeI,YAAcz6G,KAAKy6G,YAAY7iD,KAAK53D,MAC7DA,KAAK2Q,KAAK0pG,eAAeK,OAAS16G,KAAK06G,OAAO9iD,KAAK53D,MACnDA,KAAK2Q,KAAK0pG,eAAeM,UAAY36G,KAAK26G,UAAU/iD,KAAK53D,MACzDA,KAAK2Q,KAAK0pG,eAAev/B,aAAe96E,KAAK86E,aAAaljB,KAAK53D,MAC/DA,KAAK2Q,KAAK0pG,eAAeO,QAAU56G,KAAK46G,QAAQhjD,KAAK53D,MACrDA,KAAK2Q,KAAK0pG,eAAeQ,YAAc76G,KAAK66G,YAAYjjD,KAAK53D,MAC7DA,KAAK2Q,KAAK0pG,eAAeviC,UAAY93E,KAAK83E,UAAUlgB,KAAK53D,MACzDA,KAAK2Q,KAAK0pG,eAAeS,UAAY96G,KAAK86G,UAAUljD,KAAK53D,MAEzDA,KAAK2jJ,UAAY,EACjB3jJ,KAAKy2F,QACLz2F,KAAK4pG,SACL5pG,KAAKyiF,UAAQ5+E,GACb7D,KAAK2kJ,aAAW9gJ,GAChB7D,KAAK4kJ,eAAa/gJ,GAElB7D,KAAK2Q,KAAKoqG,UAAU3jC,WAAap3E,KAAKo3E,WAAWxf,KAAK53D,MAEtDA,KAAKgO,WACLhO,KAAKguE,gBACH62E,WAAW,EACXC,UAAU,EACVj5I,OAAO,EACPk5I,UACE72I,SAAS,EACT82I,OAAS/vH,EAAG,GAAIpG,EAAG,GAAIyoD,KAAM,KAC7B2tE,cAAc,GAEhBC,mBAAmB,EACnBC,aAAc,IACdC,UAAU,GAEZzkJ,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAE/BhuE,KAAKm7G,qBAkrBP,OA/qBA,EAAItoB,EAAuB,SAAG6oB,IAC5Bn0G,IAAK,qBACLhF,MAAO,WACL,GAAI03F,GAAQj6F,IAEZA,MAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,WAC9B+D,aAAa2kD,EAAM2qD,kBACZ3qD,GAAMtpF,KAAKoqG,UAAU3jC,gBAIhC7vE,IAAK,aACLhF,MAAO,SAAoByL,GACzB,OAAgBnK,KAAZmK,EAAuB,CAEzB,GAAIV,IAAU,kBAAmB,kBAAmB,WAAY,cAAe,aAAc,uBAC7F3M,GAAKgE,uBAAuB2I,EAAQtN,KAAKgO,QAASA,GAGlDrN,EAAKmN,aAAa9N,KAAKgO,QAASA,EAAS,YAErCA,EAAQurC,UACV54C,EAAKC,OAAOZ,KAAKgO,QAAQurC,QAASvrC,EAAQurC,SACtCvrC,EAAQurC,QAAQrvC,QAClBlK,KAAKgO,QAAQurC,QAAQrvC,MAAQvJ,EAAKiK,WAAWoD,EAAQurC,QAAQrvC,SAKnElK,KAAK0kJ,kBAAkBxzG,WAAWlxC,KAAKgO,YAWzCzG,IAAK,aACLhF,MAAO,SAAoBw+D,GACzB,OACE9rC,EAAG8rC,EAAM9rC,EAAIt0B,EAAKoF,gBAAgB/F,KAAKo+C,OAAOD,MAAMC,QACpDvvB,EAAGkyC,EAAMlyC,EAAIluB,EAAK0F,eAAerG,KAAKo+C,OAAOD,MAAMC,YAWvD72C,IAAK,UACLhF,MAAO,SAAiBgG,IAClB,GAAI1F,OAAOuC,UAAYpF,KAAK2jJ,UAAY,KAC1C3jJ,KAAKy2F,KAAKtf,QAAUn3E,KAAKo3E,WAAW7uE,EAAMszC,QAC1C77C,KAAKy2F,KAAK4uD,SAAU,EACpBrlJ,KAAK4pG,MAAMpnG,MAAQxC,KAAK2Q,KAAKuqG,KAAK14G,MAElCxC,KAAK2jJ,WAAY,GAAI9gJ,OAAOuC,cAUhCmC,IAAK,QACLhF,MAAO,SAAegG,GACpB,GAAI4uE,GAAUn3E,KAAKo3E,WAAW7uE,EAAMszC,QAChCykC,EAActgF,KAAKu7G,iBAAiBvtG,QAAQsyE,cAAgB/3E,EAAM6zD,gBAAgB,GAAGjR,SAAW5iD,EAAM6zD,gBAAgB,GAAGkrB,QAE7HtnF,MAAKslJ,sBAAsBnuE,EAAS5uE,EAAO+3E,GAC3CtgF,KAAKu7G,iBAAiBgqC,oBAAoB,QAASh9I,EAAO4uE,MAS5D5vE,IAAK,cACLhF,MAAO,SAAqBgG,GAC1B,GAAI4uE,GAAUn3E,KAAKo3E,WAAW7uE,EAAMszC,OACpC77C,MAAKu7G,iBAAiBgqC,oBAAoB,cAAeh9I,EAAO4uE,MASlE5vE,IAAK,SACLhF,MAAO,SAAgBgG,GACrB,GAAI4uE,GAAUn3E,KAAKo3E,WAAW7uE,EAAMszC,QAChCykC,EAActgF,KAAKu7G,iBAAiBvtG,QAAQsyE,WAEhDtgF,MAAKslJ,sBAAsBnuE,EAAS5uE,EAAO+3E,GAE3CtgF,KAAKu7G,iBAAiBgqC,oBAAoB,QAASh9I,EAAO4uE,GAC1Dn3E,KAAKu7G,iBAAiBgqC,oBAAoB,OAAQh9I,EAAO4uE,MAU3D5vE,IAAK,YACLhF,MAAO,SAAmBgG,GACxB,IAAI,GAAI1F,OAAOuC,UAAYpF,KAAK2jJ,UAAY,GAAI,CAC9C,GAAIxsE,GAAUn3E,KAAKo3E,WAAW7uE,EAAMszC,OACpC77C,MAAKu7G,iBAAiBgqC,oBAAoB,UAAWh9I,EAAO4uE,GAE5Dn3E,KAAK2jJ,WAAY,GAAI9gJ,OAAOuC,cAIhCmC,IAAK,YACLhF,MAAO,SAAmBgG,GACxB,GAAI4uE,GAAUn3E,KAAKo3E,YAAaniD,EAAG1sB,EAAM4uC,QAAStoB,EAAGtmB,EAAM+uC,SAC3Dt3C,MAAKu7G,iBAAiBgqC,oBAAoB,YAAah9I,EAAO4uE,MAmBhE5vE,IAAK,wBACLhF,MAAO,SAA+B40E,EAAS5uE,GAC7C,GAAIooB,GAAMhtB,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAErE6hJ,EAAoBxlJ,KAAKu7G,iBAAiBjqC,eAC1CyU,GAAW,CAEbA,IADU,IAARp1D,EACS3wB,KAAKu7G,iBAAiBkqC,wBAAwBtuE,GAE9Cn3E,KAAKu7G,iBAAiBmqC,cAAcvuE,EAEjD,IAAIwuE,GAAmB3lJ,KAAKu7G,iBAAiBjqC,eAGzCs0E,EAAkB5lJ,KAAK6lJ,qBAAqBL,EAAmBG,GAC/DG,EAAgB9lJ,KAAK6lJ,qBAAqBF,EAAkBH,EAE5DI,GAAgBzrC,MAAMv2G,OAAS,IACjC5D,KAAKu7G,iBAAiBgqC,oBAAoB,eAAgBh9I,EAAO4uE,EAASquE,GAC1Ez/D,GAAW,GAGT6/D,EAAgB3rC,MAAMr2G,OAAS,IACjC5D,KAAKu7G,iBAAiBgqC,oBAAoB,eAAgBh9I,EAAO4uE,EAASquE,GAC1Ez/D,GAAW,GAGT+/D,EAAc7rC,MAAMr2G,OAAS,IAC/B5D,KAAKu7G,iBAAiBgqC,oBAAoB,aAAch9I,EAAO4uE,GAC/D4O,GAAW,GAGT+/D,EAAc3rC,MAAMv2G,OAAS,IAC/B5D,KAAKu7G,iBAAiBgqC,oBAAoB,aAAch9I,EAAO4uE,GAC/D4O,GAAW,IAII,IAAbA,GAEF/lF,KAAKu7G,iBAAiBgqC,oBAAoB,SAAUh9I,EAAO4uE,MAc/D5vE,IAAK,uBACLhF,MAAO,SAA8BwjJ,EAAUC,GAC7C,GAAIC,GAAY,SAAmBC,EAAUC,GAG3C,IAAK,GAFDp8I,MAEKhG,EAAI,EAAGA,EAAImiJ,EAAStiJ,OAAQG,IAAK,CACxC,GAAIxB,GAAQ2jJ,EAASniJ,IACa,IAA9BoiJ,EAAUvhJ,QAAQrC,IACpBwH,EAAOlF,KAAKtC,GAIhB,MAAOwH,GAGT,QACEkwG,MAAOgsC,EAAUF,EAAS9rC,MAAO+rC,EAAU/rC,OAC3CE,MAAO8rC,EAAUF,EAAS5rC,MAAO6rC,EAAU7rC,WAY/C5yG,IAAK,cACLhF,MAAO,SAAqBgG,OAEA1E,KAAtB7D,KAAKy2F,KAAKtf,SACZn3E,KAAK63E,QAAQtvE,EAIf,IAAIklC,GAAOztC,KAAKu7G,iBAAiBiE,UAAUx/G,KAAKy2F,KAAKtf,QAOrD,IALAn3E,KAAKy2F,KAAK7gB,UAAW,EACrB51E,KAAKy2F,KAAKplB,aACVrxE,KAAKy2F,KAAKt6C,YAAcx7C,EAAKC,UAAWZ,KAAK2Q,KAAKuqG,KAAK/+D,aACvDn8C,KAAKy2F,KAAKumB,WAASn5G,OAENA,KAAT4pC,IAAiD,IAA3BztC,KAAKgO,QAAQ62I,UAAoB,CACzD7kJ,KAAKy2F,KAAKumB,OAASvvE,EAAKptC,IAEE,IAAtBotC,EAAKwzG,eACPjhJ,KAAKu7G,iBAAiB4B,cACtBn9G,KAAKu7G,iBAAiB6qC,aAAa34G,IAIrCztC,KAAKu7G,iBAAiBgqC,oBAAoB,YAAah9I,EAAOvI,KAAKy2F,KAAKtf,QAExE,IAAI9F,GAAYrxE,KAAKu7G,iBAAiB8qC,aAAapsC,KAEnD,KAAK,GAAI+C,KAAU3rC,GACjB,GAAIA,EAAU/tE,eAAe05G,GAAS,CACpC,GAAIp7G,GAASyvE,EAAU2rC,GACnB5xG,GACF/K,GAAIuB,EAAOvB,GACXotC,KAAM7rC,EAGNqzB,EAAGrzB,EAAOqzB,EACVpG,EAAGjtB,EAAOitB,EACVy3H,OAAQ1kJ,EAAOoM,QAAQg5G,MAAM/xF,EAC7BsxH,OAAQ3kJ,EAAOoM,QAAQg5G,MAAMn4F,EAG/BjtB,GAAOoM,QAAQg5G,MAAM/xF,GAAI,EACzBrzB,EAAOoM,QAAQg5G,MAAMn4F,GAAI,EAEzB7uB,KAAKy2F,KAAKplB,UAAUxsE,KAAKuG,QAK7BpL,MAAKu7G,iBAAiBgqC,oBAAoB,YAAah9I,EAAOvI,KAAKy2F,KAAKtf,YAAStzE,IAAW,MAUhG0D,IAAK,SACLhF,MAAO,SAAgBgG,GACrB,GAAIgzF,GAASv7F,IAEb,KAA0B,IAAtBA,KAAKy2F,KAAK4uD,QAAd,CAKArlJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,aAEvB,IAAIorB,GAAUn3E,KAAKo3E,WAAW7uE,EAAMszC,QAEhCw1B,EAAYrxE,KAAKy2F,KAAKplB,SAC1B,IAAIA,GAAaA,EAAUztE,SAAqC,IAA3B5D,KAAKgO,QAAQ62I,UAAoB,CACpE7kJ,KAAKu7G,iBAAiBgqC,oBAAoB,WAAYh9I,EAAO4uE,EAG7D,IAAIxZ,GAASwZ,EAAQliD,EAAIj1B,KAAKy2F,KAAKtf,QAAQliD,EACvC2oC,EAASuZ,EAAQtoD,EAAI7uB,KAAKy2F,KAAKtf,QAAQtoD,CAG3CwiD,GAAUnqE,QAAQ,SAAUmqE,GAC1B,GAAI5jC,GAAO4jC,EAAU5jC,MAEI,IAArB4jC,EAAUi1E,SACZ74G,EAAKxY,EAAIsmE,EAAOn9C,OAAO2kG,qBAAqBxnD,EAAOn9C,OAAOykG,qBAAqBxxE,EAAUp8C,GAAK0oC,KAGvE,IAArB0T,EAAUk1E,SACZ94G,EAAK5e,EAAI0sE,EAAOn9C,OAAO4kG,qBAAqBznD,EAAOn9C,OAAO0kG,qBAAqBzxE,EAAUxiD,GAAK+uC,MAKlG59D,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,uBAGvB,KAA8B,IAA1B/rD,KAAKgO,QAAQ82I,SAAmB,CAIlC,GAHA9kJ,KAAKu7G,iBAAiBgqC,oBAAoB,WAAYh9I,EAAO4uE,MAAStzE,IAAW,OAGvDA,KAAtB7D,KAAKy2F,KAAKtf,QAEZ,WADAn3E,MAAKy6G,YAAYlyG,EAGnB,IAAI0iD,GAAQksB,EAAQliD,EAAIj1B,KAAKy2F,KAAKtf,QAAQliD,EACtCi2B,EAAQisB,EAAQtoD,EAAI7uB,KAAKy2F,KAAKtf,QAAQtoD,CAE1C7uB,MAAK2Q,KAAKuqG,KAAK/+D,aAAgBlnB,EAAGj1B,KAAKy2F,KAAKt6C,YAAYlnB,EAAIg2B,EAAOp8B,EAAG7uB,KAAKy2F,KAAKt6C,YAAYttB,EAAIq8B,GAChGlrD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,gBAW7BxkD,IAAK,YACLhF,MAAO,SAAmBgG,GACxBvI,KAAKy2F,KAAK7gB,UAAW,CACrB,IAAIvE,GAAYrxE,KAAKy2F,KAAKplB,SACtBA,IAAaA,EAAUztE,QACzBytE,EAAUnqE,QAAQ,SAAUkE,GAE1BA,EAAEqiC,KAAKz/B,QAAQg5G,MAAM/xF,EAAI7pB,EAAEk7I,OAC3Bl7I,EAAEqiC,KAAKz/B,QAAQg5G,MAAMn4F,EAAIzjB,EAAEm7I,SAE7BvmJ,KAAKu7G,iBAAiBgqC,oBAAoB,UAAWh9I,EAAOvI,KAAKo3E,WAAW7uE,EAAMszC,SAClF77C,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,qBAEvB/rD,KAAKu7G,iBAAiBgqC,oBAAoB,UAAWh9I,EAAOvI,KAAKo3E,WAAW7uE,EAAMszC,YAASh4C,IAAW,GACtG7D,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,sBAW3BxkD,IAAK,UACLhF,MAAO,SAAiBgG,GACtB,GAAI4uE,GAAUn3E,KAAKo3E,WAAW7uE,EAAMszC,OAEpC77C,MAAKy2F,KAAK4uD,SAAU,MACQxhJ,KAAxB7D,KAAK4pG,MAAa,QACpB5pG,KAAK4pG,MAAMpnG,MAAQ,EAIrB,IAAIA,GAAQxC,KAAK4pG,MAAMpnG,MAAQ+F,EAAM/F,KACrCxC,MAAKs3E,KAAK90E,EAAO20E,MAYnB5vE,IAAK,OACLhF,MAAO,SAAcC,EAAO20E,GAC1B,IAA8B,IAA1Bn3E,KAAKgO,QAAQo3I,SAAmB,CAClC,GAAIoB,GAAWxmJ,KAAK2Q,KAAKuqG,KAAK14G,KAC1BA,GAAQ,OACVA,EAAQ,MAENA,EAAQ,KACVA,EAAQ,GAGV,IAAIikJ,OAAsB5iJ,OACRA,KAAd7D,KAAKy2F,OACoB,IAAvBz2F,KAAKy2F,KAAK7gB,WACZ6wE,EAAsBzmJ,KAAKo+C,OAAOs/D,YAAY19G,KAAKy2F,KAAKtf;4FAI5D,IAAIh7B,GAAcn8C,KAAK2Q,KAAKuqG,KAAK/+D,YAE7BuqG,EAAYlkJ,EAAQgkJ,EACpBG,GAAM,EAAID,GAAavvE,EAAQliD,EAAIknB,EAAYlnB,EAAIyxH,EACnDE,GAAM,EAAIF,GAAavvE,EAAQtoD,EAAIstB,EAAYttB,EAAI63H,CAKvD,IAHA1mJ,KAAK2Q,KAAKuqG,KAAK14G,MAAQA,EACvBxC,KAAK2Q,KAAKuqG,KAAK/+D,aAAgBlnB,EAAG0xH,EAAI93H,EAAG+3H,OAEd/iJ,IAAvB4iJ,EAAkC,CACpC,GAAII,GAAuB7mJ,KAAKo+C,OAAOq/D,YAAYgpC,EACnDzmJ,MAAKy2F,KAAKtf,QAAQliD,EAAI4xH,EAAqB5xH,EAC3Cj1B,KAAKy2F,KAAKtf,QAAQtoD,EAAIg4H,EAAqBh4H,EAG7C7uB,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,kBAEnBy6F,EAAWhkJ,EACbxC,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,QAAUjsB,UAAW,IAAKt9B,MAAOxC,KAAK2Q,KAAKuqG,KAAK14G,MAAO20E,QAASA,IAEvFn3E,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,QAAUjsB,UAAW,IAAKt9B,MAAOxC,KAAK2Q,KAAKuqG,KAAK14G,MAAO20E,QAASA,QAc7F5vE,IAAK,eACLhF,MAAO,SAAsBgG,GAC3B,IAA8B,IAA1BvI,KAAKgO,QAAQo3I,SAAmB,CAElC,GAAI/jH,GAAQ,CAcZ,IAbI94B,EAAMukD,WAERzrB,EAAQ94B,EAAMukD,WAAa,IAClBvkD,EAAMwkD,SAIf1rB,GAAS94B,EAAMwkD,OAAS,GAMZ,IAAV1rB,EAAa,CAGf,GAAI7+B,GAAQxC,KAAK2Q,KAAKuqG,KAAK14G,MACvB80E,EAAOj2C,EAAQ,EACfA,GAAQ,IACVi2C,GAAe,EAAIA,GAErB90E,GAAS,EAAI80E,CAGb,IAAIH,GAAUn3E,KAAKo3E,YAAaniD,EAAG1sB,EAAM4uC,QAAStoB,EAAGtmB,EAAM+uC,SAG3Dt3C,MAAKs3E,KAAK90E,EAAO20E,GAInB5uE,EAAMD,qBAWVf,IAAK,cACLhF,MAAO,SAAqBgG,GAC1B,GAAIozF,GAAS37F,KAETm3E,EAAUn3E,KAAKo3E,YAAaniD,EAAG1sB,EAAM4uC,QAAStoB,EAAGtmB,EAAM+uC,UACvDwvG,GAAe,CAqCnB,QAlCmBjjJ,KAAf7D,KAAKyiF,SACmB,IAAtBziF,KAAKyiF,MAAMrJ,QACbp5E,KAAK+mJ,gBAAgB5vE,IAIG,IAAtBn3E,KAAKyiF,MAAMrJ,SACb0tE,GAAe,EACf9mJ,KAAKyiF,MAAMiH,YAAYvS,EAAQliD,EAAI,EAAGkiD,EAAQtoD,EAAI,GAClD7uB,KAAKyiF,MAAMrQ,UAK4B,IAAvCpyE,KAAKgO,QAAQ+2I,SAASE,eAA4D,IAAlCjlJ,KAAKgO,QAAQ+2I,SAAS72I,SACxElO,KAAKo+C,OAAOD,MAAMuzB,SAIC,IAAjBo1E,QACsBjjJ,KAApB7D,KAAK4kJ,aACPlzF,cAAc1xD,KAAK4kJ,YACnB5kJ,KAAK4kJ,eAAa/gJ,IAEf7D,KAAKy2F,KAAK7gB,WACb51E,KAAK4kJ,WAAarvG,WAAW,WAC3B,MAAOomD,GAAOqrD,gBAAgB7vE,IAC7Bn3E,KAAKgO,QAAQm3I,iBAOO,IAAvBnlJ,KAAKgO,QAAQnC,MAAgB,CAE/B,GAAI/K,GAAMd,KAAKu7G,iBAAiBiE,UAAUroC,OAC9BtzE,KAAR/C,IACFA,EAAMd,KAAKu7G,iBAAiBkE,UAAUtoC,IAExCn3E,KAAKu7G,iBAAiB0rC,YAAYnmJ,OActCyG,IAAK,kBACLhF,MAAO,SAAyB40E,GAC9B,GAAIliD,GAAIj1B,KAAKo+C,OAAO2kG,qBAAqB5rE,EAAQliD,GAC7CpG,EAAI7uB,KAAKo+C,OAAO4kG,qBAAqB7rE,EAAQtoD,GAC7Cq4H,GACFhhJ,KAAM+uB,EACN3uB,IAAKuoB,EACLzoB,MAAO6uB,EACP0pB,OAAQ9vB,GAGNs4H,MAAuCtjJ,KAAlB7D,KAAK2kJ,aAAyB9gJ,GAAY7D,KAAK2kJ,SAAStkJ,GAC7E+mJ,GAAkB,EAClBC,EAAY,MAGhB,QAAsBxjJ,KAAlB7D,KAAK2kJ,SAAwB,CAM/B,IAAK,GAJDzqC,GAAcl6G,KAAK2Q,KAAKupG,YACxBD,EAAQj6G,KAAK2Q,KAAKspG,MAClBxsE,MAAO,GACP65G,KACKvjJ,EAAI,EAAGA,EAAIm2G,EAAYt2G,OAAQG,IACtC0pC,EAAOwsE,EAAMC,EAAYn2G,KACkB,IAAvC0pC,EAAK85G,kBAAkBL,QACDrjJ,KAApB4pC,EAAK+7C,YACP89D,EAAiBziJ,KAAKq1G,EAAYn2G,GAKpCujJ,GAAiB1jJ,OAAS,IAE5B5D,KAAK2kJ,SAAW1qC,EAAMqtC,EAAiBA,EAAiB1jJ,OAAS,IAEjEwjJ,GAAkB,GAItB,OAAsBvjJ,KAAlB7D,KAAK2kJ,WAA8C,IAApByC,EAA2B,CAM5D,IAAK,GAJDhtC,GAAcp6G,KAAK2Q,KAAKypG,YACxBD,EAAQn6G,KAAK2Q,KAAKwpG,MAClBuF,MAAO,GACP8nC,KACK50I,EAAK,EAAGA,EAAKwnG,EAAYx2G,OAAQgP,IACxC8sG,EAAOvF,EAAMC,EAAYxnG,KACkB,IAAvC8sG,EAAK6nC,kBAAkBL,KACF,IAAnBxnC,EAAK4c,eAA0Cz4H,KAApB67G,EAAKl2B,YAClCg+D,EAAiB3iJ,KAAKu1G,EAAYxnG,GAKpC40I,GAAiB5jJ,OAAS,IAC5B5D,KAAK2kJ,SAAWxqC,EAAMqtC,EAAiBA,EAAiB5jJ,OAAS,IACjEyjJ,EAAY,YAIMxjJ,KAAlB7D,KAAK2kJ,SAEH3kJ,KAAK2kJ,SAAStkJ,KAAO8mJ,QACJtjJ,KAAf7D,KAAKyiF,QACPziF,KAAKyiF,MAAQ,GAAIG,GAAM5iF,KAAKo+C,OAAOD,QAGrCn+C,KAAKyiF,MAAMglE,gBAAkBJ,EAC7BrnJ,KAAKyiF,MAAMilE,cAAgB1nJ,KAAK2kJ,SAAStkJ,GAKzCL,KAAKyiF,MAAMiH,YAAYvS,EAAQliD,EAAI,EAAGkiD,EAAQtoD,EAAI,GAClD7uB,KAAKyiF,MAAMgH,QAAQzpF,KAAK2kJ,SAASn7D,YACjCxpF,KAAKyiF,MAAMrQ,OACXpyE,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,YAAa/rD,KAAK2kJ,SAAStkJ,SAGjCwD,KAAf7D,KAAKyiF,QACPziF,KAAKyiF,MAAM3wE,OACX9R,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,iBAa7BxkD,IAAK,kBACLhF,MAAO,SAAyB40E,GAC9B,GAAI+vE,GAAalnJ,KAAKu7G,iBAAiBosC,yBAAyBxwE,GAE5DywE,GAAa,CACjB,IAAmC,SAA/B5nJ,KAAKyiF,MAAMglE,iBACb,OAAkD5jJ,KAA9C7D,KAAK2Q,KAAKspG,MAAMj6G,KAAKyiF,MAAMilE,iBAKV,KAJnBE,EAAa5nJ,KAAK2Q,KAAKspG,MAAMj6G,KAAKyiF,MAAMilE,eAAeH,kBAAkBL,IAIhD,CACvB,GAAIW,GAAW7nJ,KAAKu7G,iBAAiBiE,UAAUroC,EAC/CywE,OAA0B/jJ,KAAbgkJ,GAAiCA,EAASxnJ,KAAOL,KAAKyiF,MAAMilE,wBAI5B7jJ,KAA7C7D,KAAKu7G,iBAAiBiE,UAAUroC,QACgBtzE,KAA9C7D,KAAK2Q,KAAKwpG,MAAMn6G,KAAKyiF,MAAMilE,iBAC7BE,EAAa5nJ,KAAK2Q,KAAKwpG,MAAMn6G,KAAKyiF,MAAMilE,eAAeH,kBAAkBL,KAK5D,IAAfU,IACF5nJ,KAAK2kJ,aAAW9gJ,GAChB7D,KAAKyiF,MAAM3wE,OACX9R,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,kBAItB2vD,IAGT97G,GAAiB,QAAI87G,GAIjB,SAAU77G,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAKvC1jD,GADOhvC,EAAoB,GAClBA,EAAoB,MAC7B06E,EAAa16E,EAAoB,KACjCivC,EAAWjvC,EAAoB,KAE/BukJ,EAAoB,WACtB,QAASA,GAAkB9zI,EAAMytC,GAC/B,GAAI67C,GAAQj6F,MAEZ,EAAI2yF,EAA0B,SAAG3yF,KAAMykJ,GAEvCzkJ,KAAK2Q,KAAOA,EACZ3Q,KAAKo+C,OAASA,EAEdp+C,KAAK8nJ,cAAe,EACpB9nJ,KAAK+nJ,qBACL/nJ,KAAKgoJ,kBACLhoJ,KAAK2jJ,UAAY,EACjB3jJ,KAAKioJ,WAAY,EAEjBjoJ,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,WAAY,WAC/B0oD,EAAMguD,WAAY,EAAKhuD,EAAMiuD,8BAE/BloJ,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAc,WACjC0oD,EAAMguD,WAAY,EAAMhuD,EAAMiuD,8BAEhCloJ,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,eACP1tC,KAAnBo2F,EAAM9qD,UACR8qD,EAAM9qD,SAASmC,YAInBtxC,KAAKgO,WAqSP,OAlSA,EAAI6kF,EAAuB,SAAG4xD,IAC5Bl9I,IAAK,aACLhF,MAAO,SAAoByL,OACTnK,KAAZmK,IACFhO,KAAKgO,QAAUA,EACfhO,KAAKgY,aAITzQ,IAAK,SACLhF,MAAO,YACkC,IAAnCvC,KAAKgO,QAAQk3I,mBACW,IAAtBllJ,KAAK8nJ,cACP9nJ,KAAKmoJ,0BAEwB,IAAtBnoJ,KAAK8nJ,cACd9nJ,KAAKooJ,kBAGPpoJ,KAAKkoJ,+BAGP3gJ,IAAK,kBACLhF,MAAO,WAEL,GAAqC,GAAjCvC,KAAK+nJ,kBAAkBnkJ,OAAa,CACtC,IAAK,GAAIG,GAAI,EAAGA,EAAI/D,KAAK+nJ,kBAAkBnkJ,OAAQG,IACjD/D,KAAK+nJ,kBAAkBhkJ,GAAGutC,SAE5BtxC,MAAK+nJ,qBAIH/nJ,KAAKqoJ,eAAiBroJ,KAAKqoJ,cAAuB,SAAKroJ,KAAKqoJ,cAAuB,QAAEv/I,YACvF9I,KAAKqoJ,cAAuB,QAAEv/I,WAAW5G,YAAYlC,KAAKqoJ,cAAuB,SAGnFroJ,KAAK8nJ,cAAe,KAatBvgJ,IAAK,yBACLhF,MAAO,WACL,GAAIg5F,GAASv7F,IAEbA,MAAKooJ,kBAELpoJ,KAAKqoJ,gBACL,IAAIC,IAAkB,KAAM,OAAQ,OAAQ,QAAS,SAAU,UAAW,eACtEC,GAAwB,UAAW,YAAa,YAAa,aAAc,UAAW,WAAY,OAEtGvoJ,MAAKqoJ,cAAuB,QAAIn4I,SAASC,cAAc,OACvDnQ,KAAKqoJ,cAAuB,QAAE3hJ,UAAY,iBAC1C1G,KAAKo+C,OAAOD,MAAMztC,YAAY1Q,KAAKqoJ,cAAuB,QAE1D,KAAK,GAAItkJ,GAAI,EAAGA,EAAIukJ,EAAe1kJ,OAAQG,IAAK,CAC9C/D,KAAKqoJ,cAAcC,EAAevkJ,IAAMmM,SAASC,cAAc,OAC/DnQ,KAAKqoJ,cAAcC,EAAevkJ,IAAI2C,UAAY,kBAAoB4hJ,EAAevkJ,GACrF/D,KAAKqoJ,cAAuB,QAAE33I,YAAY1Q,KAAKqoJ,cAAcC,EAAevkJ,IAE5E,IAAIqzD,GAAS,GAAIloB,GAAOlvC,KAAKqoJ,cAAcC,EAAevkJ,IAC1B,UAA5BwkJ,EAAqBxkJ,GACvB62E,EAAW/C,QAAQzgB,EAAQp3D,KAAKwoJ,KAAK5wF,KAAK53D,OAE1C46E,EAAW/C,QAAQzgB,EAAQp3D,KAAKyoJ,aAAa7wF,KAAK53D,KAAMuoJ,EAAqBxkJ,KAG/E/D,KAAK+nJ,kBAAkBljJ,KAAKuyD,GAK9B,GAAIoqF,GAAc,GAAItyG,GAAOlvC,KAAKo+C,OAAOD,MACzCy8B,GAAW9C,UAAU0pE,EAAa,WAChCjmD,EAAOmtD,kBAET1oJ,KAAK+nJ,kBAAkBljJ,KAAK28I,GAE5BxhJ,KAAK8nJ,cAAe,KAGtBvgJ,IAAK,eACLhF,MAAO,SAAsBuF,OACSjE,KAAhC7D,KAAKgoJ,eAAelgJ,KACtB9H,KAAKgoJ,eAAelgJ,GAAU9H,KAAK8H,GAAQ8vD,KAAK53D,MAChDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAcvxC,KAAKgoJ,eAAelgJ,IACvD9H,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,uBAI3BxkD,IAAK,mBACLhF,MAAO,SAA0BuF,OACKjE,KAAhC7D,KAAKgoJ,eAAelgJ,KACtB9H,KAAK2Q,KAAKk+D,QAAQn9B,IAAI,aAAc1xC,KAAKgoJ,eAAelgJ,IACxD9H,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,wBAChB/rD,MAAKgoJ,eAAelgJ,OAW/BP,IAAK,OACLhF,MAAO,YACD,GAAIM,OAAOuC,UAAYpF,KAAK2jJ,UAAY,MAE1C3jJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,OAASjwB,SAAU,MAC1C97B,KAAK2jJ,WAAY,GAAI9gJ,OAAOuC,cAWhCmC,IAAK,gBACLhF,MAAO,WACL,IAAK,GAAIomJ,KAAe3oJ,MAAKgoJ,eACvBhoJ,KAAKgoJ,eAAe1kJ,eAAeqlJ,KACrC3oJ,KAAK2Q,KAAKk+D,QAAQn9B,IAAI,aAAc1xC,KAAKgoJ,eAAeW,IACxD3oJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,kBAG3B/rD,MAAKgoJ,qBAGPzgJ,IAAK,UACLhF,MAAO,WACLvC,KAAK2Q,KAAKuqG,KAAK/+D,YAAYttB,GAAK7uB,KAAKgO,QAAQ+2I,SAASC,MAAMn2H,KAG9DtnB,IAAK,YACLhF,MAAO,WACLvC,KAAK2Q,KAAKuqG,KAAK/+D,YAAYttB,GAAK7uB,KAAKgO,QAAQ+2I,SAASC,MAAMn2H,KAG9DtnB,IAAK,YACLhF,MAAO,WACLvC,KAAK2Q,KAAKuqG,KAAK/+D,YAAYlnB,GAAKj1B,KAAKgO,QAAQ+2I,SAASC,MAAM/vH,KAG9D1tB,IAAK,aACLhF,MAAO,WACLvC,KAAK2Q,KAAKuqG,KAAK/+D,YAAYlnB,GAAKj1B,KAAKgO,QAAQ+2I,SAASC,MAAM/vH,KAG9D1tB,IAAK,UACLhF,MAAO,WACL,GAAIikJ,GAAWxmJ,KAAK2Q,KAAKuqG,KAAK14G,MAC1BA,EAAQxC,KAAK2Q,KAAKuqG,KAAK14G,OAAS,EAAIxC,KAAKgO,QAAQ+2I,SAASC,MAAM1tE,MAChEn7B,EAAcn8C,KAAK2Q,KAAKuqG,KAAK/+D,YAC7BuqG,EAAYlkJ,EAAQgkJ,EACpBG,GAAM,EAAID,GAAa1mJ,KAAKo+C,OAAOmjG,iBAAiBtsH,EAAIknB,EAAYlnB,EAAIyxH,EACxEE,GAAM,EAAIF,GAAa1mJ,KAAKo+C,OAAOmjG,iBAAiB1yH,EAAIstB,EAAYttB,EAAI63H,CAE5E1mJ,MAAK2Q,KAAKuqG,KAAK14G,MAAQA,EACvBxC,KAAK2Q,KAAKuqG,KAAK/+D,aAAgBlnB,EAAG0xH,EAAI93H,EAAG+3H,GACzC5mJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,QAAUjsB,UAAW,IAAKt9B,MAAOxC,KAAK2Q,KAAKuqG,KAAK14G,MAAO20E,QAAS,UAGzF5vE,IAAK,WACLhF,MAAO,WACL,GAAIikJ,GAAWxmJ,KAAK2Q,KAAKuqG,KAAK14G,MAC1BA,EAAQxC,KAAK2Q,KAAKuqG,KAAK14G,OAAS,EAAIxC,KAAKgO,QAAQ+2I,SAASC,MAAM1tE,MAChEn7B,EAAcn8C,KAAK2Q,KAAKuqG,KAAK/+D,YAC7BuqG,EAAYlkJ,EAAQgkJ,EACpBG,GAAM,EAAID,GAAa1mJ,KAAKo+C,OAAOmjG,iBAAiBtsH,EAAIknB,EAAYlnB,EAAIyxH,EACxEE,GAAM,EAAIF,GAAa1mJ,KAAKo+C,OAAOmjG,iBAAiB1yH,EAAIstB,EAAYttB,EAAI63H,CAE5E1mJ,MAAK2Q,KAAKuqG,KAAK14G,MAAQA,EACvBxC,KAAK2Q,KAAKuqG,KAAK/+D,aAAgBlnB,EAAG0xH,EAAI93H,EAAG+3H,GACzC5mJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,QAAUjsB,UAAW,IAAKt9B,MAAOxC,KAAK2Q,KAAKuqG,KAAK14G,MAAO20E,QAAS,UAQzF5vE,IAAK,4BACLhF,MAAO,WACL,GAAIo5F,GAAS37F,SAES6D,KAAlB7D,KAAKmvC,UACPnvC,KAAKmvC,SAASmC,WAGsB,IAAlCtxC,KAAKgO,QAAQ+2I,SAAS72I,WACmB,IAAvClO,KAAKgO,QAAQ+2I,SAASE,aACxBjlJ,KAAKmvC,SAAWA,GAAWiH,UAAW5tC,OAAQF,gBAAgB,IAE9DtI,KAAKmvC,SAAWA,GAAWiH,UAAWp2C,KAAKo+C,OAAOD,MAAO71C,gBAAgB,IAG3EtI,KAAKmvC,SAAS+5B,SAES,IAAnBlpE,KAAKioJ,YACPjoJ,KAAKmvC,SAASyoB,KAAK,KAAM,WACvB+jC,EAAO8sD,aAAa,YACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,OAAQ,WACzB+jC,EAAO8sD,aAAa,cACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,OAAQ,WACzB+jC,EAAO8sD,aAAa,cACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,QAAS,WAC1B+jC,EAAO8sD,aAAa,eACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,IAAK,WACtB+jC,EAAO8sD,aAAa,YACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,OAAQ,WACzB+jC,EAAO8sD,aAAa,YACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,OAAQ,WACzB+jC,EAAO8sD,aAAa,aACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,IAAK,WACtB+jC,EAAO8sD,aAAa,aACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,IAAK,WACtB+jC,EAAO8sD,aAAa,aACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,IAAK,WACtB+jC,EAAO8sD,aAAa,YACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,SAAU,WAC3B+jC,EAAO8sD,aAAa,YACnB,WACHzoJ,KAAKmvC,SAASyoB,KAAK,WAAY,WAC7B+jC,EAAO8sD,aAAa,aACnB,WAEHzoJ,KAAKmvC,SAASyoB,KAAK,KAAM,WACvB+jC,EAAOitD,iBAAiB,YACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,OAAQ,WACzB+jC,EAAOitD,iBAAiB,cACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,OAAQ,WACzB+jC,EAAOitD,iBAAiB,cACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,QAAS,WAC1B+jC,EAAOitD,iBAAiB,eACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,IAAK,WACtB+jC,EAAOitD,iBAAiB,YACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,OAAQ,WACzB+jC,EAAOitD,iBAAiB,YACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,OAAQ,WACzB+jC,EAAOitD,iBAAiB,aACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,IAAK,WACtB+jC,EAAOitD,iBAAiB,aACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,IAAK,WACtB+jC,EAAOitD,iBAAiB,aACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,IAAK,WACtB+jC,EAAOitD,iBAAiB,YACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,SAAU,WAC3B+jC,EAAOitD,iBAAiB,YACvB,SACH5oJ,KAAKmvC,SAASyoB,KAAK,WAAY,WAC7B+jC,EAAOitD,iBAAiB,aACvB,eAKJnE,IAGT7kJ,GAAiB,QAAI6kJ,GAIjB,SAAU5kJ,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCq3B,EAAO/pH,EAAoB,KAAc,QACzCw6H,EAAOx6H,EAAoB,KAAc,QAEzCS,EAAOT,EAAoB,GAE3Bs7G,EAAmB,WACrB,QAASA,GAAiB7qG,EAAMytC,GAC9B,GAAI67C,GAAQj6F,MAEZ,EAAI2yF,EAA0B,SAAG3yF,KAAMw7G,GAEvCx7G,KAAK2Q,KAAOA,EACZ3Q,KAAKo+C,OAASA,EACdp+C,KAAKqmJ,cAAiBpsC,SAAWE,UACjCn6G,KAAK6oJ,UAAa5uC,SAAWE,UAE7Bn6G,KAAKgO,WACLhO,KAAKguE,gBACHsS,aAAa,EACbD,YAAY,EACZyoE,sBAAsB,EACtBC,qBAAqB,GAEvBpoJ,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAE/BhuE,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgB,WACnC0oD,EAAM+uD,oBAqvBV,OAjvBA,EAAIn2D,EAAuB,SAAG2oB,IAC5Bj0G,IAAK,aACLhF,MAAO,SAAoByL,GACzB,OAAgBnK,KAAZmK,EAAuB,CACzB,GAAIV,IAAU,cAAe,sBAAuB,aAAc,uBAClE3M,GAAK2D,oBAAoBgJ,EAAQtN,KAAKgO,QAASA,OAYnDzG,IAAK,gBACLhF,MAAO,SAAuB40E,GAC5B,GAAI4O,IAAW,CACf,KAAgC,IAA5B/lF,KAAKgO,QAAQqyE,WAAqB,CACpC,GAAIv/E,GAAMd,KAAKw/G,UAAUroC,IAAYn3E,KAAKy/G,UAAUtoC,EAGpDn3E,MAAKm9G,kBAEOt5G,KAAR/C,IACFilF,EAAW/lF,KAAKomJ,aAAatlJ,IAE/Bd,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,kBAEzB,MAAOg6B,MAGTx+E,IAAK,0BACLhF,MAAO,SAAiC40E,GACtC,GAAI8xE,IAAmB,CACvB,KAAgC,IAA5BjpJ,KAAKgO,QAAQqyE,WAAqB,CACpC,GAAIv/E,GAAMd,KAAKw/G,UAAUroC,IAAYn3E,KAAKy/G,UAAUtoC,OAExCtzE,KAAR/C,IACFmoJ,GAAmB,GACM,IAArBnoJ,EAAImgJ,aACNjhJ,KAAKkpJ,eAAepoJ,GAEpBd,KAAKomJ,aAAatlJ,GAGpBd,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBAG3B,MAAOk9F,MAGT1hJ,IAAK,sBACLhF,MAAO,SAA6B+1D,EAAW/vD,EAAO4uE,EAASkS,GAC7D,GAAI8/D,GAAiBxlJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAEhFw1D,MAAa,EAEfA,IADqB,IAAnBgwF,GACalvC,SAAWE,UAEbn6G,KAAKsxE,eAEpBnY,EAAoB,SAClBiwF,KAAOn0H,EAAGkiD,EAAQliD,EAAGpG,EAAGsoD,EAAQtoD,GAChCuvB,OAAQp+C,KAAKo+C,OAAOs/D,YAAYvmC,IAElChe,EAAkB,MAAI5wD,MAED1E,KAAjBwlF,IACFlwB,EAA8B,kBAAIkwB,GAEpCrpF,KAAK2Q,KAAKk+D,QAAQ9iB,KAAKuM,EAAWa,MAGpC5xD,IAAK,eACLhF,MAAO,SAAsBzB,GAC3B,GAAIuoJ,GAAiB1lJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK3D,KAAKgO,QAAQ86I,oBAEtG,YAAYjlJ,KAAR/C,IACEA,YAAempH,KACM,IAAnBo/B,GACFrpJ,KAAKspJ,sBAAsBxoJ,GAG/BA,EAAIgjF,SACJ9jF,KAAKupJ,gBAAgBzoJ,IACd,MAKXyG,IAAK,iBACLhF,MAAO,SAAwBzB,IACJ,IAArBA,EAAImgJ,eACNngJ,EAAIilF,UAAW,EACf/lF,KAAKwpJ,qBAAqB1oJ,OAY9ByG,IAAK,8BACLhF,MAAO,SAAqCX,GAG1C,IAAK,GAFD0lJ,MACArtC,EAAQj6G,KAAK2Q,KAAKspG,MACbl2G,EAAI,EAAGA,EAAI/D,KAAK2Q,KAAKupG,YAAYt2G,OAAQG,IAAK,CACrD,GAAIi5G,GAASh9G,KAAK2Q,KAAKupG,YAAYn2G,EAC/Bk2G,GAAM+C,GAAQuqC,kBAAkB3lJ,IAClC0lJ,EAAiBziJ,KAAKm4G,GAG1B,MAAOsqC,MAYT//I,IAAK,2BACLhF,MAAO,SAAkC40E,GACvC,GAAIsyE,GAAYzpJ,KAAKo+C,OAAOs/D,YAAYvmC,EACxC,QACEjxE,KAAMujJ,EAAUx0H,EAAI,EACpB3uB,IAAKmjJ,EAAU56H,EAAI,EACnBzoB,MAAOqjJ,EAAUx0H,EAAI,EACrB0pB,OAAQ8qG,EAAU56H,EAAI,MAY1BtnB,IAAK,YACLhF,MAAO,SAAmB40E,GACxB,GAAIuyE,KAAa/lJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,GAG5EgmJ,EAAiB3pJ,KAAK2nJ,yBAAyBxwE,GAC/CmwE,EAAmBtnJ,KAAK4pJ,4BAA4BD,EAGxD,OAAIrC,GAAiB1jJ,OAAS,GACT,IAAf8lJ,EACK1pJ,KAAK2Q,KAAKspG,MAAMqtC,EAAiBA,EAAiB1jJ,OAAS,IAE3D0jJ,EAAiBA,EAAiB1jJ,OAAS,OAGpD,MAYJ2D,IAAK,2BACLhF,MAAO,SAAkCX,EAAQ4lJ,GAE/C,IAAK,GADDrtC,GAAQn6G,KAAK2Q,KAAKwpG,MACbp2G,EAAI,EAAGA,EAAI/D,KAAK2Q,KAAKypG,YAAYx2G,OAAQG,IAAK,CACrD,GAAIk5G,GAASj9G,KAAK2Q,KAAKypG,YAAYr2G,EAC/Bo2G,GAAM8C,GAAQsqC,kBAAkB3lJ,IAClC4lJ,EAAiB3iJ,KAAKo4G,OAa5B11G,IAAK,8BACLhF,MAAO,SAAqCX,GAC1C,GAAI4lJ,KAEJ,OADAxnJ,MAAK6pJ,yBAAyBjoJ,EAAQ4lJ,GAC/BA,KAWTjgJ,IAAK,YACLhF,MAAO,SAAmB40E,GAQxB,IAAK,GAPD2yE,KAAanmJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,GAG5E8lJ,EAAYzpJ,KAAKo+C,OAAOs/D,YAAYvmC,GACpC4yE,EAAU,GACVC,EAAkB,KAClB7vC,EAAQn6G,KAAK2Q,KAAKwpG,MACbp2G,EAAI,EAAGA,EAAI/D,KAAK2Q,KAAKypG,YAAYx2G,OAAQG,IAAK,CACrD,GAAIk5G,GAASj9G,KAAK2Q,KAAKypG,YAAYr2G,GAC/B27G,EAAOvF,EAAM8C,EACjB,IAAIyC,EAAK4c,UAAW,CAClB,GAAIkC,GAAQ9e,EAAK/7F,KAAKsR,EAClBwpG,EAAQ/e,EAAK/7F,KAAKkL,EAClB6vG,EAAMhf,EAAKh8F,GAAGuR,EACd0pG,EAAMjf,EAAKh8F,GAAGmL,EACd+vB,EAAO8gE,EAAK2c,SAASyC,kBAAkBN,EAAOC,EAAOC,EAAKC,EAAK8qB,EAAUx0H,EAAGw0H,EAAU56H,EACtF+vB,GAAOmrG,IACTC,EAAkB/sC,EAClB8sC,EAAUnrG,IAIhB,MAAwB,QAApBorG,GACiB,IAAfF,EACK9pJ,KAAK2Q,KAAKwpG,MAAM6vC,GAEhBA,MAGT,MAYJziJ,IAAK,kBACLhF,MAAO,SAAyBzB,GAC1BA,YAAempH,GACjBjqH,KAAKqmJ,aAAapsC,MAAMn5G,EAAIT,IAAMS,EAElCd,KAAKqmJ,aAAalsC,MAAMr5G,EAAIT,IAAMS,KAYtCyG,IAAK,cACLhF,MAAO,SAAqBzB,GACtBA,YAAempH,GACjBjqH,KAAK6oJ,SAAS5uC,MAAMn5G,EAAIT,IAAMS,EAE9Bd,KAAK6oJ,SAAS1uC,MAAMr5G,EAAIT,IAAMS,KAYlCyG,IAAK,uBACLhF,MAAO,SAA8BzB,GAC/BA,YAAempH,UACVjqH,MAAKqmJ,aAAapsC,MAAMn5G,EAAIT,IACnCL,KAAKiqJ,wBAAwBnpJ,UAEtBd,MAAKqmJ,aAAalsC,MAAMr5G,EAAIT,OASvCkH,IAAK,cACLhF,MAAO,WACL,IAAK,GAAIy6G,KAAUh9G,MAAKqmJ,aAAapsC,MAC/Bj6G,KAAKqmJ,aAAapsC,MAAM32G,eAAe05G,IACzCh9G,KAAKqmJ,aAAapsC,MAAM+C,GAAQn5B,UAGpC,KAAK,GAAIo5B,KAAUj9G,MAAKqmJ,aAAalsC,MAC/Bn6G,KAAKqmJ,aAAalsC,MAAM72G,eAAe25G,IACzCj9G,KAAKqmJ,aAAalsC,MAAM8C,GAAQp5B,UAIpC7jF,MAAKqmJ,cAAiBpsC,SAAWE,aAWnC5yG,IAAK,wBACLhF,MAAO,WACL,GAAIgyC,GAAQ,CACZ,KAAK,GAAIyoE,KAAUh9G,MAAKqmJ,aAAapsC,MAC/Bj6G,KAAKqmJ,aAAapsC,MAAM32G,eAAe05G,KACzCzoE,GAAS,EAGb,OAAOA,MAWThtC,IAAK,mBACLhF,MAAO,WACL,IAAK,GAAIy6G,KAAUh9G,MAAKqmJ,aAAapsC,MACnC,GAAIj6G,KAAKqmJ,aAAapsC,MAAM32G,eAAe05G,GACzC,MAAOh9G,MAAKqmJ,aAAapsC,MAAM+C,MAcrCz1G,IAAK,mBACLhF,MAAO,WACL,IAAK,GAAI06G,KAAUj9G,MAAKqmJ,aAAalsC,MACnC,GAAIn6G,KAAKqmJ,aAAalsC,MAAM72G,eAAe25G,GACzC,MAAOj9G,MAAKqmJ,aAAalsC,MAAM8C,MAcrC11G,IAAK,wBACLhF,MAAO,WACL,GAAIgyC,GAAQ,CACZ,KAAK,GAAI0oE,KAAUj9G,MAAKqmJ,aAAalsC,MAC/Bn6G,KAAKqmJ,aAAalsC,MAAM72G,eAAe25G,KACzC1oE,GAAS,EAGb,OAAOA,MAWThtC,IAAK,0BACLhF,MAAO,WACL,GAAIgyC,GAAQ,CACZ,KAAK,GAAIyoE,KAAUh9G,MAAKqmJ,aAAapsC,MAC/Bj6G,KAAKqmJ,aAAapsC,MAAM32G,eAAe05G,KACzCzoE,GAAS,EAGb,KAAK,GAAI0oE,KAAUj9G,MAAKqmJ,aAAalsC,MAC/Bn6G,KAAKqmJ,aAAalsC,MAAM72G,eAAe25G,KACzC1oE,GAAS,EAGb,OAAOA,MAWThtC,IAAK,oBACLhF,MAAO,WACL,IAAK,GAAIy6G,KAAUh9G,MAAKqmJ,aAAapsC,MACnC,GAAIj6G,KAAKqmJ,aAAapsC,MAAM32G,eAAe05G,GACzC,OAAO,CAGX,KAAK,GAAIC,KAAUj9G,MAAKqmJ,aAAalsC,MACnC,GAAIn6G,KAAKqmJ,aAAalsC,MAAM72G,eAAe25G,GACzC,OAAO,CAGX,QAAO,KAWT11G,IAAK,sBACLhF,MAAO,WACL,IAAK,GAAIy6G,KAAUh9G,MAAKqmJ,aAAapsC,MACnC,GAAIj6G,KAAKqmJ,aAAapsC,MAAM32G,eAAe05G,IACrCh9G,KAAKqmJ,aAAapsC,MAAM+C,GAAQktC,YAAc,EAChD,OAAO,CAIb,QAAO,KAWT3iJ,IAAK,wBACLhF,MAAO,SAA+BkrC,GACpC,IAAK,GAAI1pC,GAAI,EAAGA,EAAI0pC,EAAK0sE,MAAMv2G,OAAQG,IAAK,CAC1C,GAAI27G,GAAOjyE,EAAK0sE,MAAMp2G,EACtB27G,GAAK57B,SACL9jF,KAAKupJ,gBAAgB7pC,OAYzBn4G,IAAK,uBACLhF,MAAO,SAA8BkrC,GACnC,IAAK,GAAI1pC,GAAI,EAAGA,EAAI0pC,EAAK0sE,MAAMv2G,OAAQG,IAAK,CAC1C,GAAI27G,GAAOjyE,EAAK0sE,MAAMp2G,EACtB27G,GAAK7zG,OAAQ,EACb7L,KAAKmqJ,YAAYzqC,OAYrBn4G,IAAK,0BACLhF,MAAO,SAAiCkrC,GACtC,IAAK,GAAI1pC,GAAI,EAAGA,EAAI0pC,EAAK0sE,MAAMv2G,OAAQG,IAAK,CAC1C,GAAI27G,GAAOjyE,EAAK0sE,MAAMp2G,EACtB27G,GAAK77B,WACL7jF,KAAKwpJ,qBAAqB9pC,OAa9Bn4G,IAAK,aACLhF,MAAO,SAAoBX,IACJ,IAAjBA,EAAOiK,QACTjK,EAAOiK,OAAQ,EACXjK,YAAkBqoH,GACpBjqH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,YAActe,KAAM7rC,EAAOvB,KAElDL,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,YAAc2zD,KAAM99G,EAAOvB,SAcxDkH,IAAK,cACLhF,MAAO,SAAqBX,GAC1B,GAAIwoJ,IAAe,CAEnB,KAAK,GAAIptC,KAAUh9G,MAAK6oJ,SAAS5uC,MAC3Bj6G,KAAK6oJ,SAAS5uC,MAAM32G,eAAe05G,SACtBn5G,KAAXjC,GAAwBA,YAAkBqoH,IAAQroH,EAAOvB,IAAM28G,GAAUp7G,YAAkB84H,MAC7F16H,KAAKqqJ,WAAWrqJ,KAAK6oJ,SAAS5uC,MAAM+C,UAC7Bh9G,MAAK6oJ,SAAS5uC,MAAM+C,GAC3BotC,GAAe,EAMrB,KAAK,GAAIntC,KAAUj9G,MAAK6oJ,SAAS1uC,MAC3Bn6G,KAAK6oJ,SAAS1uC,MAAM72G,eAAe25G,MAGhB,IAAjBmtC,GACFpqJ,KAAK6oJ,SAAS1uC,MAAM8C,GAAQpxG,OAAQ,QAC7B7L,MAAK6oJ,SAAS1uC,MAAM8C,SAITp5G,KAAXjC,GAAwBA,YAAkB84H,IAAQ94H,EAAOvB,IAAM48G,GAAUr7G,YAAkBqoH,KAASroH,EAAOiK,SAChH7L,KAAKqqJ,WAAWrqJ,KAAK6oJ,SAAS1uC,MAAM8C,UAC7Bj9G,MAAK6oJ,SAAS1uC,MAAM8C,GAC3BmtC,GAAe,QAKRvmJ,KAAXjC,KACmB,IAAjBA,EAAOiK,QACTjK,EAAOiK,OAAQ,EACf7L,KAAKmqJ,YAAYvoJ,GACjBwoJ,GAAe,EACXxoJ,YAAkBqoH,GACpBjqH,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,aAAete,KAAM7rC,EAAOvB,KAEnDL,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,aAAe2zD,KAAM99G,EAAOvB,MAGnDuB,YAAkBqoH,KAA6C,IAArCjqH,KAAKgO,QAAQ+6I,qBACzC/oJ,KAAKsqJ,qBAAqB1oJ,KAIT,IAAjBwoJ,GACFpqJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,qBAW3BxkD,IAAK,eACLhF,MAAO,WAGL,OAAS03G,MAFKj6G,KAAKs/G,mBAEMnF,MADXn6G,KAAKu/G,uBAYrBh4G,IAAK,mBACLhF,MAAO,WACL,GAAI6tI,KACJ,KAAgC,IAA5BpwI,KAAKgO,QAAQqyE,WACf,IAAK,GAAI28B,KAAUh9G,MAAKqmJ,aAAapsC,MAC/Bj6G,KAAKqmJ,aAAapsC,MAAM32G,eAAe05G,IACzCozB,EAAQvrI,KAAK7E,KAAKqmJ,aAAapsC,MAAM+C,GAAQ38G,GAInD,OAAO+vI,MAWT7oI,IAAK,mBACLhF,MAAO,WACL,GAAI6tI,KACJ,KAAgC,IAA5BpwI,KAAKgO,QAAQqyE,WACf,IAAK,GAAI48B,KAAUj9G,MAAKqmJ,aAAalsC,MAC/Bn6G,KAAKqmJ,aAAalsC,MAAM72G,eAAe25G,IACzCmzB,EAAQvrI,KAAK7E,KAAKqmJ,aAAalsC,MAAM8C,GAAQ58G,GAInD,OAAO+vI,MAUT7oI,IAAK,eACLhF,MAAO,SAAsB8uE,GAC3B,GAAIrjE,GAAUrK,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,MAEzEI,MAAI,GACJ1D,MAAK,EAET,KAAKgxE,IAAcA,EAAU4oC,QAAU5oC,EAAU8oC,MAAO,KAAM,gEAK9D,KAHInsG,EAAQmvG,iBAAuCt5G,KAAxBmK,EAAQmvG,cACjCn9G,KAAKm9G,cAEH9rC,EAAU4oC,MACZ,IAAKl2G,EAAI,EAAGA,EAAIstE,EAAU4oC,MAAMr2G,OAAQG,IAAK,CAC3C1D,EAAKgxE,EAAU4oC,MAAMl2G,EAErB,IAAI0pC,GAAOztC,KAAK2Q,KAAKspG,MAAM55G,EAC3B,KAAKotC,EACH,KAAM,IAAI88G,YAAW,iBAAmBlqJ,EAAK,cAG/CL,MAAKomJ,aAAa34G,EAAMz/B,EAAQq7I,gBAIpC,GAAIh4E,EAAU8oC,MACZ,IAAKp2G,EAAI,EAAGA,EAAIstE,EAAU8oC,MAAMv2G,OAAQG,IAAK,CAC3C1D,EAAKgxE,EAAU8oC,MAAMp2G,EAErB,IAAI27G,GAAO1/G,KAAK2Q,KAAKwpG,MAAM95G,EAC3B,KAAKq/G,EACH,KAAM,IAAI6qC,YAAW,iBAAmBlqJ,EAAK,cAE/CL,MAAKomJ,aAAa1mC,GAGtB1/G,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,qBAWzBxkD,IAAK,cACLhF,MAAO,SAAqB8uE,GAC1B,GAAIg4E,KAAiB1lJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,KAAmBA,UAAU,EAEpF,KAAK0tE,OAAkCxtE,KAArBwtE,EAAUztE,OAAsB,KAAM,qCAExD5D,MAAKuxE,cAAe0oC,MAAO5oC,IAAeg4E,eAAgBA,OAU5D9hJ,IAAK,cACLhF,MAAO,SAAqB8uE,GAC1B,IAAKA,OAAkCxtE,KAArBwtE,EAAUztE,OAAsB,KAAM,qCAExD5D,MAAKuxE,cAAe4oC,MAAO9oC,OAS7B9pE,IAAK,kBACLhF,MAAO,WACL,IAAK,GAAIy6G,KAAUh9G,MAAKqmJ,aAAapsC,MAC/Bj6G,KAAKqmJ,aAAapsC,MAAM32G,eAAe05G,KACpCh9G,KAAK2Q,KAAKspG,MAAM32G,eAAe05G,UAC3Bh9G,MAAKqmJ,aAAapsC,MAAM+C,GAIrC,KAAK,GAAIC,KAAUj9G,MAAKqmJ,aAAalsC,MAC/Bn6G,KAAKqmJ,aAAalsC,MAAM72G,eAAe25G,KACpCj9G,KAAK2Q,KAAKwpG,MAAM72G,eAAe25G,UAC3Bj9G,MAAKqmJ,aAAalsC,MAAM8C,QAMlCzB,IAGT57G,GAAiB,QAAI47G,GAIjB,SAAU37G,EAAQD,EAASM,GA4B/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAxBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIlB,GAAQnB,EAAoB,IAE5BoB,EAAST,EAAuBQ,GAEhC8b,EAAajd,EAAoB,IAEjCixC,EAActwC,EAAuBsc,GAErC5b,EAAWrB,EAAoB,IAE/BsB,EAAWX,EAAuBU,GAElCmxF,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAIvCjyF,EAAOT,EAAoB,GAC3BgvC,EAAShvC,EAAoB,KAC7B06E,EAAa16E,EAAoB,KAQjCk8G,EAAqB,WACvB,QAASA,GAAmBzrG,EAAMytC,EAAQm9D,GACxC,GAAIthB,GAAQj6F,MAEZ,EAAI2yF,EAA0B,SAAG3yF,KAAMo8G,GAEvCp8G,KAAK2Q,KAAOA,EACZ3Q,KAAKo+C,OAASA,EACdp+C,KAAKu7G,iBAAmBA,EAExBv7G,KAAKwqJ,UAAW,EAChBxqJ,KAAKyqJ,oBAAkB5mJ,GACvB7D,KAAK0qJ,gBAAc7mJ,GACnB7D,KAAK2qJ,aAAW9mJ,GAEhB7D,KAAK4qJ,uBACL5qJ,KAAK6qJ,wBACL7qJ,KAAK8qJ,2BAEL9qJ,KAAK2jJ,UAAY,EACjB3jJ,KAAK+qJ,cAAiB9wC,SAAWE,UACjCn6G,KAAKgrJ,YAAa,EAClBhrJ,KAAKirJ,QAAS,EACdjrJ,KAAKkrJ,wBAAsBrnJ,GAE3B7D,KAAKgO,WACLhO,KAAKguE,gBACH9/D,SAAS,EACTi9I,iBAAiB,EACjBloC,SAAS,EACTG,SAAS,EACT7E,aAAU16G,GACV2jH,UAAU,EACV4jC,YAAY,EACZC,YAAY,EACZC,kBACE9lC,MAAO,MACPn1E,KAAM,EACNnmC,OAASwB,WAAY,UAAWC,OAAQ,UAAWC,WAAaF,WAAY,UAAWC,OAAQ,YAC/FspD,YAAa,EACbm1D,oBAAqB,IAGzBzpH,EAAKC,OAAOZ,KAAKgO,QAAShO,KAAKguE,gBAE/BhuE,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,UAAW,WAC9B0oD,EAAMD,WAERh6F,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,eAAgBvxC,KAAKurJ,SAAS3zF,KAAK53D,OACxDA,KAAK2Q,KAAKk+D,QAAQt9B,GAAG,aAAcvxC,KAAKurJ,SAAS3zF,KAAK53D,OAkqCxD,OAzpCA,EAAI6yF,EAAuB,SAAGupB,IAC5B70G,IAAK,WACLhF,MAAO,YACe,IAAhBvC,KAAKirJ,UAC8B,IAAjCjrJ,KAAKgO,QAAQm9I,gBACfnrJ,KAAKo+G,iBAELp+G,KAAKq+G,sBAWX92G,IAAK,aACLhF,MAAO,SAAoByL,EAAS6iE,EAAY5iE,OAC3BpK,KAAfgtE,QACwBhtE,KAAtBgtE,EAAWtvD,OACbvhB,KAAKgO,QAAQuT,OAASsvD,EAAWtvD,OAEjCvhB,KAAKgO,QAAQuT,OAAStT,EAAcsT,WAEX1d,KAAvBgtE,EAAWx8C,QACbr0B,KAAKgO,QAAQqmB,QAAUw8C,EAAWx8C,QAElCr0B,KAAKgO,QAAQqmB,QAAUpmB,EAAcomB,aAIzBxwB,KAAZmK,IACqB,iBAAZA,GACThO,KAAKgO,QAAQE,QAAUF,GAEvBhO,KAAKgO,QAAQE,SAAU,EACvBvN,EAAK+D,WAAW1E,KAAKgO,QAASA,KAEK,IAAjChO,KAAKgO,QAAQm9I,kBACfnrJ,KAAKwqJ,UAAW,GAElBxqJ,KAAKwrJ,aAWTjkJ,IAAK,iBACLhF,MAAO,YACiB,IAAlBvC,KAAKwqJ,SACPxqJ,KAAKq+G,kBAELr+G,KAAKo+G,oBAIT72G,IAAK,iBACLhF,MAAO,WACLvC,KAAKwqJ,UAAW,EAEhBxqJ,KAAKg6F,UACmB,IAApBh6F,KAAKgrJ,aACPhrJ,KAAKyqJ,gBAAgBp+I,MAAMoM,QAAU,QACrCzY,KAAK2qJ,SAASt+I,MAAMoM,QAAU,QAC9BzY,KAAK0qJ,YAAYr+I,MAAMoM,QAAU,OACjCzY,KAAKyrJ,6BAITlkJ,IAAK,kBACLhF,MAAO,WACLvC,KAAKwqJ,UAAW,EAEhBxqJ,KAAKg6F,UACmB,IAApBh6F,KAAKgrJ,aACPhrJ,KAAKyqJ,gBAAgBp+I,MAAMoM,QAAU,OACrCzY,KAAK2qJ,SAASt+I,MAAMoM,QAAU,OAC9BzY,KAAK0qJ,YAAYr+I,MAAMoM,QAAU,QACjCzY,KAAK0rJ,wBAWTnkJ,IAAK,yBACLhF,MAAO,WAQL,GANAvC,KAAKg6F,SAGLh6F,KAAK2rJ,oBAGmB,IAApB3rJ,KAAKgrJ,WAAqB,CAE5BhrJ,KAAKwqJ,UAAW,EAChBxqJ,KAAKyqJ,gBAAgBp+I,MAAMoM,QAAU,QACrCzY,KAAK2qJ,SAASt+I,MAAMoM,QAAU,OAE9B,IAAImzI,GAAoB5rJ,KAAKu7G,iBAAiBswC,wBAC1CC,EAAoB9rJ,KAAKu7G,iBAAiBwwC,wBAC1CC,EAAqBJ,EAAoBE,EACzCvqI,EAASvhB,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,QAC3C0qI,GAAgB,GAES,IAAzBjsJ,KAAKgO,QAAQi1G,UACfjjH,KAAKksJ,qBAAqB3qI,GAC1B0qI,GAAgB,IAEW,IAAzBjsJ,KAAKgO,QAAQo1G,WACO,IAAlB6oC,EACFjsJ,KAAKmsJ,iBAAiB,GAEtBF,GAAgB,EAElBjsJ,KAAKosJ,qBAAqB7qI,IAGF,IAAtBqqI,GAA4D,kBAA1B5rJ,MAAKgO,QAAQuwG,WAC3B,IAAlB0tC,EACFjsJ,KAAKmsJ,iBAAiB,GAEtBF,GAAgB,EAElBjsJ,KAAKqsJ,sBAAsB9qI,IACI,IAAtBuqI,GAAiD,IAAtBF,IAAqD,IAA1B5rJ,KAAKgO,QAAQw5G,YACtD,IAAlBykC,EACFjsJ,KAAKmsJ,iBAAiB,GAEtBF,GAAgB,EAElBjsJ,KAAKssJ,sBAAsB/qI,IAIF,IAAvByqI,IACEJ,EAAoB,IAAiC,IAA5B5rJ,KAAKgO,QAAQo9I,aAClB,IAAlBa,GACFjsJ,KAAKmsJ,iBAAiB,GAExBnsJ,KAAKusJ,oBAAoBhrI,IACM,IAAtBqqI,IAAuD,IAA5B5rJ,KAAKgO,QAAQq9I,cAC3B,IAAlBY,GACFjsJ,KAAKmsJ,iBAAiB,GAExBnsJ,KAAKusJ,oBAAoBhrI,KAK7BvhB,KAAKwsJ,iBAAiBxsJ,KAAK2qJ,SAAU3qJ,KAAKysJ,eAAe70F,KAAK53D,OAG9DA,KAAK0sJ,oBAAoB,SAAU1sJ,KAAKyrJ,uBAAuB7zF,KAAK53D,OAItEA,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cAQzBxkD,IAAK,cACLhF,MAAO,WAUL,IARsB,IAAlBvC,KAAKwqJ,UACPxqJ,KAAKo+G,iBAIPp+G,KAAKg6F,SAELh6F,KAAKirJ,OAAS,WACU,IAApBjrJ,KAAKgrJ,WAAqB,CAC5B,GAAIzpI,GAASvhB,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,OAC/CvhB,MAAK2rJ,mBACL3rJ,KAAK2sJ,kBAAkBprI,GACvBvhB,KAAKmsJ,mBACLnsJ,KAAK4sJ,mBAAmBrrI,EAAuB,gBAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAkB,gBAG/Fr0B,KAAKwsJ,iBAAiBxsJ,KAAK2qJ,SAAU3qJ,KAAKysJ,eAAe70F,KAAK53D,OAGhEA,KAAK0sJ,oBAAoB,QAAS1sJ,KAAK6sJ,gBAAgBj1F,KAAK53D,UAQ9DuH,IAAK,WACLhF,MAAO,WACL,GAAIg5F,GAASv7F,MAGS,IAAlBA,KAAKwqJ,UACPxqJ,KAAKo+G,iBAIPp+G,KAAKg6F,QACL,IAAIvsD,GAAOztC,KAAKu7G,iBAAiBuxC,kBACjC,QAAajpJ,KAAT4pC,EAAoB,CAEtB,GADAztC,KAAKirJ,OAAS,WACuB,kBAA1BjrJ,MAAKgO,QAAQuwG,SAqBtB,KAAM,IAAIl6G,OAAM,kEApBhB,KAAuB,IAAnBopC,EAAKmwE,UAAoB,CAC3B,GAAIlpF,GAAO/zB,EAAK+D,cAAe+oC,EAAKz/B,SAAS,EAI7C,IAHA0mB,EAAKO,EAAIwY,EAAKxY,EACdP,EAAK7F,EAAI4e,EAAK5e,EAEuB,IAAjC7uB,KAAKgO,QAAQuwG,SAAS36G,OASxB,KAAM,IAAIS,OAAM,wEARhBrE,MAAKgO,QAAQuwG,SAAS7pF,EAAM,SAAUq4H,GACd,OAAlBA,OAA4ClpJ,KAAlBkpJ,GAAiD,aAAlBxxD,EAAO0vD,QAElE1vD,EAAO5qF,KAAK+jB,KAAKulF,MAAM3mE,aAAalB,OAAO26G,GAE7CxxD,EAAOkwD,+BAMX9jD,OAAM3nG,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,QAA0B,kBAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAoB,sBAMxHr0B,MAAKyrJ,4BASTlkJ,IAAK,cACLhF,MAAO,WAUL,IARsB,IAAlBvC,KAAKwqJ,UACPxqJ,KAAKo+G,iBAIPp+G,KAAKg6F,SAELh6F,KAAKirJ,OAAS,WACU,IAApBjrJ,KAAKgrJ,WAAqB,CAC5B,GAAIzpI,GAASvhB,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,OAC/CvhB,MAAK2rJ,mBACL3rJ,KAAK2sJ,kBAAkBprI,GACvBvhB,KAAKmsJ,mBACLnsJ,KAAK4sJ,mBAAmBrrI,EAAwB,iBAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAmB,iBAGjGr0B,KAAKwsJ,iBAAiBxsJ,KAAK2qJ,SAAU3qJ,KAAKysJ,eAAe70F,KAAK53D,OAIhEA,KAAKgtJ,iBAAiB,UAAWhtJ,KAAKitJ,eAAer1F,KAAK53D,OAC1DA,KAAKgtJ,iBAAiB,YAAahtJ,KAAKktJ,eAAet1F,KAAK53D,OAC5DA,KAAKgtJ,iBAAiB,SAAUhtJ,KAAKmtJ,iBAAiBv1F,KAAK53D,OAC3DA,KAAKgtJ,iBAAiB,YAAahtJ,KAAKktJ,eAAet1F,KAAK53D,OAE5DA,KAAKgtJ,iBAAiB,cAAe,cACrChtJ,KAAKgtJ,iBAAiB,SAAU,iBAQlCzlJ,IAAK,eACLhF,MAAO,WAUL,IARsB,IAAlBvC,KAAKwqJ,UACPxqJ,KAAKo+G,iBAIPp+G,KAAKg6F,SAELh6F,KAAKirJ,OAAS,WAC0C,YAApD,EAAIzpJ,EAAkB,SAAGxB,KAAKgO,QAAQw5G,WAA2E,kBAA1CxnH,MAAKgO,QAAQw5G,SAAS4lC,kBAC/FptJ,KAAKqtJ,kBAAoBrtJ,KAAKu7G,iBAAiBgE,mBAAmB,OACnC17G,KAA3B7D,KAAKqtJ,mBAAiC,CACxC,GAAI3tC,GAAO1/G,KAAK2Q,KAAKwpG,MAAMn6G,KAAKqtJ,kBAEhC,YADArtJ,MAAKstJ,iBAAiB5tC,EAAK/7F,KAAM+7F,EAAKh8F,IAI1C,IAAwB,IAApB1jB,KAAKgrJ,WAAqB,CAC5B,GAAIzpI,GAASvhB,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,OAC/CvhB,MAAK2rJ,mBACL3rJ,KAAK2sJ,kBAAkBprI,GACvBvhB,KAAKmsJ,mBACLnsJ,KAAK4sJ,mBAAmBrrI,EAA4B,qBAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAuB,qBAGzGr0B,KAAKwsJ,iBAAiBxsJ,KAAK2qJ,SAAU3qJ,KAAKysJ,eAAe70F,KAAK53D,OAIhE,GADAA,KAAKqtJ,kBAAoBrtJ,KAAKu7G,iBAAiBgE,mBAAmB,OACnC17G,KAA3B7D,KAAKqtJ,kBAAiC,CACxC,GAAIxQ,GAAQ78I,KAAK2Q,KAAKwpG,MAAMn6G,KAAKqtJ,mBAG7BE,EAAkBvtJ,KAAKwtJ,kBAAkB3Q,EAAMl5H,KAAKsR,EAAG4nH,EAAMl5H,KAAKkL,GAClE4+H,EAAgBztJ,KAAKwtJ,kBAAkB3Q,EAAMn5H,GAAGuR,EAAG4nH,EAAMn5H,GAAGmL,EAEhE7uB,MAAK+qJ,aAAa9wC,MAAMp1G,KAAK0oJ,EAAgBltJ,IAC7CL,KAAK+qJ,aAAa9wC,MAAMp1G,KAAK4oJ,EAAcptJ,IAE3CL,KAAK2Q,KAAKspG,MAAMszC,EAAgBltJ,IAAMktJ,EACtCvtJ,KAAK2Q,KAAKupG,YAAYr1G,KAAK0oJ,EAAgBltJ,IAC3CL,KAAK2Q,KAAKspG,MAAMwzC,EAAcptJ,IAAMotJ,EACpCztJ,KAAK2Q,KAAKupG,YAAYr1G,KAAK4oJ,EAAcptJ,IAGzCL,KAAKgtJ,iBAAiB,UAAWhtJ,KAAK0tJ,kBAAkB91F,KAAK53D,OAC7DA,KAAKgtJ,iBAAiB,QAAS,cAC/BhtJ,KAAKgtJ,iBAAiB,SAAU,cAChChtJ,KAAKgtJ,iBAAiB,cAAehtJ,KAAK2tJ,sBAAsB/1F,KAAK53D,OACrEA,KAAKgtJ,iBAAiB,SAAUhtJ,KAAK4tJ,iBAAiBh2F,KAAK53D,OAC3DA,KAAKgtJ,iBAAiB,YAAahtJ,KAAK6tJ,oBAAoBj2F,KAAK53D,OACjEA,KAAKgtJ,iBAAiB,cAAe,cAIrChtJ,KAAK0sJ,oBAAoB,gBAAiB,SAAUp3I,GAClD,GAAIshI,GAAYiG,EAAMxgB,SAASyxB,oBAAoBx4I,IAClB,IAA7Bi4I,EAAgBxnE,WAClBwnE,EAAgBt4H,EAAI2hH,EAAUjzH,KAAKsR,EACnCs4H,EAAgB1+H,EAAI+nH,EAAUjzH,KAAKkL,IAEN,IAA3B4+H,EAAc1nE,WAChB0nE,EAAcx4H,EAAI2hH,EAAUlzH,GAAGuR,EAC/Bw4H,EAAc5+H,EAAI+nH,EAAUlzH,GAAGmL,KAInC7uB,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,eAEvB/rD,MAAKyrJ,4BASTlkJ,IAAK,iBACLhF,MAAO,WACL,GAAIo5F,GAAS37F,MAGS,IAAlBA,KAAKwqJ,UACPxqJ,KAAKo+G,iBAIPp+G,KAAKg6F,SAELh6F,KAAKirJ,OAAS,QACd,IAAI8C,GAAgB/tJ,KAAKu7G,iBAAiB+D,mBACtC0uC,EAAgBhuJ,KAAKu7G,iBAAiBgE,mBACtC0uC,MAAiBpqJ,EACrB,IAAIkqJ,EAAcnqJ,OAAS,EAAG,CAC5B,IAAK,GAAIG,GAAI,EAAGA,EAAIgqJ,EAAcnqJ,OAAQG,IACxC,IAAoD,IAAhD/D,KAAK2Q,KAAKspG,MAAM8zC,EAAchqJ,IAAI65G,UAEpC,WADAjW,OAAM3nG,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,QAA4B,oBAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAsB,mBAKrF,mBAA5Br0B,MAAKgO,QAAQo9I,aACtB6C,EAAiBjuJ,KAAKgO,QAAQo9I,gBAEvB4C,GAAcpqJ,OAAS,GACO,kBAA5B5D,MAAKgO,QAAQq9I,aACtB4C,EAAiBjuJ,KAAKgO,QAAQq9I,WAIlC,IAA8B,kBAAnB4C,GAA+B,CACxC,GAAIv5H,IAASulF,MAAO8zC,EAAe5zC,MAAO6zC,EAC1C,IAA8B,IAA1BC,EAAerqJ,OAcjB,KAAM,IAAIS,OAAM,0EAbhB4pJ,GAAev5H,EAAM,SAAUq4H,GACP,OAAlBA,OAA4ClpJ,KAAlBkpJ,GAAiD,WAAlBpxD,EAAOsvD,QAElEtvD,EAAOhrF,KAAK+jB,KAAKylF,MAAM7mE,aAAaM,OAAOm5G,EAAc5yC,OACzDxe,EAAOhrF,KAAK+jB,KAAKulF,MAAM3mE,aAAaM,OAAOm5G,EAAc9yC,OACzDte,EAAOhrF,KAAKk+D,QAAQ9iB,KAAK,mBACzB4vC,EAAO8vD,2BAEP9vD,EAAOhrF,KAAKk+D,QAAQ9iB,KAAK,mBACzB4vC,EAAO8vD,gCAObzrJ,MAAK2Q,KAAK+jB,KAAKylF,MAAM7mE,aAAaM,OAAOo6G,GACzChuJ,KAAK2Q,KAAK+jB,KAAKulF,MAAM3mE,aAAaM,OAAOm6G,GACzC/tJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,mBACvB/rD,KAAKyrJ,4BAYTlkJ,IAAK,SACLhF,MAAO,YACwB,IAAzBvC,KAAKgO,QAAQE,SAEflO,KAAKgrJ,YAAa,EAElBhrJ,KAAKkuJ,mBACiB,IAAlBluJ,KAAKwqJ,SACPxqJ,KAAK0rJ,oBAEL1rJ,KAAKyrJ,2BAGPzrJ,KAAKmuJ,yBAGLnuJ,KAAKgrJ,YAAa,MAUtBzjJ,IAAK,kBACLhF,MAAO,eAEwBsB,KAAzB7D,KAAKyqJ,kBACPzqJ,KAAKyqJ,gBAAkBv6I,SAASC,cAAc,OAC9CnQ,KAAKyqJ,gBAAgB/jJ,UAAY,oBACX,IAAlB1G,KAAKwqJ,SACPxqJ,KAAKyqJ,gBAAgBp+I,MAAMoM,QAAU,QAErCzY,KAAKyqJ,gBAAgBp+I,MAAMoM,QAAU,OAEvCzY,KAAKo+C,OAAOD,MAAMztC,YAAY1Q,KAAKyqJ,sBAIZ5mJ,KAArB7D,KAAK0qJ,cACP1qJ,KAAK0qJ,YAAcx6I,SAASC,cAAc,OAC1CnQ,KAAK0qJ,YAAYhkJ,UAAY,iBACP,IAAlB1G,KAAKwqJ,SACPxqJ,KAAK0qJ,YAAYr+I,MAAMoM,QAAU,OAEjCzY,KAAK0qJ,YAAYr+I,MAAMoM,QAAU,QAEnCzY,KAAKo+C,OAAOD,MAAMztC,YAAY1Q,KAAK0qJ,kBAIf7mJ,KAAlB7D,KAAK2qJ,WACP3qJ,KAAK2qJ,SAAWz6I,SAASC,cAAc,OACvCnQ,KAAK2qJ,SAASjkJ,UAAY,YAC1B1G,KAAK2qJ,SAASt+I,MAAMoM,QAAUzY,KAAKyqJ,gBAAgBp+I,MAAMoM,QACzDzY,KAAKo+C,OAAOD,MAAMztC,YAAY1Q,KAAK2qJ,cAavCpjJ,IAAK,oBACLhF,MAAO,SAA2B0yB,EAAGpG,GACnC,GAAIy8H,GAAmB3qJ,EAAK+D,cAAe1E,KAAKgO,QAAQs9I,iBAExDA,GAAiBjrJ,GAAK,aAAeM,EAAKuC,aAC1CooJ,EAAiBlyE,QAAS,EAC1BkyE,EAAiBruD,SAAU,EAC3BquD,EAAiBr2H,EAAIA,EACrBq2H,EAAiBz8H,EAAIA,CAGrB,IAAI4e,GAAOztC,KAAK2Q,KAAKoqG,UAAUC,WAAWswC,EAG1C,OAFA79G,GAAK+3E,MAAMmH,aAAgBzmH,KAAM+uB,EAAG7uB,MAAO6uB,EAAG3uB,IAAKuoB,EAAG8vB,OAAQ9vB,GAEvD4e,KAQTlmC,IAAK,oBACLhF,MAAO,WAELvC,KAAKg6F,SAGLh6F,KAAK2rJ,mBAGLhrJ,EAAKmB,mBAAmB9B,KAAK0qJ,YAG7B,IAAInpI,GAASvhB,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,QAC3CgpC,EAASvqD,KAAKouJ,cAAc,WAAY,oCAAqC7sI,EAAa,MAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAQ,KACpIr0B,MAAK0qJ,YAAYh6I,YAAY65C,GAG7BvqD,KAAKwsJ,iBAAiBjiG,EAAQvqD,KAAKysJ,eAAe70F,KAAK53D,UASzDuH,IAAK,SACLhF,MAAO,WAELvC,KAAKirJ,QAAS,GAGU,IAApBjrJ,KAAKgrJ,aACPrqJ,EAAKmB,mBAAmB9B,KAAK0qJ,aAC7B/pJ,EAAKmB,mBAAmB9B,KAAKyqJ,iBAG7BzqJ,KAAKquJ,4BAIPruJ,KAAKsuJ,iCAGLtuJ,KAAKuuJ,sBAGLvuJ,KAAKwuJ,yBAGLxuJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,qBASzBxkD,IAAK,2BACLhF,MAAO,WAEL,GAAuC,GAAnCvC,KAAK4qJ,oBAAoBhnJ,OAAa,CACxC,IAAK,GAAIG,GAAI,EAAGA,EAAI/D,KAAK4qJ,oBAAoBhnJ,OAAQG,IACnD/D,KAAK4qJ,oBAAoB7mJ,GAAGutC,SAE9BtxC,MAAK4qJ,2BAUTrjJ,IAAK,yBACLhF,MAAO,WAELvC,KAAKg6F,SAGLr5F,EAAKmB,mBAAmB9B,KAAKyqJ,iBAC7B9pJ,EAAKmB,mBAAmB9B,KAAK0qJ,aAC7B/pJ,EAAKmB,mBAAmB9B,KAAK2qJ,UAGzB3qJ,KAAKyqJ,iBACPzqJ,KAAKo+C,OAAOD,MAAMj8C,YAAYlC,KAAKyqJ,iBAEjCzqJ,KAAK0qJ,aACP1qJ,KAAKo+C,OAAOD,MAAMj8C,YAAYlC,KAAK0qJ,aAEjC1qJ,KAAK2qJ,UACP3qJ,KAAKo+C,OAAOD,MAAMj8C,YAAYlC,KAAK2qJ,UAIrC3qJ,KAAKyqJ,oBAAkB5mJ,GACvB7D,KAAK0qJ,gBAAc7mJ,GACnB7D,KAAK2qJ,aAAW9mJ,MAUlB0D,IAAK,mBACLhF,MAAO,WACL,GAAIwQ,GAAQpP,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,CAEhF3D,MAAK2rJ,gBAAgB,mBAAqB54I,GAAS7C,SAASC,cAAc,OAC1EnQ,KAAK2rJ,gBAAgB,mBAAqB54I,GAAOrM,UAAY,qBAC7D1G,KAAKyqJ,gBAAgB/5I,YAAY1Q,KAAK2rJ,gBAAgB,mBAAqB54I,OAM7ExL,IAAK,uBACLhF,MAAO,SAA8Bgf,GACnC,GAAIgpC,GAASvqD,KAAKouJ,cAAc,UAAW,qBAAsB7sI,EAAgB,SAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAW,QAC1Hr0B,MAAKyqJ,gBAAgB/5I,YAAY65C,GACjCvqD,KAAKwsJ,iBAAiBjiG,EAAQvqD,KAAKs+G,YAAY1mD,KAAK53D,UAGtDuH,IAAK,uBACLhF,MAAO,SAA8Bgf,GACnC,GAAIgpC,GAASvqD,KAAKouJ,cAAc,UAAW,yBAA0B7sI,EAAgB,SAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAW,QAC9Hr0B,MAAKyqJ,gBAAgB/5I,YAAY65C,GACjCvqD,KAAKwsJ,iBAAiBjiG,EAAQvqD,KAAKy+G,YAAY7mD,KAAK53D,UAGtDuH,IAAK,wBACLhF,MAAO,SAA+Bgf,GACpC,GAAIgpC,GAASvqD,KAAKouJ,cAAc,WAAY,sBAAuB7sI,EAAiB,UAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAY,SAC9Hr0B,MAAKyqJ,gBAAgB/5I,YAAY65C,GACjCvqD,KAAKwsJ,iBAAiBjiG,EAAQvqD,KAAKu+G,SAAS3mD,KAAK53D,UAGnDuH,IAAK,wBACLhF,MAAO,SAA+Bgf,GACpC,GAAIgpC,GAASvqD,KAAKouJ,cAAc,WAAY,sBAAuB7sI,EAAiB,UAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAY,SAC9Hr0B,MAAKyqJ,gBAAgB/5I,YAAY65C,GACjCvqD,KAAKwsJ,iBAAiBjiG,EAAQvqD,KAAK0+G,aAAa9mD,KAAK53D,UAGvDuH,IAAK,sBACLhF,MAAO,SAA6Bgf,GAClC,GAAIvhB,KAAKgO,QAAQsgE,IACf,GAAImgF,GAAiB,gCAErB,IAAIA,GAAiB,uBAEvB,IAAIlkG,GAASvqD,KAAKouJ,cAAc,SAAUK,EAAgBltI,EAAY,KAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAO,IAC3Gr0B,MAAKyqJ,gBAAgB/5I,YAAY65C,GACjCvqD,KAAKwsJ,iBAAiBjiG,EAAQvqD,KAAK2+G,eAAe/mD,KAAK53D,UAGzDuH,IAAK,oBACLhF,MAAO,SAA2Bgf,GAChC,GAAIgpC,GAASvqD,KAAKouJ,cAAc,OAAQ,sBAAuB7sI,EAAa,MAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAQ,KAClHr0B,MAAKyqJ,gBAAgB/5I,YAAY65C,GACjCvqD,KAAKwsJ,iBAAiBjiG,EAAQvqD,KAAKyrJ,uBAAuB7zF,KAAK53D,UAGjEuH,IAAK,gBACLhF,MAAO,SAAuBlC,EAAIqG,EAAW4pC,GAC3C,GAAIo+G,GAAiB/qJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,GAAmBA,UAAU,GAAK,WASzF,OANA3D,MAAK2rJ,gBAAgBtrJ,EAAK,OAAS6P,SAASC,cAAc,OAC1DnQ,KAAK2rJ,gBAAgBtrJ,EAAK,OAAOqG,UAAYA,EAC7C1G,KAAK2rJ,gBAAgBtrJ,EAAK,SAAW6P,SAASC,cAAc,OAC5DnQ,KAAK2rJ,gBAAgBtrJ,EAAK,SAASqG,UAAYgoJ,EAC/C1uJ,KAAK2rJ,gBAAgBtrJ,EAAK,SAASsgD,UAAYrQ,EAC/CtwC,KAAK2rJ,gBAAgBtrJ,EAAK,OAAOqQ,YAAY1Q,KAAK2rJ,gBAAgBtrJ,EAAK,UAChEL,KAAK2rJ,gBAAgBtrJ,EAAK,UAGnCkH,IAAK,qBACLhF,MAAO,SAA4B+tC,GACjCtwC,KAAKyqJ,gBAAgB/5I,YAAY1Q,KAAKouJ,cAAc,cAAe,sBAAuB99G,OAa5F/oC,IAAK;0BACLhF,MAAO,SAA6BgG,EAAOomJ,GACzC3uJ,KAAK8qJ,wBAAwBjmJ,MAAO0D,MAAOA,EAAOqmJ,cAAeD,IACjE3uJ,KAAK2Q,KAAKk+D,QAAQt9B,GAAGhpC,EAAOomJ,MAW9BpnJ,IAAK,mBACLhF,MAAO,SAA0BssJ,EAAgBF,GAC/C,OAAiD9qJ,KAA7C7D,KAAK2Q,KAAK0pG,eAAew0C,GAI3B,KAAM,IAAIxqJ,OAAM,qDAAuDwqJ,EAAiB,mBAAoB,EAAI19G,EAAqB,UAAG,EAAI7vC,EAAgB,SAAGtB,KAAK2Q,KAAK0pG,iBAHzKr6G,MAAK6qJ,qBAAqBgE,GAAkB7uJ,KAAK2Q,KAAK0pG,eAAew0C,GACrE7uJ,KAAK2Q,KAAK0pG,eAAew0C,GAAkBF,KAa/CpnJ,IAAK,sBACLhF,MAAO,WACL,IAAK,GAAIusJ,KAAgB9uJ,MAAK6qJ,qBACxB7qJ,KAAK6qJ,qBAAqBvnJ,eAAewrJ,KAC3C9uJ,KAAK2Q,KAAK0pG,eAAey0C,GAAgB9uJ,KAAK6qJ,qBAAqBiE,SAC5D9uJ,MAAK6qJ,qBAAqBiE,GAGrC9uJ,MAAK6qJ,2BASPtjJ,IAAK,yBACLhF,MAAO,WACL,IAAK,GAAIwB,GAAI,EAAGA,EAAI/D,KAAK8qJ,wBAAwBlnJ,OAAQG,IAAK,CAC5D,GAAIgrJ,GAAY/uJ,KAAK8qJ,wBAAwB/mJ,GAAGwE,MAC5CqmJ,EAAgB5uJ,KAAK8qJ,wBAAwB/mJ,GAAG6qJ,aACpD5uJ,MAAK2Q,KAAKk+D,QAAQn9B,IAAIq9G,EAAWH,GAEnC5uJ,KAAK8qJ,8BAUPvjJ,IAAK,mBACLhF,MAAO,SAA0BysJ,EAAYJ,GAC3C,GAAIx3F,GAAS,GAAIloB,GAAO8/G,KACxBp0E,GAAW/C,QAAQzgB,EAAQw3F,GAC3B5uJ,KAAK4qJ,oBAAoB/lJ,KAAKuyD,MAShC7vD,IAAK,iCACLhF,MAAO,WAEL,IAAK,GAAIwB,GAAI,EAAGA,EAAI/D,KAAK+qJ,aAAa5wC,MAAMv2G,OAAQG,IAAK,CACvD/D,KAAK2Q,KAAKwpG,MAAMn6G,KAAK+qJ,aAAa5wC,MAAMp2G,IAAI63H,mBACrC57H,MAAK2Q,KAAKwpG,MAAMn6G,KAAK+qJ,aAAa5wC,MAAMp2G,GAC/C,IAAIkrJ,GAAgBjvJ,KAAK2Q,KAAKypG,YAAYx1G,QAAQ5E,KAAK+qJ,aAAa5wC,MAAMp2G,KACnD,IAAnBkrJ,GACFjvJ,KAAK2Q,KAAKypG,YAAYriF,OAAOk3H,EAAe,GAKhD,IAAK,GAAIr8I,GAAK,EAAGA,EAAK5S,KAAK+qJ,aAAa9wC,MAAMr2G,OAAQgP,IAAM,OACnD5S,MAAK2Q,KAAKspG,MAAMj6G,KAAK+qJ,aAAa9wC,MAAMrnG,GAC/C,IAAIs8I,GAAgBlvJ,KAAK2Q,KAAKupG,YAAYt1G,QAAQ5E,KAAK+qJ,aAAa9wC,MAAMrnG,KACnD,IAAnBs8I,GACFlvJ,KAAK2Q,KAAKupG,YAAYniF,OAAOm3H,EAAe,GAIhDlvJ,KAAK+qJ,cAAiB9wC,SAAWE,aAYnC5yG,IAAK,oBACLhF,MAAO,SAA2BgG,GAChCvI,KAAKu7G,iBAAiB4B,cACtBn9G,KAAKshE,UAAYthE,KAAK2Q,KAAKoqG,UAAU3jC,WAAW7uE,EAAMszC,QACtD77C,KAAKshE,UAAUnlB,YAAcx7C,EAAKC,UAAWZ,KAAK2Q,KAAKuqG,KAAK/+D,gBAU9D50C,IAAK,wBACLhF,MAAO,SAA+BgG,GACpC,GAAI4uE,GAAUn3E,KAAKshE,UACf4lF,EAAalnJ,KAAKu7G,iBAAiBosC,yBAAyBxwE,GAC5DxzD,EAAO3jB,KAAK2Q,KAAKspG,MAAMj6G,KAAK+qJ,aAAa9wC,MAAM,IAC/Cv2F,EAAK1jB,KAAK2Q,KAAKspG,MAAMj6G,KAAK+qJ,aAAa9wC,MAAM,IAC7CyF,EAAO1/G,KAAK2Q,KAAKwpG,MAAMn6G,KAAKqtJ,kBAChCrtJ,MAAKkrJ,wBAAsBrnJ,EAE3B,IAAIsrJ,GAAaxrI,EAAK4jI,kBAAkBL,GACpCkI,EAAW1rI,EAAG6jI,kBAAkBL,IAEjB,IAAfiI,GACFnvJ,KAAKkrJ,oBAAsBvnI,EAC3B+7F,EAAK2c,SAAS14G,KAAOA,IACC,IAAbyrI,IACTpvJ,KAAKkrJ,oBAAsBxnI,EAC3Bg8F,EAAK2c,SAAS34G,GAAKA,OAIY7f,KAA7B7D,KAAKkrJ,qBACPlrJ,KAAKu7G,iBAAiB6qC,aAAapmJ,KAAKkrJ,qBAG1ClrJ,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cAUzBxkD,IAAK,mBACLhF,MAAO,SAA0BgG,GAC/BvI,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,iBACvB,IAAIorB,GAAUn3E,KAAK2Q,KAAKoqG,UAAU3jC,WAAW7uE,EAAMszC,QAC/C/gC,EAAM9a,KAAKo+C,OAAOs/D,YAAYvmC,EAClC,QAAiCtzE,KAA7B7D,KAAKkrJ,oBACPlrJ,KAAKkrJ,oBAAoBj2H,EAAIna,EAAIma,EACjCj1B,KAAKkrJ,oBAAoBr8H,EAAI/T,EAAI+T,MAC5B,CAEL,GAAIo8B,GAAQksB,EAAQliD,EAAIj1B,KAAKshE,UAAUrsC,EACnCi2B,EAAQisB,EAAQtoD,EAAI7uB,KAAKshE,UAAUzyC,CACvC7uB,MAAK2Q,KAAKuqG,KAAK/+D,aAAgBlnB,EAAGj1B,KAAKshE,UAAUnlB,YAAYlnB,EAAIg2B,EAAOp8B,EAAG7uB,KAAKshE,UAAUnlB,YAAYttB,EAAIq8B,GAE5GlrD,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cAUzBxkD,IAAK,sBACLhF,MAAO,SAA6BgG,GAClC,GAAI4uE,GAAUn3E,KAAK2Q,KAAKoqG,UAAU3jC,WAAW7uE,EAAMszC,QAC/CqrG,EAAalnJ,KAAKu7G,iBAAiBosC,yBAAyBxwE,GAC5DuoC,EAAO1/G,KAAK2Q,KAAKwpG,MAAMn6G,KAAKqtJ,kBAEhC,QAAiCxpJ,KAA7B7D,KAAKkrJ,oBAAT,CAKAlrJ,KAAKu7G,iBAAiB4B,aAGtB,KAAK,GAFDkyC,GAAqBrvJ,KAAKu7G,iBAAiBquC,4BAA4B1C,GACvEz5G,MAAO5pC,GACFE,EAAIsrJ,EAAmBzrJ,OAAS,EAAGG,GAAK,EAAGA,IAClD,GAAIsrJ,EAAmBtrJ,KAAO/D,KAAKkrJ,oBAAoB7qJ,GAAI,CACzDotC,EAAOztC,KAAK2Q,KAAKspG,MAAMo1C,EAAmBtrJ,GAC1C,OAIJ,OAAaF,KAAT4pC,OAAmD5pC,KAA7B7D,KAAKkrJ,oBAC7B,IAAuB,IAAnBz9G,EAAKmwE,UACPjW,MAAM3nG,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,QAAyB,iBAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAmB,qBAC7G,CACL,GAAI1Q,GAAO3jB,KAAK2Q,KAAKspG,MAAMj6G,KAAK+qJ,aAAa9wC,MAAM,GAC/Cj6G,MAAKkrJ,oBAAoB7qJ,KAAOsjB,EAAKtjB,GACvCL,KAAKstJ,iBAAiB7/G,EAAKptC,GAAIq/G,EAAKh8F,GAAGrjB,IAEvCL,KAAKstJ,iBAAiB5tC,EAAK/7F,KAAKtjB,GAAIotC,EAAKptC,QAI7Cq/G,GAAK6b,iBACLv7H,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,iBAEzB/rD,MAAK2Q,KAAKk+D,QAAQ9iB,KAAK,eAezBxkD,IAAK,iBACLhF,MAAO,SAAwBgG,GAE7B,IAAI,GAAI1F,OAAOuC,UAAYpF,KAAK2jJ,UAAY,IAAK,CAC/C3jJ,KAAKshE,UAAYthE,KAAK2Q,KAAKoqG,UAAU3jC,WAAW7uE,EAAMszC,QACtD77C,KAAKshE,UAAUnlB,YAAcx7C,EAAKC,UAAWZ,KAAK2Q,KAAKuqG,KAAK/+D,YAE5D,IAAIg7B,GAAUn3E,KAAKshE,UACf7zB,EAAOztC,KAAKu7G,iBAAiBiE,UAAUroC,EAE3C,QAAatzE,KAAT4pC,EACF,IAAuB,IAAnBA,EAAKmwE,UACPjW,MAAM3nG,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,QAAyB,iBAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAmB,qBAC7G,CAEL,GAAIi7H,GAAatvJ,KAAKwtJ,kBAAkB//G,EAAKxY,EAAGwY,EAAK5e,EACrD7uB,MAAK2Q,KAAKspG,MAAMq1C,EAAWjvJ,IAAMivJ,EACjCtvJ,KAAK2Q,KAAKupG,YAAYr1G,KAAKyqJ,EAAWjvJ,GAGtC,IAAIkvJ,GAAiBvvJ,KAAK2Q,KAAKoqG,UAAUE,YACvC56G,GAAI,iBAAmBM,EAAKuC,aAC5BygB,KAAM8pB,EAAKptC,GACXqjB,GAAI4rI,EAAWjvJ,GACf48F,SAAS,EACTg+B,QACE/sH,SAAS,EACTjJ,KAAM,aACNk2H,UAAW,KAGfn7H,MAAK2Q,KAAKwpG,MAAMo1C,EAAelvJ,IAAMkvJ,EACrCvvJ,KAAK2Q,KAAKypG,YAAYv1G,KAAK0qJ,EAAelvJ,IAE1CL,KAAK+qJ,aAAa9wC,MAAMp1G,KAAKyqJ,EAAWjvJ,IACxCL,KAAK+qJ,aAAa5wC,MAAMt1G,KAAK0qJ,EAAelvJ,IAGhDL,KAAK2jJ,WAAY,GAAI9gJ,OAAOuC,cAIhCmC,IAAK,mBACLhF,MAAO,SAA0BgG,GAC/B,GAAI4uE,GAAUn3E,KAAK2Q,KAAKoqG,UAAU3jC,WAAW7uE,EAAMszC,OACnD,QAAmCh4C,KAA/B7D,KAAK+qJ,aAAa9wC,MAAM,GAAkB,CAC5C,GAAIq1C,GAAatvJ,KAAK2Q,KAAKspG,MAAMj6G,KAAK+qJ,aAAa9wC,MAAM,GACzDq1C,GAAWr6H,EAAIj1B,KAAKo+C,OAAO2kG,qBAAqB5rE,EAAQliD,GACxDq6H,EAAWzgI,EAAI7uB,KAAKo+C,OAAO4kG,qBAAqB7rE,EAAQtoD,GACxD7uB,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,eAClB,CACL,GAAId,GAAQksB,EAAQliD,EAAIj1B,KAAKshE,UAAUrsC,EACnCi2B,EAAQisB,EAAQtoD,EAAI7uB,KAAKshE,UAAUzyC,CACvC7uB,MAAK2Q,KAAKuqG,KAAK/+D,aAAgBlnB,EAAGj1B,KAAKshE,UAAUnlB,YAAYlnB,EAAIg2B,EAAOp8B,EAAG7uB,KAAKshE,UAAUnlB,YAAYttB,EAAIq8B,OAW9G3jD,IAAK,iBACLhF,MAAO,SAAwBgG,GAC7B,GAAI4uE,GAAUn3E,KAAK2Q,KAAKoqG,UAAU3jC,WAAW7uE,EAAMszC,QAC/CqrG,EAAalnJ,KAAKu7G,iBAAiBosC,yBAAyBxwE,GAG5Dq4E,MAAgB3rJ,OACeA,KAA/B7D,KAAK+qJ,aAAa5wC,MAAM,KAC1Bq1C,EAAgBxvJ,KAAK2Q,KAAKwpG,MAAMn6G,KAAK+qJ,aAAa5wC,MAAM,IAAI4S,OAM9D,KAAK,GAFDsiC,GAAqBrvJ,KAAKu7G,iBAAiBquC,4BAA4B1C,GACvEz5G,MAAO5pC,GACFE,EAAIsrJ,EAAmBzrJ,OAAS,EAAGG,GAAK,EAAGA,IAElD,IAAgE,IAA5D/D,KAAK+qJ,aAAa9wC,MAAMr1G,QAAQyqJ,EAAmBtrJ,IAAY,CACjE0pC,EAAOztC,KAAK2Q,KAAKspG,MAAMo1C,EAAmBtrJ,GAC1C,OAKJ/D,KAAKsuJ,qCAGQzqJ,KAAT4pC,KACqB,IAAnBA,EAAKmwE,UACPjW,MAAM3nG,KAAKgO,QAAQqmB,QAAQr0B,KAAKgO,QAAQuT,QAAyB,iBAAKvhB,KAAKgO,QAAQqmB,QAAY,GAAmB,qBAE3ExwB,KAAnC7D,KAAK2Q,KAAKspG,MAAMu1C,QAA6D3rJ,KAA7B7D,KAAK2Q,KAAKspG,MAAMxsE,EAAKptC,KACvEL,KAAKyvJ,gBAAgBD,EAAe/hH,EAAKptC,KAI/CL,KAAK2Q,KAAKk+D,QAAQ9iB,KAAK,cAazBxkD,IAAK,kBACLhF,MAAO,SAAyBmtJ,GAC9B,GAAI3zD,GAAS/7F,KAET2vJ,GACFtvJ,GAAIM,EAAKuC,aACT+xB,EAAGy6H,EAAUv4E,QAAQ/4B,OAAOnpB,EAC5BpG,EAAG6gI,EAAUv4E,QAAQ/4B,OAAOvvB,EAC5ByhB,MAAO,MAGT,IAAoC,kBAAzBtwC,MAAKgO,QAAQi1G,QAAwB,CAC9C,GAAoC,IAAhCjjH,KAAKgO,QAAQi1G,QAAQr/G,OASvB,KAAM,IAAIS,OAAM,sEARhBrE,MAAKgO,QAAQi1G,QAAQ0sC,EAAa,SAAU5C,GACpB,OAAlBA,OAA4ClpJ,KAAlBkpJ,GAAiD,YAAlBhxD,EAAOkvD,SAElElvD,EAAOprF,KAAK+jB,KAAKulF,MAAM3mE,aAAa3iB,IAAIo8H,GACxChxD,EAAO0vD,gCAQbzrJ,MAAK2Q,KAAK+jB,KAAKulF,MAAM3mE,aAAa3iB,IAAIg/H,GACtC3vJ,KAAKyrJ,4BAWTlkJ,IAAK,kBACLhF,MAAO,SAAyBqtJ,EAAcC,GAC5C,GAAI3zD,GAASl8F,KAET2vJ,GAAgBhsI,KAAMisI,EAAclsI,GAAImsI,EAC5C,IAAoC,kBAAzB7vJ,MAAKgO,QAAQo1G,QAAwB,CAC9C,GAAoC,IAAhCpjH,KAAKgO,QAAQo1G,QAAQx/G,OAUvB,KAAM,IAAIS,OAAM,0EAThBrE,MAAKgO,QAAQo1G,QAAQusC,EAAa,SAAU5C,GACpB,OAAlBA,OAA4ClpJ,KAAlBkpJ,GAAiD,YAAlB7wD,EAAO+uD,SAElE/uD,EAAOvrF,KAAK+jB,KAAKylF,MAAM7mE,aAAa3iB,IAAIo8H,GACxC7wD,EAAOqf,iBAAiB4B,cACxBjhB,EAAOuvD,gCAObzrJ,MAAK2Q,KAAK+jB,KAAKylF,MAAM7mE,aAAa3iB,IAAIg/H,GACtC3vJ,KAAKu7G,iBAAiB4B,cACtBn9G,KAAKyrJ,4BAWTlkJ,IAAK,mBACLhF,MAAO,SAA0BqtJ,EAAcC,GAC7C,GAAI7e,GAAShxI,KAET2vJ,GAAgBtvJ,GAAIL,KAAKqtJ,kBAAmB1pI,KAAMisI,EAAclsI,GAAImsI,EAAcv/G,MAAOtwC,KAAK2Q,KAAK+jB,KAAKylF,MAAM39E,MAAMx8B,KAAKqtJ,mBAAmB/8G,OAC5Iw/G,EAAU9vJ,KAAKgO,QAAQw5G,QAI3B,IAH2F,gBAAnE,KAAZsoC,EAA0B,aAAc,EAAItuJ,EAAkB,SAAGsuJ,MAC3EA,EAAUA,EAAQ1C,iBAEG,kBAAZ0C,GAAwB,CACjC,GAAuB,IAAnBA,EAAQlsJ,OAcV,KAAM,IAAIS,OAAM,wEAbhByrJ,GAAQH,EAAa,SAAU5C,GACP,OAAlBA,OAA4ClpJ,KAAlBkpJ,GAAiD,aAAlB/b,EAAOia,QAElEja,EAAOrgI,KAAKwpG,MAAMw1C,EAAYtvJ,IAAIk7H,iBAClCyV,EAAOrgI,KAAKk+D,QAAQ9iB,KAAK,WACzBilF,EAAOya,2BAEPza,EAAOrgI,KAAK+jB,KAAKylF,MAAM7mE,aAAalB,OAAO26G,GAC3C/b,EAAOz1B,iBAAiB4B,cACxB6zB,EAAOya,gCAObzrJ,MAAK2Q,KAAK+jB,KAAKylF,MAAM7mE,aAAalB,OAAOu9G,GACzC3vJ,KAAKu7G,iBAAiB4B,cACtBn9G,KAAKyrJ,6BAIJrvC,IAGTx8G,GAAiB,QAAIw8G,GAIjB,SAAUv8G,EAAQD,GAItB6E,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAST,IAAIilB,GAAS,SACTkxE,EAAO,UACPj0E,EAAS,SAET7iB,EAAS,SAITivE,GACFsM,WACEjvE,SAAWyqF,QAASD,GACpB5xF,QAAU6xF,QAASD,EAAMlxE,OAAQA,EAAQngB,MARjC,QAQ+CuxF,SAAY,YACnExiD,WAAa2X,IAPP,OAQNyrC,YAAcb,QAASD,GACvBrB,UAAYz1F,OAAQA,EAAQ+2F,QAASD,EAAMlxE,OAAQA,EAAQngB,MAXnD,QAWiEuxF,SAAY,aAEvFuhB,OACE0L,QACEniG,IAAMxV,SAAWyqF,QAASD,GAAQkiC,aAAen2G,OAAQA,GAAUxf,MAAQuiB,QAAS,QAAS,WAAa6vE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAC/I/pF,QAAUT,SAAWyqF,QAASD,GAAQkiC,aAAen2G,OAAQA,GAAUxf,MAAQuiB,QAAS,QAAS,WAAa6vE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IACnJ/0E,MAAQzV,SAAWyqF,QAASD,GAAQkiC,aAAen2G,OAAQA,GAAUxf,MAAQuiB,QAAS,QAAS,WAAa6vE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IACjJrB,UAAY7vE,QAAS,OAAQ,KAAM,UAAW5lB,OAAQA,IAExDi5H,oBAAsBliC,QAASD,GAC/Bo2B,QACEx+E,OAASqoD,QAASD,EAAME,SAAY,YACpC8mB,MAAQ/mB,QAASD,EAAME,SAAY,YACnCvB,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvCxuF,OACEA,OAASsd,OAAQA,GACjB5b,WAAa4b,OAAQA,GACrB3b,OAAS2b,OAAQA,GACjByxC,SAAWzxC,QAAS,OAAQ,KAAM,QAASmxE,QAASD,GACpDvuF,SAAWsa,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtC2wG,QAAUx/B,QAASD,EAAMrxF,MAlCjB,SAmCR88C,MACEj6C,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChB9b,YAAc8b,OAAQA,GACtB4yB,aAAe31B,OAAQA,GACvB8lG,aAAe/iG,OAAQA,GACvBs4D,OAASt4D,QAAS,aAAc,MAAO,SAAU,WACjDgjG,SAAW/lG,OAAQA,GACnBgmG,OAAS9xB,QAASD,EAAMlxE,OAAQA,GAChCkjG,MACExgH,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChBmjG,KAAOnjG,OAAQA,GACfgjG,SAAW/lG,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtCojG,UACE1gH,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChBmjG,KAAOnjG,OAAQA,GACfgjG,SAAW/lG,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtCqjG,MACE3gH,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChBmjG,KAAOnjG,OAAQA,GACfgjG,SAAW/lG,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtCsjG,MACE5gH,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChBmjG,KAAOnjG,OAAQA,GACfgjG,SAAW/lG,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtC6vE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtC4xD,QAAUuf,QAASD,GACnBoiC,YAAcliC,SAAY,WAAYn0E,OAAQA,GAC9C6rB,OAAS9oB,OAAQA,EAAQ3jB,UAAa,aACtCknH,oBAAsBpyB,QAASD,GAC/B90F,QAAU6gB,OAAQA,EAAQ5gB,UAAa,aACvCo5F,SAAWtE,QAASD,GACpBwyB,SACE9oH,KAAOqiB,OAAQA,GACfpiB,KAAOoiB,OAAQA,GACf6rB,OACEpiC,SAAWyqF,QAASD,GACpBt2F,KAAOqiB,OAAQA,GACfpiB,KAAOoiB,OAAQA,GACf0mG,YAAc1mG,OAAQA,GACtB2mG,eAAiB3mG,OAAQA,GACzB4yE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvC2yB,uBAAyBzyB,SAAY,YACrCvB,UAAYz1F,OAAQA,IAEtBm5H,gBAAkBniC,SAAY,WAAYn0E,OAAQA,GAClDu2G,mBAAqBv2G,OAAQA,GAC7B6mG,QACEp9G,SAAWyqF,QAASD,GACpBxuF,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChBwQ,GAAKxQ,OAAQA,GACboK,GAAKpK,OAAQA,GACb4yE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvCuiC,QACE/sH,SAAWyqF,QAASD,GACpBzzF,MAAQuiB,QAAS,UAAW,aAAc,WAAY,gBAAiB,gBAAiB,aAAc,WAAY,WAAY,YAAa,gBAC3I2zG,WAAa12G,OAAQA,GACrBy2G,gBAAkB1zG,QAAS,aAAc,WAAY,QAASmxE,QAASD,GACvErB,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvC/a,OAASn2D,OAAQA,EAAQ3jB,UAAa,aACtCuM,OAASqU,OAAQA,GACjBmsG,iBACEm/B,SAAWtrI,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,EAAMj0E,OAAQA,IAErDliB,OAASkiB,OAAQA,EAAQ5gB,UAAa,aACtCwzF,UAAYz1F,OAAQA,IAEtBisE,QACE+7C,kBAAoBjxB,QAASD,GAC7BvB,QAAS,4CACTE,UAAYz1F,OAAQA,IAEtBi7G,aACEgoC,WAAalsD,QAASD,GACtBosD,UAAYnsD,QAASD,GACrBynD,iBAAmBxnD,QAASD,GAC5B0nD,iBAAmBznD,QAASD,GAC5B7sF,OAAS8sF,QAASD,GAClBqsD,UACE72I,SAAWyqF,QAASD,GACpBssD,OAAS/vH,GAAKxQ,OAAQA,GAAUoK,GAAKpK,OAAQA,GAAU6yD,MAAQ7yD,OAAQA,GAAU4yE,UAAYz1F,OAAQA,IACrGqjJ,cAAgBtsD,QAASD,GACzBrB,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvCpY,aAAeqY,QAASD,GACxBwsD,mBAAqBvsD,QAASD,GAC9BrY,YAAcsY,QAASD,GACvBowD,sBAAwBnwD,QAASD,GACjCqwD,qBAAuBpwD,QAASD,GAChCysD,cAAgB1gI,OAAQA,GACxB2gI,UAAYzsD,QAASD,GACrBrB,UAAYz1F,OAAQA,IAEtBg7G,QACEgqB,YAAc/iI,UAAa,YAAa4gB,OAAQA,GAChDsiH,gBAAkBpuC,QAASD,GAC3BsuC,cACE94H,SAAWyqF,QAASD,GACpBuuC,iBAAmBxiH,OAAQA,GAC3ByiH,aAAeziH,OAAQA,GACvB0iH,aAAe1iH,OAAQA,GACvB2iH,eAAiBzuC,QAASD,GAC1B2uC,kBAAoB1uC,QAASD,GAC7B4uC,sBAAwB3uC,QAASD,GACjC54D,WAAatY,QAAS,KAAM,KAAM,KAAM,OACxC+/G,YAAc//G,QAAS,UAAW,aAClC6vE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvCrB,UAAYz1F,OAAQA,IAEtBu6G,cACEjuG,SAAWyqF,QAASD,GACpByyD,iBAAmBxyD,QAASD,GAC5BuqB,SAAWtqB,QAASD,EAAME,SAAY,YACtCwqB,SAAWzqB,QAASD,EAAME,SAAY,YACtC2lB,UAAY3lB,SAAY,YACxB4uB,UACE4lC,iBAAmBx0D,SAAY,YAC/BvB,UAAYz1F,OAAQA,EAAQ+2F,QAASD,EAAME,SAAY,aAEzDwyD,YAAczyD,QAASD,EAAME,SAAY,YACzCyyD,YAAc1yD,QAASD,EAAME,SAAY,YACzC0yD,iBAAkB,4CAClBj0D,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvCuhB,OACEhlD,aAAexwC,OAAQA,GACvB2lG,qBAAuB3lG,OAAQA,EAAQ5gB,UAAa,aACpDwmH,aAAe7iG,OAAQA,EAAQ3jB,UAAa,aAC5CirH,QACEx+E,OAASqoD,QAASD,EAAME,SAAY,YACpCnrD,MAAQkrD,QAASD,EAAME,SAAY,YACnCvB,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvCxuF,OACEyB,QAAU6b,OAAQA,GAClB9b,YAAc8b,OAAQA,GACtB5b,WACED,QAAU6b,OAAQA,GAClB9b,YAAc8b,OAAQA,GACtB6vE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtC3b,OACEF,QAAU6b,OAAQA,GAClB9b,YAAc8b,OAAQA,GACtB6vE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtC6vE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtCw/F,OACE/xF,GAAK0jE,QAASD,GACd7pE,GAAK8pE,QAASD,GACdrB,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvCv0C,MACE27B,OAASt4D,OAAQA,GACjBtd,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChB9b,YAAc8b,OAAQA,GACtB4yB,aAAe31B,OAAQA,GACvB8lG,aAAe/iG,OAAQA,GACvBgjG,SAAW/lG,OAAQA,GACnBgmG,OAAS9xB,QAASD,EAAMlxE,OAAQA,GAChCkjG,MACExgH,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChBmjG,KAAOnjG,OAAQA,GACfgjG,SAAW/lG,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtCojG,UACE1gH,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChBmjG,KAAOnjG,OAAQA,GACfgjG,SAAW/lG,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtCqjG,MACE3gH,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChBmjG,KAAOnjG,OAAQA,GACfgjG,SAAW/lG,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtCsjG,MACE5gH,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChB6lG,MAAQ9iG,OAAQA,GAChBmjG,KAAOnjG,OAAQA,GACfgjG,SAAW/lG,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtC6vE,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtCiqD,OAASjqD,OAAQA,EAAQ/C,OAAQA,EAAQ5gB,UAAa,aACtDqtH,kBACE8+B,SAAWvrI,OAAQA,GACnBwsG,QAAUzpG,OAAQA,GAClB6vE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,EAAMj0E,OAAQA,IAErD20D,QAAUuf,QAASD,GACnBkd,MACE0U,MAAQ9iG,OAAQA,GAChBgN,MAAQhN,OAAQA,GAChB6oB,MAAQ5rB,OAAQA,GAChBva,OAASsd,OAAQA,GACjB6vE,UAAYz1F,OAAQA,IAEtBvB,IAAMmnB,OAAQA,EAAQ/C,OAAQA,GAC9B8gG,OACEx/B,UAAYv+D,OAAQA,EAAQ3jB,UAAa,aACzC8qH,YAAcnnG,OAAQA,EAAQ3jB,UAAa,aAC3CwzF,UAAYz1F,OAAQA,EAAQ4lB,OAAQA,IAEtC8oB,OAAS9oB,OAAQA,EAAQ3jB,UAAa,aACtCknH,oBAAsBpyB,QAASD,GAC/BsyB,OAASvmG,OAAQA,EAAQ5gB,UAAa,aACtCogD,QACE39C,KAAOme,OAAQA,GACfre,OAASqe,OAAQA,GACjBk6B,QAAUl6B,OAAQA,GAClBve,MAAQue,OAAQA,GAChB4yE,UAAYz1F,OAAQA,EAAQ6iB,OAAQA,IAEtCwmG,MAAQxmG,OAAQA,GAChBw4E,SAAWtE,QAASD,GACpBwyB,SACE9oH,KAAOqiB,OAAQA,GACfpiB,KAAOoiB,OAAQA,GACf6rB,OACEpiC,SAAWyqF,QAASD,GACpBt2F,KAAOqiB,OAAQA,GACfpiB,KAAOoiB,OAAQA,GACf0mG,YAAc1mG,OAAQA,GACtB2mG,eAAiB3mG,OAAQA,GACzB4yE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvC2yB,uBAAyBzyB,SAAY,YACrCvB,UAAYz1F,OAAQA,IAEtB0pH,QACEp9G,SAAWyqF,QAASD,GACpBxuF,OAASsd,OAAQA,GACjB6oB,MAAQ5rB,OAAQA,GAChBwQ,GAAKxQ,OAAQA,GACboK,GAAKpK,OAAQA,GACb4yE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvC8sB,OAASh+F,QAAS,UAAW,SAAU,WAAY,MAAO,OAAQ,QAAS,gBAAiB,UAAW,MAAO,OAAQ,WAAY,eAAgB,SAAU,SAC5J+jG,iBACEC,cAAgB7yB,QAASD,EAAMrxF,MAxTzB,SAyTNqyC,cAAgBj1B,OAAQA,GACxB4mF,eAAiB1S,QAASD,GAC1B+yB,cAAgB9yB,QAASD,GACzBgzB,oBAAsB/yB,QAASD,GAC/BrB,UAAYz1F,OAAQA,IAEtByuC,MAAQ5rB,OAAQA,GAChBk5D,OAASn2D,OAAQA,EAAQ3jB,UAAa,aACtCtB,OAASkiB,OAAQA,EAAQ5gB,UAAa,aACtC+sH,iBACEo/B,SAAWvrI,OAAQA,GACnBsrI,SAAWtrI,OAAQA,GACnB4yE,UAAYz1F,OAAQA,EAAQ+2F,QAASD,EAAMj0E,OAAQA,IAErDwQ,GAAKxQ,OAAQA,GACboK,GAAKpK,OAAQA,GACb4yE,UAAYz1F,OAAQA,IAEtBq7F,SACE/uF,SAAWyqF,QAASD,GACpB+7C,WACEE,uBAAyBlwH,OAAQA,GACjCmwH,gBAAkBnwH,OAAQA,GAC1BikH,cAAgBjkH,OAAQA,GACxBowH,gBAAkBpwH,OAAQA,GAC1BqwH,SAAWrwH,OAAQA,GACnBswH,cAAgBtwH,OAAQA,GACxB4yE,UAAYz1F,OAAQA,IAEtBozI,kBACEL,uBAAyBlwH,OAAQA,GACjCmwH,gBAAkBnwH,OAAQA,GAC1BikH,cAAgBjkH,OAAQA,GACxBowH,gBAAkBpwH,OAAQA,GAC1BqwH,SAAWrwH,OAAQA,GACnBswH,cAAgBtwH,OAAQA,GACxB4yE,UAAYz1F,OAAQA,IAEtBqzI,WACEL,gBAAkBnwH,OAAQA,GAC1BikH,cAAgBjkH,OAAQA,GACxBowH,gBAAkBpwH,OAAQA,GAC1BywH,cAAgBzwH,OAAQA,GACxBqwH,SAAWrwH,OAAQA,GACnB4yE,UAAYz1F,OAAQA,IAEtBuzI,uBACEP,gBAAkBnwH,OAAQA,GAC1BikH,cAAgBjkH,OAAQA,GACxBowH,gBAAkBpwH,OAAQA,GAC1BywH,cAAgBzwH,OAAQA,GACxBqwH,SAAWrwH,OAAQA,GACnB4yE,UAAYz1F,OAAQA,IAEtBwzI,aAAe3wH,OAAQA,GACvB4wH,aAAe5wH,OAAQA,GACvBy4E,QAAU11E,QAAS,YAAa,YAAa,wBAAyB,qBACtE8tH,eACEpnI,SAAWyqF,QAASD,GACpB0wB,YAAc3kG,OAAQA,GACtB8wH,gBAAkB9wH,OAAQA,GAC1B+wH,kBAAoB78C,QAASD,GAC7BloB,KAAOmoB,QAASD,GAChBrB,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAEvC+8C,UAAYhxH,OAAQA,GACpBwvH,kBAAoBt7C,QAASD,GAC7BrB,UAAYz1F,OAAQA,EAAQ+2F,QAASD,IAIvCzqB,YAAc0qB,QAASD,GACvB5b,YAAc6b,QAASD,GACvBn3E,QAAUiG,OAAQA,GAClB6M,SACE8iE,SAAW0B,IAjYL,OAkYNxB,UAAYz1F,OAAQA,IAEtByO,QAAUmX,OAAQA,GAClBpX,OAASoX,OAAQA,GACjB6vE,UAAYz1F,OAAQA,GAGtBivE,GAAWhD,OAAOspB,QAAUtmB,EAAWopC,MACvCppC,EAAWsrC,aAAamvC,iBAAmBz6E,EAAWopC,KAEtD,IAAInpC,IACFmpC,OACEhlD,aAAc,EAAG,EAAG,GAAI,GACxBm1D,qBAAsB,EAAG,EAAG,GAAI,GAChClgH,OACEyB,QAAS,QAAS,WAClBD,YAAa,QAAS,WACtBE,WACED,QAAS,QAAS,WAClBD,YAAa,QAAS,YAExBG,OACEF,QAAS,QAAS,WAClBD,YAAa,QAAS,aAG1Bs7G,OACE/xF,GAAG,EACHpG,GAAG,GAELs1B,MACEj6C,OAAQ,QAAS,WACjBmmC,MAAO,GAAI,EAAG,IAAK,GACnBi6E,MAAO,QAAS,UAAW,UAC3B5+G,YAAa,QAAS,QACtB0uC,aAAc,EAAG,EAAG,GAAI,GACxBmwE,aAAc,QAAS,YAGzBnxC,QAAQ,EACR2xC,oBAAoB,EAQpB9tB,SAAS,EACTiuB,SACE9oH,KAAM,GAAI,EAAG,IAAK,GAClBC,KAAM,GAAI,EAAG,IAAK,GAClBiuC,OACEpiC,SAAS,EACT9L,KAAM,GAAI,EAAG,IAAK,GAClBC,KAAM,GAAI,EAAG,IAAK,GAClB8oH,YAAa,GAAI,EAAG,IAAK,GACzBC,eAAgB,EAAG,EAAG,GAAI,KAG9BE,QACEp9G,SAAS,EACThE,MAAO,kBACPmmC,MAAO,GAAI,EAAG,GAAI,GAClBpb,GAAI,GAAI,GAAI,GAAI,GAChBpG,GAAI,GAAI,GAAI,GAAI,IAElB22F,OAAQ,UAAW,MAAO,SAAU,WAAY,UAAW,MAAO,SAAU,OAAQ,OAAQ,WAAY,gBACxG+F,iBACEC,cAAc,EACd9xE,cAAe,EAAG,EAAG,GAAI,GACzB2xD,eAAe,EACfogB,cAAc,GAEhBp7E,MAAO,GAAI,EAAG,IAAK,IAErB8pE,OACE0L,QACEniG,IAAMxV,SAAS,EAAO0sH,aAAc,EAAG,EAAG,EAAG,KAAO31H,KAAM,SAC1D0J,QAAUT,SAAS,EAAO0sH,aAAc,EAAG,EAAG,EAAG,KAAO31H,KAAM,SAC9D0e,MAAQzV,SAAS,EAAO0sH,aAAc,EAAG,EAAG,EAAG,KAAO31H,KAAM,UAE9D41H,oBAAoB,EACpB3wH,OACEA,OAAQ,QAAS,WACjB0B,WAAY,QAAS,WACrBC,OAAQ,QAAS,WACjBotD,SAAU,OAAQ,KAAM,QAAQ,GAAM,GACtC9uD,SAAU,EAAG,EAAG,EAAG,MAErBguH,QAAQ,EACRh0E,MACEj6C,OAAQ,QAAS,WACjBmmC,MAAO,GAAI,EAAG,IAAK,GACnBi6E,MAAO,QAAS,UAAW,UAC3B5+G,YAAa,QAAS,QACtB0uC,aAAc,EAAG,EAAG,GAAI,GACxBmwE,aAAc,QAAS,WACvBzqC,OAAQ,aAAc,MAAO,SAAU,WAEzC1G,QAAQ,EACR0hD,YAAa,IAAK,EAAG,EAAG,IACxB/P,oBAAoB,EACpB9tB,SAAS,EACTiuB,SACE9oH,KAAM,EAAG,EAAG,IAAK,GACjBC,KAAM,GAAI,EAAG,IAAK,GAClBiuC,OACEpiC,SAAS,EACT9L,KAAM,GAAI,EAAG,IAAK,GAClBC,KAAM,GAAI,EAAG,IAAK,GAClB8oH,YAAa,GAAI,EAAG,IAAK,GACzBC,eAAgB,EAAG,EAAG,GAAI,KAG9B2P,gBAAiB,IAAK,EAAG,EAAG,IAC5BC,mBAAoB,GAAI,EAAG,IAAK,GAChC1P,QACEp9G,SAAS,EACThE,MAAO,kBACPmmC,MAAO,GAAI,EAAG,GAAI,GAClBpb,GAAI,GAAI,GAAI,GAAI,GAChBpG,GAAI,GAAI,GAAI,GAAI,IAElBosG,QACE/sH,SAAS,EACTjJ,MAAO,UAAW,aAAc,WAAY,gBAAiB,gBAAiB,aAAc,WAAY,WAAY,YAAa,eACjIi2H,gBAAiB,aAAc,WAAY,QAC3CC,WAAY,GAAK,EAAG,EAAG,MAEzB/qH,OAAQ,EAAG,EAAG,GAAI,IAEpBwsG,QAGEoqB,cACE94H,SAAS,EACT+4H,iBAAkB,IAAK,GAAI,IAAK,GAChCC,aAAc,IAAK,GAAI,IAAK,GAC5BC,aAAc,IAAK,GAAI,IAAK,GAC5BC,eAAe,EACfC,kBAAkB,EAClBC,sBAAsB,EACtBxnG,WAAY,KAAM,KAAM,KAAM,MAC9BynG,YAAa,UAAW,cAG5B1qB,aACEgoC,WAAW,EACXC,UAAU,EACV3E,iBAAiB,EACjBC,iBAAiB,EACjBv0I,OAAO,EACPk5I,UACE72I,SAAS,EACT82I,OAAS/vH,GAAI,GAAI,EAAG,GAAI,GAAIpG,GAAI,GAAI,EAAG,GAAI,GAAIyoD,MAAO,IAAM,EAAG,GAAK,OACpE2tE,cAAc,GAEhB3kE,aAAa,EACb4kE,mBAAmB,EACnB7kE,YAAY,EACZyoE,sBAAsB,EACtBC,qBAAqB,EACrB5D,cAAe,IAAK,EAAG,IAAM,IAC7BC,UAAU,GAEZjpC,cACEjuG,SAAS,EACTi9I,iBAAiB,GAEnBluD,SACE/uF,SAAS,EACTumI,WAEEE,wBAAyB,KAAO,IAAO,EAAG,IAC1CC,gBAAiB,GAAK,EAAG,GAAI,KAC7BlM,cAAe,GAAI,EAAG,IAAK,GAC3BmM,gBAAiB,IAAM,EAAG,IAAK,MAC/BC,SAAU,IAAM,EAAG,EAAG,KACtBC,cAAe,EAAG,EAAG,EAAG,MAE1BC,kBAEEL,wBAAyB,IAAK,IAAK,EAAG,GACtCC,gBAAiB,IAAM,EAAG,EAAG,MAC7BlM,cAAe,GAAI,EAAG,IAAK,GAC3BmM,gBAAiB,IAAM,EAAG,IAAK,MAC/BC,SAAU,GAAK,EAAG,EAAG,KACrBC,cAAe,EAAG,EAAG,EAAG,MAE1BE,WACEL,gBAAiB,GAAK,EAAG,GAAI,KAC7BlM,cAAe,IAAK,EAAG,IAAK,GAC5BmM,gBAAiB,IAAM,EAAG,IAAK,MAC/BK,cAAe,IAAK,EAAG,IAAK,GAC5BJ,SAAU,IAAM,EAAG,EAAG,MAExBK,uBACEP,gBAAiB,GAAK,EAAG,GAAI,KAC7BlM,cAAe,IAAK,EAAG,IAAK,GAC5BmM,gBAAiB,IAAM,EAAG,IAAK,MAC/BK,cAAe,IAAK,EAAG,IAAK,GAC5BJ,SAAU,IAAM,EAAG,EAAG,MAExBM,aAAc,GAAI,EAAG,IAAK,GAC1BC,aAAc,GAAK,IAAM,GAAK,KAC9Bn4C,QAAS,YAAa,mBAAoB,YAAa,yBACvDu4C,UAAW,GAAK,IAAM,EAAG,MAK7B71I,GAAQixE,WAAaA,EACrBjxE,EAAQkxE,iBAAmBA,GAIvB,SAAUjxE,EAAQD,EAASM,GAwB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GApBzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAIytH,GAAkB9vH,EAAoB,KAEtC+vH,EAAkBpvH,EAAuBmvH,GAEzCt9B,EAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAEvCq9D,EAAiB/vJ,EAAoB,KAErCgwJ,EAAkBrvJ,EAAuBovJ,GAYzCxzC,EAAc,WAChB,QAASA,GAAY9rG,EAAMqpI,EAAYmW,IACrC,EAAIx9D,EAA0B,SAAG3yF,KAAMy8G,GAEvCz8G,KAAK2Q,KAAOA,EACZ3Q,KAAK0oI,aAAesR,EACpBh6I,KAAK60I,eAAiBsb,EACtBnwJ,KAAKowJ,eAAiB,GAAIF,GAAyB,QAiUrD,OAxTA,EAAIr9D,EAAuB,SAAG4pB,IAC5Bl1G,IAAK,aACLhF,MAAO,SAAoByL,GACrBA,IACEA,EAAQ06H,eACV1oI,KAAK0oI,aAAe16H,EAAQ06H,cAE1B16H,EAAQ6mI,iBACV70I,KAAK60I,eAAiB7mI,EAAQ6mI,oBAYpCttI,IAAK,QACLhF,MAAO,SAAeulI,EAAYuoB,GAChC,GAAIC,GAAiB3sJ,UAAUC,OAAS,OAAsBC,KAAjBF,UAAU,IAAmBA,UAAU,GAGhF4sJ,EAAWvwJ,KAAKowJ,eAAeI,aAAaxwJ,KAAK2Q,KAAMm3H,EAAYuoB,EAGvErwJ,MAAKywJ,gBAAgBF,GAGrBvwJ,KAAK0wJ,gBAAgBH,GAGrBvwJ,KAAK2wJ,iBAgBL,KAbA,GAEIvnC,GAAa,EACbwnC,EAAgBnuJ,KAAKJ,IAAI,IAAMI,KAAKL,IAAI,GAAKpC,KAAK2Q,KAAKupG,YAAYt2G,OAAQ,MAG3EitJ,EAAY,IACZC,EAAe,EACfC,EAAQ,EACRC,EAAQ,EACRC,EAAU,EACVC,EAAgB,EAEbL,EAbS,KAagBznC,EAAawnC,GAAe,CAC1DxnC,GAAc,CAEd,IAAI+nC,GAAyBnxJ,KAAKoxJ,sBAAsBd,GAEpDe,GAAyB,EAAIphC,EAAyB,SAAGkhC,EAAwB,EASrF,KAPAL,EAAeO,EAAuB,GACtCR,EAAYQ,EAAuB,GACnCN,EAAQM,EAAuB,GAC/BL,EAAQK,EAAuB,GAE/BJ,EAAUJ,EACVK,EAAgB,EACTD,EA1BY,GA0BgBC,EAvBZ,GAuBgD,CACrEA,GAAiB,EACjBlxJ,KAAKsxJ,UAAUR,EAAcC,EAAOC,EAEpC,IAAIO,GAAcvxJ,KAAKwxJ,WAAWV,GAE9BW,GAAc,EAAIxhC,EAAyB,SAAGshC,EAAa,EAE/DN,GAAUQ,EAAY,GACtBV,EAAQU,EAAY,GACpBT,EAAQS,EAAY,QAY1BlqJ,IAAK,wBACLhF,MAAO,SAA+B+tJ,GAQpC,IAAK,GAPDxoB,GAAa9nI,KAAK2Q,KAAKupG,YACvBD,EAAQj6G,KAAK2Q,KAAKspG,MAClB42C,EAAY,EACZa,EAAkB5pB,EAAW,GAC7B6pB,EAAY,EACZC,EAAY,EAEPC,EAAU,EAAGA,EAAU/pB,EAAWlkI,OAAQiuJ,IAAW,CAC5D,GAAIrxJ,GAAIsnI,EAAW+pB,EAEnB,KAAoC,IAAhC53C,EAAMz5G,GAAGytH,qBAAuD,IAAvBhU,EAAMz5G,GAAGo9G,YAAyC,IAAnB0yC,IAAwD,IAA7Br2C,EAAMz5G,GAAGwN,QAAQg5G,MAAM/xF,IAA2C,IAA7BglF,EAAMz5G,GAAGwN,QAAQg5G,MAAMn4F,EAAY,CAC7K,GAAIijI,GAAc9xJ,KAAKwxJ,WAAWhxJ,GAC9BuxJ,GAAc,EAAI9hC,EAAyB,SAAG6hC,EAAa,GAC3Db,EAAUc,EAAY,GACtBhB,EAAQgB,EAAY,GACpBf,EAAQe,EAAY,EAEpBlB,GAAYI,IACdJ,EAAYI,EACZS,EAAkBlxJ,EAClBmxJ,EAAYZ,EACZa,EAAYZ,IAKlB,OAAQU,EAAiBb,EAAWc,EAAWC,MAWjDrqJ,IAAK,aACLhF,MAAO,SAAoB/B,GACzB,GAAIwxJ,IAAY,EAAI/hC,EAAyB,SAAGjwH,KAAKiyJ,OAAOzxJ,GAAI,GAC5DuwJ,EAAQiB,EAAU,GAClBhB,EAAQgB,EAAU,EAGtB,QADcvvJ,KAAKorD,KAAKprD,KAAKknB,IAAIonI,EAAO,GAAKtuJ,KAAKknB,IAAIqnI,EAAO,IAC5CD,EAAOC,MAa1BzpJ,IAAK,YACLhF,MAAO,SAAmB/B,EAAGuwJ,EAAOC,GAYlC,IAAK,GAXDlpB,GAAa9nI,KAAK2Q,KAAKupG,YACvBD,EAAQj6G,KAAK2Q,KAAKspG,MAClBi4C,EAAU,EACVC,EAAW,EACXC,EAAU,EAEVC,EAAMp4C,EAAMz5G,GAAGy0B,EACfq9H,EAAMr4C,EAAMz5G,GAAGquB,EACf0jI,EAAKvyJ,KAAKwyJ,SAAShyJ,GACnBiyJ,EAAKzyJ,KAAK0yJ,SAASlyJ,GAEdmyJ,EAAO,EAAGA,EAAO7qB,EAAWlkI,OAAQ+uJ,IAAQ,CACnD,GAAI5uJ,GAAI+jI,EAAW6qB,EACnB,IAAI5uJ,IAAMvD,EAAG,CACX,GAAIoyJ,GAAM34C,EAAMl2G,GAAGkxB,EACf49H,EAAM54C,EAAMl2G,GAAG8qB,EACfikI,EAAOP,EAAGxuJ,GACVgvJ,EAAON,EAAG1uJ,GACVivJ,EAAc,EAAMvwJ,KAAKknB,IAAIlnB,KAAKknB,IAAI0oI,EAAMO,EAAK,GAAKnwJ,KAAKknB,IAAI2oI,EAAMO,EAAK,GAAI,IAClFX,IAAWY,GAAQ,EAAIC,EAAOtwJ,KAAKknB,IAAI2oI,EAAMO,EAAK,GAAKG,GACvDb,GAAYW,GAAQC,GAAQV,EAAMO,IAAQN,EAAMO,GAAOG,GACvDZ,GAAWU,GAAQ,EAAIC,EAAOtwJ,KAAKknB,IAAI0oI,EAAMO,EAAK,GAAKI,IAI3D,GAAItkG,GAAIwjG,EACJj8I,EAAIk8I,EACJ97I,EAAI06I,EACJp1I,EAAIy2I,EACJ3zI,EAAIuyI,EAGJjzG,GAAM1nC,EAAIq4C,EAAIjwC,EAAIxI,IAAMA,EAAIy4C,EAAI/yC,EAAI1F,GACpC6nC,IAAO7nC,EAAI8nC,EAAK1nC,GAAKq4C,CAGzBurD,GAAMz5G,GAAGy0B,GAAK6oB,EACdm8D,EAAMz5G,GAAGquB,GAAKkvB,EAGd/9C,KAAKizJ,gBAAgBzyJ,MAUvB+G,IAAK,kBACLhF,MAAO,SAAyBguJ,GAC9B,GAAIzoB,GAAa9nI,KAAK2Q,KAAKupG,YACvB8/B,EAAah6I,KAAK0oI,YAEtB1oI,MAAK0yJ,WACL,KAAK,GAAI3uJ,GAAI,EAAGA,EAAI+jI,EAAWlkI,OAAQG,IAAK,CAC1C/D,KAAK0yJ,SAAS5qB,EAAW/jI,MACzB,KAAK,GAAI8J,GAAI,EAAGA,EAAIi6H,EAAWlkI,OAAQiK,IACrC7N,KAAK0yJ,SAAS5qB,EAAW/jI,IAAI+jI,EAAWj6H,IAAMmsI,EAAauW,EAASzoB,EAAW/jI,IAAI+jI,EAAWj6H,QAYpGtG,IAAK,kBACLhF,MAAO,SAAyBguJ,GAC9B,GAAIzoB,GAAa9nI,KAAK2Q,KAAKupG,YACvBi2C,EAAenwJ,KAAK60I,cAExB70I,MAAKwyJ,WACL,KAAK,GAAIzuJ,GAAI,EAAGA,EAAI+jI,EAAWlkI,OAAQG,IAAK,CAC1C/D,KAAKwyJ,SAAS1qB,EAAW/jI,MACzB,KAAK,GAAI8J,GAAI,EAAGA,EAAIi6H,EAAWlkI,OAAQiK,IACrC7N,KAAKwyJ,SAAS1qB,EAAW/jI,IAAI+jI,EAAWj6H,IAAMsiJ,EAAe1tJ,KAAKknB,IAAI4mI,EAASzoB,EAAW/jI,IAAI+jI,EAAWj6H,KAAM,OAWrHtG,IAAK,kBACLhF,MAAO,WACL,GAAIulI,GAAa9nI,KAAK2Q,KAAKupG,YACvBD,EAAQj6G,KAAK2Q,KAAKspG,KACtBj6G,MAAKkzJ,YACLlzJ,KAAKiyJ,SACL,KAAK,GAAIkB,GAAO,EAAGA,EAAOrrB,EAAWlkI,OAAQuvJ,IAC3CnzJ,KAAKkzJ,SAASprB,EAAWqrB,MAE3B,KAAK,GAAIC,GAAQ,EAAGA,EAAQtrB,EAAWlkI,OAAQwvJ,IAAS,CAMtD,IAAK,GALD5yJ,GAAIsnI,EAAWsrB,GACff,EAAMp4C,EAAMz5G,GAAGy0B,EACfq9H,EAAMr4C,EAAMz5G,GAAGquB,EACfkiI,EAAQ,EACRC,EAAQ,EACH2B,EAAOS,EAAOT,EAAO7qB,EAAWlkI,OAAQ+uJ,IAAQ,CACvD,GAAI5uJ,GAAI+jI,EAAW6qB,EACnB,IAAI5uJ,IAAMvD,EAAG,CACX,GAAIoyJ,GAAM34C,EAAMl2G,GAAGkxB,EACf49H,EAAM54C,EAAMl2G,GAAG8qB,EACfmkI,EAAc,EAAMvwJ,KAAKorD,KAAKprD,KAAKknB,IAAI0oI,EAAMO,EAAK,GAAKnwJ,KAAKknB,IAAI2oI,EAAMO,EAAK,GAC/E7yJ,MAAKkzJ,SAAS1yJ,GAAGmyJ,IAAS3yJ,KAAKwyJ,SAAShyJ,GAAGuD,IAAMsuJ,EAAMO,EAAM5yJ,KAAK0yJ,SAASlyJ,GAAGuD,IAAMsuJ,EAAMO,GAAOI,GAAchzJ,KAAKwyJ,SAAShyJ,GAAGuD,IAAMuuJ,EAAMO,EAAM7yJ,KAAK0yJ,SAASlyJ,GAAGuD,IAAMuuJ,EAAMO,GAAOG,IACtLhzJ,KAAKkzJ,SAASnvJ,GAAGqvJ,GAASpzJ,KAAKkzJ,SAAS1yJ,GAAGmyJ,GAC3C5B,GAAS/wJ,KAAKkzJ,SAAS1yJ,GAAGmyJ,GAAM,GAChC3B,GAAShxJ,KAAKkzJ,SAAS1yJ,GAAGmyJ,GAAM,IAIpC3yJ,KAAKiyJ,OAAOzxJ,IAAMuwJ,EAAOC,OAO7BzpJ,IAAK,kBACLhF,MAAO,SAAyB/B,GAU9B,IAAK,GATDsnI,GAAa9nI,KAAK2Q,KAAKupG,YACvBD,EAAQj6G,KAAK2Q,KAAKspG,MAClBo5C,EAAOrzJ,KAAKkzJ,SAAS1yJ,GACrB8yJ,EAAQtzJ,KAAKwyJ,SAAShyJ,GACtB+yJ,EAAQvzJ,KAAK0yJ,SAASlyJ,GACtB6xJ,EAAMp4C,EAAMz5G,GAAGy0B,EACfq9H,EAAMr4C,EAAMz5G,GAAGquB,EACfkiI,EAAQ,EACRC,EAAQ,EACH2B,EAAO,EAAGA,EAAO7qB,EAAWlkI,OAAQ+uJ,IAAQ,CACnD,GAAI5uJ,GAAI+jI,EAAW6qB,EACnB,IAAI5uJ,IAAMvD,EAAG,CAEX,GAAIgzJ,GAAOH,EAAKV,GACZc,EAAQD,EAAK,GACbE,EAAQF,EAAK,GAGbZ,EAAM34C,EAAMl2G,GAAGkxB,EACf49H,EAAM54C,EAAMl2G,GAAG8qB,EACfmkI,EAAc,EAAMvwJ,KAAKorD,KAAKprD,KAAKknB,IAAI0oI,EAAMO,EAAK,GAAKnwJ,KAAKknB,IAAI2oI,EAAMO,EAAK,IAC3E/0G,EAAKw1G,EAAMvvJ,IAAMsuJ,EAAMO,EAAMW,EAAMxvJ,IAAMsuJ,EAAMO,GAAOI,GACtDj1G,EAAKu1G,EAAMvvJ,IAAMuuJ,EAAMO,EAAMU,EAAMxvJ,IAAMuuJ,EAAMO,GAAOG,EAC1DK,GAAKV,IAAS70G,EAAIC,GAClBgzG,GAASjzG,EACTkzG,GAASjzG,CAGT,IAAIwR,GAAMvvD,KAAKiyJ,OAAOluJ,EACtBwrD,GAAI,IAAMzR,EAAK21G,EACflkG,EAAI,IAAMxR,EAAK21G,GAInB1zJ,KAAKiyJ,OAAOzxJ,IAAMuwJ,EAAOC,OAGtBv0C,IAIT78G,GAAiB,QAAI68G,GAIjB,SAAU58G,EAAQD,EAASM,GAgB/B,QAASW,GAAuBC,GAAO,MAAOA,IAAOA,EAAIC,WAAaD,GAAQE,QAAWF,GAZzF2D,OAAO6S,eAAe1X,EAAS,cAC7B2C,OAAO,GAGT,IAAImwF,GAAmBxyF,EAAoB,KAEvCyyF,EAAmB9xF,EAAuB6xF,GAE1CE,EAAgB1yF,EAAoB,KAEpC2yF,EAAgBhyF,EAAuB+xF,GAQvC+gE,EAAgB,WAClB,QAASA,MACP,EAAIhhE,EAA0B,SAAG3yF,KAAM2zJ,GAoDzC,OAjDA,EAAI9gE,EAAuB,SAAG8gE,IAC5BpsJ,IAAK,eACLhF,MAAO,SAAsBoO,EAAMm3H,EAAYuoB,GAK7C,IAAK,GAJDE,MACAp2C,EAAQxpG,EAAKwpG,MAGRp2G,EAAI,EAAGA,EAAI+jI,EAAWlkI,OAAQG,IAAK,CAC1C,GAAI0pC,GAAOq6F,EAAW/jI,GAClByvJ,IACJjD,GAAS9iH,GAAQ+lH,CACjB,KAAK,GAAI3lJ,GAAI,EAAGA,EAAIi6H,EAAWlkI,OAAQiK,IACrC2lJ,EAAK1rB,EAAWj6H,IAAM9J,GAAK8J,EAAI,EAAI,IAKvC,IAAK,GAAI+E,GAAK,EAAGA,EAAKy9I,EAAWzsJ,OAAQgP,IAAM,CAC7C,GAAI8sG,GAAOvF,EAAMk2C,EAAWz9I,KAEL,IAAnB8sG,EAAK4c,eAAgDz4H,KAA1B0sJ,EAAS7wC,EAAKqN,aAAiDlpH,KAAxB0sJ,EAAS7wC,EAAKoN,QAClFyjC,EAAS7wC,EAAKqN,QAAQrN,EAAKoN,MAAQ,EACnCyjC,EAAS7wC,EAAKoN,MAAMpN,EAAKqN,QAAU,GAOvC,IAAK,GAHDirB,GAAYlQ,EAAWlkI,OAGlBgK,EAAI,EAAGA,EAAIoqI,EAAWpqI,IAG7B,IAAK,GAFDgmJ,GAAQ9rB,EAAWl6H,GACnB0lJ,EAAQ/C,EAASqD,GACZvmB,EAAM,EAAGA,EAAM2K,EAAY,EAAG3K,IAGrC,IAAK,GAFDwmB,GAAQ/rB,EAAWuF,GACnBymB,EAAQvD,EAASsD,GACZt7D,EAAK80C,EAAM,EAAG90C,EAAKy/C,EAAWz/C,IAAM,CAC3C,GAAIw7D,GAAQjsB,EAAWvvC,GACnBy7D,EAAQzD,EAASwD,GAEjBp8I,EAAMlV,KAAKL,IAAI0xJ,EAAMC,GAAQD,EAAMF,GAASN,EAAMS,GACtDD,GAAMC,GAASp8I,EACfq8I,EAAMH,GAASl8I,EAKrB,MAAO44I,OAGJoD,IAGT/zJ,GAAiB,QAAI+zJ","file":"vis"} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index d7bb1da76..9eaf4db20 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.20.1 - * @date 2017-07-02 + * @version 4.20.1a + * @date 2017-08-14 * * @license * Copyright (C) 2011-2017 Almende B.V, http://almende.com @@ -22,25 +22,25 @@ * * Vis.js may be distributed under either license. */ -"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={exports:{},id:o,loaded:!1};return t[o].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){var o=i(1);o.extend(e,i(87)),o.extend(e,i(117)),o.extend(e,i(159))},function(t,e,i){function o(t){return t&&t.__esModule?t:{default:t}}var n=i(2),s=o(n),r=i(55),a=o(r),h=i(58),d=o(h),l=i(62),u=o(l),c=i(82),p=i(86);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;!0===t.hasChildNodes();)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,o){if(e==t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){if(f.exec(t))return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return p.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!==(0,u.default)(t[i])&&(t[i]=e)},e.fillIfDefined=function(t,i){var o=arguments.length>2&&void 0!==arguments[2]&&arguments[2];for(var n in t)void 0!==i[n]&&("object"!==(0,u.default)(i[n])?void 0!==i[n]&&null!==i[n]||void 0===t[n]||!0!==o?t[n]=i[n]:delete t[n]:"object"===(0,u.default)(t[n])&&e.fillIfDefined(t[n],i[n],o))},e.protoExtend=function(t,e){for(var i=1;i3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s=2;s3&&void 0!==arguments[3]&&arguments[3];if(Array.isArray(o))throw new TypeError("Arrays are not supported by deepExtend");for(var s in o)if(o.hasOwnProperty(s)&&-1==t.indexOf(s))if(o[s]&&o[s].constructor===Object)void 0===i[s]&&(i[s]={}),i[s].constructor===Object?e.deepExtend(i[s],o[s]):null===o[s]&&void 0!==i[s]&&!0===n?delete i[s]:i[s]=o[s];else if(Array.isArray(o[s])){i[s]=[];for(var r=0;r=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgba"))return t;if(-1!=t.indexOf("rgb")){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(!0===e.isString(t)){if(!0===e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(!0===e.isValidHex(t)){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t;return{h:60*((t==o?3:i==o?1:5)-s/(n-o))/360,s:(n-o)/n,v:n}};var m={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return(0,d.default)(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=m.split(t.style.cssText),n=m.split(i),s=e.extend(o,n);t.style.cssText=m.join(s)},e.removeCssText=function(t,e){var i=m.split(t.style.cssText),o=m.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=m.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t)},e.isValidRGB=function(t){return t=t.replace(" ",""),/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t)},e.isValidRGBA=function(t){return t=t.replace(" ",""),/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t)},e.selectiveBridgeObject=function(t,i){if("object"==(void 0===i?"undefined":(0,u.default)(i))){for(var o=(0,a.default)(i),n=0;n0&&e(o,t[n-1])<0;n--)t[n]=t[n-1];t[n]=o}return t},e.mergeOptions=function(t,e,i){var o=(arguments.length>3&&void 0!==arguments[3]&&arguments[3],arguments.length>4&&void 0!==arguments[4]?arguments[4]:{});if(null===e[i])t[i]=(0,a.default)(o[i]);else if(void 0!==e[i])if("boolean"==typeof e[i])t[i].enabled=e[i];else{void 0===e[i].enabled&&(t[i].enabled=!0);for(var n in e[i])e[i].hasOwnProperty(n)&&(t[i][n]=e[i][n])}},e.binarySearchCustom=function(t,e,i,o){for(var n=0,s=0,r=t.length-1;s<=r&&n<1e4;){var a=Math.floor((s+r)/2),h=t[a],d=void 0===o?h[i]:h[i][o],l=e(d);if(0==l)return a;-1==l?s=a+1:r=a-1,n++}return-1},e.binarySearchValue=function(t,e,i,o,n){for(var s,r,a,h,d=0,l=0,u=t.length-1,n=void 0!=n?n:function(t,e){return t==e?0:t0)return"before"==o?Math.max(0,h-1):h;if(n(r,e)<0&&n(a,e)>0)return"before"==o?h:Math.min(t.length-1,h+1);n(r,e)<0?l=h+1:u=h-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t}},e.getScrollBarWidth=function(){var t=document.createElement("p");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");e.style.position="absolute",e.style.top="0px",e.style.left="0px",e.style.visibility="hidden",e.style.width="200px",e.style.height="150px",e.style.overflow="hidden",e.appendChild(t),document.body.appendChild(e);var i=t.offsetWidth;e.style.overflow="scroll";var o=t.offsetWidth;return i==o&&(o=e.clientWidth),document.body.removeChild(e),i-o},e.topMost=function(t,e){var i=void 0;Array.isArray(e)||(e=[e]);var o=!0,n=!1,r=void 0;try{for(var a,h=(0,s.default)(t);!(o=(a=h.next()).done);o=!0){var d=a.value;if(d){i=d[e[0]];for(var l=1;l=t.length?(this._t=void 0,n(1)):"keys"==e?n(0,i):"values"==e?n(0,t[i]):n(0,[i,t[i]])},"values"),s.Arguments=s.Array,o("keys"),o("values"),o("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e){t.exports={}},function(t,e,i){var o=i(10),n=i(12);t.exports=function(t){return o(n(t))}},function(t,e,i){var o=i(11);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==o(t)?t.split(""):Object(t)}},function(t,e){var i={}.toString;t.exports=function(t){return i.call(t).slice(8,-1)}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,i){var o=i(14),n=i(15),s=i(30),r=i(20),a=i(31),h=i(8),d=i(32),l=i(46),u=i(48),c=i(47)("iterator"),p=!([].keys&&"next"in[].keys()),f=function(){return this};t.exports=function(t,e,i,m,v,g,y){d(i,e,m);var b,_,w,x=function(t){if(!p&&t in S)return S[t];switch(t){case"keys":case"values":return function(){return new i(this,t)}}return function(){return new i(this,t)}},k=e+" Iterator",D="values"==v,M=!1,S=t.prototype,O=S[c]||S["@@iterator"]||v&&S[v],C=O||x(v),T=v?D?x("entries"):C:void 0,E="Array"==e?S.entries||O:O;if(E&&(w=u(E.call(new t)))!==Object.prototype&&(l(w,k,!0),o||a(w,c)||r(w,c,f)),D&&O&&"values"!==O.name&&(M=!0,C=function(){return O.call(this)}),o&&!y||!p&&!M&&S[c]||r(S,c,C),h[e]=C,h[k]=f,v)if(b={values:D?C:x("values"),keys:g?C:x("keys"),entries:T},y)for(_ in b)_ in S||s(S,_,b[_]);else n(n.P+n.F*(p||M),e,b);return b}},function(t,e){t.exports=!0},function(t,e,i){var o=i(16),n=i(17),s=i(18),r=i(20),a=function(t,e,i){var h,d,l,u=t&a.F,c=t&a.G,p=t&a.S,f=t&a.P,m=t&a.B,v=t&a.W,g=c?n:n[e]||(n[e]={}),y=g.prototype,b=c?o:p?o[e]:(o[e]||{}).prototype;c&&(i=e);for(h in i)(d=!u&&b&&void 0!==b[h])&&h in g||(l=d?b[h]:i[h],g[h]=c&&"function"!=typeof b[h]?i[h]:m&&d?s(l,o):v&&b[h]==l?function(t){var e=function(e,i,o){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,i)}return new t(e,i,o)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(l):f&&"function"==typeof l?s(Function.call,l):l,f&&((g.virtual||(g.virtual={}))[h]=l,t&a.R&&y&&!y[h]&&r(y,h,l)))};a.F=1,a.G=2,a.S=4,a.P=8,a.B=16,a.W=32,a.U=64,a.R=128,t.exports=a},function(t,e){var i=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=i)},function(t,e){var i=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=i)},function(t,e,i){var o=i(19);t.exports=function(t,e,i){if(o(t),void 0===e)return t;switch(i){case 1:return function(i){return t.call(e,i)};case 2:return function(i,o){return t.call(e,i,o)};case 3:return function(i,o,n){return t.call(e,i,o,n)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){var o=i(21),n=i(29);t.exports=i(25)?function(t,e,i){return o.f(t,e,n(1,i))}:function(t,e,i){return t[e]=i,t}},function(t,e,i){var o=i(22),n=i(24),s=i(28),r=Object.defineProperty;e.f=i(25)?Object.defineProperty:function(t,e,i){if(o(t),e=s(e,!0),o(i),n)try{return r(t,e,i)}catch(t){}if("get"in i||"set"in i)throw TypeError("Accessors not supported!");return"value"in i&&(t[e]=i.value),t}},function(t,e,i){var o=i(23);t.exports=function(t){if(!o(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,i){t.exports=!i(25)&&!i(26)(function(){return 7!=Object.defineProperty(i(27)("div"),"a",{get:function(){return 7}}).a})},function(t,e,i){t.exports=!i(26)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,i){var o=i(23),n=i(16).document,s=o(n)&&o(n.createElement);t.exports=function(t){return s?n.createElement(t):{}}},function(t,e,i){var o=i(23);t.exports=function(t,e){if(!o(t))return t;var i,n;if(e&&"function"==typeof(i=t.toString)&&!o(n=i.call(t)))return n;if("function"==typeof(i=t.valueOf)&&!o(n=i.call(t)))return n;if(!e&&"function"==typeof(i=t.toString)&&!o(n=i.call(t)))return n;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,i){t.exports=i(20)},function(t,e){var i={}.hasOwnProperty;t.exports=function(t,e){return i.call(t,e)}},function(t,e,i){var o=i(33),n=i(29),s=i(46),r={};i(20)(r,i(47)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=o(r,{next:n(1,i)}),s(t,e+" Iterator")}},function(t,e,i){var o=i(22),n=i(34),s=i(44),r=i(41)("IE_PROTO"),a=function(){},h=function(){var t,e=i(27)("iframe"),o=s.length;for(e.style.display="none",i(45).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write("