{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/auth.js","webpack:///./node_modules/particles.js/particles.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","jsonUri","window","btoa","JSON","stringify","particlesJS","load","pJS","tag_id","params","canvas_el","document","querySelector","this","canvas","el","w","offsetWidth","h","offsetHeight","particles","number","density","enable","value_area","color","shape","type","stroke","width","polygon","nb_sides","image","src","height","opacity","random","anim","speed","opacity_min","sync","size","size_min","line_linked","distance","move","direction","straight","out_mode","bounce","attract","rotateX","rotateY","array","interactivity","detect_on","events","onhover","onclick","resize","modes","grab","bubble","duration","repulse","push","particles_nb","remove","mouse","retina_detect","fn","interact","vendors","tmp","deepExtend","obj","size_value","size_anim_speed","move_speed","line_linked_distance","line_linked_width","mode_grab_distance","mode_bubble_distance","mode_bubble_size","mode_repulse_distance","retinaInit","devicePixelRatio","pxratio","retina","canvasInit","ctx","getContext","canvasSize","addEventListener","particlesEmpty","particlesCreate","particlesDraw","densityAutoParticles","canvasPaint","fillRect","canvasClear","clearRect","particle","position","radius","Math","size_status","vs","x","y","checkOverlap","Array","color_selected","floor","length","rgb","hexToRgb","undefined","g","b","hsl","opacity_status","vo","velbase","vx","vy","vx_i","vy_i","shape_type","shape_selected","sh","img","ratio","img_type","source_svg","createSvgImg","pushing","loaded","draw","radius_bubble","opacity_bubble","color_value","fillStyle","beginPath","arc","PI","rect","drawShape","img_obj","drawImage","closePath","strokeStyle","lineWidth","fill","particlesUpdate","ms","new_pos","x_left","x_right","y_top","y_bottom","isInArray","grabParticle","bubbleParticle","repulseParticle","j","p2","linkParticles","attractParticles","bounceParticles","particlesRefresh","cancelRequestAnimFrame","checkAnimFrame","drawAnimFrame","count_svg","start","p1","dx","dy","dist","sqrt","opacity_line","color_line","color_rgb_line","moveTo","lineTo","ax","ay","pushParticles","nb","pos","pos_x","pos_y","removeParticles","splice","dx_mouse","dy_mouse","dist_mouse","init","status","dif","bubble_clicking","click_pos_x","click_pos_y","time_spent","Date","getTime","click_time","bubble_duration_end","process","bubble_param","particles_param","p_obj_bubble","p_obj","id","normVec","repulseRadius","repulseFactor","pow","min","max","repulse_finish","repulse_count","repulse_clicking","force","f","atan2","cos","sin","eventsListeners","e","clientX","clientY","offsetX","offsetY","setTimeout","area","nb_particles","missing_particles","abs","coloredSvgXml","replace","svg","Blob","DOMURL","URL","webkitURL","url","createObjectURL","Image","revokeObjectURL","destroypJS","cancelAnimationFrame","pJSDom","startX","startY","sideLength","sideCountNumerator","sideCountDenominator","sideCount","decimalSides","interiorAngleDegrees","interiorAngle","save","translate","rotate","restore","exportImg","open","toDataURL","loadImg","img_error","xhr","XMLHttpRequest","onreadystatechange","data","readyState","currentTarget","response","checkBeforeDraw","console","log","send","requestAnimFrame","check","substr","hex","result","exec","parseInt","indexOf","destination","source","constructor","arguments","callee","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","callback","webkitCancelRequestAnimationFrame","mozCancelRequestAnimationFrame","oCancelRequestAnimationFrame","msCancelRequestAnimationFrame","clearTimeout","pJS_tag","getElementById","exist_canvas","getElementsByClassName","removeChild","createElement","className","style","appendChild","path_config_json","parse"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,UAIjBlC,EAAoBA,EAAoBmC,EAAI,K,mCClFrD,kBA+GIC,EAAU,0BAA0BC,OAAOC,KAAKC,KAAKC,UA9G1C,CACX,UAAa,CACT,OAAU,CACN,MAAS,GACT,QAAW,CACP,QAAU,EACV,WAAc,MAGtB,MAAS,CACL,MAAS,WAEb,MAAS,CACL,KAAQ,SACR,OAAU,CACN,MAAS,EACT,MAAS,WAEb,QAAW,CACP,SAAY,GAEhB,MAAS,CACL,IAAO,iBACP,MAAS,IACT,OAAU,MAGlB,QAAW,CACP,MAAS,GACT,QAAU,EACV,KAAQ,CACJ,QAAU,EACV,MAAS,EACT,YAAe,GACf,MAAQ,IAGhB,KAAQ,CACJ,MAAS,kBACT,QAAU,EACV,KAAQ,CACJ,QAAU,EACV,MAAS,GACT,SAAY,GACZ,MAAQ,IAGhB,YAAe,CACX,QAAU,EACV,SAAY,IACZ,MAAS,UACT,QAAW,GACX,MAAS,GAEb,KAAQ,CACJ,QAAU,EACV,MAAS,EACT,UAAa,OACb,QAAU,EACV,UAAY,EACZ,SAAY,MACZ,QAAU,EACV,QAAW,CACP,QAAU,EACV,QAAW,IACX,QAAW,QAIvB,cAAiB,CACb,UAAa,SACb,OAAU,CACN,QAAW,CACP,QAAU,EACV,KAAQ,WAEZ,QAAW,CACP,QAAU,EACV,KAAQ,QAEZ,QAAU,GAEd,MAAS,CACL,KAAQ,CACJ,SAAY,IACZ,YAAe,CACX,QAAW,IAGnB,OAAU,CACN,SAAY,IACZ,KAAQ,GACR,SAAY,EACZ,QAAW,EACX,MAAS,GAEb,QAAW,CACP,SAAY,IACZ,SAAY,IAEhB,KAAQ,CACJ,aAAgB,GAEpB,OAAU,CACN,aAAgB,KAI5B,eAAiB,KAIrBC,YAAYC,KAAK,eAAgBN,GAAS,gB,kBCxG1C,IAAIO,EAAM,SAAUC,EAAQC,GAC1B,IAAIC,EAAYC,SAASC,cAAc,IAAMJ,EAAS,8BAGtDK,KAAKN,IAAM,CACTO,OAAQ,CACNC,GAAIL,EACJM,EAAGN,EAAUO,YACbC,EAAGR,EAAUS,cAEfC,UAAW,CACTC,OAAQ,CACNpC,MAAO,IACPqC,QAAS,CACPC,QAAQ,EACRC,WAAY,MAGhBC,MAAO,CACLxC,MAAO,QAETyC,MAAO,CACLC,KAAM,SACNC,OAAQ,CACNC,MAAO,EACPJ,MAAO,WAETK,QAAS,CACPC,SAAU,GAEZC,MAAO,CACLC,IAAK,GACLJ,MAAO,IACPK,OAAQ,MAGZC,QAAS,CACPlD,MAAO,EACPmD,QAAQ,EACRC,KAAM,CACJd,QAAQ,EACRe,MAAO,EACPC,YAAa,EACbC,MAAM,IAGVC,KAAM,CACJxD,MAAO,GACPmD,QAAQ,EACRC,KAAM,CACJd,QAAQ,EACRe,MAAO,GACPI,SAAU,EACVF,MAAM,IAGVG,YAAa,CACXpB,QAAQ,EACRqB,SAAU,IACVnB,MAAO,OACPU,QAAS,EACTN,MAAO,GAETgB,KAAM,CACJtB,QAAQ,EACRe,MAAO,EACPQ,UAAW,OACXV,QAAQ,EACRW,UAAU,EACVC,SAAU,MACVC,QAAQ,EACRC,QAAS,CACP3B,QAAQ,EACR4B,QAAS,IACTC,QAAS,MAGbC,MAAO,IAETC,cAAe,CACbC,UAAW,SACXC,OAAQ,CACNC,QAAS,CACPlC,QAAQ,EACRpC,KAAM,QAERuE,QAAS,CACPnC,QAAQ,EACRpC,KAAM,QAERwE,QAAQ,GAEVC,MAAO,CACLC,KAAM,CACJjB,SAAU,IACVD,YAAa,CACXR,QAAS,IAGb2B,OAAQ,CACNlB,SAAU,IACVH,KAAM,GACNsB,SAAU,IAEZC,QAAS,CACPpB,SAAU,IACVmB,SAAU,IAEZE,KAAM,CACJC,aAAc,GAEhBC,OAAQ,CACND,aAAc,IAGlBE,MAAO,IAETC,eAAe,EACfC,GAAI,CACFC,SAAU,GACVX,MAAO,GACPY,QAAS,IAEXC,IAAK,IAEP,IAAIlE,EAAMM,KAAKN,IAGXE,GACF/B,OAAOgG,WAAWnE,EAAKE,GAEzBF,EAAIkE,IAAIE,IAAM,CACZC,WAAYrE,EAAIa,UAAUqB,KAAKxD,MAC/B4F,gBAAiBtE,EAAIa,UAAUqB,KAAKJ,KAAKC,MACzCwC,WAAYvE,EAAIa,UAAUyB,KAAKP,MAC/ByC,qBAAsBxE,EAAIa,UAAUuB,YAAYC,SAChDoC,kBAAmBzE,EAAIa,UAAUuB,YAAYd,MAC7CoD,mBAAoB1E,EAAI+C,cAAcM,MAAMC,KAAKjB,SACjDsC,qBAAsB3E,EAAI+C,cAAcM,MAAME,OAAOlB,SACrDuC,iBAAkB5E,EAAI+C,cAAcM,MAAME,OAAOrB,KACjD2C,sBAAuB7E,EAAI+C,cAAcM,MAAMI,QAAQpB,UAEzDrC,EAAI+D,GAAGe,WAAa,WACd9E,EAAI8D,eAAiBpE,OAAOqF,iBAAmB,GACjD/E,EAAIO,OAAOyE,QAAUtF,OAAOqF,iBAC5B/E,EAAIkE,IAAIe,QAAS,IAEjBjF,EAAIO,OAAOyE,QAAU,EACrBhF,EAAIkE,IAAIe,QAAS,GAEnBjF,EAAIO,OAAOE,EAAIT,EAAIO,OAAOC,GAAGE,YAAcV,EAAIO,OAAOyE,QACtDhF,EAAIO,OAAOI,EAAIX,EAAIO,OAAOC,GAAGI,aAAeZ,EAAIO,OAAOyE,QACvDhF,EAAIa,UAAUqB,KAAKxD,MAAQsB,EAAIkE,IAAIE,IAAIC,WAAarE,EAAIO,OAAOyE,QAC/DhF,EAAIa,UAAUqB,KAAKJ,KAAKC,MAAQ/B,EAAIkE,IAAIE,IAAIE,gBAAkBtE,EAAIO,OAAOyE,QACzEhF,EAAIa,UAAUyB,KAAKP,MAAQ/B,EAAIkE,IAAIE,IAAIG,WAAavE,EAAIO,OAAOyE,QAC/DhF,EAAIa,UAAUuB,YAAYC,SAAWrC,EAAIkE,IAAIE,IAAII,qBAAuBxE,EAAIO,OAAOyE,QACnFhF,EAAI+C,cAAcM,MAAMC,KAAKjB,SAAWrC,EAAIkE,IAAIE,IAAIM,mBAAqB1E,EAAIO,OAAOyE,QACpFhF,EAAI+C,cAAcM,MAAME,OAAOlB,SAAWrC,EAAIkE,IAAIE,IAAIO,qBAAuB3E,EAAIO,OAAOyE,QACxFhF,EAAIa,UAAUuB,YAAYd,MAAQtB,EAAIkE,IAAIE,IAAIK,kBAAoBzE,EAAIO,OAAOyE,QAC7EhF,EAAI+C,cAAcM,MAAME,OAAOrB,KAAOlC,EAAIkE,IAAIE,IAAIQ,iBAAmB5E,EAAIO,OAAOyE,QAChFhF,EAAI+C,cAAcM,MAAMI,QAAQpB,SAAWrC,EAAIkE,IAAIE,IAAIS,sBAAwB7E,EAAIO,OAAOyE,SAK5FhF,EAAI+D,GAAGmB,WAAa,WAClBlF,EAAIO,OAAO4E,IAAMnF,EAAIO,OAAOC,GAAG4E,WAAW,OAE5CpF,EAAI+D,GAAGsB,WAAa,WAClBrF,EAAIO,OAAOC,GAAGc,MAAQtB,EAAIO,OAAOE,EACjCT,EAAIO,OAAOC,GAAGmB,OAAS3B,EAAIO,OAAOI,EAC9BX,GAAOA,EAAI+C,cAAcE,OAAOG,QAClC1D,OAAO4F,iBAAiB,UAAU,WAChCtF,EAAIO,OAAOE,EAAIT,EAAIO,OAAOC,GAAGE,YAC7BV,EAAIO,OAAOI,EAAIX,EAAIO,OAAOC,GAAGI,aAGzBZ,EAAIkE,IAAIe,SACVjF,EAAIO,OAAOE,GAAKT,EAAIO,OAAOyE,QAC3BhF,EAAIO,OAAOI,GAAKX,EAAIO,OAAOyE,SAE7BhF,EAAIO,OAAOC,GAAGc,MAAQtB,EAAIO,OAAOE,EACjCT,EAAIO,OAAOC,GAAGmB,OAAS3B,EAAIO,OAAOI,EAG7BX,EAAIa,UAAUyB,KAAKtB,SACtBhB,EAAI+D,GAAGwB,iBACPvF,EAAI+D,GAAGyB,kBACPxF,EAAI+D,GAAG0B,gBACPzF,EAAI+D,GAAGE,QAAQyB,wBAIjB1F,EAAI+D,GAAGE,QAAQyB,2BAIrB1F,EAAI+D,GAAG4B,YAAc,WACnB3F,EAAIO,OAAO4E,IAAIS,SAAS,EAAG,EAAG5F,EAAIO,OAAOE,EAAGT,EAAIO,OAAOI,IAEzDX,EAAI+D,GAAG8B,YAAc,WACnB7F,EAAIO,OAAO4E,IAAIW,UAAU,EAAG,EAAG9F,EAAIO,OAAOE,EAAGT,EAAIO,OAAOI,IAK1DX,EAAI+D,GAAGgC,SAAW,SAAU7E,EAAOU,EAASoE,GA0B1C,GAxBA1F,KAAK2F,QAAUjG,EAAIa,UAAUqB,KAAKL,OAASqE,KAAKrE,SAAW,GAAK7B,EAAIa,UAAUqB,KAAKxD,MAC/EsB,EAAIa,UAAUqB,KAAKJ,KAAKd,SAC1BV,KAAK6F,aAAc,EACnB7F,KAAK8F,GAAKpG,EAAIa,UAAUqB,KAAKJ,KAAKC,MAAQ,IACrC/B,EAAIa,UAAUqB,KAAKJ,KAAKG,OAC3B3B,KAAK8F,GAAK9F,KAAK8F,GAAKF,KAAKrE,WAK7BvB,KAAK+F,EAAIL,EAAWA,EAASK,EAAIH,KAAKrE,SAAW7B,EAAIO,OAAOE,EAC5DH,KAAKgG,EAAIN,EAAWA,EAASM,EAAIJ,KAAKrE,SAAW7B,EAAIO,OAAOI,EAGxDL,KAAK+F,EAAIrG,EAAIO,OAAOE,EAAkB,EAAdH,KAAK2F,OAAY3F,KAAK+F,EAAI/F,KAAK+F,EAAI/F,KAAK2F,OAAgB3F,KAAK+F,EAAkB,EAAd/F,KAAK2F,SAAY3F,KAAK+F,EAAI/F,KAAK+F,EAAI/F,KAAK2F,QACjI3F,KAAKgG,EAAItG,EAAIO,OAAOI,EAAkB,EAAdL,KAAK2F,OAAY3F,KAAKgG,EAAIhG,KAAKgG,EAAIhG,KAAK2F,OAAgB3F,KAAKgG,EAAkB,EAAdhG,KAAK2F,SAAY3F,KAAKgG,EAAIhG,KAAKgG,EAAIhG,KAAK2F,QAGjIjG,EAAIa,UAAUyB,KAAKI,QACrB1C,EAAI+D,GAAGE,QAAQsC,aAAajG,KAAM0F,GAIpC1F,KAAKY,MAAQ,GACa,iBAAfA,EAAMxC,MACf,GAAIwC,EAAMxC,iBAAiB8H,MAAO,CAChC,IAAIC,EAAiBvF,EAAMxC,MAAMwH,KAAKQ,MAAMR,KAAKrE,SAAW7B,EAAIa,UAAUK,MAAMxC,MAAMiI,SACtFrG,KAAKY,MAAM0F,IAAMC,EAASJ,aAELK,GAAjB5F,EAAMxC,MAAMH,QAAmCuI,GAAjB5F,EAAMxC,MAAMqI,QAAmCD,GAAjB5F,EAAMxC,MAAMsI,IAC1E1G,KAAKY,MAAM0F,IAAM,CACfrI,EAAG2C,EAAMxC,MAAMH,EACfwI,EAAG7F,EAAMxC,MAAMqI,EACfC,EAAG9F,EAAMxC,MAAMsI,SAGEF,GAAjB5F,EAAMxC,MAAMiC,QAAmCmG,GAAjB5F,EAAMxC,MAAMc,QAAmCsH,GAAjB5F,EAAMxC,MAAMhB,IAC1E4C,KAAKY,MAAM+F,IAAM,CACftG,EAAGO,EAAMxC,MAAMiC,EACfnB,EAAG0B,EAAMxC,MAAMc,EACf9B,EAAGwD,EAAMxC,MAAMhB,QAIG,UAAfwD,EAAMxC,MACf4B,KAAKY,MAAM0F,IAAM,CACfrI,EAAG2H,KAAKQ,MAAsB,IAAhBR,KAAKrE,UAA4B,EAC/CkF,EAAGb,KAAKQ,MAAsB,IAAhBR,KAAKrE,UAA4B,EAC/CmF,EAAGd,KAAKQ,MAAsB,IAAhBR,KAAKrE,UAA4B,GAElB,iBAAfX,EAAMxC,QACtB4B,KAAKY,MAAQA,EACbZ,KAAKY,MAAM0F,IAAMC,EAASvG,KAAKY,MAAMxC,QAIvC4B,KAAKsB,SAAW5B,EAAIa,UAAUe,QAAQC,OAASqE,KAAKrE,SAAW,GAAK7B,EAAIa,UAAUe,QAAQlD,MACtFsB,EAAIa,UAAUe,QAAQE,KAAKd,SAC7BV,KAAK4G,gBAAiB,EACtB5G,KAAK6G,GAAKnH,EAAIa,UAAUe,QAAQE,KAAKC,MAAQ,IACxC/B,EAAIa,UAAUe,QAAQE,KAAKG,OAC9B3B,KAAK6G,GAAK7G,KAAK6G,GAAKjB,KAAKrE,WAK7B,IAAIuF,EAAU,GACd,OAAQpH,EAAIa,UAAUyB,KAAKC,WACzB,IAAK,MACH6E,EAAU,CACRf,EAAG,EACHC,GAAI,GAEN,MACF,IAAK,YACHc,EAAU,CACRf,EAAG,GACHC,GAAI,IAEN,MACF,IAAK,QACHc,EAAU,CACRf,EAAG,EACHC,GAAI,GAEN,MACF,IAAK,eACHc,EAAU,CACRf,EAAG,GACHC,EAAG,IAEL,MACF,IAAK,SACHc,EAAU,CACRf,EAAG,EACHC,EAAG,GAEL,MACF,IAAK,cACHc,EAAU,CACRf,GAAI,GACJC,EAAG,GAEL,MACF,IAAK,OACHc,EAAU,CACRf,GAAI,EACJC,EAAG,GAEL,MACF,IAAK,WACHc,EAAU,CACRf,GAAI,GACJC,GAAI,IAEN,MACF,QACEc,EAAU,CACRf,EAAG,EACHC,EAAG,GAILtG,EAAIa,UAAUyB,KAAKE,UACrBlC,KAAK+G,GAAKD,EAAQf,EAClB/F,KAAKgH,GAAKF,EAAQd,EACdtG,EAAIa,UAAUyB,KAAKT,SACrBvB,KAAK+G,GAAK/G,KAAK+G,GAAKnB,KAAKrE,SACzBvB,KAAKgH,GAAKhH,KAAKgH,GAAKpB,KAAKrE,YAG3BvB,KAAK+G,GAAKD,EAAQf,EAAIH,KAAKrE,SAAW,GACtCvB,KAAKgH,GAAKF,EAAQd,EAAIJ,KAAKrE,SAAW,IAOxCvB,KAAKiH,KAAOjH,KAAK+G,GACjB/G,KAAKkH,KAAOlH,KAAKgH,GAIjB,IAAIG,EAAazH,EAAIa,UAAUM,MAAMC,KACrC,GAAyB,iBAAdqG,GACT,GAAIA,aAAsBjB,MAAO,CAC/B,IAAIkB,EAAiBD,EAAWvB,KAAKQ,MAAMR,KAAKrE,SAAW4F,EAAWd,SACtErG,KAAKa,MAAQuG,QAGfpH,KAAKa,MAAQsG,EAEf,GAAkB,SAAdnH,KAAKa,MAAkB,CACzB,IAAIwG,EAAK3H,EAAIa,UAAUM,MACvBb,KAAKsH,IAAM,CACTlG,IAAKiG,EAAGlG,MAAMC,IACdmG,MAAOF,EAAGlG,MAAMH,MAAQqG,EAAGlG,MAAME,QAE9BrB,KAAKsH,IAAIC,QAAOvH,KAAKsH,IAAIC,MAAQ,GACd,OAApB7H,EAAIkE,IAAI4D,eAA2ChB,GAAtB9G,EAAIkE,IAAI6D,aACvC/H,EAAI+D,GAAGE,QAAQ+D,aAAa1H,MACxBN,EAAIkE,IAAI+D,UACV3H,KAAKsH,IAAIM,QAAS,MAK1BlI,EAAI+D,GAAGgC,SAAS1G,UAAU8I,KAAO,WAC/B,IAAI5I,EAAIe,KACR,QAAuBwG,GAAnBvH,EAAE6I,cACJ,IAAInC,EAAS1G,EAAE6I,mBAEXnC,EAAS1G,EAAE0G,OAEjB,QAAwBa,GAApBvH,EAAE8I,eACJ,IAAIzG,EAAUrC,EAAE8I,oBAEZzG,EAAUrC,EAAEqC,QAElB,GAAIrC,EAAE2B,MAAM0F,IACV,IAAI0B,EAAc,QAAU/I,EAAE2B,MAAM0F,IAAIrI,EAAI,IAAMgB,EAAE2B,MAAM0F,IAAIG,EAAI,IAAMxH,EAAE2B,MAAM0F,IAAII,EAAI,IAAMpF,EAAU,SAEpG0G,EAAc,QAAU/I,EAAE2B,MAAM+F,IAAItG,EAAI,IAAMpB,EAAE2B,MAAM+F,IAAIzH,EAAI,KAAOD,EAAE2B,MAAM+F,IAAIvJ,EAAI,KAAOkE,EAAU,IAI5G,OAFA5B,EAAIO,OAAO4E,IAAIoD,UAAYD,EAC3BtI,EAAIO,OAAO4E,IAAIqD,YACPjJ,EAAE4B,OACR,IAAK,SACHnB,EAAIO,OAAO4E,IAAIsD,IAAIlJ,EAAE8G,EAAG9G,EAAE+G,EAAGL,EAAQ,EAAa,EAAVC,KAAKwC,IAAQ,GACrD,MACF,IAAK,OACH1I,EAAIO,OAAO4E,IAAIwD,KAAKpJ,EAAE8G,EAAIJ,EAAQ1G,EAAE+G,EAAIL,EAAiB,EAATA,EAAqB,EAATA,GAC5D,MACF,IAAK,WACHjG,EAAI+D,GAAGE,QAAQ2E,UAAU5I,EAAIO,OAAO4E,IAAK5F,EAAE8G,EAAIJ,EAAQ1G,EAAE+G,EAAIL,EAAS,KAAe,EAATA,EAAY,EAAG,GAC3F,MACF,IAAK,UACHjG,EAAI+D,GAAGE,QAAQ2E,UAAU5I,EAAIO,OAAO4E,IAAK5F,EAAE8G,EAAIJ,GAAUjG,EAAIa,UAAUM,MAAMI,QAAQC,SAAW,KAEhGjC,EAAE+G,EAAIL,EAAS,IAEN,KAATA,GAAiBjG,EAAIa,UAAUM,MAAMI,QAAQC,SAAW,GAExDxB,EAAIa,UAAUM,MAAMI,QAAQC,SAE5B,GAGA,MACF,IAAK,OACHxB,EAAI+D,GAAGE,QAAQ2E,UAAU5I,EAAIO,OAAO4E,IAAK5F,EAAE8G,EAAa,EAATJ,GAAcjG,EAAIa,UAAUM,MAAMI,QAAQC,SAAW,GAEpGjC,EAAE+G,EAAIL,EAAS,KAEN,EAATA,EAAa,MAAQjG,EAAIa,UAAUM,MAAMI,QAAQC,SAAW,GAE5DxB,EAAIa,UAAUM,MAAMI,QAAQC,SAE5B,GAGA,MACF,IAAK,QAIH,GAAwB,OAApBxB,EAAIkE,IAAI4D,SACV,IAAIe,EAAUtJ,EAAEqI,IAAIxD,SAEhByE,EAAU7I,EAAIkE,IAAI2E,QAEpBA,GAPF7I,EAAIO,OAAO4E,IAAI2D,UAAUD,EAAStJ,EAAE8G,EAAIJ,EAAQ1G,EAAE+G,EAAIL,EAAiB,EAATA,EAAqB,EAATA,EAAa1G,EAAEqI,IAAIC,OAYnG7H,EAAIO,OAAO4E,IAAI4D,YACX/I,EAAIa,UAAUM,MAAME,OAAOC,MAAQ,IACrCtB,EAAIO,OAAO4E,IAAI6D,YAAchJ,EAAIa,UAAUM,MAAME,OAAOH,MACxDlB,EAAIO,OAAO4E,IAAI8D,UAAYjJ,EAAIa,UAAUM,MAAME,OAAOC,MACtDtB,EAAIO,OAAO4E,IAAI9D,UAEjBrB,EAAIO,OAAO4E,IAAI+D,QAEjBlJ,EAAI+D,GAAGyB,gBAAkB,WACvB,IAAK,IAAI/H,EAAI,EAAGA,EAAIuC,EAAIa,UAAUC,OAAOpC,MAAOjB,IAC9CuC,EAAIa,UAAUiC,MAAMY,KAAK,IAAI1D,EAAI+D,GAAGgC,SAAS/F,EAAIa,UAAUK,MAAOlB,EAAIa,UAAUe,QAAQlD,SAG5FsB,EAAI+D,GAAGoF,gBAAkB,WACvB,IAAK,IAAI1L,EAAI,EAAGA,EAAIuC,EAAIa,UAAUiC,MAAM6D,OAAQlJ,IAAK,CAEnD,IAAI8B,EAAIS,EAAIa,UAAUiC,MAAMrF,GAW5B,GAAIuC,EAAIa,UAAUyB,KAAKtB,OAAQ,CAC7B,IAAIoI,EAAKpJ,EAAIa,UAAUyB,KAAKP,MAAQ,EACpCxC,EAAE8G,GAAK9G,EAAE8H,GAAK+B,EACd7J,EAAE+G,GAAK/G,EAAE+H,GAAK8B,EA4BhB,GAxBIpJ,EAAIa,UAAUe,QAAQE,KAAKd,SACL,GAApBzB,EAAE2H,gBACA3H,EAAEqC,SAAW5B,EAAIa,UAAUe,QAAQlD,QAAOa,EAAE2H,gBAAiB,GACjE3H,EAAEqC,SAAWrC,EAAE4H,KAEX5H,EAAEqC,SAAW5B,EAAIa,UAAUe,QAAQE,KAAKE,cAAazC,EAAE2H,gBAAiB,GAC5E3H,EAAEqC,SAAWrC,EAAE4H,IAEb5H,EAAEqC,QAAU,IAAGrC,EAAEqC,QAAU,IAI7B5B,EAAIa,UAAUqB,KAAKJ,KAAKd,SACL,GAAjBzB,EAAE4G,aACA5G,EAAE0G,QAAUjG,EAAIa,UAAUqB,KAAKxD,QAAOa,EAAE4G,aAAc,GAC1D5G,EAAE0G,QAAU1G,EAAE6G,KAEV7G,EAAE0G,QAAUjG,EAAIa,UAAUqB,KAAKJ,KAAKK,WAAU5C,EAAE4G,aAAc,GAClE5G,EAAE0G,QAAU1G,EAAE6G,IAEZ7G,EAAE0G,OAAS,IAAG1G,EAAE0G,OAAS,IAII,UAA/BjG,EAAIa,UAAUyB,KAAKG,SACrB,IAAI4G,EAAU,CACZC,OAAQ/J,EAAE0G,OACVsD,QAASvJ,EAAIO,OAAOE,EACpB+I,MAAOjK,EAAE0G,OACTwD,SAAUzJ,EAAIO,OAAOI,QAGnB0I,EAAU,CACZC,QAAS/J,EAAE0G,OACXsD,QAASvJ,EAAIO,OAAOE,EAAIlB,EAAE0G,OAC1BuD,OAAQjK,EAAE0G,OACVwD,SAAUzJ,EAAIO,OAAOI,EAAIpB,EAAE0G,QAmB/B,OAhBI1G,EAAE8G,EAAI9G,EAAE0G,OAASjG,EAAIO,OAAOE,GAC9BlB,EAAE8G,EAAIgD,EAAQC,OACd/J,EAAE+G,EAAIJ,KAAKrE,SAAW7B,EAAIO,OAAOI,GACxBpB,EAAE8G,EAAI9G,EAAE0G,OAAS,IAC1B1G,EAAE8G,EAAIgD,EAAQE,QACdhK,EAAE+G,EAAIJ,KAAKrE,SAAW7B,EAAIO,OAAOI,GAE/BpB,EAAE+G,EAAI/G,EAAE0G,OAASjG,EAAIO,OAAOI,GAC9BpB,EAAE+G,EAAI+C,EAAQG,MACdjK,EAAE8G,EAAIH,KAAKrE,SAAW7B,EAAIO,OAAOE,GACxBlB,EAAE+G,EAAI/G,EAAE0G,OAAS,IAC1B1G,EAAE+G,EAAI+C,EAAQI,SACdlK,EAAE8G,EAAIH,KAAKrE,SAAW7B,EAAIO,OAAOE,GAI3BT,EAAIa,UAAUyB,KAAKG,UACzB,IAAK,UACClD,EAAE8G,EAAI9G,EAAE0G,OAASjG,EAAIO,OAAOE,GAAyBlB,EAAE8G,EAAI9G,EAAE0G,OAAS,KAAvC1G,EAAE8H,IAAM9H,EAAE8H,KACzC9H,EAAE+G,EAAI/G,EAAE0G,OAASjG,EAAIO,OAAOI,GAAyBpB,EAAE+G,EAAI/G,EAAE0G,OAAS,KAAvC1G,EAAE+H,IAAM/H,EAAE+H,IAgBjD,GAXIoC,EAAU,OAAQ1J,EAAI+C,cAAcE,OAAOC,QAAQtE,OACrDoB,EAAI+D,GAAGV,MAAMsG,aAAapK,IAExBmK,EAAU,SAAU1J,EAAI+C,cAAcE,OAAOC,QAAQtE,OAAS8K,EAAU,SAAU1J,EAAI+C,cAAcE,OAAOE,QAAQvE,QACrHoB,EAAI+D,GAAGV,MAAMuG,eAAerK,IAE1BmK,EAAU,UAAW1J,EAAI+C,cAAcE,OAAOC,QAAQtE,OAAS8K,EAAU,UAAW1J,EAAI+C,cAAcE,OAAOE,QAAQvE,QACvHoB,EAAI+D,GAAGV,MAAMwG,gBAAgBtK,GAI3BS,EAAIa,UAAUuB,YAAYpB,QAAUhB,EAAIa,UAAUyB,KAAKK,QAAQ3B,OACjE,IAAK,IAAI8I,EAAIrM,EAAI,EAAGqM,EAAI9J,EAAIa,UAAUiC,MAAM6D,OAAQmD,IAAK,CACvD,IAAIC,EAAK/J,EAAIa,UAAUiC,MAAMgH,GAGzB9J,EAAIa,UAAUuB,YAAYpB,QAC5BhB,EAAI+D,GAAGC,SAASgG,cAAczK,EAAGwK,GAI/B/J,EAAIa,UAAUyB,KAAKK,QAAQ3B,QAC7BhB,EAAI+D,GAAGC,SAASiG,iBAAiB1K,EAAGwK,GAIlC/J,EAAIa,UAAUyB,KAAKI,QACrB1C,EAAI+D,GAAGC,SAASkG,gBAAgB3K,EAAGwK,MAM7C/J,EAAI+D,GAAG0B,cAAgB,WAErBzF,EAAIO,OAAO4E,IAAIW,UAAU,EAAG,EAAG9F,EAAIO,OAAOE,EAAGT,EAAIO,OAAOI,GAGxDX,EAAI+D,GAAGoF,kBAGP,IAAK,IAAI1L,EAAI,EAAGA,EAAIuC,EAAIa,UAAUiC,MAAM6D,OAAQlJ,IAAK,CAC3CuC,EAAIa,UAAUiC,MAAMrF,GAC1B0K,SAGNnI,EAAI+D,GAAGwB,eAAiB,WACtBvF,EAAIa,UAAUiC,MAAQ,IAExB9C,EAAI+D,GAAGoG,iBAAmB,WAExBC,uBAAuBpK,EAAI+D,GAAGsG,gBAC9BD,uBAAuBpK,EAAI+D,GAAGuG,eAC9BtK,EAAIkE,IAAI6D,gBAAajB,EACrB9G,EAAIkE,IAAI2E,aAAU/B,EAClB9G,EAAIkE,IAAIqG,UAAY,EACpBvK,EAAI+D,GAAGwB,iBACPvF,EAAI+D,GAAG8B,cAGP7F,EAAI+D,GAAGE,QAAQuG,SAKjBxK,EAAI+D,GAAGC,SAASgG,cAAgB,SAAUS,EAAIV,GAC5C,IAAIW,EAAKD,EAAGpE,EAAI0D,EAAG1D,EACjBsE,EAAKF,EAAGnE,EAAIyD,EAAGzD,EACfsE,EAAO1E,KAAK2E,KAAKH,EAAKA,EAAKC,EAAKA,GAGlC,GAAIC,GAAQ5K,EAAIa,UAAUuB,YAAYC,SAAU,CAC9C,IAAIyI,EAAe9K,EAAIa,UAAUuB,YAAYR,QAAUgJ,GAAQ,EAAI5K,EAAIa,UAAUuB,YAAYR,SAAW5B,EAAIa,UAAUuB,YAAYC,SAClI,GAAIyI,EAAe,EAAG,CAEpB,IAAIC,EAAa/K,EAAIa,UAAUuB,YAAY4I,eAC3ChL,EAAIO,OAAO4E,IAAI6D,YAAc,QAAU+B,EAAWxM,EAAI,IAAMwM,EAAWhE,EAAI,IAAMgE,EAAW/D,EAAI,IAAM8D,EAAe,IACrH9K,EAAIO,OAAO4E,IAAI8D,UAAYjJ,EAAIa,UAAUuB,YAAYd,MAIrDtB,EAAIO,OAAO4E,IAAIqD,YACfxI,EAAIO,OAAO4E,IAAI8F,OAAOR,EAAGpE,EAAGoE,EAAGnE,GAC/BtG,EAAIO,OAAO4E,IAAI+F,OAAOnB,EAAG1D,EAAG0D,EAAGzD,GAC/BtG,EAAIO,OAAO4E,IAAI9D,SACfrB,EAAIO,OAAO4E,IAAI4D,eAIrB/I,EAAI+D,GAAGC,SAASiG,iBAAmB,SAAUQ,EAAIV,GAE/C,IAAIW,EAAKD,EAAGpE,EAAI0D,EAAG1D,EACjBsE,EAAKF,EAAGnE,EAAIyD,EAAGzD,EAEjB,GADSJ,KAAK2E,KAAKH,EAAKA,EAAKC,EAAKA,IACtB3K,EAAIa,UAAUuB,YAAYC,SAAU,CAC9C,IAAI8I,EAAKT,GAA2C,IAArC1K,EAAIa,UAAUyB,KAAKK,QAAQC,SACxCwI,EAAKT,GAA2C,IAArC3K,EAAIa,UAAUyB,KAAKK,QAAQE,SACxC4H,EAAGpD,IAAM8D,EACTV,EAAGnD,IAAM8D,EACTrB,EAAG1C,IAAM8D,EACTpB,EAAGzC,IAAM8D,IAGbpL,EAAI+D,GAAGC,SAASkG,gBAAkB,SAAUO,EAAIV,GAC9C,IAAIW,EAAKD,EAAGpE,EAAI0D,EAAG1D,EACjBsE,EAAKF,EAAGnE,EAAIyD,EAAGzD,EACRJ,KAAK2E,KAAKH,EAAKA,EAAKC,EAAKA,IACvBF,EAAGxE,OAAS8D,EAAG9D,SAExBwE,EAAGpD,IAAMoD,EAAGpD,GACZoD,EAAGnD,IAAMmD,EAAGnD,GACZyC,EAAG1C,IAAM0C,EAAG1C,GACZ0C,EAAGzC,IAAMyC,EAAGzC,KAMhBtH,EAAI+D,GAAGV,MAAMgI,cAAgB,SAAUC,EAAIC,GACzCvL,EAAIkE,IAAI+D,SAAU,EAClB,IAAK,IAAIxK,EAAI,EAAGA,EAAI6N,EAAI7N,IACtBuC,EAAIa,UAAUiC,MAAMY,KAAK,IAAI1D,EAAI+D,GAAGgC,SAAS/F,EAAIa,UAAUK,MAAOlB,EAAIa,UAAUe,QAAQlD,MAAO,CAC7F,EAAK6M,EAAMA,EAAIC,MAAQtF,KAAKrE,SAAW7B,EAAIO,OAAOE,EAClD,EAAK8K,EAAMA,EAAIE,MAAQvF,KAAKrE,SAAW7B,EAAIO,OAAOI,KAEhDlD,GAAK6N,EAAK,IACPtL,EAAIa,UAAUyB,KAAKtB,QACtBhB,EAAI+D,GAAG0B,gBAETzF,EAAIkE,IAAI+D,SAAU,IAIxBjI,EAAI+D,GAAGV,MAAMqI,gBAAkB,SAAUJ,GACvCtL,EAAIa,UAAUiC,MAAM6I,OAAO,EAAGL,GACzBtL,EAAIa,UAAUyB,KAAKtB,QACtBhB,EAAI+D,GAAG0B,iBAGXzF,EAAI+D,GAAGV,MAAMuG,eAAiB,SAAUrK,GAEtC,GAAIS,EAAI+C,cAAcE,OAAOC,QAAQlC,QAAU0I,EAAU,SAAU1J,EAAI+C,cAAcE,OAAOC,QAAQtE,MAAO,CACzG,IAAIgN,EAAWrM,EAAE8G,EAAIrG,EAAI+C,cAAcc,MAAM2H,MAC3CK,EAAWtM,EAAE+G,EAAItG,EAAI+C,cAAcc,MAAM4H,MAEzC5D,EAAQ,GADRiE,EAAa5F,KAAK2E,KAAKe,EAAWA,EAAWC,EAAWA,IAC/B7L,EAAI+C,cAAcM,MAAME,OAAOlB,SAC1D,SAAS0J,IACPxM,EAAE8I,eAAiB9I,EAAEqC,QACrBrC,EAAE6I,cAAgB7I,EAAE0G,OAItB,GAAI6F,GAAc9L,EAAI+C,cAAcM,MAAME,OAAOlB,UAC/C,GAAIwF,GAAS,GAAiC,aAA5B7H,EAAI+C,cAAciJ,OAAuB,CAEzD,GAAIhM,EAAI+C,cAAcM,MAAME,OAAOrB,MAAQlC,EAAIa,UAAUqB,KAAKxD,MAC5D,GAAIsB,EAAI+C,cAAcM,MAAME,OAAOrB,KAAOlC,EAAIa,UAAUqB,KAAKxD,MAAO,EAC9DwD,EAAO3C,EAAE0G,OAASjG,EAAI+C,cAAcM,MAAME,OAAOrB,KAAO2F,IAChD,IACVtI,EAAE6I,cAAgBlG,OAEf,CACL,IAAI+J,EAAM1M,EAAE0G,OAASjG,EAAI+C,cAAcM,MAAME,OAAOrB,KAClDA,EAAO3C,EAAE0G,OAASgG,EAAMpE,EAExBtI,EAAE6I,cADAlG,EAAO,EACSA,EAEA,EAQpB,IAKIN,EAPR,GAAI5B,EAAI+C,cAAcM,MAAME,OAAO3B,SAAW5B,EAAIa,UAAUe,QAAQlD,MAClE,GAAIsB,EAAI+C,cAAcM,MAAME,OAAO3B,QAAU5B,EAAIa,UAAUe,QAAQlD,OAC7DkD,EAAU5B,EAAI+C,cAAcM,MAAME,OAAO3B,QAAUiG,GACzCtI,EAAEqC,SAAWA,GAAW5B,EAAI+C,cAAcM,MAAME,OAAO3B,UACnErC,EAAE8I,eAAiBzG,QAGjBA,EAAUrC,EAAEqC,SAAW5B,EAAIa,UAAUe,QAAQlD,MAAQsB,EAAI+C,cAAcM,MAAME,OAAO3B,SAAWiG,GACrFtI,EAAEqC,SAAWA,GAAW5B,EAAI+C,cAAcM,MAAME,OAAO3B,UACnErC,EAAE8I,eAAiBzG,SAM3BmK,IAI8B,cAA5B/L,EAAI+C,cAAciJ,QACpBD,SAIqB,GAAI/L,EAAI+C,cAAcE,OAAOE,QAAQnC,QAAU0I,EAAU,SAAU1J,EAAI+C,cAAcE,OAAOE,QAAQvE,MAAO,CAClI,GAAIoB,EAAIkE,IAAIgI,gBAAiB,CACvBN,EAAWrM,EAAE8G,EAAIrG,EAAI+C,cAAcc,MAAMsI,YAC3CN,EAAWtM,EAAE+G,EAAItG,EAAI+C,cAAcc,MAAMuI,YAD3C,IAEEN,EAAa5F,KAAK2E,KAAKe,EAAWA,EAAWC,EAAWA,GACxDQ,IAAc,IAAIC,MAAOC,UAAYvM,EAAI+C,cAAcc,MAAM2I,YAAc,IACzEH,EAAarM,EAAI+C,cAAcM,MAAME,OAAOC,WAC9CxD,EAAIkE,IAAIuI,qBAAsB,GAE5BJ,EAAuD,EAA1CrM,EAAI+C,cAAcM,MAAME,OAAOC,WAC9CxD,EAAIkE,IAAIgI,iBAAkB,EAC1BlM,EAAIkE,IAAIuI,qBAAsB,GAGlC,SAASC,EAAQC,EAAcC,EAAiBC,EAAcC,EAAOC,GACnE,GAAIJ,GAAgBC,EAClB,GAAK5M,EAAIkE,IAAIuI,yBAaS3F,GAAhB+F,IAGFnO,EAAQiO,GADAA,GADQG,EAAQT,GAAcS,EAAQH,GAAgB3M,EAAI+C,cAAcM,MAAME,OAAOC,WAGnF,QAANuJ,IAAcxN,EAAE6I,cAAgB1J,GAC1B,WAANqO,IAAiBxN,EAAE8I,eAAiB3J,SAjB1C,GAAIoN,GAAc9L,EAAI+C,cAAcM,MAAME,OAAOlB,SAAU,CACzD,QAAoByE,GAAhB+F,EAA2B,IAAIzI,EAAMyI,OAAsBzI,EAAM0I,EACrE,GAAI1I,GAAOuI,EAAc,CACvB,IAAIjO,EAAQoO,EAAQT,GAAcS,EAAQH,GAAgB3M,EAAI+C,cAAcM,MAAME,OAAOC,SAC/E,QAANuJ,IAAcxN,EAAE6I,cAAgB1J,GAC1B,WAANqO,IAAiBxN,EAAE8I,eAAiB3J,QAGhC,QAANqO,IAAcxN,EAAE6I,mBAAgBtB,GAC1B,WAANiG,IAAiBxN,EAAE8I,oBAAiBvB,GAa5C9G,EAAIkE,IAAIgI,kBAEVQ,EAAQ1M,EAAI+C,cAAcM,MAAME,OAAOrB,KAAMlC,EAAIa,UAAUqB,KAAKxD,MAAOa,EAAE6I,cAAe7I,EAAE0G,OAAQ,QAElGyG,EAAQ1M,EAAI+C,cAAcM,MAAME,OAAO3B,QAAS5B,EAAIa,UAAUe,QAAQlD,MAAOa,EAAE8I,eAAgB9I,EAAEqC,QAAS,cAIhH5B,EAAI+D,GAAGV,MAAMwG,gBAAkB,SAAUtK,GACvC,GAAIS,EAAI+C,cAAcE,OAAOC,QAAQlC,QAAU0I,EAAU,UAAW1J,EAAI+C,cAAcE,OAAOC,QAAQtE,OAAqC,aAA5BoB,EAAI+C,cAAciJ,OAAuB,CACrJ,IAAIJ,EAAWrM,EAAE8G,EAAIrG,EAAI+C,cAAcc,MAAM2H,MAC3CK,EAAWtM,EAAE+G,EAAItG,EAAI+C,cAAcc,MAAM4H,MACzCK,EAAa5F,KAAK2E,KAAKe,EAAWA,EAAWC,EAAWA,GACtDmB,EAAU,CACV3G,EAAGuF,EAAWE,EACdxF,EAAGuF,EAAWC,GAEhBmB,EAAgBjN,EAAI+C,cAAcM,MAAMI,QAAQpB,SAEhD6K,GAgYOpM,EAhYe,EAAImM,IAAkB,EAAI/G,KAAKiH,IAAIrB,EAAamB,EAAe,GAAK,GAAKA,EADpF,IAiYIG,EAhY0G,EAgYrGC,EAhYwG,GAiY3HnH,KAAKkH,IAAIlH,KAAKmH,IAAIvM,EAAQsM,GAAMC,IAhY/B9B,EAAM,CACRlF,EAAG9G,EAAE8G,EAAI2G,EAAQ3G,EAAI6G,EACrB5G,EAAG/G,EAAE+G,EAAI0G,EAAQ1G,EAAI4G,GAEY,UAA/BlN,EAAIa,UAAUyB,KAAKG,UACjB8I,EAAIlF,EAAI9G,EAAE0G,OAAS,GAAKsF,EAAIlF,EAAI9G,EAAE0G,OAASjG,EAAIO,OAAOE,IAAGlB,EAAE8G,EAAIkF,EAAIlF,GACnEkF,EAAIjF,EAAI/G,EAAE0G,OAAS,GAAKsF,EAAIjF,EAAI/G,EAAE0G,OAASjG,EAAIO,OAAOI,IAAGpB,EAAE+G,EAAIiF,EAAIjF,KAEvE/G,EAAE8G,EAAIkF,EAAIlF,EACV9G,EAAE+G,EAAIiF,EAAIjF,QAEP,GAAItG,EAAI+C,cAAcE,OAAOE,QAAQnC,QAAU0I,EAAU,UAAW1J,EAAI+C,cAAcE,OAAOE,QAAQvE,MAO1G,GANKoB,EAAIkE,IAAIoJ,iBACXtN,EAAIkE,IAAIqJ,gBACJvN,EAAIkE,IAAIqJ,eAAiBvN,EAAIa,UAAUiC,MAAM6D,SAC/C3G,EAAIkE,IAAIoJ,gBAAiB,IAGzBtN,EAAIkE,IAAIsJ,iBAAkB,CACxBP,EAAgB/G,KAAKiH,IAAInN,EAAI+C,cAAcM,MAAMI,QAAQpB,SAAW,EAAG,GAA3E,IACIqI,EAAK1K,EAAI+C,cAAcc,MAAMsI,YAAc5M,EAAE8G,EAC/CsE,EAAK3K,EAAI+C,cAAcc,MAAMuI,YAAc7M,EAAE+G,EAC7CvI,EAAI2M,EAAKA,EAAKC,EAAKA,EACjB8C,GAASR,EAAgBlP,EAAI,EAgB7BA,GAAKkP,GAfT,WACE,IAAIS,EAAIxH,KAAKyH,MAAMhD,EAAID,GAGvB,GAFAnL,EAAE8H,GAAKoG,EAAQvH,KAAK0H,IAAIF,GACxBnO,EAAE+H,GAAKmG,EAAQvH,KAAK2H,IAAIH,GACW,UAA/B1N,EAAIa,UAAUyB,KAAKG,SAAsB,CAC3C,IAAI8I,EAAM,CACRlF,EAAG9G,EAAE8G,EAAI9G,EAAE8H,GACXf,EAAG/G,EAAE+G,EAAI/G,EAAE+H,KAETiE,EAAIlF,EAAI9G,EAAE0G,OAASjG,EAAIO,OAAOE,GAAyB8K,EAAIlF,EAAI9G,EAAE0G,OAAS,KAAzC1G,EAAE8H,IAAM9H,EAAE8H,KAC3CkE,EAAIjF,EAAI/G,EAAE0G,OAASjG,EAAIO,OAAOI,GAAyB4K,EAAIjF,EAAI/G,EAAE0G,OAAS,KAAzC1G,EAAE+H,IAAM/H,EAAE+H,KAMjDoF,QAY8B,GAA5B1M,EAAIkE,IAAIsJ,mBACVjO,EAAE8H,GAAK9H,EAAEgI,KACThI,EAAE+H,GAAK/H,EAAEiI,MAyUnB,IAAe1G,EAAQsM,EAAKC,GApU1BrN,EAAI+D,GAAGV,MAAMsG,aAAe,SAAUpK,GACpC,GAAIS,EAAI+C,cAAcE,OAAOC,QAAQlC,QAAsC,aAA5BhB,EAAI+C,cAAciJ,OAAuB,CACtF,IAAIJ,EAAWrM,EAAE8G,EAAIrG,EAAI+C,cAAcc,MAAM2H,MAC3CK,EAAWtM,EAAE+G,EAAItG,EAAI+C,cAAcc,MAAM4H,MACzCK,EAAa5F,KAAK2E,KAAKe,EAAWA,EAAWC,EAAWA,GAG1D,GAAIC,GAAc9L,EAAI+C,cAAcM,MAAMC,KAAKjB,SAAU,CACvD,IAAIyI,EAAe9K,EAAI+C,cAAcM,MAAMC,KAAKlB,YAAYR,QAAUkK,GAAc,EAAI9L,EAAI+C,cAAcM,MAAMC,KAAKlB,YAAYR,SAAW5B,EAAI+C,cAAcM,MAAMC,KAAKjB,SACzK,GAAIyI,EAAe,EAAG,CAEpB,IAAIC,EAAa/K,EAAIa,UAAUuB,YAAY4I,eAC3ChL,EAAIO,OAAO4E,IAAI6D,YAAc,QAAU+B,EAAWxM,EAAI,IAAMwM,EAAWhE,EAAI,IAAMgE,EAAW/D,EAAI,IAAM8D,EAAe,IACrH9K,EAAIO,OAAO4E,IAAI8D,UAAYjJ,EAAIa,UAAUuB,YAAYd,MAIrDtB,EAAIO,OAAO4E,IAAIqD,YACfxI,EAAIO,OAAO4E,IAAI8F,OAAO1L,EAAE8G,EAAG9G,EAAE+G,GAC7BtG,EAAIO,OAAO4E,IAAI+F,OAAOlL,EAAI+C,cAAcc,MAAM2H,MAAOxL,EAAI+C,cAAcc,MAAM4H,OAC7EzL,EAAIO,OAAO4E,IAAI9D,SACfrB,EAAIO,OAAO4E,IAAI4D,gBAQvB/I,EAAI+D,GAAGE,QAAQ6J,gBAAkB,WAEI,UAA/B9N,EAAI+C,cAAcC,UACpBhD,EAAI+C,cAAcvC,GAAKd,OAEvBM,EAAI+C,cAAcvC,GAAKR,EAAIO,OAAOC,IAIhCR,EAAI+C,cAAcE,OAAOC,QAAQlC,QAAUhB,EAAI+C,cAAcE,OAAOE,QAAQnC,UAE9EhB,EAAI+C,cAAcvC,GAAG8E,iBAAiB,aAAa,SAAUyI,GAC3D,GAAI/N,EAAI+C,cAAcvC,IAAMd,OAC1B,IAAI8L,EAAQuC,EAAEC,QACZvC,EAAQsC,EAAEE,aAERzC,EAAQuC,EAAEG,SAAWH,EAAEC,QACzBvC,EAAQsC,EAAEI,SAAWJ,EAAEE,QAE3BjO,EAAI+C,cAAcc,MAAM2H,MAAQA,EAChCxL,EAAI+C,cAAcc,MAAM4H,MAAQA,EAC5BzL,EAAIkE,IAAIe,SACVjF,EAAI+C,cAAcc,MAAM2H,OAASxL,EAAIO,OAAOyE,QAC5ChF,EAAI+C,cAAcc,MAAM4H,OAASzL,EAAIO,OAAOyE,SAE9ChF,EAAI+C,cAAciJ,OAAS,eAI7BhM,EAAI+C,cAAcvC,GAAG8E,iBAAiB,cAAc,SAAUyI,GAC5D/N,EAAI+C,cAAcc,MAAM2H,MAAQ,KAChCxL,EAAI+C,cAAcc,MAAM4H,MAAQ,KAChCzL,EAAI+C,cAAciJ,OAAS,iBAK3BhM,EAAI+C,cAAcE,OAAOE,QAAQnC,QACnChB,EAAI+C,cAAcvC,GAAG8E,iBAAiB,SAAS,WAI7C,GAHAtF,EAAI+C,cAAcc,MAAMsI,YAAcnM,EAAI+C,cAAcc,MAAM2H,MAC9DxL,EAAI+C,cAAcc,MAAMuI,YAAcpM,EAAI+C,cAAcc,MAAM4H,MAC9DzL,EAAI+C,cAAcc,MAAM2I,YAAa,IAAIF,MAAOC,UAC5CvM,EAAI+C,cAAcE,OAAOE,QAAQnC,OACnC,OAAQhB,EAAI+C,cAAcE,OAAOE,QAAQvE,MACvC,IAAK,OACCoB,EAAIa,UAAUyB,KAAKtB,QAG4B,GAA7ChB,EAAI+C,cAAcM,MAAMK,KAAKC,aAFjC3D,EAAI+D,GAAGV,MAAMgI,cAAcrL,EAAI+C,cAAcM,MAAMK,KAAKC,aAAc3D,EAAI+C,cAAcc,OAI7E7D,EAAI+C,cAAcM,MAAMK,KAAKC,aAAe,GACrD3D,EAAI+D,GAAGV,MAAMgI,cAAcrL,EAAI+C,cAAcM,MAAMK,KAAKC,cAG5D,MACF,IAAK,SACH3D,EAAI+D,GAAGV,MAAMqI,gBAAgB1L,EAAI+C,cAAcM,MAAMO,OAAOD,cAC5D,MACF,IAAK,SACH3D,EAAIkE,IAAIgI,iBAAkB,EAC1B,MACF,IAAK,UACHlM,EAAIkE,IAAIsJ,kBAAmB,EAC3BxN,EAAIkE,IAAIqJ,cAAgB,EACxBvN,EAAIkE,IAAIoJ,gBAAiB,EACzBc,YAAW,WACTpO,EAAIkE,IAAIsJ,kBAAmB,IACiB,IAA3CxN,EAAI+C,cAAcM,MAAMI,QAAQD,eAO/CxD,EAAI+D,GAAGE,QAAQyB,qBAAuB,WACpC,GAAI1F,EAAIa,UAAUC,OAAOC,QAAQC,OAAQ,CAEvC,IAAIqN,EAAOrO,EAAIO,OAAOC,GAAGc,MAAQtB,EAAIO,OAAOC,GAAGmB,OAAS,IACpD3B,EAAIkE,IAAIe,SACVoJ,GAAoC,EAArBrO,EAAIO,OAAOyE,SAI5B,IAAIsJ,EAAeD,EAAOrO,EAAIa,UAAUC,OAAOpC,MAAQsB,EAAIa,UAAUC,OAAOC,QAAQE,WAGhFsN,EAAoBvO,EAAIa,UAAUiC,MAAM6D,OAAS2H,EACjDC,EAAoB,EAAGvO,EAAI+D,GAAGV,MAAMgI,cAAcnF,KAAKsI,IAAID,IAAyBvO,EAAI+D,GAAGV,MAAMqI,gBAAgB6C,KAGzHvO,EAAI+D,GAAGE,QAAQsC,aAAe,SAAUkE,EAAIzE,GAC1C,IAAK,IAAIvI,EAAI,EAAGA,EAAIuC,EAAIa,UAAUiC,MAAM6D,OAAQlJ,IAAK,CACnD,IAAIsM,EAAK/J,EAAIa,UAAUiC,MAAMrF,GACzBiN,EAAKD,EAAGpE,EAAI0D,EAAG1D,EACjBsE,EAAKF,EAAGnE,EAAIyD,EAAGzD,EACRJ,KAAK2E,KAAKH,EAAKA,EAAKC,EAAKA,IACtBF,EAAGxE,OAAS8D,EAAG9D,SACzBwE,EAAGpE,EAAIL,EAAWA,EAASK,EAAIH,KAAKrE,SAAW7B,EAAIO,OAAOE,EAC1DgK,EAAGnE,EAAIN,EAAWA,EAASM,EAAIJ,KAAKrE,SAAW7B,EAAIO,OAAOI,EAC1DX,EAAI+D,GAAGE,QAAQsC,aAAakE,MAIlCzK,EAAI+D,GAAGE,QAAQ+D,aAAe,SAAUzI,GAEtC,IAEEkP,EAFWzO,EAAIkE,IAAI6D,WAEI2G,QADd,sBAC8B,SAAU7Q,EAAGU,EAAGwI,EAAGC,GACxD,GAAIzH,EAAE2B,MAAM0F,IACV,IAAI0B,EAAc,QAAU/I,EAAE2B,MAAM0F,IAAIrI,EAAI,IAAMgB,EAAE2B,MAAM0F,IAAIG,EAAI,IAAMxH,EAAE2B,MAAM0F,IAAII,EAAI,IAAMzH,EAAEqC,QAAU,SAEtG0G,EAAc,QAAU/I,EAAE2B,MAAM+F,IAAItG,EAAI,IAAMpB,EAAE2B,MAAM+F,IAAIzH,EAAI,KAAOD,EAAE2B,MAAM+F,IAAIvJ,EAAI,KAAO6B,EAAEqC,QAAU,IAE9G,OAAO0G,KAIPqG,EAAM,IAAIC,KAAK,CAACH,GAAgB,CAChCrN,KAAM,gCAERyN,EAASnP,OAAOoP,KAAOpP,OAAOqP,WAAarP,OAC3CsP,EAAMH,EAAOI,gBAAgBN,GAG3B/G,EAAM,IAAIsH,MACdtH,EAAItC,iBAAiB,QAAQ,WAC3B/F,EAAEqI,IAAIxD,IAAMwD,EACZrI,EAAEqI,IAAIM,QAAS,EACf2G,EAAOM,gBAAgBH,GACvBhP,EAAIkE,IAAIqG,eAEV3C,EAAIlG,IAAMsN,GAEZhP,EAAI+D,GAAGE,QAAQmL,WAAa,WAC1BC,qBAAqBrP,EAAI+D,GAAGuG,eAC5BnK,EAAUyD,SACV0L,OAAS,MAEXtP,EAAI+D,GAAGE,QAAQ2E,UAAY,SAAU9K,EAAGyR,EAAQC,EAAQC,EAAYC,EAAoBC,GAEtF,IAAIC,EAAYF,EAAqBC,EACjCE,EAAeH,EAAqBC,EACpCG,EAAuB,KAAOD,EAAe,GAAKA,EAClDE,EAAgB7J,KAAKwC,GAAKxC,KAAKwC,GAAKoH,EAAuB,IAC/DhS,EAAEkS,OACFlS,EAAE0K,YACF1K,EAAEmS,UAAUV,EAAQC,GACpB1R,EAAEmN,OAAO,EAAG,GACZ,IAAK,IAAIxN,EAAI,EAAGA,EAAImS,EAAWnS,IAC7BK,EAAEoN,OAAOuE,EAAY,GACrB3R,EAAEmS,UAAUR,EAAY,GACxB3R,EAAEoS,OAAOH,GAGXjS,EAAEoL,OACFpL,EAAEqS,WAEJnQ,EAAI+D,GAAGE,QAAQmM,UAAY,WACzB1Q,OAAO2Q,KAAKrQ,EAAIO,OAAOC,GAAG8P,UAAU,aAAc,WAEpDtQ,EAAI+D,GAAGE,QAAQsM,QAAU,SAAUnP,GAEjC,GADApB,EAAIkE,IAAIsM,eAAY1J,EACiB,IAAjC9G,EAAIa,UAAUM,MAAMM,MAAMC,IAC5B,GAAY,OAARN,EAAe,CACjB,IAAIqP,EAAM,IAAIC,eACdD,EAAIJ,KAAK,MAAOrQ,EAAIa,UAAUM,MAAMM,MAAMC,KAC1C+O,EAAIE,mBAAqB,SAAUC,GACX,GAAlBH,EAAII,aACY,KAAdJ,EAAIzE,QACNhM,EAAIkE,IAAI6D,WAAa6I,EAAKE,cAAcC,SACxC/Q,EAAI+D,GAAGE,QAAQ+M,oBAEfC,QAAQC,IAAI,+BACZlR,EAAIkE,IAAIsM,WAAY,KAI1BC,EAAIU,WACC,CACL,IAAIvJ,EAAM,IAAIsH,MACdtH,EAAItC,iBAAiB,QAAQ,WAC3BtF,EAAIkE,IAAI2E,QAAUjB,EAClB5H,EAAI+D,GAAGE,QAAQ+M,qBAEjBpJ,EAAIlG,IAAM1B,EAAIa,UAAUM,MAAMM,MAAMC,SAGtCuP,QAAQC,IAAI,4BACZlR,EAAIkE,IAAIsM,WAAY,GAGxBxQ,EAAI+D,GAAGE,QAAQkE,KAAO,WACY,SAA5BnI,EAAIa,UAAUM,MAAMC,KACE,OAApBpB,EAAIkE,IAAI4D,SACN9H,EAAIkE,IAAIqG,WAAavK,EAAIa,UAAUC,OAAOpC,OAC5CsB,EAAI+D,GAAG0B,gBACFzF,EAAIa,UAAUyB,KAAKtB,OAA0DhB,EAAI+D,GAAGuG,cAAgB8G,iBAAiBpR,EAAI+D,GAAGE,QAAQkE,MAAzGiC,uBAAuBpK,EAAI+D,GAAGuG,gBAGzDtK,EAAIkE,IAAIsM,YAAWxQ,EAAI+D,GAAGuG,cAAgB8G,iBAAiBpR,EAAI+D,GAAGE,QAAQkE,YAG1DrB,GAAnB9G,EAAIkE,IAAI2E,SACV7I,EAAI+D,GAAG0B,gBACFzF,EAAIa,UAAUyB,KAAKtB,OAA0DhB,EAAI+D,GAAGuG,cAAgB8G,iBAAiBpR,EAAI+D,GAAGE,QAAQkE,MAAzGiC,uBAAuBpK,EAAI+D,GAAGuG,gBAEzDtK,EAAIkE,IAAIsM,YAAWxQ,EAAI+D,GAAGuG,cAAgB8G,iBAAiBpR,EAAI+D,GAAGE,QAAQkE,QAInFnI,EAAI+D,GAAG0B,gBACFzF,EAAIa,UAAUyB,KAAKtB,OAA0DhB,EAAI+D,GAAGuG,cAAgB8G,iBAAiBpR,EAAI+D,GAAGE,QAAQkE,MAAzGiC,uBAAuBpK,EAAI+D,GAAGuG,iBAGlEtK,EAAI+D,GAAGE,QAAQ+M,gBAAkB,WAEC,SAA5BhR,EAAIa,UAAUM,MAAMC,KACE,OAApBpB,EAAIkE,IAAI4D,eAA2ChB,GAAtB9G,EAAIkE,IAAI6D,WACvC/H,EAAIkE,IAAImG,eAAiB+G,iBAAiBC,QAG1CjH,uBAAuBpK,EAAIkE,IAAImG,gBAC1BrK,EAAIkE,IAAIsM,YACXxQ,EAAI+D,GAAGE,QAAQ8H,OACf/L,EAAI+D,GAAGE,QAAQkE,UAInBnI,EAAI+D,GAAGE,QAAQ8H,OACf/L,EAAI+D,GAAGE,QAAQkE,SAGnBnI,EAAI+D,GAAGE,QAAQ8H,KAAO,WAEpB/L,EAAI+D,GAAGe,aACP9E,EAAI+D,GAAGmB,aACPlF,EAAI+D,GAAGsB,aACPrF,EAAI+D,GAAG4B,cACP3F,EAAI+D,GAAGyB,kBACPxF,EAAI+D,GAAGE,QAAQyB,uBAGf1F,EAAIa,UAAUuB,YAAY4I,eAAiBnE,EAAS7G,EAAIa,UAAUuB,YAAYlB,QAEhFlB,EAAI+D,GAAGE,QAAQuG,MAAQ,WACjBd,EAAU,QAAS1J,EAAIa,UAAUM,MAAMC,OACzCpB,EAAIkE,IAAI4D,SAAW9H,EAAIa,UAAUM,MAAMM,MAAMC,IAAI4P,OAAOtR,EAAIa,UAAUM,MAAMM,MAAMC,IAAIiF,OAAS,GAC/F3G,EAAI+D,GAAGE,QAAQsM,QAAQvQ,EAAIkE,IAAI4D,WAE/B9H,EAAI+D,GAAGE,QAAQ+M,mBAMnBhR,EAAI+D,GAAGE,QAAQ6J,kBACf9N,EAAI+D,GAAGE,QAAQuG,SAwBjB,SAAS3D,EAAS0K,GAIhBA,EAAMA,EAAI7C,QADW,oCACa,SAAU7Q,EAAGU,EAAGwI,EAAGC,GACnD,OAAOzI,EAAIA,EAAIwI,EAAIA,EAAIC,EAAIA,KAE7B,IAAIwK,EAAS,4CAA4CC,KAAKF,GAC9D,OAAOC,EAAS,CACdjT,EAAGmT,SAASF,EAAO,GAAI,IACvBzK,EAAG2K,SAASF,EAAO,GAAI,IACvBxK,EAAG0K,SAASF,EAAO,GAAI,KACrB,KAON,SAAS9H,EAAUhL,EAAOoE,GACxB,OAAOA,EAAM6O,QAAQjT,IAAU,EAvCjCP,OAAOgG,WAAa,SAAUyN,EAAaC,GACzC,IAAK,IAAIzS,KAAYyS,EACfA,EAAOzS,IAAayS,EAAOzS,GAAU0S,aAAeD,EAAOzS,GAAU0S,cAAgB3T,QACvFyT,EAAYxS,GAAYwS,EAAYxS,IAAa,GACjD2S,UAAUC,OAAOJ,EAAYxS,GAAWyS,EAAOzS,KAE/CwS,EAAYxS,GAAYyS,EAAOzS,GAGnC,OAAOwS,GAETlS,OAAO0R,iBACE1R,OAAOuS,uBAAyBvS,OAAOwS,6BAA+BxS,OAAOyS,0BAA4BzS,OAAO0S,wBAA0B1S,OAAO2S,yBAA2B,SAAUC,GAC3L5S,OAAO0O,WAAWkE,EAAU,IAAO,KAGvC5S,OAAO0K,uBACE1K,OAAO2P,sBAAwB3P,OAAO6S,mCAAqC7S,OAAO8S,gCAAkC9S,OAAO+S,8BAAgC/S,OAAOgT,+BAAiCC,aA2B5MjT,OAAO4P,OAAS,GAChB5P,OAAOI,YAAc,SAAUG,EAAQC,GAIhB,iBAAVD,IACTC,EAASD,EACTA,EAAS,gBAINA,IACHA,EAAS,gBAIX,IAAI2S,EAAUxS,SAASyS,eAAe5S,GAEpC6S,EAAeF,EAAQG,uBADJ,0BAIrB,GAAID,EAAanM,OACf,KAAOmM,EAAanM,OAAS,GAC3BiM,EAAQI,YAAYF,EAAa,IAKrC,IAAI3S,EAAYC,SAAS6S,cAAc,UACvC9S,EAAU+S,UAZW,yBAerB/S,EAAUgT,MAAM7R,MAAQ,OACxBnB,EAAUgT,MAAMxR,OAAS,OAMX,MAHDvB,SAASyS,eAAe5S,GAAQmT,YAAYjT,IAIvDmP,OAAO5L,KAAK,IAAI1D,EAAIC,EAAQC,KAGhCR,OAAOI,YAAYC,KAAO,SAAUE,EAAQoT,EAAkBf,GAE5D,IAAI7B,EAAM,IAAIC,eACdD,EAAIJ,KAAK,MAAOgD,GAChB5C,EAAIE,mBAAqB,SAAUC,GACjC,GAAsB,GAAlBH,EAAII,WACN,GAAkB,KAAdJ,EAAIzE,OAAe,CACrB,IAAI9L,EAASN,KAAK0T,MAAM1C,EAAKE,cAAcC,UAC3CrR,OAAOI,YAAYG,EAAQC,GACvBoS,GAAUA,SAEdrB,QAAQC,IAAI,sCAAwCT,EAAIzE,QACxDiF,QAAQC,IAAI,sCAIlBT,EAAIU","file":"js/auth-ffcd630752008fa224d2.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 490);\n","import \"particles.js\"\nlet partJson = {\n \"particles\": {\n \"number\": {\n \"value\": 80,\n \"density\": {\n \"enable\": true,\n \"value_area\": 800\n }\n },\n \"color\": {\n \"value\": \"#ffffff\"\n },\n \"shape\": {\n \"type\": \"circle\",\n \"stroke\": {\n \"width\": 0,\n \"color\": \"#000000\"\n },\n \"polygon\": {\n \"nb_sides\": 5\n },\n \"image\": {\n \"src\": \"img/github.svg\",\n \"width\": 100,\n \"height\": 100\n }\n },\n \"opacity\": {\n \"value\": 0.5,\n \"random\": false,\n \"anim\": {\n \"enable\": false,\n \"speed\": 1,\n \"opacity_min\": 0.1,\n \"sync\": false\n }\n },\n \"size\": {\n \"value\": 7.891476416322726,\n \"random\": true,\n \"anim\": {\n \"enable\": false,\n \"speed\": 40,\n \"size_min\": 0.1,\n \"sync\": false\n }\n },\n \"line_linked\": {\n \"enable\": true,\n \"distance\": 150,\n \"color\": \"#ffffff\",\n \"opacity\": 0.4,\n \"width\": 1\n },\n \"move\": {\n \"enable\": true,\n \"speed\": 6,\n \"direction\": \"none\",\n \"random\": false,\n \"straight\": false,\n \"out_mode\": \"out\",\n \"bounce\": false,\n \"attract\": {\n \"enable\": false,\n \"rotateX\": 600,\n \"rotateY\": 1200\n }\n }\n },\n \"interactivity\": {\n \"detect_on\": \"canvas\",\n \"events\": {\n \"onhover\": {\n \"enable\": true,\n \"mode\": \"repulse\"\n },\n \"onclick\": {\n \"enable\": true,\n \"mode\": \"push\"\n },\n \"resize\": true\n },\n \"modes\": {\n \"grab\": {\n \"distance\": 400,\n \"line_linked\": {\n \"opacity\": 1\n }\n },\n \"bubble\": {\n \"distance\": 400,\n \"size\": 40,\n \"duration\": 2,\n \"opacity\": 8,\n \"speed\": 3\n },\n \"repulse\": {\n \"distance\": 200,\n \"duration\": 0.4\n },\n \"push\": {\n \"particles_nb\": 4\n },\n \"remove\": {\n \"particles_nb\": 2\n }\n }\n },\n \"retina_detect\": true\n};\nvar jsonUri = \"data:text/plain;base64,\"+window.btoa(JSON.stringify(partJson));\n/* particlesJS.load(@dom-id, @path-json, @callback (optional)); */\nparticlesJS.load('particles-js', jsonUri, function() {\n\n});","/* -----------------------------------------------\n/* Author : Vincent Garreau - vincentgarreau.com\n/* MIT license: http://opensource.org/licenses/MIT\n/* Demo / Generator : vincentgarreau.com/particles.js\n/* GitHub : github.com/VincentGarreau/particles.js\n/* How to use? : Check the GitHub README\n/* v2.0.0\n/* ----------------------------------------------- */\n\nvar pJS = function (tag_id, params) {\n var canvas_el = document.querySelector('#' + tag_id + ' > .particles-js-canvas-el');\n\n /* particles.js variables with default values */\n this.pJS = {\n canvas: {\n el: canvas_el,\n w: canvas_el.offsetWidth,\n h: canvas_el.offsetHeight\n },\n particles: {\n number: {\n value: 400,\n density: {\n enable: true,\n value_area: 800\n }\n },\n color: {\n value: '#fff'\n },\n shape: {\n type: 'circle',\n stroke: {\n width: 0,\n color: '#ff0000'\n },\n polygon: {\n nb_sides: 5\n },\n image: {\n src: '',\n width: 100,\n height: 100\n }\n },\n opacity: {\n value: 1,\n random: false,\n anim: {\n enable: false,\n speed: 2,\n opacity_min: 0,\n sync: false\n }\n },\n size: {\n value: 20,\n random: false,\n anim: {\n enable: false,\n speed: 20,\n size_min: 0,\n sync: false\n }\n },\n line_linked: {\n enable: true,\n distance: 100,\n color: '#fff',\n opacity: 1,\n width: 1\n },\n move: {\n enable: true,\n speed: 2,\n direction: 'none',\n random: false,\n straight: false,\n out_mode: 'out',\n bounce: false,\n attract: {\n enable: false,\n rotateX: 3000,\n rotateY: 3000\n }\n },\n array: []\n },\n interactivity: {\n detect_on: 'canvas',\n events: {\n onhover: {\n enable: true,\n mode: 'grab'\n },\n onclick: {\n enable: true,\n mode: 'push'\n },\n resize: true\n },\n modes: {\n grab: {\n distance: 100,\n line_linked: {\n opacity: 1\n }\n },\n bubble: {\n distance: 200,\n size: 80,\n duration: 0.4\n },\n repulse: {\n distance: 200,\n duration: 0.4\n },\n push: {\n particles_nb: 4\n },\n remove: {\n particles_nb: 2\n }\n },\n mouse: {}\n },\n retina_detect: false,\n fn: {\n interact: {},\n modes: {},\n vendors: {}\n },\n tmp: {}\n };\n var pJS = this.pJS;\n\n /* params settings */\n if (params) {\n Object.deepExtend(pJS, params);\n }\n pJS.tmp.obj = {\n size_value: pJS.particles.size.value,\n size_anim_speed: pJS.particles.size.anim.speed,\n move_speed: pJS.particles.move.speed,\n line_linked_distance: pJS.particles.line_linked.distance,\n line_linked_width: pJS.particles.line_linked.width,\n mode_grab_distance: pJS.interactivity.modes.grab.distance,\n mode_bubble_distance: pJS.interactivity.modes.bubble.distance,\n mode_bubble_size: pJS.interactivity.modes.bubble.size,\n mode_repulse_distance: pJS.interactivity.modes.repulse.distance\n };\n pJS.fn.retinaInit = function () {\n if (pJS.retina_detect && window.devicePixelRatio > 1) {\n pJS.canvas.pxratio = window.devicePixelRatio;\n pJS.tmp.retina = true;\n } else {\n pJS.canvas.pxratio = 1;\n pJS.tmp.retina = false;\n }\n pJS.canvas.w = pJS.canvas.el.offsetWidth * pJS.canvas.pxratio;\n pJS.canvas.h = pJS.canvas.el.offsetHeight * pJS.canvas.pxratio;\n pJS.particles.size.value = pJS.tmp.obj.size_value * pJS.canvas.pxratio;\n pJS.particles.size.anim.speed = pJS.tmp.obj.size_anim_speed * pJS.canvas.pxratio;\n pJS.particles.move.speed = pJS.tmp.obj.move_speed * pJS.canvas.pxratio;\n pJS.particles.line_linked.distance = pJS.tmp.obj.line_linked_distance * pJS.canvas.pxratio;\n pJS.interactivity.modes.grab.distance = pJS.tmp.obj.mode_grab_distance * pJS.canvas.pxratio;\n pJS.interactivity.modes.bubble.distance = pJS.tmp.obj.mode_bubble_distance * pJS.canvas.pxratio;\n pJS.particles.line_linked.width = pJS.tmp.obj.line_linked_width * pJS.canvas.pxratio;\n pJS.interactivity.modes.bubble.size = pJS.tmp.obj.mode_bubble_size * pJS.canvas.pxratio;\n pJS.interactivity.modes.repulse.distance = pJS.tmp.obj.mode_repulse_distance * pJS.canvas.pxratio;\n };\n\n /* ---------- pJS functions - canvas ------------ */\n\n pJS.fn.canvasInit = function () {\n pJS.canvas.ctx = pJS.canvas.el.getContext('2d');\n };\n pJS.fn.canvasSize = function () {\n pJS.canvas.el.width = pJS.canvas.w;\n pJS.canvas.el.height = pJS.canvas.h;\n if (pJS && pJS.interactivity.events.resize) {\n window.addEventListener('resize', function () {\n pJS.canvas.w = pJS.canvas.el.offsetWidth;\n pJS.canvas.h = pJS.canvas.el.offsetHeight;\n\n /* resize canvas */\n if (pJS.tmp.retina) {\n pJS.canvas.w *= pJS.canvas.pxratio;\n pJS.canvas.h *= pJS.canvas.pxratio;\n }\n pJS.canvas.el.width = pJS.canvas.w;\n pJS.canvas.el.height = pJS.canvas.h;\n\n /* repaint canvas on anim disabled */\n if (!pJS.particles.move.enable) {\n pJS.fn.particlesEmpty();\n pJS.fn.particlesCreate();\n pJS.fn.particlesDraw();\n pJS.fn.vendors.densityAutoParticles();\n }\n\n /* density particles enabled */\n pJS.fn.vendors.densityAutoParticles();\n });\n }\n };\n pJS.fn.canvasPaint = function () {\n pJS.canvas.ctx.fillRect(0, 0, pJS.canvas.w, pJS.canvas.h);\n };\n pJS.fn.canvasClear = function () {\n pJS.canvas.ctx.clearRect(0, 0, pJS.canvas.w, pJS.canvas.h);\n };\n\n /* --------- pJS functions - particles ----------- */\n\n pJS.fn.particle = function (color, opacity, position) {\n /* size */\n this.radius = (pJS.particles.size.random ? Math.random() : 1) * pJS.particles.size.value;\n if (pJS.particles.size.anim.enable) {\n this.size_status = false;\n this.vs = pJS.particles.size.anim.speed / 100;\n if (!pJS.particles.size.anim.sync) {\n this.vs = this.vs * Math.random();\n }\n }\n\n /* position */\n this.x = position ? position.x : Math.random() * pJS.canvas.w;\n this.y = position ? position.y : Math.random() * pJS.canvas.h;\n\n /* check position - into the canvas */\n if (this.x > pJS.canvas.w - this.radius * 2) this.x = this.x - this.radius;else if (this.x < this.radius * 2) this.x = this.x + this.radius;\n if (this.y > pJS.canvas.h - this.radius * 2) this.y = this.y - this.radius;else if (this.y < this.radius * 2) this.y = this.y + this.radius;\n\n /* check position - avoid overlap */\n if (pJS.particles.move.bounce) {\n pJS.fn.vendors.checkOverlap(this, position);\n }\n\n /* color */\n this.color = {};\n if (typeof color.value == 'object') {\n if (color.value instanceof Array) {\n var color_selected = color.value[Math.floor(Math.random() * pJS.particles.color.value.length)];\n this.color.rgb = hexToRgb(color_selected);\n } else {\n if (color.value.r != undefined && color.value.g != undefined && color.value.b != undefined) {\n this.color.rgb = {\n r: color.value.r,\n g: color.value.g,\n b: color.value.b\n };\n }\n if (color.value.h != undefined && color.value.s != undefined && color.value.l != undefined) {\n this.color.hsl = {\n h: color.value.h,\n s: color.value.s,\n l: color.value.l\n };\n }\n }\n } else if (color.value == 'random') {\n this.color.rgb = {\n r: Math.floor(Math.random() * (255 - 0 + 1)) + 0,\n g: Math.floor(Math.random() * (255 - 0 + 1)) + 0,\n b: Math.floor(Math.random() * (255 - 0 + 1)) + 0\n };\n } else if (typeof color.value == 'string') {\n this.color = color;\n this.color.rgb = hexToRgb(this.color.value);\n }\n\n /* opacity */\n this.opacity = (pJS.particles.opacity.random ? Math.random() : 1) * pJS.particles.opacity.value;\n if (pJS.particles.opacity.anim.enable) {\n this.opacity_status = false;\n this.vo = pJS.particles.opacity.anim.speed / 100;\n if (!pJS.particles.opacity.anim.sync) {\n this.vo = this.vo * Math.random();\n }\n }\n\n /* animation - velocity for speed */\n var velbase = {};\n switch (pJS.particles.move.direction) {\n case 'top':\n velbase = {\n x: 0,\n y: -1\n };\n break;\n case 'top-right':\n velbase = {\n x: 0.5,\n y: -0.5\n };\n break;\n case 'right':\n velbase = {\n x: 1,\n y: -0\n };\n break;\n case 'bottom-right':\n velbase = {\n x: 0.5,\n y: 0.5\n };\n break;\n case 'bottom':\n velbase = {\n x: 0,\n y: 1\n };\n break;\n case 'bottom-left':\n velbase = {\n x: -0.5,\n y: 1\n };\n break;\n case 'left':\n velbase = {\n x: -1,\n y: 0\n };\n break;\n case 'top-left':\n velbase = {\n x: -0.5,\n y: -0.5\n };\n break;\n default:\n velbase = {\n x: 0,\n y: 0\n };\n break;\n }\n if (pJS.particles.move.straight) {\n this.vx = velbase.x;\n this.vy = velbase.y;\n if (pJS.particles.move.random) {\n this.vx = this.vx * Math.random();\n this.vy = this.vy * Math.random();\n }\n } else {\n this.vx = velbase.x + Math.random() - 0.5;\n this.vy = velbase.y + Math.random() - 0.5;\n }\n\n // var theta = 2.0 * Math.PI * Math.random();\n // this.vx = Math.cos(theta);\n // this.vy = Math.sin(theta);\n\n this.vx_i = this.vx;\n this.vy_i = this.vy;\n\n /* if shape is image */\n\n var shape_type = pJS.particles.shape.type;\n if (typeof shape_type == 'object') {\n if (shape_type instanceof Array) {\n var shape_selected = shape_type[Math.floor(Math.random() * shape_type.length)];\n this.shape = shape_selected;\n }\n } else {\n this.shape = shape_type;\n }\n if (this.shape == 'image') {\n var sh = pJS.particles.shape;\n this.img = {\n src: sh.image.src,\n ratio: sh.image.width / sh.image.height\n };\n if (!this.img.ratio) this.img.ratio = 1;\n if (pJS.tmp.img_type == 'svg' && pJS.tmp.source_svg != undefined) {\n pJS.fn.vendors.createSvgImg(this);\n if (pJS.tmp.pushing) {\n this.img.loaded = false;\n }\n }\n }\n };\n pJS.fn.particle.prototype.draw = function () {\n var p = this;\n if (p.radius_bubble != undefined) {\n var radius = p.radius_bubble;\n } else {\n var radius = p.radius;\n }\n if (p.opacity_bubble != undefined) {\n var opacity = p.opacity_bubble;\n } else {\n var opacity = p.opacity;\n }\n if (p.color.rgb) {\n var color_value = 'rgba(' + p.color.rgb.r + ',' + p.color.rgb.g + ',' + p.color.rgb.b + ',' + opacity + ')';\n } else {\n var color_value = 'hsla(' + p.color.hsl.h + ',' + p.color.hsl.s + '%,' + p.color.hsl.l + '%,' + opacity + ')';\n }\n pJS.canvas.ctx.fillStyle = color_value;\n pJS.canvas.ctx.beginPath();\n switch (p.shape) {\n case 'circle':\n pJS.canvas.ctx.arc(p.x, p.y, radius, 0, Math.PI * 2, false);\n break;\n case 'edge':\n pJS.canvas.ctx.rect(p.x - radius, p.y - radius, radius * 2, radius * 2);\n break;\n case 'triangle':\n pJS.fn.vendors.drawShape(pJS.canvas.ctx, p.x - radius, p.y + radius / 1.66, radius * 2, 3, 2);\n break;\n case 'polygon':\n pJS.fn.vendors.drawShape(pJS.canvas.ctx, p.x - radius / (pJS.particles.shape.polygon.nb_sides / 3.5),\n // startX\n p.y - radius / (2.66 / 3.5),\n // startY\n radius * 2.66 / (pJS.particles.shape.polygon.nb_sides / 3),\n // sideLength\n pJS.particles.shape.polygon.nb_sides,\n // sideCountNumerator\n 1 // sideCountDenominator\n );\n\n break;\n case 'star':\n pJS.fn.vendors.drawShape(pJS.canvas.ctx, p.x - radius * 2 / (pJS.particles.shape.polygon.nb_sides / 4),\n // startX\n p.y - radius / (2 * 2.66 / 3.5),\n // startY\n radius * 2 * 2.66 / (pJS.particles.shape.polygon.nb_sides / 3),\n // sideLength\n pJS.particles.shape.polygon.nb_sides,\n // sideCountNumerator\n 2 // sideCountDenominator\n );\n\n break;\n case 'image':\n function draw() {\n pJS.canvas.ctx.drawImage(img_obj, p.x - radius, p.y - radius, radius * 2, radius * 2 / p.img.ratio);\n }\n if (pJS.tmp.img_type == 'svg') {\n var img_obj = p.img.obj;\n } else {\n var img_obj = pJS.tmp.img_obj;\n }\n if (img_obj) {\n draw();\n }\n break;\n }\n pJS.canvas.ctx.closePath();\n if (pJS.particles.shape.stroke.width > 0) {\n pJS.canvas.ctx.strokeStyle = pJS.particles.shape.stroke.color;\n pJS.canvas.ctx.lineWidth = pJS.particles.shape.stroke.width;\n pJS.canvas.ctx.stroke();\n }\n pJS.canvas.ctx.fill();\n };\n pJS.fn.particlesCreate = function () {\n for (var i = 0; i < pJS.particles.number.value; i++) {\n pJS.particles.array.push(new pJS.fn.particle(pJS.particles.color, pJS.particles.opacity.value));\n }\n };\n pJS.fn.particlesUpdate = function () {\n for (var i = 0; i < pJS.particles.array.length; i++) {\n /* the particle */\n var p = pJS.particles.array[i];\n\n // var d = ( dx = pJS.interactivity.mouse.click_pos_x - p.x ) * dx + ( dy = pJS.interactivity.mouse.click_pos_y - p.y ) * dy;\n // var f = -BANG_SIZE / d;\n // if ( d < BANG_SIZE ) {\n // var t = Math.atan2( dy, dx );\n // p.vx = f * Math.cos(t);\n // p.vy = f * Math.sin(t);\n // }\n\n /* move the particle */\n if (pJS.particles.move.enable) {\n var ms = pJS.particles.move.speed / 2;\n p.x += p.vx * ms;\n p.y += p.vy * ms;\n }\n\n /* change opacity status */\n if (pJS.particles.opacity.anim.enable) {\n if (p.opacity_status == true) {\n if (p.opacity >= pJS.particles.opacity.value) p.opacity_status = false;\n p.opacity += p.vo;\n } else {\n if (p.opacity <= pJS.particles.opacity.anim.opacity_min) p.opacity_status = true;\n p.opacity -= p.vo;\n }\n if (p.opacity < 0) p.opacity = 0;\n }\n\n /* change size */\n if (pJS.particles.size.anim.enable) {\n if (p.size_status == true) {\n if (p.radius >= pJS.particles.size.value) p.size_status = false;\n p.radius += p.vs;\n } else {\n if (p.radius <= pJS.particles.size.anim.size_min) p.size_status = true;\n p.radius -= p.vs;\n }\n if (p.radius < 0) p.radius = 0;\n }\n\n /* change particle position if it is out of canvas */\n if (pJS.particles.move.out_mode == 'bounce') {\n var new_pos = {\n x_left: p.radius,\n x_right: pJS.canvas.w,\n y_top: p.radius,\n y_bottom: pJS.canvas.h\n };\n } else {\n var new_pos = {\n x_left: -p.radius,\n x_right: pJS.canvas.w + p.radius,\n y_top: -p.radius,\n y_bottom: pJS.canvas.h + p.radius\n };\n }\n if (p.x - p.radius > pJS.canvas.w) {\n p.x = new_pos.x_left;\n p.y = Math.random() * pJS.canvas.h;\n } else if (p.x + p.radius < 0) {\n p.x = new_pos.x_right;\n p.y = Math.random() * pJS.canvas.h;\n }\n if (p.y - p.radius > pJS.canvas.h) {\n p.y = new_pos.y_top;\n p.x = Math.random() * pJS.canvas.w;\n } else if (p.y + p.radius < 0) {\n p.y = new_pos.y_bottom;\n p.x = Math.random() * pJS.canvas.w;\n }\n\n /* out of canvas modes */\n switch (pJS.particles.move.out_mode) {\n case 'bounce':\n if (p.x + p.radius > pJS.canvas.w) p.vx = -p.vx;else if (p.x - p.radius < 0) p.vx = -p.vx;\n if (p.y + p.radius > pJS.canvas.h) p.vy = -p.vy;else if (p.y - p.radius < 0) p.vy = -p.vy;\n break;\n }\n\n /* events */\n if (isInArray('grab', pJS.interactivity.events.onhover.mode)) {\n pJS.fn.modes.grabParticle(p);\n }\n if (isInArray('bubble', pJS.interactivity.events.onhover.mode) || isInArray('bubble', pJS.interactivity.events.onclick.mode)) {\n pJS.fn.modes.bubbleParticle(p);\n }\n if (isInArray('repulse', pJS.interactivity.events.onhover.mode) || isInArray('repulse', pJS.interactivity.events.onclick.mode)) {\n pJS.fn.modes.repulseParticle(p);\n }\n\n /* interaction auto between particles */\n if (pJS.particles.line_linked.enable || pJS.particles.move.attract.enable) {\n for (var j = i + 1; j < pJS.particles.array.length; j++) {\n var p2 = pJS.particles.array[j];\n\n /* link particles */\n if (pJS.particles.line_linked.enable) {\n pJS.fn.interact.linkParticles(p, p2);\n }\n\n /* attract particles */\n if (pJS.particles.move.attract.enable) {\n pJS.fn.interact.attractParticles(p, p2);\n }\n\n /* bounce particles */\n if (pJS.particles.move.bounce) {\n pJS.fn.interact.bounceParticles(p, p2);\n }\n }\n }\n }\n };\n pJS.fn.particlesDraw = function () {\n /* clear canvas */\n pJS.canvas.ctx.clearRect(0, 0, pJS.canvas.w, pJS.canvas.h);\n\n /* update each particles param */\n pJS.fn.particlesUpdate();\n\n /* draw each particle */\n for (var i = 0; i < pJS.particles.array.length; i++) {\n var p = pJS.particles.array[i];\n p.draw();\n }\n };\n pJS.fn.particlesEmpty = function () {\n pJS.particles.array = [];\n };\n pJS.fn.particlesRefresh = function () {\n /* init all */\n cancelRequestAnimFrame(pJS.fn.checkAnimFrame);\n cancelRequestAnimFrame(pJS.fn.drawAnimFrame);\n pJS.tmp.source_svg = undefined;\n pJS.tmp.img_obj = undefined;\n pJS.tmp.count_svg = 0;\n pJS.fn.particlesEmpty();\n pJS.fn.canvasClear();\n\n /* restart */\n pJS.fn.vendors.start();\n };\n\n /* ---------- pJS functions - particles interaction ------------ */\n\n pJS.fn.interact.linkParticles = function (p1, p2) {\n var dx = p1.x - p2.x,\n dy = p1.y - p2.y,\n dist = Math.sqrt(dx * dx + dy * dy);\n\n /* draw a line between p1 and p2 if the distance between them is under the config distance */\n if (dist <= pJS.particles.line_linked.distance) {\n var opacity_line = pJS.particles.line_linked.opacity - dist / (1 / pJS.particles.line_linked.opacity) / pJS.particles.line_linked.distance;\n if (opacity_line > 0) {\n /* style */\n var color_line = pJS.particles.line_linked.color_rgb_line;\n pJS.canvas.ctx.strokeStyle = 'rgba(' + color_line.r + ',' + color_line.g + ',' + color_line.b + ',' + opacity_line + ')';\n pJS.canvas.ctx.lineWidth = pJS.particles.line_linked.width;\n //pJS.canvas.ctx.lineCap = 'round'; /* performance issue */\n\n /* path */\n pJS.canvas.ctx.beginPath();\n pJS.canvas.ctx.moveTo(p1.x, p1.y);\n pJS.canvas.ctx.lineTo(p2.x, p2.y);\n pJS.canvas.ctx.stroke();\n pJS.canvas.ctx.closePath();\n }\n }\n };\n pJS.fn.interact.attractParticles = function (p1, p2) {\n /* condensed particles */\n var dx = p1.x - p2.x,\n dy = p1.y - p2.y,\n dist = Math.sqrt(dx * dx + dy * dy);\n if (dist <= pJS.particles.line_linked.distance) {\n var ax = dx / (pJS.particles.move.attract.rotateX * 1000),\n ay = dy / (pJS.particles.move.attract.rotateY * 1000);\n p1.vx -= ax;\n p1.vy -= ay;\n p2.vx += ax;\n p2.vy += ay;\n }\n };\n pJS.fn.interact.bounceParticles = function (p1, p2) {\n var dx = p1.x - p2.x,\n dy = p1.y - p2.y,\n dist = Math.sqrt(dx * dx + dy * dy),\n dist_p = p1.radius + p2.radius;\n if (dist <= dist_p) {\n p1.vx = -p1.vx;\n p1.vy = -p1.vy;\n p2.vx = -p2.vx;\n p2.vy = -p2.vy;\n }\n };\n\n /* ---------- pJS functions - modes events ------------ */\n\n pJS.fn.modes.pushParticles = function (nb, pos) {\n pJS.tmp.pushing = true;\n for (var i = 0; i < nb; i++) {\n pJS.particles.array.push(new pJS.fn.particle(pJS.particles.color, pJS.particles.opacity.value, {\n 'x': pos ? pos.pos_x : Math.random() * pJS.canvas.w,\n 'y': pos ? pos.pos_y : Math.random() * pJS.canvas.h\n }));\n if (i == nb - 1) {\n if (!pJS.particles.move.enable) {\n pJS.fn.particlesDraw();\n }\n pJS.tmp.pushing = false;\n }\n }\n };\n pJS.fn.modes.removeParticles = function (nb) {\n pJS.particles.array.splice(0, nb);\n if (!pJS.particles.move.enable) {\n pJS.fn.particlesDraw();\n }\n };\n pJS.fn.modes.bubbleParticle = function (p) {\n /* on hover event */\n if (pJS.interactivity.events.onhover.enable && isInArray('bubble', pJS.interactivity.events.onhover.mode)) {\n var dx_mouse = p.x - pJS.interactivity.mouse.pos_x,\n dy_mouse = p.y - pJS.interactivity.mouse.pos_y,\n dist_mouse = Math.sqrt(dx_mouse * dx_mouse + dy_mouse * dy_mouse),\n ratio = 1 - dist_mouse / pJS.interactivity.modes.bubble.distance;\n function init() {\n p.opacity_bubble = p.opacity;\n p.radius_bubble = p.radius;\n }\n\n /* mousemove - check ratio */\n if (dist_mouse <= pJS.interactivity.modes.bubble.distance) {\n if (ratio >= 0 && pJS.interactivity.status == 'mousemove') {\n /* size */\n if (pJS.interactivity.modes.bubble.size != pJS.particles.size.value) {\n if (pJS.interactivity.modes.bubble.size > pJS.particles.size.value) {\n var size = p.radius + pJS.interactivity.modes.bubble.size * ratio;\n if (size >= 0) {\n p.radius_bubble = size;\n }\n } else {\n var dif = p.radius - pJS.interactivity.modes.bubble.size,\n size = p.radius - dif * ratio;\n if (size > 0) {\n p.radius_bubble = size;\n } else {\n p.radius_bubble = 0;\n }\n }\n }\n\n /* opacity */\n if (pJS.interactivity.modes.bubble.opacity != pJS.particles.opacity.value) {\n if (pJS.interactivity.modes.bubble.opacity > pJS.particles.opacity.value) {\n var opacity = pJS.interactivity.modes.bubble.opacity * ratio;\n if (opacity > p.opacity && opacity <= pJS.interactivity.modes.bubble.opacity) {\n p.opacity_bubble = opacity;\n }\n } else {\n var opacity = p.opacity - (pJS.particles.opacity.value - pJS.interactivity.modes.bubble.opacity) * ratio;\n if (opacity < p.opacity && opacity >= pJS.interactivity.modes.bubble.opacity) {\n p.opacity_bubble = opacity;\n }\n }\n }\n }\n } else {\n init();\n }\n\n /* mouseleave */\n if (pJS.interactivity.status == 'mouseleave') {\n init();\n }\n }\n\n /* on click event */else if (pJS.interactivity.events.onclick.enable && isInArray('bubble', pJS.interactivity.events.onclick.mode)) {\n if (pJS.tmp.bubble_clicking) {\n var dx_mouse = p.x - pJS.interactivity.mouse.click_pos_x,\n dy_mouse = p.y - pJS.interactivity.mouse.click_pos_y,\n dist_mouse = Math.sqrt(dx_mouse * dx_mouse + dy_mouse * dy_mouse),\n time_spent = (new Date().getTime() - pJS.interactivity.mouse.click_time) / 1000;\n if (time_spent > pJS.interactivity.modes.bubble.duration) {\n pJS.tmp.bubble_duration_end = true;\n }\n if (time_spent > pJS.interactivity.modes.bubble.duration * 2) {\n pJS.tmp.bubble_clicking = false;\n pJS.tmp.bubble_duration_end = false;\n }\n }\n function process(bubble_param, particles_param, p_obj_bubble, p_obj, id) {\n if (bubble_param != particles_param) {\n if (!pJS.tmp.bubble_duration_end) {\n if (dist_mouse <= pJS.interactivity.modes.bubble.distance) {\n if (p_obj_bubble != undefined) var obj = p_obj_bubble;else var obj = p_obj;\n if (obj != bubble_param) {\n var value = p_obj - time_spent * (p_obj - bubble_param) / pJS.interactivity.modes.bubble.duration;\n if (id == 'size') p.radius_bubble = value;\n if (id == 'opacity') p.opacity_bubble = value;\n }\n } else {\n if (id == 'size') p.radius_bubble = undefined;\n if (id == 'opacity') p.opacity_bubble = undefined;\n }\n } else {\n if (p_obj_bubble != undefined) {\n var value_tmp = p_obj - time_spent * (p_obj - bubble_param) / pJS.interactivity.modes.bubble.duration,\n dif = bubble_param - value_tmp;\n value = bubble_param + dif;\n if (id == 'size') p.radius_bubble = value;\n if (id == 'opacity') p.opacity_bubble = value;\n }\n }\n }\n }\n if (pJS.tmp.bubble_clicking) {\n /* size */\n process(pJS.interactivity.modes.bubble.size, pJS.particles.size.value, p.radius_bubble, p.radius, 'size');\n /* opacity */\n process(pJS.interactivity.modes.bubble.opacity, pJS.particles.opacity.value, p.opacity_bubble, p.opacity, 'opacity');\n }\n }\n };\n pJS.fn.modes.repulseParticle = function (p) {\n if (pJS.interactivity.events.onhover.enable && isInArray('repulse', pJS.interactivity.events.onhover.mode) && pJS.interactivity.status == 'mousemove') {\n var dx_mouse = p.x - pJS.interactivity.mouse.pos_x,\n dy_mouse = p.y - pJS.interactivity.mouse.pos_y,\n dist_mouse = Math.sqrt(dx_mouse * dx_mouse + dy_mouse * dy_mouse);\n var normVec = {\n x: dx_mouse / dist_mouse,\n y: dy_mouse / dist_mouse\n },\n repulseRadius = pJS.interactivity.modes.repulse.distance,\n velocity = 100,\n repulseFactor = clamp(1 / repulseRadius * (-1 * Math.pow(dist_mouse / repulseRadius, 2) + 1) * repulseRadius * velocity, 0, 50);\n var pos = {\n x: p.x + normVec.x * repulseFactor,\n y: p.y + normVec.y * repulseFactor\n };\n if (pJS.particles.move.out_mode == 'bounce') {\n if (pos.x - p.radius > 0 && pos.x + p.radius < pJS.canvas.w) p.x = pos.x;\n if (pos.y - p.radius > 0 && pos.y + p.radius < pJS.canvas.h) p.y = pos.y;\n } else {\n p.x = pos.x;\n p.y = pos.y;\n }\n } else if (pJS.interactivity.events.onclick.enable && isInArray('repulse', pJS.interactivity.events.onclick.mode)) {\n if (!pJS.tmp.repulse_finish) {\n pJS.tmp.repulse_count++;\n if (pJS.tmp.repulse_count == pJS.particles.array.length) {\n pJS.tmp.repulse_finish = true;\n }\n }\n if (pJS.tmp.repulse_clicking) {\n var repulseRadius = Math.pow(pJS.interactivity.modes.repulse.distance / 6, 3);\n var dx = pJS.interactivity.mouse.click_pos_x - p.x,\n dy = pJS.interactivity.mouse.click_pos_y - p.y,\n d = dx * dx + dy * dy;\n var force = -repulseRadius / d * 1;\n function process() {\n var f = Math.atan2(dy, dx);\n p.vx = force * Math.cos(f);\n p.vy = force * Math.sin(f);\n if (pJS.particles.move.out_mode == 'bounce') {\n var pos = {\n x: p.x + p.vx,\n y: p.y + p.vy\n };\n if (pos.x + p.radius > pJS.canvas.w) p.vx = -p.vx;else if (pos.x - p.radius < 0) p.vx = -p.vx;\n if (pos.y + p.radius > pJS.canvas.h) p.vy = -p.vy;else if (pos.y - p.radius < 0) p.vy = -p.vy;\n }\n }\n\n // default\n if (d <= repulseRadius) {\n process();\n }\n\n // bang - slow motion mode\n // if(!pJS.tmp.repulse_finish){\n // if(d <= repulseRadius){\n // process();\n // }\n // }else{\n // process();\n // }\n } else {\n if (pJS.tmp.repulse_clicking == false) {\n p.vx = p.vx_i;\n p.vy = p.vy_i;\n }\n }\n }\n };\n pJS.fn.modes.grabParticle = function (p) {\n if (pJS.interactivity.events.onhover.enable && pJS.interactivity.status == 'mousemove') {\n var dx_mouse = p.x - pJS.interactivity.mouse.pos_x,\n dy_mouse = p.y - pJS.interactivity.mouse.pos_y,\n dist_mouse = Math.sqrt(dx_mouse * dx_mouse + dy_mouse * dy_mouse);\n\n /* draw a line between the cursor and the particle if the distance between them is under the config distance */\n if (dist_mouse <= pJS.interactivity.modes.grab.distance) {\n var opacity_line = pJS.interactivity.modes.grab.line_linked.opacity - dist_mouse / (1 / pJS.interactivity.modes.grab.line_linked.opacity) / pJS.interactivity.modes.grab.distance;\n if (opacity_line > 0) {\n /* style */\n var color_line = pJS.particles.line_linked.color_rgb_line;\n pJS.canvas.ctx.strokeStyle = 'rgba(' + color_line.r + ',' + color_line.g + ',' + color_line.b + ',' + opacity_line + ')';\n pJS.canvas.ctx.lineWidth = pJS.particles.line_linked.width;\n //pJS.canvas.ctx.lineCap = 'round'; /* performance issue */\n\n /* path */\n pJS.canvas.ctx.beginPath();\n pJS.canvas.ctx.moveTo(p.x, p.y);\n pJS.canvas.ctx.lineTo(pJS.interactivity.mouse.pos_x, pJS.interactivity.mouse.pos_y);\n pJS.canvas.ctx.stroke();\n pJS.canvas.ctx.closePath();\n }\n }\n }\n };\n\n /* ---------- pJS functions - vendors ------------ */\n\n pJS.fn.vendors.eventsListeners = function () {\n /* events target element */\n if (pJS.interactivity.detect_on == 'window') {\n pJS.interactivity.el = window;\n } else {\n pJS.interactivity.el = pJS.canvas.el;\n }\n\n /* detect mouse pos - on hover / click event */\n if (pJS.interactivity.events.onhover.enable || pJS.interactivity.events.onclick.enable) {\n /* el on mousemove */\n pJS.interactivity.el.addEventListener('mousemove', function (e) {\n if (pJS.interactivity.el == window) {\n var pos_x = e.clientX,\n pos_y = e.clientY;\n } else {\n var pos_x = e.offsetX || e.clientX,\n pos_y = e.offsetY || e.clientY;\n }\n pJS.interactivity.mouse.pos_x = pos_x;\n pJS.interactivity.mouse.pos_y = pos_y;\n if (pJS.tmp.retina) {\n pJS.interactivity.mouse.pos_x *= pJS.canvas.pxratio;\n pJS.interactivity.mouse.pos_y *= pJS.canvas.pxratio;\n }\n pJS.interactivity.status = 'mousemove';\n });\n\n /* el on onmouseleave */\n pJS.interactivity.el.addEventListener('mouseleave', function (e) {\n pJS.interactivity.mouse.pos_x = null;\n pJS.interactivity.mouse.pos_y = null;\n pJS.interactivity.status = 'mouseleave';\n });\n }\n\n /* on click event */\n if (pJS.interactivity.events.onclick.enable) {\n pJS.interactivity.el.addEventListener('click', function () {\n pJS.interactivity.mouse.click_pos_x = pJS.interactivity.mouse.pos_x;\n pJS.interactivity.mouse.click_pos_y = pJS.interactivity.mouse.pos_y;\n pJS.interactivity.mouse.click_time = new Date().getTime();\n if (pJS.interactivity.events.onclick.enable) {\n switch (pJS.interactivity.events.onclick.mode) {\n case 'push':\n if (pJS.particles.move.enable) {\n pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb, pJS.interactivity.mouse);\n } else {\n if (pJS.interactivity.modes.push.particles_nb == 1) {\n pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb, pJS.interactivity.mouse);\n } else if (pJS.interactivity.modes.push.particles_nb > 1) {\n pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb);\n }\n }\n break;\n case 'remove':\n pJS.fn.modes.removeParticles(pJS.interactivity.modes.remove.particles_nb);\n break;\n case 'bubble':\n pJS.tmp.bubble_clicking = true;\n break;\n case 'repulse':\n pJS.tmp.repulse_clicking = true;\n pJS.tmp.repulse_count = 0;\n pJS.tmp.repulse_finish = false;\n setTimeout(function () {\n pJS.tmp.repulse_clicking = false;\n }, pJS.interactivity.modes.repulse.duration * 1000);\n break;\n }\n }\n });\n }\n };\n pJS.fn.vendors.densityAutoParticles = function () {\n if (pJS.particles.number.density.enable) {\n /* calc area */\n var area = pJS.canvas.el.width * pJS.canvas.el.height / 1000;\n if (pJS.tmp.retina) {\n area = area / (pJS.canvas.pxratio * 2);\n }\n\n /* calc number of particles based on density area */\n var nb_particles = area * pJS.particles.number.value / pJS.particles.number.density.value_area;\n\n /* add or remove X particles */\n var missing_particles = pJS.particles.array.length - nb_particles;\n if (missing_particles < 0) pJS.fn.modes.pushParticles(Math.abs(missing_particles));else pJS.fn.modes.removeParticles(missing_particles);\n }\n };\n pJS.fn.vendors.checkOverlap = function (p1, position) {\n for (var i = 0; i < pJS.particles.array.length; i++) {\n var p2 = pJS.particles.array[i];\n var dx = p1.x - p2.x,\n dy = p1.y - p2.y,\n dist = Math.sqrt(dx * dx + dy * dy);\n if (dist <= p1.radius + p2.radius) {\n p1.x = position ? position.x : Math.random() * pJS.canvas.w;\n p1.y = position ? position.y : Math.random() * pJS.canvas.h;\n pJS.fn.vendors.checkOverlap(p1);\n }\n }\n };\n pJS.fn.vendors.createSvgImg = function (p) {\n /* set color to svg element */\n var svgXml = pJS.tmp.source_svg,\n rgbHex = /#([0-9A-F]{3,6})/gi,\n coloredSvgXml = svgXml.replace(rgbHex, function (m, r, g, b) {\n if (p.color.rgb) {\n var color_value = 'rgba(' + p.color.rgb.r + ',' + p.color.rgb.g + ',' + p.color.rgb.b + ',' + p.opacity + ')';\n } else {\n var color_value = 'hsla(' + p.color.hsl.h + ',' + p.color.hsl.s + '%,' + p.color.hsl.l + '%,' + p.opacity + ')';\n }\n return color_value;\n });\n\n /* prepare to create img with colored svg */\n var svg = new Blob([coloredSvgXml], {\n type: 'image/svg+xml;charset=utf-8'\n }),\n DOMURL = window.URL || window.webkitURL || window,\n url = DOMURL.createObjectURL(svg);\n\n /* create particle img obj */\n var img = new Image();\n img.addEventListener('load', function () {\n p.img.obj = img;\n p.img.loaded = true;\n DOMURL.revokeObjectURL(url);\n pJS.tmp.count_svg++;\n });\n img.src = url;\n };\n pJS.fn.vendors.destroypJS = function () {\n cancelAnimationFrame(pJS.fn.drawAnimFrame);\n canvas_el.remove();\n pJSDom = null;\n };\n pJS.fn.vendors.drawShape = function (c, startX, startY, sideLength, sideCountNumerator, sideCountDenominator) {\n // By Programming Thomas - https://programmingthomas.wordpress.com/2013/04/03/n-sided-shapes/\n var sideCount = sideCountNumerator * sideCountDenominator;\n var decimalSides = sideCountNumerator / sideCountDenominator;\n var interiorAngleDegrees = 180 * (decimalSides - 2) / decimalSides;\n var interiorAngle = Math.PI - Math.PI * interiorAngleDegrees / 180; // convert to radians\n c.save();\n c.beginPath();\n c.translate(startX, startY);\n c.moveTo(0, 0);\n for (var i = 0; i < sideCount; i++) {\n c.lineTo(sideLength, 0);\n c.translate(sideLength, 0);\n c.rotate(interiorAngle);\n }\n //c.stroke();\n c.fill();\n c.restore();\n };\n pJS.fn.vendors.exportImg = function () {\n window.open(pJS.canvas.el.toDataURL('image/png'), '_blank');\n };\n pJS.fn.vendors.loadImg = function (type) {\n pJS.tmp.img_error = undefined;\n if (pJS.particles.shape.image.src != '') {\n if (type == 'svg') {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', pJS.particles.shape.image.src);\n xhr.onreadystatechange = function (data) {\n if (xhr.readyState == 4) {\n if (xhr.status == 200) {\n pJS.tmp.source_svg = data.currentTarget.response;\n pJS.fn.vendors.checkBeforeDraw();\n } else {\n console.log('Error pJS - Image not found');\n pJS.tmp.img_error = true;\n }\n }\n };\n xhr.send();\n } else {\n var img = new Image();\n img.addEventListener('load', function () {\n pJS.tmp.img_obj = img;\n pJS.fn.vendors.checkBeforeDraw();\n });\n img.src = pJS.particles.shape.image.src;\n }\n } else {\n console.log('Error pJS - No image.src');\n pJS.tmp.img_error = true;\n }\n };\n pJS.fn.vendors.draw = function () {\n if (pJS.particles.shape.type == 'image') {\n if (pJS.tmp.img_type == 'svg') {\n if (pJS.tmp.count_svg >= pJS.particles.number.value) {\n pJS.fn.particlesDraw();\n if (!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame);else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\n } else {\n //console.log('still loading...');\n if (!pJS.tmp.img_error) pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\n }\n } else {\n if (pJS.tmp.img_obj != undefined) {\n pJS.fn.particlesDraw();\n if (!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame);else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\n } else {\n if (!pJS.tmp.img_error) pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\n }\n }\n } else {\n pJS.fn.particlesDraw();\n if (!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame);else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw);\n }\n };\n pJS.fn.vendors.checkBeforeDraw = function () {\n // if shape is image\n if (pJS.particles.shape.type == 'image') {\n if (pJS.tmp.img_type == 'svg' && pJS.tmp.source_svg == undefined) {\n pJS.tmp.checkAnimFrame = requestAnimFrame(check);\n } else {\n //console.log('images loaded! cancel check');\n cancelRequestAnimFrame(pJS.tmp.checkAnimFrame);\n if (!pJS.tmp.img_error) {\n pJS.fn.vendors.init();\n pJS.fn.vendors.draw();\n }\n }\n } else {\n pJS.fn.vendors.init();\n pJS.fn.vendors.draw();\n }\n };\n pJS.fn.vendors.init = function () {\n /* init canvas + particles */\n pJS.fn.retinaInit();\n pJS.fn.canvasInit();\n pJS.fn.canvasSize();\n pJS.fn.canvasPaint();\n pJS.fn.particlesCreate();\n pJS.fn.vendors.densityAutoParticles();\n\n /* particles.line_linked - convert hex colors to rgb */\n pJS.particles.line_linked.color_rgb_line = hexToRgb(pJS.particles.line_linked.color);\n };\n pJS.fn.vendors.start = function () {\n if (isInArray('image', pJS.particles.shape.type)) {\n pJS.tmp.img_type = pJS.particles.shape.image.src.substr(pJS.particles.shape.image.src.length - 3);\n pJS.fn.vendors.loadImg(pJS.tmp.img_type);\n } else {\n pJS.fn.vendors.checkBeforeDraw();\n }\n };\n\n /* ---------- pJS - start ------------ */\n\n pJS.fn.vendors.eventsListeners();\n pJS.fn.vendors.start();\n};\n\n/* ---------- global functions - vendors ------------ */\n\nObject.deepExtend = function (destination, source) {\n for (var property in source) {\n if (source[property] && source[property].constructor && source[property].constructor === Object) {\n destination[property] = destination[property] || {};\n arguments.callee(destination[property], source[property]);\n } else {\n destination[property] = source[property];\n }\n }\n return destination;\n};\nwindow.requestAnimFrame = function () {\n return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) {\n window.setTimeout(callback, 1000 / 60);\n };\n}();\nwindow.cancelRequestAnimFrame = function () {\n return window.cancelAnimationFrame || window.webkitCancelRequestAnimationFrame || window.mozCancelRequestAnimationFrame || window.oCancelRequestAnimationFrame || window.msCancelRequestAnimationFrame || clearTimeout;\n}();\nfunction hexToRgb(hex) {\n // By Tim Down - http://stackoverflow.com/a/5624139/3493650\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n hex = hex.replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null;\n}\n;\nfunction clamp(number, min, max) {\n return Math.min(Math.max(number, min), max);\n}\n;\nfunction isInArray(value, array) {\n return array.indexOf(value) > -1;\n}\n\n/* ---------- particles.js functions - start ------------ */\n\nwindow.pJSDom = [];\nwindow.particlesJS = function (tag_id, params) {\n //console.log(params);\n\n /* no string id? so it's object params, and set the id with default id */\n if (typeof tag_id != 'string') {\n params = tag_id;\n tag_id = 'particles-js';\n }\n\n /* no id? set the id to default id */\n if (!tag_id) {\n tag_id = 'particles-js';\n }\n\n /* pJS elements */\n var pJS_tag = document.getElementById(tag_id),\n pJS_canvas_class = 'particles-js-canvas-el',\n exist_canvas = pJS_tag.getElementsByClassName(pJS_canvas_class);\n\n /* remove canvas if exists into the pJS target tag */\n if (exist_canvas.length) {\n while (exist_canvas.length > 0) {\n pJS_tag.removeChild(exist_canvas[0]);\n }\n }\n\n /* create canvas element */\n var canvas_el = document.createElement('canvas');\n canvas_el.className = pJS_canvas_class;\n\n /* set size canvas */\n canvas_el.style.width = \"100%\";\n canvas_el.style.height = \"100%\";\n\n /* append canvas */\n var canvas = document.getElementById(tag_id).appendChild(canvas_el);\n\n /* launch particle.js */\n if (canvas != null) {\n pJSDom.push(new pJS(tag_id, params));\n }\n};\nwindow.particlesJS.load = function (tag_id, path_config_json, callback) {\n /* load json config */\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path_config_json);\n xhr.onreadystatechange = function (data) {\n if (xhr.readyState == 4) {\n if (xhr.status == 200) {\n var params = JSON.parse(data.currentTarget.response);\n window.particlesJS(tag_id, params);\n if (callback) callback();\n } else {\n console.log('Error pJS - XMLHttpRequest status: ' + xhr.status);\n console.log('Error pJS - File config not found');\n }\n }\n };\n xhr.send();\n};"],"sourceRoot":""}