{"version":3,"sources":["webpack:///./node_modules/core-js/internals/engine-ff-version.js","webpack:///./node_modules/core-js/modules/es.object.values.js","webpack:///./src/components/Games/X100/Header.vue?7aa0","webpack:///./src/assets/icons/roulette-x100.svg","webpack:///./src/components/Games/Features.vue?31da","webpack:///./src/assets/images/x100/sync.svg","webpack:///./src/views/x100.vue?da29","webpack:///./src/components/Games/X100/Header.vue?c501","webpack:///./src/components/Games/X100/Header.vue","webpack:///./src/components/Games/X100/Buttons.vue?88ec","webpack:///./src/config/x100.js","webpack:///src/components/Games/X100/Buttons.vue","webpack:///./src/components/Games/X100/Buttons.vue?8867","webpack:///./src/components/Games/X100/Buttons.vue","webpack:///./src/components/Games/X100/Timer.vue?3442","webpack:///src/components/Games/X100/Timer.vue","webpack:///./src/components/Games/X100/Timer.vue?a27d","webpack:///./src/components/Games/X100/Timer.vue","webpack:///./src/components/Games/Features.vue?36c3","webpack:///src/components/Games/Features.vue","webpack:///./src/components/Games/Features.vue?b4f4","webpack:///./src/components/Games/Features.vue","webpack:///./src/components/Games/X100/History.vue?c3d3","webpack:///src/components/Games/X100/History.vue","webpack:///./src/components/Games/X100/History.vue?b3f8","webpack:///./src/components/Games/X100/History.vue","webpack:///./node_modules/d3-dispatch/src/dispatch.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/array.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/iterator.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-timer/src/timer.js","webpack:///./node_modules/d3-timer/src/timeout.js","webpack:///./node_modules/d3-transition/src/transition/schedule.js","webpack:///./node_modules/d3-transition/src/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-transition/src/selection/interrupt.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-transition/src/transition/tween.js","webpack:///./node_modules/d3-transition/src/transition/interpolate.js","webpack:///./node_modules/d3-transition/src/transition/attr.js","webpack:///./node_modules/d3-transition/src/transition/attrTween.js","webpack:///./node_modules/d3-transition/src/transition/delay.js","webpack:///./node_modules/d3-transition/src/transition/duration.js","webpack:///./node_modules/d3-transition/src/transition/ease.js","webpack:///./node_modules/d3-transition/src/transition/easeVarying.js","webpack:///./node_modules/d3-transition/src/transition/filter.js","webpack:///./node_modules/d3-transition/src/transition/merge.js","webpack:///./node_modules/d3-transition/src/transition/on.js","webpack:///./node_modules/d3-transition/src/transition/remove.js","webpack:///./node_modules/d3-transition/src/transition/select.js","webpack:///./node_modules/d3-transition/src/transition/selectAll.js","webpack:///./node_modules/d3-transition/src/transition/selection.js","webpack:///./node_modules/d3-transition/src/transition/style.js","webpack:///./node_modules/d3-transition/src/transition/styleTween.js","webpack:///./node_modules/d3-transition/src/transition/text.js","webpack:///./node_modules/d3-transition/src/transition/textTween.js","webpack:///./node_modules/d3-transition/src/transition/transition.js","webpack:///./node_modules/d3-transition/src/transition/end.js","webpack:///./node_modules/d3-transition/src/transition/index.js","webpack:///./node_modules/d3-ease/src/cubic.js","webpack:///./node_modules/d3-transition/src/selection/transition.js","webpack:///./node_modules/d3-transition/src/selection/index.js","webpack:///./node_modules/d3-brush/src/brush.js","webpack:///./node_modules/d3-path/src/path.js","webpack:///./node_modules/d3-shape/src/constant.js","webpack:///./node_modules/d3-shape/src/math.js","webpack:///./node_modules/d3-shape/src/arc.js","webpack:///./node_modules/d3-shape/src/array.js","webpack:///./node_modules/d3-shape/src/descending.js","webpack:///./node_modules/d3-shape/src/identity.js","webpack:///./node_modules/d3-shape/src/pie.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-zoom/src/transform.js","webpack:///./node_modules/d3-zoom/src/zoom.js","webpack:///./src/components/Games/WinModal.vue?91f7","webpack:///src/components/Games/WinModal.vue","webpack:///./src/components/Games/WinModal.vue?c9aa","webpack:///./src/components/Games/WinModal.vue","webpack:///src/views/x100.vue","webpack:///./src/views/x100.vue?aed0","webpack:///./src/views/x100.vue","webpack:///./node_modules/core-js/modules/es.array.sort.js","webpack:///./node_modules/core-js/internals/engine-webkit-version.js","webpack:///./src/components/Games/WinModal.vue?b12f","webpack:///./src/assets/icons/headphones-gray.svg","webpack:///./src/components/Games/X100/Buttons.vue?552f","webpack:///./src/views/x100.vue?97f1","webpack:///./src/components/Games/X100/Timer.vue?8dc9","webpack:///./node_modules/core-js/internals/array-sort.js","webpack:///./src/assets/images/x100/cursor.png","webpack:///./node_modules/core-js/modules/es.array.find-index.js","webpack:///./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack:///./src/components/Games/X100/History.vue?18da"],"names":["userAgent","firefox","match","module","exports","$","$values","values","target","stat","O","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","centrifuge","ref","style","response","history","class","disabled","type","manyX","getUserAmounts","on","bet","bets","data","length","setAmount","repeatBets","_e","staticRenderFns","_m","_v","script","component","_l","x","color","key","$event","$emit","_s","banks","_f","colors","lightblue","yellow","pink","red","black","green","orange","blue","purple","xs","props","Number","Object","buttons","filters","fixedNumber","value","toFixed","time","convertTime","t","n","amount","coin","_obj","active","change","access","coins","methods","$data","game","id","domProps","random","signature","winner_color","Array","noop","dispatch","i","arguments","_","test","Error","Dispatch","parseTypenames","typenames","types","trim","split","map","name","indexOf","slice","hasOwnProperty","get","c","set","callback","concat","push","prototype","constructor","typename","T","copy","call","that","args","apply","none","selector","querySelector","select","groups","_groups","m","subgroups","j","node","subnode","group","subgroup","__data__","Selection","_parents","array","isArray","from","querySelectorAll","arrayAll","selectorAll","parents","matches","childMatcher","find","childFind","children","childFirst","firstElementChild","filter","childrenFilter","selectAll","matcher","update","_enter","sparse","EnterNode","parent","datum","ownerDocument","namespaceURI","_next","_parent","appendChild","child","insertBefore","next","bindIndex","enter","exit","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","Map","keyValues","has","delete","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","previous","i0","i1","_exit","onenter","selection","append","onupdate","onexit","remove","merge","order","context","groups0","groups1","m0","m1","Math","min","merges","group0","group1","compareDocumentPosition","parentNode","compareNode","a","b","compare","ascending","sortgroups","sortgroup","sort","NaN","size","xhtml","svg","xlink","xml","xmlns","prefix","namespaces","space","local","attrRemove","removeAttribute","attrRemoveNS","fullname","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","v","attrFunctionNS","namespace","getAttributeNS","getAttribute","each","defaultView","document","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","classedAdd","names","list","add","classedRemove","classedTrue","classedFalse","classedFunction","join","splice","contains","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","lower","previousSibling","firstChild","creatorInherit","uri","documentElement","createElement","createElementNS","creatorFixed","create","creator","constantNull","before","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","deep","property","contextListener","listener","event","onRemove","__on","o","removeEventListener","options","onAdd","addEventListener","dispatchEvent","params","window","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","selection_select","selectChild","selectChildren","selection_filter","selection_data","selection_enter","selection_exit","selection_merge","selection_sort","nodes","selection_node","selection_size","empty","selection_empty","attr","classed","text","selection_text","html","selection_raise","selection_lower","insert","selection_remove","selection_datum","selection_on","selection_dispatch","Symbol","iterator","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","color_formatHex","rgb","formatHex","color_formatHsl","hslConvert","formatHsl","color_formatRgb","formatRgb","format","l","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","opacity","rgb_formatHex","hex","rgb_formatRgb","isNaN","max","round","toString","h","s","Hsl","hsl","hsl2rgb","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","assign","displayable","k","pow","floor","linear","d","exponential","y","gamma","nogamma","start","end","rgbGamma","rgbSpline","spline","basisClosed","reA","reB","source","zero","one","taskHead","taskTail","am","bm","bs","bi","lastIndex","q","index","number","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","f","setTimeout","clearNow","_call","_time","timer","delay","restart","timerFlush","e","undefined","wake","nap","poke","t0","Infinity","sleep","clearTimeout","clearInterval","setInterval","TypeError","stop","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedules","__transition","tween","timing","duration","ease","state","init","schedule","self","tick","svgNode","interrupt","degrees","PI","identity","translateX","translateY","rotate","skewX","scaleX","scaleY","sqrt","atan2","atan","parseCss","DOMMatrix","WebKitCSSMatrix","isIdentity","decompose","parseSvg","transform","baseVal","consolidate","matrix","interpolateTransform","parse","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","scale","interpolateTransformCss","interpolateTransformSvg","tweenRemove","tween0","tween1","tweenFunction","_id","tweenValue","transition","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTween","attrInterpolate","attrInterpolateNS","attrTweenNS","_value","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","easeVarying","Transition","_name","every","onFunction","on0","on1","sit","removeFunction","inherit","styleNull","styleMaybeRemove","listener0","styleTween","styleInterpolate","textInterpolate","textTween","id0","id1","newId","Promise","resolve","reject","cancel","selection_prototype","cubicInOut","transition_select","transition_selectAll","transition_filter","transition_merge","transition_selection","transition_transition","transition_on","transition_attr","transition_attrTween","transition_style","transition_styleTween","transition_text","transition_textTween","transition_remove","transition_tween","transition_delay","transition_duration","transition_easeVarying","transition_end","defaultTiming","selection_interrupt","selection_transition","abs","number1","number2","pi","tau","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","path","moveTo","closePath","lineTo","quadraticCurveTo","x1","y1","bezierCurveTo","x2","y2","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","arc","a0","a1","ccw","dx","cos","dy","sin","cw","da","rect","w","halfPi","asin","arcInnerRadius","innerRadius","arcOuterRadius","outerRadius","arcStartAngle","startAngle","arcEndAngle","endAngle","arcPadAngle","padAngle","intersect","x3","y3","x10","y10","x32","y32","cornerTangents","r1","rc","lo","ox","oy","x11","y11","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","cx","cy","cornerRadius","padRadius","buffer","r0","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","p0","p1","oc","ax","ay","bx","by","kc","lc","centroid","sortValues","descending","pie","sum","arcs","p","pa","epsilon2","cosh","exp","sinh","tanh","zoom","S","ux0","uy0","w0","ux1","uy1","w1","log","rho","d1","b0","rho4","rho2","b1","coshr0","u","SQRT2","_1","_2","_4","zoomRho","Transform","point","applyX","applyY","invert","location","invertX","invertY","rescaleX","domain","range","rescaleY","__zoom","directives","rawName","expression","onClickOutside","coeff","dopCoeff","convertAmount","winSum","allwin","user","computed","clickOutside","$store","commit","fixedTo","wheelTransform","broadcast","positions","currentRotate","styleObject","chart","wheel","lock","slider","object","currency","destroyed","unsubscribe","events","$centrifuge","subscribe","wheelRotate","angles","wheelCreate","watch","components","Header","Buttons","Features","Timer","History","WinModal","aFunction","toObject","toLength","fails","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","result","String","fromCharCode","charAt","FORCED","getSortCompare","comparefn","proto","forced","itemsLength","items","arrayLength","webkit","mergeSort","middle","insertionSort","element","left","right","llength","rlength","lindex","rindex","$findIndex","findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","callbackfn","UA"],"mappings":"qGAAA,IAAIA,EAAY,EAAQ,QAEpBC,EAAUD,EAAUE,MAAM,mBAE9BC,EAAOC,UAAYH,IAAYA,EAAQ,I,gDCJvC,IAAII,EAAI,EAAQ,QACZC,EAAU,EAAQ,QAAgCC,OAItDF,EAAE,CAAEG,OAAQ,SAAUC,MAAM,GAAQ,CAClCF,OAAQ,SAAgBG,GACtB,OAAOJ,EAAQI,O,6DCPnB,W,uBCAAP,EAAOC,QAAU,IAA0B,kC,kCCA3C,W,qBCAAD,EAAOC,QAAU,IAA0B,yB,oECA3C,IAAIO,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,UAAUA,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,QAAQ,CAACG,MAAM,CAAC,WAAaP,EAAIQ,cAAcJ,EAAG,MAAM,CAACE,YAAY,mBAAmB,CAACF,EAAG,MAAM,CAACE,YAAY,SAASC,MAAM,CAAC,IAAM,SAAS,IAAM,EAAQ,WAAsCH,EAAG,MAAM,CAACK,IAAI,QAAQC,MAAOV,EAAe,YAAEO,MAAM,CAAC,QAAU,cAAc,oBAAsB,qBAAqBH,EAAG,UAAU,CAACG,MAAM,CAAC,QAAUP,EAAIW,SAASC,YAAY,IAAI,GAAIZ,EAAc,WAAEI,EAAG,MAAM,CAACE,YAAY,OAAOO,MAAM,CAC/lBC,SAAkC,WAAxBd,EAAIQ,WAAWO,OACxB,CAACX,EAAG,UAAU,CAACG,MAAM,CAAC,MAAQP,EAAIgB,MAAM,MAAQhB,EAAIiB,gBAAgBC,GAAG,CAAC,IAAMlB,EAAImB,OAAOf,EAAG,WAAW,CAACG,MAAM,CAAC,OAASP,EAAIoB,KAAKC,KAAKC,QAAQJ,GAAG,CAAC,UAAYlB,EAAIuB,UAAU,OAASvB,EAAIwB,eAAe,GAAGxB,EAAIyB,KAAMzB,EAAY,SAAEI,EAAG,YAAYJ,EAAIyB,MAAM,IAC/PC,EAAkB,G,wBCHlB,G,0FAAS,WAAa,IAAI1B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,UAAU,CAACN,EAAI2B,GAAG,GAAGvB,EAAG,cAAc,CAACE,YAAY,OAAOC,MAAM,CAAC,GAAK,SAAS,CAACH,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACN,EAAI4B,GAAG,oBAAoBxB,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACG,MAAM,CAAC,IAAM,aAAa,IAAM,EAAQ,gBAA8C,KAC7X,EAAkB,CAAC,WAAa,IAAIP,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACG,MAAM,CAAC,IAAM,OAAO,IAAM,EAAQ,aAAyCP,EAAI4B,GAAG,c,wBCAjQC,EAAS,GAMTC,EAAY,eACdD,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAC,E,QClBX,EAAS,WAAa,IAAI9B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAW,QAAEI,EAAG,MAAM,CAACE,YAAY,WAAWN,EAAI+B,GAAI/B,EAAW,SAAE,SAASgC,EAAEC,GAAO,OAAO7B,EAAG,SAAS,CAAC8B,IAAID,EAAMpB,MAAMoB,EAAMf,GAAG,CAAC,MAAQ,SAASiB,GAAQ,OAAOnC,EAAIoC,MAAM,MAAOH,MAAU,CAACjC,EAAI4B,GAAG,KAAK5B,EAAIqC,GAAGL,EAAIhC,EAAIgB,OAAO,KAAMhB,EAAIsC,MAAML,GAAS,EAAG7B,EAAG,OAAO,CAACE,YAAY,QAAQ,CAACN,EAAI4B,GAAG5B,EAAIqC,GAAGrC,EAAIuC,GAAG,cAAPvC,CAAsBA,EAAIsC,MAAML,KAAS,QAAQjC,EAAIyB,UAAS,GAAGzB,EAAIyB,MAC7c,EAAkB,GCDhBe,G,UAAS,CACbC,UAAW,UACXC,OAAQ,UACRC,KAAM,UACNC,IAAK,UACLC,MAAO,UACPC,MAAO,UACPC,OAAQ,UACRC,KAAM,UACNC,OAAQ,YAGJC,EAAK,CACTT,UAAW,EACXC,OAAQ,EACRC,KAAM,EACNG,MAAO,GACPG,OAAQ,GACRF,OAAQ,GACRC,KAAM,GACNJ,IAAK,KCFP,GACEO,MAAO,CACLnC,MAAOoC,OACPd,MAAOe,QAEThC,KALF,WAMI,MAAO,CACLiC,QAASJ,IAGbK,QAAS,CACPC,YADJ,SACA,GACM,OAAOJ,OAAOK,GAAOC,QAAQ,MC9B4U,ICQ3W,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAI1D,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,MAAgC,WAAxBF,EAAIQ,WAAWO,KAAmBX,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACN,EAAI4B,GAAG,qBAAqBxB,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACN,EAAI4B,GAAG5B,EAAIqC,GAAGrC,EAAIuC,GAAG,cAAPvC,CAAsBA,EAAIQ,WAAWmD,YAAY3D,EAAIyB,MAC5T,EAAkB,GCOtB,GACE0B,MAAO,CACL3C,WAAY6C,QAEdE,QAAS,CACPK,YADJ,WACA,+DACA,mBACA,SACM,OAAOC,EAAI,KAAOA,EAAI,IAAMA,GAAIC,EAAI,KAAOA,EAAI,IAAMA,GAAID,EAAI,IAAMC,KChBoS,ICQzW,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAI9D,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,YAAY,CAAEN,EAAU,OAAEI,EAAG,OAAO,CAACE,YAAY,OAAOY,GAAG,CAAC,MAAQ,SAASiB,GAAQ,OAAOnC,EAAIoC,MAAM,SAAU,MAAM,CAAChC,EAAG,OAAO,CAACJ,EAAI4B,GAAG,QAAQ5B,EAAI4B,GAAG,eAAe5B,EAAIyB,KAAKzB,EAAI+B,GAAI/B,EAAS,OAAE,SAAS+D,EAAOC,GACzU,IAAIC,EACJ,OAAO7D,EAAG,MAAM,CAAC8B,IAAI8B,EAAK1D,YAAY,OAAOO,OAAQoD,EAAO,CAAEC,OAAQF,IAAShE,EAAIkE,QAAUD,EAAKD,IAAQ,EAAMC,GAAO/C,GAAG,CAAC,MAAQ,SAASiB,GAAQ,OAAOnC,EAAImE,OAAOH,MAAS,CAAChE,EAAI4B,GAAG,IAAI5B,EAAIqC,GAAG0B,GAAQ,UAAU/D,EAAU,OAAEI,EAAG,OAAO,CAACE,YAAY,OAAOY,GAAG,CAAC,MAAQ,SAASiB,GAAQ,OAAOnC,EAAIoC,MAAM,SAAU,MAAM,CAACpC,EAAI2B,GAAG,GAAG3B,EAAI4B,GAAG,iBAAiB5B,EAAIyB,MAAM,IACrW,EAAkB,CAAC,WAAa,IAAIzB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,OAAO,CAACA,EAAG,MAAM,CAACG,MAAM,CAAC,IAAM,YAAY,IAAM,EAAQ,eCwBtK,GACE4C,MAAO,CACLiB,OAAQhB,QAEV/B,KAJF,WAKI,MAAO,CACL6C,OAAQ,SACRG,MAAO,CACL3B,OAAQ,EACRO,OAAQ,GACRR,UAAW,GACXK,MAAO,IACPC,OAAQ,IACRH,IAAK,QAIX0B,QAAS,CACPH,OADJ,SACA,GACMlE,KAAKsE,MAAML,OAASjC,EACpBhC,KAAKmC,MAAM,YAAanC,KAAKsE,MAAMF,MAAMpC,OC/CkT,ICQ7V,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAIjC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,WAAWN,EAAI+B,GAAI/B,EAAW,SAAE,SAASwE,GAAM,OAAOpE,EAAG,OAAO,CAAC8B,IAAIsC,EAAKC,GAAGlE,MAAM,CAAC,OAAS,gCAAgC,OAAS,OAAO,OAAS,WAAW,CAACH,EAAG,QAAQ,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,SAAS,MAAQ,UAAUH,EAAG,QAAQ,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,UAAUmE,SAAS,CAAC,MAAQF,EAAKG,UAAUvE,EAAG,QAAQ,CAACG,MAAM,CAAC,KAAO,SAAS,KAAO,aAAamE,SAAS,CAAC,MAAQF,EAAKI,aAAaxE,EAAG,SAAS,CAACS,MAAM2D,EAAKK,aAAatE,MAAM,CAAC,KAAO,iBAAgB,IAC5kB,EAAkB,GCkBtB,GACE4C,MAAO,CACLvC,QAASkE,QCrBkW,ICQ3W,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,oBCnBXC,EAAO,CAACtB,MAAO,QAEnB,SAASuB,IACP,IAAK,IAAyCnB,EAArCoB,EAAI,EAAGnB,EAAIoB,UAAU5D,OAAQ6D,EAAI,GAAOF,EAAInB,IAAKmB,EAAG,CAC3D,KAAMpB,EAAIqB,UAAUD,GAAK,KAAQpB,KAAKsB,GAAM,QAAQC,KAAKvB,GAAI,MAAM,IAAIwB,MAAM,iBAAmBxB,GAChGsB,EAAEtB,GAAK,GAET,OAAO,IAAIyB,EAASH,GAGtB,SAASG,EAASH,GAChBlF,KAAKkF,EAAIA,EAGX,SAASI,EAAeC,EAAWC,GACjC,OAAOD,EAAUE,OAAOC,MAAM,SAASC,KAAI,SAAS/B,GAClD,IAAIgC,EAAO,GAAIZ,EAAIpB,EAAEiC,QAAQ,KAE7B,GADIb,GAAK,IAAGY,EAAOhC,EAAEkC,MAAMd,EAAI,GAAIpB,EAAIA,EAAEkC,MAAM,EAAGd,IAC9CpB,IAAM4B,EAAMO,eAAenC,GAAI,MAAM,IAAIwB,MAAM,iBAAmBxB,GACtE,MAAO,CAAC9C,KAAM8C,EAAGgC,KAAMA,MA6C3B,SAASI,EAAIlF,EAAM8E,GACjB,IAAK,IAA4BK,EAAxBjB,EAAI,EAAGnB,EAAI/C,EAAKO,OAAW2D,EAAInB,IAAKmB,EAC3C,IAAKiB,EAAInF,EAAKkE,IAAIY,OAASA,EACzB,OAAOK,EAAEzC,MAKf,SAAS0C,EAAIpF,EAAM8E,EAAMO,GACvB,IAAK,IAAInB,EAAI,EAAGnB,EAAI/C,EAAKO,OAAQ2D,EAAInB,IAAKmB,EACxC,GAAIlE,EAAKkE,GAAGY,OAASA,EAAM,CACzB9E,EAAKkE,GAAKF,EAAMhE,EAAOA,EAAKgF,MAAM,EAAGd,GAAGoB,OAAOtF,EAAKgF,MAAMd,EAAI,IAC9D,MAIJ,OADgB,MAAZmB,GAAkBrF,EAAKuF,KAAK,CAACT,KAAMA,EAAMpC,MAAO2C,IAC7CrF,EAzDTuE,EAASiB,UAAYvB,EAASuB,UAAY,CACxCC,YAAalB,EACbpE,GAAI,SAASuF,EAAUL,GACrB,IAEIvC,EAFAsB,EAAIlF,KAAKkF,EACTuB,EAAInB,EAAekB,EAAW,GAAItB,GAElCF,GAAK,EACLnB,EAAI4C,EAAEpF,OAGV,KAAI4D,UAAU5D,OAAS,GAAvB,CAOA,GAAgB,MAAZ8E,GAAwC,oBAAbA,EAAyB,MAAM,IAAIf,MAAM,qBAAuBe,GAC/F,QAASnB,EAAInB,EACX,GAAID,GAAK4C,EAAWC,EAAEzB,IAAIlE,KAAMoE,EAAEtB,GAAKsC,EAAIhB,EAAEtB,GAAI4C,EAASZ,KAAMO,QAC3D,GAAgB,MAAZA,EAAkB,IAAKvC,KAAKsB,EAAGA,EAAEtB,GAAKsC,EAAIhB,EAAEtB,GAAI4C,EAASZ,KAAM,MAG1E,OAAO5F,KAZL,QAASgF,EAAInB,EAAG,IAAKD,GAAK4C,EAAWC,EAAEzB,IAAIlE,QAAU8C,EAAIoC,EAAId,EAAEtB,GAAI4C,EAASZ,OAAQ,OAAOhC,GAc/F8C,KAAM,WACJ,IAAIA,EAAO,GAAIxB,EAAIlF,KAAKkF,EACxB,IAAK,IAAItB,KAAKsB,EAAGwB,EAAK9C,GAAKsB,EAAEtB,GAAGkC,QAChC,OAAO,IAAIT,EAASqB,IAEtBC,KAAM,SAAS7F,EAAM8F,GACnB,IAAK/C,EAAIoB,UAAU5D,OAAS,GAAK,EAAG,IAAK,IAAgCwC,EAAGD,EAA/BiD,EAAO,IAAIhC,MAAMhB,GAAImB,EAAI,EAASA,EAAInB,IAAKmB,EAAG6B,EAAK7B,GAAKC,UAAUD,EAAI,GACnH,IAAKhF,KAAKkF,EAAEa,eAAejF,GAAO,MAAM,IAAIsE,MAAM,iBAAmBtE,GACrE,IAAK8C,EAAI5D,KAAKkF,EAAEpE,GAAOkE,EAAI,EAAGnB,EAAID,EAAEvC,OAAQ2D,EAAInB,IAAKmB,EAAGpB,EAAEoB,GAAGxB,MAAMsD,MAAMF,EAAMC,IAEjFC,MAAO,SAAShG,EAAM8F,EAAMC,GAC1B,IAAK7G,KAAKkF,EAAEa,eAAejF,GAAO,MAAM,IAAIsE,MAAM,iBAAmBtE,GACrE,IAAK,IAAI8C,EAAI5D,KAAKkF,EAAEpE,GAAOkE,EAAI,EAAGnB,EAAID,EAAEvC,OAAQ2D,EAAInB,IAAKmB,EAAGpB,EAAEoB,GAAGxB,MAAMsD,MAAMF,EAAMC,KAuBxE,QCnFf,SAASE,KAEM,kBACb,OAAmB,MAAZC,EAAmBD,EAAO,WAC/B,OAAO/G,KAAKiH,cAAcD,KCDf,cACS,oBAAXE,IAAuBA,EAAS,EAASA,IAEpD,IAAK,IAAIC,EAASnH,KAAKoH,QAASC,EAAIF,EAAO9F,OAAQiG,EAAY,IAAIzC,MAAMwC,GAAIE,EAAI,EAAGA,EAAIF,IAAKE,EAC3F,IAAK,IAAiFC,EAAMC,EAAnFC,EAAQP,EAAOI,GAAI1D,EAAI6D,EAAMrG,OAAQsG,EAAWL,EAAUC,GAAK,IAAI1C,MAAMhB,GAAmBmB,EAAI,EAAGA,EAAInB,IAAKmB,GAC9GwC,EAAOE,EAAM1C,MAAQyC,EAAUP,EAAOP,KAAKa,EAAMA,EAAKI,SAAU5C,EAAG0C,MAClE,aAAcF,IAAMC,EAAQG,SAAWJ,EAAKI,UAChDD,EAAS3C,GAAKyC,GAKpB,OAAO,IAAII,GAAUP,EAAWtH,KAAK8H,WCTxB,SAASC,EAAMhG,GAC5B,OAAY,MAALA,EAAY,GAAK8C,MAAMmD,QAAQjG,GAAKA,EAAI8C,MAAMoD,KAAKlG,GCP5D,SAAS,IACP,MAAO,GAGM,kBACb,OAAmB,MAAZiF,EAAmB,EAAQ,WAChC,OAAOhH,KAAKkI,iBAAiBlB,KCFjC,SAASmB,EAASjB,GAChB,OAAO,WACL,OAAOa,EAAMb,EAAOJ,MAAM9G,KAAMiF,aAIrB,mBACqBiC,EAAZ,oBAAXA,EAAgCiB,EAASjB,GACtCkB,EAAYlB,GAE1B,IAAK,IAAIC,EAASnH,KAAKoH,QAASC,EAAIF,EAAO9F,OAAQiG,EAAY,GAAIe,EAAU,GAAId,EAAI,EAAGA,EAAIF,IAAKE,EAC/F,IAAK,IAAyCC,EAArCE,EAAQP,EAAOI,GAAI1D,EAAI6D,EAAMrG,OAAc2D,EAAI,EAAGA,EAAInB,IAAKmB,GAC9DwC,EAAOE,EAAM1C,MACfsC,EAAUjB,KAAKa,EAAOP,KAAKa,EAAMA,EAAKI,SAAU5C,EAAG0C,IACnDW,EAAQhC,KAAKmB,IAKnB,OAAO,IAAIK,GAAUP,EAAWe,ICvBnB,eACb,OAAO,WACL,OAAOrI,KAAKsI,QAAQtB,KAIjB,SAASuB,GAAavB,GAC3B,OAAO,SAASQ,GACd,OAAOA,EAAKc,QAAQtB,ICNxB,IAAIwB,GAAO3D,MAAMyB,UAAUkC,KAE3B,SAASC,GAAUpJ,GACjB,OAAO,WACL,OAAOmJ,GAAK7B,KAAK3G,KAAK0I,SAAUrJ,IAIpC,SAASsJ,KACP,OAAO3I,KAAK4I,kBAGC,mBACb,OAAO5I,KAAKkH,OAAgB,MAAT7H,EAAgBsJ,GAC7BF,GAA2B,oBAAVpJ,EAAuBA,EAAQkJ,GAAalJ,MCdjE,GAASwF,MAAMyB,UAAUuC,OAE7B,SAAS,KACP,OAAOhE,MAAMoD,KAAKjI,KAAK0I,UAGzB,SAASI,GAAezJ,GACtB,OAAO,WACL,OAAO,GAAOsH,KAAK3G,KAAK0I,SAAUrJ,IAIvB,mBACb,OAAOW,KAAK+I,UAAmB,MAAT1J,EAAgB,GAChCyJ,GAAgC,oBAAVzJ,EAAuBA,EAAQkJ,GAAalJ,MCb3D,eACQ,oBAAVA,IAAsBA,EAAQ2J,GAAQ3J,IAEjD,IAAK,IAAI8H,EAASnH,KAAKoH,QAASC,EAAIF,EAAO9F,OAAQiG,EAAY,IAAIzC,MAAMwC,GAAIE,EAAI,EAAGA,EAAIF,IAAKE,EAC3F,IAAK,IAAuEC,EAAnEE,EAAQP,EAAOI,GAAI1D,EAAI6D,EAAMrG,OAAQsG,EAAWL,EAAUC,GAAK,GAAUvC,EAAI,EAAGA,EAAInB,IAAKmB,GAC3FwC,EAAOE,EAAM1C,KAAO3F,EAAMsH,KAAKa,EAAMA,EAAKI,SAAU5C,EAAG0C,IAC1DC,EAAStB,KAAKmB,GAKpB,OAAO,IAAIK,GAAUP,EAAWtH,KAAK8H,WCdxB,eACb,OAAO,IAAIjD,MAAMoE,EAAO5H,SCEX,cACb,OAAO,IAAIwG,GAAU7H,KAAKkJ,QAAUlJ,KAAKoH,QAAQzB,IAAIwD,IAASnJ,KAAK8H,WAG9D,SAASsB,GAAUC,EAAQC,GAChCtJ,KAAKuJ,cAAgBF,EAAOE,cAC5BvJ,KAAKwJ,aAAeH,EAAOG,aAC3BxJ,KAAKyJ,MAAQ,KACbzJ,KAAK0J,QAAUL,EACfrJ,KAAK4H,SAAW0B,EAGlBF,GAAU9C,UAAY,CACpBC,YAAa6C,GACbO,YAAa,SAASC,GAAS,OAAO5J,KAAK0J,QAAQG,aAAaD,EAAO5J,KAAKyJ,QAC5EI,aAAc,SAASD,EAAOE,GAAQ,OAAO9J,KAAK0J,QAAQG,aAAaD,EAAOE,IAC9E7C,cAAe,SAASD,GAAY,OAAOhH,KAAK0J,QAAQzC,cAAcD,IACtEkB,iBAAkB,SAASlB,GAAY,OAAOhH,KAAK0J,QAAQxB,iBAAiBlB,KCpB/D,mBACb,OAAO,WACL,OAAOjF,ICEX,SAASgI,GAAUV,EAAQ3B,EAAOsC,EAAOf,EAAQgB,EAAM7I,GASrD,IARA,IACIoG,EADAxC,EAAI,EAEJkF,EAAcxC,EAAMrG,OACpB8I,EAAa/I,EAAKC,OAKf2D,EAAImF,IAAcnF,GACnBwC,EAAOE,EAAM1C,KACfwC,EAAKI,SAAWxG,EAAK4D,GACrBiE,EAAOjE,GAAKwC,GAEZwC,EAAMhF,GAAK,IAAIoE,GAAUC,EAAQjI,EAAK4D,IAK1C,KAAOA,EAAIkF,IAAelF,GACpBwC,EAAOE,EAAM1C,MACfiF,EAAKjF,GAAKwC,GAKhB,SAAS4C,GAAQf,EAAQ3B,EAAOsC,EAAOf,EAAQgB,EAAM7I,EAAMa,GACzD,IAAI+C,EACAwC,EAKA6C,EAJAC,EAAiB,IAAIC,IACrBL,EAAcxC,EAAMrG,OACpB8I,EAAa/I,EAAKC,OAClBmJ,EAAY,IAAI3F,MAAMqF,GAK1B,IAAKlF,EAAI,EAAGA,EAAIkF,IAAelF,GACzBwC,EAAOE,EAAM1C,MACfwF,EAAUxF,GAAKqF,EAAWpI,EAAI0E,KAAKa,EAAMA,EAAKI,SAAU5C,EAAG0C,GAAS,GAChE4C,EAAeG,IAAIJ,GACrBJ,EAAKjF,GAAKwC,EAEV8C,EAAepE,IAAImE,EAAU7C,IAQnC,IAAKxC,EAAI,EAAGA,EAAImF,IAAcnF,EAC5BqF,EAAWpI,EAAI0E,KAAK0C,EAAQjI,EAAK4D,GAAIA,EAAG5D,GAAQ,IAC5CoG,EAAO8C,EAAetE,IAAIqE,KAC5BpB,EAAOjE,GAAKwC,EACZA,EAAKI,SAAWxG,EAAK4D,GACrBsF,EAAeI,OAAOL,IAEtBL,EAAMhF,GAAK,IAAIoE,GAAUC,EAAQjI,EAAK4D,IAK1C,IAAKA,EAAI,EAAGA,EAAIkF,IAAelF,GACxBwC,EAAOE,EAAM1C,KAAQsF,EAAetE,IAAIwE,EAAUxF,MAAQwC,IAC7DyC,EAAKjF,GAAKwC,GAKhB,SAAS8B,GAAM9B,GACb,OAAOA,EAAKI,SAGC,qBACb,IAAK3C,UAAU5D,OAAQ,OAAOwD,MAAMoD,KAAKjI,KAAMsJ,IAE/C,IAAIqB,EAAO1I,EAAMmI,GAAUL,GACvB1B,EAAUrI,KAAK8H,SACfX,EAASnH,KAAKoH,QAEG,oBAAV5D,IAAsBA,EAAQoH,GAASpH,IAElD,IAAK,IAAI6D,EAAIF,EAAO9F,OAAQ4H,EAAS,IAAIpE,MAAMwC,GAAI2C,EAAQ,IAAInF,MAAMwC,GAAI4C,EAAO,IAAIpF,MAAMwC,GAAIE,EAAI,EAAGA,EAAIF,IAAKE,EAAG,CAC/G,IAAI8B,EAAShB,EAAQd,GACjBG,EAAQP,EAAOI,GACf2C,EAAcxC,EAAMrG,OACpBD,EAAOyJ,GAAUrH,EAAMmD,KAAK0C,EAAQA,GAAUA,EAAOzB,SAAUL,EAAGc,IAClE8B,EAAa/I,EAAKC,OAClByJ,EAAad,EAAMzC,GAAK,IAAI1C,MAAMsF,GAClCY,EAAc9B,EAAO1B,GAAK,IAAI1C,MAAMsF,GACpCa,EAAYf,EAAK1C,GAAK,IAAI1C,MAAMqF,GAEpCS,EAAKtB,EAAQ3B,EAAOoD,EAAYC,EAAaC,EAAW5J,EAAMa,GAK9D,IAAK,IAAoBgJ,EAAUnB,EAA1BoB,EAAK,EAAGC,EAAK,EAAmBD,EAAKf,IAAce,EAC1D,GAAID,EAAWH,EAAWI,GAAK,CACzBA,GAAMC,IAAIA,EAAKD,EAAK,GACxB,QAASpB,EAAOiB,EAAYI,OAAUA,EAAKhB,GAC3Cc,EAASxB,MAAQK,GAAQ,MAQ/B,OAHAb,EAAS,IAAIpB,GAAUoB,EAAQZ,GAC/BY,EAAOC,OAASc,EAChBf,EAAOmC,MAAQnB,EACRhB,GAST,SAAS4B,GAAUzJ,GACjB,MAAuB,kBAATA,GAAqB,WAAYA,EAC3CA,EACAyD,MAAMoD,KAAK7G,GC3HF,kBACb,OAAO,IAAIyG,GAAU7H,KAAKoL,OAASpL,KAAKoH,QAAQzB,IAAIwD,IAASnJ,KAAK8H,WCJrD,mBACb,IAAIkC,EAAQhK,KAAKgK,QAASf,EAASjJ,KAAMiK,EAAOjK,KAAKiK,OAYrD,MAXuB,oBAAZoB,GACTrB,EAAQqB,EAAQrB,GACZA,IAAOA,EAAQA,EAAMsB,cAEzBtB,EAAQA,EAAMuB,OAAOF,EAAU,IAEjB,MAAZG,IACFvC,EAASuC,EAASvC,GACdA,IAAQA,EAASA,EAAOqC,cAEhB,MAAVG,EAAgBxB,EAAKyB,SAAeD,EAAOxB,GACxCD,GAASf,EAASe,EAAM2B,MAAM1C,GAAQ2C,QAAU3C,GCX1C,eAGb,IAFA,IAAIqC,EAAYO,EAAQP,UAAYO,EAAQP,YAAcO,EAEjDC,EAAU9L,KAAKoH,QAAS2E,EAAUT,EAAUlE,QAAS4E,EAAKF,EAAQzK,OAAQ4K,EAAKF,EAAQ1K,OAAQgG,EAAI6E,KAAKC,IAAIH,EAAIC,GAAKG,EAAS,IAAIvH,MAAMmH,GAAKzE,EAAI,EAAGA,EAAIF,IAAKE,EACpK,IAAK,IAAmGC,EAA/F6E,EAASP,EAAQvE,GAAI+E,EAASP,EAAQxE,GAAI1D,EAAIwI,EAAOhL,OAAQsK,EAAQS,EAAO7E,GAAK,IAAI1C,MAAMhB,GAAUmB,EAAI,EAAGA,EAAInB,IAAKmB,GACxHwC,EAAO6E,EAAOrH,IAAMsH,EAAOtH,MAC7B2G,EAAM3G,GAAKwC,GAKjB,KAAOD,EAAIyE,IAAMzE,EACf6E,EAAO7E,GAAKuE,EAAQvE,GAGtB,OAAO,IAAIM,GAAUuE,EAAQpM,KAAK8H,WCjBrB,cAEb,IAAK,IAAIX,EAASnH,KAAKoH,QAASG,GAAK,EAAGF,EAAIF,EAAO9F,SAAUkG,EAAIF,GAC/D,IAAK,IAA8DG,EAA1DE,EAAQP,EAAOI,GAAIvC,EAAI0C,EAAMrG,OAAS,EAAGyI,EAAOpC,EAAM1C,KAAYA,GAAK,IAC1EwC,EAAOE,EAAM1C,MACX8E,GAA6C,EAArCtC,EAAK+E,wBAAwBzC,IAAWA,EAAK0C,WAAW3C,aAAarC,EAAMsC,GACvFA,EAAOtC,GAKb,OAAOxH,MCTM,eAGb,SAASyM,EAAYC,EAAGC,GACtB,OAAOD,GAAKC,EAAIC,EAAQF,EAAE9E,SAAU+E,EAAE/E,WAAa8E,GAAKC,EAHrDC,IAASA,EAAUC,IAMxB,IAAK,IAAI1F,EAASnH,KAAKoH,QAASC,EAAIF,EAAO9F,OAAQyL,EAAa,IAAIjI,MAAMwC,GAAIE,EAAI,EAAGA,EAAIF,IAAKE,EAAG,CAC/F,IAAK,IAAmFC,EAA/EE,EAAQP,EAAOI,GAAI1D,EAAI6D,EAAMrG,OAAQ0L,EAAYD,EAAWvF,GAAK,IAAI1C,MAAMhB,GAAUmB,EAAI,EAAGA,EAAInB,IAAKmB,GACxGwC,EAAOE,EAAM1C,MACf+H,EAAU/H,GAAKwC,GAGnBuF,EAAUC,KAAKP,GAGjB,OAAO,IAAI5E,GAAUiF,EAAY9M,KAAK8H,UAAU8D,SAGlD,SAASiB,GAAUH,EAAGC,GACpB,OAAOD,EAAIC,GAAK,EAAID,EAAIC,EAAI,EAAID,GAAKC,EAAI,EAAIM,ICtBhC,kBACb,IAAI9G,EAAWlB,UAAU,GAGzB,OAFAA,UAAU,GAAKjF,KACfmG,EAASW,MAAM,KAAM7B,WACdjF,MCJM,cACb,OAAO6E,MAAMoD,KAAKjI,OCDL,cAEb,IAAK,IAAImH,EAASnH,KAAKoH,QAASG,EAAI,EAAGF,EAAIF,EAAO9F,OAAQkG,EAAIF,IAAKE,EACjE,IAAK,IAAIG,EAAQP,EAAOI,GAAIvC,EAAI,EAAGnB,EAAI6D,EAAMrG,OAAQ2D,EAAInB,IAAKmB,EAAG,CAC/D,IAAIwC,EAAOE,EAAM1C,GACjB,GAAIwC,EAAM,OAAOA,EAIrB,OAAO,MCTM,cACb,IAAI0F,EAAO,EACX,IAAK,MAAM1F,KAAQxH,OAAQkN,EAC3B,OAAOA,GCHM,cACb,OAAQlN,KAAKwH,QCDA,eAEb,IAAK,IAAIL,EAASnH,KAAKoH,QAASG,EAAI,EAAGF,EAAIF,EAAO9F,OAAQkG,EAAIF,IAAKE,EACjE,IAAK,IAAgDC,EAA5CE,EAAQP,EAAOI,GAAIvC,EAAI,EAAGnB,EAAI6D,EAAMrG,OAAc2D,EAAInB,IAAKmB,GAC9DwC,EAAOE,EAAM1C,KAAImB,EAASQ,KAAKa,EAAMA,EAAKI,SAAU5C,EAAG0C,GAI/D,OAAO1H,MCREmN,GAAQ,+BAEJ,IACbC,IAAK,6BACLD,MAAOA,GACPE,MAAO,+BACPC,IAAK,uCACLC,MAAO,iCCLM,eACb,IAAIC,EAAS5H,GAAQ,GAAIZ,EAAIwI,EAAO3H,QAAQ,KAE5C,OADIb,GAAK,GAAqC,WAA/BwI,EAAS5H,EAAKE,MAAM,EAAGd,MAAiBY,EAAOA,EAAKE,MAAMd,EAAI,IACtEyI,GAAW1H,eAAeyH,GAAU,CAACE,MAAOD,GAAWD,GAASG,MAAO/H,GAAQA,GCHxF,SAASgI,GAAWhI,GAClB,OAAO,WACL5F,KAAK6N,gBAAgBjI,IAIzB,SAASkI,GAAaC,GACpB,OAAO,WACL/N,KAAKgO,kBAAkBD,EAASL,MAAOK,EAASJ,QAIpD,SAASM,GAAarI,EAAMpC,GAC1B,OAAO,WACLxD,KAAKkO,aAAatI,EAAMpC,IAI5B,SAAS2K,GAAeJ,EAAUvK,GAChC,OAAO,WACLxD,KAAKoO,eAAeL,EAASL,MAAOK,EAASJ,MAAOnK,IAIxD,SAAS6K,GAAazI,EAAMpC,GAC1B,OAAO,WACL,IAAI8K,EAAI9K,EAAMsD,MAAM9G,KAAMiF,WACjB,MAALqJ,EAAWtO,KAAK6N,gBAAgBjI,GAC/B5F,KAAKkO,aAAatI,EAAM0I,IAIjC,SAASC,GAAeR,EAAUvK,GAChC,OAAO,WACL,IAAI8K,EAAI9K,EAAMsD,MAAM9G,KAAMiF,WACjB,MAALqJ,EAAWtO,KAAKgO,kBAAkBD,EAASL,MAAOK,EAASJ,OAC1D3N,KAAKoO,eAAeL,EAASL,MAAOK,EAASJ,MAAOW,IAI9C,qBACb,IAAIP,EAAWS,GAAU5I,GAEzB,GAAIX,UAAU5D,OAAS,EAAG,CACxB,IAAImG,EAAOxH,KAAKwH,OAChB,OAAOuG,EAASJ,MACVnG,EAAKiH,eAAeV,EAASL,MAAOK,EAASJ,OAC7CnG,EAAKkH,aAAaX,GAG1B,OAAO/N,KAAK2O,MAAe,MAATnL,EACXuK,EAASJ,MAAQG,GAAeF,GAAgC,oBAAVpK,EACtDuK,EAASJ,MAAQY,GAAiBF,GAClCN,EAASJ,MAAQQ,GAAiBF,IAAgBF,EAAUvK,KCvDtD,eACb,OAAQgE,EAAK+B,eAAiB/B,EAAK+B,cAAcqF,aACzCpH,EAAKqH,UAAYrH,GAClBA,EAAKoH,aCDd,SAASE,GAAYlJ,GACnB,OAAO,WACL5F,KAAKS,MAAMsO,eAAenJ,IAI9B,SAASoJ,GAAcpJ,EAAMpC,EAAOyL,GAClC,OAAO,WACLjP,KAAKS,MAAMyO,YAAYtJ,EAAMpC,EAAOyL,IAIxC,SAASE,GAAcvJ,EAAMpC,EAAOyL,GAClC,OAAO,WACL,IAAIX,EAAI9K,EAAMsD,MAAM9G,KAAMiF,WACjB,MAALqJ,EAAWtO,KAAKS,MAAMsO,eAAenJ,GACpC5F,KAAKS,MAAMyO,YAAYtJ,EAAM0I,EAAGW,IAI1B,uBACb,OAAOhK,UAAU5D,OAAS,EACpBrB,KAAK2O,MAAe,MAATnL,EACLsL,GAA+B,oBAAVtL,EACrB2L,GACAH,IAAepJ,EAAMpC,EAAmB,MAAZyL,EAAmB,GAAKA,IAC1DG,GAAWpP,KAAKwH,OAAQ5B,IAGzB,SAASwJ,GAAW5H,EAAM5B,GAC/B,OAAO4B,EAAK/G,MAAM4O,iBAAiBzJ,IAC5B,GAAY4B,GAAM8H,iBAAiB9H,EAAM,MAAM6H,iBAAiBzJ,GCjCzE,SAAS2J,GAAe3J,GACtB,OAAO,kBACE5F,KAAK4F,IAIhB,SAAS4J,GAAiB5J,EAAMpC,GAC9B,OAAO,WACLxD,KAAK4F,GAAQpC,GAIjB,SAASiM,GAAiB7J,EAAMpC,GAC9B,OAAO,WACL,IAAI8K,EAAI9K,EAAMsD,MAAM9G,KAAMiF,WACjB,MAALqJ,SAAkBtO,KAAK4F,GACtB5F,KAAK4F,GAAQ0I,GAIP,qBACb,OAAOrJ,UAAU5D,OAAS,EACpBrB,KAAK2O,MAAe,MAATnL,EACP+L,GAAkC,oBAAV/L,EACxBiM,GACAD,IAAkB5J,EAAMpC,IAC5BxD,KAAKwH,OAAO5B,IC1BpB,SAAS8J,GAAWC,GAClB,OAAOA,EAAOlK,OAAOC,MAAM,SAG7B,SAASkK,GAAUpI,GACjB,OAAOA,EAAKoI,WAAa,IAAIC,GAAUrI,GAGzC,SAASqI,GAAUrI,GACjBxH,KAAK8P,MAAQtI,EACbxH,KAAK+P,OAASL,GAAWlI,EAAKkH,aAAa,UAAY,IAuBzD,SAASsB,GAAWxI,EAAMyI,GACxB,IAAIC,EAAON,GAAUpI,GAAOxC,GAAK,EAAGnB,EAAIoM,EAAM5O,OAC9C,QAAS2D,EAAInB,EAAGqM,EAAKC,IAAIF,EAAMjL,IAGjC,SAASoL,GAAc5I,EAAMyI,GAC3B,IAAIC,EAAON,GAAUpI,GAAOxC,GAAK,EAAGnB,EAAIoM,EAAM5O,OAC9C,QAAS2D,EAAInB,EAAGqM,EAAKxE,OAAOuE,EAAMjL,IAGpC,SAASqL,GAAYJ,GACnB,OAAO,WACLD,GAAWhQ,KAAMiQ,IAIrB,SAASK,GAAaL,GACpB,OAAO,WACLG,GAAcpQ,KAAMiQ,IAIxB,SAASM,GAAgBN,EAAOzM,GAC9B,OAAO,YACJA,EAAMsD,MAAM9G,KAAMiF,WAAa+K,GAAaI,IAAepQ,KAAMiQ,IA5CtEJ,GAAUvJ,UAAY,CACpB6J,IAAK,SAASvK,GACZ,IAAIZ,EAAIhF,KAAK+P,OAAOlK,QAAQD,GACxBZ,EAAI,IACNhF,KAAK+P,OAAO1J,KAAKT,GACjB5F,KAAK8P,MAAM5B,aAAa,QAASlO,KAAK+P,OAAOS,KAAK,QAGtD9E,OAAQ,SAAS9F,GACf,IAAIZ,EAAIhF,KAAK+P,OAAOlK,QAAQD,GACxBZ,GAAK,IACPhF,KAAK+P,OAAOU,OAAOzL,EAAG,GACtBhF,KAAK8P,MAAM5B,aAAa,QAASlO,KAAK+P,OAAOS,KAAK,QAGtDE,SAAU,SAAS9K,GACjB,OAAO5F,KAAK+P,OAAOlK,QAAQD,IAAS,IAgCzB,qBACb,IAAIqK,EAAQP,GAAW9J,EAAO,IAE9B,GAAIX,UAAU5D,OAAS,EAAG,CACxB,IAAI6O,EAAON,GAAU5P,KAAKwH,QAASxC,GAAK,EAAGnB,EAAIoM,EAAM5O,OACrD,QAAS2D,EAAInB,EAAG,IAAKqM,EAAKQ,SAAST,EAAMjL,IAAK,OAAO,EACrD,OAAO,EAGT,OAAOhF,KAAK2O,MAAuB,oBAAVnL,EACnB+M,GAAkB/M,EAClB6M,GACAC,IAAcL,EAAOzM,KCzE7B,SAASmN,KACP3Q,KAAK4Q,YAAc,GAGrB,SAASC,GAAarN,GACpB,OAAO,WACLxD,KAAK4Q,YAAcpN,GAIvB,SAASsN,GAAatN,GACpB,OAAO,WACL,IAAI8K,EAAI9K,EAAMsD,MAAM9G,KAAMiF,WAC1BjF,KAAK4Q,YAAmB,MAALtC,EAAY,GAAKA,GAIzB,mBACb,OAAOrJ,UAAU5D,OACXrB,KAAK2O,KAAc,MAATnL,EACNmN,IAA+B,oBAAVnN,EACrBsN,GACAD,IAAcrN,IAClBxD,KAAKwH,OAAOoJ,aCvBpB,SAASG,KACP/Q,KAAKgR,UAAY,GAGnB,SAASC,GAAazN,GACpB,OAAO,WACLxD,KAAKgR,UAAYxN,GAIrB,SAAS0N,GAAa1N,GACpB,OAAO,WACL,IAAI8K,EAAI9K,EAAMsD,MAAM9G,KAAMiF,WAC1BjF,KAAKgR,UAAiB,MAAL1C,EAAY,GAAKA,GAIvB,mBACb,OAAOrJ,UAAU5D,OACXrB,KAAK2O,KAAc,MAATnL,EACNuN,IAA+B,oBAAVvN,EACrB0N,GACAD,IAAczN,IAClBxD,KAAKwH,OAAOwJ,WCvBpB,SAASG,KACHnR,KAAKoR,aAAapR,KAAKwM,WAAW7C,YAAY3J,MAGrC,kBACb,OAAOA,KAAK2O,KAAKwC,KCLnB,SAASE,KACHrR,KAAKsR,iBAAiBtR,KAAKwM,WAAW3C,aAAa7J,KAAMA,KAAKwM,WAAW+E,YAGhE,kBACb,OAAOvR,KAAK2O,KAAK0C,KCFnB,SAASG,GAAe5L,GACtB,OAAO,WACL,IAAIiJ,EAAW7O,KAAKuJ,cAChBkI,EAAMzR,KAAKwJ,aACf,OAAOiI,IAAQtE,IAAS0B,EAAS6C,gBAAgBlI,eAAiB2D,GAC5D0B,EAAS8C,cAAc/L,GACvBiJ,EAAS+C,gBAAgBH,EAAK7L,IAIxC,SAASiM,GAAa9D,GACpB,OAAO,WACL,OAAO/N,KAAKuJ,cAAcqI,gBAAgB7D,EAASL,MAAOK,EAASJ,QAIxD,mBACb,IAAII,EAAWS,GAAU5I,GACzB,OAAQmI,EAASJ,MACXkE,GACAL,IAAgBzD,ICrBT,eACb,IAAI+D,EAAyB,oBAATlM,EAAsBA,EAAOmM,GAAQnM,GACzD,OAAO5F,KAAKkH,QAAO,WACjB,OAAOlH,KAAK2J,YAAYmI,EAAOhL,MAAM9G,KAAMiF,gBCF/C,SAAS+M,KACP,OAAO,KAGM,qBACb,IAAIF,EAAyB,oBAATlM,EAAsBA,EAAOmM,GAAQnM,GACrDsB,EAAmB,MAAV+K,EAAiBD,GAAiC,oBAAXC,EAAwBA,EAAS,EAASA,GAC9F,OAAOjS,KAAKkH,QAAO,WACjB,OAAOlH,KAAK6J,aAAaiI,EAAOhL,MAAM9G,KAAMiF,WAAYiC,EAAOJ,MAAM9G,KAAMiF,YAAc,UCX7F,SAAS,KACP,IAAIoE,EAASrJ,KAAKwM,WACdnD,GAAQA,EAAO6I,YAAYlS,MAGlB,kBACb,OAAOA,KAAK2O,KAAK,KCNnB,SAASwD,KACP,IAAIC,EAAQpS,KAAKqS,WAAU,GAAQhJ,EAASrJ,KAAKwM,WACjD,OAAOnD,EAASA,EAAOQ,aAAauI,EAAOpS,KAAKoR,aAAegB,EAGjE,SAASE,KACP,IAAIF,EAAQpS,KAAKqS,WAAU,GAAOhJ,EAASrJ,KAAKwM,WAChD,OAAOnD,EAASA,EAAOQ,aAAauI,EAAOpS,KAAKoR,aAAegB,EAGlD,mBACb,OAAOpS,KAAKkH,OAAOqL,EAAOD,GAAsBH,KCXnC,eACb,OAAOlN,UAAU5D,OACXrB,KAAKwS,SAAS,WAAYhP,GAC1BxD,KAAKwH,OAAOI,UCHpB,SAAS6K,GAAgBC,GACvB,OAAO,SAASC,GACdD,EAAS/L,KAAK3G,KAAM2S,EAAO3S,KAAK4H,WAIpC,SAAS,GAAerC,GACtB,OAAOA,EAAUE,OAAOC,MAAM,SAASC,KAAI,SAAS/B,GAClD,IAAIgC,EAAO,GAAIZ,EAAIpB,EAAEiC,QAAQ,KAE7B,OADIb,GAAK,IAAGY,EAAOhC,EAAEkC,MAAMd,EAAI,GAAIpB,EAAIA,EAAEkC,MAAM,EAAGd,IAC3C,CAAClE,KAAM8C,EAAGgC,KAAMA,MAI3B,SAASgN,GAASpM,GAChB,OAAO,WACL,IAAIvF,EAAKjB,KAAK6S,KACd,GAAK5R,EAAL,CACA,IAAK,IAAkC6R,EAA9BvL,EAAI,EAAGvC,GAAK,EAAGqC,EAAIpG,EAAGI,OAAWkG,EAAIF,IAAKE,EAC7CuL,EAAI7R,EAAGsG,GAAMf,EAAS1F,MAAQgS,EAAEhS,OAAS0F,EAAS1F,MAASgS,EAAElN,OAASY,EAASZ,KAGjF3E,IAAK+D,GAAK8N,EAFV9S,KAAK+S,oBAAoBD,EAAEhS,KAAMgS,EAAEJ,SAAUI,EAAEE,WAK7ChO,EAAG/D,EAAGI,OAAS2D,SACThF,KAAK6S,OAIrB,SAASI,GAAMzM,EAAUhD,EAAOwP,GAC9B,OAAO,WACL,IAAoBF,EAAhB7R,EAAKjB,KAAK6S,KAASH,EAAWD,GAAgBjP,GAClD,GAAIvC,EAAI,IAAK,IAAIsG,EAAI,EAAGF,EAAIpG,EAAGI,OAAQkG,EAAIF,IAAKE,EAC9C,IAAKuL,EAAI7R,EAAGsG,IAAIzG,OAAS0F,EAAS1F,MAAQgS,EAAElN,OAASY,EAASZ,KAI5D,OAHA5F,KAAK+S,oBAAoBD,EAAEhS,KAAMgS,EAAEJ,SAAUI,EAAEE,SAC/ChT,KAAKkT,iBAAiBJ,EAAEhS,KAAMgS,EAAEJ,SAAWA,EAAUI,EAAEE,QAAUA,QACjEF,EAAEtP,MAAQA,GAIdxD,KAAKkT,iBAAiB1M,EAAS1F,KAAM4R,EAAUM,GAC/CF,EAAI,CAAChS,KAAM0F,EAAS1F,KAAM8E,KAAMY,EAASZ,KAAMpC,MAAOA,EAAOkP,SAAUA,EAAUM,QAASA,GACrF/R,EACAA,EAAGoF,KAAKyM,GADJ9S,KAAK6S,KAAO,CAACC,IAKX,uBACb,IAA+C9N,EAAyBpB,EAApE2B,EAAY,GAAeiB,EAAW,IAAQ3C,EAAI0B,EAAUlE,OAEhE,KAAI4D,UAAU5D,OAAS,GAAvB,CAaA,IADAJ,EAAKuC,EAAQyP,GAAQL,GAChB5N,EAAI,EAAGA,EAAInB,IAAKmB,EAAGhF,KAAK2O,KAAK1N,EAAGsE,EAAUP,GAAIxB,EAAOwP,IAC1D,OAAOhT,KAbL,IAAIiB,EAAKjB,KAAKwH,OAAOqL,KACrB,GAAI5R,EAAI,IAAK,IAA0B6R,EAAtBvL,EAAI,EAAGF,EAAIpG,EAAGI,OAAWkG,EAAIF,IAAKE,EACjD,IAAKvC,EAAI,EAAG8N,EAAI7R,EAAGsG,GAAIvC,EAAInB,IAAKmB,EAC9B,IAAKpB,EAAI2B,EAAUP,IAAIlE,OAASgS,EAAEhS,MAAQ8C,EAAEgC,OAASkN,EAAElN,KACrD,OAAOkN,EAAEtP,OCtDnB,SAAS2P,GAAc3L,EAAM1G,EAAMsS,GACjC,IAAIC,EAAS,GAAY7L,GACrBmL,EAAQU,EAAOC,YAEE,oBAAVX,EACTA,EAAQ,IAAIA,EAAM7R,EAAMsS,IAExBT,EAAQU,EAAOxE,SAAS0E,YAAY,SAChCH,GAAQT,EAAMa,UAAU1S,EAAMsS,EAAOK,QAASL,EAAOM,YAAaf,EAAMgB,OAASP,EAAOO,QACvFhB,EAAMa,UAAU1S,GAAM,GAAO,IAGpC0G,EAAK2L,cAAcR,GAGrB,SAASiB,GAAiB9S,EAAMsS,GAC9B,OAAO,WACL,OAAOD,GAAcnT,KAAMc,EAAMsS,IAIrC,SAASS,GAAiB/S,EAAMsS,GAC9B,OAAO,WACL,OAAOD,GAAcnT,KAAMc,EAAMsS,EAAOtM,MAAM9G,KAAMiF,aAIzC,qBACb,OAAOjF,KAAK2O,MAAwB,oBAAXyE,EACnBS,GACAD,IAAkB9S,EAAMsS,KChCjB,eACb,IAAK,IAAIjM,EAASnH,KAAKoH,QAASG,EAAI,EAAGF,EAAIF,EAAO9F,OAAQkG,EAAIF,IAAKE,EACjE,IAAK,IAAgDC,EAA5CE,EAAQP,EAAOI,GAAIvC,EAAI,EAAGnB,EAAI6D,EAAMrG,OAAc2D,EAAInB,IAAKmB,GAC9DwC,EAAOE,EAAM1C,YAAUwC,ICgCtB,GAAO,CAAC,MAEZ,SAASK,GAAUV,EAAQkB,GAChCrI,KAAKoH,QAAUD,EACfnH,KAAK8H,SAAWO,EAGlB,SAAS,KACP,OAAO,IAAIR,GAAU,CAAC,CAACgH,SAAS6C,kBAAmB,IAGrD,SAAS,KACP,OAAO1R,KAGT6H,GAAUvB,UAAY,GAAUA,UAAY,CAC1CC,YAAasB,GACbX,OAAQ4M,EACR/K,UAAW,GACXgL,YAAa,GACbC,eAAgB,GAChBnL,OAAQoL,GACR7S,KAAM8S,GACNlK,MAAOmK,GACPlK,KAAMmK,GACN5D,KAAM,GACN7E,MAAO0I,GACP/I,UAAW,GACXM,MAAO,GACPoB,KAAMsH,GACN3N,KAAM,GACN4N,MAAO,GACP/M,KAAMgN,GACNtH,KAAMuH,GACNC,MAAOC,GACPhG,KAAM,GACNiG,KAAM,GACNnU,MAAO,GACP+R,SAAU,GACVqC,QAAS,GACTC,KAAMC,GACNC,KAAM,GACN7D,MAAO8D,GACP5D,MAAO6D,GACP3J,OAAQ,GACR4J,OAAQ,GACRzJ,OAAQ0J,GACRhD,MAAO,GACP9I,MAAO+L,GACPpU,GAAIqU,GACJvQ,SAAUwQ,GACV,CAACC,OAAOC,UAAW,IAGN,UCvFA,eACb,MAA2B,kBAAbzO,EACR,IAAIa,GAAU,CAAC,CAACgH,SAAS5H,cAAcD,KAAa,CAAC6H,SAAS6C,kBAC9D,IAAI7J,GAAU,CAAC,CAACb,IAAY,KCLrB,uBACbT,EAAYD,UAAYoP,EAAQpP,UAAYA,EAC5CA,EAAUC,YAAcA,GAGnB,SAASoP,GAAOtM,EAAQuM,GAC7B,IAAItP,EAAYlD,OAAO0O,OAAOzI,EAAO/C,WACrC,IAAK,IAAIrE,KAAO2T,EAAYtP,EAAUrE,GAAO2T,EAAW3T,GACxD,OAAOqE,ECNF,SAASuP,MAET,IAAIC,GAAS,GACTC,GAAW,EAAID,GAEtBE,GAAM,sBACNC,GAAM,gDACNC,GAAM,iDACNC,GAAQ,qBACRC,GAAe,IAAIC,OAAO,UAAY,CAACL,GAAKA,GAAKA,IAAO,QACxDM,GAAe,IAAID,OAAO,UAAY,CAACH,GAAKA,GAAKA,IAAO,QACxDK,GAAgB,IAAIF,OAAO,WAAa,CAACL,GAAKA,GAAKA,GAAKC,IAAO,QAC/DO,GAAgB,IAAIH,OAAO,WAAa,CAACH,GAAKA,GAAKA,GAAKD,IAAO,QAC/DQ,GAAe,IAAIJ,OAAO,UAAY,CAACJ,GAAKC,GAAKA,IAAO,QACxDQ,GAAgB,IAAIL,OAAO,WAAa,CAACJ,GAAKC,GAAKA,GAAKD,IAAO,QAE/DU,GAAQ,CACVC,UAAW,SACXC,aAAc,SACdC,KAAM,MACNC,WAAY,QACZC,MAAO,SACPC,MAAO,SACPC,OAAQ,SACRtU,MAAO,EACPuU,eAAgB,SAChBpU,KAAM,IACNqU,WAAY,QACZC,MAAO,SACPC,UAAW,SACXC,UAAW,QACXC,WAAY,QACZC,UAAW,SACXC,MAAO,SACPC,eAAgB,QAChBC,SAAU,SACVC,QAAS,SACTC,KAAM,MACNC,SAAU,IACVC,SAAU,MACVC,cAAe,SACfC,SAAU,SACVC,UAAW,MACXC,SAAU,SACVC,UAAW,SACXC,YAAa,QACbC,eAAgB,QAChBC,WAAY,SACZC,WAAY,SACZC,QAAS,QACTC,WAAY,SACZC,aAAc,QACdC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,MACfC,WAAY,QACZC,SAAU,SACVC,YAAa,MACbC,QAAS,QACTC,QAAS,QACTC,WAAY,QACZC,UAAW,SACXC,YAAa,SACbC,YAAa,QACbC,QAAS,SACTC,UAAW,SACXC,WAAY,SACZC,KAAM,SACNC,UAAW,SACXC,KAAM,QACNlX,MAAO,MACPmX,YAAa,SACbC,KAAM,QACNC,SAAU,SACVC,QAAS,SACTC,UAAW,SACXC,OAAQ,QACRC,MAAO,SACPC,MAAO,SACPC,SAAU,SACVC,cAAe,SACfC,UAAW,QACXC,aAAc,SACdnY,UAAW,SACXoY,WAAY,SACZC,UAAW,SACXC,qBAAsB,SACtBC,UAAW,SACXC,WAAY,QACZC,UAAW,SACXC,UAAW,SACXC,YAAa,SACbC,cAAe,QACfC,aAAc,QACdC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,SAChBC,YAAa,SACbC,KAAM,MACNC,UAAW,QACXC,MAAO,SACPC,QAAS,SACTC,OAAQ,QACRC,iBAAkB,QAClBC,WAAY,IACZC,aAAc,SACdC,aAAc,QACdC,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,MACnBC,gBAAiB,QACjBC,gBAAiB,SACjBC,aAAc,QACdC,UAAW,SACXC,UAAW,SACXC,SAAU,SACVC,YAAa,SACbC,KAAM,IACNC,QAAS,SACTC,MAAO,QACPC,UAAW,QACXla,OAAQ,SACRma,UAAW,SACXC,OAAQ,SACRC,cAAe,SACfC,UAAW,SACXC,cAAe,SACfC,cAAe,SACfC,WAAY,SACZC,UAAW,SACXC,KAAM,SACN/a,KAAM,SACNgb,KAAM,SACNC,WAAY,SACZ3a,OAAQ,QACR4a,cAAe,QACfjb,IAAK,SACLkb,UAAW,SACXC,UAAW,QACXC,YAAa,QACbC,OAAQ,SACRC,WAAY,SACZC,SAAU,QACVC,SAAU,SACVC,OAAQ,SACRC,OAAQ,SACRC,QAAS,QACTC,UAAW,QACXC,UAAW,QACXC,UAAW,QACXC,KAAM,SACNC,YAAa,MACbC,UAAW,QACXC,IAAK,SACLC,KAAM,MACNC,QAAS,SACTC,OAAQ,SACRC,UAAW,QACXC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,WAAY,SACZ5c,OAAQ,SACR6c,YAAa,UAiBf,SAASC,KACP,OAAOvf,KAAKwf,MAAMC,YAGpB,SAASC,KACP,OAAOC,GAAW3f,MAAM4f,YAG1B,SAASC,KACP,OAAO7f,KAAKwf,MAAMM,YAGL,SAAS,GAAMC,GAC5B,IAAI1Y,EAAG2Y,EAEP,OADAD,GAAUA,EAAS,IAAIta,OAAOwa,eACtB5Y,EAAI8O,GAAM+J,KAAKH,KAAYC,EAAI3Y,EAAE,GAAGhG,OAAQgG,EAAI8Y,SAAS9Y,EAAE,GAAI,IAAW,IAAN2Y,EAAUI,GAAK/Y,GAC/E,IAAN2Y,EAAU,IAAIK,GAAKhZ,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,GAAiB,GAAJA,IAAY,EAAU,GAAJA,EAAU,GACzG,IAAN2Y,EAAUM,GAAKjZ,GAAK,GAAK,IAAMA,GAAK,GAAK,IAAMA,GAAK,EAAI,KAAW,IAAJA,GAAY,KACrE,IAAN2Y,EAAUM,GAAMjZ,GAAK,GAAK,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAQA,GAAK,EAAI,IAAQA,GAAK,EAAI,GAAY,IAAJA,IAAkB,GAAJA,IAAY,EAAU,GAAJA,GAAY,KAClJ,OACCA,EAAI+O,GAAa8J,KAAKH,IAAW,IAAIM,GAAIhZ,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAI,IAC3DA,EAAIiP,GAAa4J,KAAKH,IAAW,IAAIM,GAAW,IAAPhZ,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAK,IAC/FA,EAAIkP,GAAc2J,KAAKH,IAAWO,GAAKjZ,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,KAC3DA,EAAImP,GAAc0J,KAAKH,IAAWO,GAAY,IAAPjZ,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAY,IAAPA,EAAE,GAAW,IAAKA,EAAE,KAC/FA,EAAIoP,GAAayJ,KAAKH,IAAWQ,GAAKlZ,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAK,IACpEA,EAAIqP,GAAcwJ,KAAKH,IAAWQ,GAAKlZ,EAAE,GAAIA,EAAE,GAAK,IAAKA,EAAE,GAAK,IAAKA,EAAE,IACxEsP,GAAM5Q,eAAega,GAAUK,GAAKzJ,GAAMoJ,IAC/B,gBAAXA,EAA2B,IAAIM,GAAIpT,IAAKA,IAAKA,IAAK,GAClD,KAGR,SAASmT,GAAKvc,GACZ,OAAO,IAAIwc,GAAIxc,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,EAAU,GAG1D,SAASyc,GAAKE,EAAGC,EAAG9T,EAAGD,GAErB,OADIA,GAAK,IAAG8T,EAAIC,EAAI9T,EAAIM,KACjB,IAAIoT,GAAIG,EAAGC,EAAG9T,EAAGD,GAGnB,SAASgU,GAAW5N,GAEzB,OADMA,aAAa+C,KAAQ/C,EAAI,GAAMA,IAChCA,GACLA,EAAIA,EAAE0M,MACC,IAAIa,GAAIvN,EAAE0N,EAAG1N,EAAE2N,EAAG3N,EAAEnG,EAAGmG,EAAE6N,UAFjB,IAAIN,GAKd,SAAS,GAAIG,EAAGC,EAAG9T,EAAGgU,GAC3B,OAA4B,IAArB1b,UAAU5D,OAAeqf,GAAWF,GAAK,IAAIH,GAAIG,EAAGC,EAAG9T,EAAc,MAAXgU,EAAkB,EAAIA,GAGlF,SAASN,GAAIG,EAAGC,EAAG9T,EAAGgU,GAC3B3gB,KAAKwgB,GAAKA,EACVxgB,KAAKygB,GAAKA,EACVzgB,KAAK2M,GAAKA,EACV3M,KAAK2gB,SAAWA,EA2BlB,SAASC,KACP,MAAO,IAAMC,GAAI7gB,KAAKwgB,GAAKK,GAAI7gB,KAAKygB,GAAKI,GAAI7gB,KAAK2M,GAGpD,SAASmU,KACP,IAAIpU,EAAI1M,KAAK2gB,QACb,OADsBjU,EAAIqU,MAAMrU,GAAK,EAAIR,KAAK8U,IAAI,EAAG9U,KAAKC,IAAI,EAAGO,KACnD,IAANA,EAAU,OAAS,SACrBR,KAAK8U,IAAI,EAAG9U,KAAKC,IAAI,IAAKD,KAAK+U,MAAMjhB,KAAKwgB,IAAM,IAAM,KACtDtU,KAAK8U,IAAI,EAAG9U,KAAKC,IAAI,IAAKD,KAAK+U,MAAMjhB,KAAKygB,IAAM,IAAM,KACtDvU,KAAK8U,IAAI,EAAG9U,KAAKC,IAAI,IAAKD,KAAK+U,MAAMjhB,KAAK2M,IAAM,KACzC,IAAND,EAAU,IAAM,KAAOA,EAAI,KAGpC,SAASmU,GAAIrd,GAEX,OADAA,EAAQ0I,KAAK8U,IAAI,EAAG9U,KAAKC,IAAI,IAAKD,KAAK+U,MAAMzd,IAAU,KAC/CA,EAAQ,GAAK,IAAM,IAAMA,EAAM0d,SAAS,IAGlD,SAASX,GAAKY,EAAGC,EAAGpB,EAAGtT,GAIrB,OAHIA,GAAK,EAAGyU,EAAIC,EAAIpB,EAAI/S,IACf+S,GAAK,GAAKA,GAAK,EAAGmB,EAAIC,EAAInU,IAC1BmU,GAAK,IAAGD,EAAIlU,KACd,IAAIoU,GAAIF,EAAGC,EAAGpB,EAAGtT,GAGnB,SAASiT,GAAW7M,GACzB,GAAIA,aAAauO,GAAK,OAAO,IAAIA,GAAIvO,EAAEqO,EAAGrO,EAAEsO,EAAGtO,EAAEkN,EAAGlN,EAAE6N,SAEtD,GADM7N,aAAa+C,KAAQ/C,EAAI,GAAMA,KAChCA,EAAG,OAAO,IAAIuO,GACnB,GAAIvO,aAAauO,GAAK,OAAOvO,EAC7BA,EAAIA,EAAE0M,MACN,IAAIgB,EAAI1N,EAAE0N,EAAI,IACVC,EAAI3N,EAAE2N,EAAI,IACV9T,EAAImG,EAAEnG,EAAI,IACVR,EAAMD,KAAKC,IAAIqU,EAAGC,EAAG9T,GACrBqU,EAAM9U,KAAK8U,IAAIR,EAAGC,EAAG9T,GACrBwU,EAAIlU,IACJmU,EAAIJ,EAAM7U,EACV6T,GAAKgB,EAAM7U,GAAO,EAUtB,OATIiV,GACaD,EAAXX,IAAMQ,GAAUP,EAAI9T,GAAKyU,EAAc,GAATX,EAAI9T,GAC7B8T,IAAMO,GAAUrU,EAAI6T,GAAKY,EAAI,GAC5BZ,EAAIC,GAAKW,EAAI,EACvBA,GAAKpB,EAAI,GAAMgB,EAAM7U,EAAM,EAAI6U,EAAM7U,EACrCgV,GAAK,IAELC,EAAIpB,EAAI,GAAKA,EAAI,EAAI,EAAImB,EAEpB,IAAIE,GAAIF,EAAGC,EAAGpB,EAAGlN,EAAE6N,SAGrB,SAASW,GAAIH,EAAGC,EAAGpB,EAAGW,GAC3B,OAA4B,IAArB1b,UAAU5D,OAAese,GAAWwB,GAAK,IAAIE,GAAIF,EAAGC,EAAGpB,EAAc,MAAXW,EAAkB,EAAIA,GAGzF,SAASU,GAAIF,EAAGC,EAAGpB,EAAGW,GACpB3gB,KAAKmhB,GAAKA,EACVnhB,KAAKohB,GAAKA,EACVphB,KAAKggB,GAAKA,EACVhgB,KAAK2gB,SAAWA,EAyClB,SAASY,GAAQJ,EAAGlV,EAAIuV,GACtB,OAGY,KAHJL,EAAI,GAAKlV,GAAMuV,EAAKvV,GAAMkV,EAAI,GAChCA,EAAI,IAAMK,EACVL,EAAI,IAAMlV,GAAMuV,EAAKvV,IAAO,IAAMkV,GAAK,GACvClV,GCjXD,SAASwV,GAAMC,EAAIC,EAAIC,EAAIC,EAAIC,GACpC,IAAIC,EAAKL,EAAKA,EAAIM,EAAKD,EAAKL,EAC5B,QAAS,EAAI,EAAIA,EAAK,EAAIK,EAAKC,GAAML,GAC9B,EAAI,EAAII,EAAK,EAAIC,GAAMJ,GACvB,EAAI,EAAIF,EAAK,EAAIK,EAAK,EAAIC,GAAMH,EACjCG,EAAKF,GAAM,EDoKnBG,GAAOpM,GAAO,GAAO,CACnBnP,KAAM,SAASwb,GACb,OAAO9e,OAAO+e,OAAO,IAAIniB,KAAKuG,YAAavG,KAAMkiB,IAEnDE,YAAa,WACX,OAAOpiB,KAAKwf,MAAM4C,eAEpBvB,IAAKtB,GACLE,UAAWF,GACXK,UAAWF,GACXI,UAAWD,GACXqB,SAAUrB,KA6DZoC,GAAO5B,GAAK,GAAK1K,GAAOE,GAAO,CAC7BE,SAAU,SAASsM,GAEjB,OADAA,EAAS,MAALA,EAAYtM,GAAW7J,KAAKoW,IAAIvM,GAAUsM,GACvC,IAAIhC,GAAIrgB,KAAKwgB,EAAI6B,EAAGriB,KAAKygB,EAAI4B,EAAGriB,KAAK2M,EAAI0V,EAAGriB,KAAK2gB,UAE1D7K,OAAQ,SAASuM,GAEf,OADAA,EAAS,MAALA,EAAYvM,GAAS5J,KAAKoW,IAAIxM,GAAQuM,GACnC,IAAIhC,GAAIrgB,KAAKwgB,EAAI6B,EAAGriB,KAAKygB,EAAI4B,EAAGriB,KAAK2M,EAAI0V,EAAGriB,KAAK2gB,UAE1DnB,IAAK,WACH,OAAOxf,MAEToiB,YAAa,WACX,OAAS,IAAOpiB,KAAKwgB,GAAKxgB,KAAKwgB,EAAI,QAC1B,IAAOxgB,KAAKygB,GAAKzgB,KAAKygB,EAAI,QAC1B,IAAOzgB,KAAK2M,GAAK3M,KAAK2M,EAAI,OAC3B,GAAK3M,KAAK2gB,SAAW3gB,KAAK2gB,SAAW,GAE/CE,IAAKD,GACLnB,UAAWmB,GACXd,UAAWgB,GACXI,SAAUJ,MAiEZmB,GAAOZ,GAAKC,GAAK3L,GAAOE,GAAO,CAC7BE,SAAU,SAASsM,GAEjB,OADAA,EAAS,MAALA,EAAYtM,GAAW7J,KAAKoW,IAAIvM,GAAUsM,GACvC,IAAIhB,GAAIrhB,KAAKmhB,EAAGnhB,KAAKohB,EAAGphB,KAAKggB,EAAIqC,EAAGriB,KAAK2gB,UAElD7K,OAAQ,SAASuM,GAEf,OADAA,EAAS,MAALA,EAAYvM,GAAS5J,KAAKoW,IAAIxM,GAAQuM,GACnC,IAAIhB,GAAIrhB,KAAKmhB,EAAGnhB,KAAKohB,EAAGphB,KAAKggB,EAAIqC,EAAGriB,KAAK2gB,UAElDnB,IAAK,WACH,IAAI2B,EAAInhB,KAAKmhB,EAAI,IAAqB,KAAdnhB,KAAKmhB,EAAI,GAC7BC,EAAIL,MAAMI,IAAMJ,MAAM/gB,KAAKohB,GAAK,EAAIphB,KAAKohB,EACzCpB,EAAIhgB,KAAKggB,EACTwB,EAAKxB,GAAKA,EAAI,GAAMA,EAAI,EAAIA,GAAKoB,EACjCnV,EAAK,EAAI+T,EAAIwB,EACjB,OAAO,IAAInB,GACTkB,GAAQJ,GAAK,IAAMA,EAAI,IAAMA,EAAI,IAAKlV,EAAIuV,GAC1CD,GAAQJ,EAAGlV,EAAIuV,GACfD,GAAQJ,EAAI,IAAMA,EAAI,IAAMA,EAAI,IAAKlV,EAAIuV,GACzCxhB,KAAK2gB,UAGTyB,YAAa,WACX,OAAQ,GAAKpiB,KAAKohB,GAAKphB,KAAKohB,GAAK,GAAKL,MAAM/gB,KAAKohB,KACzC,GAAKphB,KAAKggB,GAAKhgB,KAAKggB,GAAK,GACzB,GAAKhgB,KAAK2gB,SAAW3gB,KAAK2gB,SAAW,GAE/Cf,UAAW,WACT,IAAIlT,EAAI1M,KAAK2gB,QACb,OADsBjU,EAAIqU,MAAMrU,GAAK,EAAIR,KAAK8U,IAAI,EAAG9U,KAAKC,IAAI,EAAGO,KACnD,IAANA,EAAU,OAAS,UACpB1M,KAAKmhB,GAAK,GAAK,KACA,KAAfnhB,KAAKohB,GAAK,GAAW,MACN,KAAfphB,KAAKggB,GAAK,GAAW,KACf,IAANtT,EAAU,IAAM,KAAOA,EAAI,SChWvB,mBACb,IAAI7I,EAAInE,EAAO2B,OAAS,EACxB,OAAO,SAASuC,GACd,IAAIoB,EAAIpB,GAAK,EAAKA,EAAI,EAAKA,GAAK,GAAKA,EAAI,EAAGC,EAAI,GAAKqI,KAAKqW,MAAM3e,EAAIC,GAChE+d,EAAKliB,EAAOsF,GACZ6c,EAAKniB,EAAOsF,EAAI,GAChB2c,EAAK3c,EAAI,EAAItF,EAAOsF,EAAI,GAAK,EAAI4c,EAAKC,EACtCC,EAAK9c,EAAInB,EAAI,EAAInE,EAAOsF,EAAI,GAAK,EAAI6c,EAAKD,EAC9C,OAAOH,IAAO7d,EAAIoB,EAAInB,GAAKA,EAAG8d,EAAIC,EAAIC,EAAIC,KCd/B,eACb,IAAIje,EAAInE,EAAO2B,OACf,OAAO,SAASuC,GACd,IAAIoB,EAAIkH,KAAKqW,QAAQ3e,GAAK,GAAK,IAAMA,EAAIA,GAAKC,GAC1C8d,EAAKjiB,GAAQsF,EAAInB,EAAI,GAAKA,GAC1B+d,EAAKliB,EAAOsF,EAAInB,GAChBge,EAAKniB,GAAQsF,EAAI,GAAKnB,GACtBie,EAAKpiB,GAAQsF,EAAI,GAAKnB,GAC1B,OAAO4d,IAAO7d,EAAIoB,EAAInB,GAAKA,EAAG8d,EAAIC,EAAIC,EAAIC,KCV/B,GAAA/f,GAAA,IAAAA,ECEf,SAASygB,GAAO9V,EAAG+V,GACjB,OAAO,SAAS7e,GACd,OAAO8I,EAAI9I,EAAI6e,GAInB,SAASC,GAAYhW,EAAGC,EAAGgW,GACzB,OAAOjW,EAAIR,KAAKoW,IAAI5V,EAAGiW,GAAIhW,EAAIT,KAAKoW,IAAI3V,EAAGgW,GAAKjW,EAAGiW,EAAI,EAAIA,EAAG,SAAS/e,GACrE,OAAOsI,KAAKoW,IAAI5V,EAAI9I,EAAI+I,EAAGgW,IASxB,SAASC,GAAMD,GACpB,OAAoB,KAAZA,GAAKA,GAAWE,GAAU,SAASnW,EAAGC,GAC5C,OAAOA,EAAID,EAAIgW,GAAYhW,EAAGC,EAAGgW,GAAK,GAAS5B,MAAMrU,GAAKC,EAAID,IAInD,SAASmW,GAAQnW,EAAGC,GACjC,IAAI8V,EAAI9V,EAAID,EACZ,OAAO+V,EAAID,GAAO9V,EAAG+V,GAAK,GAAS1B,MAAMrU,GAAKC,EAAID,GCtBrC,qBACb,IAAI1K,EAAQ4gB,GAAMD,GAElB,SAASnD,EAAIsD,EAAOC,GAClB,IAAIvC,EAAIxe,GAAO8gB,EAAQ,GAASA,IAAQtC,GAAIuC,EAAM,GAASA,IAAMvC,GAC7DC,EAAIze,EAAM8gB,EAAMrC,EAAGsC,EAAItC,GACvB9T,EAAI3K,EAAM8gB,EAAMnW,EAAGoW,EAAIpW,GACvBgU,EAAUkC,GAAQC,EAAMnC,QAASoC,EAAIpC,SACzC,OAAO,SAAS/c,GAKd,OAJAkf,EAAMtC,EAAIA,EAAE5c,GACZkf,EAAMrC,EAAIA,EAAE7c,GACZkf,EAAMnW,EAAIA,EAAE/I,GACZkf,EAAMnC,QAAUA,EAAQ/c,GACjBkf,EAAQ,IAMnB,OAFAtD,EAAIoD,MAAQI,EAELxD,EAnBM,CAoBZ,GAEH,SAASyD,GAAUC,GACjB,OAAO,SAAS3gB,GACd,IAIIyC,EAAGhD,EAJH6B,EAAItB,EAAOlB,OACXmf,EAAI,IAAI3b,MAAMhB,GACd4c,EAAI,IAAI5b,MAAMhB,GACd8I,EAAI,IAAI9H,MAAMhB,GAElB,IAAKmB,EAAI,EAAGA,EAAInB,IAAKmB,EACnBhD,EAAQ,GAASO,EAAOyC,IACxBwb,EAAExb,GAAKhD,EAAMwe,GAAK,EAClBC,EAAEzb,GAAKhD,EAAMye,GAAK,EAClB9T,EAAE3H,GAAKhD,EAAM2K,GAAK,EAMpB,OAJA6T,EAAI0C,EAAO1C,GACXC,EAAIyC,EAAOzC,GACX9T,EAAIuW,EAAOvW,GACX3K,EAAM2e,QAAU,EACT,SAAS/c,GAId,OAHA5B,EAAMwe,EAAIA,EAAE5c,GACZ5B,EAAMye,EAAIA,EAAE7c,GACZ5B,EAAM2K,EAAIA,EAAE/I,GACL5B,EAAQ,KAKCihB,GAAU,IACJA,GAAUE,ICtDvB,ICAA,iBACb,OAAOzW,GAAKA,EAAGC,GAAKA,EAAG,SAAS/I,GAC9B,OAAO8I,GAAK,EAAI9I,GAAK+I,EAAI/I,ICAzBwf,GAAM,8CACNC,GAAM,IAAIhN,OAAO+M,GAAIE,OAAQ,KAEjC,SAASC,GAAK5W,GACZ,OAAO,WACL,OAAOA,GAIX,SAAS6W,GAAI7W,GACX,OAAO,SAAS/I,GACd,OAAO+I,EAAE/I,GAAK,IAIH,ICbX6f,GACAC,GDYW,iBACb,IACIC,EACAC,EACAC,EAHAC,EAAKV,GAAIW,UAAYV,GAAIU,UAAY,EAIrC/e,GAAK,EACLoc,EAAI,GACJ4C,EAAI,GAGRtX,GAAQ,GAAIC,GAAQ,GAGpB,OAAQgX,EAAKP,GAAIlD,KAAKxT,MACdkX,EAAKP,GAAInD,KAAKvT,KACfkX,EAAKD,EAAGK,OAASH,IACpBD,EAAKlX,EAAE7G,MAAMge,EAAID,GACbzC,EAAEpc,GAAIoc,EAAEpc,IAAM6e,EACbzC,IAAIpc,GAAK6e,IAEXF,EAAKA,EAAG,OAASC,EAAKA,EAAG,IACxBxC,EAAEpc,GAAIoc,EAAEpc,IAAM4e,EACbxC,IAAIpc,GAAK4e,GAEdxC,IAAIpc,GAAK,KACTgf,EAAE3d,KAAK,CAACrB,EAAGA,EAAGjD,EAAGmiB,GAAOP,EAAIC,MAE9BE,EAAKT,GAAIU,UAYX,OARID,EAAKnX,EAAEtL,SACTwiB,EAAKlX,EAAE7G,MAAMge,GACT1C,EAAEpc,GAAIoc,EAAEpc,IAAM6e,EACbzC,IAAIpc,GAAK6e,GAKTzC,EAAE/f,OAAS,EAAK2iB,EAAE,GACnBR,GAAIQ,EAAE,GAAGjiB,GACTwhB,GAAK5W,IACJA,EAAIqX,EAAE3iB,OAAQ,SAASuC,GACtB,IAAK,IAAWkP,EAAP9N,EAAI,EAAMA,EAAI2H,IAAK3H,EAAGoc,GAAGtO,EAAIkR,EAAEhf,IAAIA,GAAK8N,EAAE/Q,EAAE6B,GACrD,OAAOwd,EAAE5Q,KAAK,OC7DpB,GAAQ,EACR2T,GAAU,EACVC,GAAW,EACXC,GAAY,IAGZC,GAAY,EACZC,GAAW,EACXC,GAAY,EACZC,GAA+B,kBAAhBC,aAA4BA,YAAYC,IAAMD,YAAcE,KAC3EC,GAA6B,kBAAXxR,QAAuBA,OAAOyR,sBAAwBzR,OAAOyR,sBAAsBna,KAAK0I,QAAU,SAAS0R,GAAKC,WAAWD,EAAG,KAE7I,SAASJ,KACd,OAAOJ,KAAaM,GAASI,IAAWV,GAAWE,GAAME,MAAQH,IAGnE,SAASS,KACPV,GAAW,EAGN,SAAS,KACdvkB,KAAKklB,MACLllB,KAAKmlB,MACLnlB,KAAKyJ,MAAQ,KA0BR,SAAS2b,GAAMjf,EAAUkf,EAAO3hB,GACrC,IAAIE,EAAI,IAAI,GAEZ,OADAA,EAAE0hB,QAAQnf,EAAUkf,EAAO3hB,GACpBE,EAGF,SAAS2hB,KACdZ,OACE,GACF,IAAkBa,EAAd5hB,EAAI6f,GACR,MAAO7f,GACA4hB,EAAIjB,GAAW3gB,EAAEuhB,QAAU,GAAGvhB,EAAEshB,MAAMve,UAAK8e,EAAWD,GAC3D5hB,EAAIA,EAAE6F,QAEN,GAGJ,SAASic,KACPnB,IAAYD,GAAYG,GAAME,OAASH,GACvC,GAAQL,GAAU,EAClB,IACEoB,KACA,QACA,GAAQ,EACRI,KACApB,GAAW,GAIf,SAASqB,KACP,IAAIjB,EAAMF,GAAME,MAAOU,EAAQV,EAAML,GACjCe,EAAQhB,KAAWG,IAAaa,EAAOf,GAAYK,GAGzD,SAASgB,KACP,IAAIE,EAAmB9D,EAAfL,EAAK+B,GAAc/f,EAAOoiB,IAClC,MAAOpE,EACDA,EAAGwD,OACDxhB,EAAOge,EAAGyD,QAAOzhB,EAAOge,EAAGyD,OAC/BU,EAAKnE,EAAIA,EAAKA,EAAGjY,QAEjBsY,EAAKL,EAAGjY,MAAOiY,EAAGjY,MAAQ,KAC1BiY,EAAKmE,EAAKA,EAAGpc,MAAQsY,EAAK0B,GAAW1B,GAGzC2B,GAAWmC,EACXE,GAAMriB,GAGR,SAASqiB,GAAMriB,GACb,IAAI,GAAJ,CACIygB,KAASA,GAAU6B,aAAa7B,KACpC,IAAIkB,EAAQ3hB,EAAO6gB,GACfc,EAAQ,IACN3hB,EAAOoiB,MAAU3B,GAAUa,WAAWU,GAAMhiB,EAAO+gB,GAAME,MAAQH,KACjEJ,KAAUA,GAAW6B,cAAc7B,OAElCA,KAAUE,GAAYG,GAAME,MAAOP,GAAW8B,YAAYN,GAAMvB,KACrE,GAAQ,EAAGQ,GAASa,MAjFxB,GAAMpf,UAAY8e,GAAM9e,UAAY,CAClCC,YAAa,GACb+e,QAAS,SAASnf,EAAUkf,EAAO3hB,GACjC,GAAwB,oBAAbyC,EAAyB,MAAM,IAAIggB,UAAU,8BACxDziB,GAAgB,MAARA,EAAeihB,MAASjhB,IAAkB,MAAT2hB,EAAgB,GAAKA,GACzDrlB,KAAKyJ,OAASia,KAAa1jB,OAC1B0jB,GAAUA,GAASja,MAAQzJ,KAC1ByjB,GAAWzjB,KAChB0jB,GAAW1jB,MAEbA,KAAKklB,MAAQ/e,EACbnG,KAAKmlB,MAAQzhB,EACbqiB,MAEFK,KAAM,WACApmB,KAAKklB,QACPllB,KAAKklB,MAAQ,KACbllB,KAAKmlB,MAAQW,IACbC,QC1CS,uBACb,IAAIniB,EAAI,IAAI,GAMZ,OALAyhB,EAAiB,MAATA,EAAgB,GAAKA,EAC7BzhB,EAAE0hB,QAAQe,IACRziB,EAAEwiB,OACFjgB,EAASkgB,EAAUhB,IAClBA,EAAO3hB,GACHE,GCNL0iB,GAAU,EAAS,QAAS,MAAO,SAAU,aAC7CC,GAAa,GAENC,GAAU,EACVC,GAAY,EACZC,GAAW,EACXC,GAAU,EACVC,GAAU,EACVC,GAAS,EACTC,GAAQ,EAEJ,yBACb,IAAIC,EAAYvf,EAAKwf,aACrB,GAAKD,GACA,GAAIviB,KAAMuiB,EAAW,YADVvf,EAAKwf,aAAe,GAEpC,GAAOxf,EAAMhD,EAAI,CACfoB,KAAMA,EACNqe,MAAOA,EACPvc,MAAOA,EACPzG,GAAIqlB,GACJW,MAAOV,GACP7iB,KAAMwjB,EAAOxjB,KACb2hB,MAAO6B,EAAO7B,MACd8B,SAAUD,EAAOC,SACjBC,KAAMF,EAAOE,KACbhC,MAAO,KACPiC,MAAOb,MAIJ,SAASc,GAAK9f,EAAMhD,GACzB,IAAI+iB,EAAW,GAAI/f,EAAMhD,GACzB,GAAI+iB,EAASF,MAAQb,GAAS,MAAM,IAAIphB,MAAM,+BAC9C,OAAOmiB,EAGF,SAAS,GAAI/f,EAAMhD,GACxB,IAAI+iB,EAAW,GAAI/f,EAAMhD,GACzB,GAAI+iB,EAASF,MAAQV,GAAS,MAAM,IAAIvhB,MAAM,6BAC9C,OAAOmiB,EAGF,SAAS,GAAI/f,EAAMhD,GACxB,IAAI+iB,EAAW/f,EAAKwf,aACpB,IAAKO,KAAcA,EAAWA,EAAS/iB,IAAM,MAAM,IAAIY,MAAM,wBAC7D,OAAOmiB,EAGT,SAAS,GAAO/f,EAAMhD,EAAIgjB,GACxB,IACIP,EADAF,EAAYvf,EAAKwf,aAQrB,SAASO,EAASlB,GAChBmB,EAAKH,MAAQZ,GACbe,EAAKpC,MAAME,QAAQxC,EAAO0E,EAAKnC,MAAOmC,EAAK9jB,MAGvC8jB,EAAKnC,OAASgB,GAASvD,EAAMuD,EAAUmB,EAAKnC,OAGlD,SAASvC,EAAMuD,GACb,IAAIrhB,EAAGuC,EAAG1D,EAAGiP,EAGb,GAAI0U,EAAKH,QAAUZ,GAAW,OAAOL,IAErC,IAAKphB,KAAK+hB,EAER,GADAjU,EAAIiU,EAAU/hB,GACV8N,EAAElN,OAAS4hB,EAAK5hB,KAApB,CAKA,GAAIkN,EAAEuU,QAAUV,GAAS,OAAO,GAAQ7D,GAGpChQ,EAAEuU,QAAUT,IACd9T,EAAEuU,MAAQP,GACVhU,EAAEsS,MAAMgB,OACRtT,EAAE7R,GAAG0F,KAAK,YAAaa,EAAMA,EAAKI,SAAUkL,EAAEmR,MAAOnR,EAAEpL,cAChDqf,EAAU/hB,KAITA,EAAIR,IACZsO,EAAEuU,MAAQP,GACVhU,EAAEsS,MAAMgB,OACRtT,EAAE7R,GAAG0F,KAAK,SAAUa,EAAMA,EAAKI,SAAUkL,EAAEmR,MAAOnR,EAAEpL,cAC7Cqf,EAAU/hB,IAoBrB,GAZA,IAAQ,WACFwiB,EAAKH,QAAUV,KACjBa,EAAKH,MAAQT,GACbY,EAAKpC,MAAME,QAAQmC,EAAMD,EAAKnC,MAAOmC,EAAK9jB,MAC1C+jB,EAAKpB,OAMTmB,EAAKH,MAAQX,GACbc,EAAKvmB,GAAG0F,KAAK,QAASa,EAAMA,EAAKI,SAAU4f,EAAKvD,MAAOuD,EAAK9f,OACxD8f,EAAKH,QAAUX,GAAnB,CAKA,IAJAc,EAAKH,MAAQV,GAGbM,EAAQ,IAAIpiB,MAAMhB,EAAI2jB,EAAKP,MAAM5lB,QAC5B2D,EAAI,EAAGuC,GAAK,EAAGvC,EAAInB,IAAKmB,GACvB8N,EAAI0U,EAAKP,MAAMjiB,GAAGxB,MAAMmD,KAAKa,EAAMA,EAAKI,SAAU4f,EAAKvD,MAAOuD,EAAK9f,UACrEuf,IAAQ1f,GAAKuL,GAGjBmU,EAAM5lB,OAASkG,EAAI,GAGrB,SAASkgB,EAAKpB,GACZ,IAAIziB,EAAIyiB,EAAUmB,EAAKL,SAAWK,EAAKJ,KAAKzgB,KAAK,KAAM0f,EAAUmB,EAAKL,WAAaK,EAAKpC,MAAME,QAAQc,GAAOoB,EAAKH,MAAQR,GAAQ,GAC9H7hB,GAAK,EACLnB,EAAIojB,EAAM5lB,OAEd,QAAS2D,EAAInB,EACXojB,EAAMjiB,GAAG2B,KAAKa,EAAM5D,GAIlB4jB,EAAKH,QAAUR,KACjBW,EAAKvmB,GAAG0F,KAAK,MAAOa,EAAMA,EAAKI,SAAU4f,EAAKvD,MAAOuD,EAAK9f,OAC1D0e,KAIJ,SAASA,IAIP,IAAK,IAAIphB,KAHTwiB,EAAKH,MAAQP,GACbU,EAAKpC,MAAMgB,cACJW,EAAUviB,GACHuiB,EAAW,cAClBvf,EAAKwf,aA7FdD,EAAUviB,GAAMgjB,EAChBA,EAAKpC,MAAQA,GAAMmC,EAAU,EAAGC,EAAK9jB,MCxDxB,ICAXgkB,GDAW,iBACb,IACIH,EACAtjB,EAEAe,EAJA+hB,EAAYvf,EAAKwf,aAGjBtS,GAAQ,EAGZ,GAAKqS,EAAL,CAIA,IAAK/hB,KAFLY,EAAe,MAARA,EAAe,KAAOA,EAAO,GAE1BmhB,GACHQ,EAAWR,EAAU/hB,IAAIY,OAASA,GACvC3B,EAASsjB,EAASF,MAAQX,IAAYa,EAASF,MAAQR,GACvDU,EAASF,MAAQP,GACjBS,EAASnC,MAAMgB,OACfmB,EAAStmB,GAAG0F,KAAK1C,EAAS,YAAc,SAAUuD,EAAMA,EAAKI,SAAU2f,EAAStD,MAAOsD,EAAS7f,cACzFqf,EAAU/hB,IAL8B0P,GAAQ,EAQrDA,UAAclN,EAAKwf,eEpBV,eACb,OAAOhnB,KAAK2O,MAAK,WACfgZ,GAAU3nB,KAAM4F,OCJhBgiB,GAAU,IAAM1b,KAAK2b,GAEdC,GAAW,CACpBC,WAAY,EACZC,WAAY,EACZC,OAAQ,EACRC,MAAO,EACPC,OAAQ,EACRC,OAAQ,GAGK,sBAAArD,GACb,IAAIoD,EAAQC,EAAQF,EAKpB,OAJIC,EAASjc,KAAKmc,KAAK3b,EAAIA,EAAIC,EAAIA,MAAID,GAAKyb,EAAQxb,GAAKwb,IACrDD,EAAQxb,EAAIzG,EAAI0G,EAAI8V,KAAGxc,GAAKyG,EAAIwb,EAAOzF,GAAK9V,EAAIub,IAChDE,EAASlc,KAAKmc,KAAKpiB,EAAIA,EAAIwc,EAAIA,MAAIxc,GAAKmiB,EAAQ3F,GAAK2F,EAAQF,GAASE,GACtE1b,EAAI+V,EAAI9V,EAAI1G,IAAGyG,GAAKA,EAAGC,GAAKA,EAAGub,GAASA,EAAOC,GAAUA,GACtD,CACLJ,WAAYvC,EACZwC,WAAYjD,EACZkD,OAAQ/b,KAAKoc,MAAM3b,EAAGD,GAAKkb,GAC3BM,MAAOhc,KAAKqc,KAAKL,GAASN,GAC1BO,OAAQA,EACRC,OAAQA,IFlBL,SAASI,GAAShlB,GACvB,MAAM6D,EAAI,IAA0B,oBAAdohB,UAA2BA,UAAYC,iBAAiBllB,EAAQ,IACtF,OAAO6D,EAAEshB,WAAab,GAAWc,GAAUvhB,EAAEqF,EAAGrF,EAAEsF,EAAGtF,EAAEpB,EAAGoB,EAAEob,EAAGpb,EAAEme,EAAGne,EAAE0d,GAGjE,SAAS8D,GAASrlB,GACvB,OAAa,MAATA,EAAsBskB,IACrBJ,KAASA,GAAU7Y,SAAS+C,gBAAgB,6BAA8B,MAC/E8V,GAAQxZ,aAAa,YAAa1K,IAC5BA,EAAQkkB,GAAQoB,UAAUC,QAAQC,gBACxCxlB,EAAQA,EAAMylB,OACPL,GAAUplB,EAAMkJ,EAAGlJ,EAAMmJ,EAAGnJ,EAAMyC,EAAGzC,EAAMif,EAAGjf,EAAMgiB,EAAGhiB,EAAMuhB,IAFL+C,IGXjE,SAASoB,GAAqBC,EAAOC,EAASC,EAASC,GAErD,SAASC,EAAInI,GACX,OAAOA,EAAE/f,OAAS+f,EAAEmI,MAAQ,IAAM,GAGpC,SAASC,EAAUC,EAAIC,EAAIC,EAAIC,EAAIxI,EAAG4C,GACpC,GAAIyF,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAI5kB,EAAIoc,EAAE/a,KAAK,aAAc,KAAM+iB,EAAS,KAAMC,GAClDrF,EAAE3d,KAAK,CAACrB,EAAGA,EAAI,EAAGjD,EAAGmiB,GAAOuF,EAAIE,IAAM,CAAC3kB,EAAGA,EAAI,EAAGjD,EAAGmiB,GAAOwF,EAAIE,UACtDD,GAAMC,IACfxI,EAAE/a,KAAK,aAAesjB,EAAKP,EAAUQ,EAAKP,GAI9C,SAASpB,EAAOvb,EAAGC,EAAGyU,EAAG4C,GACnBtX,IAAMC,GACJD,EAAIC,EAAI,IAAKA,GAAK,IAAcA,EAAID,EAAI,MAAKA,GAAK,KACtDsX,EAAE3d,KAAK,CAACrB,EAAGoc,EAAE/a,KAAKkjB,EAAInI,GAAK,UAAW,KAAMkI,GAAY,EAAGvnB,EAAGmiB,GAAOxX,EAAGC,MAC/DA,GACTyU,EAAE/a,KAAKkjB,EAAInI,GAAK,UAAYzU,EAAI2c,GAIpC,SAASpB,EAAMxb,EAAGC,EAAGyU,EAAG4C,GAClBtX,IAAMC,EACRqX,EAAE3d,KAAK,CAACrB,EAAGoc,EAAE/a,KAAKkjB,EAAInI,GAAK,SAAU,KAAMkI,GAAY,EAAGvnB,EAAGmiB,GAAOxX,EAAGC,KAC9DA,GACTyU,EAAE/a,KAAKkjB,EAAInI,GAAK,SAAWzU,EAAI2c,GAInC,SAASO,EAAMJ,EAAIC,EAAIC,EAAIC,EAAIxI,EAAG4C,GAChC,GAAIyF,IAAOE,GAAMD,IAAOE,EAAI,CAC1B,IAAI5kB,EAAIoc,EAAE/a,KAAKkjB,EAAInI,GAAK,SAAU,KAAM,IAAK,KAAM,KACnD4C,EAAE3d,KAAK,CAACrB,EAAGA,EAAI,EAAGjD,EAAGmiB,GAAOuF,EAAIE,IAAM,CAAC3kB,EAAGA,EAAI,EAAGjD,EAAGmiB,GAAOwF,EAAIE,UAC/C,IAAPD,GAAmB,IAAPC,GACrBxI,EAAE/a,KAAKkjB,EAAInI,GAAK,SAAWuI,EAAK,IAAMC,EAAK,KAI/C,OAAO,SAASld,EAAGC,GACjB,IAAIyU,EAAI,GACJ4C,EAAI,GAOR,OANAtX,EAAIyc,EAAMzc,GAAIC,EAAIwc,EAAMxc,GACxB6c,EAAU9c,EAAEqb,WAAYrb,EAAEsb,WAAYrb,EAAEob,WAAYpb,EAAEqb,WAAY5G,EAAG4C,GACrEiE,EAAOvb,EAAEub,OAAQtb,EAAEsb,OAAQ7G,EAAG4C,GAC9BkE,EAAMxb,EAAEwb,MAAOvb,EAAEub,MAAO9G,EAAG4C,GAC3B6F,EAAMnd,EAAEyb,OAAQzb,EAAE0b,OAAQzb,EAAEwb,OAAQxb,EAAEyb,OAAQhH,EAAG4C,GACjDtX,EAAIC,EAAI,KACD,SAAS/I,GACd,IAA0BkP,EAAtB9N,GAAK,EAAGnB,EAAImgB,EAAE3iB,OAClB,QAAS2D,EAAInB,EAAGud,GAAGtO,EAAIkR,EAAEhf,IAAIA,GAAK8N,EAAE/Q,EAAE6B,GACtC,OAAOwd,EAAE5Q,KAAK,MAKb,IAAIsZ,GAA0BZ,GAAqBV,GAAU,OAAQ,MAAO,QACxEuB,GAA0Bb,GAAqBL,GAAU,KAAM,IAAK,KC5D/E,SAASmB,GAAYxlB,EAAIoB,GACvB,IAAIqkB,EAAQC,EACZ,OAAO,WACL,IAAI3C,EAAW,GAAIvnB,KAAMwE,GACrByiB,EAAQM,EAASN,MAKrB,GAAIA,IAAUgD,EAAQ,CACpBC,EAASD,EAAShD,EAClB,IAAK,IAAIjiB,EAAI,EAAGnB,EAAIqmB,EAAO7oB,OAAQ2D,EAAInB,IAAKmB,EAC1C,GAAIklB,EAAOllB,GAAGY,OAASA,EAAM,CAC3BskB,EAASA,EAAOpkB,QAChBokB,EAAOzZ,OAAOzL,EAAG,GACjB,OAKNuiB,EAASN,MAAQiD,GAIrB,SAASC,GAAc3lB,EAAIoB,EAAMpC,GAC/B,IAAIymB,EAAQC,EACZ,GAAqB,oBAAV1mB,EAAsB,MAAM,IAAI4B,MAC3C,OAAO,WACL,IAAImiB,EAAW,GAAIvnB,KAAMwE,GACrByiB,EAAQM,EAASN,MAKrB,GAAIA,IAAUgD,EAAQ,CACpBC,GAAUD,EAAShD,GAAOnhB,QAC1B,IAAK,IAAIlC,EAAI,CAACgC,KAAMA,EAAMpC,MAAOA,GAAQwB,EAAI,EAAGnB,EAAIqmB,EAAO7oB,OAAQ2D,EAAInB,IAAKmB,EAC1E,GAAIklB,EAAOllB,GAAGY,OAASA,EAAM,CAC3BskB,EAAOllB,GAAKpB,EACZ,MAGAoB,IAAMnB,GAAGqmB,EAAO7jB,KAAKzC,GAG3B2jB,EAASN,MAAQiD,GAIN,qBACb,IAAI1lB,EAAKxE,KAAKoqB,IAId,GAFAxkB,GAAQ,GAEJX,UAAU5D,OAAS,EAAG,CAExB,IADA,IACkCuC,EAD9BqjB,EAAQ,GAAIjnB,KAAKwH,OAAQhD,GAAIyiB,MACxBjiB,EAAI,EAAGnB,EAAIojB,EAAM5lB,OAAW2D,EAAInB,IAAKmB,EAC5C,IAAKpB,EAAIqjB,EAAMjiB,IAAIY,OAASA,EAC1B,OAAOhC,EAAEJ,MAGb,OAAO,KAGT,OAAOxD,KAAK2O,MAAe,MAATnL,EAAgBwmB,GAAcG,IAAe3lB,EAAIoB,EAAMpC,KAGpE,SAAS6mB,GAAWC,EAAY1kB,EAAMpC,GAC3C,IAAIgB,EAAK8lB,EAAWF,IAOpB,OALAE,EAAW3b,MAAK,WACd,IAAI4Y,EAAW,GAAIvnB,KAAMwE,IACxB+iB,EAAS/jB,QAAU+jB,EAAS/jB,MAAQ,KAAKoC,GAAQpC,EAAMsD,MAAM9G,KAAMiF,cAG/D,SAASuC,GACd,OAAO,GAAIA,EAAMhD,GAAIhB,MAAMoC,IC3EhB,qBACb,IAAIK,EACJ,OAAqB,kBAAN0G,EAAiB,GAC1BA,aAAa,GAAQ,IACpB1G,EAAI,GAAM0G,KAAOA,EAAI1G,EAAG,IACzB,IAAmByG,EAAGC,ICH9B,SAAS,GAAW/G,GAClB,OAAO,WACL5F,KAAK6N,gBAAgBjI,IAIzB,SAAS,GAAamI,GACpB,OAAO,WACL/N,KAAKgO,kBAAkBD,EAASL,MAAOK,EAASJ,QAIpD,SAAS,GAAa/H,EAAM2kB,EAAaC,GACvC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAU5qB,KAAK0O,aAAa9I,GAChC,OAAOglB,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAeH,EAAYE,EAAWG,EAASJ,IAIzD,SAAS,GAAezc,EAAUwc,EAAaC,GAC7C,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAU5qB,KAAKyO,eAAeV,EAASL,MAAOK,EAASJ,OAC3D,OAAOid,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAeH,EAAYE,EAAWG,EAASJ,IAIzD,SAAS,GAAa5kB,EAAM2kB,EAAa/mB,GACvC,IAAIinB,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAA+BD,EAAtBH,EAAShnB,EAAMxD,MAC5B,GAAc,MAAVwqB,EAGJ,OAFAI,EAAU5qB,KAAK0O,aAAa9I,GAC5B+kB,EAAUH,EAAS,GACZI,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAeH,EAAYE,EAAWG,EAASJ,IAL1CxqB,KAAK6N,gBAAgBjI,IASzD,SAAS,GAAemI,EAAUwc,EAAa/mB,GAC7C,IAAIinB,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAA+BD,EAAtBH,EAAShnB,EAAMxD,MAC5B,GAAc,MAAVwqB,EAGJ,OAFAI,EAAU5qB,KAAKyO,eAAeV,EAASL,MAAOK,EAASJ,OACvDgd,EAAUH,EAAS,GACZI,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAeH,EAAYE,EAAWG,EAASJ,IAL1CxqB,KAAKgO,kBAAkBD,EAASL,MAAOK,EAASJ,QASrE,qBACb,IAAII,EAAWS,GAAU5I,GAAOZ,EAAiB,cAAb+I,EAA2B,GAAuB,GACtF,OAAO/N,KAAK8qB,UAAUllB,EAAuB,oBAAVpC,GAC5BuK,EAASJ,MAAQ,GAAiB,IAAcI,EAAU/I,EAAGqlB,GAAWrqB,KAAM,QAAU4F,EAAMpC,IACtF,MAATA,GAAiBuK,EAASJ,MAAQ,GAAe,IAAYI,IAC5DA,EAASJ,MAAQ,GAAiB,IAAcI,EAAU/I,EAAGxB,KC1EtE,SAASunB,GAAgBnlB,EAAMZ,GAC7B,OAAO,SAASpB,GACd5D,KAAKkO,aAAatI,EAAMZ,EAAE2B,KAAK3G,KAAM4D,KAIzC,SAASonB,GAAkBjd,EAAU/I,GACnC,OAAO,SAASpB,GACd5D,KAAKoO,eAAeL,EAASL,MAAOK,EAASJ,MAAO3I,EAAE2B,KAAK3G,KAAM4D,KAIrE,SAASqnB,GAAYld,EAAUvK,GAC7B,IAAIqiB,EAAI3a,EACR,SAAS+b,IACP,IAAIjiB,EAAIxB,EAAMsD,MAAM9G,KAAMiF,WAE1B,OADID,IAAMkG,IAAI2a,GAAM3a,EAAKlG,IAAMgmB,GAAkBjd,EAAU/I,IACpD6gB,EAGT,OADAoB,EAAMiE,OAAS1nB,EACRyjB,EAGT,SAAS6D,GAAUllB,EAAMpC,GACvB,IAAIqiB,EAAI3a,EACR,SAAS+b,IACP,IAAIjiB,EAAIxB,EAAMsD,MAAM9G,KAAMiF,WAE1B,OADID,IAAMkG,IAAI2a,GAAM3a,EAAKlG,IAAM+lB,GAAgBnlB,EAAMZ,IAC9C6gB,EAGT,OADAoB,EAAMiE,OAAS1nB,EACRyjB,EAGM,qBACb,IAAIhlB,EAAM,QAAU2D,EACpB,GAAIX,UAAU5D,OAAS,EAAG,OAAQY,EAAMjC,KAAKinB,MAAMhlB,KAASA,EAAIipB,OAChE,GAAa,MAAT1nB,EAAe,OAAOxD,KAAKinB,MAAMhlB,EAAK,MAC1C,GAAqB,oBAAVuB,EAAsB,MAAM,IAAI4B,MAC3C,IAAI2I,EAAWS,GAAU5I,GACzB,OAAO5F,KAAKinB,MAAMhlB,GAAM8L,EAASJ,MAAQsd,GAAcH,IAAW/c,EAAUvK,KCxC9E,SAAS2nB,GAAc3mB,EAAIhB,GACzB,OAAO,WACL8jB,GAAKtnB,KAAMwE,GAAI6gB,OAAS7hB,EAAMsD,MAAM9G,KAAMiF,YAI9C,SAASmmB,GAAc5mB,EAAIhB,GACzB,OAAOA,GAASA,EAAO,WACrB8jB,GAAKtnB,KAAMwE,GAAI6gB,MAAQ7hB,GAIZ,mBACb,IAAIgB,EAAKxE,KAAKoqB,IAEd,OAAOnlB,UAAU5D,OACXrB,KAAK2O,MAAuB,oBAAVnL,EACd2nB,GACAC,IAAe5mB,EAAIhB,IACvB,GAAIxD,KAAKwH,OAAQhD,GAAI6gB,OCnB7B,SAASgG,GAAiB7mB,EAAIhB,GAC5B,OAAO,WACL,GAAIxD,KAAMwE,GAAI2iB,UAAY3jB,EAAMsD,MAAM9G,KAAMiF,YAIhD,SAASqmB,GAAiB9mB,EAAIhB,GAC5B,OAAOA,GAASA,EAAO,WACrB,GAAIxD,KAAMwE,GAAI2iB,SAAW3jB,GAId,mBACb,IAAIgB,EAAKxE,KAAKoqB,IAEd,OAAOnlB,UAAU5D,OACXrB,KAAK2O,MAAuB,oBAAVnL,EACd6nB,GACAC,IAAkB9mB,EAAIhB,IAC1B,GAAIxD,KAAKwH,OAAQhD,GAAI2iB,UCnB7B,SAASoE,GAAa/mB,EAAIhB,GACxB,GAAqB,oBAAVA,EAAsB,MAAM,IAAI4B,MAC3C,OAAO,WACL,GAAIpF,KAAMwE,GAAI4iB,KAAO5jB,GAIV,mBACb,IAAIgB,EAAKxE,KAAKoqB,IAEd,OAAOnlB,UAAU5D,OACXrB,KAAK2O,KAAK4c,GAAa/mB,EAAIhB,IAC3B,GAAIxD,KAAKwH,OAAQhD,GAAI4iB,MCZ7B,SAASoE,GAAYhnB,EAAIhB,GACvB,OAAO,WACL,IAAI8K,EAAI9K,EAAMsD,MAAM9G,KAAMiF,WAC1B,GAAiB,oBAANqJ,EAAkB,MAAM,IAAIlJ,MACvC,GAAIpF,KAAMwE,GAAI4iB,KAAO9Y,GAIV,mBACb,GAAqB,oBAAV9K,EAAsB,MAAM,IAAI4B,MAC3C,OAAOpF,KAAK2O,KAAK6c,GAAYxrB,KAAKoqB,IAAK5mB,KCT1B,eACQ,oBAAVnE,IAAsBA,EAAQ2J,GAAQ3J,IAEjD,IAAK,IAAI8H,EAASnH,KAAKoH,QAASC,EAAIF,EAAO9F,OAAQiG,EAAY,IAAIzC,MAAMwC,GAAIE,EAAI,EAAGA,EAAIF,IAAKE,EAC3F,IAAK,IAAuEC,EAAnEE,EAAQP,EAAOI,GAAI1D,EAAI6D,EAAMrG,OAAQsG,EAAWL,EAAUC,GAAK,GAAUvC,EAAI,EAAGA,EAAInB,IAAKmB,GAC3FwC,EAAOE,EAAM1C,KAAO3F,EAAMsH,KAAKa,EAAMA,EAAKI,SAAU5C,EAAG0C,IAC1DC,EAAStB,KAAKmB,GAKpB,OAAO,IAAIikB,GAAWnkB,EAAWtH,KAAK8H,SAAU9H,KAAK0rB,MAAO1rB,KAAKoqB,MCZpD,eACb,GAAIE,EAAWF,MAAQpqB,KAAKoqB,IAAK,MAAM,IAAIhlB,MAE3C,IAAK,IAAI0G,EAAU9L,KAAKoH,QAAS2E,EAAUue,EAAWljB,QAAS4E,EAAKF,EAAQzK,OAAQ4K,EAAKF,EAAQ1K,OAAQgG,EAAI6E,KAAKC,IAAIH,EAAIC,GAAKG,EAAS,IAAIvH,MAAMmH,GAAKzE,EAAI,EAAGA,EAAIF,IAAKE,EACrK,IAAK,IAAmGC,EAA/F6E,EAASP,EAAQvE,GAAI+E,EAASP,EAAQxE,GAAI1D,EAAIwI,EAAOhL,OAAQsK,EAAQS,EAAO7E,GAAK,IAAI1C,MAAMhB,GAAUmB,EAAI,EAAGA,EAAInB,IAAKmB,GACxHwC,EAAO6E,EAAOrH,IAAMsH,EAAOtH,MAC7B2G,EAAM3G,GAAKwC,GAKjB,KAAOD,EAAIyE,IAAMzE,EACf6E,EAAO7E,GAAKuE,EAAQvE,GAGtB,OAAO,IAAIkkB,GAAWrf,EAAQpM,KAAK8H,SAAU9H,KAAK0rB,MAAO1rB,KAAKoqB,MCfhE,SAAS,GAAMxkB,GACb,OAAQA,EAAO,IAAIH,OAAOC,MAAM,SAASimB,OAAM,SAAS/nB,GACtD,IAAIoB,EAAIpB,EAAEiC,QAAQ,KAElB,OADIb,GAAK,IAAGpB,EAAIA,EAAEkC,MAAM,EAAGd,KACnBpB,GAAW,UAANA,KAIjB,SAASgoB,GAAWpnB,EAAIoB,EAAM8M,GAC5B,IAAImZ,EAAKC,EAAKC,EAAM,GAAMnmB,GAAQ0hB,GAAO,GACzC,OAAO,WACL,IAAIC,EAAWwE,EAAI/rB,KAAMwE,GACrBvD,EAAKsmB,EAAStmB,GAKdA,IAAO4qB,IAAMC,GAAOD,EAAM5qB,GAAIyF,QAAQzF,GAAG2E,EAAM8M,GAEnD6U,EAAStmB,GAAK6qB,GAIH,qBACb,IAAItnB,EAAKxE,KAAKoqB,IAEd,OAAOnlB,UAAU5D,OAAS,EACpB,GAAIrB,KAAKwH,OAAQhD,GAAIvD,GAAGA,GAAG2E,GAC3B5F,KAAK2O,KAAKid,GAAWpnB,EAAIoB,EAAM8M,KC9BvC,SAASsZ,GAAexnB,GACtB,OAAO,WACL,IAAI6E,EAASrJ,KAAKwM,WAClB,IAAK,IAAIxH,KAAKhF,KAAKgnB,aAAc,IAAKhiB,IAAMR,EAAI,OAC5C6E,GAAQA,EAAO6I,YAAYlS,OAIpB,kBACb,OAAOA,KAAKiB,GAAG,aAAc+qB,GAAehsB,KAAKoqB,OCLpC,eACb,IAAIxkB,EAAO5F,KAAK0rB,MACZlnB,EAAKxE,KAAKoqB,IAEQ,oBAAXljB,IAAuBA,EAAS,EAASA,IAEpD,IAAK,IAAIC,EAASnH,KAAKoH,QAASC,EAAIF,EAAO9F,OAAQiG,EAAY,IAAIzC,MAAMwC,GAAIE,EAAI,EAAGA,EAAIF,IAAKE,EAC3F,IAAK,IAAiFC,EAAMC,EAAnFC,EAAQP,EAAOI,GAAI1D,EAAI6D,EAAMrG,OAAQsG,EAAWL,EAAUC,GAAK,IAAI1C,MAAMhB,GAAmBmB,EAAI,EAAGA,EAAInB,IAAKmB,GAC9GwC,EAAOE,EAAM1C,MAAQyC,EAAUP,EAAOP,KAAKa,EAAMA,EAAKI,SAAU5C,EAAG0C,MAClE,aAAcF,IAAMC,EAAQG,SAAWJ,EAAKI,UAChDD,EAAS3C,GAAKyC,EACd,GAASE,EAAS3C,GAAIY,EAAMpB,EAAIQ,EAAG2C,EAAU,GAAIH,EAAMhD,KAK7D,OAAO,IAAIinB,GAAWnkB,EAAWtH,KAAK8H,SAAUlC,EAAMpB,IChBzC,eACb,IAAIoB,EAAO5F,KAAK0rB,MACZlnB,EAAKxE,KAAKoqB,IAEQ,oBAAXljB,IAAuBA,EAASkB,EAAYlB,IAEvD,IAAK,IAAIC,EAASnH,KAAKoH,QAASC,EAAIF,EAAO9F,OAAQiG,EAAY,GAAIe,EAAU,GAAId,EAAI,EAAGA,EAAIF,IAAKE,EAC/F,IAAK,IAAyCC,EAArCE,EAAQP,EAAOI,GAAI1D,EAAI6D,EAAMrG,OAAc2D,EAAI,EAAGA,EAAInB,IAAKmB,EAClE,GAAIwC,EAAOE,EAAM1C,GAAI,CACnB,IAAK,IAA2D4E,EAAvDlB,EAAWxB,EAAOP,KAAKa,EAAMA,EAAKI,SAAU5C,EAAG0C,GAAeukB,EAAU,GAAIzkB,EAAMhD,GAAK6d,EAAI,EAAGrC,EAAItX,EAASrH,OAAQghB,EAAIrC,IAAKqC,GAC/HzY,EAAQlB,EAAS2Z,KACnB,GAASzY,EAAOhE,EAAMpB,EAAI6d,EAAG3Z,EAAUujB,GAG3C3kB,EAAUjB,KAAKqC,GACfL,EAAQhC,KAAKmB,GAKnB,OAAO,IAAIikB,GAAWnkB,EAAWe,EAASzC,EAAMpB,ICtB9C,GAAY,GAAU8B,UAAUC,YAErB,cACb,OAAO,IAAI,GAAUvG,KAAKoH,QAASpH,KAAK8H,WCC1C,SAASokB,GAAUtmB,EAAM2kB,GACvB,IAAIE,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAAU,GAAM5qB,KAAM4F,GACtB+kB,GAAW3qB,KAAKS,MAAMsO,eAAenJ,GAAO,GAAM5F,KAAM4F,IAC5D,OAAOglB,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,EAC/CA,EAAeH,EAAYE,EAAWG,EAASC,EAAWF,IAIpE,SAAS,GAAY/kB,GACnB,OAAO,WACL5F,KAAKS,MAAMsO,eAAenJ,IAI9B,SAAS,GAAcA,EAAM2kB,EAAaC,GACxC,IAAIC,EAEAC,EADAC,EAAUH,EAAS,GAEvB,OAAO,WACL,IAAII,EAAU,GAAM5qB,KAAM4F,GAC1B,OAAOglB,IAAYD,EAAU,KACvBC,IAAYH,EAAWC,EACvBA,EAAeH,EAAYE,EAAWG,EAASJ,IAIzD,SAAS,GAAc5kB,EAAM2kB,EAAa/mB,GACxC,IAAIinB,EACAI,EACAH,EACJ,OAAO,WACL,IAAIE,EAAU,GAAM5qB,KAAM4F,GACtB4kB,EAAShnB,EAAMxD,MACf2qB,EAAUH,EAAS,GAEvB,OADc,MAAVA,IAAoCxqB,KAAKS,MAAMsO,eAAenJ,GAA9C+kB,EAAUH,EAA2C,GAAMxqB,KAAM4F,IAC9EglB,IAAYD,EAAU,KACvBC,IAAYH,GAAYE,IAAYE,EAAWH,GAC9CG,EAAWF,EAASD,EAAeH,EAAYE,EAAWG,EAASJ,KAI9E,SAAS2B,GAAiB3nB,EAAIoB,GAC5B,IAAIimB,EAAKC,EAAKM,EAAwD1gB,EAA7CzJ,EAAM,SAAW2D,EAAM+M,EAAQ,OAAS1Q,EACjE,OAAO,WACL,IAAIslB,EAAW,GAAIvnB,KAAMwE,GACrBvD,EAAKsmB,EAAStmB,GACdyR,EAAkC,MAAvB6U,EAAS/jB,MAAMvB,GAAeyJ,IAAWA,EAAS,GAAY9F,SAAS6f,EAKlFxkB,IAAO4qB,GAAOO,IAAc1Z,IAAWoZ,GAAOD,EAAM5qB,GAAIyF,QAAQzF,GAAG0R,EAAOyZ,EAAY1Z,GAE1F6U,EAAStmB,GAAK6qB,GAIH,uBACb,IAAI9mB,EAAqB,eAAhBY,GAAQ,IAAsB,GAAuB,GAC9D,OAAgB,MAATpC,EAAgBxD,KAClBqsB,WAAWzmB,EAAMsmB,GAAUtmB,EAAMZ,IACjC/D,GAAG,aAAe2E,EAAM,GAAYA,IACpB,oBAAVpC,EAAuBxD,KAC7BqsB,WAAWzmB,EAAM,GAAcA,EAAMZ,EAAGqlB,GAAWrqB,KAAM,SAAW4F,EAAMpC,KAC1EmL,KAAKwd,GAAiBnsB,KAAKoqB,IAAKxkB,IACjC5F,KACCqsB,WAAWzmB,EAAM,GAAcA,EAAMZ,EAAGxB,GAAQyL,GAChDhO,GAAG,aAAe2E,EAAM,OC9E/B,SAAS0mB,GAAiB1mB,EAAMZ,EAAGiK,GACjC,OAAO,SAASrL,GACd5D,KAAKS,MAAMyO,YAAYtJ,EAAMZ,EAAE2B,KAAK3G,KAAM4D,GAAIqL,IAIlD,SAASod,GAAWzmB,EAAMpC,EAAOyL,GAC/B,IAAIrL,EAAGsH,EACP,SAAS+b,IACP,IAAIjiB,EAAIxB,EAAMsD,MAAM9G,KAAMiF,WAE1B,OADID,IAAMkG,IAAItH,GAAKsH,EAAKlG,IAAMsnB,GAAiB1mB,EAAMZ,EAAGiK,IACjDrL,EAGT,OADAqjB,EAAMiE,OAAS1nB,EACRyjB,EAGM,uBACb,IAAIhlB,EAAM,UAAY2D,GAAQ,IAC9B,GAAIX,UAAU5D,OAAS,EAAG,OAAQY,EAAMjC,KAAKinB,MAAMhlB,KAASA,EAAIipB,OAChE,GAAa,MAAT1nB,EAAe,OAAOxD,KAAKinB,MAAMhlB,EAAK,MAC1C,GAAqB,oBAAVuB,EAAsB,MAAM,IAAI4B,MAC3C,OAAOpF,KAAKinB,MAAMhlB,EAAKoqB,GAAWzmB,EAAMpC,EAAmB,MAAZyL,EAAmB,GAAKA,KCpBzE,SAAS,GAAazL,GACpB,OAAO,WACLxD,KAAK4Q,YAAcpN,GAIvB,SAAS,GAAaA,GACpB,OAAO,WACL,IAAIgnB,EAAShnB,EAAMxD,MACnBA,KAAK4Q,YAAwB,MAAV4Z,EAAiB,GAAKA,GAI9B,mBACb,OAAOxqB,KAAKinB,MAAM,OAAyB,oBAAVzjB,EAC3B,GAAa6mB,GAAWrqB,KAAM,OAAQwD,IACtC,GAAsB,MAATA,EAAgB,GAAKA,EAAQ,MClBlD,SAAS+oB,GAAgBvnB,GACvB,OAAO,SAASpB,GACd5D,KAAK4Q,YAAc5L,EAAE2B,KAAK3G,KAAM4D,IAIpC,SAAS4oB,GAAUhpB,GACjB,IAAIqiB,EAAI3a,EACR,SAAS+b,IACP,IAAIjiB,EAAIxB,EAAMsD,MAAM9G,KAAMiF,WAE1B,OADID,IAAMkG,IAAI2a,GAAM3a,EAAKlG,IAAMunB,GAAgBvnB,IACxC6gB,EAGT,OADAoB,EAAMiE,OAAS1nB,EACRyjB,EAGM,mBACb,IAAIhlB,EAAM,OACV,GAAIgD,UAAU5D,OAAS,EAAG,OAAQY,EAAMjC,KAAKinB,MAAMhlB,KAASA,EAAIipB,OAChE,GAAa,MAAT1nB,EAAe,OAAOxD,KAAKinB,MAAMhlB,EAAK,MAC1C,GAAqB,oBAAVuB,EAAsB,MAAM,IAAI4B,MAC3C,OAAOpF,KAAKinB,MAAMhlB,EAAKuqB,GAAUhpB,KCnBpB,cAKb,IAJA,IAAIoC,EAAO5F,KAAK0rB,MACZe,EAAMzsB,KAAKoqB,IACXsC,EAAMC,KAEDxlB,EAASnH,KAAKoH,QAASC,EAAIF,EAAO9F,OAAQkG,EAAI,EAAGA,EAAIF,IAAKE,EACjE,IAAK,IAAyCC,EAArCE,EAAQP,EAAOI,GAAI1D,EAAI6D,EAAMrG,OAAc2D,EAAI,EAAGA,EAAInB,IAAKmB,EAClE,GAAIwC,EAAOE,EAAM1C,GAAI,CACnB,IAAIinB,EAAU,GAAIzkB,EAAMilB,GACxB,GAASjlB,EAAM5B,EAAM8mB,EAAK1nB,EAAG0C,EAAO,CAClChE,KAAMuoB,EAAQvoB,KAAOuoB,EAAQ5G,MAAQ4G,EAAQ9E,SAC7C9B,MAAO,EACP8B,SAAU8E,EAAQ9E,SAClBC,KAAM6E,EAAQ7E,OAMtB,OAAO,IAAIqE,GAAWtkB,EAAQnH,KAAK8H,SAAUlC,EAAM8mB,ICpBtC,cACb,IAAIb,EAAKC,EAAKllB,EAAO5G,KAAMwE,EAAKoC,EAAKwjB,IAAKld,EAAOtG,EAAKsG,OACtD,OAAO,IAAI0f,SAAQ,SAASC,EAASC,GACnC,IAAIC,EAAS,CAACvpB,MAAOspB,GACjB/J,EAAM,CAACvf,MAAO,WAA4B,MAAT0J,GAAY2f,MAEjDjmB,EAAK+H,MAAK,WACR,IAAI4Y,EAAW,GAAIvnB,KAAMwE,GACrBvD,EAAKsmB,EAAStmB,GAKdA,IAAO4qB,IACTC,GAAOD,EAAM5qB,GAAIyF,OACjBolB,EAAI5mB,EAAE6nB,OAAO1mB,KAAK0mB,GAClBjB,EAAI5mB,EAAEyiB,UAAUthB,KAAK0mB,GACrBjB,EAAI5mB,EAAE6d,IAAI1c,KAAK0c,IAGjBwE,EAAStmB,GAAK6qB,KAIH,IAAT5e,GAAY2f,QCJhB,GAAK,EAEF,SAASpB,GAAWtkB,EAAQkB,EAASzC,EAAMpB,GAChDxE,KAAKoH,QAAUD,EACfnH,KAAK8H,SAAWO,EAChBrI,KAAK0rB,MAAQ9lB,EACb5F,KAAKoqB,IAAM5lB,EAGE,SAAS,GAAWoB,GACjC,OAAO,KAAY0kB,WAAW1kB,GAGzB,SAAS+mB,KACd,QAAS,GAGX,IAAIK,GAAsB,GAAU1mB,UC/B7B,SAAS2mB,GAAWrpB,GACzB,QAASA,GAAK,IAAM,EAAIA,EAAIA,EAAIA,GAAKA,GAAK,GAAKA,EAAIA,EAAI,GAAK,EDgC9D6nB,GAAWnlB,UAAY,GAAWA,UAAY,CAC5CC,YAAaklB,GACbvkB,OAAQgmB,GACRnkB,UAAWokB,GACXpZ,YAAaiZ,GAAoBjZ,YACjCC,eAAgBgZ,GAAoBhZ,eACpCnL,OAAQukB,GACRzhB,MAAO0hB,GACP/hB,UAAWgiB,GACXhD,WAAYiD,GACZ5mB,KAAMqmB,GAAoBrmB,KAC1B4N,MAAOyY,GAAoBzY,MAC3B/M,KAAMwlB,GAAoBxlB,KAC1B0F,KAAM8f,GAAoB9f,KAC1BwH,MAAOsY,GAAoBtY,MAC3B/F,KAAMqe,GAAoBre,KAC1B1N,GAAIusB,GACJ5Y,KAAM6Y,GACN3C,UAAW4C,GACXjtB,MAAOktB,GACPtB,WAAYuB,GACZ9Y,KAAM+Y,GACNrB,UAAWsB,GACXpiB,OAAQqiB,GACR9G,MAAO+G,GACP3I,MAAO4I,GACP9G,SAAU+G,GACV9G,KAAM,GACNoE,YAAa2C,GACbpL,IAAKqL,GACL,CAAC5Y,OAAOC,UAAWuX,GAAoBxX,OAAOC,WElEhD,IAAI4Y,GAAgB,CAClB3qB,KAAM,KACN2hB,MAAO,EACP8B,SAAU,IACVC,KAAM,IAGR,SAAS,GAAQ5f,EAAMhD,GACrB,IAAI0iB,EACJ,QAASA,EAAS1f,EAAKwf,iBAAmBE,EAASA,EAAO1iB,IACxD,KAAMgD,EAAOA,EAAKgF,YAChB,MAAM,IAAIpH,MAAM,cAAcZ,eAGlC,OAAO0iB,EAGM,mBACb,IAAI1iB,EACA0iB,EAEAthB,aAAgB6lB,IAClBjnB,EAAKoB,EAAKwkB,IAAKxkB,EAAOA,EAAK8lB,QAE3BlnB,EAAKmoB,MAAUzF,EAASmH,IAAe3qB,KAAOihB,KAAO/e,EAAe,MAARA,EAAe,KAAOA,EAAO,IAG3F,IAAK,IAAIuB,EAASnH,KAAKoH,QAASC,EAAIF,EAAO9F,OAAQkG,EAAI,EAAGA,EAAIF,IAAKE,EACjE,IAAK,IAAyCC,EAArCE,EAAQP,EAAOI,GAAI1D,EAAI6D,EAAMrG,OAAc2D,EAAI,EAAGA,EAAInB,IAAKmB,GAC9DwC,EAAOE,EAAM1C,KACf,GAASwC,EAAM5B,EAAMpB,EAAIQ,EAAG0C,EAAOwf,GAAU,GAAQ1f,EAAMhD,IAKjE,OAAO,IAAIinB,GAAWtkB,EAAQnH,KAAK8H,SAAUlC,EAAMpB,ICpCrD,GAAU8B,UAAUqhB,UAAY2G,GAChC,GAAUhoB,UAAUgkB,WAAaiE,GCSjC,MAAM,IAACC,GAAG,IAAExN,GAAG,IAAE7U,IAAOD,KAExB,SAASuiB,GAAQjJ,GACf,MAAO,EAAEA,EAAE,IAAKA,EAAE,IAGpB,SAASkJ,GAAQlJ,GACf,MAAO,CAACiJ,GAAQjJ,EAAE,IAAKiJ,GAAQjJ,EAAE,KAKxB,CAAC,IAAK,KAAK7f,IAAI,IAOf,CAAC,IAAK,KAAKA,IAAI,IAOf,CAAC,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAAMA,IAAI,IA8D5D,SAAS,GAAK/B,GACZ,MAAO,CAAC9C,KAAM8C,GCvGhB,MAAM+qB,GAAKziB,KAAK2b,GACZ+G,GAAM,EAAID,GACVE,GAAU,KACVC,GAAaF,GAAMC,GAEvB,SAASE,KACP/uB,KAAKgvB,IAAMhvB,KAAKivB,IAChBjvB,KAAKkvB,IAAMlvB,KAAKmvB,IAAM,KACtBnvB,KAAKkF,EAAI,GAGX,SAASkqB,KACP,OAAO,IAAIL,GAGbA,GAAKzoB,UAAY8oB,GAAK9oB,UAAY,CAChCC,YAAawoB,GACbM,OAAQ,SAASttB,EAAG4gB,GAClB3iB,KAAKkF,GAAK,KAAOlF,KAAKgvB,IAAMhvB,KAAKkvB,KAAOntB,GAAK,KAAO/B,KAAKivB,IAAMjvB,KAAKmvB,KAAOxM,IAE7E2M,UAAW,WACQ,OAAbtvB,KAAKkvB,MACPlvB,KAAKkvB,IAAMlvB,KAAKgvB,IAAKhvB,KAAKmvB,IAAMnvB,KAAKivB,IACrCjvB,KAAKkF,GAAK,MAGdqqB,OAAQ,SAASxtB,EAAG4gB,GAClB3iB,KAAKkF,GAAK,KAAOlF,KAAKkvB,KAAOntB,GAAK,KAAO/B,KAAKmvB,KAAOxM,IAEvD6M,iBAAkB,SAASC,EAAIC,EAAI3tB,EAAG4gB,GACpC3iB,KAAKkF,GAAK,MAAQuqB,EAAM,MAAQC,EAAM,KAAO1vB,KAAKkvB,KAAOntB,GAAK,KAAO/B,KAAKmvB,KAAOxM,IAEnFgN,cAAe,SAASF,EAAIC,EAAIE,EAAIC,EAAI9tB,EAAG4gB,GACzC3iB,KAAKkF,GAAK,MAAQuqB,EAAM,MAAQC,EAAM,MAAQE,EAAM,MAAQC,EAAM,KAAO7vB,KAAKkvB,KAAOntB,GAAK,KAAO/B,KAAKmvB,KAAOxM,IAE/GmN,MAAO,SAASL,EAAIC,EAAIE,EAAIC,EAAIrP,GAC9BiP,GAAMA,EAAIC,GAAMA,EAAIE,GAAMA,EAAIC,GAAMA,EAAIrP,GAAKA,EAC7C,IAAIuP,EAAK/vB,KAAKkvB,IACVc,EAAKhwB,KAAKmvB,IACVc,EAAML,EAAKH,EACXS,EAAML,EAAKH,EACXS,EAAMJ,EAAKN,EACXW,EAAMJ,EAAKN,EACXW,EAAQF,EAAMA,EAAMC,EAAMA,EAG9B,GAAI5P,EAAI,EAAG,MAAM,IAAIpb,MAAM,oBAAsBob,GAGjD,GAAiB,OAAbxgB,KAAKkvB,IACPlvB,KAAKkF,GAAK,KAAOlF,KAAKkvB,IAAMO,GAAM,KAAOzvB,KAAKmvB,IAAMO,QAIjD,GAAMW,EAAQxB,GAKd,GAAM3iB,KAAKsiB,IAAI4B,EAAMH,EAAMC,EAAMC,GAAOtB,IAAarO,EAKrD,CACH,IAAI8P,EAAMV,EAAKG,EACXQ,EAAMV,EAAKG,EACXQ,EAAQP,EAAMA,EAAMC,EAAMA,EAC1BO,EAAQH,EAAMA,EAAMC,EAAMA,EAC1BG,EAAMxkB,KAAKmc,KAAKmI,GAChBG,EAAMzkB,KAAKmc,KAAKgI,GAChBrQ,EAAIQ,EAAItU,KAAK2S,KAAK8P,GAAKziB,KAAK0kB,MAAMJ,EAAQH,EAAQI,IAAU,EAAIC,EAAMC,KAAS,GAC/EE,EAAM7Q,EAAI2Q,EACVG,EAAM9Q,EAAI0Q,EAGVxkB,KAAKsiB,IAAIqC,EAAM,GAAKhC,KACtB7uB,KAAKkF,GAAK,KAAOuqB,EAAKoB,EAAMV,GAAO,KAAOT,EAAKmB,EAAMT,IAGvDpwB,KAAKkF,GAAK,IAAMsb,EAAI,IAAMA,EAAI,WAAa4P,EAAME,EAAMH,EAAMI,GAAQ,KAAOvwB,KAAKkvB,IAAMO,EAAKqB,EAAMb,GAAO,KAAOjwB,KAAKmvB,IAAMO,EAAKoB,EAAMZ,QApBtIlwB,KAAKkF,GAAK,KAAOlF,KAAKkvB,IAAMO,GAAM,KAAOzvB,KAAKmvB,IAAMO,UAuBxDqB,IAAK,SAAShvB,EAAG4gB,EAAGnC,EAAGwQ,EAAIC,EAAIC,GAC7BnvB,GAAKA,EAAG4gB,GAAKA,EAAGnC,GAAKA,EAAG0Q,IAAQA,EAChC,IAAIC,EAAK3Q,EAAItU,KAAKklB,IAAIJ,GAClBK,EAAK7Q,EAAItU,KAAKolB,IAAIN,GAClBjB,EAAKhuB,EAAIovB,EACTnB,EAAKrN,EAAI0O,EACTE,EAAK,EAAIL,EACTM,EAAKN,EAAMF,EAAKC,EAAKA,EAAKD,EAG9B,GAAIxQ,EAAI,EAAG,MAAM,IAAIpb,MAAM,oBAAsBob,GAGhC,OAAbxgB,KAAKkvB,IACPlvB,KAAKkF,GAAK,IAAM6qB,EAAK,IAAMC,GAIpB9jB,KAAKsiB,IAAIxuB,KAAKkvB,IAAMa,GAAMlB,IAAW3iB,KAAKsiB,IAAIxuB,KAAKmvB,IAAMa,GAAMnB,MACtE7uB,KAAKkF,GAAK,IAAM6qB,EAAK,IAAMC,GAIxBxP,IAGDgR,EAAK,IAAGA,EAAKA,EAAK5C,GAAMA,IAGxB4C,EAAK1C,GACP9uB,KAAKkF,GAAK,IAAMsb,EAAI,IAAMA,EAAI,QAAU+Q,EAAK,KAAOxvB,EAAIovB,GAAM,KAAOxO,EAAI0O,GAAM,IAAM7Q,EAAI,IAAMA,EAAI,QAAU+Q,EAAK,KAAOvxB,KAAKkvB,IAAMa,GAAM,KAAO/vB,KAAKmvB,IAAMa,GAIrJwB,EAAK3C,KACZ7uB,KAAKkF,GAAK,IAAMsb,EAAI,IAAMA,EAAI,SAAWgR,GAAM7C,IAAO,IAAM4C,EAAK,KAAOvxB,KAAKkvB,IAAMntB,EAAIye,EAAItU,KAAKklB,IAAIH,IAAO,KAAOjxB,KAAKmvB,IAAMxM,EAAInC,EAAItU,KAAKolB,IAAIL,OAGlJQ,KAAM,SAAS1vB,EAAG4gB,EAAG+O,EAAGvQ,GACtBnhB,KAAKkF,GAAK,KAAOlF,KAAKgvB,IAAMhvB,KAAKkvB,KAAOntB,GAAK,KAAO/B,KAAKivB,IAAMjvB,KAAKmvB,KAAOxM,GAAK,MAAQ+O,EAAK,MAAQvQ,EAAK,KAAQuQ,EAAK,KAEzHxQ,SAAU,WACR,OAAOlhB,KAAKkF,IAID,UCjIA,eACb,OAAO,WACL,OAAOnD,ICFA,GAAMmK,KAAKsiB,IACXlG,GAAQpc,KAAKoc,MACb8I,GAAMllB,KAAKklB,IACX,GAAMllB,KAAK8U,IACX,GAAM9U,KAAKC,IACXmlB,GAAMplB,KAAKolB,IACXjJ,GAAOnc,KAAKmc,KAEZ,GAAU,MACV,GAAKnc,KAAK2b,GACV8J,GAAS,GAAK,EACd,GAAM,EAAI,GAEd,SAASf,GAAK7uB,GACnB,OAAOA,EAAI,EAAI,EAAIA,GAAK,EAAI,GAAKmK,KAAK0kB,KAAK7uB,GAGtC,SAAS6vB,GAAK7vB,GACnB,OAAOA,GAAK,EAAI4vB,GAAS5vB,IAAM,GAAK4vB,GAASzlB,KAAK0lB,KAAK7vB,GCdzD,SAAS8vB,GAAepP,GACtB,OAAOA,EAAEqP,YAGX,SAASC,GAAetP,GACtB,OAAOA,EAAEuP,YAGX,SAASC,GAAcxP,GACrB,OAAOA,EAAEyP,WAGX,SAASC,GAAY1P,GACnB,OAAOA,EAAE2P,SAGX,SAASC,GAAY5P,GACnB,OAAOA,GAAKA,EAAE6P,SAGhB,SAASC,GAAUxC,EAAIC,EAAIP,EAAIC,EAAIE,EAAIC,EAAI2C,EAAIC,GAC7C,IAAIC,EAAMjD,EAAKM,EAAI4C,EAAMjD,EAAKM,EAC1B4C,EAAMJ,EAAK5C,EAAIiD,EAAMJ,EAAK5C,EAC1BjsB,EAAIivB,EAAMH,EAAME,EAAMD,EAC1B,KAAI/uB,EAAIA,EAAI,IAEZ,OADAA,GAAKgvB,GAAO5C,EAAKH,GAAMgD,GAAO9C,EAAKH,IAAOhsB,EACnC,CAACmsB,EAAKnsB,EAAI8uB,EAAK1C,EAAKpsB,EAAI+uB,GAKjC,SAASG,GAAe/C,EAAIC,EAAIP,EAAIC,EAAIqD,EAAIC,EAAIzB,GAC9C,IAAIpB,EAAMJ,EAAKN,EACXW,EAAMJ,EAAKN,EACXuD,GAAM1B,EAAKyB,GAAMA,GAAM3K,GAAK8H,EAAMA,EAAMC,EAAMA,GAC9C8C,EAAKD,EAAK7C,EACV+C,GAAMF,EAAK9C,EACXiD,EAAMrD,EAAKmD,EACXG,EAAMrD,EAAKmD,EACXT,EAAMjD,EAAKyD,EACXP,EAAMjD,EAAKyD,EACXG,GAAOF,EAAMV,GAAO,EACpBa,GAAOF,EAAMV,GAAO,EACpBxB,EAAKuB,EAAMU,EACX/B,EAAKsB,EAAMU,EACXG,EAAKrC,EAAKA,EAAKE,EAAKA,EACpB7Q,EAAIuS,EAAKC,EACTS,EAAIL,EAAMT,EAAMD,EAAMW,EACtB5Q,GAAK4O,EAAK,GAAK,EAAI,GAAKhJ,GAAK,GAAI,EAAG7H,EAAIA,EAAIgT,EAAKC,EAAIA,IACrDC,GAAOD,EAAIpC,EAAKF,EAAK1O,GAAK+Q,EAC1BG,IAAQF,EAAItC,EAAKE,EAAK5O,GAAK+Q,EAC3BI,GAAOH,EAAIpC,EAAKF,EAAK1O,GAAK+Q,EAC1BK,IAAQJ,EAAItC,EAAKE,EAAK5O,GAAK+Q,EAC3BM,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMJ,EACZS,EAAMJ,EAAMN,EACZW,EAAMJ,EAAMN,EAMhB,OAFIO,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,EAAMC,EAAMA,IAAKP,EAAME,EAAKD,EAAME,GAE7D,CACLK,GAAIR,EACJS,GAAIR,EACJxD,KAAM+C,EACN9C,KAAM+C,EACNC,IAAKM,GAAOX,EAAKvS,EAAI,GACrB6S,IAAKM,GAAOZ,EAAKvS,EAAI,IAIV,kBACb,IAAIsR,EAAcD,GACdG,EAAcD,GACdqC,EAAe,GAAS,GACxBC,EAAY,KACZnC,EAAaD,GACbG,EAAWD,GACXG,EAAWD,GACXxmB,EAAU,KAEd,SAASklB,IACP,IAAIuD,EACA9T,EACA+T,GAAMzC,EAAYhrB,MAAM9G,KAAMiF,WAC9B8tB,GAAMf,EAAYlrB,MAAM9G,KAAMiF,WAC9B+rB,EAAKkB,EAAWprB,MAAM9G,KAAMiF,WAAa0sB,GACzCV,EAAKmB,EAAStrB,MAAM9G,KAAMiF,WAAa0sB,GACvCH,EAAK,GAAIP,EAAKD,GACdO,EAAKN,EAAKD,EAQd,GANKnlB,IAASA,EAAUyoB,EAAS,MAG7BvB,EAAKwB,IAAI/T,EAAIuS,EAAIA,EAAKwB,EAAIA,EAAK/T,GAG7BuS,EAAK,GAGN,GAAIvB,EAAK,GAAM,GAClB3lB,EAAQwjB,OAAO0D,EAAK3B,GAAIJ,GAAK+B,EAAKzB,GAAIN,IACtCnlB,EAAQklB,IAAI,EAAG,EAAGgC,EAAI/B,EAAIC,GAAKM,GAC3BgD,EAAK,KACP1oB,EAAQwjB,OAAOkF,EAAKnD,GAAIH,GAAKsD,EAAKjD,GAAIL,IACtCplB,EAAQklB,IAAI,EAAG,EAAGwD,EAAItD,EAAID,EAAIO,QAK7B,CACH,IAWI1L,EACAnE,EAZA8S,EAAMxD,EACNyD,EAAMxD,EACNyD,EAAM1D,EACN2D,EAAM1D,EACN2D,EAAMpD,EACNqD,EAAMrD,EACNsD,EAAKxC,EAASxrB,MAAM9G,KAAMiF,WAAa,EACvC8vB,EAAMD,EAAK,KAAaT,GAAaA,EAAUvtB,MAAM9G,KAAMiF,WAAaojB,GAAKkM,EAAKA,EAAKxB,EAAKA,IAC5FC,EAAK,GAAI,GAAID,EAAKwB,GAAM,GAAIH,EAAattB,MAAM9G,KAAMiF,YACrD+vB,EAAMhC,EACNiC,EAAMjC,EAKV,GAAI+B,EAAK,GAAS,CAChB,IAAIG,EAAKtD,GAAKmD,EAAKR,EAAKjD,GAAIwD,IACxBK,EAAKvD,GAAKmD,EAAKhC,EAAKzB,GAAIwD,KACvBF,GAAY,EAALM,GAAU,IAASA,GAAO3D,EAAK,GAAK,EAAImD,GAAOQ,EAAIP,GAAOO,IACjEN,EAAM,EAAGF,EAAMC,GAAO3D,EAAKC,GAAM,IACjC4D,GAAY,EAALM,GAAU,IAASA,GAAO5D,EAAK,GAAK,EAAIiD,GAAOW,EAAIV,GAAOU,IACjEN,EAAM,EAAGL,EAAMC,GAAOzD,EAAKC,GAAM,GAGxC,IAAId,EAAM4C,EAAK3B,GAAIoD,GACfpE,EAAM2C,EAAKzB,GAAIkD,GACf9B,EAAM6B,EAAKnD,GAAIuD,GACfhC,EAAM4B,EAAKjD,GAAIqD,GAGnB,GAAI3B,EAAK,GAAS,CAChB,IAIIoC,EAJAhC,EAAML,EAAK3B,GAAIqD,GACfpB,EAAMN,EAAKzB,GAAImD,GACfnB,EAAMiB,EAAKnD,GAAIsD,GACfnB,EAAMgB,EAAKjD,GAAIoD,GAInB,GAAIlD,EAAK,KAAO4D,EAAK7C,GAAUpC,EAAKC,EAAKkD,EAAKC,EAAKH,EAAKC,EAAKX,EAAKC,IAAO,CACvE,IAAI0C,EAAKlF,EAAMiF,EAAG,GACdE,EAAKlF,EAAMgF,EAAG,GACdG,EAAKnC,EAAMgC,EAAG,GACdI,EAAKnC,EAAM+B,EAAG,GACdK,EAAK,EAAInE,GAAIV,IAAMyE,EAAKE,EAAKD,EAAKE,IAAOnN,GAAKgN,EAAKA,EAAKC,EAAKA,GAAMjN,GAAKkN,EAAKA,EAAKC,EAAKA,KAAQ,GAC/FE,EAAKrN,GAAK+M,EAAG,GAAKA,EAAG,GAAKA,EAAG,GAAKA,EAAG,IACzCJ,EAAM,GAAIhC,GAAKuB,EAAKmB,IAAOD,EAAK,IAChCR,EAAM,GAAIjC,GAAKD,EAAK2C,IAAOD,EAAK,KAK9BZ,EAAM,GAGHI,EAAM,IACbpP,EAAKiN,GAAeQ,EAAKC,EAAKpD,EAAKC,EAAK2C,EAAIkC,EAAK1D,GACjD7P,EAAKoR,GAAeM,EAAKC,EAAKX,EAAKC,EAAKI,EAAIkC,EAAK1D,GAEjD1lB,EAAQwjB,OAAOxJ,EAAGqO,GAAKrO,EAAGsK,IAAKtK,EAAGsO,GAAKtO,EAAGuK,KAGtC6E,EAAMjC,EAAInnB,EAAQklB,IAAIlL,EAAGqO,GAAIrO,EAAGsO,GAAIc,EAAK3M,GAAMzC,EAAGuK,IAAKvK,EAAGsK,KAAM7H,GAAM5G,EAAG0O,IAAK1O,EAAGyO,MAAOoB,IAI1F1lB,EAAQklB,IAAIlL,EAAGqO,GAAIrO,EAAGsO,GAAIc,EAAK3M,GAAMzC,EAAGuK,IAAKvK,EAAGsK,KAAM7H,GAAMzC,EAAGwN,IAAKxN,EAAGuN,MAAO7B,GAC9E1lB,EAAQklB,IAAI,EAAG,EAAGgC,EAAIzK,GAAMzC,EAAGsO,GAAKtO,EAAGwN,IAAKxN,EAAGqO,GAAKrO,EAAGuN,KAAM9K,GAAM5G,EAAGyS,GAAKzS,EAAG2R,IAAK3R,EAAGwS,GAAKxS,EAAG0R,MAAO7B,GACrG1lB,EAAQklB,IAAIrP,EAAGwS,GAAIxS,EAAGyS,GAAIc,EAAK3M,GAAM5G,EAAG2R,IAAK3R,EAAG0R,KAAM9K,GAAM5G,EAAG0O,IAAK1O,EAAGyO,MAAOoB,MAK7E1lB,EAAQwjB,OAAOc,EAAKC,GAAMvkB,EAAQklB,IAAI,EAAG,EAAGgC,EAAIyB,EAAKC,GAAMlD,IArB1C1lB,EAAQwjB,OAAOc,EAAKC,GAyBpCmE,EAAK,IAAcK,EAAM,GAGtBI,EAAM,IACbnP,EAAKiN,GAAeJ,EAAKC,EAAKS,EAAKC,EAAKkB,GAAKS,EAAKzD,GAClD7P,EAAKoR,GAAe3C,EAAKC,EAAKkD,EAAKC,EAAKgB,GAAKS,EAAKzD,GAElD1lB,EAAQ0jB,OAAO1J,EAAGqO,GAAKrO,EAAGsK,IAAKtK,EAAGsO,GAAKtO,EAAGuK,KAGtC4E,EAAMhC,EAAInnB,EAAQklB,IAAIlL,EAAGqO,GAAIrO,EAAGsO,GAAIa,EAAK1M,GAAMzC,EAAGuK,IAAKvK,EAAGsK,KAAM7H,GAAM5G,EAAG0O,IAAK1O,EAAGyO,MAAOoB,IAI1F1lB,EAAQklB,IAAIlL,EAAGqO,GAAIrO,EAAGsO,GAAIa,EAAK1M,GAAMzC,EAAGuK,IAAKvK,EAAGsK,KAAM7H,GAAMzC,EAAGwN,IAAKxN,EAAGuN,MAAO7B,GAC9E1lB,EAAQklB,IAAI,EAAG,EAAGwD,EAAIjM,GAAMzC,EAAGsO,GAAKtO,EAAGwN,IAAKxN,EAAGqO,GAAKrO,EAAGuN,KAAM9K,GAAM5G,EAAGyS,GAAKzS,EAAG2R,IAAK3R,EAAGwS,GAAKxS,EAAG0R,KAAM7B,GACpG1lB,EAAQklB,IAAIrP,EAAGwS,GAAIxS,EAAGyS,GAAIa,EAAK1M,GAAM5G,EAAG2R,IAAK3R,EAAG0R,KAAM9K,GAAM5G,EAAG0O,IAAK1O,EAAGyO,MAAOoB,KAK7E1lB,EAAQklB,IAAI,EAAG,EAAGwD,EAAII,EAAKD,EAAKnD,GArBI1lB,EAAQ0jB,OAAOmD,EAAKC,QA1F1C9mB,EAAQwjB,OAAO,EAAG,GAoHvC,GAFAxjB,EAAQyjB,YAEJgF,EAAQ,OAAOzoB,EAAU,KAAMyoB,EAAS,IAAM,KAyCpD,OAtCAvD,EAAI4E,SAAW,WACb,IAAInV,IAAMsR,EAAYhrB,MAAM9G,KAAMiF,aAAc+sB,EAAYlrB,MAAM9G,KAAMiF,YAAc,EAClFyH,IAAMwlB,EAAWprB,MAAM9G,KAAMiF,aAAcmtB,EAAStrB,MAAM9G,KAAMiF,YAAc,EAAI,GAAK,EAC3F,MAAO,CAACmsB,GAAI1kB,GAAK8T,EAAG8Q,GAAI5kB,GAAK8T,IAG/BuQ,EAAIe,YAAc,SAAS5sB,GACzB,OAAOD,UAAU5D,QAAUywB,EAA2B,oBAAN5sB,EAAmBA,EAAI,IAAUA,GAAI6rB,GAAOe,GAG9Ff,EAAIiB,YAAc,SAAS9sB,GACzB,OAAOD,UAAU5D,QAAU2wB,EAA2B,oBAAN9sB,EAAmBA,EAAI,IAAUA,GAAI6rB,GAAOiB,GAG9FjB,EAAIqD,aAAe,SAASlvB,GAC1B,OAAOD,UAAU5D,QAAU+yB,EAA4B,oBAANlvB,EAAmBA,EAAI,IAAUA,GAAI6rB,GAAOqD,GAG/FrD,EAAIsD,UAAY,SAASnvB,GACvB,OAAOD,UAAU5D,QAAUgzB,EAAiB,MAALnvB,EAAY,KAAoB,oBAANA,EAAmBA,EAAI,IAAUA,GAAI6rB,GAAOsD,GAG/GtD,EAAImB,WAAa,SAAShtB,GACxB,OAAOD,UAAU5D,QAAU6wB,EAA0B,oBAANhtB,EAAmBA,EAAI,IAAUA,GAAI6rB,GAAOmB,GAG7FnB,EAAIqB,SAAW,SAASltB,GACtB,OAAOD,UAAU5D,QAAU+wB,EAAwB,oBAANltB,EAAmBA,EAAI,IAAUA,GAAI6rB,GAAOqB,GAG3FrB,EAAIuB,SAAW,SAASptB,GACtB,OAAOD,UAAU5D,QAAUixB,EAAwB,oBAANptB,EAAmBA,EAAI,IAAUA,GAAI6rB,GAAOuB,GAG3FvB,EAAIllB,QAAU,SAAS3G,GACrB,OAAOD,UAAU5D,QAAWwK,EAAe,MAAL3G,EAAY,KAAOA,EAAI6rB,GAAOllB,GAG/DklB,GCjQM,IAFIlsB,MAAMyB,UAAUR,MAEpB,YACb,MAAoB,kBAAN/D,GAAkB,WAAYA,EACxCA,EACA8C,MAAMoD,KAAKlG,KCLF,iBACb,OAAO4K,EAAID,GAAK,EAAIC,EAAID,EAAI,EAAIC,GAAKD,EAAI,EAAIO,KCDhC,eACb,OAAOwV,GCKM,cACb,IAAIjf,EAAQ,GACRoyB,EAAaC,GACb7oB,EAAO,KACPklB,EAAa,GAAS,GACtBE,EAAW,GAAS,IACpBE,EAAW,GAAS,GAExB,SAASwD,EAAI10B,GACX,IAAI4D,EAEAuC,EACA8a,EAMA4O,EAGA3iB,EAXAzK,GAAKzC,EAAO,GAAMA,IAAOC,OAGzB00B,EAAM,EACN9R,EAAQ,IAAIpf,MAAMhB,GAClBmyB,EAAO,IAAInxB,MAAMhB,GACjBmtB,GAAMkB,EAAWprB,MAAM9G,KAAMiF,WAC7BusB,EAAKtlB,KAAKC,IAAI,GAAKD,KAAK8U,KAAK,GAAKoR,EAAStrB,MAAM9G,KAAMiF,WAAa+rB,IAEpEiF,EAAI/pB,KAAKC,IAAID,KAAKsiB,IAAIgD,GAAM3tB,EAAGyuB,EAASxrB,MAAM9G,KAAMiF,YACpDixB,EAAKD,GAAKzE,EAAK,GAAK,EAAI,GAG5B,IAAKxsB,EAAI,EAAGA,EAAInB,IAAKmB,GACdsJ,EAAI0nB,EAAK/R,EAAMjf,GAAKA,IAAMxB,EAAMpC,EAAK4D,GAAIA,EAAG5D,IAAS,IACxD20B,GAAOznB,GASX,IAJkB,MAAdsnB,EAAoB3R,EAAMjX,MAAK,SAAShI,EAAGuC,GAAK,OAAOquB,EAAWI,EAAKhxB,GAAIgxB,EAAKzuB,OACnE,MAARyF,GAAciX,EAAMjX,MAAK,SAAShI,EAAGuC,GAAK,OAAOyF,EAAK5L,EAAK4D,GAAI5D,EAAKmG,OAGxEvC,EAAI,EAAGqd,EAAI0T,GAAOvE,EAAK3tB,EAAIqyB,GAAMH,EAAM,EAAG/wB,EAAInB,IAAKmB,EAAGgsB,EAAKC,EAC9D1pB,EAAI0c,EAAMjf,GAAIsJ,EAAI0nB,EAAKzuB,GAAI0pB,EAAKD,GAAM1iB,EAAI,EAAIA,EAAI+T,EAAI,GAAK6T,EAAIF,EAAKzuB,GAAK,CACvEnG,KAAMA,EAAKmG,GACX0c,MAAOjf,EACPxB,MAAO8K,EACP4jB,WAAYlB,EACZoB,SAAUnB,EACVqB,SAAU2D,GAId,OAAOD,EA2BT,OAxBAF,EAAItyB,MAAQ,SAAS0B,GACnB,OAAOD,UAAU5D,QAAUmC,EAAqB,oBAAN0B,EAAmBA,EAAI,IAAUA,GAAI4wB,GAAOtyB,GAGxFsyB,EAAIF,WAAa,SAAS1wB,GACxB,OAAOD,UAAU5D,QAAUu0B,EAAa1wB,EAAG8H,EAAO,KAAM8oB,GAAOF,GAGjEE,EAAI9oB,KAAO,SAAS9H,GAClB,OAAOD,UAAU5D,QAAU2L,EAAO9H,EAAG0wB,EAAa,KAAME,GAAO9oB,GAGjE8oB,EAAI5D,WAAa,SAAShtB,GACxB,OAAOD,UAAU5D,QAAU6wB,EAA0B,oBAANhtB,EAAmBA,EAAI,IAAUA,GAAI4wB,GAAO5D,GAG7F4D,EAAI1D,SAAW,SAASltB,GACtB,OAAOD,UAAU5D,QAAU+wB,EAAwB,oBAANltB,EAAmBA,EAAI,IAAUA,GAAI4wB,GAAO1D,GAG3F0D,EAAIxD,SAAW,SAASptB,GACtB,OAAOD,UAAU5D,QAAUixB,EAAwB,oBAANptB,EAAmBA,EAAI,IAAUA,GAAI4wB,GAAOxD,GAGpFwD,GC9ELK,GAAW,MAEf,SAASC,GAAKr0B,GACZ,QAASA,EAAImK,KAAKmqB,IAAIt0B,IAAM,EAAIA,GAAK,EAGvC,SAASu0B,GAAKv0B,GACZ,QAASA,EAAImK,KAAKmqB,IAAIt0B,IAAM,EAAIA,GAAK,EAGvC,SAASw0B,GAAKx0B,GACZ,QAASA,EAAImK,KAAKmqB,IAAI,EAAIt0B,IAAM,IAAMA,EAAI,IAG7B,kBAIb,SAASy0B,EAAKtB,EAAIC,GAChB,IAKInwB,EACAyxB,EANAC,EAAMxB,EAAG,GAAIyB,EAAMzB,EAAG,GAAI0B,EAAK1B,EAAG,GAClC2B,EAAM1B,EAAG,GAAI2B,EAAM3B,EAAG,GAAI4B,EAAK5B,EAAG,GAClChE,EAAK0F,EAAMH,EACXrF,EAAKyF,EAAMH,EACXnD,EAAKrC,EAAKA,EAAKE,EAAKA,EAKxB,GAAImC,EAAK2C,GACPM,EAAIvqB,KAAK8qB,IAAID,EAAKH,GAAMK,EACxBjyB,EAAI,SAASpB,GACX,MAAO,CACL8yB,EAAM9yB,EAAIutB,EACVwF,EAAM/yB,EAAIytB,EACVuF,EAAK1qB,KAAKmqB,IAAIY,EAAMrzB,EAAI6yB,SAMzB,CACH,IAAIS,EAAKhrB,KAAKmc,KAAKmL,GACf2D,GAAMJ,EAAKA,EAAKH,EAAKA,EAAKQ,EAAO5D,IAAO,EAAIoD,EAAKS,EAAOH,GACxDI,GAAMP,EAAKA,EAAKH,EAAKA,EAAKQ,EAAO5D,IAAO,EAAIuD,EAAKM,EAAOH,GACxD3C,EAAKroB,KAAK8qB,IAAI9qB,KAAKmc,KAAK8O,EAAKA,EAAK,GAAKA,GACvCpE,EAAK7mB,KAAK8qB,IAAI9qB,KAAKmc,KAAKiP,EAAKA,EAAK,GAAKA,GAC3Cb,GAAK1D,EAAKwB,GAAM0C,EAChBjyB,EAAI,SAASpB,GACX,IAAIwd,EAAIxd,EAAI6yB,EACRc,EAASnB,GAAK7B,GACdiD,EAAIZ,GAAMS,EAAOH,IAAOK,EAAShB,GAAKU,EAAM7V,EAAImT,GAAM+B,GAAK/B,IAC/D,MAAO,CACLmC,EAAMc,EAAIrG,EACVwF,EAAMa,EAAInG,EACVuF,EAAKW,EAASnB,GAAKa,EAAM7V,EAAImT,KAOnC,OAFAvvB,EAAEmiB,SAAe,IAAJsP,EAAWQ,EAAM/qB,KAAKurB,MAE5BzyB,EAQT,OALAwxB,EAAKS,IAAM,SAAS/xB,GAClB,IAAIwyB,EAAKxrB,KAAK8U,IAAI,MAAO9b,GAAIyyB,EAAKD,EAAKA,EAAIE,EAAKD,EAAKA,EACrD,OAAOE,EAAQH,EAAIC,EAAIC,IAGlBpB,GAvDM,CAwDZtqB,KAAKurB,MAAO,EAAG,GCtEX,SAASK,GAAUzV,EAAGtgB,EAAG4gB,GAC9B3iB,KAAKqiB,EAAIA,EACTriB,KAAK+B,EAAIA,EACT/B,KAAK2iB,EAAIA,EAGXmV,GAAUxxB,UAAY,CACpBC,YAAauxB,GACbjO,MAAO,SAASxH,GACd,OAAa,IAANA,EAAUriB,KAAO,IAAI83B,GAAU93B,KAAKqiB,EAAIA,EAAGriB,KAAK+B,EAAG/B,KAAK2iB,IAEjE6G,UAAW,SAASznB,EAAG4gB,GACrB,OAAa,IAAN5gB,EAAgB,IAAN4gB,EAAU3iB,KAAO,IAAI83B,GAAU93B,KAAKqiB,EAAGriB,KAAK+B,EAAI/B,KAAKqiB,EAAItgB,EAAG/B,KAAK2iB,EAAI3iB,KAAKqiB,EAAIM,IAEjG7b,MAAO,SAASixB,GACd,MAAO,CAACA,EAAM,GAAK/3B,KAAKqiB,EAAIriB,KAAK+B,EAAGg2B,EAAM,GAAK/3B,KAAKqiB,EAAIriB,KAAK2iB,IAE/DqV,OAAQ,SAASj2B,GACf,OAAOA,EAAI/B,KAAKqiB,EAAIriB,KAAK+B,GAE3Bk2B,OAAQ,SAAStV,GACf,OAAOA,EAAI3iB,KAAKqiB,EAAIriB,KAAK2iB,GAE3BuV,OAAQ,SAASC,GACf,MAAO,EAAEA,EAAS,GAAKn4B,KAAK+B,GAAK/B,KAAKqiB,GAAI8V,EAAS,GAAKn4B,KAAK2iB,GAAK3iB,KAAKqiB,IAEzE+V,QAAS,SAASr2B,GAChB,OAAQA,EAAI/B,KAAK+B,GAAK/B,KAAKqiB,GAE7BgW,QAAS,SAAS1V,GAChB,OAAQA,EAAI3iB,KAAK2iB,GAAK3iB,KAAKqiB,GAE7BiW,SAAU,SAASv2B,GACjB,OAAOA,EAAE2E,OAAO6xB,OAAOx2B,EAAEy2B,QAAQ7yB,IAAI3F,KAAKo4B,QAASp4B,MAAM2F,IAAI5D,EAAEm2B,OAAQn2B,KAEzE02B,SAAU,SAAS9V,GACjB,OAAOA,EAAEjc,OAAO6xB,OAAO5V,EAAE6V,QAAQ7yB,IAAI3F,KAAKq4B,QAASr4B,MAAM2F,IAAIgd,EAAEuV,OAAQvV,KAEzEzB,SAAU,WACR,MAAO,aAAelhB,KAAK+B,EAAI,IAAM/B,KAAK2iB,EAAI,WAAa3iB,KAAKqiB,EAAI,MAIjE,IAAI,GAAW,IAAIyV,GAAU,EAAG,EAAG,GAI3B,SAAS,GAAUtwB,GAChC,OAAQA,EAAKkxB,OAAQ,KAAMlxB,EAAOA,EAAKgF,YAAa,OAAO,GAC3D,OAAOhF,EAAKkxB,OAJd,GAAUpyB,UAAYwxB,GAAUxxB,UCOjB,ICpDX,GAAS,WAAa,IAAIvG,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,MAAM,CAACw4B,WAAW,CAAC,CAAC/yB,KAAK,gBAAgBgzB,QAAQ,kBAAkBp1B,MAAOzD,EAAkB,eAAE84B,WAAW,mBAAmBx4B,YAAY,aAAa,CAACF,EAAG,MAAM,CAACE,YAAY,QAAQC,MAAM,CAAC,IAAM,QAAQ,IAAM,EAAQ,SAAmCW,GAAG,CAAC,MAAQlB,EAAI+4B,kBAAkB/4B,EAAI2B,GAAG,GAAGvB,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,OAAO,CAACE,YAAY,sBAAsB,CAACN,EAAI4B,GAAG5B,EAAIqC,GAAGrC,EAAIuC,GAAG,UAAPvC,CAAkBA,EAAIqB,KAAK23B,QAAQ,OAAO54B,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAI4B,GAAG,iBAAiBxB,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,OAAO,CAACE,YAAY,sBAAsB,CAACN,EAAI4B,GAAG5B,EAAIqC,GAAGrC,EAAIuC,GAAG,UAAPvC,CAAkBA,EAAIqB,KAAK43B,WAAW,OAAO74B,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAI4B,GAAG,4BAA4BxB,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,OAAO,CAACE,YAAY,sBAAsB,CAACN,EAAI4B,GAAG5B,EAAIqC,GAAGrC,EAAIk5B,cAAcl5B,EAAIqB,KAAK83B,OAAQ,WAAW/4B,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAI4B,GAAG,sBAAsBxB,EAAG,MAAM,CAACE,YAAY,SAAS,CAACN,EAAI4B,GAAG,qBAAqB5B,EAAIqC,GAAGrC,EAAIk5B,cAAcl5B,EAAIqB,KAAK+3B,OAAQ,QAAQ,OAAOp5B,EAAI+B,GAAI/B,EAAIqB,KAAU,OAAE,SAASg4B,EAAKnV,GAAO,OAAO9jB,EAAG,MAAM,CAAC8B,IAAIgiB,EAAM5jB,YAAY,UAAU,CAACF,EAAG,OAAO,CAACJ,EAAI4B,GAAG5B,EAAIqC,GAAGg3B,EAAKxzB,SAASzF,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACN,EAAI4B,GAAG,IAAI5B,EAAIqC,GAAGrC,EAAIqB,KAAK23B,UAAU54B,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACN,EAAI4B,GAAG5B,EAAIqC,GAAGrC,EAAIk5B,cAAcG,EAAKF,OAAQ,iBAAgB,QACpkD,GAAkB,CAAC,WAAa,IAAIn5B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,MAAM,CAACG,MAAM,CAAC,IAAM,OAAO,IAAM,EAAQ,aAAyCH,EAAG,OAAO,CAACJ,EAAI4B,GAAG,kC,wBC0DlR,IACE03B,SAAU,OAAZ,OAAY,CAAZ,kBACA,0CACA,iCAEEV,WAAY,CACVW,aAAc,GAAlB,aAEEj1B,QAAS,CACPy0B,eADJ,WAEM94B,KAAKu5B,OAAOC,OAAO,kBAAkB,KAGzCl2B,QAAS,CACPm2B,QADJ,SACA,GACM,OAAOt2B,OAAOK,GAAOC,QAAQ,MC1E8T,MCQ7V,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCkCf,IACErC,KADF,WAEI,MAAO,CACLs4B,eAAgB,EAChBn5B,WAAY,GACZo5B,UAAW,KACXC,UAAW,GACX74B,MAAO,EACP+C,OAAQ,EACR+1B,cAAe,EACfC,YAAa,CACXhR,UAAW,eACXwB,WAAY,uCAEdyP,MAAO,GACP54B,KAAM,CACJqD,GAAI,EACJpD,KAAM,IAERV,SAAU,CACRS,KAAM,GACN64B,MAAO,GACPr5B,QAAS,GACT4D,KAAM,CAAd,gBAEM01B,KAAM,CACJC,QAAQ,KAKdb,SAAU,OAAZ,OAAY,CAAZ,gDACA,iCACA,qCACA,uBACI,WAAJ,aACI,YAAJ,aACI,cAAJ,mBANA,IAQIr4B,eARJ,WASM,IAAN,GACQwB,UAAW,EACXC,OAAQ,EACRC,KAAM,EACNG,MAAO,EACPG,OAAQ,EACRF,OAAQ,EACRC,KAAM,EACNJ,IAAK,GAGb,qBACM,IAAK,IAAX,QACQ,IAAR,OACQw3B,EAAOj5B,EAAIc,QAAUhC,KAAKi5B,cAAc/3B,EAAI60B,IAAK70B,EAAIk5B,UAGvD,OAAOD,KAIX,QA7DF,WA6DA,yLAEA,sCAFA,gBAEA,EAFA,EAEA,KACA,sBACA,gBACA,WALA,qDAOA,4FAPA,6DAWEE,UAxEF,WAyE2B,OAAnBr6B,KAAK25B,WAAoB35B,KAAK25B,UAAUW,eAG9Cj2B,QAAS,CACPk2B,OADJ,WACA,WACMv6B,KAAK25B,UAAY35B,KAAKw6B,YAAYC,UACxC,aADA,yDAEA,mHAEA,eAGA,gCACA,qBACA,4BACA,KACA,4BACA,gBACA,yBAKA,iBACA,+DACA,iBACA,UACA,wBACA,mBACA,oDAIA,sCA1BA,4KA2BA,iBACA,WACA,oBACA,yBACA,uCA/BA,6BAgCA,GAhCA,qDAgCA,EAhCA,WAiCA,OACA,gBACA,oCACA,mBAEA,iEAtCA,UAuCA,gCACA,2BAxCA,QA0CA,sBACA,kCA3CA,+GAFA,wDAqDI,IAvDJ,SAuDA,qPAEA,uBACA,0BAHA,SAKA,wCACA,SACA,WACA,UARA,mBAKA,EALA,EAKA,MAMA,QAXA,0CAWA,yBAXA,QAYA,oDAEA,gDAEA,iDACA,qCAEA,kBACA,kDAEA,MACA,oCAEA,OACA,+BA1BA,qDA6BA,6BA7BA,6DAkCI,WAzFJ,WAyFA,mNACA,6BAEA,IAHA,YAGA,MAHA,8CAIA,aAJA,qDAIA,EAJA,WAKA,iBALA,UAMA,wBANA,+BAGA,IAHA,uBASA,eATA,+CAaIn5B,UAtGJ,SAsGA,GACMtB,KAAK8D,OAASA,GAGhB42B,YA1GJ,SA0GA,GACM,IAAN,oBACM,OAAO,IAAwB,IAAlBC,EAAOvI,SAAiB,IAAO,MAI9CwI,YAhHJ,WAiHM,IAAN,qCACA,MACA,MACA,MACA,MACA,IACA,OAEA,OAEA,WACA,kBAAQ,OAAR,KACA,YACA,OAEM56B,KAAK45B,UAAY5D,EAGjB,IAAN,OAEA,eACA,eACA,gBACA,KACA,kBACA,YACA,+CAEM5oB,EACN,YACA,kBACA,QACA,QACA,eACA,0BAAQ,IAAR,SACQ,MAAR,4BACA,QAEA,YAEMA,EACN,kBACA,QACA,QACA,eACA,8BACA,qCACA,yBACA,4BACA,sBACA,8BACQ,IAAR,yBACQ,MACR,iDAGA,kBAAQ,MAAR,4CAIEytB,MAAO,CACL,kBADJ,WAEM76B,KAAKu6B,WAITO,WAAY,CACVC,OAAJ,EACIC,QAAJ,EACIC,SAAJ,EACIC,MAAJ,EACIC,QAAJ,EACIC,SAAJ,KC1T8U,MCQ1U,I,UAAY,eACd,GACAt7B,EACA2B,GACA,EACA,KACA,WACA,OAIa,gB,sEClBf,IAAIjC,EAAI,EAAQ,QACZ67B,EAAY,EAAQ,QACpBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBra,EAAW,EAAQ,QACnBsa,EAAQ,EAAQ,QAChBC,EAAe,EAAQ,QACvBC,EAAsB,EAAQ,QAC9BC,EAAK,EAAQ,QACbC,EAAa,EAAQ,QACrBC,EAAK,EAAQ,QACbC,EAAS,EAAQ,QAEjB32B,EAAO,GACP42B,EAAa52B,EAAK6H,KAGlBgvB,EAAqBR,GAAM,WAC7Br2B,EAAK6H,UAAKyY,MAGRwW,EAAgBT,GAAM,WACxBr2B,EAAK6H,KAAK,SAGRkvB,EAAgBR,EAAoB,QAEpCS,GAAeX,GAAM,WAEvB,GAAIK,EAAI,OAAOA,EAAK,GACpB,KAAIF,GAAMA,EAAK,GAAf,CACA,GAAIC,EAAY,OAAO,EACvB,GAAIE,EAAQ,OAAOA,EAAS,IAE5B,IACIM,EAAMC,EAAK74B,EAAOygB,EADlBqY,EAAS,GAIb,IAAKF,EAAO,GAAIA,EAAO,GAAIA,IAAQ,CAGjC,OAFAC,EAAME,OAAOC,aAAaJ,GAElBA,GACN,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI,KAAK,GAAI54B,EAAQ,EAAG,MAC/C,KAAK,GAAI,KAAK,GAAIA,EAAQ,EAAG,MAC7B,QAASA,EAAQ,EAGnB,IAAKygB,EAAQ,EAAGA,EAAQ,GAAIA,IAC1B9e,EAAKkB,KAAK,CAAEgc,EAAGga,EAAMpY,EAAO3V,EAAG9K,IAMnC,IAFA2B,EAAK6H,MAAK,SAAUN,EAAGC,GAAK,OAAOA,EAAE2B,EAAI5B,EAAE4B,KAEtC2V,EAAQ,EAAGA,EAAQ9e,EAAK9D,OAAQ4iB,IACnCoY,EAAMl3B,EAAK8e,GAAO5B,EAAEoa,OAAO,GACvBH,EAAOG,OAAOH,EAAOj7B,OAAS,KAAOg7B,IAAKC,GAAUD,GAG1D,MAAkB,gBAAXC,MAGLI,EAASV,IAAuBC,IAAkBC,IAAkBC,EAEpEQ,EAAiB,SAAUC,GAC7B,OAAO,SAAU76B,EAAG4gB,GAClB,YAAU8C,IAAN9C,GAAyB,OACnB8C,IAAN1jB,EAAwB,OACV0jB,IAAdmX,GAAiCA,EAAU76B,EAAG4gB,IAAM,EACjDzB,EAASnf,GAAKmf,EAASyB,GAAK,GAAK,IAM5CnjB,EAAE,CAAEG,OAAQ,QAASk9B,OAAO,EAAMC,OAAQJ,GAAU,CAClD1vB,KAAM,SAAc4vB,QACAnX,IAAdmX,GAAyBvB,EAAUuB,GAEvC,IAAI70B,EAAQuzB,EAASt7B,MAErB,GAAIm8B,EAAa,YAAqB1W,IAAdmX,EAA0Bb,EAAWp1B,KAAKoB,GAASg0B,EAAWp1B,KAAKoB,EAAO60B,GAElG,IAEIG,EAAa9Y,EAFb+Y,EAAQ,GACRC,EAAc1B,EAASxzB,EAAM1G,QAGjC,IAAK4iB,EAAQ,EAAGA,EAAQgZ,EAAahZ,IAC/BA,KAASlc,GAAOi1B,EAAM32B,KAAK0B,EAAMkc,IAGvC+Y,EAAQvB,EAAauB,EAAOL,EAAeC,IAC3CG,EAAcC,EAAM37B,OACpB4iB,EAAQ,EAER,MAAOA,EAAQ8Y,EAAah1B,EAAMkc,GAAS+Y,EAAM/Y,KACjD,MAAOA,EAAQgZ,SAAoBl1B,EAAMkc,KAEzC,OAAOlc,M,uBCnGX,IAAI5I,EAAY,EAAQ,QAEpB+9B,EAAS/9B,EAAUE,MAAM,wBAE7BC,EAAOC,UAAY29B,IAAWA,EAAO,I,oCCJrC,W,4CCAA59B,EAAOC,QAAU,IAA0B,oC,oCCA3C,W,oCCAA,W,kCCAA,W,iECCA,IAAIgjB,EAAQrW,KAAKqW,MAEb4a,EAAY,SAAUp1B,EAAO60B,GAC/B,IAAIv7B,EAAS0G,EAAM1G,OACf+7B,EAAS7a,EAAMlhB,EAAS,GAC5B,OAAOA,EAAS,EAAIg8B,EAAct1B,EAAO60B,GAAajxB,EACpDwxB,EAAUp1B,EAAMjC,MAAM,EAAGs3B,GAASR,GAClCO,EAAUp1B,EAAMjC,MAAMs3B,GAASR,GAC/BA,IAIAS,EAAgB,SAAUt1B,EAAO60B,GACnC,IAEIU,EAAS/1B,EAFTlG,EAAS0G,EAAM1G,OACf2D,EAAI,EAGR,MAAOA,EAAI3D,EAAQ,CACjBkG,EAAIvC,EACJs4B,EAAUv1B,EAAM/C,GAChB,MAAOuC,GAAKq1B,EAAU70B,EAAMR,EAAI,GAAI+1B,GAAW,EAC7Cv1B,EAAMR,GAAKQ,IAAQR,GAEjBA,IAAMvC,MAAK+C,EAAMR,GAAK+1B,GAC1B,OAAOv1B,GAGP4D,EAAQ,SAAU4xB,EAAMC,EAAOZ,GACjC,IAAIa,EAAUF,EAAKl8B,OACfq8B,EAAUF,EAAMn8B,OAChBs8B,EAAS,EACTC,EAAS,EACTtB,EAAS,GAEb,MAAOqB,EAASF,GAAWG,EAASF,EAC9BC,EAASF,GAAWG,EAASF,EAC/BpB,EAAOj2B,KAAKu2B,EAAUW,EAAKI,GAASH,EAAMI,KAAY,EAAIL,EAAKI,KAAYH,EAAMI,MAEjFtB,EAAOj2B,KAAKs3B,EAASF,EAAUF,EAAKI,KAAYH,EAAMI,MAExD,OAAOtB,GAGXh9B,EAAOC,QAAU49B,G,mBC5CjB79B,EAAOC,QAAU,0vG,kCCCjB,IAAIC,EAAI,EAAQ,QACZq+B,EAAa,EAAQ,QAAgCC,UACrDC,EAAmB,EAAQ,QAE3BC,EAAa,YACbC,GAAc,EAGdD,IAAc,IAAIn5B,MAAM,GAAGm5B,IAAY,WAAcC,GAAc,KAIvEz+B,EAAE,CAAEG,OAAQ,QAASk9B,OAAO,EAAMC,OAAQmB,GAAe,CACvDH,UAAW,SAAmBI,GAC5B,OAAOL,EAAW79B,KAAMk+B,EAAYj5B,UAAU5D,OAAS,EAAI4D,UAAU,QAAKwgB,MAK9EsY,EAAiBC,I,qBCpBjB,IAAIG,EAAK,EAAQ,QAEjB7+B,EAAOC,QAAU,eAAe4F,KAAKg5B,I,kCCFrC","file":"js/chunk-665072d9.af6a7cc0.js","sourcesContent":["var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Header.vue?vue&type=style&index=0&id=4c089fe3&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/roulette-x100.b5003857.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Features.vue?vue&type=style&index=0&id=645079c4&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/sync.92d56c5e.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"x100\"},[_c('Header'),_c('div',{staticClass:\"body\"},[_c('Timer',{attrs:{\"centrifuge\":_vm.centrifuge}}),_c('div',{staticClass:\"wheel-container\"},[_c('img',{staticClass:\"cursor\",attrs:{\"alt\":\"Курсор\",\"src\":require(\"@/assets/images/x100/cursor.png\")}}),_c('svg',{ref:\"chart\",style:(_vm.styleObject),attrs:{\"viewBox\":\"0 0 600 600\",\"preserveAspectRatio\":\"xMidYMid meet\"}})]),_c('History',{attrs:{\"history\":_vm.response.history}})],1)],1),(_vm.isLoggedIn)?_c('div',{staticClass:\"bets\",class:{\n disabled: _vm.centrifuge.type === 'slider',\n }},[_c('Buttons',{attrs:{\"manyX\":_vm.manyX,\"banks\":_vm.getUserAmounts},on:{\"bet\":_vm.bet}}),_c('Features',{attrs:{\"access\":_vm.bets.data.length},on:{\"setAmount\":_vm.setAmount,\"repeat\":_vm.repeatBets}})],1):_vm._e(),(_vm.winModal)?_c('WinModal'):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header\"},[_vm._m(0),_c('router-link',{staticClass:\"help\",attrs:{\"to\":\"/faq\"}},[_c('span',{staticClass:\"name\"},[_vm._v(\"Нужна помощь ?\")]),_c('span',{staticClass:\"icon\"},[_c('img',{attrs:{\"alt\":\"headphones\",\"src\":require(\"@/assets/icons/headphones-gray.svg\")}})])])],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"logo\"},[_c('div',{staticClass:\"badge\"},[_c('img',{attrs:{\"alt\":\"Dice\",\"src\":require(\"@/assets/icons/roulette-x100.svg\")}})]),_vm._v(\" x100 \")])}]\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Header.vue?vue&type=template&id=4c089fe3&scoped=true&\"\nvar script = {}\nimport style0 from \"./Header.vue?vue&type=style&index=0&id=4c089fe3&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c089fe3\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.buttons)?_c('div',{staticClass:\"buttons\"},_vm._l((_vm.buttons),function(x,color){return _c('button',{key:color,class:color,on:{\"click\":function($event){return _vm.$emit('bet', color)}}},[_vm._v(\" x\"+_vm._s(x * _vm.manyX)+\" \"),(_vm.banks[color] > 0)?_c('span',{staticClass:\"bank\"},[_vm._v(_vm._s(_vm._f(\"fixedNumber\")(_vm.banks[color]))+\" ₽\")]):_vm._e()])}),0):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","const colors = {\n lightblue: \"#42DFEE\",\n yellow: \"#ffeaa7\",\n pink: \"#FB71FE\",\n red: \"#FF7A7A\",\n black: \"#6C6E8B\",\n green: \"#64E57F\",\n orange: \"#FBC26F\",\n blue: \"#55ADFF\",\n purple: \"#9543e7\",\n};\n\nconst xs = {\n lightblue: 1,\n yellow: 2,\n pink: 5,\n green: 10,\n purple: 15,\n orange: 20,\n blue: 25,\n red: 100,\n};\n\nexport { colors, xs };\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Buttons.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Buttons.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Buttons.vue?vue&type=template&id=60852c99&scoped=true&\"\nimport script from \"./Buttons.vue?vue&type=script&lang=js&\"\nexport * from \"./Buttons.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Buttons.vue?vue&type=style&index=0&id=60852c99&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60852c99\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.centrifuge.type !== 'slider')?_c('div',{staticClass:\"timer\"},[_c('div',{staticClass:\"desc\"},[_vm._v(\"До начала игры:\")]),_c('div',{staticClass:\"time\"},[_vm._v(_vm._s(_vm._f(\"convertTime\")(_vm.centrifuge.time)))])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Timer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Timer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Timer.vue?vue&type=template&id=7ead2582&scoped=true&\"\nimport script from \"./Timer.vue?vue&type=script&lang=js&\"\nexport * from \"./Timer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Timer.vue?vue&type=style&index=0&id=7ead2582&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ead2582\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"features\"},[(_vm.access)?_c('span',{staticClass:\"text\",on:{\"click\":function($event){return _vm.$emit('repeat', 2)}}},[_c('span',[_vm._v(\"x2\")]),_vm._v(\" Удвоить \")]):_vm._e(),_vm._l((_vm.coins),function(amount,coin){\nvar _obj;\nreturn _c('div',{key:coin,staticClass:\"coin\",class:( _obj = { active: coin === _vm.active }, _obj[coin] = true, _obj ),on:{\"click\":function($event){return _vm.change(coin)}}},[_vm._v(\" \"+_vm._s(amount)+\" \")])}),(_vm.access)?_c('span',{staticClass:\"text\",on:{\"click\":function($event){return _vm.$emit('repeat', 1)}}},[_vm._m(0),_vm._v(\" Повторить \")]):_vm._e()],2)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',[_c('img',{attrs:{\"alt\":\"Повторить\",\"src\":require(\"@/assets/images/x100/sync.svg\")}})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Features.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Features.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Features.vue?vue&type=template&id=645079c4&scoped=true&\"\nimport script from \"./Features.vue?vue&type=script&lang=js&\"\nexport * from \"./Features.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Features.vue?vue&type=style&index=0&id=645079c4&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"645079c4\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"history\"},_vm._l((_vm.history),function(game){return _c('form',{key:game.id,attrs:{\"action\":\"https://api.random.org/verify\",\"method\":\"post\",\"target\":\"_blank\"}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"format\",\"value\":\"json\"}}),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"random\"},domProps:{\"value\":game.random}}),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"signature\"},domProps:{\"value\":game.signature}}),_c('button',{class:game.winner_color,attrs:{\"type\":\"submit\"}})])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./History.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./History.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./History.vue?vue&type=template&id=7ce47d14&scoped=true&\"\nimport script from \"./History.vue?vue&type=script&lang=js&\"\nexport * from \"./History.vue?vue&type=script&lang=js&\"\nimport style0 from \"./History.vue?vue&type=style&index=0&id=7ce47d14&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7ce47d14\",\n null\n \n)\n\nexport default component.exports","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {pointer, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nconst {abs, max, min} = Math;\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection, event) {\n if (group.tween) {\n group\n .on(\"start.brush\", function(event) { emitter(this, arguments).beforestart().start(event); })\n .on(\"interrupt.brush end.brush\", function(event) { emitter(this, arguments).end(event); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start(event).brush(event).end(event);\n });\n }\n };\n\n brush.clear = function(group, event) {\n brush.move(group, null, event);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function(event, mode) {\n if (this.starting) this.starting = false, this.emit(\"start\", event, mode);\n else this.emit(\"brush\", event);\n return this;\n },\n brush: function(event, mode) {\n this.emit(\"brush\", event, mode);\n return this;\n },\n end: function(event, mode) {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\", event, mode);\n return this;\n },\n emit: function(type, event, mode) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new BrushEvent(type, {\n sourceEvent: event,\n target: brush,\n selection: dim.output(this.state.selection),\n mode,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function started(event) {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n points = Array.from(event.touches || [event], t => {\n const i = t.identifier;\n t = pointer(t, that);\n t.point0 = t.slice();\n t.identifier = i;\n return t;\n });\n\n interrupt(that);\n var emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n const pts = [points[0], points[1] || points[0]];\n state.selection = selection = [[\n w0 = dim === Y ? W : min(pts[0][0], pts[1][0]),\n n0 = dim === X ? N : min(pts[0][1], pts[1][1])\n ], [\n e0 = dim === Y ? E : max(pts[0][0], pts[1][0]),\n s0 = dim === X ? S : max(pts[0][1], pts[1][1])\n ]];\n if (points.length > 1) move(event);\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n redraw.call(that);\n emit.start(event, mode.name);\n\n function moved(event) {\n for (const p of event.changedTouches || [event]) {\n for (const d of points)\n if (d.identifier === p.identifier) d.cur = pointer(p, that);\n }\n if (shifting && !lockX && !lockY && points.length === 1) {\n const point = points[0];\n if (abs(point.cur[0] - point[0]) > abs(point.cur[1] - point[1]))\n lockY = true;\n else\n lockX = true;\n }\n for (const point of points)\n if (point.cur) point[0] = point.cur[0], point[1] = point.cur[1];\n moving = true;\n noevent(event);\n move(event);\n }\n\n function move(event) {\n const point = points[0], point0 = point.point0;\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = max(W - w0, min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = max(N - n0, min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (points[1]) {\n if (signX) w1 = max(W, min(E, points[0][0])), e1 = max(W, min(E, points[1][0])), signX = 1;\n if (signY) n1 = max(N, min(S, points[0][1])), s1 = max(N, min(S, points[1][1])), signY = 1;\n } else {\n if (signX < 0) dx = max(W - w0, min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = max(W - e0, min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = max(N - n0, min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = max(N - s0, min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n }\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = max(W, min(E, w0 - dx * signX)), e1 = max(W, min(E, e0 + dx * signX));\n if (signY) n1 = max(N, min(S, n0 - dy * signY)), s1 = max(N, min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush(event, mode.name);\n }\n }\n\n function ended(event) {\n nopropagation(event);\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end(event, mode.name);\n }\n\n function keydowned(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move(event);\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n\n function keyupped(event) {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move(event);\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move(event);\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move(event);\n }\n break;\n }\n default: return;\n }\n noevent(event);\n }\n }\n\n function touchmoved(event) {\n emitter(this, arguments).moved(event);\n }\n\n function touchended(event) {\n emitter(this, arguments).ended(event);\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null;\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle.\n if (da < pi && (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10))) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"modal-mask\"},[_c('div',{staticClass:\"modal-wrapper\"},[_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.onClickOutside),expression:\"onClickOutside\"}],staticClass:\"container\"},[_c('img',{staticClass:\"close\",attrs:{\"alt\":\"close\",\"src\":require(\"@/assets/icons/close-modal.svg\")},on:{\"click\":_vm.onClickOutside}}),_vm._m(0),_c('div',{staticClass:\"flex\"},[_c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"stats\"},[_c('span',{staticClass:\"score text-primary\"},[_vm._v(_vm._s(_vm._f(\"fixedTo\")(_vm.data.coeff))+\"x\")]),_c('span',{staticClass:\"description\"},[_vm._v(\"Общий X\")])])]),_c('div',{staticClass:\"block\"},[_c('div',{staticClass:\"stats\"},[_c('span',{staticClass:\"score text-warning\"},[_vm._v(_vm._s(_vm._f(\"fixedTo\")(_vm.data.dopCoeff))+\"x\")]),_c('span',{staticClass:\"description\"},[_vm._v(\"Дополнительный X\")])])])]),_c('div',{staticClass:\"stats\"},[_c('span',{staticClass:\"score text-success\"},[_vm._v(_vm._s(_vm.convertAmount(_vm.data.winSum, \"rub\")))]),_c('span',{staticClass:\"description\"},[_vm._v(\"Сумма выигрыша\")])]),_c('div',{staticClass:\"title\"},[_vm._v(\" Игроки выиграли: \"+_vm._s(_vm.convertAmount(_vm.data.allwin, \"rub\"))+\" \")]),_vm._l((_vm.data.users),function(user,index){return _c('div',{key:index,staticClass:\"player\"},[_c('span',[_vm._v(_vm._s(user.name))]),_c('span',{staticClass:\"text-primary\"},[_vm._v(\"X\"+_vm._s(_vm.data.coeff))]),_c('span',{staticClass:\"text-success\"},[_vm._v(_vm._s(_vm.convertAmount(user.winSum, \"rub\")))])])})],2)])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header\"},[_c('div',{staticClass:\"badge\"},[_c('img',{attrs:{\"alt\":\"x100\",\"src\":require(\"@/assets/icons/roulette-x100.svg\")}})]),_c('span',[_vm._v(\"Поздравляем вы выиграли!\")])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WinModal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WinModal.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WinModal.vue?vue&type=template&id=53dd5e90&scoped=true&\"\nimport script from \"./WinModal.vue?vue&type=script&lang=js&\"\nexport * from \"./WinModal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WinModal.vue?vue&type=style&index=0&id=53dd5e90&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"53dd5e90\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./x100.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./x100.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./x100.vue?vue&type=template&id=be95c516&scoped=true&\"\nimport script from \"./x100.vue?vue&type=script&lang=js&\"\nexport * from \"./x100.vue?vue&type=script&lang=js&\"\nimport style0 from \"./x100.vue?vue&type=style&index=0&id=be95c516&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"be95c516\",\n null\n \n)\n\nexport default component.exports","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aFunction(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort.call(array) : nativeSort.call(array, comparefn);\n\n var items = [];\n var arrayLength = toLength(array.length);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) items.push(array[index]);\n }\n\n items = internalSort(items, getSortCompare(comparefn));\n itemsLength = items.length;\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) delete array[index++];\n\n return array;\n }\n});\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WinModal.vue?vue&type=style&index=0&id=53dd5e90&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/headphones-gray.378b1a3a.svg\";","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Buttons.vue?vue&type=style&index=0&id=60852c99&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./x100.vue?vue&type=style&index=0&id=be95c516&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Timer.vue?vue&type=style&index=0&id=7ead2582&lang=scss&scoped=true&\"","// TODO: use something more complex like timsort?\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n mergeSort(array.slice(0, middle), comparefn),\n mergeSort(array.slice(middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n var result = [];\n\n while (lindex < llength || rindex < rlength) {\n if (lindex < llength && rindex < rlength) {\n result.push(comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]);\n } else {\n result.push(lindex < llength ? left[lindex++] : right[rindex++]);\n }\n } return result;\n};\n\nmodule.exports = mergeSort;\n","module.exports = \"data:image/png;base64,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\"","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./History.vue?vue&type=style&index=0&id=7ce47d14&lang=scss&scoped=true&\""],"sourceRoot":""}