-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcomponent---src-pages-about-js-e23e17fd1280c3732e38.js.map
1 lines (1 loc) · 140 KB
/
component---src-pages-about-js-e23e17fd1280c3732e38.js.map
1
{"version":3,"sources":["webpack:///./node_modules/animejs/lib/anime.es.js","webpack:///./src/components/SkillDonut.js","webpack:///./src/pages/about.js","webpack:///./node_modules/core-js/modules/_typed-array.js","webpack:///./node_modules/core-js/modules/_typed-buffer.js","webpack:///./node_modules/core-js/modules/_to-index.js","webpack:///./node_modules/core-js/modules/_typed.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./src/components/PageElements.js","webpack:///./node_modules/core-js/modules/es6.typed.float32-array.js","webpack:///./node_modules/core-js/modules/_array-copy-within.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js"],"names":["defaultInstanceSettings","update","begin","loopBegin","changeBegin","change","changeComplete","loopComplete","complete","loop","direction","autoplay","timelineOffset","defaultTweenSettings","duration","delay","endDelay","easing","round","validTransforms","cache","CSS","springs","minMax","val","min","max","Math","stringContains","str","text","indexOf","applyArguments","func","args","apply","is","arr","a","Array","isArray","obj","Object","prototype","toString","call","pth","hasOwnProperty","svg","SVGElement","inp","HTMLInputElement","dom","nodeType","fnc","und","hex","test","rgb","hsl","col","key","parseEasingParameters","string","match","exec","split","map","p","parseFloat","spring","params","mass","stiffness","damping","velocity","w0","sqrt","zeta","wd","b","solver","t","progress","exp","cos","sin","cached","elapsed","rest","steps","eases","functionEasings","bezier","A","aA1","aA2","B","C","calcBezier","aT","getSlope","mX1","mY1","mX2","mY2","sampleValues","Float32Array","i","x","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","abs","binarySubdivide","penner","linear","Sine","PI","Circ","Back","Bounce","pow2","pow","Elastic","amplitude","period","asin","forEach","name","keys","easeIn","parseEasings","ease","selectString","document","querySelectorAll","e","filterArray","callback","len","length","thisArg","arguments","result","push","flattenArray","reduce","concat","toArray","o","NodeList","HTMLCollection","slice","arrayContains","some","cloneObject","clone","replaceObjectProps","o1","o2","mergeObjects","colorToRgb","rgbValue","hexValue","replace","m","r","g","parseInt","hexToRgba","hslValue","h","s","l","hue2rgb","q","hslToRgba","getUnit","getFunctionValue","animatable","target","id","total","getAttribute","el","prop","convertPxToUnit","value","unit","tempEl","createElement","tagName","parentEl","parentNode","body","appendChild","style","position","width","factor","offsetWidth","removeChild","convertedUnit","getCSSValue","uppercasePropName","toLowerCase","getComputedStyle","getPropertyValue","getAnimationType","getElementTransforms","transform","reg","transforms","Map","set","getTransformValue","propName","defaultVal","getTransformUnit","get","list","getOriginalTargetValue","getRelativeValue","to","from","operator","u","y","validateValue","originalUnit","unitLess","substr","getDistance","p1","p2","getPolylineLength","previousPos","points","totalLength","numberOfItems","currentPos","getItem","getTotalLength","getCircleLength","getRectLength","getLineLength","getPolygonLength","getParentSvg","pathEl","svgData","parentSvgEl","getParentSvgEl","rect","getBoundingClientRect","viewBoxAttr","height","viewBox","w","getPathProgress","path","point","offset","getPointAtLength","p0","property","atan2","decomposeValue","rgx","original","numbers","Number","strings","parseTargets","targets","item","pos","self","getAnimatables","parsed","normalizePropertyTweens","tweenSettings","settings","propArray","v","k","getProperties","properties","keyframes","propertyNames","newKey","flattenKeyframes","tweens","normalizeTweens","previousTween","tween","normalizeTweenValues","tweenValue","toUnit","originalValue","previousValue","fromUnit","start","end","isPath","isColor","setProgressValue","css","attribute","setAttribute","object","manual","last","setTargetsValue","valueUnit","animType","getAnimations","animatables","lastTween","type","createAnimation","getInstanceTimings","animations","animLength","getTlOffset","anim","timings","instanceID","raf","activeInstances","pausedInstances","engine","play","requestAnimationFrame","step","activeInstancesLength","activeInstance","paused","instanceIndex","splice","tick","cancelAnimationFrame","anime","children","startTime","lastTime","now","childrenLength","resolve","makePromise","instance","promise","window","Promise","_resolve","finished","instanceSettings","createNewInstance","toggleInstanceDirection","reversed","child","adjustTime","time","resetTime","currentTime","speed","seekChild","seek","setAnimationsProgress","insTime","animationsLength","tweenLength","eased","isNaN","toNumbersLength","n","toNumber","fromNumber","stringsLength","n$1","currentValue","setCallback","cb","passThrough","setInstanceProgress","engineTime","insDuration","insDelay","insEndDelay","reversePlayback","i$1","syncInstanceChildren","began","loopBegan","changeBegan","changeCompleted","remaining","completed","reset","pause","reverse","restart","removeTargetsFromAnimations","targetsArray","addEventListener","hidden","ins","running","version","remove","c","childAnimations","convertPx","percent","setDashoffset","pathLength","stagger","grid","axis","fromIndex","fromFirst","fromCenter","fromLast","isRange","val1","val2","values","maxValue","index","fromX","fromY","floor","distanceX","distanceY","timeline","tl","add","instanceParams","tlIndex","insParams","tlDuration","random","SkillSection","className","SkillDonut","props","state","animated","dash","radius","componentDidMount","this","percentage","initialDash","refs","skillCircle","strokeDashoffset","skillPercentage","textContent","render","color","strokeWidth","size","dashArray","ref","stroke","strokeDasharray","Component","defaultProps","About","icon","FaPalette","iconPosition","FaEnvelope","FaFileAlt","LIBRARY","global","fails","$export","$typed","$buffer","ctx","anInstance","propertyDesc","hide","redefineAll","toInteger","toLength","toIndex","toAbsoluteIndex","toPrimitive","has","classof","isObject","toObject","isArrayIter","create","getPrototypeOf","gOPN","f","getIterFn","uid","wks","createArrayMethod","createArrayIncludes","speciesConstructor","ArrayIterators","Iterators","$iterDetect","setSpecies","arrayFill","arrayCopyWithin","$DP","$GOPD","dP","gOPD","RangeError","TypeError","Uint8Array","ArrayProto","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayFind","arrayFindIndex","arrayIncludes","arrayIndexOf","arrayValues","arrayKeys","arrayEntries","entries","arrayLastIndexOf","lastIndexOf","arrayReduce","arrayReduceRight","reduceRight","arrayJoin","join","arraySort","sort","arraySlice","arrayToString","arrayToLocaleString","toLocaleString","ITERATOR","TAG","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","O","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","toOffset","it","BYTES","validate","speciesFromList","fromList","addGetter","internal","_d","$from","source","iterator","aLen","mapfn","undefined","mapping","iterFn","next","done","$of","TO_LOCALE_BUG","$toLocaleString","proto","copyWithin","every","callbackfn","fill","filter","find","predicate","findIndex","searchElement","includes","separator","middle","comparefn","subarray","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","src","$iterators","isTAIndex","String","$getDesc","$setDesc","desc","configurable","writable","enumerable","S","F","getOwnPropertyDescriptor","defineProperty","$TypedArrayPrototype$","constructor","module","exports","KEY","wrapper","CLAMPED","NAME","GETTER","SETTER","TypedArray","Base","TAC","FORCED","ABV","TypedArrayPrototype","addElement","that","data","getter","setter","$offset","$length","byteLength","klass","$len","iter","Function","$nativeIterator","CORRECT_ITER_NAME","$iterator","G","W","of","P","DESCRIPTORS","setToStringTag","Infinity","BaseBuffer","log","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","NaN","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","store","_b","pack","conversion","ArrayBufferProto","j","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","number","Typed","TypedArrayConstructors","endPos","PageMain","Title","Icon","SubTitle","PageLink","iconBefore","iconAfter","href","Pre","Paragraph","TextImage","srcSet","responsive","alt","init","count","inc","cof","inheritIfRequired","$trim","trim","$Number","BROKEN_COF","TRIM","argument","third","radix","maxCode","first","charCodeAt","code","digits","valueOf"],"mappings":"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","file":"component---src-pages-about-js-e23e17fd1280c3732e38.js","sourcesContent":["import \"core-js/modules/es6.promise\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.some\";\nimport \"core-js/modules/es6.array.reduce\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.array.iterator\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.for-each\";\nimport \"core-js/modules/es6.typed.float32-array\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.map\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.date.to-string\";\nimport \"core-js/modules/es6.object.to-string\";\nimport \"core-js/modules/es6.array.is-array\";\nimport \"core-js/modules/es6.array.index-of\";\n\n/*\n * anime.js v3.1.0\n * (c) 2019 Julian Garnier\n * Released under the MIT license\n * animejs.com\n */\n// Defaults\nvar defaultInstanceSettings = {\n update: null,\n begin: null,\n loopBegin: null,\n changeBegin: null,\n change: null,\n changeComplete: null,\n loopComplete: null,\n complete: null,\n loop: 1,\n direction: 'normal',\n autoplay: true,\n timelineOffset: 0\n};\nvar defaultTweenSettings = {\n duration: 1000,\n delay: 0,\n endDelay: 0,\n easing: 'easeOutElastic(1, .5)',\n round: 0\n};\nvar validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective']; // Caching\n\nvar cache = {\n CSS: {},\n springs: {}\n}; // Utils\n\nfunction minMax(val, min, max) {\n return Math.min(Math.max(val, min), max);\n}\n\nfunction stringContains(str, text) {\n return str.indexOf(text) > -1;\n}\n\nfunction applyArguments(func, args) {\n return func.apply(null, args);\n}\n\nvar is = {\n arr: function arr(a) {\n return Array.isArray(a);\n },\n obj: function obj(a) {\n return stringContains(Object.prototype.toString.call(a), 'Object');\n },\n pth: function pth(a) {\n return is.obj(a) && a.hasOwnProperty('totalLength');\n },\n svg: function svg(a) {\n return a instanceof SVGElement;\n },\n inp: function inp(a) {\n return a instanceof HTMLInputElement;\n },\n dom: function dom(a) {\n return a.nodeType || is.svg(a);\n },\n str: function str(a) {\n return typeof a === 'string';\n },\n fnc: function fnc(a) {\n return typeof a === 'function';\n },\n und: function und(a) {\n return typeof a === 'undefined';\n },\n hex: function hex(a) {\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a);\n },\n rgb: function rgb(a) {\n return /^rgb/.test(a);\n },\n hsl: function hsl(a) {\n return /^hsl/.test(a);\n },\n col: function col(a) {\n return is.hex(a) || is.rgb(a) || is.hsl(a);\n },\n key: function key(a) {\n return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes';\n }\n}; // Easings\n\nfunction parseEasingParameters(string) {\n var match = /\\(([^)]+)\\)/.exec(string);\n return match ? match[1].split(',').map(function (p) {\n return parseFloat(p);\n }) : [];\n} // Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js\n\n\nfunction spring(string, duration) {\n var params = parseEasingParameters(string);\n var mass = minMax(is.und(params[0]) ? 1 : params[0], .1, 100);\n var stiffness = minMax(is.und(params[1]) ? 100 : params[1], .1, 100);\n var damping = minMax(is.und(params[2]) ? 10 : params[2], .1, 100);\n var velocity = minMax(is.und(params[3]) ? 0 : params[3], .1, 100);\n var w0 = Math.sqrt(stiffness / mass);\n var zeta = damping / (2 * Math.sqrt(stiffness * mass));\n var wd = zeta < 1 ? w0 * Math.sqrt(1 - zeta * zeta) : 0;\n var a = 1;\n var b = zeta < 1 ? (zeta * w0 + -velocity) / wd : -velocity + w0;\n\n function solver(t) {\n var progress = duration ? duration * t / 1000 : t;\n\n if (zeta < 1) {\n progress = Math.exp(-progress * zeta * w0) * (a * Math.cos(wd * progress) + b * Math.sin(wd * progress));\n } else {\n progress = (a + b * progress) * Math.exp(-progress * w0);\n }\n\n if (t === 0 || t === 1) {\n return t;\n }\n\n return 1 - progress;\n }\n\n function getDuration() {\n var cached = cache.springs[string];\n\n if (cached) {\n return cached;\n }\n\n var frame = 1 / 6;\n var elapsed = 0;\n var rest = 0;\n\n while (true) {\n elapsed += frame;\n\n if (solver(elapsed) === 1) {\n rest++;\n\n if (rest >= 16) {\n break;\n }\n } else {\n rest = 0;\n }\n }\n\n var duration = elapsed * frame * 1000;\n cache.springs[string] = duration;\n return duration;\n }\n\n return duration ? solver : getDuration;\n} // Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function\n\n\nfunction steps(steps) {\n if (steps === void 0) steps = 10;\n return function (t) {\n return Math.round(t * steps) * (1 / steps);\n };\n} // BezierEasing https://github.com/gre/bezier-easing\n\n\nvar bezier = function () {\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n }\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n }\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > 0.0000001 && ++i < 10);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < 4; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n\n function bezier(mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n return;\n }\n\n var sampleValues = new Float32Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n var intervalStart = 0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= 0.001) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function (x) {\n if (mX1 === mY1 && mX2 === mY2) {\n return x;\n }\n\n if (x === 0 || x === 1) {\n return x;\n }\n\n return calcBezier(getTForX(x), mY1, mY2);\n };\n }\n\n return bezier;\n}();\n\nvar penner = function () {\n // Based on jQuery UI's implemenation of easing equations from Robert Penner (http://www.robertpenner.com/easing)\n var eases = {\n linear: function linear() {\n return function (t) {\n return t;\n };\n }\n };\n var functionEasings = {\n Sine: function Sine() {\n return function (t) {\n return 1 - Math.cos(t * Math.PI / 2);\n };\n },\n Circ: function Circ() {\n return function (t) {\n return 1 - Math.sqrt(1 - t * t);\n };\n },\n Back: function Back() {\n return function (t) {\n return t * t * (3 * t - 2);\n };\n },\n Bounce: function Bounce() {\n return function (t) {\n var pow2,\n b = 4;\n\n while (t < ((pow2 = Math.pow(2, --b)) - 1) / 11) {}\n\n return 1 / Math.pow(4, 3 - b) - 7.5625 * Math.pow((pow2 * 3 - 2) / 22 - t, 2);\n };\n },\n Elastic: function Elastic(amplitude, period) {\n if (amplitude === void 0) amplitude = 1;\n if (period === void 0) period = .5;\n var a = minMax(amplitude, 1, 10);\n var p = minMax(period, .1, 2);\n return function (t) {\n return t === 0 || t === 1 ? t : -a * Math.pow(2, 10 * (t - 1)) * Math.sin((t - 1 - p / (Math.PI * 2) * Math.asin(1 / a)) * (Math.PI * 2) / p);\n };\n }\n };\n var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint', 'Expo'];\n baseEasings.forEach(function (name, i) {\n functionEasings[name] = function () {\n return function (t) {\n return Math.pow(t, i + 2);\n };\n };\n });\n Object.keys(functionEasings).forEach(function (name) {\n var easeIn = functionEasings[name];\n eases['easeIn' + name] = easeIn;\n\n eases['easeOut' + name] = function (a, b) {\n return function (t) {\n return 1 - easeIn(a, b)(1 - t);\n };\n };\n\n eases['easeInOut' + name] = function (a, b) {\n return function (t) {\n return t < 0.5 ? easeIn(a, b)(t * 2) / 2 : 1 - easeIn(a, b)(t * -2 + 2) / 2;\n };\n };\n });\n return eases;\n}();\n\nfunction parseEasings(easing, duration) {\n if (is.fnc(easing)) {\n return easing;\n }\n\n var name = easing.split('(')[0];\n var ease = penner[name];\n var args = parseEasingParameters(easing);\n\n switch (name) {\n case 'spring':\n return spring(easing, duration);\n\n case 'cubicBezier':\n return applyArguments(bezier, args);\n\n case 'steps':\n return applyArguments(steps, args);\n\n default:\n return applyArguments(ease, args);\n }\n} // Strings\n\n\nfunction selectString(str) {\n try {\n var nodes = document.querySelectorAll(str);\n return nodes;\n } catch (e) {\n return;\n }\n} // Arrays\n\n\nfunction filterArray(arr, callback) {\n var len = arr.length;\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n var result = [];\n\n for (var i = 0; i < len; i++) {\n if (i in arr) {\n var val = arr[i];\n\n if (callback.call(thisArg, val, i, arr)) {\n result.push(val);\n }\n }\n }\n\n return result;\n}\n\nfunction flattenArray(arr) {\n return arr.reduce(function (a, b) {\n return a.concat(is.arr(b) ? flattenArray(b) : b);\n }, []);\n}\n\nfunction toArray(o) {\n if (is.arr(o)) {\n return o;\n }\n\n if (is.str(o)) {\n o = selectString(o) || o;\n }\n\n if (o instanceof NodeList || o instanceof HTMLCollection) {\n return [].slice.call(o);\n }\n\n return [o];\n}\n\nfunction arrayContains(arr, val) {\n return arr.some(function (a) {\n return a === val;\n });\n} // Objects\n\n\nfunction cloneObject(o) {\n var clone = {};\n\n for (var p in o) {\n clone[p] = o[p];\n }\n\n return clone;\n}\n\nfunction replaceObjectProps(o1, o2) {\n var o = cloneObject(o1);\n\n for (var p in o1) {\n o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p];\n }\n\n return o;\n}\n\nfunction mergeObjects(o1, o2) {\n var o = cloneObject(o1);\n\n for (var p in o2) {\n o[p] = is.und(o1[p]) ? o2[p] : o1[p];\n }\n\n return o;\n} // Colors\n\n\nfunction rgbToRgba(rgbValue) {\n var rgb = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g.exec(rgbValue);\n return rgb ? \"rgba(\" + rgb[1] + \",1)\" : rgbValue;\n}\n\nfunction hexToRgba(hexValue) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",1)\";\n}\n\nfunction hslToRgba(hslValue) {\n var hsl = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(hslValue) || /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(hslValue);\n var h = parseInt(hsl[1], 10) / 360;\n var s = parseInt(hsl[2], 10) / 100;\n var l = parseInt(hsl[3], 10) / 100;\n var a = hsl[4] || 1;\n\n function hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n }\n\n var r, g, b;\n\n if (s == 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return \"rgba(\" + r * 255 + \",\" + g * 255 + \",\" + b * 255 + \",\" + a + \")\";\n}\n\nfunction colorToRgb(val) {\n if (is.rgb(val)) {\n return rgbToRgba(val);\n }\n\n if (is.hex(val)) {\n return hexToRgba(val);\n }\n\n if (is.hsl(val)) {\n return hslToRgba(val);\n }\n} // Units\n\n\nfunction getUnit(val) {\n var split = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(val);\n\n if (split) {\n return split[1];\n }\n}\n\nfunction getTransformUnit(propName) {\n if (stringContains(propName, 'translate') || propName === 'perspective') {\n return 'px';\n }\n\n if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) {\n return 'deg';\n }\n} // Values\n\n\nfunction getFunctionValue(val, animatable) {\n if (!is.fnc(val)) {\n return val;\n }\n\n return val(animatable.target, animatable.id, animatable.total);\n}\n\nfunction getAttribute(el, prop) {\n return el.getAttribute(prop);\n}\n\nfunction convertPxToUnit(el, value, unit) {\n var valueUnit = getUnit(value);\n\n if (arrayContains([unit, 'deg', 'rad', 'turn'], valueUnit)) {\n return value;\n }\n\n var cached = cache.CSS[value + unit];\n\n if (!is.und(cached)) {\n return cached;\n }\n\n var baseline = 100;\n var tempEl = document.createElement(el.tagName);\n var parentEl = el.parentNode && el.parentNode !== document ? el.parentNode : document.body;\n parentEl.appendChild(tempEl);\n tempEl.style.position = 'absolute';\n tempEl.style.width = baseline + unit;\n var factor = baseline / tempEl.offsetWidth;\n parentEl.removeChild(tempEl);\n var convertedUnit = factor * parseFloat(value);\n cache.CSS[value + unit] = convertedUnit;\n return convertedUnit;\n}\n\nfunction getCSSValue(el, prop, unit) {\n if (prop in el.style) {\n var uppercasePropName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n var value = el.style[prop] || getComputedStyle(el).getPropertyValue(uppercasePropName) || '0';\n return unit ? convertPxToUnit(el, value, unit) : value;\n }\n}\n\nfunction getAnimationType(el, prop) {\n if (is.dom(el) && !is.inp(el) && (getAttribute(el, prop) || is.svg(el) && el[prop])) {\n return 'attribute';\n }\n\n if (is.dom(el) && arrayContains(validTransforms, prop)) {\n return 'transform';\n }\n\n if (is.dom(el) && prop !== 'transform' && getCSSValue(el, prop)) {\n return 'css';\n }\n\n if (el[prop] != null) {\n return 'object';\n }\n}\n\nfunction getElementTransforms(el) {\n if (!is.dom(el)) {\n return;\n }\n\n var str = el.style.transform || '';\n var reg = /(\\w+)\\(([^)]*)\\)/g;\n var transforms = new Map();\n var m;\n\n while (m = reg.exec(str)) {\n transforms.set(m[1], m[2]);\n }\n\n return transforms;\n}\n\nfunction getTransformValue(el, propName, animatable, unit) {\n var defaultVal = stringContains(propName, 'scale') ? 1 : 0 + getTransformUnit(propName);\n var value = getElementTransforms(el).get(propName) || defaultVal;\n\n if (animatable) {\n animatable.transforms.list.set(propName, value);\n animatable.transforms['last'] = propName;\n }\n\n return unit ? convertPxToUnit(el, value, unit) : value;\n}\n\nfunction getOriginalTargetValue(target, propName, unit, animatable) {\n switch (getAnimationType(target, propName)) {\n case 'transform':\n return getTransformValue(target, propName, animatable, unit);\n\n case 'css':\n return getCSSValue(target, propName, unit);\n\n case 'attribute':\n return getAttribute(target, propName);\n\n default:\n return target[propName] || 0;\n }\n}\n\nfunction getRelativeValue(to, from) {\n var operator = /^(\\*=|\\+=|-=)/.exec(to);\n\n if (!operator) {\n return to;\n }\n\n var u = getUnit(to) || 0;\n var x = parseFloat(from);\n var y = parseFloat(to.replace(operator[0], ''));\n\n switch (operator[0][0]) {\n case '+':\n return x + y + u;\n\n case '-':\n return x - y + u;\n\n case '*':\n return x * y + u;\n }\n}\n\nfunction validateValue(val, unit) {\n if (is.col(val)) {\n return colorToRgb(val);\n }\n\n if (/\\s/g.test(val)) {\n return val;\n }\n\n var originalUnit = getUnit(val);\n var unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;\n\n if (unit) {\n return unitLess + unit;\n }\n\n return unitLess;\n} // getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes\n// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744\n\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\nfunction getCircleLength(el) {\n return Math.PI * 2 * getAttribute(el, 'r');\n}\n\nfunction getRectLength(el) {\n return getAttribute(el, 'width') * 2 + getAttribute(el, 'height') * 2;\n}\n\nfunction getLineLength(el) {\n return getDistance({\n x: getAttribute(el, 'x1'),\n y: getAttribute(el, 'y1')\n }, {\n x: getAttribute(el, 'x2'),\n y: getAttribute(el, 'y2')\n });\n}\n\nfunction getPolylineLength(el) {\n var points = el.points;\n var totalLength = 0;\n var previousPos;\n\n for (var i = 0; i < points.numberOfItems; i++) {\n var currentPos = points.getItem(i);\n\n if (i > 0) {\n totalLength += getDistance(previousPos, currentPos);\n }\n\n previousPos = currentPos;\n }\n\n return totalLength;\n}\n\nfunction getPolygonLength(el) {\n var points = el.points;\n return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));\n} // Path animation\n\n\nfunction getTotalLength(el) {\n if (el.getTotalLength) {\n return el.getTotalLength();\n }\n\n switch (el.tagName.toLowerCase()) {\n case 'circle':\n return getCircleLength(el);\n\n case 'rect':\n return getRectLength(el);\n\n case 'line':\n return getLineLength(el);\n\n case 'polyline':\n return getPolylineLength(el);\n\n case 'polygon':\n return getPolygonLength(el);\n }\n}\n\nfunction setDashoffset(el) {\n var pathLength = getTotalLength(el);\n el.setAttribute('stroke-dasharray', pathLength);\n return pathLength;\n} // Motion path\n\n\nfunction getParentSvgEl(el) {\n var parentEl = el.parentNode;\n\n while (is.svg(parentEl)) {\n if (!is.svg(parentEl.parentNode)) {\n break;\n }\n\n parentEl = parentEl.parentNode;\n }\n\n return parentEl;\n}\n\nfunction getParentSvg(pathEl, svgData) {\n var svg = svgData || {};\n var parentSvgEl = svg.el || getParentSvgEl(pathEl);\n var rect = parentSvgEl.getBoundingClientRect();\n var viewBoxAttr = getAttribute(parentSvgEl, 'viewBox');\n var width = rect.width;\n var height = rect.height;\n var viewBox = svg.viewBox || (viewBoxAttr ? viewBoxAttr.split(' ') : [0, 0, width, height]);\n return {\n el: parentSvgEl,\n viewBox: viewBox,\n x: viewBox[0] / 1,\n y: viewBox[1] / 1,\n w: width / viewBox[2],\n h: height / viewBox[3]\n };\n}\n\nfunction getPath(path, percent) {\n var pathEl = is.str(path) ? selectString(path)[0] : path;\n var p = percent || 100;\n return function (property) {\n return {\n property: property,\n el: pathEl,\n svg: getParentSvg(pathEl),\n totalLength: getTotalLength(pathEl) * (p / 100)\n };\n };\n}\n\nfunction getPathProgress(path, progress) {\n function point(offset) {\n if (offset === void 0) offset = 0;\n var l = progress + offset >= 1 ? progress + offset : 0;\n return path.el.getPointAtLength(l);\n }\n\n var svg = getParentSvg(path.el, path.svg);\n var p = point();\n var p0 = point(-1);\n var p1 = point(+1);\n\n switch (path.property) {\n case 'x':\n return (p.x - svg.x) * svg.w;\n\n case 'y':\n return (p.y - svg.y) * svg.h;\n\n case 'angle':\n return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;\n }\n} // Decompose value\n\n\nfunction decomposeValue(val, unit) {\n // const rgx = /-?\\d*\\.?\\d+/g; // handles basic numbers\n // const rgx = /[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var rgx = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n\n var value = validateValue(is.pth(val) ? val.totalLength : val, unit) + '';\n return {\n original: value,\n numbers: value.match(rgx) ? value.match(rgx).map(Number) : [0],\n strings: is.str(val) || unit ? value.split(rgx) : []\n };\n} // Animatables\n\n\nfunction parseTargets(targets) {\n var targetsArray = targets ? flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets)) : [];\n return filterArray(targetsArray, function (item, pos, self) {\n return self.indexOf(item) === pos;\n });\n}\n\nfunction getAnimatables(targets) {\n var parsed = parseTargets(targets);\n return parsed.map(function (t, i) {\n return {\n target: t,\n id: i,\n total: parsed.length,\n transforms: {\n list: getElementTransforms(t)\n }\n };\n });\n} // Properties\n\n\nfunction normalizePropertyTweens(prop, tweenSettings) {\n var settings = cloneObject(tweenSettings); // Override duration if easing is a spring\n\n if (/^spring/.test(settings.easing)) {\n settings.duration = spring(settings.easing);\n }\n\n if (is.arr(prop)) {\n var l = prop.length;\n var isFromTo = l === 2 && !is.obj(prop[0]);\n\n if (!isFromTo) {\n // Duration divided by the number of tweens\n if (!is.fnc(tweenSettings.duration)) {\n settings.duration = tweenSettings.duration / l;\n }\n } else {\n // Transform [from, to] values shorthand to a valid tween value\n prop = {\n value: prop\n };\n }\n }\n\n var propArray = is.arr(prop) ? prop : [prop];\n return propArray.map(function (v, i) {\n var obj = is.obj(v) && !is.pth(v) ? v : {\n value: v\n }; // Default delay value should only be applied to the first tween\n\n if (is.und(obj.delay)) {\n obj.delay = !i ? tweenSettings.delay : 0;\n } // Default endDelay value should only be applied to the last tween\n\n\n if (is.und(obj.endDelay)) {\n obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0;\n }\n\n return obj;\n }).map(function (k) {\n return mergeObjects(k, settings);\n });\n}\n\nfunction flattenKeyframes(keyframes) {\n var propertyNames = filterArray(flattenArray(keyframes.map(function (key) {\n return Object.keys(key);\n })), function (p) {\n return is.key(p);\n }).reduce(function (a, b) {\n if (a.indexOf(b) < 0) {\n a.push(b);\n }\n\n return a;\n }, []);\n var properties = {};\n\n var loop = function loop(i) {\n var propName = propertyNames[i];\n properties[propName] = keyframes.map(function (key) {\n var newKey = {};\n\n for (var p in key) {\n if (is.key(p)) {\n if (p == propName) {\n newKey.value = key[p];\n }\n } else {\n newKey[p] = key[p];\n }\n }\n\n return newKey;\n });\n };\n\n for (var i = 0; i < propertyNames.length; i++) {\n loop(i);\n }\n\n return properties;\n}\n\nfunction getProperties(tweenSettings, params) {\n var properties = [];\n var keyframes = params.keyframes;\n\n if (keyframes) {\n params = mergeObjects(flattenKeyframes(keyframes), params);\n }\n\n for (var p in params) {\n if (is.key(p)) {\n properties.push({\n name: p,\n tweens: normalizePropertyTweens(params[p], tweenSettings)\n });\n }\n }\n\n return properties;\n} // Tweens\n\n\nfunction normalizeTweenValues(tween, animatable) {\n var t = {};\n\n for (var p in tween) {\n var value = getFunctionValue(tween[p], animatable);\n\n if (is.arr(value)) {\n value = value.map(function (v) {\n return getFunctionValue(v, animatable);\n });\n\n if (value.length === 1) {\n value = value[0];\n }\n }\n\n t[p] = value;\n }\n\n t.duration = parseFloat(t.duration);\n t.delay = parseFloat(t.delay);\n return t;\n}\n\nfunction normalizeTweens(prop, animatable) {\n var previousTween;\n return prop.tweens.map(function (t) {\n var tween = normalizeTweenValues(t, animatable);\n var tweenValue = tween.value;\n var to = is.arr(tweenValue) ? tweenValue[1] : tweenValue;\n var toUnit = getUnit(to);\n var originalValue = getOriginalTargetValue(animatable.target, prop.name, toUnit, animatable);\n var previousValue = previousTween ? previousTween.to.original : originalValue;\n var from = is.arr(tweenValue) ? tweenValue[0] : previousValue;\n var fromUnit = getUnit(from) || getUnit(originalValue);\n var unit = toUnit || fromUnit;\n\n if (is.und(to)) {\n to = previousValue;\n }\n\n tween.from = decomposeValue(from, unit);\n tween.to = decomposeValue(getRelativeValue(to, from), unit);\n tween.start = previousTween ? previousTween.end : 0;\n tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;\n tween.easing = parseEasings(tween.easing, tween.duration);\n tween.isPath = is.pth(tweenValue);\n tween.isColor = is.col(tween.from.original);\n\n if (tween.isColor) {\n tween.round = 1;\n }\n\n previousTween = tween;\n return tween;\n });\n} // Tween progress\n\n\nvar setProgressValue = {\n css: function css(t, p, v) {\n return t.style[p] = v;\n },\n attribute: function attribute(t, p, v) {\n return t.setAttribute(p, v);\n },\n object: function object(t, p, v) {\n return t[p] = v;\n },\n transform: function transform(t, p, v, transforms, manual) {\n transforms.list.set(p, v);\n\n if (p === transforms.last || manual) {\n var str = '';\n transforms.list.forEach(function (value, prop) {\n str += prop + \"(\" + value + \") \";\n });\n t.style.transform = str;\n }\n }\n}; // Set Value helper\n\nfunction setTargetsValue(targets, properties) {\n var animatables = getAnimatables(targets);\n animatables.forEach(function (animatable) {\n for (var property in properties) {\n var value = getFunctionValue(properties[property], animatable);\n var target = animatable.target;\n var valueUnit = getUnit(value);\n var originalValue = getOriginalTargetValue(target, property, valueUnit, animatable);\n var unit = valueUnit || getUnit(originalValue);\n var to = getRelativeValue(validateValue(value, unit), originalValue);\n var animType = getAnimationType(target, property);\n setProgressValue[animType](target, property, to, animatable.transforms, true);\n }\n });\n} // Animations\n\n\nfunction createAnimation(animatable, prop) {\n var animType = getAnimationType(animatable.target, prop.name);\n\n if (animType) {\n var tweens = normalizeTweens(prop, animatable);\n var lastTween = tweens[tweens.length - 1];\n return {\n type: animType,\n property: prop.name,\n animatable: animatable,\n tweens: tweens,\n duration: lastTween.end,\n delay: tweens[0].delay,\n endDelay: lastTween.endDelay\n };\n }\n}\n\nfunction getAnimations(animatables, properties) {\n return filterArray(flattenArray(animatables.map(function (animatable) {\n return properties.map(function (prop) {\n return createAnimation(animatable, prop);\n });\n })), function (a) {\n return !is.und(a);\n });\n} // Create Instance\n\n\nfunction getInstanceTimings(animations, tweenSettings) {\n var animLength = animations.length;\n\n var getTlOffset = function getTlOffset(anim) {\n return anim.timelineOffset ? anim.timelineOffset : 0;\n };\n\n var timings = {};\n timings.duration = animLength ? Math.max.apply(Math, animations.map(function (anim) {\n return getTlOffset(anim) + anim.duration;\n })) : tweenSettings.duration;\n timings.delay = animLength ? Math.min.apply(Math, animations.map(function (anim) {\n return getTlOffset(anim) + anim.delay;\n })) : tweenSettings.delay;\n timings.endDelay = animLength ? timings.duration - Math.max.apply(Math, animations.map(function (anim) {\n return getTlOffset(anim) + anim.duration - anim.endDelay;\n })) : tweenSettings.endDelay;\n return timings;\n}\n\nvar instanceID = 0;\n\nfunction createNewInstance(params) {\n var instanceSettings = replaceObjectProps(defaultInstanceSettings, params);\n var tweenSettings = replaceObjectProps(defaultTweenSettings, params);\n var properties = getProperties(tweenSettings, params);\n var animatables = getAnimatables(params.targets);\n var animations = getAnimations(animatables, properties);\n var timings = getInstanceTimings(animations, tweenSettings);\n var id = instanceID;\n instanceID++;\n return mergeObjects(instanceSettings, {\n id: id,\n children: [],\n animatables: animatables,\n animations: animations,\n duration: timings.duration,\n delay: timings.delay,\n endDelay: timings.endDelay\n });\n} // Core\n\n\nvar activeInstances = [];\nvar pausedInstances = [];\nvar raf;\n\nvar engine = function () {\n function play() {\n raf = requestAnimationFrame(step);\n }\n\n function step(t) {\n var activeInstancesLength = activeInstances.length;\n\n if (activeInstancesLength) {\n var i = 0;\n\n while (i < activeInstancesLength) {\n var activeInstance = activeInstances[i];\n\n if (!activeInstance.paused) {\n activeInstance.tick(t);\n } else {\n var instanceIndex = activeInstances.indexOf(activeInstance);\n\n if (instanceIndex > -1) {\n activeInstances.splice(instanceIndex, 1);\n activeInstancesLength = activeInstances.length;\n }\n }\n\n i++;\n }\n\n play();\n } else {\n raf = cancelAnimationFrame(raf);\n }\n }\n\n return play;\n}();\n\nfunction handleVisibilityChange() {\n if (document.hidden) {\n activeInstances.forEach(function (ins) {\n return ins.pause();\n });\n pausedInstances = activeInstances.slice(0);\n anime.running = activeInstances = [];\n } else {\n pausedInstances.forEach(function (ins) {\n return ins.play();\n });\n }\n}\n\nif (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n} // Public Instance\n\n\nfunction anime(params) {\n if (params === void 0) params = {};\n var startTime = 0,\n lastTime = 0,\n now = 0;\n var children,\n childrenLength = 0;\n var resolve = null;\n\n function makePromise(instance) {\n var promise = window.Promise && new Promise(function (_resolve) {\n return resolve = _resolve;\n });\n instance.finished = promise;\n return promise;\n }\n\n var instance = createNewInstance(params);\n var promise = makePromise(instance);\n\n function toggleInstanceDirection() {\n var direction = instance.direction;\n\n if (direction !== 'alternate') {\n instance.direction = direction !== 'normal' ? 'normal' : 'reverse';\n }\n\n instance.reversed = !instance.reversed;\n children.forEach(function (child) {\n return child.reversed = instance.reversed;\n });\n }\n\n function adjustTime(time) {\n return instance.reversed ? instance.duration - time : time;\n }\n\n function resetTime() {\n startTime = 0;\n lastTime = adjustTime(instance.currentTime) * (1 / anime.speed);\n }\n\n function seekChild(time, child) {\n if (child) {\n child.seek(time - child.timelineOffset);\n }\n }\n\n function syncInstanceChildren(time) {\n if (!instance.reversePlayback) {\n for (var i = 0; i < childrenLength; i++) {\n seekChild(time, children[i]);\n }\n } else {\n for (var i$1 = childrenLength; i$1--;) {\n seekChild(time, children[i$1]);\n }\n }\n }\n\n function setAnimationsProgress(insTime) {\n var i = 0;\n var animations = instance.animations;\n var animationsLength = animations.length;\n\n while (i < animationsLength) {\n var anim = animations[i];\n var animatable = anim.animatable;\n var tweens = anim.tweens;\n var tweenLength = tweens.length - 1;\n var tween = tweens[tweenLength]; // Only check for keyframes if there is more than one tween\n\n if (tweenLength) {\n tween = filterArray(tweens, function (t) {\n return insTime < t.end;\n })[0] || tween;\n }\n\n var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;\n var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);\n var strings = tween.to.strings;\n var round = tween.round;\n var numbers = [];\n var toNumbersLength = tween.to.numbers.length;\n var progress = void 0;\n\n for (var n = 0; n < toNumbersLength; n++) {\n var value = void 0;\n var toNumber = tween.to.numbers[n];\n var fromNumber = tween.from.numbers[n] || 0;\n\n if (!tween.isPath) {\n value = fromNumber + eased * (toNumber - fromNumber);\n } else {\n value = getPathProgress(tween.value, eased * toNumber);\n }\n\n if (round) {\n if (!(tween.isColor && n > 2)) {\n value = Math.round(value * round) / round;\n }\n }\n\n numbers.push(value);\n } // Manual Array.reduce for better performances\n\n\n var stringsLength = strings.length;\n\n if (!stringsLength) {\n progress = numbers[0];\n } else {\n progress = strings[0];\n\n for (var s = 0; s < stringsLength; s++) {\n var a = strings[s];\n var b = strings[s + 1];\n var n$1 = numbers[s];\n\n if (!isNaN(n$1)) {\n if (!b) {\n progress += n$1 + ' ';\n } else {\n progress += n$1 + b;\n }\n }\n }\n }\n\n setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);\n anim.currentValue = progress;\n i++;\n }\n }\n\n function setCallback(cb) {\n if (instance[cb] && !instance.passThrough) {\n instance[cb](instance);\n }\n }\n\n function countIteration() {\n if (instance.remaining && instance.remaining !== true) {\n instance.remaining--;\n }\n }\n\n function setInstanceProgress(engineTime) {\n var insDuration = instance.duration;\n var insDelay = instance.delay;\n var insEndDelay = insDuration - instance.endDelay;\n var insTime = adjustTime(engineTime);\n instance.progress = minMax(insTime / insDuration * 100, 0, 100);\n instance.reversePlayback = insTime < instance.currentTime;\n\n if (children) {\n syncInstanceChildren(insTime);\n }\n\n if (!instance.began && instance.currentTime > 0) {\n instance.began = true;\n setCallback('begin');\n }\n\n if (!instance.loopBegan && instance.currentTime > 0) {\n instance.loopBegan = true;\n setCallback('loopBegin');\n }\n\n if (insTime <= insDelay && instance.currentTime !== 0) {\n setAnimationsProgress(0);\n }\n\n if (insTime >= insEndDelay && instance.currentTime !== insDuration || !insDuration) {\n setAnimationsProgress(insDuration);\n }\n\n if (insTime > insDelay && insTime < insEndDelay) {\n if (!instance.changeBegan) {\n instance.changeBegan = true;\n instance.changeCompleted = false;\n setCallback('changeBegin');\n }\n\n setCallback('change');\n setAnimationsProgress(insTime);\n } else {\n if (instance.changeBegan) {\n instance.changeCompleted = true;\n instance.changeBegan = false;\n setCallback('changeComplete');\n }\n }\n\n instance.currentTime = minMax(insTime, 0, insDuration);\n\n if (instance.began) {\n setCallback('update');\n }\n\n if (engineTime >= insDuration) {\n lastTime = 0;\n countIteration();\n\n if (!instance.remaining) {\n instance.paused = true;\n\n if (!instance.completed) {\n instance.completed = true;\n setCallback('loopComplete');\n setCallback('complete');\n\n if (!instance.passThrough && 'Promise' in window) {\n resolve();\n promise = makePromise(instance);\n }\n }\n } else {\n startTime = now;\n setCallback('loopComplete');\n instance.loopBegan = false;\n\n if (instance.direction === 'alternate') {\n toggleInstanceDirection();\n }\n }\n }\n }\n\n instance.reset = function () {\n var direction = instance.direction;\n instance.passThrough = false;\n instance.currentTime = 0;\n instance.progress = 0;\n instance.paused = true;\n instance.began = false;\n instance.loopBegan = false;\n instance.changeBegan = false;\n instance.completed = false;\n instance.changeCompleted = false;\n instance.reversePlayback = false;\n instance.reversed = direction === 'reverse';\n instance.remaining = instance.loop;\n children = instance.children;\n childrenLength = children.length;\n\n for (var i = childrenLength; i--;) {\n instance.children[i].reset();\n }\n\n if (instance.reversed && instance.loop !== true || direction === 'alternate' && instance.loop === 1) {\n instance.remaining++;\n }\n\n setAnimationsProgress(instance.reversed ? instance.duration : 0);\n }; // Set Value helper\n\n\n instance.set = function (targets, properties) {\n setTargetsValue(targets, properties);\n return instance;\n };\n\n instance.tick = function (t) {\n now = t;\n\n if (!startTime) {\n startTime = now;\n }\n\n setInstanceProgress((now + (lastTime - startTime)) * anime.speed);\n };\n\n instance.seek = function (time) {\n setInstanceProgress(adjustTime(time));\n };\n\n instance.pause = function () {\n instance.paused = true;\n resetTime();\n };\n\n instance.play = function () {\n if (!instance.paused) {\n return;\n }\n\n if (instance.completed) {\n instance.reset();\n }\n\n instance.paused = false;\n activeInstances.push(instance);\n resetTime();\n\n if (!raf) {\n engine();\n }\n };\n\n instance.reverse = function () {\n toggleInstanceDirection();\n resetTime();\n };\n\n instance.restart = function () {\n instance.reset();\n instance.play();\n };\n\n instance.reset();\n\n if (instance.autoplay) {\n instance.play();\n }\n\n return instance;\n} // Remove targets from animation\n\n\nfunction removeTargetsFromAnimations(targetsArray, animations) {\n for (var a = animations.length; a--;) {\n if (arrayContains(targetsArray, animations[a].animatable.target)) {\n animations.splice(a, 1);\n }\n }\n}\n\nfunction removeTargets(targets) {\n var targetsArray = parseTargets(targets);\n\n for (var i = activeInstances.length; i--;) {\n var instance = activeInstances[i];\n var animations = instance.animations;\n var children = instance.children;\n removeTargetsFromAnimations(targetsArray, animations);\n\n for (var c = children.length; c--;) {\n var child = children[c];\n var childAnimations = child.animations;\n removeTargetsFromAnimations(targetsArray, childAnimations);\n\n if (!childAnimations.length && !child.children.length) {\n children.splice(c, 1);\n }\n }\n\n if (!animations.length && !children.length) {\n instance.pause();\n }\n }\n} // Stagger helpers\n\n\nfunction stagger(val, params) {\n if (params === void 0) params = {};\n var direction = params.direction || 'normal';\n var easing = params.easing ? parseEasings(params.easing) : null;\n var grid = params.grid;\n var axis = params.axis;\n var fromIndex = params.from || 0;\n var fromFirst = fromIndex === 'first';\n var fromCenter = fromIndex === 'center';\n var fromLast = fromIndex === 'last';\n var isRange = is.arr(val);\n var val1 = isRange ? parseFloat(val[0]) : parseFloat(val);\n var val2 = isRange ? parseFloat(val[1]) : 0;\n var unit = getUnit(isRange ? val[1] : val) || 0;\n var start = params.start || 0 + (isRange ? val1 : 0);\n var values = [];\n var maxValue = 0;\n return function (el, i, t) {\n if (fromFirst) {\n fromIndex = 0;\n }\n\n if (fromCenter) {\n fromIndex = (t - 1) / 2;\n }\n\n if (fromLast) {\n fromIndex = t - 1;\n }\n\n if (!values.length) {\n for (var index = 0; index < t; index++) {\n if (!grid) {\n values.push(Math.abs(fromIndex - index));\n } else {\n var fromX = !fromCenter ? fromIndex % grid[0] : (grid[0] - 1) / 2;\n var fromY = !fromCenter ? Math.floor(fromIndex / grid[0]) : (grid[1] - 1) / 2;\n var toX = index % grid[0];\n var toY = Math.floor(index / grid[0]);\n var distanceX = fromX - toX;\n var distanceY = fromY - toY;\n var value = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\n\n if (axis === 'x') {\n value = -distanceX;\n }\n\n if (axis === 'y') {\n value = -distanceY;\n }\n\n values.push(value);\n }\n\n maxValue = Math.max.apply(Math, values);\n }\n\n if (easing) {\n values = values.map(function (val) {\n return easing(val / maxValue) * maxValue;\n });\n }\n\n if (direction === 'reverse') {\n values = values.map(function (val) {\n return axis ? val < 0 ? val * -1 : -val : Math.abs(maxValue - val);\n });\n }\n }\n\n var spacing = isRange ? (val2 - val1) / maxValue : val1;\n return start + spacing * (Math.round(values[i] * 100) / 100) + unit;\n };\n} // Timeline\n\n\nfunction timeline(params) {\n if (params === void 0) params = {};\n var tl = anime(params);\n tl.duration = 0;\n\n tl.add = function (instanceParams, timelineOffset) {\n var tlIndex = activeInstances.indexOf(tl);\n var children = tl.children;\n\n if (tlIndex > -1) {\n activeInstances.splice(tlIndex, 1);\n }\n\n function passThrough(ins) {\n ins.passThrough = true;\n }\n\n for (var i = 0; i < children.length; i++) {\n passThrough(children[i]);\n }\n\n var insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));\n insParams.targets = insParams.targets || params.targets;\n var tlDuration = tl.duration;\n insParams.autoplay = false;\n insParams.direction = tl.direction;\n insParams.timelineOffset = is.und(timelineOffset) ? tlDuration : getRelativeValue(timelineOffset, tlDuration);\n passThrough(tl);\n tl.seek(insParams.timelineOffset);\n var ins = anime(insParams);\n passThrough(ins);\n children.push(ins);\n var timings = getInstanceTimings(children, params);\n tl.delay = timings.delay;\n tl.endDelay = timings.endDelay;\n tl.duration = timings.duration;\n tl.seek(0);\n tl.reset();\n\n if (tl.autoplay) {\n tl.play();\n }\n\n return tl;\n };\n\n return tl;\n}\n\nanime.version = '3.1.0';\nanime.speed = 1;\nanime.running = activeInstances;\nanime.remove = removeTargets;\nanime.get = getOriginalTargetValue;\nanime.set = setTargetsValue;\nanime.convertPx = convertPxToUnit;\nanime.path = getPath;\nanime.setDashoffset = setDashoffset;\nanime.stagger = stagger;\nanime.timeline = timeline;\nanime.easing = parseEasings;\nanime.penner = penner;\n\nanime.random = function (min, max) {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\n\nexport default anime;","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport anime from 'animejs/lib/anime.es'\n\nexport const SkillSection = ({ children }) => (\n <div className='skill-section'>\n {children}\n </div>\n)\n\n\nexport default class SkillDonut extends Component {\n static propTypes = {\n percentage: PropTypes.number.isRequired,\n color: PropTypes.string.isRequired,\n radius: PropTypes.number,\n strokeWidth: PropTypes.number\n }\n\n static defaultProps = {\n radius: 70,\n strokeWidth: 30\n }\n\n constructor(props) {\n super(props)\n this.state = {\n animated: false,\n dash: 2 * Math.PI * props.radius\n }\n }\n\n componentDidMount() {\n const [percent, initialDash] = [this.props.percentage, this.state.dash]\n const rate = 100 - percent\n const dash = rate / 100 * initialDash\n\n anime.timeline({\n easing: 'easeOutCubic',\n delay: 500,\n duration: 1000\n })\n .add({\n targets: this.refs.skillCircle,\n strokeDashoffset: [initialDash, dash],\n round: 1\n }, 0)\n .add({\n targets: this.refs.skillPercentage,\n textContent: ['0%', `${percent}%`],\n round: 1\n }, 0)\n }\n\n render() {\n const { radius, children, color, strokeWidth } = this.props\n const size = radius * 3\n const dashArray = 2 * Math.PI * radius\n\n return (\n <div className=\"skill\">\n <svg className=\"skill__container\" width={size} height={size} >\n <g className=\"skill__donut\">\n <circle\n className='bgCircle'\n strokeWidth={strokeWidth}\n r={radius}\n />\n <circle\n className='fgCircle'\n ref='skillCircle'\n stroke={color}\n strokeWidth={strokeWidth}\n strokeDasharray={dashArray}\n strokeDashoffset={this.state.dash}\n r={radius}\n />\n </g>\n </svg>\n <h2 className=\"skill__text\">\n {children}\n <span className='skill__percent' ref='skillPercentage'>0</span>\n </h2>\n </div>\n )\n }\n}\n","import React from 'react'\nimport { Title, SubTitle, Paragraph, TextImage, PageMain, PageLink } from '../components/PageElements'\nimport { FaEnvelope, FaPalette, FaFileAlt } from 'react-icons/fa'\nimport SkillDonut, { SkillSection } from '../components/SkillDonut';\n\n\nconst About = () => (\n <PageMain>\n <Title>About Me</Title>\n <SubTitle>And what I do</SubTitle>\n <Paragraph>\n Hello! My name is Victor Feitosa and I'm a Web Developer currently focusing in Front End Development, UI and UX. I love learning new technologies,\n creating things, gaming, drawing and painting and many, many other things.\n </Paragraph>\n\n <SubTitle>My Skills</SubTitle>\n <Paragraph>\n Since 2012 I work as a Web Developer, I'm a Bachelor in Digital Systems and Media, graduated since 2015, and post graduated in Information Security\n in 2018. I've always worked with different technologies and areas such as game development, mobile, web and embedded systems. Here's a few of the\n tech I adopt:\n </Paragraph>\n <SkillSection>\n <SkillDonut color='#61DAFB' percentage={75}>React</SkillDonut>\n <SkillDonut color='#41b883' percentage={70}>Vue</SkillDonut>\n <SkillDonut color='#F1DB51' percentage={85}>ES6+</SkillDonut>\n <SkillDonut color='#CE679A' percentage={90}>SASS</SkillDonut>\n </SkillSection>\n <Paragraph>\n Currently, I work as a full time web developer, with focus in Front End and UI/UX design, still doing some backend work here and there, but mostly\n desining pages, apps and systems from the ground up with a great team of developers at Intrapoint. We power one of Norways bigest Oil companies and\n manage a huge system with a great range of modules for crisis management and subsystems such as ERPs and CRMs. We also do some contract work for\n companies looking for great solutions with a full featured backend.\n </Paragraph>\n\n <SubTitle>My Projects</SubTitle>\n <Paragraph>\n Besides my work for companies, I have several finished and ongoing projects, check my\n <PageLink to='/portfolio' icon={FaPalette} iconPosition='after'>Portfolio</PageLink> page!\n </Paragraph>\n\n <SubTitle>Contact me!</SubTitle>\n <Paragraph>\n I'm available! Please take a look at my networks and other links, there's always new things on Behance and Github! Contact me (Skype & Email)\n at <PageLink to='mailto:[email protected]' icon={FaEnvelope} iconPosition='after'>[email protected]</PageLink>. Also\n take a look at my <PageLink to='/cv' icon={FaFileAlt} iconPosition='after'>CV</PageLink>!\n </Paragraph>\n <TextImage />\n </PageMain>\n)\n\nexport default About\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","import React from 'react'\nimport PropTypes from 'prop-types'\n\n\nexport const PageMain = ({children}) => (\n <main className='page-main'>\n {children}\n </main>\n)\n\nexport const PageSection = ({children}) => (\n <section className='page-section'>\n {children}\n </section>\n)\n\nexport const PageSectionContainer = ({width='full', children}) => {\n const className = `page-section__container page-section__container--${width}`\n return <div className={className}>{children}</div>\n}\n\nPageSection.propTypes = {\n width: PropTypes.oneOf(['full', 'half', 'third'])\n}\n\nexport const Title = ({children, icon: Icon=null}) => (\n <div className='title'>\n {Icon} <h2 className='title__text'>{children}</h2>\n </div>\n)\n\nexport const SubTitle = ({children}) => (\n <h3 className='subtitle'>{children}</h3>\n)\n\nexport const PageLink = ({to, icon: Icon, iconPosition='before', children}) => {\n const iconBefore = Icon && iconPosition==='before'\n const iconAfter = Icon && iconPosition==='after'\n const iconClass = 'page-link__icon'\n return (\n <span className='page-link'>\n {iconBefore && <Icon className={iconClass} />}\n <a href={to} className='page-link__anchor'>{children}</a>\n {iconAfter && <Icon className={iconClass} />}\n </span>\n )\n}\n\nexport const Pre = () => (\n <>\n \n </>\n)\n\nexport const Paragraph = ({children}) => (\n <p className='paragraph'><Pre />{children}</p>\n)\n\nexport const TextBlock = ({children}) => (\n <div className='text-block'>\n {children}\n </div>\n)\n\nexport const TextImage = ({src, srcSet, responsive=true, alt}) => (\n <img alt={alt} src={src} srcSet={srcSet} className={'text-image' + (responsive ? ' text-image--responsive' : '')} />\n)\n\nexport const FeatureImage = ({src, srcSet, responsive=true, alt}) => (\n <img alt={alt} src={src} srcSet={srcSet} className={'feat-image' + (responsive ? ' feat-image--responsive' : '')} />\n)\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n"],"sourceRoot":""}