PageSourceSearch

https://www.dfakto.com/assets/index-DjCKDd4E.js

js dfakto.com collected 2026-10-07 01:26:51 UTC 1,101,997 bytes, 450 lines download raw bytes

vendor: 6,287 bytes, lines 1-9
1var R2=Object.defineProperty;var vm=e=>{throw TypeError(e)};var _2=(e,t,n)=>t in e?R2(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var dn=(e,t,n)=>_2(e,typeof t!="symbol"?t+"":t,n),ec=(e,t,n)=>t.has(e)||vm("Cannot "+n);var P=(e,t,n)=>(ec(e,t,"read from private field"),n?n.call(e):t.get(e)),ie=(e,t,n)=>t.has(e)?vm("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),ee=(e,t,n,a)=>(ec(e,t,"write to private field"),a?a.call(e,n):t.set(e,n),n),Ve=(e,t,n)=>(ec(e,t,"access private method"),n);var Ps=(e,t,n,a)=>({set _(o){ee(e,t,o,n)},get _(){return P(e,t,a)}});function O2(e,t){for(var n=0;n<t.length;n++){const a=t[n];if(typeof a!="string"&&!Array.isArray(a)){for(const o in a)if(o!=="default"&&!(o in e)){const s=Object.getOwnPropertyDescriptor(a,o);s&&Object.defineProperty(e,o,s.get?s:{enumerable:!0,get:()=>a[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&a(i)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();function ps(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var cg={exports:{}},fl={},dg={exports:{}},oe={};/**
2 * @license React
3 * react.production.min.js
4 *
5 * Copyright (c) Facebook, Inc. and its affiliates.
6 *
7 * This source code is licensed under the MIT license found in the
8 * LICENSE file in the root directory of this source tree.
9 */var ms=Symbol.for("react.element"),L2=Symbol.for("react.portal"),z2=Symbol.for("react.fragment"),M2=Symbol.for("react.strict_mode"),F2=Symbol.for("react.profiler"),q2=Symbol.for("react.provider"),B2=Symbol.for("react.context"),V2=Symbol.for("react.forward_ref"),$2=Symbol.for("react.suspense"),H2=Symbol.for("react.memo"),W2=Symbol.for("react.lazy"),bm=Symbol.iterator;function U2(e){return e===null||typeof e!="object"?null:(e=bm&&e[bm]||e["@@iterator"],typeof e=="function"?e:null)}var ug={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pg=Object.assign,mg={};function Qr(e,t,n){this.props=e,this.context=t,this.refs=mg,this.updater=n||ug}Qr.prototype.isReactComponent={};Qr.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Qr.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function hg(){}hg.prototype=Qr.prototype;function ku(e,t,n){this.props=e,this.context=t,this.refs=mg,this.updater=n||ug}var ju=ku.prototype=new hg;ju.constructor=ku;pg(ju,Qr.prototype);ju.isPureReactComponent=!0;var xm=Array.isArray,fg=Object.prototype.hasOwnProperty,Tu={current:null},gg={key:!0,ref:!0,__self:!0,__source:!0};function vg(e,t,n){var a,o={},s=null,i=null;if(t!=null)for(a in t.ref!==void 0&&(i=t.ref),t.key!==void 0&&(s=""+t.key),t)fg.call(t,a)&&!gg.hasOwnProperty(a)&&(o[a]=t[a]);var l=arguments.length-2;if(l===1)o.children=n;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];o.children=c}if(e&&e.defaultProps)for(a in l=e.defaultProps,l)o[a]===void 0&&(o[a]=l[a]);return{$$typeof:ms,type:e,key:s,ref:i,props:o,_owner:Tu.current}}function K2(e,t){return{$$typeof:ms,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Nu(e){return typeof e=="object"&&e!==null&&e.$$typeof===ms}function G2(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var ym=/\/+/g;function tc(e,t){return typeof e=="object"&&e!==null&&e.key!=null?G2(""+e.key):t.toString(36)}function oi(e,t,n,a,o){var s=typeof e;(s==="undefined"||s==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(s){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case ms:case L2:i=!0}}if(i)return i=e,o=o(i),e=a===""?"."+tc(i,0):a,xm(o)?(n="",e!=null&&(n=e.replace(ym,"$&/")+"/"),oi(o,t,n,"",function(d){return d})):o!=null&&(Nu(o)&&(o=K2(o,n+(!o.key||i&&i.key===o.key?"":(""+o.key).replace(ym,"$&/")+"/")+e)),t.push(o)),1;if(i=0,a=a===""?".":a+":",xm(e))for(var l=0;l<e.length;l++){s=e[l];var c=a+tc(s,l);i+=oi(s,t,n,c,o)}else if(c=U2(e),typeof c=="function")for(e=c.call(e),l=0;!(s=e.next()).done;)s=s.value,c=a+tc(s,l++),i+=oi(s,t,n,c,o);else if(s==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return i}function Es(e,t,n){if(e==null)return e;var a=[],o=0;return oi(e,a,"","",function(s){return t.call(n,s,o++)}),a}function Q2(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var Je={current:null},si={transition:null},Y2={ReactCurrentDispatcher:Je,ReactCurrentBatchConfig:si,ReactCurrentOwner:Tu};function bg(){throw Error("act(...) is not supported in production builds of React.")}oe.Children={map:Es,forEach:function(e,t,n){Es(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return Es(e,function(){t++}),t},toArray:function(e){return Es(e,function(t){return t})||[]},only:function(e){if(!Nu(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};oe.Component=Qr;oe.Fragment=z2;oe.Profiler=F2;oe.PureComponent=ku;oe.StrictMode=M2;oe.Suspense=$2;
vendor: 5,278 bytes, lines 9-25
9oe.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Y2;oe.act=bg;oe.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=pg({},e.props),o=e.key,s=e.ref,i=e._owner;if(t!=null){if(t.ref!==void 0&&(s=t.ref,i=Tu.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)fg.call(t,c)&&!gg.hasOwnProperty(c)&&(a[c]=t[c]===void 0&&l!==void 0?l[c]:t[c])}var c=arguments.length-2;if(c===1)a.children=n;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];a.children=l}return{$$typeof:ms,type:e.type,key:o,ref:s,props:a,_owner:i}};oe.createContext=function(e){return e={$$typeof:B2,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:q2,_context:e},e.Consumer=e};oe.createElement=vg;oe.createFactory=function(e){var t=vg.bind(null,e);return t.type=e,t};oe.createRef=function(){return{current:null}};oe.forwardRef=function(e){return{$$typeof:V2,render:e}};oe.isValidElement=Nu;oe.lazy=function(e){return{$$typeof:W2,_payload:{_status:-1,_result:e},_init:Q2}};oe.memo=function(e,t){return{$$typeof:H2,type:e,compare:t===void 0?null:t}};oe.startTransition=function(e){var t=si.transition;si.transition={};try{e()}finally{si.transition=t}};oe.unstable_act=bg;oe.useCallback=function(e,t){return Je.current.useCallback(e,t)};oe.useContext=function(e){return Je.current.useContext(e)};oe.useDebugValue=function(){};oe.useDeferredValue=function(e){return Je.current.useDeferredValue(e)};oe.useEffect=function(e,t){return Je.current.useEffect(e,t)};oe.useId=function(){return Je.current.useId()};oe.useImperativeHandle=function(e,t,n){return Je.current.useImperativeHandle(e,t,n)};oe.useInsertionEffect=function(e,t){return Je.current.useInsertionEffect(e,t)};oe.useLayoutEffect=function(e,t){return Je.current.useLayoutEffect(e,t)};oe.useMemo=function(e,t){return Je.current.useMemo(e,t)};oe.useReducer=function(e,t,n){return Je.current.useReducer(e,t,n)};oe.useRef=function(e){return Je.current.useRef(e)};oe.useState=function(e){return Je.current.useState(e)};oe.useSyncExternalStore=function(e,t,n){return Je.current.useSyncExternalStore(e,t,n)};oe.useTransition=function(){return Je.current.useTransition()};oe.version="18.3.1";dg.exports=oe;var f=dg.exports;const R=ps(f),Du=O2({__proto__:null,default:R},[f]);/**
10 * @license React
11 * react-jsx-runtime.production.min.js
12 *
13 * Copyright (c) Facebook, Inc. and its affiliates.
14 *
15 * This source code is licensed under the MIT license found in the
16 * LICENSE file in the root directory of this source tree.
17 */var Z2=f,X2=Symbol.for("react.element"),J2=Symbol.for("react.fragment"),ew=Object.prototype.hasOwnProperty,tw=Z2.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,nw={key:!0,ref:!0,__self:!0,__source:!0};function xg(e,t,n){var a,o={},s=null,i=null;n!==void 0&&(s=""+n),t.key!==void 0&&(s=""+t.key),t.ref!==void 0&&(i=t.ref);for(a in t)ew.call(t,a)&&!nw.hasOwnProperty(a)&&(o[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps,t)o[a]===void 0&&(o[a]=t[a]);return{$$typeof:X2,type:e,key:s,ref:i,props:o,_owner:tw.current}}fl.Fragment=J2;fl.jsx=xg;fl.jsxs=xg;cg.exports=fl;var r=cg.exports,yg={exports:{}},ht={},wg={exports:{}},kg={};/**
18 * @license React
19 * scheduler.production.min.js
20 *
21 * Copyright (c) Facebook, Inc. and its affiliates.
22 *
23 * This source code is licensed under the MIT license found in the
24 * LICENSE file in the root directory of this source tree.
25 */(function(e){function t(S,I){var M=S.length;S.push(I);e:for(;0<M;){var U=M-1>>>1,$=S[U];if(0<o($,I))S[U]=I,S[M]=$,M=U;else break e}}function n(S){return S.length===0?null:S[0]}function a(S){if(S.length===0)return null;var I=S[0],M=S.pop();if(M!==I){S[0]=M;e:for(var U=0,$=S.length,X=$>>>1;U<X;){var re=2*(U+1)-1,xe=S[re],Be=re+1,le=S[Be];if(0>o(xe,M))Be<$&&0>o(le,xe)?(S[U]=le,S[Be]=M,U=Be):(S[U]=xe,S[re]=M,U=re);else if(Be<$&&0>o(le,M))S[U]=le,S[Be]=M,U=Be;else break e}}return I}function o(S,I){var M=S.sortIndex-I.sortIndex;return M!==0?M:S.id-I.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var c=[],d=[],u=1,p=null,h=3,m=!1,y=!1,g=!1,w=typeof setTimeout=="function"?setTimeout:null,b=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function x(S){for(var I=n(d);I!==null;){if(I.callback===null)a(d);else if(I.startTime<=S)a(d),I.sortIndex=I.expirationTime,t(c,I);else break;I=n(d)}}function k(S){if(g=!1,x(S),!y)if(n(c)!==null)y=!0,F(j);else{var I=n(d);I!==null&&K(k,I.startTime-S)}}function j(S,I){y=!1,g&&(g=!1,b(D),D=-1),m=!0;var M=h;try{for(x(I),p=n(c);p!==null&&(!(p.expirationTime>I)||S&&!H());){var U=p.callback;if(typeof U=="function"){p.callback=null,h=p.priorityLevel;var $=U(p.expirationTime<=I);I=e.unstable_now(),typeof $=="function"?p.callback=$:p===n(c)&&a(c),x(I)}else a(c);p=n(c)}if(p!==null)var X=!0;else{var re=n(d);
vendor: 8,939 bytes, lines 25-34
25re!==null&&K(k,re.startTime-I),X=!1}return X}finally{p=null,h=M,m=!1}}var T=!1,N=null,D=-1,C=5,E=-1;function H(){return!(e.unstable_now()-E<C)}function _(){if(N!==null){var S=e.unstable_now();E=S;var I=!0;try{I=N(!0,S)}finally{I?z():(T=!1,N=null)}}else T=!1}var z;if(typeof v=="function")z=function(){v(_)};else if(typeof MessageChannel<"u"){var A=new MessageChannel,W=A.port2;A.port1.onmessage=_,z=function(){W.postMessage(null)}}else z=function(){w(_,0)};function F(S){N=S,T||(T=!0,z())}function K(S,I){D=w(function(){S(e.unstable_now())},I)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(S){S.callback=null},e.unstable_continueExecution=function(){y||m||(y=!0,F(j))},e.unstable_forceFrameRate=function(S){0>S||125<S?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<S?Math.floor(1e3/S):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(S){switch(h){case 1:case 2:case 3:var I=3;break;default:I=h}var M=h;h=I;try{return S()}finally{h=M}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(S,I){switch(S){case 1:case 2:case 3:case 4:case 5:break;default:S=3}var M=h;h=S;try{return I()}finally{h=M}},e.unstable_scheduleCallback=function(S,I,M){var U=e.unstable_now();switch(typeof M=="object"&&M!==null?(M=M.delay,M=typeof M=="number"&&0<M?U+M:U):M=U,S){case 1:var $=-1;break;case 2:$=250;break;case 5:$=1073741823;break;case 4:$=1e4;break;default:$=5e3}return $=M+$,S={id:u++,callback:I,priorityLevel:S,startTime:M,expirationTime:$,sortIndex:-1},M>U?(S.sortIndex=M,t(d,S),n(c)===null&&S===n(d)&&(g?(b(D),D=-1):g=!0,K(k,M-U))):(S.sortIndex=$,t(c,S),y||m||(y=!0,F(j))),S},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(S){var I=h;return function(){var M=h;h=I;try{return S.apply(this,arguments)}finally{h=M}}}})(kg);wg.exports=kg;var aw=wg.exports;/**
26 * @license React
27 * react-dom.production.min.js
28 *
29 * Copyright (c) Facebook, Inc. and its affiliates.
30 *
31 * This source code is licensed under the MIT license found in the
32 * LICENSE file in the root directory of this source tree.
33 */var rw=f,pt=aw;function O(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var jg=new Set,Mo={};function Va(e,t){zr(e,t),zr(e+"Capture",t)}function zr(e,t){for(Mo[e]=t,e=0;e<t.length;e++)jg.add(t[e])}var yn=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Jc=Object.prototype.hasOwnProperty,ow=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,wm={},km={};function sw(e){return Jc.call(km,e)?!0:Jc.call(wm,e)?!1:ow.test(e)?km[e]=!0:(wm[e]=!0,!1)}function iw(e,t,n,a){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return a?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function lw(e,t,n,a){if(t===null||typeof t>"u"||iw(e,t,n,a))return!0;if(a)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function et(e,t,n,a,o,s,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=a,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=s,this.removeEmptyString=i}var qe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){qe[e]=new et(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];qe[t]=new et(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){qe[e]=new et(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){qe[e]=new et(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){qe[e]=new et(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){qe[e]=new et(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){qe[e]=new et(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){qe[e]=new et(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){qe[e]=new et(e,5,!1,e.toLowerCase(),null,!1,!1)});var Cu=/[\-:]([a-z])/g;function Su(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Cu,Su);qe[t]=new et(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Cu,Su);qe[t]=new et(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Cu,Su);qe[t]=new et(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){qe[e]=new et(e,1,!1,e.toLowerCase(),null,!1,!1)});qe.xlinkHref=new et("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){qe[e]=new et(e,1,!1,e.toLowerCase(),null,!0,!0)});function Pu(e,t,n,a){var o=qe.hasOwnProperty(t)?qe[t]:null;(o!==null?o.type!==0:a||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(lw(t,n,o,a)&&(n=null),a||o===null?sw(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=n===null?o.type===3?!1:"":n:(t=o.attributeName,a=o.attributeNamespace,n===null?e.removeAttribute(t):(o=o.type,n=o===3||o===4&&n===!0?"":""+n,a?e.setAttributeNS(a,t,n):e.setAttribute(t,n))))}var Dn=rw.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Is=Symbol.for("react.element"),sr=Symbol.for("react.portal"),ir=Symbol.for("react.fragment"),Eu=Symbol.for("react.strict_mode"),ed=Symbol.for("react.profiler"),Tg=Symbol.for("react.provider"),Ng=Symbol.for("react.context"),Iu=Symbol.for("react.forward_ref"),td=Symbol.for("react.suspense"),nd=Symbol.for("react.suspense_list"),Au=Symbol.for("react.memo"),Bn=Symbol.for("react.lazy"),Dg=Symbol.for("react.offscreen"),jm=Symbol.iterator;function so(e){return e===null||typeof e!="object"?null:(e=jm&&e[jm]||e["@@iterator"],typeof e=="function"?e:null)}var ke=Object.assign,nc;function wo(e){if(nc===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);nc=t&&t[1]||""}return`
34`+nc+e}var ac=!1;function rc(e,t){if(!e||ac)return"";ac=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(d){var a=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){a=d}e.call(t.prototype)}else{try{throw Error()}catch(d){a=d}e()}}
vendor: 16,621 bytes, lines 34-37
34catch(d){if(d&&a&&typeof d.stack=="string"){for(var o=d.stack.split(`
35`),s=a.stack.split(`
36`),i=o.length-1,l=s.length-1;1<=i&&0<=l&&o[i]!==s[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==s[l]){if(i!==1||l!==1)do if(i--,l--,0>l||o[i]!==s[l]){var c=`
37`+o[i].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=i&&0<=l);break}}}finally{ac=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?wo(e):""}function cw(e){switch(e.tag){case 5:return wo(e.type);case 16:return wo("Lazy");case 13:return wo("Suspense");case 19:return wo("SuspenseList");case 0:case 2:case 15:return e=rc(e.type,!1),e;case 11:return e=rc(e.type.render,!1),e;case 1:return e=rc(e.type,!0),e;default:return""}}function ad(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ir:return"Fragment";case sr:return"Portal";case ed:return"Profiler";case Eu:return"StrictMode";case td:return"Suspense";case nd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Ng:return(e.displayName||"Context")+".Consumer";case Tg:return(e._context.displayName||"Context")+".Provider";case Iu:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Au:return t=e.displayName||null,t!==null?t:ad(e.type)||"Memo";case Bn:t=e._payload,e=e._init;try{return ad(e(t))}catch{}}return null}function dw(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ad(t);case 8:return t===Eu?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function la(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Cg(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function uw(e){var t=Cg(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),a=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var o=n.get,s=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(i){a=""+i,s.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return a},setValue:function(i){a=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function As(e){e._valueTracker||(e._valueTracker=uw(e))}function Sg(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Cg(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function Pi(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function rd(e,t){var n=t.checked;return ke({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Tm(e,t){var n=t.defaultValue==null?"":t.defaultValue,a=t.checked!=null?t.checked:t.defaultChecked;n=la(t.value!=null?t.value:n),e._wrapperState={initialChecked:a,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function Pg(e,t){t=t.checked,t!=null&&Pu(e,"checked",t,!1)}function od(e,t){Pg(e,t);var n=la(t.value),a=t.type;if(n!=null)a==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(a==="submit"||a==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?sd(e,t.type,n):t.hasOwnProperty("defaultValue")&&sd(e,t.type,la(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Nm(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var a=t.type;if(!(a!=="submit"&&a!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function sd(e,t,n){(t!=="number"||Pi(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var ko=Array.isArray;function br(e,t,n,a){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&a&&(e[n].defaultSelected=!0)}else{for(n=""+la(n),t=null,o=0;o<e.length;o++){if(e[o].value===n){e[o].selected=!0,a&&(e[o].defaultSelected=!0);return}t!==null||e[o].disabled||(t=e[o])}t!==null&&(t.selected=!0)}}function id(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(O(91));return ke({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Dm(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(O(92));if(ko(n)){if(1<n.length)throw Error(O(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:la(n)}}function Eg(e,t){var n=la(t.value),a=la(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),a!=null&&(e.defaultValue=""+a)}function Cm(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Ig(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ld(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Ig(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Rs,Ag=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,a,o){MSApp.execUnsafeLocalFunction(function(){return e(t,n,a,o)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Rs=Rs||document.createElement("div"),Rs.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Rs.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Fo(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var No={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},pw=["Webkit","ms","Moz","O"];Object.keys(No).forEach(function(e){pw.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),No[t]=No[e]})});function Rg(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||No.hasOwnProperty(e)&&No[e]?(""+t).trim():t+"px"}function _g(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var a=n.indexOf("--")===0,o=Rg(n,t[n],a);n==="float"&&(n="cssFloat"),a?e.setProperty(n,o):e[n]=o}}var mw=ke({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function cd(e,t){if(t){if(mw[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(O(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(O(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(O(61))}if(t.style!=null&&typeof t.style!="object")throw Error(O(62))}}function dd(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ud=null;function Ru(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var pd=null,xr=null,yr=null;function Sm(e){if(e=gs(e)){if(typeof pd!="function")throw Error(O(280));var t=e.stateNode;t&&(t=yl(t),pd(e.stateNode,e.type,t))}}function Og(e){xr?yr?yr.push(e):yr=[e]:xr=e}function Lg(){if(xr){var e=xr,t=yr;if(yr=xr=null,Sm(e),t)for(e=0;e<t.length;e++)Sm(t[e])}}function zg(e,t){return e(t)}function Mg(){}var oc=!1;function Fg(e,t,n){if(oc)return e(t,n);oc=!0;try{return zg(e,t,n)}finally{oc=!1,(xr!==null||yr!==null)&&(Mg(),Lg())}}function qo(e,t){var n=e.stateNode;if(n===null)return null;var a=yl(n);if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(O(231,t,typeof n));return n}var md=!1;if(yn)try{var io={};Object.defineProperty(io,"passive",{get:function(){md=!0}}),window.addEventListener("test",io,io),window.removeEventListener("test",io,io)}catch{md=!1}function hw(e,t,n,a,o,s,i,l,c){var d=Array.prototype.slice.call(arguments,3);try{t.apply(n,d)}catch(u){this.onError(u)}}var Do=!1,Ei=null,Ii=!1,hd=null,fw={onError:function(e){Do=!0,Ei=e}};function gw(e,t,n,a,o,s,i,l,c){Do=!1,Ei=null,hw.apply(fw,arguments)}function vw(e,t,n,a,o,s,i,l,c){if(gw.apply(this,arguments),Do){if(Do){var d=Ei;Do=!1,Ei=null}else throw Error(O(198));Ii||(Ii=!0,hd=d)}}function $a(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function qg(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Pm(e){if($a(e)!==e)throw Error(O(188))}function bw(e){var t=e.alternate;if(!t){if(t=$a(e),t===null)throw Error(O(188));return t!==e?null:e}for(var n=e,a=t;;){var o=n.return;if(o===null)break;var s=o.alternate;if(s===null){if(a=o.return,a!==null){n=a;continue}break}if(o.child===s.child){for(s=o.child;s;){if(s===n)return Pm(o),e;if(s===a)return Pm(o),t;s=s.sibling}throw Error(O(188))}if(n.return!==a.return)n=o,a=s;else{for(var i=!1,l=o.child;l;){if(l===n){i=!0,n=o,a=s;break}if(l===a){i=!0,a=o,n=s;break}l=l.sibling}if(!i){for(l=s.child;l;){if(l===n){i=!0,n=s,a=o;break}if(l===a){i=!0,a=s,n=o;break}l=l.sibling}if(!i)throw Error(O(189))}}if(n.alternate!==a)throw Error(O(190))}if(n.tag!==3)throw Error(O(188));return n.stateNode.current===n?e:t}function Bg(e){return e=bw(e),e!==null?Vg(e):null}function Vg(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Vg(e);if(t!==null)return t;e=e.sibling}return null}var $g=pt.unstable_scheduleCallback,Em=pt.unstable_cancelCallback,xw=pt.unstable_shouldYield,yw=pt.unstable_requestPaint,Ce=pt.unstable_now,ww=pt.unstable_getCurrentPriorityLevel,_u=pt.unstable_ImmediatePriority,Hg=pt.unstable_UserBlockingPriority,Ai=pt.unstable_NormalPriority,kw=pt.unstable_LowPriority,Wg=pt.unstable_IdlePriority,gl=null,nn=null;function jw(e){if(nn&&typeof nn.onCommitFiberRoot=="function")try{nn.onCommitFiberRoot(gl,e,void 0,(e.current.flags&128)===128)}catch{}}var qt=Math.clz32?Math.clz32:Dw,Tw=Math.log,Nw=Math.LN2;function Dw(e){return e>>>=0,e===0?32:31-(Tw(e)/Nw|0)|0}var _s=64,Os=4194304;function jo(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ri(e,t){var n=e.pendingLanes;if(n===0)return 0;var a=0,o=e.suspendedLanes,s=e.pingedLanes,i=n&268435455;if(i!==0){var l=i&~o;l!==0?a=jo(l):(s&=i,s!==0&&(a=jo(s)))}else i=n&~o,i!==0?a=jo(i):s!==0&&(a=jo(s));if(a===0)return 0;if(t!==0&&t!==a&&!(t&o)&&(o=a&-a,s=t&-t,o>=s||o===16&&(s&4194240)!==0))return t;if(a&4&&(a|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=a;0<t;)n=31-qt(t),o=1<<n,a|=e[n],t&=~o;return a}function Cw(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Sw(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,o=e.expirationTimes,s=e.pendingLanes;0<s;){var i=31-qt(s),l=1<<i,c=o[i];c===-1?(!(l&n)||l&a)&&(o[i]=Cw(l,t)):c<=t&&(e.expiredLanes|=l),s&=~l}}function fd(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Ug(){var e=_s;return _s<<=1,!(_s&4194240)&&(_s=64),e}function sc(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function hs(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-qt(t),e[t]=n}function Pw(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var a=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-qt(n),s=1<<o;t[o]=0,a[o]=-1,e[o]=-1,n&=~s}}function Ou(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-qt(n),o=1<<a;o&t|e[a]&t&&(e[a]|=t),n&=~o}}var ce=0;function Kg(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var Gg,Lu,Qg,Yg,Zg,gd=!1,Ls=[],Jn=null,ea=null,ta=null,Bo=new Map,Vo=new Map,$n=[],Ew="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Im(e,t){switch(e){case"focusin":case"focusout":Jn=null;break;case"dragenter":case"dragleave":ea=null;break;case"mouseover":case"mouseout":ta=null;break;case"pointerover":case"pointerout":Bo.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Vo.delete(t.pointerId)}}function lo(e,t,n,a,o,s){return e===null||e.nativeEvent!==s?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:s,targetContainers:[o]},t!==null&&(t=gs(t),t!==null&&Lu(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,o!==null&&t.indexOf(o)===-1&&t.push(o),e)}function Iw(e,t,n,a,o){switch(t){case"focusin":return Jn=lo(Jn,e,t,n,a,o),!0;case"dragenter":return ea=lo(ea,e,t,n,a,o),!0;case"mouseover":return ta=lo(ta,e,t,n,a,o),!0;case"pointerover":var s=o.pointerId;return Bo.set(s,lo(Bo.get(s)||null,e,t,n,a,o)),!0;case"gotpointercapture":return s=o.pointerId,Vo.set(s,lo(Vo.get(s)||null,e,t,n,a,o)),!0}return!1}function Xg(e){var t=ka(e.target);if(t!==null){var n=$a(t);if(n!==null){if(t=n.tag,t===13){if(t=qg(n),t!==null){e.blockedOn=t,Zg(e.priority,function(){Qg(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function ii(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=vd(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);ud=a,n.target.dispatchEvent(a),ud=null}else return t=gs(n),t!==null&&Lu(t),e.blockedOn=n,!1;t.shift()}return!0}function Am(e,t,n){ii(e)&&n.delete(t)}
vendor: 11,957 bytes, line 37
37function Aw(){gd=!1,Jn!==null&&ii(Jn)&&(Jn=null),ea!==null&&ii(ea)&&(ea=null),ta!==null&&ii(ta)&&(ta=null),Bo.forEach(Am),Vo.forEach(Am)}function co(e,t){e.blockedOn===t&&(e.blockedOn=null,gd||(gd=!0,pt.unstable_scheduleCallback(pt.unstable_NormalPriority,Aw)))}function $o(e){function t(o){return co(o,e)}if(0<Ls.length){co(Ls[0],e);for(var n=1;n<Ls.length;n++){var a=Ls[n];a.blockedOn===e&&(a.blockedOn=null)}}for(Jn!==null&&co(Jn,e),ea!==null&&co(ea,e),ta!==null&&co(ta,e),Bo.forEach(t),Vo.forEach(t),n=0;n<$n.length;n++)a=$n[n],a.blockedOn===e&&(a.blockedOn=null);for(;0<$n.length&&(n=$n[0],n.blockedOn===null);)Xg(n),n.blockedOn===null&&$n.shift()}var wr=Dn.ReactCurrentBatchConfig,_i=!0;function Rw(e,t,n,a){var o=ce,s=wr.transition;wr.transition=null;try{ce=1,zu(e,t,n,a)}finally{ce=o,wr.transition=s}}function _w(e,t,n,a){var o=ce,s=wr.transition;wr.transition=null;try{ce=4,zu(e,t,n,a)}finally{ce=o,wr.transition=s}}function zu(e,t,n,a){if(_i){var o=vd(e,t,n,a);if(o===null)gc(e,t,a,Oi,n),Im(e,a);else if(Iw(o,e,t,n,a))a.stopPropagation();else if(Im(e,a),t&4&&-1<Ew.indexOf(e)){for(;o!==null;){var s=gs(o);if(s!==null&&Gg(s),s=vd(e,t,n,a),s===null&&gc(e,t,a,Oi,n),s===o)break;o=s}o!==null&&a.stopPropagation()}else gc(e,t,a,null,n)}}var Oi=null;function vd(e,t,n,a){if(Oi=null,e=Ru(a),e=ka(e),e!==null)if(t=$a(e),t===null)e=null;else if(n=t.tag,n===13){if(e=qg(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Oi=e,null}function Jg(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(ww()){case _u:return 1;case Hg:return 4;case Ai:case kw:return 16;case Wg:return 536870912;default:return 16}default:return 16}}var Yn=null,Mu=null,li=null;function ev(){if(li)return li;var e,t=Mu,n=t.length,a,o="value"in Yn?Yn.value:Yn.textContent,s=o.length;for(e=0;e<n&&t[e]===o[e];e++);var i=n-e;for(a=1;a<=i&&t[n-a]===o[s-a];a++);return li=o.slice(e,1<a?1-a:void 0)}function ci(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function zs(){return!0}function Rm(){return!1}function ft(e){function t(n,a,o,s,i){this._reactName=n,this._targetInst=o,this.type=a,this.nativeEvent=s,this.target=i,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(n=e[l],this[l]=n?n(s):s[l]);return this.isDefaultPrevented=(s.defaultPrevented!=null?s.defaultPrevented:s.returnValue===!1)?zs:Rm,this.isPropagationStopped=Rm,this}return ke(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=zs)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=zs)},persist:function(){},isPersistent:zs}),t}var Yr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Fu=ft(Yr),fs=ke({},Yr,{view:0,detail:0}),Ow=ft(fs),ic,lc,uo,vl=ke({},fs,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:qu,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==uo&&(uo&&e.type==="mousemove"?(ic=e.screenX-uo.screenX,lc=e.screenY-uo.screenY):lc=ic=0,uo=e),ic)},movementY:function(e){return"movementY"in e?e.movementY:lc}}),_m=ft(vl),Lw=ke({},vl,{dataTransfer:0}),zw=ft(Lw),Mw=ke({},fs,{relatedTarget:0}),cc=ft(Mw),Fw=ke({},Yr,{animationName:0,elapsedTime:0,pseudoElement:0}),qw=ft(Fw),Bw=ke({},Yr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Vw=ft(Bw),$w=ke({},Yr,{data:0}),Om=ft($w),Hw={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Ww={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Uw={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Kw(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Uw[e])?!!t[e]:!1}function qu(){return Kw}var Gw=ke({},fs,{key:function(e){if(e.key){var t=Hw[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=ci(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Ww[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:qu,charCode:function(e){return e.type==="keypress"?ci(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?ci(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Qw=ft(Gw),Yw=ke({},vl,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Lm=ft(Yw),Zw=ke({},fs,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:qu}),Xw=ft(Zw),Jw=ke({},Yr,{propertyName:0,elapsedTime:0,pseudoElement:0}),e1=ft(Jw),t1=ke({},vl,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),n1=ft(t1),a1=[9,13,27,32],Bu=yn&&"CompositionEvent"in window,Co=null;yn&&"documentMode"in document&&(Co=document.documentMode);var r1=yn&&"TextEvent"in window&&!Co,tv=yn&&(!Bu||Co&&8<Co&&11>=Co),zm=" ",Mm=!1;function nv(e,t){switch(e){case"keyup":return a1.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function av(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var lr=!1;function o1(e,t){switch(e){case"compositionend":return av(t);case"keypress":return t.which!==32?null:(Mm=!0,zm);case"textInput":return e=t.data,e===zm&&Mm?null:e;default:return null}}function s1(e,t){if(lr)return e==="compositionend"||!Bu&&nv(e,t)?(e=ev(),li=Mu=Yn=null,lr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return tv&&t.locale!=="ko"?null:t.data;default:return null}}var i1={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Fm(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!i1[e.type]:t==="textarea"}function rv(e,t,n,a){Og(a),t=Li(t,"onChange"),0<t.length&&(n=new Fu("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var So=null,Ho=null;function l1(e){fv(e,0)}function bl(e){var t=ur(e);if(Sg(t))return e}function c1(e,t){if(e==="change")return t}var ov=!1;if(yn){var dc;if(yn){var uc="oninput"in document;if(!uc){var qm=document.createElement("div");qm.setAttribute("oninput","return;"),uc=typeof qm.oninput=="function"}dc=uc}else dc=!1;ov=dc&&(!document.documentMode||9<document.documentMode)}function Bm(){So&&(So.detachEvent("onpropertychange",sv),Ho=So=null)}function sv(e){if(e.propertyName==="value"&&bl(Ho)){var t=[];rv(t,Ho,e,Ru(e)),Fg(l1,t)}}function d1(e,t,n){e==="focusin"?(Bm(),So=t,Ho=n,So.attachEvent("onpropertychange",sv)):e==="focusout"&&Bm()}function u1(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return bl(Ho)}function p1(e,t){if(e==="click")return bl(t)}function m1(e,t){if(e==="input"||e==="change")return bl(t)}function h1(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Vt=typeof Object.is=="function"?Object.is:h1;function Wo(e,t){if(Vt(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var o=n[a];if(!Jc.call(t,o)||!Vt(e[o],t[o]))return!1}return!0}function Vm(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function $m(e,t){var n=Vm(e);e=0;for(var a;n;){if(n.nodeType===3){if(a=e+n.textContent.length,e<=t&&a>=t)return{node:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Vm(n)}}function iv(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?iv(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function lv(){for(var e=window,t=Pi();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Pi(e.document)}return t}function Vu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function f1(e){var t=lv(),n=e.focusedElem,a=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&iv(n.ownerDocument.documentElement,n)){if(a!==null&&Vu(n)){if(t=a.start,e=a.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var o=n.textContent.length,s=Math.min(a.start,o);a=a.end===void 0?s:Math.min(a.end,o),!e.extend&&s>a&&(o=a,a=s,s=o),o=$m(n,s);var i=$m(n,a);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(o.node,o.offset),e.removeAllRanges(),s>a?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var g1=yn&&"documentMode"in document&&11>=document.documentMode,cr=null,bd=null,Po=null,xd=!1;function Hm(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;xd||cr==null||cr!==Pi(a)||(a=cr,"selectionStart"in a&&Vu(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focu
vendor: 4,501 bytes, line 37
37sNode:a.focusNode,focusOffset:a.focusOffset}),Po&&Wo(Po,a)||(Po=a,a=Li(bd,"onSelect"),0<a.length&&(t=new Fu("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=cr)))}function Ms(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var dr={animationend:Ms("Animation","AnimationEnd"),animationiteration:Ms("Animation","AnimationIteration"),animationstart:Ms("Animation","AnimationStart"),transitionend:Ms("Transition","TransitionEnd")},pc={},cv={};yn&&(cv=document.createElement("div").style,"AnimationEvent"in window||(delete dr.animationend.animation,delete dr.animationiteration.animation,delete dr.animationstart.animation),"TransitionEvent"in window||delete dr.transitionend.transition);function xl(e){if(pc[e])return pc[e];if(!dr[e])return e;var t=dr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in cv)return pc[e]=t[n];return e}var dv=xl("animationend"),uv=xl("animationiteration"),pv=xl("animationstart"),mv=xl("transitionend"),hv=new Map,Wm="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function pa(e,t){hv.set(e,t),Va(t,[e])}for(var mc=0;mc<Wm.length;mc++){var hc=Wm[mc],v1=hc.toLowerCase(),b1=hc[0].toUpperCase()+hc.slice(1);pa(v1,"on"+b1)}pa(dv,"onAnimationEnd");pa(uv,"onAnimationIteration");pa(pv,"onAnimationStart");pa("dblclick","onDoubleClick");pa("focusin","onFocus");pa("focusout","onBlur");pa(mv,"onTransitionEnd");zr("onMouseEnter",["mouseout","mouseover"]);zr("onMouseLeave",["mouseout","mouseover"]);zr("onPointerEnter",["pointerout","pointerover"]);zr("onPointerLeave",["pointerout","pointerover"]);Va("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Va("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Va("onBeforeInput",["compositionend","keypress","textInput","paste"]);Va("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Va("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Va("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var To="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),x1=new Set("cancel close invalid load scroll toggle".split(" ").concat(To));function Um(e,t,n){var a=e.type||"unknown-event";e.currentTarget=n,vw(a,t,void 0,e),e.currentTarget=null}function fv(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],o=a.event;a=a.listeners;e:{var s=void 0;if(t)for(var i=a.length-1;0<=i;i--){var l=a[i],c=l.instance,d=l.currentTarget;if(l=l.listener,c!==s&&o.isPropagationStopped())break e;Um(o,l,d),s=c}else for(i=0;i<a.length;i++){if(l=a[i],c=l.instance,d=l.currentTarget,l=l.listener,c!==s&&o.isPropagationStopped())break e;Um(o,l,d),s=c}}}if(Ii)throw e=hd,Ii=!1,hd=null,e}function fe(e,t){var n=t[Td];n===void 0&&(n=t[Td]=new Set);var a=e+"__bubble";n.has(a)||(gv(t,e,2,!1),n.add(a))}function fc(e,t,n){var a=0;t&&(a|=4),gv(n,e,a,t)}var Fs="_reactListening"+Math.random().toString(36).slice(2);function Uo(e){if(!e[Fs]){e[Fs]=!0,jg.forEach(function(n){n!=="selectionchange"&&(x1.has(n)||fc(n,!1,e),fc(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Fs]||(t[Fs]=!0,fc("selectionchange",!1,t))}}function gv(e,t,n,a){switch(Jg(t)){case 1:var o=Rw;break;case 4:o=_w;break;default:o=zu}n=o.bind(null,t,n,e),o=void 0,!md||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(o=!0),a?o!==void 0?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):o!==void 0?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function gc(e,t,n,a,o){var s=a;if(!(t&1)&&!(t&2)&&a!==null)e:for(;;){if(a===null)return;var i=a.tag;if(i===3||i===4){var l=a.stateNode.containerInfo;
vendor: 2,527 bytes, line 37
37if(l===o||l.nodeType===8&&l.parentNode===o)break;if(i===4)for(i=a.return;i!==null;){var c=i.tag;if((c===3||c===4)&&(c=i.stateNode.containerInfo,c===o||c.nodeType===8&&c.parentNode===o))return;i=i.return}for(;l!==null;){if(i=ka(l),i===null)return;if(c=i.tag,c===5||c===6){a=s=i;continue e}l=l.parentNode}}a=a.return}Fg(function(){var d=s,u=Ru(n),p=[];e:{var h=hv.get(e);if(h!==void 0){var m=Fu,y=e;switch(e){case"keypress":if(ci(n)===0)break e;case"keydown":case"keyup":m=Qw;break;case"focusin":y="focus",m=cc;break;case"focusout":y="blur",m=cc;break;case"beforeblur":case"afterblur":m=cc;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":m=_m;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":m=zw;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":m=Xw;break;case dv:case uv:case pv:m=qw;break;case mv:m=e1;break;case"scroll":m=Ow;break;case"wheel":m=n1;break;case"copy":case"cut":case"paste":m=Vw;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":m=Lm}var g=(t&4)!==0,w=!g&&e==="scroll",b=g?h!==null?h+"Capture":null:h;g=[];for(var v=d,x;v!==null;){x=v;var k=x.stateNode;if(x.tag===5&&k!==null&&(x=k,b!==null&&(k=qo(v,b),k!=null&&g.push(Ko(v,k,x)))),w)break;v=v.return}0<g.length&&(h=new m(h,y,null,n,u),p.push({event:h,listeners:g}))}}if(!(t&7)){e:{if(h=e==="mouseover"||e==="pointerover",m=e==="mouseout"||e==="pointerout",h&&n!==ud&&(y=n.relatedTarget||n.fromElement)&&(ka(y)||y[wn]))break e;if((m||h)&&(h=u.window===u?u:(h=u.ownerDocument)?h.defaultView||h.parentWindow:window,m?(y=n.relatedTarget||n.toElement,m=d,y=y?ka(y):null,y!==null&&(w=$a(y),y!==w||y.tag!==5&&y.tag!==6)&&(y=null)):(m=null,y=d),m!==y)){if(g=_m,k="onMouseLeave",b="onMouseEnter",v="mouse",(e==="pointerout"||e==="pointerover")&&(g=Lm,k="onPointerLeave",b="onPointerEnter",v="pointer"),w=m==null?h:ur(m),x=y==null?h:ur(y),h=new g(k,v+"leave",m,n,u),h.target=w,h.relatedTarget=x,k=null,ka(u)===d&&(g=new g(b,v+"enter",y,n,u),g.target=x,g.relatedTarget=w,k=g),w=k,m&&y)t:{for(g=m,b=y,v=0,x=g;x;x=Za(x))v++;for(x=0,k=b;k;k=Za(k))x++;for(;0<v-x;)g=Za(g),v--;for(;0<x-v;)b=Za(b),x--;for(;v--;){if(g===b||b!==null&&g===b.alternate)break t;g=Za(g),b=Za(b)}g=null}else g=null;m!==null&&Km(p,h,m,g,!1),y!==null&&w!==null&&Km(p,w,y,g,!0)}}
vendor: 5,572 bytes, lines 37-38
37e:{if(h=d?ur(d):window,m=h.nodeName&&h.nodeName.toLowerCase(),m==="select"||m==="input"&&h.type==="file")var j=c1;else if(Fm(h))if(ov)j=m1;else{j=u1;var T=d1}else(m=h.nodeName)&&m.toLowerCase()==="input"&&(h.type==="checkbox"||h.type==="radio")&&(j=p1);if(j&&(j=j(e,d))){rv(p,j,n,u);break e}T&&T(e,h,d),e==="focusout"&&(T=h._wrapperState)&&T.controlled&&h.type==="number"&&sd(h,"number",h.value)}switch(T=d?ur(d):window,e){case"focusin":(Fm(T)||T.contentEditable==="true")&&(cr=T,bd=d,Po=null);break;case"focusout":Po=bd=cr=null;break;case"mousedown":xd=!0;break;case"contextmenu":case"mouseup":case"dragend":xd=!1,Hm(p,n,u);break;case"selectionchange":if(g1)break;case"keydown":case"keyup":Hm(p,n,u)}var N;if(Bu)e:{switch(e){case"compositionstart":var D="onCompositionStart";break e;case"compositionend":D="onCompositionEnd";break e;case"compositionupdate":D="onCompositionUpdate";break e}D=void 0}else lr?nv(e,n)&&(D="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(D="onCompositionStart");D&&(tv&&n.locale!=="ko"&&(lr||D!=="onCompositionStart"?D==="onCompositionEnd"&&lr&&(N=ev()):(Yn=u,Mu="value"in Yn?Yn.value:Yn.textContent,lr=!0)),T=Li(d,D),0<T.length&&(D=new Om(D,e,null,n,u),p.push({event:D,listeners:T}),N?D.data=N:(N=av(n),N!==null&&(D.data=N)))),(N=r1?o1(e,n):s1(e,n))&&(d=Li(d,"onBeforeInput"),0<d.length&&(u=new Om("onBeforeInput","beforeinput",null,n,u),p.push({event:u,listeners:d}),u.data=N))}fv(p,t)})}function Ko(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Li(e,t){for(var n=t+"Capture",a=[];e!==null;){var o=e,s=o.stateNode;o.tag===5&&s!==null&&(o=s,s=qo(e,n),s!=null&&a.unshift(Ko(e,s,o)),s=qo(e,t),s!=null&&a.push(Ko(e,s,o))),e=e.return}return a}function Za(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Km(e,t,n,a,o){for(var s=t._reactName,i=[];n!==null&&n!==a;){var l=n,c=l.alternate,d=l.stateNode;if(c!==null&&c===a)break;l.tag===5&&d!==null&&(l=d,o?(c=qo(n,s),c!=null&&i.unshift(Ko(n,c,l))):o||(c=qo(n,s),c!=null&&i.push(Ko(n,c,l)))),n=n.return}i.length!==0&&e.push({event:t,listeners:i})}var y1=/\r\n?/g,w1=/\u0000|\uFFFD/g;function Gm(e){return(typeof e=="string"?e:""+e).replace(y1,`
38`).replace(w1,"")}function qs(e,t,n){if(t=Gm(t),Gm(e)!==t&&n)throw Error(O(425))}function zi(){}var yd=null,wd=null;function kd(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var jd=typeof setTimeout=="function"?setTimeout:void 0,k1=typeof clearTimeout=="function"?clearTimeout:void 0,Qm=typeof Promise=="function"?Promise:void 0,j1=typeof queueMicrotask=="function"?queueMicrotask:typeof Qm<"u"?function(e){return Qm.resolve(null).then(e).catch(T1)}:jd;function T1(e){setTimeout(function(){throw e})}function vc(e,t){var n=t,a=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&o.nodeType===8)if(n=o.data,n==="/$"){if(a===0){e.removeChild(o),$o(t);return}a--}else n!=="$"&&n!=="$?"&&n!=="$!"||a++;n=o}while(n);$o(t)}function na(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Ym(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var Zr=Math.random().toString(36).slice(2),Xt="__reactFiber$"+Zr,Go="__reactProps$"+Zr,wn="__reactContainer$"+Zr,Td="__reactEvents$"+Zr,N1="__reactListeners$"+Zr,D1="__reactHandles$"+Zr;function ka(e){var t=e[Xt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[wn]||n[Xt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Ym(e);e!==null;){if(n=e[Xt])return n;e=Ym(e)}return t}e=n,n=e.parentNode}return null}function gs(e){return e=e[Xt]||e[wn],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function ur(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(O(33))}function yl(e){return e[Go]||null}var Nd=[],pr=-1;function ma(e){return{current:e}}function ge(e){0>pr||(e.current=Nd[pr],Nd[pr]=null,pr--)}function me(e,t){pr++,Nd[pr]=e.current,e.current=t}var ca={},Ke=ma(ca),rt=ma(!1),_a=ca;function Mr(e,t){var n=e.type.contextTypes;if(!n)return ca;var a=e.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===t)return a.__reactInternalMemoizedMaskedChildContext;var o={},s;for(s in n)o[s]=t[s];return a&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ot(e){return e=e.childContextTypes,e!=null}function Mi(){ge(rt),ge(Ke)}function Zm(e,t,n){if(Ke.current!==ca)throw Error(O(168));me(Ke,t),me(rt,n)}function vv(e,t,n){var a=e.stateNode;if(t=t.childContextTypes,typeof a.getChildContext!="function")return n;a=a.getChildContext();for(var o in a)if(!(o in t))throw Error(O(108,dw(e)||"Unknown",o));return ke({},n,a)}function Fi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||ca,_a=Ke.current,me(Ke,e),me(rt,rt.current),!0}function Xm(e,t,n){var a=e.stateNode;if(!a)throw Error(O(169));n?(e=vv(e,t,_a),a.__reactInternalMemoizedMergedChildContext=e,ge(rt),ge(Ke),me(Ke,e)):ge(rt),me(rt,n)}var hn=null,wl=!1,bc=!1;function bv(e){hn===null?hn=[e]:hn.push(e)}function C1(e){wl=!0,bv(e)}function ha(){if(!bc&&hn!==null){bc=!0;var e=0,t=ce;try{var n=hn;for(ce=1;e<n.length;e++){var a=n[e];do a=a(!0);while(a!==null)}hn=null,wl=!1}catch(o){throw hn!==null&&(hn=hn.slice(e+1)),$g(_u,ha),o}finally{ce=t,bc=!1}}return null}
vendor: 13,725 bytes, line 38
38var mr=[],hr=0,qi=null,Bi=0,xt=[],yt=0,Oa=null,gn=1,vn="";function ya(e,t){mr[hr++]=Bi,mr[hr++]=qi,qi=e,Bi=t}function xv(e,t,n){xt[yt++]=gn,xt[yt++]=vn,xt[yt++]=Oa,Oa=e;var a=gn;e=vn;var o=32-qt(a)-1;a&=~(1<<o),n+=1;var s=32-qt(t)+o;if(30<s){var i=o-o%5;s=(a&(1<<i)-1).toString(32),a>>=i,o-=i,gn=1<<32-qt(t)+o|n<<o|a,vn=s+e}else gn=1<<s|n<<o|a,vn=e}function $u(e){e.return!==null&&(ya(e,1),xv(e,1,0))}function Hu(e){for(;e===qi;)qi=mr[--hr],mr[hr]=null,Bi=mr[--hr],mr[hr]=null;for(;e===Oa;)Oa=xt[--yt],xt[yt]=null,vn=xt[--yt],xt[yt]=null,gn=xt[--yt],xt[yt]=null}var dt=null,ct=null,be=!1,Mt=null;function yv(e,t){var n=wt(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Jm(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,dt=e,ct=na(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,dt=e,ct=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Oa!==null?{id:gn,overflow:vn}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=wt(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,dt=e,ct=null,!0):!1;default:return!1}}function Dd(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Cd(e){if(be){var t=ct;if(t){var n=t;if(!Jm(e,t)){if(Dd(e))throw Error(O(418));t=na(n.nextSibling);var a=dt;t&&Jm(e,t)?yv(a,n):(e.flags=e.flags&-4097|2,be=!1,dt=e)}}else{if(Dd(e))throw Error(O(418));e.flags=e.flags&-4097|2,be=!1,dt=e}}}function eh(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;dt=e}function Bs(e){if(e!==dt)return!1;if(!be)return eh(e),be=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!kd(e.type,e.memoizedProps)),t&&(t=ct)){if(Dd(e))throw wv(),Error(O(418));for(;t;)yv(e,t),t=na(t.nextSibling)}if(eh(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(O(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){ct=na(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}ct=null}}else ct=dt?na(e.stateNode.nextSibling):null;return!0}function wv(){for(var e=ct;e;)e=na(e.nextSibling)}function Fr(){ct=dt=null,be=!1}function Wu(e){Mt===null?Mt=[e]:Mt.push(e)}var S1=Dn.ReactCurrentBatchConfig;function po(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(O(309));var a=n.stateNode}if(!a)throw Error(O(147,e));var o=a,s=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===s?t.ref:(t=function(i){var l=o.refs;i===null?delete l[s]:l[s]=i},t._stringRef=s,t)}if(typeof e!="string")throw Error(O(284));if(!n._owner)throw Error(O(290,e))}return e}function Vs(e,t){throw e=Object.prototype.toString.call(t),Error(O(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function th(e){var t=e._init;return t(e._payload)}function kv(e){function t(b,v){if(e){var x=b.deletions;x===null?(b.deletions=[v],b.flags|=16):x.push(v)}}function n(b,v){if(!e)return null;for(;v!==null;)t(b,v),v=v.sibling;return null}function a(b,v){for(b=new Map;v!==null;)v.key!==null?b.set(v.key,v):b.set(v.index,v),v=v.sibling;return b}function o(b,v){return b=sa(b,v),b.index=0,b.sibling=null,b}function s(b,v,x){return b.index=x,e?(x=b.alternate,x!==null?(x=x.index,x<v?(b.flags|=2,v):x):(b.flags|=2,v)):(b.flags|=1048576,v)}function i(b){return e&&b.alternate===null&&(b.flags|=2),b}function l(b,v,x,k){return v===null||v.tag!==6?(v=Nc(x,b.mode,k),v.return=b,v):(v=o(v,x),v.return=b,v)}function c(b,v,x,k){var j=x.type;return j===ir?u(b,v,x.props.children,k,x.key):v!==null&&(v.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===Bn&&th(j)===v.type)?(k=o(v,x.props),k.ref=po(b,v,x),k.return=b,k):(k=gi(x.type,x.key,x.props,null,b.mode,k),k.ref=po(b,v,x),k.return=b,k)}function d(b,v,x,k){return v===null||v.tag!==4||v.stateNode.containerInfo!==x.containerInfo||v.stateNode.implementation!==x.implementation?(v=Dc(x,b.mode,k),v.return=b,v):(v=o(v,x.children||[]),v.return=b,v)}function u(b,v,x,k,j){return v===null||v.tag!==7?(v=Ra(x,b.mode,k,j),v.return=b,v):(v=o(v,x),v.return=b,v)}function p(b,v,x){if(typeof v=="string"&&v!==""||typeof v=="number")return v=Nc(""+v,b.mode,x),v.return=b,v;if(typeof v=="object"&&v!==null){switch(v.$$typeof){case Is:return x=gi(v.type,v.key,v.props,null,b.mode,x),x.ref=po(b,null,v),x.return=b,x;case sr:return v=Dc(v,b.mode,x),v.return=b,v;case Bn:var k=v._init;return p(b,k(v._payload),x)}if(ko(v)||so(v))return v=Ra(v,b.mode,x,null),v.return=b,v;Vs(b,v)}return null}function h(b,v,x,k){var j=v!==null?v.key:null;if(typeof x=="string"&&x!==""||typeof x=="number")return j!==null?null:l(b,v,""+x,k);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case Is:return x.key===j?c(b,v,x,k):null;case sr:return x.key===j?d(b,v,x,k):null;case Bn:return j=x._init,h(b,v,j(x._payload),k)}if(ko(x)||so(x))return j!==null?null:u(b,v,x,k,null);Vs(b,x)}return null}function m(b,v,x,k,j){if(typeof k=="string"&&k!==""||typeof k=="number")return b=b.get(x)||null,l(v,b,""+k,j);if(typeof k=="object"&&k!==null){switch(k.$$typeof){case Is:return b=b.get(k.key===null?x:k.key)||null,c(v,b,k,j);case sr:return b=b.get(k.key===null?x:k.key)||null,d(v,b,k,j);case Bn:var T=k._init;return m(b,v,x,T(k._payload),j)}if(ko(k)||so(k))return b=b.get(x)||null,u(v,b,k,j,null);Vs(v,k)}return null}function y(b,v,x,k){for(var j=null,T=null,N=v,D=v=0,C=null;N!==null&&D<x.length;D++){N.index>D?(C=N,N=null):C=N.sibling;var E=h(b,N,x[D],k);if(E===null){N===null&&(N=C);break}e&&N&&E.alternate===null&&t(b,N),v=s(E,v,D),T===null?j=E:T.sibling=E,T=E,N=C}if(D===x.length)return n(b,N),be&&ya(b,D),j;if(N===null){for(;D<x.length;D++)N=p(b,x[D],k),N!==null&&(v=s(N,v,D),T===null?j=N:T.sibling=N,T=N);return be&&ya(b,D),j}for(N=a(b,N);D<x.length;D++)C=m(N,b,D,x[D],k),C!==null&&(e&&C.alternate!==null&&N.delete(C.key===null?D:C.key),v=s(C,v,D),T===null?j=C:T.sibling=C,T=C);return e&&N.forEach(function(H){return t(b,H)}),be&&ya(b,D),j}function g(b,v,x,k){var j=so(x);if(typeof j!="function")throw Error(O(150));if(x=j.call(x),x==null)throw Error(O(151));for(var T=j=null,N=v,D=v=0,C=null,E=x.next();N!==null&&!E.done;D++,E=x.next()){N.index>D?(C=N,N=null):C=N.sibling;var H=h(b,N,E.value,k);if(H===null){N===null&&(N=C);break}e&&N&&H.alternate===null&&t(b,N),v=s(H,v,D),T===null?j=H:T.sibling=H,T=H,N=C}if(E.done)return n(b,N),be&&ya(b,D),j;if(N===null){for(;!E.done;D++,E=x.next())E=p(b,E.value,k),E!==null&&(v=s(E,v,D),T===null?j=E:T.sibling=E,T=E);return be&&ya(b,D),j}for(N=a(b,N);!E.done;D++,E=x.next())E=m(N,b,D,E.value,k),E!==null&&(e&&E.alternate!==null&&N.delete(E.key===null?D:E.key),v=s(E,v,D),T===null?j=E:T.sibling=E,T=E);return e&&N.forEach(function(_){return t(b,_)}),be&&ya(b,D),j}function w(b,v,x,k){if(typeof x=="object"&&x!==null&&x.type===ir&&x.key===null&&(x=x.props.children),typeof x=="object"&&x!==null){switch(x.$$typeof){case Is:e:{for(var j=x.key,T=v;T!==null;){if(T.key===j){if(j=x.type,j===ir){if(T.tag===7){n(b,T.sibling),v=o(T,x.props.children),v.return=b,b=v;break e}}else if(T.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===Bn&&th(j)===T.type){n(b,T.sibling),v=o(T,x.props),v.ref=po(b,T,x),v.return=b,b=v;break e}n(b,T);break}else t(b,T);T=T.sibling}x.type===ir?(v=Ra(x.props.children,b.mode,k,x.key),v.return=b,b=v):(k=gi(x.type,x.key,x.props,null,b.mode,k),k.ref=po(b,v,x),k.return=b,b=k)}return i(b);case sr:e:{for(T=x.key;v!==null;){if(v.key===T)if(v.tag===4&&v.stateNode.containerInfo===x.containerInfo&&v.stateNode.implementation===x.implementation){n(b,v.sibling),v=o(v,x.children||[]),v.return=b,b=v;break e}else{n(b,v);break}else t(b,v);v=v.sibling}v=Dc(x,b.mode,k),v.return=b,b=v}return i(b);case Bn:return T=x._init,w(b,v,T(x._payload),k)}if(ko(x))return y(b,v,x,k);if(so(x))return g(b,v,x,k);Vs(b,x)}return typeof x=="string"&&x!==""||typeof x=="number"?(x=""+x,v!==null&&v.tag===6?(n(b,v.sibling),v=o(v,x),v.return=b,b=v):(n(b,v),v=Nc(x,b.mode,k),v.return=b,b=v),i(b)):n(b,v)}return w}var qr=kv(!0),jv=kv(!1),Vi=ma(null),$i=null,fr=null,Uu=null;function Ku(){Uu=fr=$i=null}function Gu(e){var t=Vi.current;ge(Vi),e._currentValue=t}function Sd(e,t,n){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function kr(e,t){$i=e,Uu=fr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(at=!0),e.firstContext=null)}function Tt(e){var t=e._currentValue;if(Uu!==e)if(e={context:e,memoizedValue:t,next:null},fr===null){if($i===null)throw Error(O(308));fr=e,$i.dependencies={lanes:0,firstContext:e}}else fr=fr.next=e;return t}var ja=null;function Qu(e){ja===null?ja=[e]:ja.push(e)}function Tv(e,t,n,a){var o=t.interleaved;return o===null?(n.next=n,Qu(t)):(n.next=o.next,o.next=n),t.interleaved=n,kn(e,a)}function kn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Vn=!1;function Yu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Nv(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function bn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function aa(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,se&2){var o=a.pending;return o===null?t.next=t:(t.next=o.next,o.next=t),a.pending=t,kn(e,n)}return o=a.interleaved,o===null?(t.next=t,Qu(a)):(t.next=o.next,o.next=t),a.interleaved=t,kn(e,n)}function di(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Ou(e,n)}}function nh(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var o=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?o=s=i:s=s.next=i,n=n.next}while(n!==null);s===null?o=s=t:s=s.next=t}else o=s=t;n={baseState:a.baseState,firstBaseUpdate:o,lastBaseUpdate:s,shared:a.shared,effects:a.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Hi(e,t,n,a){var o=e.updateQueue;Vn=!1;var s=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(l!==null){o.shared.pending=null;var c=l,d=c.next;c.next=null,i===null?s=d:i.next=d,i=c;var u=e.alternate;u!==null&&(u=u.updateQueue,l=u.lastBaseUpdate,l!==i&&(l===null?u.firstBaseUpdate=d:l.next=d,u.lastBaseUpdate=c))}if(s!==null){var p=o.baseState;i=0,u=d=c=null,l=s;do{var h=l.lane,m=l.eventTime;if((a&h)===h){u!==null&&(u=u.next={eventTime:m,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var y=e,g=l;switch(h=t,m=n,g.tag){case 1:if(y=g.payload,typeof y=="function"){p=y.call(m,p,h);break e}p=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=g.payload,h=typeof y=="function"?y.call(m,p,h):y,h==null)break e;p=ke({},p,h);break e;case 2:Vn=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,h=o.effects,h===null?o.effects=[l]:h.push(l))}else m={eventTime:m,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},u===null?(d=u=m,c=p):u=u.next=m,i|=h;if(l=l.next,l===null){if(l=o.shared.pending,l===null)break;h=l,l=h.next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}}while(!0);if(u===null&&(c=p),o.baseState=c,o.firstBaseUpdate=d,o.lastBaseUpdate=u,t=o.shared.interleaved,t!==null){o=t;do i|=o.lane,o=o.next;while(o!==t)}else s===null&&(o.shared.lanes=0);za|=i,e.lanes=i,e.memoizedState=p}}function ah(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var a=e[t],o=a.callback;if(o!==null){if(a.callback=null,a=n,typeof o!="function")throw Error(O(191,o));o.call(a)}}}var vs={},an=ma(vs),Qo=ma(vs),Yo=ma(vs);function Ta(e){if(e===vs)throw Error(O(174));return e}function Zu(e,t){switch(me(Yo,t),me(Qo,e),me(an,vs),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ld(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=ld(t,e)}ge(an),me(an,t)}function Br(){ge(an),ge(Qo),ge(Yo)}function Dv(e){Ta(Yo.current);var t=Ta(an.current),n=ld(t,e.type);t!==n&&(me(Qo,e),me(an,n))}function Xu(e){Qo.current===e&&(ge(an),ge(Qo))}var ye=ma(0);function Wi(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var xc=[];function Ju(){for(var e=0;e<xc.length;e++)xc[e]._workInProgressVersionPrimary=null;xc.length=0}var ui=Dn.ReactCurrentDispatcher,yc=Dn.ReactCurrentBatchConfig,La=0,we=null,Ae=null,_e=null,Ui=!1,Eo=!1,Zo=0,P1=0;function $e(){throw Error(O(321))}function ep(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Vt(e[n],t[n]))return!1;return!0}function tp(e,t,n,a,o,s){if(La=s,we=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ui.current=e===null||e.memoizedState===null?R1:_1,e=n(a,o),Eo){s=0;do{if(Eo=!1,Zo=0,25<=s)throw Error(O(301));s+=1,_e=Ae=null,t.updateQueue=null,ui.current=O1,e=n(a,o)}while(Eo)}
vendor: 6,481 bytes, line 38
38if(ui.current=Ki,t=Ae!==null&&Ae.next!==null,La=0,_e=Ae=we=null,Ui=!1,t)throw Error(O(300));return e}function np(){var e=Zo!==0;return Zo=0,e}function Gt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return _e===null?we.memoizedState=_e=e:_e=_e.next=e,_e}function Nt(){if(Ae===null){var e=we.alternate;e=e!==null?e.memoizedState:null}else e=Ae.next;var t=_e===null?we.memoizedState:_e.next;if(t!==null)_e=t,Ae=e;else{if(e===null)throw Error(O(310));Ae=e,e={memoizedState:Ae.memoizedState,baseState:Ae.baseState,baseQueue:Ae.baseQueue,queue:Ae.queue,next:null},_e===null?we.memoizedState=_e=e:_e=_e.next=e}return _e}function Xo(e,t){return typeof t=="function"?t(e):t}function wc(e){var t=Nt(),n=t.queue;if(n===null)throw Error(O(311));n.lastRenderedReducer=e;var a=Ae,o=a.baseQueue,s=n.pending;if(s!==null){if(o!==null){var i=o.next;o.next=s.next,s.next=i}a.baseQueue=o=s,n.pending=null}if(o!==null){s=o.next,a=a.baseState;var l=i=null,c=null,d=s;do{var u=d.lane;if((La&u)===u)c!==null&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),a=d.hasEagerState?d.eagerState:e(a,d.action);else{var p={lane:u,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};c===null?(l=c=p,i=a):c=c.next=p,we.lanes|=u,za|=u}d=d.next}while(d!==null&&d!==s);c===null?i=a:c.next=l,Vt(a,t.memoizedState)||(at=!0),t.memoizedState=a,t.baseState=i,t.baseQueue=c,n.lastRenderedState=a}if(e=n.interleaved,e!==null){o=e;do s=o.lane,we.lanes|=s,za|=s,o=o.next;while(o!==e)}else o===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function kc(e){var t=Nt(),n=t.queue;if(n===null)throw Error(O(311));n.lastRenderedReducer=e;var a=n.dispatch,o=n.pending,s=t.memoizedState;if(o!==null){n.pending=null;var i=o=o.next;do s=e(s,i.action),i=i.next;while(i!==o);Vt(s,t.memoizedState)||(at=!0),t.memoizedState=s,t.baseQueue===null&&(t.baseState=s),n.lastRenderedState=s}return[s,a]}function Cv(){}function Sv(e,t){var n=we,a=Nt(),o=t(),s=!Vt(a.memoizedState,o);if(s&&(a.memoizedState=o,at=!0),a=a.queue,ap(Iv.bind(null,n,a,e),[e]),a.getSnapshot!==t||s||_e!==null&&_e.memoizedState.tag&1){if(n.flags|=2048,Jo(9,Ev.bind(null,n,a,o,t),void 0,null),Le===null)throw Error(O(349));La&30||Pv(n,t,o)}return o}function Pv(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=we.updateQueue,t===null?(t={lastEffect:null,stores:null},we.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Ev(e,t,n,a){t.value=n,t.getSnapshot=a,Av(t)&&Rv(e)}function Iv(e,t,n){return n(function(){Av(t)&&Rv(e)})}function Av(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Vt(e,n)}catch{return!0}}function Rv(e){var t=kn(e,1);t!==null&&Bt(t,e,1,-1)}function rh(e){var t=Gt();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Xo,lastRenderedState:e},t.queue=e,e=e.dispatch=A1.bind(null,we,e),[t.memoizedState,e]}function Jo(e,t,n,a){return e={tag:e,create:t,destroy:n,deps:a,next:null},t=we.updateQueue,t===null?(t={lastEffect:null,stores:null},we.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e)),e}function _v(){return Nt().memoizedState}function pi(e,t,n,a){var o=Gt();we.flags|=e,o.memoizedState=Jo(1|t,n,void 0,a===void 0?null:a)}function kl(e,t,n,a){var o=Nt();a=a===void 0?null:a;var s=void 0;if(Ae!==null){var i=Ae.memoizedState;if(s=i.destroy,a!==null&&ep(a,i.deps)){o.memoizedState=Jo(t,n,s,a);return}}we.flags|=e,o.memoizedState=Jo(1|t,n,s,a)}function oh(e,t){return pi(8390656,8,e,t)}function ap(e,t){return kl(2048,8,e,t)}function Ov(e,t){return kl(4,2,e,t)}function Lv(e,t){return kl(4,4,e,t)}function zv(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Mv(e,t,n){return n=n!=null?n.concat([e]):null,kl(4,4,zv.bind(null,t,e),n)}function rp(){}function Fv(e,t){var n=Nt();t=t===void 0?null:t;var a=n.memoizedState;return a!==null&&t!==null&&ep(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function qv(e,t){var n=Nt();t=t===void 0?null:t;var a=n.memoizedState;return a!==null&&t!==null&&ep(t,a[1])?a[0]:(e=e(),n.memoizedState=[e,t],e)}function Bv(e,t,n){return La&21?(Vt(n,t)||(n=Ug(),we.lanes|=n,za|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,at=!0),e.memoizedState=n)}function E1(e,t){var n=ce;ce=n!==0&&4>n?n:4,e(!0);var a=yc.transition;yc.transition={};try{e(!1),t()}finally{ce=n,yc.transition=a}}function Vv(){return Nt().memoizedState}function I1(e,t,n){var a=oa(e);if(n={lane:a,action:n,hasEagerState:!1,eagerState:null,next:null},$v(e))Hv(t,n);else if(n=Tv(e,t,n,a),n!==null){var o=Xe();Bt(n,e,a,o),Wv(n,t,a)}}function A1(e,t,n){var a=oa(e),o={lane:a,action:n,hasEagerState:!1,eagerState:null,next:null};if($v(e))Hv(t,o);else{var s=e.alternate;if(e.lanes===0&&(s===null||s.lanes===0)&&(s=t.lastRenderedReducer,s!==null))try{var i=t.lastRenderedState,l=s(i,n);if(o.hasEagerState=!0,o.eagerState=l,Vt(l,i)){var c=t.interleaved;c===null?(o.next=o,Qu(t)):(o.next=c.next,c.next=o),t.interleaved=o;return}}catch{}finally{}n=Tv(e,t,o,a),n!==null&&(o=Xe(),Bt(n,e,a,o),Wv(n,t,a))}}function $v(e){var t=e.alternate;return e===we||t!==null&&t===we}function Hv(e,t){Eo=Ui=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Wv(e,t,n){if(n&4194240){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,Ou(e,n)}}var Ki={readContext:Tt,useCallback:$e,useContext:$e,useEffect:$e,useImperativeHandle:$e,useInsertionEffect:$e,useLayoutEffect:$e,useMemo:$e,useReducer:$e,useRef:$e,useState:$e,useDebugValue:$e,useDeferredValue:$e,useTransition:$e,useMutableSource:$e,useSyncExternalStore:$e,useId:$e,unstable_isNewReconciler:!1},R1={readContext:Tt,useCallback:function(e,t){return Gt().memoizedState=[e,t===void 0?null:t],e},useContext:Tt,useEffect:oh,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,pi(4194308,4,zv.bind(null,t,e),n)},useLayoutEffect:function(e,t){return pi(4194308,4,e,t)},useInsertionEffect:function(e,t){return pi(4,2,e,t)},useMemo:function(e,t){var n=Gt();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var a=Gt();return t=n!==void 0?n(t):t,a.memoizedState=a.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},a.queue=e,e=e.dispatch=I1.bind(null,we,e),[a.memoizedState,e]}
vendor: 7,431 bytes, lines 38-40
38,useRef:function(e){var t=Gt();return e={current:e},t.memoizedState=e},useState:rh,useDebugValue:rp,useDeferredValue:function(e){return Gt().memoizedState=e},useTransition:function(){var e=rh(!1),t=e[0];return e=E1.bind(null,e[1]),Gt().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var a=we,o=Gt();if(be){if(n===void 0)throw Error(O(407));n=n()}else{if(n=t(),Le===null)throw Error(O(349));La&30||Pv(a,t,n)}o.memoizedState=n;var s={value:n,getSnapshot:t};return o.queue=s,oh(Iv.bind(null,a,s,e),[e]),a.flags|=2048,Jo(9,Ev.bind(null,a,s,n,t),void 0,null),n},useId:function(){var e=Gt(),t=Le.identifierPrefix;if(be){var n=vn,a=gn;n=(a&~(1<<32-qt(a)-1)).toString(32)+n,t=":"+t+"R"+n,n=Zo++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=P1++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},_1={readContext:Tt,useCallback:Fv,useContext:Tt,useEffect:ap,useImperativeHandle:Mv,useInsertionEffect:Ov,useLayoutEffect:Lv,useMemo:qv,useReducer:wc,useRef:_v,useState:function(){return wc(Xo)},useDebugValue:rp,useDeferredValue:function(e){var t=Nt();return Bv(t,Ae.memoizedState,e)},useTransition:function(){var e=wc(Xo)[0],t=Nt().memoizedState;return[e,t]},useMutableSource:Cv,useSyncExternalStore:Sv,useId:Vv,unstable_isNewReconciler:!1},O1={readContext:Tt,useCallback:Fv,useContext:Tt,useEffect:ap,useImperativeHandle:Mv,useInsertionEffect:Ov,useLayoutEffect:Lv,useMemo:qv,useReducer:kc,useRef:_v,useState:function(){return kc(Xo)},useDebugValue:rp,useDeferredValue:function(e){var t=Nt();return Ae===null?t.memoizedState=e:Bv(t,Ae.memoizedState,e)},useTransition:function(){var e=kc(Xo)[0],t=Nt().memoizedState;return[e,t]},useMutableSource:Cv,useSyncExternalStore:Sv,useId:Vv,unstable_isNewReconciler:!1};function Rt(e,t){if(e&&e.defaultProps){t=ke({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Pd(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:ke({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var jl={isMounted:function(e){return(e=e._reactInternals)?$a(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var a=Xe(),o=oa(e),s=bn(a,o);s.payload=t,n!=null&&(s.callback=n),t=aa(e,s,o),t!==null&&(Bt(t,e,o,a),di(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=Xe(),o=oa(e),s=bn(a,o);s.tag=1,s.payload=t,n!=null&&(s.callback=n),t=aa(e,s,o),t!==null&&(Bt(t,e,o,a),di(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Xe(),a=oa(e),o=bn(n,a);o.tag=2,t!=null&&(o.callback=t),t=aa(e,o,a),t!==null&&(Bt(t,e,a,n),di(t,e,a))}};function sh(e,t,n,a,o,s,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,s,i):t.prototype&&t.prototype.isPureReactComponent?!Wo(n,a)||!Wo(o,s):!0}function Uv(e,t,n){var a=!1,o=ca,s=t.contextType;return typeof s=="object"&&s!==null?s=Tt(s):(o=ot(t)?_a:Ke.current,a=t.contextTypes,s=(a=a!=null)?Mr(e,o):ca),t=new t(n,s),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=jl,e.stateNode=t,t._reactInternals=e,a&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=s),t}function ih(e,t,n,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&jl.enqueueReplaceState(t,t.state,null)}function Ed(e,t,n,a){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},Yu(e);var s=t.contextType;typeof s=="object"&&s!==null?o.context=Tt(s):(s=ot(t)?_a:Ke.current,o.context=Mr(e,s)),o.state=e.memoizedState,s=t.getDerivedStateFromProps,typeof s=="function"&&(Pd(e,t,s,n),o.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(t=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),t!==o.state&&jl.enqueueReplaceState(o,o.state,null),Hi(e,n,o,a),o.state=e.memoizedState),typeof o.componentDidMount=="function"&&(e.flags|=4194308)}function Vr(e,t){try{var n="",a=t;do n+=cw(a),a=a.return;while(a);var o=n}catch(s){o=`
39Error generating stack: `+s.message+`
40`+s.stack}return{value:e,source:t,stack:o,digest:null}}function jc(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Id(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var L1=typeof WeakMap=="function"?WeakMap:Map;function Kv(e,t,n){n=bn(-1,n),n.tag=3,n.payload={element:null};var a=t.value;return n.callback=function(){Qi||(Qi=!0,Bd=a),Id(e,t)},n}function Gv(e,t,n){n=bn(-1,n),n.tag=3;var a=e.type.getDerivedStateFromError;if(typeof a=="function"){var o=t.value;n.payload=function(){return a(o)},n.callback=function(){Id(e,t)}}var s=e.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(n.callback=function(){Id(e,t),typeof a!="function"&&(ra===null?ra=new Set([this]):ra.add(this));var i=t.stack;this.componentDidCatch(t.value,{componentStack:i!==null?i:""})}),n}function lh(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new L1;var o=new Set;a.set(t,o)}else o=a.get(t),o===void 0&&(o=new Set,a.set(t,o));o.has(n)||(o.add(n),e=Y1.bind(null,e,t,n),t.then(e,e))}function ch(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function dh(e,t,n,a,o){return e.mode&1?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=bn(-1,1),t.tag=2,aa(n,t,1))),n.lanes|=1),e)}var z1=Dn.ReactCurrentOwner,at=!1;function Ye(e,t,n,a){t.child=e===null?jv(t,null,n,a):qr(t,e.child,n,a)}function uh(e,t,n,a,o){n=n.render;var s=t.ref;return kr(t,o),a=tp(e,t,n,a,s,o),n=np(),e!==null&&!at?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,jn(e,t,o)):(be&&n&&$u(t),t.flags|=1,Ye(e,t,a,o),t.child)}function ph(e,t,n,a,o){if(e===null){var s=n.type;return typeof s=="function"&&!pp(s)&&s.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=s,Qv(e,t,s,a,o)):(e=gi(n.type,null,a,t,t.mode,o),e.ref=t.ref,e.return=t,t.child=e)}if(s=e.child,!(e.lanes&o)){var i=s.memoizedProps;if(n=n.compare,n=n!==null?n:Wo,n(i,a)&&e.ref===t.ref)return jn(e,t,o)}return t.flags|=1,e=sa(s,a),e.ref=t.ref,e.return=t,t.child=e}function Qv(e,t,n,a,o){if(e!==null){var s=e.memoizedProps;if(Wo(s,a)&&e.ref===t.ref)if(at=!1,t.pendingProps=a=s,(e.lanes&o)!==0)e.flags&131072&&(at=!0);else return t.lanes=e.lanes,jn(e,t,o)}return Ad(e,t,n,a,o)}function Yv(e,t,n){var a=t.pendingProps,o=a.children,s=e!==null?e.memoizedState:null;if(a.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},me(vr,it),it|=n;else{if(!(n&1073741824))return e=s!==null?s.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,me(vr,it),it|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},a=s!==null?s.baseLanes:n,me(vr,it),it|=a}else s!==null?(a=s.baseLanes|n,t.memoizedState=null):a=n,me(vr,it),it|=a;return Ye(e,t,o,n),t.child}function Zv(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}
vendor: 8,751 bytes, line 40
40function Ad(e,t,n,a,o){var s=ot(n)?_a:Ke.current;return s=Mr(t,s),kr(t,o),n=tp(e,t,n,a,s,o),a=np(),e!==null&&!at?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,jn(e,t,o)):(be&&a&&$u(t),t.flags|=1,Ye(e,t,n,o),t.child)}function mh(e,t,n,a,o){if(ot(n)){var s=!0;Fi(t)}else s=!1;if(kr(t,o),t.stateNode===null)mi(e,t),Uv(t,n,a),Ed(t,n,a,o),a=!0;else if(e===null){var i=t.stateNode,l=t.memoizedProps;i.props=l;var c=i.context,d=n.contextType;typeof d=="object"&&d!==null?d=Tt(d):(d=ot(n)?_a:Ke.current,d=Mr(t,d));var u=n.getDerivedStateFromProps,p=typeof u=="function"||typeof i.getSnapshotBeforeUpdate=="function";p||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==a||c!==d)&&ih(t,i,a,d),Vn=!1;var h=t.memoizedState;i.state=h,Hi(t,a,i,o),c=t.memoizedState,l!==a||h!==c||rt.current||Vn?(typeof u=="function"&&(Pd(t,n,u,a),c=t.memoizedState),(l=Vn||sh(t,n,l,a,h,c,d))?(p||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(t.flags|=4194308)):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=c),i.props=a,i.state=c,i.context=d,a=l):(typeof i.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{i=t.stateNode,Nv(e,t),l=t.memoizedProps,d=t.type===t.elementType?l:Rt(t.type,l),i.props=d,p=t.pendingProps,h=i.context,c=n.contextType,typeof c=="object"&&c!==null?c=Tt(c):(c=ot(n)?_a:Ke.current,c=Mr(t,c));var m=n.getDerivedStateFromProps;(u=typeof m=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==p||h!==c)&&ih(t,i,a,c),Vn=!1,h=t.memoizedState,i.state=h,Hi(t,a,i,o);var y=t.memoizedState;l!==p||h!==y||rt.current||Vn?(typeof m=="function"&&(Pd(t,n,m,a),y=t.memoizedState),(d=Vn||sh(t,n,d,a,h,y,c)||!1)?(u||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(a,y,c),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(a,y,c)),typeof i.componentDidUpdate=="function"&&(t.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=y),i.props=a,i.state=y,i.context=c,a=d):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),a=!1)}return Rd(e,t,n,a,s,o)}function Rd(e,t,n,a,o,s){Zv(e,t);var i=(t.flags&128)!==0;if(!a&&!i)return o&&Xm(t,n,!1),jn(e,t,s);a=t.stateNode,z1.current=t;var l=i&&typeof n.getDerivedStateFromError!="function"?null:a.render();return t.flags|=1,e!==null&&i?(t.child=qr(t,e.child,null,s),t.child=qr(t,null,l,s)):Ye(e,t,l,s),t.memoizedState=a.state,o&&Xm(t,n,!0),t.child}function Xv(e){var t=e.stateNode;t.pendingContext?Zm(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Zm(e,t.context,!1),Zu(e,t.containerInfo)}function hh(e,t,n,a,o){return Fr(),Wu(o),t.flags|=256,Ye(e,t,n,a),t.child}var _d={dehydrated:null,treeContext:null,retryLane:0};function Od(e){return{baseLanes:e,cachePool:null,transitions:null}}function Jv(e,t,n){var a=t.pendingProps,o=ye.current,s=!1,i=(t.flags&128)!==0,l;if((l=i)||(l=e!==null&&e.memoizedState===null?!1:(o&2)!==0),l?(s=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),me(ye,o&1),e===null)return Cd(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(i=a.children,e=a.fallback,s?(a=t.mode,s=t.child,i={mode:"hidden",children:i},!(a&1)&&s!==null?(s.childLanes=0,s.pendingProps=i):s=Dl(i,a,0,null),e=Ra(e,a,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Od(n),t.memoizedState=_d,e):op(t,i));if(o=e.memoizedState,o!==null&&(l=o.dehydrated,l!==null))return M1(e,t,i,a,l,o,n);if(s){s=a.fallback,i=t.mode,o=e.child,l=o.sibling;var c={mode:"hidden",children:a.children};return!(i&1)&&t.child!==o?(a=t.child,a.childLanes=0,a.pendingProps=c,t.deletions=null):(a=sa(o,c),a.subtreeFlags=o.subtreeFlags&14680064),l!==null?s=sa(l,s):(s=Ra(s,i,n,null),s.flags|=2),s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,i=e.child.memoizedState,i=i===null?Od(n):{baseLanes:i.baseLanes|n,cachePool:null,transitions:i.transitions},s.memoizedState=i,s.childLanes=e.childLanes&~n,t.memoizedState=_d,a}return s=e.child,e=s.sibling,a=sa(s,{mode:"visible",children:a.children}),!(t.mode&1)&&(a.lanes=n),a.return=t,a.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function op(e,t){return t=Dl({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function $s(e,t,n,a){return a!==null&&Wu(a),qr(t,e.child,null,n),e=op(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function M1(e,t,n,a,o,s,i){if(n)return t.flags&256?(t.flags&=-257,a=jc(Error(O(422))),$s(e,t,i,a)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(s=a.fallback,o=t.mode,a=Dl({mode:"visible",children:a.children},o,0,null),s=Ra(s,o,i,null),s.flags|=2,a.return=t,s.return=t,a.sibling=s,t.child=a,t.mode&1&&qr(t,e.child,null,i),t.child.memoizedState=Od(i),t.memoizedState=_d,s);if(!(t.mode&1))return $s(e,t,i,null);if(o.data==="$!"){if(a=o.nextSibling&&o.nextSibling.dataset,a)var l=a.dgst;return a=l,s=Error(O(419)),a=jc(s,a,void 0),$s(e,t,i,a)}if(l=(i&e.childLanes)!==0,at||l){if(a=Le,a!==null){switch(i&-i){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=o&(a.suspendedLanes|i)?0:o,o!==0&&o!==s.retryLane&&(s.retryLane=o,kn(e,o),Bt(a,e,o,-1))}return up(),a=jc(Error(O(421))),$s(e,t,i,a)}return o.data==="$?"?(t.flags|=128,t.child=e.child,t=Z1.bind(null,e),o._reactRetry=t,null):(e=s.treeContext,ct=na(o.nextSibling),dt=t,be=!0,Mt=null,e!==null&&(xt[yt++]=gn,xt[yt++]=vn,xt[yt++]=Oa,gn=e.id,vn=e.overflow,Oa=t),t=op(t,a.children),t.flags|=4096,t)}function fh(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Sd(e.return,t,n)}function Tc(e,t,n,a,o){var s=e.memoizedState;s===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:o}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=a,s.tail=n,s.tailMode=o)}function eb(e,t,n){var a=t.pendingProps,o=a.revealOrder,s=a.tail;if(Ye(e,t,a.children,n),a=ye.current,a&2)a=a&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&fh(e,n,t);else if(e.tag===19)fh(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}a&=1}if(me(ye,a),!(t.mode&1))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;n!==null;)e=n.alternate,e!==null&&Wi(e)===null&&(o=n),n=n.sibling;n=o,n===null?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Tc(t,!1,o,n,s);break;case"backwards":for(n=null,o=t.child,t.child=null;o!==null;){if(e=o.alternate,e!==null&&Wi(e)===null){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Tc(t,!0,n,null,s);break;case"together":Tc(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function mi(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function jn(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),za|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(O(153));if(t.child!==null){for(e=t.child,n=sa(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=sa(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function F1(e,t,n){switch(t.tag){case 3:Xv(t),Fr();break;case 5:Dv(t);break;case 1:ot(t.type)&&Fi(t);break;case 4:Zu(t,t.stateNode.containerInfo);break;case 10:var a=t.type._context,o=t.memoizedProps.value;me(Vi,a._currentValue),a._currentValue=o;break;case 13:if(a=t.memoizedState,a!==null)return a.dehydrated!==null?(me(ye,ye.current&1),t.flags|=128,null):n&t.child.childLanes?Jv(e,t,n):(me
vendor: 2,598 bytes, line 40
40(ye,ye.current&1),e=jn(e,t,n),e!==null?e.sibling:null);me(ye,ye.current&1);break;case 19:if(a=(n&t.childLanes)!==0,e.flags&128){if(a)return eb(e,t,n);t.flags|=128}if(o=t.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),me(ye,ye.current),a)break;return null;case 22:case 23:return t.lanes=0,Yv(e,t,n)}return jn(e,t,n)}var tb,Ld,nb,ab;tb=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Ld=function(){};nb=function(e,t,n,a){var o=e.memoizedProps;if(o!==a){e=t.stateNode,Ta(an.current);var s=null;switch(n){case"input":o=rd(e,o),a=rd(e,a),s=[];break;case"select":o=ke({},o,{value:void 0}),a=ke({},a,{value:void 0}),s=[];break;case"textarea":o=id(e,o),a=id(e,a),s=[];break;default:typeof o.onClick!="function"&&typeof a.onClick=="function"&&(e.onclick=zi)}cd(n,a);var i;n=null;for(d in o)if(!a.hasOwnProperty(d)&&o.hasOwnProperty(d)&&o[d]!=null)if(d==="style"){var l=o[d];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(Mo.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in a){var c=a[d];if(l=o!=null?o[d]:void 0,a.hasOwnProperty(d)&&c!==l&&(c!=null||l!=null))if(d==="style")if(l){for(i in l)!l.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&l[i]!==c[i]&&(n||(n={}),n[i]=c[i])}else n||(s||(s=[]),s.push(d,n)),n=c;else d==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(s=s||[]).push(d,c)):d==="children"?typeof c!="string"&&typeof c!="number"||(s=s||[]).push(d,""+c):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(Mo.hasOwnProperty(d)?(c!=null&&d==="onScroll"&&fe("scroll",e),s||l===c||(s=[])):(s=s||[]).push(d,c))}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4)}};ab=function(e,t,n,a){n!==a&&(t.flags|=4)};function mo(e,t){if(!be)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function He(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var o=e.child;o!==null;
vendor: 33,270 bytes, line 40
40)n|=o.lanes|o.childLanes,a|=o.subtreeFlags&14680064,a|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)n|=o.lanes|o.childLanes,a|=o.subtreeFlags,a|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function q1(e,t,n){var a=t.pendingProps;switch(Hu(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return He(t),null;case 1:return ot(t.type)&&Mi(),He(t),null;case 3:return a=t.stateNode,Br(),ge(rt),ge(Ke),Ju(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(e===null||e.child===null)&&(Bs(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Mt!==null&&(Hd(Mt),Mt=null))),Ld(e,t),He(t),null;case 5:Xu(t);var o=Ta(Yo.current);if(n=t.type,e!==null&&t.stateNode!=null)nb(e,t,n,a,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!a){if(t.stateNode===null)throw Error(O(166));return He(t),null}if(e=Ta(an.current),Bs(t)){a=t.stateNode,n=t.type;var s=t.memoizedProps;switch(a[Xt]=t,a[Go]=s,e=(t.mode&1)!==0,n){case"dialog":fe("cancel",a),fe("close",a);break;case"iframe":case"object":case"embed":fe("load",a);break;case"video":case"audio":for(o=0;o<To.length;o++)fe(To[o],a);break;case"source":fe("error",a);break;case"img":case"image":case"link":fe("error",a),fe("load",a);break;case"details":fe("toggle",a);break;case"input":Tm(a,s),fe("invalid",a);break;case"select":a._wrapperState={wasMultiple:!!s.multiple},fe("invalid",a);break;case"textarea":Dm(a,s),fe("invalid",a)}cd(n,s),o=null;for(var i in s)if(s.hasOwnProperty(i)){var l=s[i];i==="children"?typeof l=="string"?a.textContent!==l&&(s.suppressHydrationWarning!==!0&&qs(a.textContent,l,e),o=["children",l]):typeof l=="number"&&a.textContent!==""+l&&(s.suppressHydrationWarning!==!0&&qs(a.textContent,l,e),o=["children",""+l]):Mo.hasOwnProperty(i)&&l!=null&&i==="onScroll"&&fe("scroll",a)}switch(n){case"input":As(a),Nm(a,s,!0);break;case"textarea":As(a),Cm(a);break;case"select":case"option":break;default:typeof s.onClick=="function"&&(a.onclick=zi)}a=o,t.updateQueue=a,a!==null&&(t.flags|=4)}else{i=o.nodeType===9?o:o.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Ig(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof a.is=="string"?e=i.createElement(n,{is:a.is}):(e=i.createElement(n),n==="select"&&(i=e,a.multiple?i.multiple=!0:a.size&&(i.size=a.size))):e=i.createElementNS(e,n),e[Xt]=t,e[Go]=a,tb(e,t,!1,!1),t.stateNode=e;e:{switch(i=dd(n,a),n){case"dialog":fe("cancel",e),fe("close",e),o=a;break;case"iframe":case"object":case"embed":fe("load",e),o=a;break;case"video":case"audio":for(o=0;o<To.length;o++)fe(To[o],e);o=a;break;case"source":fe("error",e),o=a;break;case"img":case"image":case"link":fe("error",e),fe("load",e),o=a;break;case"details":fe("toggle",e),o=a;break;case"input":Tm(e,a),o=rd(e,a),fe("invalid",e);break;case"option":o=a;break;case"select":e._wrapperState={wasMultiple:!!a.multiple},o=ke({},a,{value:void 0}),fe("invalid",e);break;case"textarea":Dm(e,a),o=id(e,a),fe("invalid",e);break;default:o=a}cd(n,o),l=o;for(s in l)if(l.hasOwnProperty(s)){var c=l[s];s==="style"?_g(e,c):s==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&Ag(e,c)):s==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&Fo(e,c):typeof c=="number"&&Fo(e,""+c):s!=="suppressContentEditableWarning"&&s!=="suppressHydrationWarning"&&s!=="autoFocus"&&(Mo.hasOwnProperty(s)?c!=null&&s==="onScroll"&&fe("scroll",e):c!=null&&Pu(e,s,c,i))}switch(n){case"input":As(e),Nm(e,a,!1);break;case"textarea":As(e),Cm(e);break;case"option":a.value!=null&&e.setAttribute("value",""+la(a.value));break;case"select":e.multiple=!!a.multiple,s=a.value,s!=null?br(e,!!a.multiple,s,!1):a.defaultValue!=null&&br(e,!!a.multiple,a.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=zi)}switch(n){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}}a&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return He(t),null;case 6:if(e&&t.stateNode!=null)ab(e,t,e.memoizedProps,a);else{if(typeof a!="string"&&t.stateNode===null)throw Error(O(166));if(n=Ta(Yo.current),Ta(an.current),Bs(t)){if(a=t.stateNode,n=t.memoizedProps,a[Xt]=t,(s=a.nodeValue!==n)&&(e=dt,e!==null))switch(e.tag){case 3:qs(a.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&qs(a.nodeValue,n,(e.mode&1)!==0)}s&&(t.flags|=4)}else a=(n.nodeType===9?n:n.ownerDocument).createTextNode(a),a[Xt]=t,t.stateNode=a}return He(t),null;case 13:if(ge(ye),a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(be&&ct!==null&&t.mode&1&&!(t.flags&128))wv(),Fr(),t.flags|=98560,s=!1;else if(s=Bs(t),a!==null&&a.dehydrated!==null){if(e===null){if(!s)throw Error(O(318));if(s=t.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(O(317));s[Xt]=t}else Fr(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;He(t),s=!1}else Mt!==null&&(Hd(Mt),Mt=null),s=!0;if(!s)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(a=a!==null,a!==(e!==null&&e.memoizedState!==null)&&a&&(t.child.flags|=8192,t.mode&1&&(e===null||ye.current&1?Re===0&&(Re=3):up())),t.updateQueue!==null&&(t.flags|=4),He(t),null);case 4:return Br(),Ld(e,t),e===null&&Uo(t.stateNode.containerInfo),He(t),null;case 10:return Gu(t.type._context),He(t),null;case 17:return ot(t.type)&&Mi(),He(t),null;case 19:if(ge(ye),s=t.memoizedState,s===null)return He(t),null;if(a=(t.flags&128)!==0,i=s.rendering,i===null)if(a)mo(s,!1);else{if(Re!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(i=Wi(e),i!==null){for(t.flags|=128,mo(s,!1),a=i.updateQueue,a!==null&&(t.updateQueue=a,t.flags|=4),t.subtreeFlags=0,a=n,n=t.child;n!==null;)s=n,e=a,s.flags&=14680066,i=s.alternate,i===null?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=i.childLanes,s.lanes=i.lanes,s.child=i.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=i.memoizedProps,s.memoizedState=i.memoizedState,s.updateQueue=i.updateQueue,s.type=i.type,e=i.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return me(ye,ye.current&1|2),t.child}e=e.sibling}s.tail!==null&&Ce()>$r&&(t.flags|=128,a=!0,mo(s,!1),t.lanes=4194304)}else{if(!a)if(e=Wi(i),e!==null){if(t.flags|=128,a=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),mo(s,!0),s.tail===null&&s.tailMode==="hidden"&&!i.alternate&&!be)return He(t),null}else 2*Ce()-s.renderingStartTime>$r&&n!==1073741824&&(t.flags|=128,a=!0,mo(s,!1),t.lanes=4194304);s.isBackwards?(i.sibling=t.child,t.child=i):(n=s.last,n!==null?n.sibling=i:t.child=i,s.last=i)}return s.tail!==null?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=Ce(),t.sibling=null,n=ye.current,me(ye,a?n&1|2:n&1),t):(He(t),null);case 22:case 23:return dp(),a=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==a&&(t.flags|=8192),a&&t.mode&1?it&1073741824&&(He(t),t.subtreeFlags&6&&(t.flags|=8192)):He(t),null;case 24:return null;case 25:return null}throw Error(O(156,t.tag))}function B1(e,t){switch(Hu(t),t.tag){case 1:return ot(t.type)&&Mi(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Br(),ge(rt),ge(Ke),Ju(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Xu(t),null;case 13:if(ge(ye),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(O(340));Fr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ge(ye),null;case 4:return Br(),null;case 10:return Gu(t.type._context),null;case 22:case 23:return dp(),null;case 24:return null;default:return null}}var Hs=!1,Ue=!1,V1=typeof WeakSet=="function"?WeakSet:Set,B=null;function gr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(a){Ne(e,t,a)}else n.current=null}function zd(e,t,n){try{n()}catch(a){Ne(e,t,a)}}var gh=!1;function $1(e,t){if(yd=_i,e=lv(),Vu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var o=a.anchorOffset,s=a.focusNode;a=a.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var i=0,l=-1,c=-1,d=0,u=0,p=e,h=null;t:for(;;){for(var m;p!==n||o!==0&&p.nodeType!==3||(l=i+o),p!==s||a!==0&&p.nodeType!==3||(c=i+a),p.nodeType===3&&(i+=p.nodeValue.length),(m=p.firstChild)!==null;)h=p,p=m;for(;;){if(p===e)break t;if(h===n&&++d===o&&(l=i),h===s&&++u===a&&(c=i),(m=p.nextSibling)!==null)break;p=h,h=p.parentNode}p=m}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(wd={focusedElem:e,selectionRange:n},_i=!1,B=t;B!==null;)if(t=B,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,B=e;else for(;B!==null;){t=B;try{var y=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var g=y.memoizedProps,w=y.memoizedState,b=t.stateNode,v=b.getSnapshotBeforeUpdate(t.elementType===t.type?g:Rt(t.type,g),w);b.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var x=t.stateNode.containerInfo;x.nodeType===1?x.textContent="":x.nodeType===9&&x.documentElement&&x.removeChild(x.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(O(163))}}catch(k){Ne(t,t.return,k)}if(e=t.sibling,e!==null){e.return=t.return,B=e;break}B=t.return}return y=gh,gh=!1,y}function Io(e,t,n){var a=t.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var o=a=a.next;do{if((o.tag&e)===e){var s=o.destroy;o.destroy=void 0,s!==void 0&&zd(t,n,s)}o=o.next}while(o!==a)}}function Tl(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var a=n.create;n.destroy=a()}n=n.next}while(n!==t)}}function Md(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function rb(e){var t=e.alternate;t!==null&&(e.alternate=null,rb(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Xt],delete t[Go],delete t[Td],delete t[N1],delete t[D1])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function ob(e){return e.tag===5||e.tag===3||e.tag===4}function vh(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||ob(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Fd(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=zi));else if(a!==4&&(e=e.child,e!==null))for(Fd(e,t,n),e=e.sibling;e!==null;)Fd(e,t,n),e=e.sibling}function qd(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(e=e.child,e!==null))for(qd(e,t,n),e=e.sibling;e!==null;)qd(e,t,n),e=e.sibling}var Me=null,zt=!1;function Ln(e,t,n){for(n=n.child;n!==null;)sb(e,t,n),n=n.sibling}function sb(e,t,n){if(nn&&typeof nn.onCommitFiberUnmount=="function")try{nn.onCommitFiberUnmount(gl,n)}catch{}switch(n.tag){case 5:Ue||gr(n,t);case 6:var a=Me,o=zt;Me=null,Ln(e,t,n),Me=a,zt=o,Me!==null&&(zt?(e=Me,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Me.removeChild(n.stateNode));break;case 18:Me!==null&&(zt?(e=Me,n=n.stateNode,e.nodeType===8?vc(e.parentNode,n):e.nodeType===1&&vc(e,n),$o(e)):vc(Me,n.stateNode));break;case 4:a=Me,o=zt,Me=n.stateNode.containerInfo,zt=!0,Ln(e,t,n),Me=a,zt=o;break;case 0:case 11:case 14:case 15:if(!Ue&&(a=n.updateQueue,a!==null&&(a=a.lastEffect,a!==null))){o=a=a.next;do{var s=o,i=s.destroy;s=s.tag,i!==void 0&&(s&2||s&4)&&zd(n,t,i),o=o.next}while(o!==a)}Ln(e,t,n);break;case 1:if(!Ue&&(gr(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"))try{a.props=n.memoizedProps,a.state=n.memoizedState,a.componentWillUnmount()}catch(l){Ne(n,t,l)}Ln(e,t,n);break;case 21:Ln(e,t,n);break;case 22:n.mode&1?(Ue=(a=Ue)||n.memoizedState!==null,Ln(e,t,n),Ue=a):Ln(e,t,n);break;default:Ln(e,t,n)}}function bh(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new V1),t.forEach(function(a){var o=X1.bind(null,e,a);n.has(a)||(n.add(a),a.then(o,o))})}}function It(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var o=n[a];try{var s=e,i=t,l=i;e:for(;l!==null;){switch(l.tag){case 5:Me=l.stateNode,zt=!1;break e;case 3:Me=l.stateNode.containerInfo,zt=!0;break e;case 4:Me=l.stateNode.containerInfo,zt=!0;break e}l=l.return}if(Me===null)throw Error(O(160));sb(s,i,o),Me=null,zt=!1;var c=o.alternate;c!==null&&(c.return=null),o.return=null}catch(d){Ne(o,t,d)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)ib(t,e),t=t.sibling}function ib(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(It(t,e),Kt(e),a&4){try{Io(3,e,e.return),Tl(3,e)}catch(g){Ne(e,e.return,g)}try{Io(5,e,e.return)}catch(g){Ne(e,e.return,g)}}break;case 1:It(t,e),Kt(e),a&512&&n!==null&&gr(n,n.return);break;case 5:if(It(t,e),Kt(e),a&512&&n!==null&&gr(n,n.return),e.flags&32){var o=e.stateNode;try{Fo(o,"")}catch(g){Ne(e,e.return,g)}}if(a&4&&(o=e.stateNode,o!=null)){var s=e.memoizedProps,i=n!==null?n.memoizedProps:s,l=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{l==="input"&&s.type==="radio"&&s.name!=null&&Pg(o,s),dd(l,i);var d=dd(l,s);for(i=0;i<c.length;i+=2){var u=c[i],p=c[i+1];u==="style"?_g(o,p):u==="dangerouslySetInnerHTML"?Ag(o,p):u==="children"?Fo(o,p):Pu(o,u,p,d)}switch(l){case"input":od(o,s);break;case"textarea":Eg(o,s);break;case"select":var h=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!s.multiple;var m=s.value;m!=null?br(o,!!s.multiple,m,!1):h!==!!s.multiple&&(s.defaultValue!=null?br(o,!!s.multiple,s.defaultValue,!0):br(o,!!s.multiple,s.multiple?[]:"",!1))}o[Go]=s}catch(g){Ne(e,e.return,g)}}break;case 6:if(It(t,e),Kt(e),a&4){if(e.stateNode===null)throw Error(O(162));o=e.stateNode,s=e.memoizedProps;try{o.nodeValue=s}catch(g){Ne(e,e.return,g)}}break;case 3:if(It(t,e),Kt(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{$o(t.containerInfo)}catch(g){Ne(e,e.return,g)}break;case 4:It(t,e),Kt(e);break;case 13:It(t,e),Kt(e),o=e.child,o.flags&8192&&(s=o.memoizedState!==null,o.stateNode.isHidden=s,!s||o.alternate!==null&&o.alternate.memoizedState!==null||(lp=Ce())),a&4&&bh(e);break;case 22:if(u=n!==null&&n.memoizedState!==null,e.mode&1?(Ue=(d=Ue)||u,It(t,e),Ue=d):It(t,e),Kt(e),a&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!u&&e.mode&1)for(B=e,u=e.child;u!==null;){for(p=B=u;B!==null;){switch(h=B,m=h.child,h.tag){case 0:case 11:case 14:case 15:Io(4,h,h.return);break;case 1:gr(h,h.return);var y=h.stateNode;if(typeof y.componentWillUnmount=="function"){a=h,n=h.return;try{t=a,y.props=t.memoizedProps,y.state=t.memoizedState,y.componentWillUnmount()}catch(g){Ne(a,n,g)}}break;case 5:gr(h,h.return);break;case 22:if(h.memoizedState!==null){yh(p);continue}}m!==null?(m.return=h,B=m):yh(p)}u=u.sibling}e:for(u=null,p=e;;){if(p.tag===5){if(u===null){u=p;try{o=p.stateNode,d?(s=o.style,typeof s.setProperty=="function"?s.setProperty("display","none","important"):s.display="none"):(l=p.stateNode,c=p.memoizedProps.style,i=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=Rg("display",i))}catch(g){Ne(e,e.return,g)}}}else if(p.tag===6){if(u===null)try{p.stateNode.nodeValue=d?"":p.memoizedProps}catch(g){Ne(e,e.return,g)}}else if((p.tag!==22&&p.tag!==23||p.memoizedState===null||p===e)&&p.child!==null){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;p.sibling===null;){if(p.return===null||p.return===e)break e;u===p&&(u=null),p=p.return}u===p&&(u=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:It(t,e),Kt(e),a&4&&bh(e);break;case 21:break;default:It(t,e),Kt(e)}}function Kt(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(ob(n)){var a=n;break e}n=n.return}throw Error(O(160))}switch(a.tag){case 5:var o=a.stateNode;a.flags&32&&(Fo(o,""),a.flags&=-33);var s=vh(e);qd(e,s,o);break;case 3:case 4:var i=a.stateNode.containerInfo,l=vh(e);Fd(e,l,i);break;default:throw Error(O(161))}}catch(c){Ne(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function H1(e,t,n){B=e,lb(e)}function lb(e,t,n){for(var a=(e.mode&1)!==0;B!==null;){var o=B,s=o.child;if(o.tag===22&&a){var i=o.memoizedState!==null||Hs;if(!i){var l=o.alternate,c=l!==null&&l.memoizedState!==null||Ue;l=Hs;var d=Ue;if(Hs=i,(Ue=c)&&!d)for(B=o;B!==null;)i=B,c=i.child,i.tag===22&&i.memoizedState!==null?wh(o):c!==null?(c.return=i,B=c):wh(o);for(;s!==null;)B=s,lb(s),s=s.sibling;B=o,Hs=l,Ue=d}xh(e)}else o.subtreeFlags&8772&&s!==null?(s.return=o,B=s):xh(e)}}function xh(e){for(;B!==null;){var t=B;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:Ue||Tl(5,t);break;case 1:var a=t.stateNode;if(t.flags&4&&!Ue)if(n===null)a.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:Rt(t.type,n.memoizedProps);a.componentDidUpdate(o,n.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}var s=t.updateQueue;s!==null&&ah(t,s,a);break;case 3:var i=t.updateQueue;if(i!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}ah(t,i,n)}break;case 5:var l=t.stateNode;if(n===null&&t.flags&4){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var d=t.alternate;if(d!==null){var u=d.memoizedState;if(u!==null){var p=u.dehydrated;p!==null&&$o(p)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(O(163))}Ue||t.flags&512&&Md(t)}catch(h){Ne(t,t.return,h)}}if(t===e){B=null;break}if(n=t.sibling,n!==null){n.return=t.return,B=n;break}B=t.return}}function yh(e){for(;B!==null;){var t=B;if(t===e){B=null;break}var n=t.sibling;if(n!==null){n.return=t.return,B=n;break}B=t.return}}function wh(e){for(;B!==null;){var t=B;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Tl(4,t)}catch(c){Ne(t,n,c)}break;case 1:var a=t.stateNode;if(typeof a.componentDidMount=="function"){var o=t.return;try{a.componentDidMount()}catch(c){Ne(t,o,c)}}var s=t.return;try{Md(t)}catch(c){Ne(t,s,c)}break;case 5:var i=t.return;try{Md(t)}catch(c){Ne(t,i,c)}}}catch(c){Ne(t,t.return,c)}if(t===e){B=null;break}var l=t.sibling;if(l!==null){l.return=t.return,B=l;break}B=t.return}}var W1=Math.ceil,Gi=Dn.ReactCurrentDispatcher,sp=Dn.ReactCurrentOwner,kt=Dn.ReactCurrentBatchConfig,se=0,Le=null,Ee=null,Fe=0,it=0,vr=ma(0),Re=0,es=null,za=0,Nl=0,ip=0,Ao=null,nt=null,lp=0,$r=1/0,mn=null,Qi=!1,Bd=null,ra=null,Ws=!1,Zn=null,Yi=0,Ro=0,Vd=null,hi=-1,fi=0;function Xe(){return se&6?Ce():hi!==-1?hi:hi=Ce()}function oa(e){return e.mode&1?se&2&&Fe!==0?Fe&-Fe:S1.transition!==null?(fi===0&&(fi=Ug()),fi):(e=ce,e!==0||(e=window.event,e=e===void 0?16:Jg(e.type)),e):1}function Bt(e,t,n,a){if(50<Ro)throw Ro=0,Vd=null,Error(O(185));hs(e,n,a),(!(se&2)||e!==Le)&&(e===Le&&(!(se&2)&&(Nl|=n),Re===4&&Hn(e,Fe)),st(e,a),n===1&&se===0&&!(t.mode&1)&&($r=Ce()+500,wl&&ha()))}function st(e,t){var n=e.callbackNode;Sw(e,t);var a=Ri(e,e===Le?Fe:0);if(a===0)n!==null&&Em(n),e.callbackNode=null,e.callbackPriority=0;else if(t=a&-a,e.callbackPriority!==t){if(n!=null&&Em(n),t===1)e.tag===0?C1(kh.bind(null,e)):bv(kh.bind(null,e)),j1(function(){!(se&6)&&ha()}),n=null;else{switch(Kg(a)){case 1:n=_u;break;case 4:n=Hg;break;case 16:n=Ai;break;case 536870912:n=Wg;break;default:n=Ai}n=gb(n,cb.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function cb(e,t){if(hi=-1,fi=0,se&6)throw Error(O(327));var n=e.callbackNode;if(jr()&&e.callbackNode!==n)return null;var a=Ri(e,e===Le?Fe:0);if(a===0)return null;if(a&30||a&e.expiredLanes||t)t=Zi(e,a);else{t=a;var o=se;se|=2;var s=ub();(Le!==e||Fe!==t)&&(mn=null,$r=Ce()+500,Aa(e,t));do try{G1();break}catch(l){db(e,l)}while(!0);Ku(),Gi.current=s,se=o,Ee!==null?t=0:(Le=null,Fe=0,t=Re)}if(t!==0){if(t===2&&(o=fd(e),o!==0&&(a=o,t=$d(e,o))),t===1)throw n=es,Aa(e,0),Hn(e,a),st(e,Ce()),n;if(t===6)Hn(e,a);else{if(o=e.current.alternate,!(a&30)&&!U1(o)&&(t=Zi(e,a),t===2&&(s=fd(e),s!==0&&(a=s,t=$d(e,s))),t===1))throw n=es,Aa(e,0),Hn(e,a),st(e,Ce()),n;switch(e.finishedWork=o,e.finishedLanes=a,t){case 0:case 1:throw Error(O(345));case 2:wa(e,nt,mn);break;case 3:if(Hn(e,a),(a&130023424)===a&&(t=lp+500-Ce(),10<t)){if(Ri(e,0)!==0)break;if(o=e.suspendedLanes,(o&a)!==a){Xe(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=jd(wa.bind(null,e,nt,mn),t);break}wa(e,nt,mn);break;case 4:if(Hn(e,a),(a&4194240)===a)break;for(t=e.eventTimes,o=-1;0<a;){var i=31-qt(a);s=1<<i,i=t[i],i>o&&(o=i),a&=~s}if(a=o,a=Ce()-a,a=(120>a?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*W1(a/1960))-a,10<a){e.timeoutHandle=jd(wa.bind(null,e,nt,mn),a);break}wa(e,nt,mn);break;case 5:wa(e,nt,mn);break;default:throw Error(O(329))}}}return st(e,Ce()),e.callbackNode===n?cb.bind(null,e):null}function $d(e,t){var n=Ao;return e.current.memoizedState.isDehydrated&&(Aa(e,t).flags|=256),e=Zi(e,t),e!==2&&(t=nt,nt=n,t!==null&&Hd(t)),e}function Hd(e){nt===null?nt=e:nt.push.apply(nt,e)}function U1(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var a=0;a<n.length;a++){var o=n[a],s=o.getSnapshot;o=o.value;try{if(!Vt(s(),o))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Hn(e,t){for(t&=~ip,t&=~Nl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-qt(t),a=1<<n;e[n]=-1,t&=~a}}function kh(e){if(se&6)throw Error(O(327));jr();var t=Ri(e,0);if(!(t&1))return st(e,Ce()),null;var n=Zi(e,t);if(e.tag!==0&&n===2){var a=fd(e);a!==0&&(t=a,n=$d(e,a))}if(n===1)throw n=es,Aa(e,0),Hn(e,t),st(e,Ce()),n;if(n===6)throw Error(O(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,wa(e,nt,mn),st(e,Ce()),null}function cp(e,t){var n=se;se|=1;try{return e(t)}finally{se=n,se===0&&($r=Ce()+500,wl&&ha())}}function Ma(e){Zn!==null&&Zn.tag===0&&!(se&6)&&jr();var t=se;se|=1;var n=kt.transition,a=ce;try{if(kt.transition=null,ce=1,e)return e()}finally{ce=a,kt.transition=n,se=t,!(se&6)&&ha()}}function dp(){it=vr.current,ge(vr)}function Aa(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,k1(n)),Ee!==null)for(n=Ee.return;n!==null;){var a=n;switch(Hu(a),a.tag){case 1:a=a.type.childContextTypes,a!=null&&Mi();break;case 3:Br(),ge(rt),ge(Ke),Ju();break;case 5:Xu(a);break;case 4:Br();break;case 13:ge(ye);break;case 19:ge(ye);break;case 10:Gu(a.type._context);break;case 22:case 23:dp()}n=n.return}if(Le=e,Ee=e=sa(e.current,null),Fe=it=t,Re=0,es=null,ip=Nl=za=0,nt=Ao=null,ja!==null){for(t=0;t<ja.length;t++)if(n=ja[t],a=n.interleaved,a!==null){n.interleaved=null;var o=a.next,s=n.pending;if(s!==null){var i=s.next;s.next=o,a.next=i}n.pending=a}ja=null}return e}function db(e,t){do{var n=Ee;try{if(Ku(),ui.current=Ki,Ui){for(var a=we.memoizedState;a!==null;){var o=a.queue;o!==null&&(o.pending=null),a=a.next}Ui=!1}if(La=0,_e=Ae=we=null,Eo=!1,Zo=0,sp.current=null,n===null||n.return===null){Re=1,es=t,Ee=null;break}e:{var s=e,i=n.return,l=n,c=t;if(t=Fe,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var d=c,u=l,p=u.tag;if(!(u.mode&1)&&(p===0||p===11||p===15)){var h=u.alternate;h?(u.updateQueue=h.updateQueue,u.memoizedState=h.memoizedState,u.lanes=h.lanes):(u.updateQueue=null,u.memoizedState=null)}var m=ch(i);if(m!==null){m.flags&=-257,dh(m,i,l,s,t),m.mode&1&&lh(s,d,t),t=m,c=d;var y=t.updateQueue;if(y===null){var g=new Set;g.add(c),t.updateQueue=g}else y.add(c);break e}else{if(!(t&1)){lh(s,d,t),up();break e}c=Error(O(426))}}else if(be&&l.mode&1){var w=ch(i);if(w!==null){!(w.flags&65536)&&(w.flags|=256),dh(w,i,l,s,t),Wu(Vr(c,l));break e}}s=c=Vr(c,l),Re!==4&&(Re=2),Ao===null?Ao=[s]:Ao.push(s),s=i;do{switch(s.tag){case 3:s.flags|=65536,t&=-t,s.lanes|=t;var b=Kv(s,c,t);nh(s,b);break e;case 1:l=c;var v=s.type,x=s.stateNode;if(!(s.flags&128)&&(typeof v.getDerivedStateFromError=="function"||x!==null&&typeof x.componentDidCatch=="function"&&(ra===null||!ra.has(x)))){s.flags|=65536,t&=-t,s.lanes|=t;var k=Gv(s,l,t);nh(s,k);break e}}s=s.return}while(s!==null)}mb(n)}catch(j){t=j,Ee===n&&n!==null&&(Ee=n=n.return);continue}break}while(!0)}function ub(){var e=Gi.current;return Gi.current=Ki,e===null?Ki:e}function up(){(Re===0||Re===3||Re===2)&&(Re=4),Le===null||!(za&268435455)&&!(Nl&268435455)||Hn(Le,Fe)}function Zi(e,t){var n=se;se|=2;var a=ub();(Le!==e||Fe!==t)&&(mn=null,Aa(e,t));do try{K1();break}catch(o){db(e,o)}while(!0);if(Ku(),se=n,Gi.current=a,Ee!==null)throw Error(O(261));return Le=null,Fe=0,Re}function K1(){for(;Ee!==null;)pb(Ee)}function G1(){for(;Ee!==null&&!xw();)pb(Ee)}function pb(e){var t=fb(e.alternate,e,it);e.memoizedProps=e.pendingProps,t===null?mb(e):Ee=t,sp.current=null}function mb(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=B1(n,t),n!==null){n.flags&=32767,Ee=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Re=6,Ee=null;return}}else if(n=q1(n,t,it),n!==null){Ee=n;return}if(t=t.sibling,t!==null){Ee=t;return}Ee=t=e}while(t!==null);Re===0&&(Re=5)}function wa(e,t,n){var a=ce,o=kt.transition;try{kt.transition=null,ce=1,Q1(e,t,n,a)}finally{kt.transition=o,ce=a}return null}function Q1(e,t,n,a){do jr();while(Zn!==null);if(se&6)throw Error(O(327));n=e.finishedWork;var o=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(O(177));e.callbackNode=null,e.callbackPriority=0;var s=n.lanes|n.childLanes;if(Pw(e,s),e===Le&&(Ee=Le=null,Fe=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||Ws||(Ws=!0,gb(Ai,function(){return jr(),null})),s=(n.flags&15990)!==0,n.subtreeFlags&15990||s){s=kt.transition,kt.transition=null;var i=ce;ce=1;var l=se;se|=4,sp.current=null,$1(e,n),ib(n,e),f1(wd),_i=!!yd,wd=yd=null,e.current=n,H1(n),yw(),se=l,ce=i,kt.transition=s}else e.current=n;if(Ws&&(Ws=!1,Zn=e,Yi=o),s=e.pendingLanes,s===0&&(ra=null),jw(n.stateNode),st(e,Ce()),t!==null)for(a=e.onRecoverableError,n=0;n<t.length;n++)o=t[n],a(o.value,{componentStack:o.stack,digest:o.digest});if(Qi)throw Qi=!1,e=Bd,Bd=null,e;return Yi&1&&e.tag!==0&&jr(),s=e.pendingLanes,s&1?e===Vd?Ro++:(Ro=0,Vd=e):Ro=0,ha(),null}function jr(){if(Zn!==null){var e=Kg(Yi),t=kt.transition,n=ce;try{if(kt.transition=null,ce=16>e?16:e,Zn===null)var a=!1;else{if(e=Zn,Zn=null,Yi=0,se&6)throw Error(O(331));var o=se;for(se|=4,B=e.current;B!==null;){var s=B,i=s.child;if(B.flags&16){var l=s.deletions;if(l!==null){for(var c=0;c<l.length;c++){var d=l[c];for(B=d;B!==null;){var u=B;switch(u.tag){case 0:case 11:case 15:Io(8,u,s)}var p=u.child;if(p!==null)p.return=u,B=p;else for(;B!==null;){u=B;var h=u.sibling,m=u.return;if(rb(u),u===d){B=null;break}if(h!==null){h.return=m,B=h;break}B=m}}}var y=s.alternate;if(y!==null){var g=y.child;if(g!==null){y.child=null;do{var w=g.sibling;g.sibling=null,g=w}while(g!==null)}}B=s}}if(s.subtreeFlags&2064&&i!==null)i.return=s,B=i;else e:for(;B!==null;){if(s=B,s.flags&2048)switch(s.tag){case 0:case 11:case 15:Io(9,s,s.return)}var b=s.sibling;if(b!==null){b.return=s.return,B=b;break e}B=s.return}}var v=e.current;for(B=v;B!==null;){i=B;var x=i.child;if(i.subtreeFlags&2064&&x!==null)x.return=i,B=x;else e:for(i=v;B!==null;){if(l=B,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:Tl(9,l)}}catch(j){Ne(l,l.return,j)}if(l===i){B=null;break e}var k=l.sibling;if(k!==null){k.return=l.return,B=k;break e}B=l.return}}if(se=o,ha(),nn&&typeof nn.onPostCommitFiberRoot=="function")try{nn.onPostCommitFiberRoot(gl,e)}catch{}a=!0}return a}finally{ce=n,kt.transition=t}}return!1}function jh(e,t,n){t=Vr(n,t),t=Kv(e,t,1),e=aa(e,t,1),t=Xe(),e!==null&&(hs(e,1,t),st(e,t))}function Ne(e,t,n){if(e.tag===3)jh(e,e,n);else for(;t!==null;){if(t.tag===3){jh(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(ra===null||!ra.has(a))){e=Vr(n,e),e=Gv(t,e,1),t=aa(t,e,1),e=Xe(),t!==null&&(hs(t,1,e),st(t,e));break}}t=t.return}}function Y1(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),t=Xe(),e.pingedLanes|=e.suspendedLanes&n,Le===e&&(Fe&n)===n&&(Re===4||Re===3&&(Fe&130023424)===Fe&&500>Ce()-lp?Aa(e,0):ip|=n),st(e,t)}function hb(e,t){t===0&&(e.mode&1?(t=Os,Os<<=1,!(Os&130023424)&&(Os=4194304)):t=1);var n=Xe();e=kn(e,t),e!==null&&(hs(e,t,n),st(e,n))}function Z1(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),hb(e,n)}function X1(e,t){var n=0;switch(e.tag){case 13:var a=e.stateNode,o=e.memoizedState;o!==null&&(n=o.retryLane);break;case 19:a=e.stateNode;break;default:throw Error(O(314))}a!==null&&a.delete(t),hb(e,n)}var fb;fb=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||rt.current)at=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return at=!1,F1(e,t,n);at=!!(e.flags&131072)}else at=!1,be&&t.flags&1048576&&xv(t,Bi,t.index);switch(t.lanes=0,t.tag){case 2:var a=t.type;mi(e,t),e=t.pendingProps;var o=Mr(t,Ke.current);kr(t,n),o=tp(null,t,a,e,o,n);var s=np();return t.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ot(a)?(s=!0,Fi(t)):s=!1,t.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,Yu(t),o.updater=jl,t.stateNode=o,o._reactInternals=t,Ed(t,a,e,n),t=Rd(null,t,a,!0,s,n)):(t.tag=0,be&&s&&$u(t),Ye(null,t,o,n),t=t.child),t;case 16:a=t.elementType;e:{switch(mi(e,t),e=t.pendingProps,o=a._init,a=o(a._payload),t.type=a,o=t.tag=ek(a),e=Rt(a,e),o){case 0:t=Ad(null,t,a,e,n);break e;case 1:t=mh(null,t,a,e,n);break e;case 11:t=uh(null,t,a,e,n);break e;case 14:t=ph(null,t,a,Rt(a.type,e),n);break e}throw Error(O(306,a,""))}return t;case 0:return a=t.type,o=t.pendingProps,o=t.elementType===a?o:Rt(a,o),Ad(e,t,a,o,n);case 1:return a=t.type,o=t.pendingProps,o=t.elementType===a?o:Rt(a,o),mh(e,t,a,o,n);case 3:e:{if(Xv(t),e===null)throw Error(O(387));a=t.pendingProps,s=t.memoizedState,o=s.element,Nv(e,t),Hi(t,a,null,n);var i=t.memoizedState;if(a=i.element,s.isDehydrated)if(s={element:a,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&256){o=Vr(Error(O(423)),t),t=hh(e,t,a,n,o);break e}else if(a!==o){o=Vr(Error(O(424)),t),t=hh(e,t,a,n,o);break e}else for(ct=na(t.stateNode.containerInfo.firstChild),dt=t,be=!0,Mt=null,n=jv(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Fr(),a===o){t=jn(e,t,n);break e}Ye(e,t,a,n)}t=t.child}return t;case 5:return Dv(t),e===null&&Cd(t),a=t.type,o=t.pendingProps,s=e!==null?e.memoizedProps:null,i=o.children,kd(a,o)?i=null:s!==null&&kd(a,s)&&(t.flags|=32),Zv(e,t),Ye(e,t,i,n),t.child;case 6:return e===null&&Cd(t),null;case 13:return Jv(e,t,n);case 4:return Zu(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=qr(t,null,a,n):Ye(e,t,a,n),t.child;case 11:return a=t.type,o=t.pendingProps,o=t.elementType===a?o:Rt(a,o),uh(e,t,a,o,n);case 7:return Ye(e,t,t.pendingProps,n),t.child;case 8:return Ye(e,t,t.pendingProps.children,n),t.child;case 12:return Ye(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(a=t.type._context,o=t.pendingProps,s=t.memoizedProps,i=o.value,me(Vi,a._currentValue),a._currentValue=i,s!==null)if(Vt(s.value,i)){if(s.children===o.children&&!rt.current){t=jn(e,t,n);break e}}else for(s=t.child,s!==null&&(s.return=t);s!==null;){var l=s.dependencies;if(l!==null){i=s.child;for(var c=l.firstContext;c!==null;){if(c.context===a){if(s.tag===1){c=bn(-1,n&-n),c.tag=2;var d=s.updateQueue;if(d!==null){d=d.shared;var u=d.pending;u===null?c.next=c:(c.next=u.next,u.next=c),d.pending=c}}s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),Sd(s.return,n,t),l.lanes|=n;break}c=c.next}}else if(s.tag===10)i=s.type===t.type?null:s.child;else if(s.tag===18){if(i=s.return,i===null)throw Error(O(341));i.lanes|=n,l=i.alternate,l!==null&&(l.lanes|=n),Sd(i,n,t),i=s.sibling}else i=s.child;if(i!==null)i.return=s;else for(i=s;i!==null;){if(i===t){i=null;break}if(s=i.sibling,s!==null){s.return=i.return,i=s;break}i=i.return}s=i}Ye(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,a=t.pendingProps.children,kr(t,n),o=Tt(o),a=a(o),t.flags|=1,Ye(e,t,a,n),t.child;case 14:return a=t.type,o=Rt(a,t.pendingProps),o=Rt(a.type,o),ph(e,t,a,o,n);case 15:return Qv(e,t,t.type,t.pendingProps,n);case 17:return a=t.type,o=t.pendingProps,o=t.elementType===a?o:Rt(a,o),mi(e,t),t.tag=1,ot(a)?(e=!0,Fi(t)):e=!1,kr(t,n),Uv(t,a,o),Ed(t,a,o,n),Rd(null,t,a,!0,e,n);case 19:return eb(e,t,n);case 22:return Yv(e,t,n)}throw Error(O(156,t.tag))};function gb(e,t){return $g(e,t)}function J1(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.t
vendor: 9,637 bytes, line 40
40ype=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function wt(e,t,n,a){return new J1(e,t,n,a)}function pp(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ek(e){if(typeof e=="function")return pp(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Iu)return 11;if(e===Au)return 14}return 2}function sa(e,t){var n=e.alternate;return n===null?(n=wt(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function gi(e,t,n,a,o,s){var i=2;if(a=e,typeof e=="function")pp(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case ir:return Ra(n.children,o,s,t);case Eu:i=8,o|=8;break;case ed:return e=wt(12,n,t,o|2),e.elementType=ed,e.lanes=s,e;case td:return e=wt(13,n,t,o),e.elementType=td,e.lanes=s,e;case nd:return e=wt(19,n,t,o),e.elementType=nd,e.lanes=s,e;case Dg:return Dl(n,o,s,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Tg:i=10;break e;case Ng:i=9;break e;case Iu:i=11;break e;case Au:i=14;break e;case Bn:i=16,a=null;break e}throw Error(O(130,e==null?e:typeof e,""))}return t=wt(i,n,t,o),t.elementType=e,t.type=a,t.lanes=s,t}function Ra(e,t,n,a){return e=wt(7,e,a,t),e.lanes=n,e}function Dl(e,t,n,a){return e=wt(22,e,a,t),e.elementType=Dg,e.lanes=n,e.stateNode={isHidden:!1},e}function Nc(e,t,n){return e=wt(6,e,null,t),e.lanes=n,e}function Dc(e,t,n){return t=wt(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function tk(e,t,n,a,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=sc(0),this.expirationTimes=sc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=sc(0),this.identifierPrefix=a,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function mp(e,t,n,a,o,s,i,l,c){return e=new tk(e,t,n,l,c),t===1?(t=1,s===!0&&(t|=8)):t=0,s=wt(3,null,null,t),e.current=s,s.stateNode=e,s.memoizedState={element:a,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Yu(s),e}function nk(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:sr,key:a==null?null:""+a,children:e,containerInfo:t,implementation:n}}function vb(e){if(!e)return ca;e=e._reactInternals;e:{if($a(e)!==e||e.tag!==1)throw Error(O(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(ot(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(O(171))}if(e.tag===1){var n=e.type;if(ot(n))return vv(e,n,t)}return t}function bb(e,t,n,a,o,s,i,l,c){return e=mp(n,a,!0,e,o,s,i,l,c),e.context=vb(null),n=e.current,a=Xe(),o=oa(n),s=bn(a,o),s.callback=t??null,aa(n,s,o),e.current.lanes=o,hs(e,o,a),st(e,a),e}function Cl(e,t,n,a){var o=t.current,s=Xe(),i=oa(o);return n=vb(n),t.context===null?t.context=n:t.pendingContext=n,t=bn(s,i),t.payload={element:e},a=a===void 0?null:a,a!==null&&(t.callback=a),e=aa(o,t,i),e!==null&&(Bt(e,o,i,s),di(e,o,i)),i}function Xi(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function Th(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function hp(e,t){Th(e,t),(e=e.alternate)&&Th(e,t)}function ak(){return null}var xb=typeof reportError=="function"?reportError:function(e){console.error(e)};function fp(e){this._internalRoot=e}Sl.prototype.render=fp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(O(409));Cl(e,t,null,null)};Sl.prototype.unmount=fp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Ma(function(){Cl(null,e,null,null)}),t[wn]=null}};function Sl(e){this._internalRoot=e}Sl.prototype.unstable_scheduleHydration=function(e){if(e){var t=Yg();e={blockedOn:null,target:e,priority:t};for(var n=0;n<$n.length&&t!==0&&t<$n[n].priority;n++);$n.splice(n,0,e),n===0&&Xg(e)}};function gp(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Pl(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Nh(){}function rk(e,t,n,a,o){if(o){if(typeof a=="function"){var s=a;a=function(){var d=Xi(i);s.call(d)}}var i=bb(t,a,e,0,null,!1,!1,"",Nh);return e._reactRootContainer=i,e[wn]=i.current,Uo(e.nodeType===8?e.parentNode:e),Ma(),i}for(;o=e.lastChild;)e.removeChild(o);if(typeof a=="function"){var l=a;a=function(){var d=Xi(c);l.call(d)}}var c=mp(e,0,!1,null,null,!1,!1,"",Nh);return e._reactRootContainer=c,e[wn]=c.current,Uo(e.nodeType===8?e.parentNode:e),Ma(function(){Cl(t,c,n,a)}),c}function El(e,t,n,a,o){var s=n._reactRootContainer;if(s){var i=s;if(typeof o=="function"){var l=o;o=function(){var c=Xi(i);l.call(c)}}Cl(t,i,e,o)}else i=rk(n,t,e,o,a);return Xi(i)}Gg=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=jo(t.pendingLanes);n!==0&&(Ou(t,n|1),st(t,Ce()),!(se&6)&&($r=Ce()+500,ha()))}break;case 13:Ma(function(){var a=kn(e,1);if(a!==null){var o=Xe();Bt(a,e,1,o)}}),hp(e,1)}};Lu=function(e){if(e.tag===13){var t=kn(e,134217728);if(t!==null){var n=Xe();Bt(t,e,134217728,n)}hp(e,134217728)}};Qg=function(e){if(e.tag===13){var t=oa(e),n=kn(e,t);if(n!==null){var a=Xe();Bt(n,e,t,a)}hp(e,t)}};Yg=function(){return ce};Zg=function(e,t){var n=ce;try{return ce=e,t()}finally{ce=n}};pd=function(e,t,n){switch(t){case"input":if(od(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var o=yl(a);if(!o)throw Error(O(90));Sg(a),od(a,o)}}}break;case"textarea":Eg(e,n);break;case"select":t=n.value,t!=null&&br(e,!!n.multiple,t,!1)}};zg=cp;Mg=Ma;var ok={usingClientEntryPoint:!1,Events:[gs,ur,yl,Og,Lg,cp]},ho={findFiberByHostInstance:ka,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},sk={bundleType:ho.bundleType,version:ho.version,rendererPackageName:ho.rendererPackageName,rendererConfig:ho.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Dn.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Bg(e),e===null?null:e.stateNode},findFiberByHostInstance:ho.findFiberByHostInstance||ak,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Us=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Us.isDisabled&&Us.supportsFiber)try{gl=Us.inject(sk),nn=Us}catch{}}ht.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ok;ht.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!gp(t))throw Error(O(200));return nk(e,t,null,n)};ht.createRoot=function(e,t){if(!gp(e))throw Error(O(299));var n=!1,a="",o=xb;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onRecoverableError!==void 0&&(o=t.onRecoverableError)),t=mp(e,1,!1,null,null,n,!1,a,o),e[wn]=t.current,Uo(e.nodeType===8?e.parentNode:e),new fp(t)};ht.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(O(188)):(e=Object.keys(e).join(","),Error(O(268,e)));return e=Bg(t),e=e===null?null:e.stateNode,e};ht.flushSync=function(e){return Ma(e)};ht.hydrate=function(e,t,n){if(!Pl(t))throw Error(O(200));return El(null,e,t,!0,n)};ht.hydrateRoot=function(e,t,n){if(!gp(e))throw Error(O(405));var a=n!=null&&n.hydratedSources||null,o=!1,s="",i=xb;if(n!=null&&(n.unstable_strictMode===!0&&(o=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(i=n.onRecoverableError)),t=bb(t,null,e,1,n??null,o,!1,s,i),e[wn]=t.current,Uo(e),a)for(e=0;e<a.length;e++)n=a[e],o=n._getVersion,o=o(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new Sl(t)};ht.render=function(e,t,n){if(!Pl(t))throw Error(O(200));return El(null,e,t,!1,n)};ht.unmountComponentAtNode=function(e){if(!Pl(e))throw Error(O(40));return e._reactRootContainer?(Ma(function(){El(null,null,e,!1,function(){e._reactRootContainer=null,e[wn]=null})}),!0):!1};ht.unstable_batchedUpdates=cp;ht.unstable_renderSubtreeIntoContainer=function(e,t,n,a){if(!Pl(n))throw Error(O(200));if(e==null||e._reactInternals===void 0)throw Error(O(38));return El(e,t,n,!1,a)};
40ht.version="18.3.1-next-f1338f8080-20240426";function yb(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(yb)}catch(e){console.error(e)}}yb(),yg.exports=ht;var bs=yg.exports;const vp=ps(bs);var wb,Dh=bs;wb=Dh.createRoot,Dh.hydrateRoot;const ik=1,lk=1e6;let Cc=0;function ck(){return Cc=(Cc+1)%Number.MAX_SAFE_INTEGER,Cc.toString()}const Sc=new Map,Ch=e=>{if(Sc.has(e))return;const t=setTimeout(()=>{Sc.delete(e),_o({type:"REMOVE_TOAST",toastId:e})},lk);Sc.set(e,t)},dk=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,ik)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?Ch(n):e.toasts.forEach(a=>{Ch(a.id)}),{...e,toasts:e.toasts.map(a=>a.id===n||n===void 0?{...a,open:!1}:a)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},vi=[];let bi={toasts:[]};function _o(e){bi=dk(bi,e),vi.forEach(t=>{t(bi)})}function uk({...e}){const t=ck(),n=o=>_o({type:"UPDATE_TOAST",toast:{...o,id:t}}),a=()=>_o({type:"DISMISS_TOAST",toastId:t});return _o({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:o=>{o||a()}}}),{id:t,dismiss:a,update:n}}function pk(){const[e,t]=f.useState(bi);return f.useEffect(()=>(vi.push(t),()=>{const n=vi.indexOf(t);n>-1&&vi.splice(n,1)}),[e]),{...e,toast:uk,dismiss:n=>_o({type:"DISMISS_TOAST",toastId:n})}}function G(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function Sh(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function bp(...e){return t=>{let n=!1;const a=e.map(o=>{const s=Sh(o,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let o=0;o<a.length;o++){const s=a[o];typeof s=="function"?s():Sh(e[o],null)}}}}function je(...e){return f.useCallback(bp(...e),e)}function mk(e,t){const n=f.createContext(t),a=s=>{const{children:i,...l}=s,c=f.useMemo(()=>l,Object.values(l));return r.jsx(n.Provider,{value:c,children:i})};a.displayName=e+"Provider";function o(s){const i=f.useContext(n);if(i)return i;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[a,o]}function ln(e,t=[]){let n=[];function a(s,i){const l=f.createContext(i),c=n.length;n=[...n,i];const d=p=>{var b;const{scope:h,children:m,...y}=p,g=((b=h==null?void 0:h[e])==null?void 0:b[c])||l,w=f.useMemo(()=>y,Object.values(y));return r.jsx(g.Provider,{value:w,children:m})};d.displayName=s+"Provider";function u(p,h){var g;const m=((g=h==null?void 0:h[e])==null?void 0:g[c])||l,y=f.useContext(m);if(y)return y;if(i!==void 0)return i;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[d,u]}const o=()=>{const s=n.map(i=>f.createContext(i));return function(l){const c=(l==null?void 0:l[e])||s;return f.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return o.scopeName=e,[a,hk(o,...t)]}function hk(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const a=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(s){const i=a.reduce((l,{useScope:c,scopeName:d})=>{const p=c(s)[`__scope${d}`];return{...l,...p}},{});return f.useMemo(()=>({[`__scope${t.scopeName}`]:i}),[i])}};return n.scopeName=t.scopeName,n}function ts(e){const t=gk(e),n=f.forwardRef((a,o)=>{const{children:s,...i}=a,l=f.Children.toArray(s),c=l.find(bk);if(c){const d=c.props.children,u=l.map(p=>p===c?f.Children.count(d)>1?f.Children.only(null):f.isValidElement(d)?d.props.children:null:p);return r.jsx(t,{...i,ref:o,children:f.isValidElement(d)?f.cloneElement(d,void 0,u):null})}return r.jsx(t,{...i,ref:o,children:s})});return n.displayName=`${e}.Slot`,n}var fk=ts("Slot");function gk(e){const t=f.forwardRef((n,a)=>{const{children:o,...s}=n;if(f.isValidElement(o)){const i=yk(o),l=xk(s,o.props);return o.type!==f.Fragment&&(l.ref=a?bp(a,i):i),f.cloneElement(o,l)}return f.Children.count(o)>1?f.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var kb=Symbol("radix.slottable");function vk(e){const t=({children:n})=>r.jsx(r.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=kb,t}function bk(e){return f.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===kb}function xk(e,t){const n={...t};for(const a in t){const o=e[a],s=t[a];/^on[A-Z]/.test(a)?o&&s?n[a]=(...l)=>{const c=s(...l);return o(...l),c}:o&&(n[a]=o):a==="style"?n[a]={...o,...s}
vendor: 9,305 bytes, line 40
40:a==="className"&&(n[a]=[o,s].filter(Boolean).join(" "))}return{...e,...n}}function yk(e){var a,o;let t=(a=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function xs(e){const t=e+"CollectionProvider",[n,a]=ln(t),[o,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),i=g=>{const{scope:w,children:b}=g,v=R.useRef(null),x=R.useRef(new Map).current;return r.jsx(o,{scope:w,itemMap:x,collectionRef:v,children:b})};i.displayName=t;const l=e+"CollectionSlot",c=ts(l),d=R.forwardRef((g,w)=>{const{scope:b,children:v}=g,x=s(l,b),k=je(w,x.collectionRef);return r.jsx(c,{ref:k,children:v})});d.displayName=l;const u=e+"CollectionItemSlot",p="data-radix-collection-item",h=ts(u),m=R.forwardRef((g,w)=>{const{scope:b,children:v,...x}=g,k=R.useRef(null),j=je(w,k),T=s(u,b);return R.useEffect(()=>(T.itemMap.set(k,{ref:k,...x}),()=>void T.itemMap.delete(k))),r.jsx(h,{[p]:"",ref:j,children:v})});m.displayName=u;function y(g){const w=s(e+"CollectionConsumer",g);return R.useCallback(()=>{const v=w.collectionRef.current;if(!v)return[];const x=Array.from(v.querySelectorAll(`[${p}]`));return Array.from(w.itemMap.values()).sort((T,N)=>x.indexOf(T.ref.current)-x.indexOf(N.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:i,Slot:d,ItemSlot:m},y,a]}var wk=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ne=wk.reduce((e,t)=>{const n=ts(`Primitive.${t}`),a=f.forwardRef((o,s)=>{const{asChild:i,...l}=o,c=i?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(c,{...l,ref:s})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function Ji(e,t){e&&bs.flushSync(()=>e.dispatchEvent(t))}function Oe(e){const t=f.useRef(e);return f.useEffect(()=>{t.current=e}),f.useMemo(()=>(...n)=>{var a;return(a=t.current)==null?void 0:a.call(t,...n)},[])}function kk(e,t=globalThis==null?void 0:globalThis.document){const n=Oe(e);f.useEffect(()=>{const a=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",a,{capture:!0}),()=>t.removeEventListener("keydown",a,{capture:!0})},[n,t])}var jk="DismissableLayer",Wd="dismissableLayer.update",Tk="dismissableLayer.pointerDownOutside",Nk="dismissableLayer.focusOutside",Ph,jb=f.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),ys=f.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:i,onDismiss:l,...c}=e,d=f.useContext(jb),[u,p]=f.useState(null),h=(u==null?void 0:u.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,m]=f.useState({}),y=je(t,N=>p(N)),g=Array.from(d.layers),[w]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),b=g.indexOf(w),v=u?g.indexOf(u):-1,x=d.layersWithOutsidePointerEventsDisabled.size>0,k=v>=b,j=Ck(N=>{const D=N.target,C=[...d.branches].some(E=>E.contains(D));!k||C||(o==null||o(N),i==null||i(N),N.defaultPrevented||l==null||l())},h),T=Sk(N=>{const D=N.target;[...d.branches].some(E=>E.contains(D))||(s==null||s(N),i==null||i(N),N.defaultPrevented||l==null||l())},h);return kk(N=>{v===d.layers.size-1&&(a==null||a(N),!N.defaultPrevented&&l&&(N.preventDefault(),l()))},h),f.useEffect(()=>{if(u)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(Ph=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(u)),d.layers.add(u),Eh(),()=>{n&&d.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=Ph)}},[u,h,n,d]),f.useEffect(()=>()=>{u&&(d.layers.delete(u),d.layersWithOutsidePointerEventsDisabled.delete(u),Eh())},[u,d]),f.useEffect(()=>{const N=()=>m({});return document.addEventListener(Wd,N),()=>document.removeEventListener(Wd,N)},[]),r.jsx(ne.div,{...c,ref:y,style:{pointerEvents:x?k?"auto":"none":void 0,...e.style},onFocusCapture:G(e.onFocusCapture,T.onFocusCapture),onBlurCapture:G(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:G(e.onPointerDownCapture,j.onPointerDownCapture)})});ys.displayName=jk;var Dk="DismissableLayerBranch",Tb=f.forwardRef((e,t)=>{const n=f.useContext(jb),a=f.useRef(null),o=je(t,a);return f.useEffect(()=>{const s=a.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),r.jsx(ne.div,{...e,ref:o})});Tb.displayName=Dk;function Ck(e,t=globalThis==null?void 0:globalThis.document){const n=Oe(e),a=f.useRef(!1),o=f.useRef(()=>{});return f.useEffect(()=>{const s=l=>{if(l.target&&!a.current){let c=function(){Nb(Tk,n,d,{discrete:!0})};const d={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=c,t.addEventListener("click",o.current,{once:!0})):c()}else t.removeEventListener("click",o.current);a.current=!1},i=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(i),t.removeEventListener("pointerdown",s),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>a.current=!0}}function Sk(e,t=globalThis==null?void 0:globalThis.document){const n=Oe(e),a=f.useRef(!1);return f.useEffect(()=>{const o=s=>{s.target&&!a.current&&Nb(Nk,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}function Eh(){const e=new CustomEvent(Wd);document.dispatchEvent(e)}function Nb(e,t,n,{discrete:a}){const o=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),a?Ji(o,s):o.dispatchEvent(s)}var Pk=ys,Ek=Tb,mt=globalThis!=null&&globalThis.document?f.useLayoutEffect:()=>{},Ik="Portal",xp=f.forwardRef((e,t)=>{var l;const{container:n,...a}=e,[o,s]=f.useState(!1);mt(()=>s(!0),[]);const i=n||o&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return i?vp.createPortal(r.jsx(ne.div,{...a,ref:t}),i):null});xp.displayName=Ik;function Ak(e,t){return f.useReducer((n,a)=>t[n][a]??n,e)}var Dt=e=>{const{present:t,children:n}=e,a=Rk(t),o=typeof n=="function"?n({present:a.isPresent}):f.Children.only(n),s=je(a.ref,_k(o));return typeof n=="function"||a.isPresent?f.cloneElement(o,{ref:s}):null};Dt.displayName="Presence";function Rk(e){const[t,n]=f.useState(),a=f.useRef(null),o=f.useRef(e),s=f.useRef("none"),i=e?"mounted":"unmounted",[l,c]=Ak(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return f.useEffect(()=>{const d=Ks(a.current);s.current=l==="mounted"?d:"none"},[l]),mt(()=>{const d=a.current,u=o.current;if(u!==e){const h=s.current,m=Ks(d);e?c("MOUNT"):m==="none"||(d==null?void 0:d.display)==="none"?c("UNMOUNT"):c(u&&h!==m?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,c]),mt(()=>{if(t){let d;const u=t.ownerDocument.defaultView??window,p=m=>{const g=Ks(a.current).includes(m.animationName);if(m.target===t&&g&&(c("ANIMATION_END"),!o.current)){const w=t.style.animationFillMode;t.style.animationFillMode="forwards",d=u.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=w)})}},h=m=>{m.target===t&&(s.current=Ks(a.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{u.clearTimeout(d),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:f.useCallback(d=>{a.current=d?getComputedStyle(d):null,n(d)},[])}}function Ks(e){return(e==null?void 0:e.animationName)||"none"}function _k(e){var a,o;let t=(a=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:a.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var Ok=Du[" useInsertionEffect ".trim().toString()]||mt;function Cn({prop:e,defaultProp:t,onChange:n=()=>{},caller:a}){const[o,s,i]=Lk({defaultProp:t,onChange:n}),l=e!==void 0,c=l?e:o;{const u=f.useRef(e!==void 0);f.useEffect(()=>{const p=u.current;p!==l&&console.warn(`${a} is changing from ${p?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),u.current=l},[l,a])}const d=f.useCallback(u=>{var p;if(l){const h=zk(u)?u(e):u;h!==e&&((p=i.current)==null||p.call(i,h))}else s(u)},[l,e,s,i]);return[c,d]}function Lk({defaultProp:e,onChange:t}){const[n,a]=f.useState(e),o=f.useRef(n),s=f.useRef(t);return Ok(()=>{s.current=t},[t]),f.useEffect(()=>{var i;o.current!==n&&((i=s.current)==null||i.call(s,n),o.current=n)},[n,o]),[n,a,s]}function zk(e){return typeof e=="function"}var Mk=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Fk="VisuallyHidden",Il=f.forwardRef((e,t)=>
40r.jsx(ne.span,{...e,ref:t,style:{...Mk,...e.style}}));Il.displayName=Fk;var Db=Il,yp="ToastProvider",[wp,qk,Bk]=xs("Toast"),[Cb,p6]=ln("Toast",[Bk]),[Vk,Al]=Cb(yp),Sb=e=>{const{__scopeToast:t,label:n="Notification",duration:a=5e3,swipeDirection:o="right",swipeThreshold:s=50,children:i}=e,[l,c]=f.useState(null),[d,u]=f.useState(0),p=f.useRef(!1),h=f.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${yp}\`. Expected non-empty \`string\`.`),r.jsx(wp.Provider,{scope:t,children:r.jsx(Vk,{scope:t,label:n,duration:a,swipeDirection:o,swipeThreshold:s,toastCount:d,viewport:l,onViewportChange:c,onToastAdd:f.useCallback(()=>u(m=>m+1),[]),onToastRemove:f.useCallback(()=>u(m=>m-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:h,children:i})})};Sb.displayName=yp;var Pb="ToastViewport",$k=["F8"],Ud="toast.viewportPause",Kd="toast.viewportResume",Eb=f.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:a=$k,label:o="Notifications ({hotkey})",...s}=e,i=Al(Pb,n),l=qk(n),c=f.useRef(null),d=f.useRef(null),u=f.useRef(null),p=f.useRef(null),h=je(t,p,i.onViewportChange),m=a.join("+").replace(/Key/g,"").replace(/Digit/g,""),y=i.toastCount>0;f.useEffect(()=>{const w=b=>{var x;a.length!==0&&a.every(k=>b[k]||b.code===k)&&((x=p.current)==null||x.focus())};return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[a]),f.useEffect(()=>{const w=c.current,b=p.current;if(y&&w&&b){const v=()=>{if(!i.isClosePausedRef.current){const T=new CustomEvent(Ud);b.dispatchEvent(T),i.isClosePausedRef.current=!0}},x=()=>{if(i.isClosePausedRef.current){const T=new CustomEvent(Kd);b.dispatchEvent(T),i.isClosePausedRef.current=!1}},k=T=>{!w.contains(T.relatedTarget)&&x()},j=()=>{w.contains(document.activeElement)||x()};return w.addEventListener("focusin",v),w.addEventListener("focusout",k),w.addEventListener("pointermove",v),w.addEventListener("pointerleave",j),window.addEventListener("blur",v),window.addEventListener("focus",x),()=>{w.removeEventListener("focusin",v),w.removeEventListener("focusout",k),w.removeEventListener("pointermove",v),w.removeEventListener("pointerleave",j),window.removeEventListener("blur",v),window.removeEventListener("focus",x)}}},[y,i.isClosePausedRef]);const g=f.useCallback(({tabbingDirection:w})=>{const v=l().map(x=>{const k=x.ref.current,j=[k,...nj(k)];return w==="forwards"?j:j.reverse()});return(w==="forwards"?v.reverse():v).flat()},[l]);return f.useEffect(()=>{const w=p.current;if(w){const b=v=>{var j,T,N;const x=v.altKey||v.ctrlKey||v.metaKey;if(v.key==="Tab"&&!x){const D=document.activeElement,C=v.shiftKey;if(v.target===w&&C){(j=d.current)==null||j.focus();return}const _=g({tabbingDirection:C?"backwards":"forwards"}),z=_.findIndex(A=>A===D);Pc(_.slice(z+1))?v.preventDefault():C?(T=d.current)==null||T.focus():(N=u.current)==null||N.focus()}};return w.addEventListener("keydown",b),()=>w.removeEventListener("keydown",b)}},[l,g]),r.jsxs(Ek,{ref:c,role:"region","aria-label":o.replace("{hotkey}",m),tabIndex:-1,style:{pointerEvents:y?void 0:"none"},children:[y&&r.jsx(Gd,{ref:d,onFocusFromOutsideViewport:()=>{const w=g({tabbingDirection:"forwards"});Pc(w)}}),r.jsx(wp.Slot,{scope:n,children:r.jsx(ne.ol,{tabIndex:-1,...s,ref:h})}),y&&r.jsx(Gd,{ref:u,onFocusFromOutsideViewport:()=>{const w=g({tabbingDirection:"backwards"});Pc(w)}})]})});Eb.displayName=Pb;var Ib="ToastFocusProxy",Gd=f.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:a,...o}=e,s=Al(Ib,n);return r.jsx(Il,{"aria-hidden":!0,tabIndex:0,...o,ref:t,style:{position:"fixed"},onFocus:i=>{var d;const l=i.relatedTarget;!((d=s.viewport)!=null&&d.contains(l))&&a()}})});Gd.displayName=Ib;var ws="Toast",Hk="toast.swipeStart",Wk="toast.swipeMove",Uk="toast.swipeCancel",Kk="toast.swipeEnd",Ab=f.forwardRef((e,t)=>{const{forceMount:n,open:a,defaultOpen:o,onOpenChange:s,...i}=e,[l,c]=Cn({prop:a,defaultProp:o??!0,onChange:s,caller:ws});return r.jsx(Dt,{present:n||l,children:r.jsx(Yk,{open:l,...i,ref:t,onClose:()=>c(!1),onPause:Oe(e.onPause),onResume:Oe(e.onResume),onSwipeStart:G(e.onSwipeStart,d=>{d.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:G(e.onSwipeMove,d=>{const{x:u,y:p}=d.detail.delta;d.currentTarget.setAttribute("data-swipe","move"),d.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${u}px`),d.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:G(e.onSwipeCancel,d=>{d.currentTarget.setAttribute("data-swipe","cancel"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),d.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:G(e.onSwipeEnd,d=>{const{x:u,y:p}=d.detail.delta;d.currentTarget.setAttribute("data-swipe","end"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),d.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${u}px`),d.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),c(!1)})})})});Ab.displayName=ws;var[Gk,Qk]=Cb(ws,{onClose(){}}),Yk=f.forwardRef((e,t)=>
40{const{__scopeToast:n,type:a="foreground",duration:o,open:s,onClose:i,onEscapeKeyDown:l,onPause:c,onResume:d,onSwipeStart:u,onSwipeMove:p,onSwipeCancel:h,onSwipeEnd:m,...y}=e,g=Al(ws,n),[w,b]=f.useState(null),v=je(t,A=>b(A)),x=f.useRef(null),k=f.useRef(null),j=o||g.duration,T=f.useRef(0),N=f.useRef(j),D=f.useRef(0),{onToastAdd:C,onToastRemove:E}=g,H=Oe(()=>{var W;(w==null?void 0:w.contains(document.activeElement))&&((W=g.viewport)==null||W.focus()),i()}),_=f.useCallback(A=>{!A||A===1/0||(window.clearTimeout(D.current),T.current=new Date().getTime(),D.current=window.setTimeout(H,A))},[H]);f.useEffect(()=>{const A=g.viewport;if(A){const W=()=>{_(N.current),d==null||d()},F=()=>{const K=new Date().getTime()-T.current;N.current=N.current-K,window.clearTimeout(D.current),c==null||c()};return A.addEventListener(Ud,F),A.addEventListener(Kd,W),()=>{A.removeEventListener(Ud,F),A.removeEventListener(Kd,W)}}},[g.viewport,j,c,d,_]),f.useEffect(()=>{s&&!g.isClosePausedRef.current&&_(j)},[s,j,g.isClosePausedRef,_]),f.useEffect(()=>(C(),()=>E()),[C,E]);const z=f.useMemo(()=>w?Fb(w):null,[w]);return g.viewport?r.jsxs(r.Fragment,{children:[z&&r.jsx(Zk,{__scopeToast:n,role:"status","aria-live":a==="foreground"?"assertive":"polite","aria-atomic":!0,children:z}),r.jsx(Gk,{scope:n,onClose:H,children:bs.createPortal(r.jsx(wp.ItemSlot,{scope:n,children:r.jsx(Pk,{asChild:!0,onEscapeKeyDown:G(l,()=>{g.isFocusedToastEscapeKeyDownRef.current||H(),g.isFocusedToastEscapeKeyDownRef.current=!1}),children:r.jsx(ne.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":g.swipeDirection,...y,ref:v,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:G(e.onKeyDown,A=>{A.key==="Escape"&&(l==null||l(A.nativeEvent),A.nativeEvent.defaultPrevented||(g.isFocusedToastEscapeKeyDownRef.current=!0,H()))}),onPointerDown:G(e.onPointerDown,A=>{A.button===0&&(x.current={x:A.clientX,y:A.clientY})}),onPointerMove:G(e.onPointerMove,A=>{if(!x.current)return;const W=A.clientX-x.current.x,F=A.clientY-x.current.y,K=!!k.current,S=["left","right"].includes(g.swipeDirection),I=["left","up"].includes(g.swipeDirection)?Math.min:Math.max,M=S?I(0,W):0,U=S?0:I(0,F),$=A.pointerType==="touch"?10:2,X={x:M,y:U},re={originalEvent:A,delta:X};K?(k.current=X,Gs(Wk,p,re,{discrete:!1})):Ih(X,g.swipeDirection,$)?(k.current=X,Gs(Hk,u,re,{discrete:!1}),A.target.setPointerCapture(A.pointerId)):(Math.abs(W)>$||Math.abs(F)>$)&&(x.current=null)}),onPointerUp:G(e.onPointerUp,A=>{const W=k.current,F=A.target;if(F.hasPointerCapture(A.pointerId)&&F.releasePointerCapture(A.pointerId),k.current=null,x.current=null,W){const K=A.currentTarget,S={originalEvent:A,delta:W};Ih(W,g.swipeDirection,g.swipeThreshold)?Gs(Kk,m,S,{discrete:!0}):Gs(Uk,h,S,{discrete:!0}),K.addEventListener("click",I=>I.preventDefault(),{once:!0})}})})})}),g.viewport)})]}):null}),Zk=e=>{const{__scopeToast:t,children:n,...a}=e,o=Al(ws,t),[s,i]=f.useState(!1),[l,c]=f.useState(!1);return ej(()=>i(!0)),f.useEffect(()=>{const d=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(d)},[]),l?null:r.jsx(xp,{asChild:!0,children:r.jsx(Il,{...a,children:s&&r.jsxs(r.Fragment,{children:[o.label," ",n]})})})},Xk="ToastTitle",Rb=f.forwardRef((e,t)=>{const{__scopeToast:n,...a}=e;return r.jsx(ne.div,{...a,ref:t})});Rb.displayName=Xk;var Jk="ToastDescription",_b=f.forwardRef((e,t)=>{const{__scopeToast:n,...a}=e;return r.jsx(ne.div,{...a,ref:t})});_b.displayName=Jk;var Ob="ToastAction",Lb=f.forwardRef((e,t)=>{const{altText:n,...a}=e;return n.trim()?r.jsx(Mb,{altText:n,asChild:!0,children:r.jsx(kp,{...a,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${Ob}\`. Expected non-empty \`string\`.`),null)});Lb.displayName=Ob;var zb="ToastClose",kp=f.forwardRef((e,t)=>{const{__scopeToast:n,...a}=e,o=Qk(zb,n);return r.jsx(Mb,{asChild:!0,children:r.jsx(ne.button,{type:"button",...a,ref:t,onClick:G(e.onClick,o.onClose)})})});kp.displayName=zb;var Mb=f.forwardRef((e,t)=>{const{__scopeToast:n,altText:a,...o}=e;return r.jsx(ne.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":a||void 0,...o,ref:t})});function Fb(e){const t=[];
vendor: 8,675 bytes, lines 40-115
40return Array.from(e.childNodes).forEach(a=>{if(a.nodeType===a.TEXT_NODE&&a.textContent&&t.push(a.textContent),tj(a)){const o=a.ariaHidden||a.hidden||a.style.display==="none",s=a.dataset.radixToastAnnounceExclude==="";if(!o)if(s){const i=a.dataset.radixToastAnnounceAlt;i&&t.push(i)}else t.push(...Fb(a))}}),t}function Gs(e,t,n,{discrete:a}){const o=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),a?Ji(o,s):o.dispatchEvent(s)}var Ih=(e,t,n=0)=>{const a=Math.abs(e.x),o=Math.abs(e.y),s=a>o;return t==="left"||t==="right"?s&&a>n:!s&&o>n};function ej(e=()=>{}){const t=Oe(e);mt(()=>{let n=0,a=0;return n=window.requestAnimationFrame(()=>a=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(a)}},[t])}function tj(e){return e.nodeType===e.ELEMENT_NODE}function nj(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const o=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||o?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Pc(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var aj=Sb,qb=Eb,Bb=Ab,Vb=Rb,$b=_b,Hb=Lb,Wb=kp;function Ub(e){var t,n,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=Ub(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}function Kb(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=Ub(e))&&(a&&(a+=" "),a+=t);return a}const Ah=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Rh=Kb,Rl=(e,t)=>n=>{var a;if((t==null?void 0:t.variants)==null)return Rh(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:o,defaultVariants:s}=t,i=Object.keys(o).map(d=>{const u=n==null?void 0:n[d],p=s==null?void 0:s[d];if(u===null)return null;const h=Ah(u)||Ah(p);return o[d][h]}),l=n&&Object.entries(n).reduce((d,u)=>{let[p,h]=u;return h===void 0||(d[p]=h),d},{}),c=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((d,u)=>{let{class:p,className:h,...m}=u;return Object.entries(m).every(y=>{let[g,w]=y;return Array.isArray(w)?w.includes({...s,...l}[g]):{...s,...l}[g]===w})?[...d,p,h]:d},[]);return Rh(e,i,c,n==null?void 0:n.class,n==null?void 0:n.className)};/**
41 * @license lucide-react v0.462.0 - ISC
42 *
43 * This source code is licensed under the ISC license.
44 * See the LICENSE file in the root directory of this source tree.
45 */const rj=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Gb=(...e)=>e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();/**
46 * @license lucide-react v0.462.0 - ISC
47 *
48 * This source code is licensed under the ISC license.
49 * See the LICENSE file in the root directory of this source tree.
50 */var oj={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
51 * @license lucide-react v0.462.0 - ISC
52 *
53 * This source code is licensed under the ISC license.
54 * See the LICENSE file in the root directory of this source tree.
55 */const sj=f.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:a,className:o="",children:s,iconNode:i,...l},c)=>f.createElement("svg",{ref:c,...oj,width:t,height:t,stroke:e,strokeWidth:a?Number(n)*24/Number(t):n,className:Gb("lucide",o),...l},[...i.map(([d,u])=>f.createElement(d,u)),...Array.isArray(s)?s:[s]]));/**
56 * @license lucide-react v0.462.0 - ISC
57 *
58 * This source code is licensed under the ISC license.
59 * See the LICENSE file in the root directory of this source tree.
60 */const V=(e,t)=>{const n=f.forwardRef(({className:a,...o},s)=>f.createElement(sj,{ref:s,iconNode:t,className:Gb(`lucide-${rj(e)}`,a),...o}));return n.displayName=`${e}`,n};/**
61 * @license lucide-react v0.462.0 - ISC
62 *
63 * This source code is licensed under the ISC license.
64 * See the LICENSE file in the root directory of this source tree.
65 */const ue=V("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
66 * @license lucide-react v0.462.0 - ISC
67 *
68 * This source code is licensed under the ISC license.
69 * See the LICENSE file in the root directory of this source tree.
70 */const ij=V("ArrowRightLeft",[["path",{d:"m16 3 4 4-4 4",key:"1x1c3m"}],["path",{d:"M20 7H4",key:"zbl0bi"}],["path",{d:"m8 21-4-4 4-4",key:"h9nckh"}],["path",{d:"M4 17h16",key:"g4d7ey"}]]);/**
71 * @license lucide-react v0.462.0 - ISC
72 *
73 * This source code is licensed under the ISC license.
74 * See the LICENSE file in the root directory of this source tree.
75 */const Ge=V("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
76 * @license lucide-react v0.462.0 - ISC
77 *
78 * This source code is licensed under the ISC license.
79 * See the LICENSE file in the root directory of this source tree.
80 */const jp=V("Award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]);/**
81 * @license lucide-react v0.462.0 - ISC
82 *
83 * This source code is licensed under the ISC license.
84 * See the LICENSE file in the root directory of this source tree.
85 */const lj=V("Beer",[["path",{d:"M17 11h1a3 3 0 0 1 0 6h-1",key:"1yp76v"}],["path",{d:"M9 12v6",key:"1u1cab"}],["path",{d:"M13 12v6",key:"1sugkk"}],["path",{d:"M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z",key:"1510fo"}],["path",{d:"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"19jb7n"}]]);/**
86 * @license lucide-react v0.462.0 - ISC
87 *
88 * This source code is licensed under the ISC license.
89 * See the LICENSE file in the root directory of this source tree.
90 */const cj=V("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);/**
91 * @license lucide-react v0.462.0 - ISC
92 *
93 * This source code is licensed under the ISC license.
94 * See the LICENSE file in the root directory of this source tree.
95 */const _h=V("BookOpen",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);/**
96 * @license lucide-react v0.462.0 - ISC
97 *
98 * This source code is licensed under the ISC license.
99 * See the LICENSE file in the root directory of this source tree.
100 */const dj=V("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/**
101 * @license lucide-react v0.462.0 - ISC
102 *
103 * This source code is licensed under the ISC license.
104 * See the LICENSE file in the root directory of this source tree.
105 */const uj=V("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/**
106 * @license lucide-react v0.462.0 - ISC
107 *
108 * This source code is licensed under the ISC license.
109 * See the LICENSE file in the root directory of this source tree.
110 */const pj=V("Briefcase",[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]]);/**
111 * @license lucide-react v0.462.0 - ISC
112 *
113 * This source code is licensed under the ISC license.
114 * See the LICENSE file in the root directory of this source tree.
115 */const Tp=V("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}
115],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/**
116 * @license lucide-react v0.462.0 - ISC
117 *
118 * This source code is licensed under the ISC license.
119 * See the LICENSE file in the root directory of this source tree.
120 */const Qb=V("Building",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["path",{d:"M9 22v-4h6v4",key:"r93iot"}],["path",{d:"M8 6h.01",key:"1dz90k"}],["path",{d:"M16 6h.01",key:"1x0f13"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M8 14h.01",key:"6423bh"}]]);/**
121 * @license lucide-react v0.462.0 - ISC
122 *
123 * This source code is licensed under the ISC license.
124 * See the LICENSE file in the root directory of this source tree.
125 */const mj=V("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/**
126 * @license lucide-react v0.462.0 - ISC
127 *
128 * This source code is licensed under the ISC license.
129 * See the LICENSE file in the root directory of this source tree.
130 */const Np=V("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/**
131 * @license lucide-react v0.462.0 - ISC
132 *
133 * This source code is licensed under the ISC license.
134 * See the LICENSE file in the root directory of this source tree.
135 */const hj=V("ChartPie",[["path",{d:"M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",key:"pzmjnu"}],["path",{d:"M21.21 15.89A10 10 0 1 1 8 2.83",key:"k2fpak"}]]);/**
136 * @license lucide-react v0.462.0 - ISC
137 *
138 * This source code is licensed under the ISC license.
139 * See the LICENSE file in the root directory of this source tree.
140 */const Yb=V("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
141 * @license lucide-react v0.462.0 - ISC
142 *
143 * This source code is licensed under the ISC license.
144 * See the LICENSE file in the root directory of this source tree.
145 */const Zb=V("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
146 * @license lucide-react v0.462.0 - ISC
147 *
148 * This source code is licensed under the ISC license.
149 * See the LICENSE file in the root directory of this source tree.
150 */const on=V("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
151 * @license lucide-react v0.462.0 - ISC
152 *
153 * This source code is licensed under the ISC license.
154 * See the LICENSE file in the root directory of this source tree.
155 */const Oo=V("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
156 * @license lucide-react v0.462.0 - ISC
157 *
158 * This source code is licensed under the ISC license.
159 * See the LICENSE file in the root directory of this source tree.
160 */const fj=V("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);/**
161 * @license lucide-react v0.462.0 - ISC
162 *
163 * This source code is licensed under the ISC license.
164 * See the LICENSE file in the root directory of this source tree.
165 */const gj=V("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}
165],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/**
166 * @license lucide-react v0.462.0 - ISC
167 *
168 * This source code is licensed under the ISC license.
169 * See the LICENSE file in the root directory of this source tree.
170 */const ks=V("Database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);/**
171 * @license lucide-react v0.462.0 - ISC
172 *
173 * This source code is licensed under the ISC license.
174 * See the LICENSE file in the root directory of this source tree.
175 */const vj=V("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);/**
176 * @license lucide-react v0.462.0 - ISC
177 *
178 * This source code is licensed under the ISC license.
179 * See the LICENSE file in the root directory of this source tree.
180 */const Xb=V("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/**
181 * @license lucide-react v0.462.0 - ISC
182 *
183 * This source code is licensed under the ISC license.
184 * See the LICENSE file in the root directory of this source tree.
185 */const Jb=V("Factory",[["path",{d:"M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"159hny"}],["path",{d:"M17 18h1",key:"uldtlt"}],["path",{d:"M12 18h1",key:"s9uhes"}],["path",{d:"M7 18h1",key:"1neino"}]]);/**
186 * @license lucide-react v0.462.0 - ISC
187 *
188 * This source code is licensed under the ISC license.
189 * See the LICENSE file in the root directory of this source tree.
190 */const bj=V("FileSearch",[["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M4.268 21a2 2 0 0 0 1.727 1H18a2 2 0 0 0 2-2V7l-5-5H6a2 2 0 0 0-2 2v3",key:"ms7g94"}],["path",{d:"m9 18-1.5-1.5",key:"1j6qii"}],["circle",{cx:"5",cy:"14",r:"3",key:"ufru5t"}]]);/**
191 * @license lucide-react v0.462.0 - ISC
192 *
193 * This source code is licensed under the ISC license.
194 * See the LICENSE file in the root directory of this source tree.
195 */const el=V("FileText",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);/**
196 * @license lucide-react v0.462.0 - ISC
197 *
198 * This source code is licensed under the ISC license.
199 * See the LICENSE file in the root directory of this source tree.
200 */const xj=V("FolderOpen",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);/**
201 * @license lucide-react v0.462.0 - ISC
202 *
203 * This source code is licensed under the ISC license.
204 * See the LICENSE file in the root directory of this source tree.
205 */const yj=V("GitBranch",[["line",{x1:"6",x2:"6",y1:"3",y2:"15",key:"17qcm7"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["path",{d:"M18 9a9 9 0 0 1-9 9",key:"n2h4wq"}]]);/**
206 * @license lucide-react v0.462.0 - ISC
207 *
208 * This source code is licensed under the ISC license.
209 * See the LICENSE file in the root directory of this source tree.
210 */const wj=V("GitMerge",[["circle",{cx:"18",cy:"18",r:"3",key:"1xkwt0"}],["circle",{cx:"6",cy:"6",r:"3",key:"1lh9wr"}],["path",{d:"M6 21V9a9 9 0 0 0 9 9",key:"7kw0sc"}]]);/**
211 * @license lucide-react v0.462.0 - ISC
212 *
213 * This source code is licensed under the ISC license.
214 * See the LICENSE file in the root directory of this source tree.
215 */const ex=V("GraduationCap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]);/**
216 * @license lucide-react v0.462.0 - ISC
217 *
218 * This source code is licensed under the ISC license.
219 * See the LICENSE file in the root directory of this source tree.
220 */const Dp=V("Handshake",[["path",{d:"m11 17 2 2a1 1 0 1 0 3-3",key:"efffak"}],["path",{d:"m14 14 2.5 2.5a1 1 0 1 0 3-3l-3.88-3.88a3 3 0 0 0-4.24 0l-.88.88a1 1 0 1 1-3-3l2.81-2.81a5.79 5.79 0 0 1 7.06-.87l.47.28a2 2 0 0 0 1.42.25L21 4",key:"9pr0kb"}],["path",{d:"m21 3 1 11h-2",key:"1tisrp"}],["path",{d:"M3 3 2 14l6.5 6.5a1 1 0 1 0 3-3",key:"1uvwmv"}],["path",{d:"M3 4h8",key:"1ep09j"}]]);/**
221 * @license lucide-react v0.462.0 - ISC
222 *
223 * This source code is licensed under the ISC license.
224 * See the LICENSE file in the root directory of this source tree.
225 */const kj=V("Headset",[["path",{d:"M3 11h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5Zm0 0a9 9 0 1 1 18 0m0 0v5a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3Z",key:"12oyoe"}],["path",{d:"M21 16v2a4 4 0 0 1-4 4h-5",key:"1x7m43"}]]);/**
226 * @license lucide-react v0.462.0 - ISC
227 *
228 * This source code is licensed under the ISC license.
229 * See the LICENSE file in the root directory of this source tree.
230 */const tx=V("Landmark",[["line",{x1:"3",x2:"21",y1:"22",y2:"22",key:"j8o0r"}],["line",{x1:"6",x2:"6",y1:"18",y2:"11",key:"10tf0k"}],["line",{x1:"10",x2:"10",y1:"18",y2:"11",key:"54lgf6"}],["line",{x1:"14",x2:"14",y1:"18",y2:"11",key:"380y"}],["line",{x1:"18",x2:"18",y1:"18",y2:"11",key:"1kevvc"}],["polygon",{points:"12 2 20 7 4 7",key:"jkujk7"}]]);/**
231 * @license lucide-react v0.462.0 - ISC
232 *
233 * This source code is licensed under the ISC license.
234 * See the LICENSE file in the root directory of this source tree.
235 */const jj=V("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/**
236 * @license lucide-react v0.462.0 - ISC
237 *
238 * This source code is licensed under the ISC license.
239 * See the LICENSE file in the root directory of this source tree.
240 */const Tj=V("Library",[["path",{d:"m16 6 4 14",key:"ji33uf"}],["path",{d:"M12 6v14",key:"1n7gus"}
240],["path",{d:"M8 8v12",key:"1gg7y9"}],["path",{d:"M4 4v16",key:"6qkkli"}]]);/**
241 * @license lucide-react v0.462.0 - ISC
242 *
243 * This source code is licensed under the ISC license.
244 * See the LICENSE file in the root directory of this source tree.
245 */const Nj=V("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);/**
246 * @license lucide-react v0.462.0 - ISC
247 *
248 * This source code is licensed under the ISC license.
249 * See the LICENSE file in the root directory of this source tree.
250 */const nx=V("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);/**
251 * @license lucide-react v0.462.0 - ISC
252 *
253 * This source code is licensed under the ISC license.
254 * See the LICENSE file in the root directory of this source tree.
255 */const Dj=V("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);/**
256 * @license lucide-react v0.462.0 - ISC
257 *
258 * This source code is licensed under the ISC license.
259 * See the LICENSE file in the root directory of this source tree.
260 */const Cj=V("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/**
261 * @license lucide-react v0.462.0 - ISC
262 *
263 * This source code is licensed under the ISC license.
264 * See the LICENSE file in the root directory of this source tree.
265 */const ns=V("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/**
266 * @license lucide-react v0.462.0 - ISC
267 *
268 * This source code is licensed under the ISC license.
269 * See the LICENSE file in the root directory of this source tree.
270 */const Sj=V("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/**
271 * @license lucide-react v0.462.0 - ISC
272 *
273 * This source code is licensed under the ISC license.
274 * See the LICENSE file in the root directory of this source tree.
275 */const Pj=V("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);/**
276 * @license lucide-react v0.462.0 - ISC
277 *
278 * This source code is licensed under the ISC license.
279 * See the LICENSE file in the root directory of this source tree.
280 */const Oh=V("Newspaper",[["path",{d:"M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-2 2Zm0 0a2 2 0 0 1-2-2v-9c0-1.1.9-2 2-2h2",key:"7pis2x"}],["path",{d:"M18 14h-8",key:"sponae"}],["path",{d:"M15 18h-5",key:"95g1m2"}],["path",{d:"M10 6h8v4h-8V6Z",key:"smlsk5"}]]);/**
281 * @license lucide-react v0.462.0 - ISC
282 *
283 * This source code is licensed under the ISC license.
284 * See the LICENSE file in the root directory of this source tree.
285 */const Ej=V("Package",[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["path",{d:"m3.3 7 7.703 4.734a2 2 0 0 0 1.994 0L20.7 7",key:"yx3hmr"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]]);/**
286 * @license lucide-react v0.462.0 - ISC
287 *
288 * This source code is licensed under the ISC license.
289 * See the LICENSE file in the root directory of this source tree.
290 */const Ij=V("PenLine",[["path",{d:"M12 20h9",key:"t2du7b"}],["path",{d:"M16.376 3.622a1 1 0 0 1 3.002 3.002L7.368 18.635a2 2 0 0 1-.855.506l-2.872.838a.5.5 0 0 1-.62-.62l.838-2.872a2 2 0 0 1 .506-.854z",key:"1ykcvy"}]]);/**
291 * @license lucide-react v0.462.0 - ISC
292 *
293 * This source code is licensed under the ISC license.
294 * See the LICENSE file in the root directory of this source tree.
295 */const tl=V("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);/**
296 * @license lucide-react v0.462.0 - ISC
297 *
298 * This source code is licensed under the ISC license.
299 * See the LICENSE file in the root directory of this source tree.
300 */const Aj=V("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
301 * @license lucide-react v0.462.0 - ISC
302 *
303 * This source code is licensed under the ISC license.
304 * See the LICENSE file in the root directory of this source tree.
305 */const Rj=V("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/**
306 * @license lucide-react v0.462.0 - ISC
307 *
308 * This source code is licensed under the ISC license.
309 * See the LICENSE file in the root directory of this source tree.
310 */const _j=V("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
311 * @license lucide-react v0.462.0 - ISC
312 *
313 * This source code is licensed under the ISC license.
314 * See the LICENSE file in the root directory of this source tree.
315 */const ax=V("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",ke
315y:"oel41y"}]]);/**
316 * @license lucide-react v0.462.0 - ISC
317 *
318 * This source code is licensed under the ISC license.
319 * See the LICENSE file in the root directory of this source tree.
320 */const Oj=V("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/**
321 * @license lucide-react v0.462.0 - ISC
322 *
323 * This source code is licensed under the ISC license.
324 * See the LICENSE file in the root directory of this source tree.
325 */const Lj=V("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);/**
326 * @license lucide-react v0.462.0 - ISC
327 *
328 * This source code is licensed under the ISC license.
329 * See the LICENSE file in the root directory of this source tree.
330 */const Hr=V("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/**
331 * @license lucide-react v0.462.0 - ISC
332 *
333 * This source code is licensed under the ISC license.
334 * See the LICENSE file in the root directory of this source tree.
335 */const rx=V("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/**
336 * @license lucide-react v0.462.0 - ISC
337 *
338 * This source code is licensed under the ISC license.
339 * See the LICENSE file in the root directory of this source tree.
340 */const Cp=V("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
341 * @license lucide-react v0.462.0 - ISC
342 *
343 * This source code is licensed under the ISC license.
344 * See the LICENSE file in the root directory of this source tree.
345 */const zj=V("Trophy",[["path",{d:"M6 9H4.5a2.5 2.5 0 0 1 0-5H6",key:"17hqa7"}],["path",{d:"M18 9h1.5a2.5 2.5 0 0 0 0-5H18",key:"lmptdp"}],["path",{d:"M4 22h16",key:"57wxv0"}],["path",{d:"M10 14.66V17c0 .55-.47.98-.97 1.21C7.85 18.75 7 20.24 7 22",key:"1nw9bq"}],["path",{d:"M14 14.66V17c0 .55.47.98.97 1.21C16.15 18.75 17 20.24 17 22",key:"1np0yb"}],["path",{d:"M18 2H6v7a6 6 0 0 0 12 0V2Z",key:"u46fv3"}]]);/**
346 * @license lucide-react v0.462.0 - ISC
347 *
348 * This source code is licensed under the ISC license.
349 * See the LICENSE file in the root directory of this source tree.
350 */const js=V("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/**
351 * @license lucide-react v0.462.0 - ISC
352 *
353 * This source code is licensed under the ISC license.
354 * See the LICENSE file in the root directory of this source tree.
355 */const ox=V("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/**
356 * @license lucide-react v0.462.0 - ISC
357 *
358 * This source code is licensed under the ISC license.
359 * See the LICENSE file in the root directory of this source tree.
360 */const Sp=V("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/**
361 * @license lucide-react v0.462.0 - ISC
362 *
363 * This source code is licensed under the ISC license.
364 * See the LICENSE file in the root directory of this source tree.
365 */const Mj=V("Youtube",[["path",{d:"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.5
3655 0 0 1-16.2 0A2 2 0 0 1 2.5 17",key:"1q2vi4"}],["path",{d:"m10 15 5-3-5-3z",key:"1jp15x"}]]);/**
366 * @license lucide-react v0.462.0 - ISC
367 *
368 * This source code is licensed under the ISC license.
369 * See the LICENSE file in the root directory of this source tree.
370 */const Xr=V("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]),Pp="-",Fj=e=>{const t=Bj(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:i=>{const l=i.split(Pp);return l[0]===""&&l.length!==1&&l.shift(),sx(l,t)||qj(i)},getConflictingClassGroupIds:(i,l)=>{const c=n[i]||[];return l&&a[i]?[...c,...a[i]]:c}}},sx=(e,t)=>{var i;if(e.length===0)return t.classGroupId;const n=e[0],a=t.nextPart.get(n),o=a?sx(e.slice(1),a):void 0;if(o)return o;if(t.validators.length===0)return;const s=e.join(Pp);return(i=t.validators.find(({validator:l})=>l(s)))==null?void 0:i.classGroupId},Lh=/^\[(.+)\]$/,qj=e=>{if(Lh.test(e)){const t=Lh.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},Bj=e=>{const{theme:t,prefix:n}=e,a={nextPart:new Map,validators:[]};return $j(Object.entries(e.classGroups),n).forEach(([s,i])=>{Qd(i,a,s,t)}),a},Qd=(e,t,n,a)=>{e.forEach(o=>{if(typeof o=="string"){const s=o===""?t:zh(t,o);s.classGroupId=n;return}if(typeof o=="function"){if(Vj(o)){Qd(o(a),t,n,a);return}t.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([s,i])=>{Qd(i,zh(t,s),n,a)})})},zh=(e,t)=>{let n=e;
vendor: 4,751 bytes, line 370
370return t.split(Pp).forEach(a=>{n.nextPart.has(a)||n.nextPart.set(a,{nextPart:new Map,validators:[]}),n=n.nextPart.get(a)}),n},Vj=e=>e.isThemeGetter,$j=(e,t)=>t?e.map(([n,a])=>{const o=a.map(s=>typeof s=="string"?t+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([i,l])=>[t+i,l])):s);return[n,o]}):e,Hj=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,a=new Map;const o=(s,i)=>{n.set(s,i),t++,t>e&&(t=0,a=n,n=new Map)};return{get(s){let i=n.get(s);if(i!==void 0)return i;if((i=a.get(s))!==void 0)return o(s,i),i},set(s,i){n.has(s)?n.set(s,i):o(s,i)}}},ix="!",Wj=e=>{const{separator:t,experimentalParseClassName:n}=e,a=t.length===1,o=t[0],s=t.length,i=l=>{const c=[];let d=0,u=0,p;for(let w=0;w<l.length;w++){let b=l[w];if(d===0){if(b===o&&(a||l.slice(w,w+s)===t)){c.push(l.slice(u,w)),u=w+s;continue}if(b==="/"){p=w;continue}}b==="["?d++:b==="]"&&d--}const h=c.length===0?l:l.substring(u),m=h.startsWith(ix),y=m?h.substring(1):h,g=p&&p>u?p-u:void 0;return{modifiers:c,hasImportantModifier:m,baseClassName:y,maybePostfixModifierPosition:g}};return n?l=>n({className:l,parseClassName:i}):i},Uj=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(a=>{a[0]==="["?(t.push(...n.sort(),a),n=[]):n.push(a)}),t.push(...n.sort()),t},Kj=e=>({cache:Hj(e.cacheSize),parseClassName:Wj(e),...Fj(e)}),Gj=/\s+/,Qj=(e,t)=>{const{parseClassName:n,getClassGroupId:a,getConflictingClassGroupIds:o}=t,s=[],i=e.trim().split(Gj);let l="";for(let c=i.length-1;c>=0;c-=1){const d=i[c],{modifiers:u,hasImportantModifier:p,baseClassName:h,maybePostfixModifierPosition:m}=n(d);let y=!!m,g=a(y?h.substring(0,m):h);if(!g){if(!y){l=d+(l.length>0?" "+l:l);continue}if(g=a(h),!g){l=d+(l.length>0?" "+l:l);continue}y=!1}const w=Uj(u).join(":"),b=p?w+ix:w,v=b+g;if(s.includes(v))continue;s.push(v);const x=o(g,y);for(let k=0;k<x.length;++k){const j=x[k];s.push(b+j)}l=d+(l.length>0?" "+l:l)}return l};function Yj(){let e=0,t,n,a="";for(;e<arguments.length;)(t=arguments[e++])&&(n=lx(t))&&(a&&(a+=" "),a+=n);return a}const lx=e=>{if(typeof e=="string")return e;let t,n="";for(let a=0;a<e.length;a++)e[a]&&(t=lx(e[a]))&&(n&&(n+=" "),n+=t);return n};function Zj(e,...t){let n,a,o,s=i;function i(c){const d=t.reduce((u,p)=>p(u),e());return n=Kj(d),a=n.cache.get,o=n.cache.set,s=l,l(c)}function l(c){const d=a(c);if(d)return d;const u=Qj(c,n);return o(c,u),u}return function(){return s(Yj.apply(null,arguments))}}const he=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},cx=/^\[(?:([a-z-]+):)?(.+)\]$/i,Xj=/^\d+\/\d+$/,Jj=new Set(["px","full","screen"]),e3=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,t3=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,n3=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,a3=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,r3=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,un=e=>Tr(e)||Jj.has(e)||Xj.test(e),zn=e=>Jr(e,"length",p3),Tr=e=>!!e&&!Number.isNaN(Number(e)),Ec=e=>Jr(e,"number",Tr),fo=e=>!!e&&Number.isInteger(Number(e)),o3=e=>e.endsWith("%")&&Tr(e.slice(0,-1)),ae=e=>cx.test(e),Mn=e=>e3.test(e),s3=new Set(["length","size","percentage"]),i3=e=>Jr(e,s3,dx),l3=e=>Jr(e,"position",dx),c3=new Set(["image","url"]),d3=e=>Jr(e,c3,h3),u3=e=>Jr(e,"",m3),go=()=>!0,Jr=(e,t,n)=>{const a=cx.exec(e);return a?a[1]?typeof t=="string"?a[1]===t:t.has(a[1]):n(a[2]):!1},p3=e=>t3.test(e)&&!n3.test(e),dx=()=>!1,m3=e=>a3.test(e),h3=e=>r3.test(e),f3=()=>{const e=he("colors"),t=he("spacing"),n=he("blur"),a=he("brightness"),o=he("borderColor"),s=he("borderRadius"),i=he("borderSpacing"),l=he("borderWidth"),c=he("contrast"),d=he("grayscale"),u=he("hueRotate"),p=he("invert"),h=he("gap"),m=he("gradientColorStops"),y=he("gradientColorStopPositions"),g=he("inset"),w=he("margin"),b=he("opacity"),v=he("padding"),x=he("saturate"),k=he("scale"),j=he("sepia"),T=he("skew"),N=he("space"),D=he("translate"),C=()=>["auto","contain","none"],E=()=>["auto","hidden","clip","visible","scroll"],H=()=>["auto",ae,t],_=()=>[ae,t],z=()=>["",un,zn],A=()=>["auto",Tr,ae],W=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],F=()=>["solid","dashed","dotted","double","none"],K=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],S=()=>["start","end","center","between","around","evenly","stretch"],I=()=>["","0",ae],M=()=>["auto","avoid","all","avoid-page","page","left","right","column"],U=()=>[Tr,ae];return{cacheSize:500,separator:":",theme:{colors:[go],spacing:[un,zn],blur:["none","",Mn,ae],brightness:U(),borderColor:[e],borderRadius:["n
370one","","full",Mn,ae],borderSpacing:_(),borderWidth:z(),contrast:U(),grayscale:I(),hueRotate:U(),invert:I(),gap:_(),gradientColorStops:[e],gradientColorStopPositions:[o3,zn],inset:H(),margin:H(),opacity:U(),padding:_(),saturate:U(),scale:U(),sepia:I(),skew:U(),space:_(),translate:_()},classGroups:{aspect:[{aspect:["auto","square","video",ae]}],container:["container"],columns:[{columns:[Mn]}],"break-after":[{"break-after":M()}],"break-before":[{"break-before":M()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...W(),ae]}],overflow:[{overflow:E()}],"overflow-x":[{"overflow-x":E()}],"overflow-y":[{"overflow-y":E()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",fo,ae]}],basis:[{basis:H()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",ae]}],grow:[{grow:I()}],shrink:[{shrink:I()}],order:[{order:["first","last","none",fo,ae]}],"grid-cols":[{"grid-cols":[go]}],"col-start-end":[{col:["auto",{span:["full",fo,ae]},ae]}],"col-start":[{"col-start":A()}],"col-end":[{"col-end":A()}],"grid-rows":[{"grid-rows":[go]}],"row-start-end":[{row:["auto",{span:[fo,ae]},ae]}],"row-start":[{"row-start":A()}],"row-end":[{"row-end":A()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",ae]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",ae]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...S()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...S(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...S(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[w]}],mx:[{mx:[w]}],my:[{my:[w]}],ms:[{ms:[w]}],me:[{me:[w]}],mt:[{mt:[w]}],mr:[{mr:[w]}],mb:[{mb:[w]}],ml:[{ml:[w]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",ae,t]}],"min-w":[{"min-w":[ae,t,"min","max","fit"]}],"max-w":[{"max-w":[ae,t,"none","full","min","max","fit","prose",{screen:[Mn]},Mn]}],h:[{h:[ae,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[ae,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[ae,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[ae,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Mn,zn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Ec]}],"font-family":[{font:[go]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",ae]}],"line-clamp":[{"line-clamp":["none",Tr,Ec]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",un,ae]}],"list-image":[{"list-image":["none",ae]}],"list-style-type":[{list:["none","disc","decimal",ae]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[b]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[b]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...F(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",un,zn]}],"underline-offset":[{"underline-offset":["auto",un,ae]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:_()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",ae]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",ae]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[b]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...W(),l3]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",i3]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},d3]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[y]}
vendor: 5,180 bytes, line 370
370],"gradient-via-pos":[{via:[y]}],"gradient-to-pos":[{to:[y]}],"gradient-from":[{from:[m]}],"gradient-via":[{via:[m]}],"gradient-to":[{to:[m]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[b]}],"border-style":[{border:[...F(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[b]}],"divide-style":[{divide:F()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...F()]}],"outline-offset":[{"outline-offset":[un,ae]}],"outline-w":[{outline:[un,zn]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[b]}],"ring-offset-w":[{"ring-offset":[un,zn]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Mn,u3]}],"shadow-color":[{shadow:[go]}],opacity:[{opacity:[b]}],"mix-blend":[{"mix-blend":[...K(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":K()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[a]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",Mn,ae]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[p]}],saturate:[{saturate:[x]}],sepia:[{sepia:[j]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[a]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[b]}],"backdrop-saturate":[{"backdrop-saturate":[x]}],"backdrop-sepia":[{"backdrop-sepia":[j]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",ae]}],duration:[{duration:U()}],ease:[{ease:["linear","in","out","in-out",ae]}],delay:[{delay:U()}],animate:[{animate:["none","spin","ping","pulse","bounce",ae]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[k]}],"scale-x":[{"scale-x":[k]}],"scale-y":[{"scale-y":[k]}],rotate:[{rotate:[fo,ae]}],"translate-x":[{"translate-x":[D]}],"translate-y":[{"translate-y":[D]}],"skew-x":[{"skew-x":[T]}],"skew-y":[{"skew-y":[T]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",ae]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",ae]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":_()}],"scroll-mx":[{"scroll-mx":_()}],"scroll-my":[{"scroll-my":_()}],"scroll-ms":[{"scroll-ms":_()}],"scroll-me":[{"scroll-me":_()}],"scroll-mt":[{"scroll-mt":_()}],"scroll-mr":[{"scroll-mr":_()}],"scroll-mb":[{"scroll-mb":_()}],"scroll-ml":[{"scroll-ml":_()}],"scroll-p":[{"scroll-p":_()}],"scroll-px":[{"scroll-px":_()}],"scroll-py":[{"scroll-py":_()}],"scroll-ps":[{"scroll-ps":_()}],"scroll-pe":[{"scroll-pe":_()}],"scroll-pt":[{"scroll-pt":_()}],"scroll-pr":[{"scroll-pr":_()}],"scroll-pb":[{"scroll-pb":_()}],"scroll-pl":[{"scroll-pl":_()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
vendor: 4,647 bytes, line 370
370],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",ae]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[un,zn,Ec]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},g3=Zj(f3);function pe(...e){return g3(Kb(e))}const v3=aj,ux=f.forwardRef(({className:e,...t},n)=>r.jsx(qb,{ref:n,className:pe("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));ux.displayName=qb.displayName;const b3=Rl("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),px=f.forwardRef(({className:e,variant:t,...n},a)=>r.jsx(Bb,{ref:a,className:pe(b3({variant:t}),e),...n}));px.displayName=Bb.displayName;const x3=f.forwardRef(({className:e,...t},n)=>r.jsx(Hb,{ref:n,className:pe("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",e),...t}));x3.displayName=Hb.displayName;const mx=f.forwardRef(({className:e,...t},n)=>r.jsx(Wb,{ref:n,className:pe("absolute right-2 top-2 rounded-md p-1 text-foreground
370/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:r.jsx(Sp,{className:"h-4 w-4"})}));mx.displayName=Wb.displayName;const hx=f.forwardRef(({className:e,...t},n)=>r.jsx(Vb,{ref:n,className:pe("text-sm font-semibold",e),...t}));hx.displayName=Vb.displayName;const fx=f.forwardRef(({className:e,...t},n)=>r.jsx($b,{ref:n,className:pe("text-sm opacity-90",e),...t}));fx.displayName=$b.displayName;function y3(){const{toasts:e}=pk();return r.jsxs(v3,{children:[e.map(function({id:t,title:n,description:a,action:o,...s}){return r.jsxs(px,{...s,children:[r.jsxs("div",{className:"grid gap-1",children:[n&&r.jsx(hx,{children:n}),a&&r.jsx(fx,{children:a})]}),o,r.jsx(mx,{})]},t)}),r.jsx(ux,{})]})}var Mh=["light","dark"],w3="(prefers-color-scheme: dark)",k3=f.createContext(void 0),j3={setTheme:e=>{},themes:[]},T3=()=>{var e;return(e=f.useContext(k3))!=null?e:j3};f.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:a,enableColorScheme:o,defaultTheme:s,value:i,attrs:l,nonce:c})=>{let d=s==="system",u=n==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${l.map(y=>`'${y}'`).join(",")})`};`:`var d=document.documentElement,n='${n}',s='setAttribute';`,p=o?Mh.includes(s)&&s?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${s}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",h=(y,g=!1,w=!0)=>{let b=i?i[y]:y,v=g?y+"|| ''":`'${b}'`,x="";return o&&w&&!g&&Mh.includes(y)&&(x+=`d.style.colorScheme = '${y}';`),n==="class"?g||b?x+=`c.add(${v})`:x+="null":b&&(x+=`d[s](n,${v})`),x},m=e?`!function(){${u}${h(e)}}()`:a?`!function(){try{${u}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${d})){var t='${w3}',m=window.matchMedia(t);if(m.media!==t||m.matches){${h("dark")}}else{${h("light")}}}else if(e){${i?`var x=${JSON.stringify(i)};`:""}${h(i?"x[e]":"e",!0)}}${d?"":"else{"+h(s,!1,!1)+"}"}${p}}catch(e){}}()`:`!function(){try{${u}var e=localStorage.getItem('${t}');if(e){${i?`var x=${JSON.stringify(i)};`:""}${h(i?"x[e]":"e",!0)}}else{${h(s,!1,!1)};}${p}}catch(t){}}();`;return f.createElement("script",{nonce:c,dangerouslySetInnerHTML:{__html:m}})});var N3=e=>{switch(e){case"success":return S3;case"info":return E3;case"warning":return P3;case"error":return I3;default:return null}},D3=Array(12).fill(0),C3=({visible:e,className:t})=>R.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},R.createElement("div",{className:"sonner-spinner"},D3.map((n,a)=>R.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${a}`})))),S3=R.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},R.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),P3=R.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},R.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),E3=R.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},R.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),I3=R.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},R.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),A3=R.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},R.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),R.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),R3=()=>{let[e,t]=R.useState(document.hidden);return R.useEffect(()=>{let n=()=>{t(document.hidden)};
370return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e},Yd=1,_3=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...a}=e,o=typeof(e==null?void 0:e.id)=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:Yd++,s=this.toasts.find(l=>l.id===o),i=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(o)&&this.dismissedToasts.delete(o),s?this.toasts=this.toasts.map(l=>l.id===o?(this.publish({...l,...e,id:o,title:n}),{...l,...e,id:o,dismissible:i,title:n}):l):this.addToast({title:n,...a,dismissible:i,id:o}),o},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(n=>n({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>
370this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let a=e instanceof Promise?e:e(),o=n!==void 0,s,i=a.then(async c=>{if(s=["resolve",c],R.isValidElement(c))o=!1,this.create({id:n,type:"default",message:c});else if(L3(c)&&!c.ok){o=!1;let d=typeof t.error=="function"?await t.error(`HTTP error! status: ${c.status}`):t.error,u=typeof t.description=="function"?await t.description(`HTTP error! status: ${c.status}`):t.description;this.create({id:n,type:"error",message:d,description:u})}else if(t.success!==void 0){o=!1;let d=typeof t.success=="function"?await t.success(c):t.success,u=typeof t.description=="function"?await t.description(c):t.description;this.create({id:n,type:"success",message:d,description:u})}}).catch(async c=>{if(s=["reject",c],t.error!==void 0){o=!1;let d=typeof t.error=="function"?await t.error(c):t.error,u=typeof t.description=="function"?await t.description(c):t.description;this.create({id:n,type:"error",message:d,description:u})}}).finally(()=>{var c;o&&(this.dismiss(n),n=void 0),(c=t.finally)==null||c.call(t)}),l=()=>new Promise((c,d)=>i.then(()=>s[0]==="reject"?d(s[1]):c(s[1])).catch(d));return typeof n!="string"&&typeof n!="number"?{unwrap:l}:Object.assign(n,{unwrap:l})},this.custom=(e,t)=>{let n=(t==null?void 0:t.id)||Yd++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},tt=new _3,O3=(e,t)=>{let n=(t==null?void 0:t.id)||Yd++;return tt.addToast({title:e,...t,id:n}),n},L3=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",z3=O3,M3=()=>tt.toasts,F3=()=>tt.getActiveToasts();Object.assign(z3,{success:tt.success,info:tt.info,warning:tt.warning,error:tt.error,custom:tt.custom,message:tt.message,promise:tt.promise,dismiss:tt.dismiss,loading:tt.loading},{getHistory:M3,getToasts:F3});function q3(e,{insertAt:t}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css",t==="top"&&n.firstChild?n.insertBefore(a,n.firstChild):n.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}q3(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
370left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
370:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
370--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
371`);function Qs(e){return e.label!==void 0}var B3=3,V3="32px",$3="16px",Fh=4e3,H3=356,W3=14,U3=20,K3=200;function At(...e){return e.filter(Boolean).join(" ")}function G3(e){let[t,n]=e.split("-"),a=[];return t&&a.push(t),n&&a.push(n),a}var Q3=e=>{var t,n,a,o,s,i,l,c,d,u,p;let{invert:h,toast:m,unstyled:y,interacting:g,setHeights:w,visibleToasts:b,heights:v,index:x,toasts:k,expanded:j,removeToast:T,defaultRichColors:N,closeButton:D,style:C,cancelButtonStyle:E,actionButtonStyle:H,className:_="",descriptionClassName:z="",duration:A,position:W,gap:F,loadingIcon:K,expandByDefault:S,classNames:I,icons:M,closeButtonAriaLabel:U="Close toast",pauseWhenPageIsHidden:$}=e,[X,re]=R.useState(null),[xe,Be]=R.useState(null),[le,Wa]=R.useState(!1),[En,ga]=R.useState(!1),[In,Ua]=R.use
vendor: 4,321 bytes, line 371
371State(!1),[An,Ds]=R.useState(!1),[Yl,Cs]=R.useState(!1),[Zl,ro]=R.useState(0),[Ka,um]=R.useState(0),oo=R.useRef(m.duration||A||Fh),pm=R.useRef(null),va=R.useRef(null),T2=x===0,N2=x+1<=b,gt=m.type,Ga=m.dismissible!==!1,D2=m.className||"",C2=m.descriptionClassName||"",Ss=R.useMemo(()=>v.findIndex(J=>J.toastId===m.id)||0,[v,m.id]),S2=R.useMemo(()=>{var J;return(J=m.closeButton)!=null?J:D},[m.closeButton,D]),mm=R.useMemo(()=>m.duration||A||Fh,[m.duration,A]),Xl=R.useRef(0),Qa=R.useRef(0),hm=R.useRef(0),Ya=R.useRef(null),[P2,E2]=W.split("-"),fm=R.useMemo(()=>v.reduce((J,de,ve)=>ve>=Ss?J:J+de.height,0),[v,Ss]),gm=R3(),I2=m.invert||h,Jl=gt==="loading";Qa.current=R.useMemo(()=>Ss*F+fm,[Ss,fm]),R.useEffect(()=>{oo.current=mm},[mm]),R.useEffect(()=>{Wa(!0)},[]),R.useEffect(()=>{let J=va.current;if(J){let de=J.getBoundingClientRect().height;return um(de),w(ve=>[{toastId:m.id,height:de,position:m.position},...ve]),()=>w(ve=>ve.filter(St=>St.toastId!==m.id))}},[w,m.id]),R.useLayoutEffect(()=>{if(!le)return;let J=va.current,de=J.style.height;J.style.height="auto";let ve=J.getBoundingClientRect().height;J.style.height=de,um(ve),w(St=>St.find(Pt=>Pt.toastId===m.id)?St.map(Pt=>Pt.toastId===m.id?{...Pt,height:ve}:Pt):[{toastId:m.id,height:ve,position:m.position},...St])},[le,m.title,m.description,w,m.id]);let Rn=R.useCallback(()=>{ga(!0),ro(Qa.current),w(J=>J.filter(de=>de.toastId!==m.id)),setTimeout(()=>{T(m)},K3)},[m,T,w,Qa]);R.useEffect(()=>{if(m.promise&&gt==="loading"||m.duration===1/0||m.type==="loading")return;let J;return j||g||$&&gm?(()=>{if(hm.current<Xl.current){let de=new Date().getTime()-Xl.current;oo.current=oo.current-de}hm.current=new Date().getTime()})():oo.current!==1/0&&(Xl.current=new Date().getTime(),J=setTimeout(()=>{var de;(de=m.onAutoClose)==null||de.call(m,m),Rn()},oo.current)),()=>clearTimeout(J)},[j,g,m,gt,$,gm,Rn]),R.useEffect(()=>{m.delete&&Rn()},[Rn,m.delete]);function A2(){var J,de,ve;return M!=null&&M.loading?R.createElement("div",{className:At(I==null?void 0:I.loader,(J=m==null?void 0:m.classNames)==null?void 0:J.loader,"sonner-loader"),"data-visible":gt==="loading"},M.loading):K?R.createElement("div",{className:At(I==null?void 0:I.loader,(de=m==null?void 0:m.classNames)==null?void 0:de.loader,"sonner-loader"),"data-visible":gt==="loading"},K):R.createElement(C3,{className:At(I==null?void 0:I.loader,(ve=m==null?void 0:m.classNames)==null?void 0:ve.loader),visible:gt==="loading"})}return R.createElement("li",{tabIndex:0,ref:va,className:At(_,D2,I==null?void 0:I.toast,(t=m==null?void 0:m.classNames)==null?void 0:t.toast,I==null?void 0:I.default,I==null?void 0:I[gt],(n=m==null?void 0:m.classNames)==null?void 0:n[gt]),"data-sonner-toast":"","data-rich-colors":(a=m.richColors)!=null?a:N,"data-styled":!(m.jsx||m.unstyled||y),"data-mounted":le,"data-promise":!!m.promise,"data-swiped":Yl,"data-removed":En,"data-visible":N2,"data-y-position":P2,"data-x-position":E2,"data-index":x,"data-front":T2,"data-swiping":In,"data-dismissible":Ga,"data-type":gt,"data-invert":I2,"data-swipe-out":An,"data-swipe-direction":xe,"data-expanded":!!(j||S&&le),style:{"--index":x,"--toasts-before":x,"--z-index":k.length-x,"--offset":`${En?Zl:Qa.current}px`,"--initial-height":S?"auto":`${Ka}px`,...C,...m.style},onDragEnd:()=>{Ua(!1),re(null),Ya.current=null},onPointerDown:J=>{Jl||!Ga||(pm.current=new Date,ro(Qa.current),J.target.setPointerCapture(J.pointerId),J.target.tagName!=="BUTTON"&&(Ua(!0),Ya.current={x:J.clientX,y:J.clientY}))},onPointerUp:()=>{var J,de,ve,St;if(An||!Ga)return;Ya.current=null;let Pt=Number(((J=va.current)==null?void 0:J.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),_n=Number(((de=va.current)==null?void 0:de.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),ba=new Date().getTime()-((ve=pm.current)==null?void 0:ve.getTime()),Et=X==="x"?Pt:_n,On=Math.abs(Et)/ba;if(Math.abs(Et)>=U3||On>.11){ro(Qa.current),(St=m.onDismiss)==null||St.call(m,m),Be(X==="x"?Pt>0?"right":"left":_n>0?"down":"up"),Rn(),Ds(!0),Cs(!1);return}Ua(!1),re(null)},onPointerMove:J=>{var de,ve,St,Pt;if(!Ya.current||!Ga||((de=window.getSelection())==null?void 0:de.toString().length)>0)return;let _n=J.clientY-Ya.current.y,ba=J.clientX-Ya.current.x,Et=(ve=e.swipeDirections)!=null?ve:G3(W);!X&&(Math.abs(ba)>1||Math.abs(_n)>1)&&re(Math.abs(ba)>
371Math.abs(_n)?"x":"y");let On={x:0,y:0};X==="y"?(Et.includes("top")||Et.includes("bottom"))&&(Et.includes("top")&&_n<0||Et.includes("bottom")&&_n>0)&&(On.y=_n):X==="x"&&(Et.includes("left")||Et.includes("right"))&&(Et.includes("left")&&ba<0||Et.includes("right")&&ba>0)&&(On.x=ba),(Math.abs(On.x)>0||Math.abs(On.y)>0)&&Cs(!0),(St=va.current)==null||St.style.setProperty("--swipe-amount-x",`${On.x}px`),(Pt=va.current)==null||Pt.style.setProperty("--swipe-amount-y",`${On.y}px`)}},S2&&!m.jsx?R.createElement("button",{"aria-label":U,"data-disabled":Jl,"data-close-button":!0,onClick:Jl||!Ga?()=>{}:()=>{var J;Rn(),(J=m.onDismiss)==null||J.call(m,m)},className:At(I==null?void 0:I.closeButton,(o=m==null?void 0:m.classNames)==null?void 0:o.closeButton)},(s=M==null?void 0:M.close)!=null?s:A3):null,m.jsx||f.isValidElement(m.title)?m.jsx?m.jsx:typeof m.title=="function"?m.title():m.title:R.createElement(R.Fragment,null,gt||m.icon||m.promise?R.createElement("div",{"data-icon":"",className:At(I==null?void 0:I.icon,(i=m==null?void 0:m.classNames)==null?void 0:i.icon)},m.promise||m.type==="loading"&&!m.icon?m.icon||A2():null,m.type!=="loading"?m.
371icon||(M==null?void 0:M[gt])||N3(gt):null):null,R.createElement("div",{"data-content":"",className:At(I==null?void 0:I.content,(l=m==null?void 0:m.classNames)==null?void 0:l.content)},R.createElement("div",{"data-title":"",className:At(I==null?void 0:I.title,(c=m==null?void 0:m.classNames)==null?void 0:c.title)},typeof m.title=="function"?m.title():m.title),m.description?R.createElement("div",{"data-description":"",className:At(z,C2,I==null?void 0:I.description,(d=m==null?void 0:m.classNames)==null?void 0:d.description)},typeof m.description=="function"?m.description():m.description):null),f.isValidElement(m.cancel)?m.cancel:m.cancel&&Qs(m.cancel)?R.createElement("button",{"data-button":!0,"data-cancel":!0,style:m.cancelButtonStyle||E,onClick:J=>{var de,ve;Qs(m.cancel)&&Ga&&((ve=(de=m.cancel).onClick)==null||ve.call(de,J),Rn())},className:At(I==null?void 0:I.cancelButton,(u=m==null?void 0:m.classNames)==null?void 0:u.cancelButton)},m.cancel.label):null,f.isValidElement(m.action)?m.action:m.action&&Qs(m.action)?R.createElement("button",{"data-button":!0,"data-action":!0,style:m.actionButtonStyle||H,onClick:J=>{var de,ve;Qs(m.action)&&((ve=(de=m.action).onClick)==null||ve.call(de,J),!J.defaultPrevented&&Rn())},className:At(I==null?void 0:I.actionButton,(p=m==null?void 0:m.classNames)==null?void 0:p.actionButton)},m.action.label):null))};function qh(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function Y3(e,t){let n={};return[e,t].forEach((a,o)=>{let s=o===1,i=s?"--mobile-offset":"--offset",l=s?$3:V3;function c(d){["top","right","bottom","left"].forEach(u=>{n[`${i}-${u}`]=typeof d=="number"?`${d}px`:d})}typeof a=="number"||typeof a=="string"?c(a):typeof a=="object"?["top","right","bottom","left"].forEach(d=>{a[d]===void 0?n[`${i}-${d}`]=l:n[`${i}-${d}`]=typeof a[d]=="number"?`${a[d]}px`:a[d]}):c(l)}),n}var Z3=f.forwardRef(function(e,t){let{invert:n,position:a="bottom-right",hotkey:o=["altKey","KeyT"],expand:s,closeButton:i,className:l,offset:c,mobileOffset:d,theme:u="light",richColors:p,duration:h,style:m,visibleToasts:y=B3,toastOptions:g,dir:w=qh(),gap:b=W3,loadingIcon:v,icons:x,containerAriaLabel:k="Notifications",pauseWhenPageIsHidden:j}=e,[T,N]=R.useState([]),D=R.useMemo(()=>Array.from(new Set([a].concat(T.filter($=>$.position).map($=>$.position)))),[T,a]),[C,E]=R.useState([]),[H,_]=R.useState(!1),[z,A]=R.useState(!1),[W,F]=R.useState(u!=="system"?u:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),K=R.useRef(null),S=o.join("+").replace(/Key/g,"").replace(/Digit/g,""),I=R.useRef(null),M=R.useRef(!1),U=R.useCallback($=>{N(X=>{var re;return(re=X.find(xe=>xe.id===$.id))!=null&&re.delete||tt.dismiss($.id),X.filter(({id:xe})=>xe!==$.id)})},[]);return R.useEffect(()=>tt.subscribe($=>{if($.dismiss){N(X=>X.map(re=>re.id===$.id?{...re,delete:!0}:re));return}setTimeout(()=>{vp.flushSync(()=>{N(X=>{let re=X.findIndex(xe=>xe.id===$.id);return re!==-1?[...X.slice(0,re),{...X[re],...$},...X.slice(re+1)]:[$,...X]})})})}),[]),R.useEffect(()=>{if(u!=="system"){F(u);return}if(u==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?F("dark"):F("light")),typeof window>"u")return;let $=window.matchMedia("(prefers-color-scheme: dark)");try{$.addEventListener("change",({matches:X})=>{F(X?"dark":"light")})}catch{$.addListener(({matches:re})=>{try{F(re?"dark":"light")}catch(xe){console.error(xe)}})}},[u]),R.useEffect(()=>{T.length<=1&&_(!1)},[T]),R.useEffect(()=>{let $=X=>{var re,xe;o.every(Be=>X[Be]||X.code===Be)&&(_(!0),(re=K.current)==null||re.focus()),X.code==="Escape"&&(document.activeElement===K.current||(xe=K.current)!=null&&xe.contains(document.activeElement))&&_(!1)};return document.addEventListener("keydown",$),()=>document.removeEventListener("keydown",$)},[o]),R.useEffect(()=>{if(K.current)return()=>{I.current&&(I.current.focus({preventScroll:!0}),I.current=null,M.current=!1)}},[K.current]),R.createElement("section",{ref:t,"aria-label":`${k} ${S}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},D.map(($,X)=>{var re;let[xe,Be]=$.split("-");return T.length?R.createElement("ol",{key:$,dir:w==="auto"?qh():w,tabIndex:-1,ref:K,className:l,"data-sonner-toaster":!0,"data-theme":W,"data-y-position":xe,"data-lifted":H&&T.length>1&&!s,"data-x-position":Be,style:{"--front-toast-height":`${((re=C[0])==null?void 0:re.height)||0}px`,"--width":`${H3}px`,"--gap":`${b}px`,...m,...Y3(c,d)},onBlur:le=>{M.current&&!le.currentTarget.contains(le.relatedTarget)&&(M.current=!1,I.current&&(I.current.focus({preventScroll:!0}),I.current=null))},onFocus:le=>{le.target instanceof HTMLElement&&le.target.dataset.dismissible==="false"||M.current||(M.current=!0,I.current=le.relatedTarget)},onMouseEnter:()=>_(!0),onMouseMove:()=>_(!0),onMouseLeave:()=>{z||_(!1)},onDragEnd:()=>_(!1),onPointerDown:le=>{le.target instanceof HTMLElement&&le.target.dataset.dismissible==="false"||A(!0)},onPointerUp:()=>A(!1)},T.filter(le=>!le.position&&X===0||le.position===$).map((le,Wa)=>{var En,ga;return R.createElement(Q3,{key:le.id,icons:x,index:Wa,toast:le,defaultRichColors:p,duration:(En=g==null?void 0:g.duration)!=null?En:h,className:g==null?void 0:g.className,descriptionClassName:g==null?void 0:g.descriptionClassName,invert:n,visibleToasts:y,closeButton:(ga=g==null?void 0:g.closeButton)!=null?ga:i,interacting:z,position:$,style:g==null?void 0:g.style,unstyled:g==null?void 0:g.unstyled,classNames:g==null?void 0:g.classNames,cancelButtonStyle:g==null?void 0:g.cancelButtonStyle,actionButtonStyle:g==null?void 0:g.actionButtonStyle,removeToast:U,toasts:T.filter(In=>In.position==le.position),heights:C.filter(In=>In.position==le.position),setHeights:E,expandByDefault:s,gap:b,loadingIcon:v,expanded:H,pauseWhenPageIsHidden:j,swipeDirections:e.swipeDirections})})):null}))});const X3=({...e})=>{const{theme:t="system"}=T3();return r.jsx(Z3,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})};var J3=Du[" useId ".trim().toString()]||(()=>{}),eT=0;function xn(e){const[t,n]=f.useState(J3());return mt(()=>{e||n(a=>a??String(eT++))},[e]),e||(t?`radix-${t}`:"")}const tT=["top","right","bottom","left"],da=Math.min,lt=Math.max,nl=Math.round,Ys=Math.floor,rn=e=>({x:e,y:e}
vendor: 11,921 bytes, line 371
371),nT={left:"right",right:"left",bottom:"top",top:"bottom"},aT={start:"end",end:"start"};function Zd(e,t,n){return lt(e,da(t,n))}function Tn(e,t){return typeof e=="function"?e(t):e}function Nn(e){return e.split("-")[0]}function eo(e){return e.split("-")[1]}function Ep(e){return e==="x"?"y":"x"}function Ip(e){return e==="y"?"height":"width"}const rT=new Set(["top","bottom"]);function en(e){return rT.has(Nn(e))?"y":"x"}function Ap(e){return Ep(en(e))}function oT(e,t,n){n===void 0&&(n=!1);const a=eo(e),o=Ap(e),s=Ip(o);let i=o==="x"?a===(n?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(i=al(i)),[i,al(i)]}function sT(e){const t=al(e);return[Xd(e),t,Xd(t)]}function Xd(e){return e.replace(/start|end/g,t=>aT[t])}const Bh=["left","right"],Vh=["right","left"],iT=["top","bottom"],lT=["bottom","top"];function cT(e,t,n){switch(e){case"top":case"bottom":return n?t?Vh:Bh:t?Bh:Vh;case"left":case"right":return t?iT:lT;default:return[]}}function dT(e,t,n,a){const o=eo(e);let s=cT(Nn(e),n==="start",a);return o&&(s=s.map(i=>i+"-"+o),t&&(s=s.concat(s.map(Xd)))),s}function al(e){return e.replace(/left|right|bottom|top/g,t=>nT[t])}function uT(e){return{top:0,right:0,bottom:0,left:0,...e}}function gx(e){return typeof e!="number"?uT(e):{top:e,right:e,bottom:e,left:e}}function rl(e){const{x:t,y:n,width:a,height:o}=e;return{width:a,height:o,top:n,left:t,right:t+a,bottom:n+o,x:t,y:n}}function $h(e,t,n){let{reference:a,floating:o}=e;const s=en(t),i=Ap(t),l=Ip(i),c=Nn(t),d=s==="y",u=a.x+a.width/2-o.width/2,p=a.y+a.height/2-o.height/2,h=a[l]/2-o[l]/2;let m;switch(c){case"top":m={x:u,y:a.y-o.height};break;case"bottom":m={x:u,y:a.y+a.height};break;case"right":m={x:a.x+a.width,y:p};break;case"left":m={x:a.x-o.width,y:p};break;default:m={x:a.x,y:a.y}}switch(eo(t)){case"start":m[i]-=h*(n&&d?-1:1);break;case"end":m[i]+=h*(n&&d?-1:1);break}return m}const pT=async(e,t,n)=>{const{placement:a="bottom",strategy:o="absolute",middleware:s=[],platform:i}=n,l=s.filter(Boolean),c=await(i.isRTL==null?void 0:i.isRTL(t));let d=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:u,y:p}=$h(d,a,c),h=a,m={},y=0;for(let g=0;g<l.length;g++){const{name:w,fn:b}=l[g],{x:v,y:x,data:k,reset:j}=await b({x:u,y:p,initialPlacement:a,placement:h,strategy:o,middlewareData:m,rects:d,platform:i,elements:{reference:e,floating:t}});u=v??u,p=x??p,m={...m,[w]:{...m[w],...k}},j&&y<=50&&(y++,typeof j=="object"&&(j.placement&&(h=j.placement),j.rects&&(d=j.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:o}):j.rects),{x:u,y:p}=$h(d,h,c)),g=-1)}return{x:u,y:p,placement:h,strategy:o,middlewareData:m}};async function as(e,t){var n;t===void 0&&(t={});const{x:a,y:o,platform:s,rects:i,elements:l,strategy:c}=e,{boundary:d="clippingAncestors",rootBoundary:u="viewport",elementContext:p="floating",altBoundary:h=!1,padding:m=0}=Tn(t,e),y=gx(m),w=l[h?p==="floating"?"reference":"floating":p],b=rl(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(w)))==null||n?w:w.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:d,rootBoundary:u,strategy:c})),v=p==="floating"?{x:a,y:o,width:i.floating.width,height:i.floating.height}:i.reference,x=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),k=await(s.isElement==null?void 0:s.isElement(x))?await(s.getScale==null?void 0:s.getScale(x))||{x:1,y:1}:{x:1,y:1},j=rl(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:v,offsetParent:x,strategy:c}):v);return{top:(b.top-j.top+y.top)/k.y,bottom:(j.bottom-b.bottom+y.bottom)/k.y,left:(b.left-j.left+y.left)/k.x,right:(j.right-b.right+y.right)/k.x}}const mT=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:a,placement:o,rects:s,platform:i,elements:l,middlewareData:c}=t,{element:d,padding:u=0}=Tn(e,t)||{};if(d==null)return{};const p=gx(u),h={x:n,y:a},m=Ap(o),y=Ip(m),g=await i.getDimensions(d),w=m==="y",b=w?"top":"left",v=w?"bottom":"right",x=w?"clientHeight":"clientWidth",k=s.reference[y]+s.reference[m]-h[m]-s.floating[y],j=h[m]-s.reference[m],T=await(i.getOffsetParent==null?void 0:i.getOffsetParent(d));let N=T?T[x]:0;(!N||!await(i.isElement==null?void 0:i.isElement(T)))&&(N=l.floating[x]||s.floating[y]);const D=k/2-j/2,C=N/2-g[y]/2-1,E=da(p[b],C),H=da(p[v],C),_=E,z=N-g[y]-H,A=N/2-g[y]/2+D,W=Zd(_,A,z),F=!c.arrow&&eo(o)!=null&&A!==W&&s.reference[y]/2-(A<_?E:H)-g[y]/2<0,K=F?A<_?A-_:A-z:0;return{[m]:h[m]+K,data:{[m]:W,centerOffset:A-W-K,...F&&{alignmentOffset:K}},reset:F}}}),hT=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,a;const{placement:o,middlewareData:s,rects:i,initialPlacement:l,platform:c,elements:d}=t,{mainAxis:u=!0,crossAxis:p=!0,fallbackPlacements:h,fallbackStrategy:m="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:g=!0,...w}=Tn(e,t);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const b=Nn(o),v=en(l),x=Nn(l)===l,k=await(c.isRTL==null?void 0:c.isRTL(d.floating)),j=h||(x||!g?[al(l)]:sT(l)),T=y!=="none";!h&&T&&j.push(...dT(l,g,y,k));const N=[l,...j],D=await as(t,w),C=[];let E=((a=s.flip)==null?void 0:a.overflows)||[];if(u&&C.push(D[b]),p){const A=oT(o,i,k);C.push(D[A[0]],D[A[1]])}if(E=[...E,{placement:o,overflows:C}],!C.every(A=>A<=0)){var H,_;const A=(((H=s.flip)==null?void 0:H.index)||0)+1,W=N[A];if(W&&(!(p==="alignment"?v!==en(W):!1)||E.every(S=>S.overflows[0]>0&&en(S.placement)===v)))return{data:{index:A,overflows:E},reset:{placement:W}};let F=(_=E.filter(K=>K.overflows[0]<=0).sort((K,S)=>K.overflows[1]-S.overflows[1])[0])==null?void 0:_.placement;if(!F)switch(m){case"bestFit":{var z;const K=(z=E.filter(S=>{if(T){const I=en(S.placement);return I===v||I==="y"}return!0}).map(S=>[S.placement,S.overflows.filter(I=>I>0).reduce((I,M)=>I+M,0)]).sort((S,I)=>S[1]-I[1])[0])==null?void 0:z[0];K&&(F=K);break}case"initialPlacement":F=l;break}if(o!==F)return{reset:{placement:F}}}return{}}}};function Hh(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Wh(e){return tT.some(t=>e[t]>=0)}const fT=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:a="referenceHidden",...o}=Tn(e,t);switch(a){case"referenceHidden":{const s=await as(t,{...o,elementContext:"reference"}),i=Hh(s,n.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:Wh(i)}}}case"escaped":{const s=await as(t,{...o,altBoundary:!0}),i=Hh(s,n.floating);return{data:{escapedOffsets:i,escaped:Wh(i)}}}default:return{}}}}},vx=new Set(["left","top"]);async function gT(e,t){const{placement:n,platform:a,elements:o}=e,s=await(a.isRTL==null?void 0:a.isRTL(o.floating)),i=Nn(n),l=eo(n),c=en(n)==="y",d=vx.has(i)?-1:1,u=s&&c?-1:1,p=Tn(t,e);let{mainAxis:h,crossAxis:m,alignmentAxis:y}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return l&&typeof y=="number"&&(m=l==="end"?y*-1:y),c?{x:m*u,y:h*d}:{x:h*d,y:m*u}}const vT=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,a;const{x:o,y:s,placement:i,middlewareData:l}=t,c=await gT(t,e);return i===((n=l.offset)==null?void 0:n.placement)&&(a=l.arrow)!=null&&a.alignmentOffset?{}:{x:o+c.x,y:s+c.y,data:{...c,placement:i}}}}},bT=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:a,placement:o}=t,{mainAxis:s=!0,crossAxis:i=!1,limiter:l={fn:w=>{let{x:b,y:v}=w;return{x:b,y:v}}},...c}=Tn(e,t),d={x:n,y:a},u=await as(t,c),p=en(Nn(o)),h=Ep(p);let m=d[h],y=d[p];if(s){const w=h==="y"?"top":"left",b=h==="y"?"bottom":"right",v=m+u[w],x=m-u[b];m=Zd(v,m,x)}if(i){const w=p==="y"?"top":"left",b=p==="y"?"bottom":"right",v=y+u[w],x=y-u[b];y=Zd(v,y,x)}const g=l.fn({...t,[h]:m,[p]:y});return{...g,data:{x:g.x-n,y:g.y-a,enabled:{[h]:s,[p]:i}}}}}},xT=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:a,placement:o,rects:s,middlewareData:i}=t,{offset:l=0,mainAxis:c=!0,crossAxis:d=!0}=Tn(e,t),u={x:n,y:a},p=en(o),h=Ep(p);let m=u[h],y=u[p];const g=Tn(l,t),w=typeof g=="number"?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(c){const x=h==="y"?"height":"width",k=s.reference[h]-s.floating[x]+w.mainAxis,j=s.reference[h]+s.reference[x]-w.mainAxis;m<k?m=k:m>j&&(m=j)}if(d){var b,v;const x=h==="y"?"width":"height",k=vx.has(Nn(o)),j=s.reference[p]-s.floating[x]+(k&&((b=i.offset)==null?void 0:b[p])||0)+(k?0:w.crossAxis),T=s.reference[p]+s.reference[x]+(k?0:((v=i.offset)==null?void 0:v[p])||0)-(k?w.crossAxis:0);y<j?y=j:y>T&&(y=T)}return{[h]:m,[p]:y}}}},yT=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,a;const{placement:o,rects:s,platform:i,elements:l}=t,{apply:c=()=>{},...d}=Tn(e,t),u=await as(t,d),p=Nn(o),h=eo(o),m=en(o)==="y",{width:y,height:g}=s.floating;let w,b;p==="top"||p==="bottom"?(w=p,b=h===(await(i.isRTL==null?void 0:i.isRTL(l.floating))?"start":"end")?"left":"right"):(b=p,w=h==="end"?"top":"bottom");const v=g-u.top-u.bottom,x=y-u.left-u.right,k=da(g-u[w],v),j=da(y-u[b],x),T=!t.middlewareData.shift;let N=k,D=j;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(D=x),(a=t.middlewareData.shift)!=null&&a.enabled.y&&(N=v),T&&!h){const E=lt(u.left,0),H=lt(u.right,0),_=lt(u.top,0),z=lt(u.bottom,0);m?D=y-2*(E!==0||H!==0?E+H:lt(u.left,u.right)):N=g-2*(_!==0||z!==0?_+z:lt(u.top,u.bottom))}await c({...t,availableWidth:D,availableHeight:N});const C=await i.getDimensions(l.floating);return y!==C.width||g!==C.height?{reset:{rects:!0}}:{}}}};function _l(){return typeof window<"u"}function to(e){return bx(e)?(e.nodeName||"").toLowerCase():"#document"}function ut(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function cn(e){var t;return(t=(bx(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function bx(e){return _l()?e instanceof Node||e instanceof ut(e).Node:!1}function $t(e){return _l()?e instanceof Element||e instanceof ut(e).Element:!1}function sn(e){return _l()?e instanceof HTMLElement||e instanceof ut(e).HTMLElement:!1}function Uh(e){return!_l()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ut(e).ShadowRoot}const wT=new Set(["inline","contents"]);function Ts(e){const{overflow:t,overflowX:n,overflowY:a,display:o}=Ht(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+n)&&!wT.has(o)}const kT=new Set(["table","td","th"]);function jT(e){return kT.has(to(e))}const TT=[":popover-open",":modal"];function Ol(e){return TT.some(t=>{try{return e.matches(t)}catch{return!1}})}const NT=["transform","translate","scale","rotate","perspective"],DT=["transform","translate","scale","rotate","perspective","filter"],CT=["paint","layout","strict","content"];function Rp(e){const t=_p(),n=$t(e)?Ht(e):e;return NT.some(a=>n[a]?n[a]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||DT.some(a=>(n.willChange||"").includes(a))||CT.some(a=>(n.contain||"").includes(a))}function ST(e){let t=ua(e);for(;sn(t)&&!Wr(t);){if(Rp(t))return t;if(Ol(t))return null;t=ua(t)}return null}function _p(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const PT=new Set(["html","body","#document"]);function Wr(e){return PT.has(to(e))}function Ht(e){return ut(e).getComputedStyle(e)}function Ll(e){return $t(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function ua(e){if(to(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Uh(e)&&e.host||cn(e);return Uh(t)?t.host:t}function xx(e){const t=ua(e);return Wr(t)?e.ownerDocument?e.ownerDocument.body:e.body:sn(t)&&Ts(t)?t:xx(t)}function rs(e,t,n){var a;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=xx(e),s=o===((a=e.ownerDocument)==null?void 0:a.body),i=ut(o);if(s){const l=Jd(i);
vendor: 2,649 bytes, line 371
371return t.concat(i,i.visualViewport||[],Ts(o)?o:[],l&&n?rs(l):[])}return t.concat(o,rs(o,[],n))}function Jd(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function yx(e){const t=Ht(e);let n=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const o=sn(e),s=o?e.offsetWidth:n,i=o?e.offsetHeight:a,l=nl(n)!==s||nl(a)!==i;return l&&(n=s,a=i),{width:n,height:a,$:l}}function Op(e){return $t(e)?e:e.contextElement}function Nr(e){const t=Op(e);if(!sn(t))return rn(1);const n=t.getBoundingClientRect(),{width:a,height:o,$:s}=yx(t);let i=(s?nl(n.width):n.width)/a,l=(s?nl(n.height):n.height)/o;return(!i||!Number.isFinite(i))&&(i=1),(!l||!Number.isFinite(l))&&(l=1),{x:i,y:l}}const ET=rn(0);function wx(e){const t=ut(e);return!_p()||!t.visualViewport?ET:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function IT(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==ut(e)?!1:t}function Fa(e,t,n,a){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),s=Op(e);let i=rn(1);t&&(a?$t(a)&&(i=Nr(a)):i=Nr(e));const l=IT(s,n,a)?wx(s):rn(0);let c=(o.left+l.x)/i.x,d=(o.top+l.y)/i.y,u=o.width/i.x,p=o.height/i.y;if(s){const h=ut(s),m=a&&$t(a)?ut(a):a;let y=h,g=Jd(y);for(;g&&a&&m!==y;){const w=Nr(g),b=g.getBoundingClientRect(),v=Ht(g),x=b.left+(g.clientLeft+parseFloat(v.paddingLeft))*w.x,k=b.top+(g.clientTop+parseFloat(v.paddingTop))*w.y;c*=w.x,d*=w.y,u*=w.x,p*=w.y,c+=x,d+=k,y=ut(g),g=Jd(y)}}return rl({width:u,height:p,x:c,y:d})}function Lp(e,t){const n=Ll(e).scrollLeft;return t?t.left+n:Fa(cn(e)).left+n}function kx(e,t,n){n===void 0&&(n=!1);const a=e.getBoundingClientRect(),o=a.left+t.scrollLeft-(n?0:Lp(e,a)),s=a.top+t.scrollTop;return{x:o,y:s}}function AT(e){let{elements:t,rect:n,offsetParent:a,strategy:o}=e;const s=o==="fixed",i=cn(a),l=t?Ol(t.floating):!1;if(a===i||l&&s)return n;let c={scrollLeft:0,scrollTop:0},d=rn(1);const u=rn(0),p=sn(a);if((p||!p&&!s)&&((to(a)!=="body"||Ts(i))&&(c=Ll(a)),sn(a))){const m=Fa(a);d=Nr(a),u.x=m.x+a.clientLeft,u.y=m.y+a.clientTop}const h=i&&!p&&!s?kx(i,c,!0):rn(0);return{width:n.width*d.x,height:n.height*d.y,x:n.x*d.x-c.scrollLeft*d.x+u.x+h.x,y:n.y*d.y-c.scrollTop*d.y+u.y+h.y}}function RT(e){return Array.from(e.getClientRects())}function _T(e){const t=cn(e),n=Ll(e),a=e.ownerDocument.body,o=lt(t.scrollWidth,t.clientWidth,a.scrollWidth,a.clientWidth),s=lt(t.scrollHeight,t.clientHeight,a.scrollHeight,a.clientHeight);let i=-n.scrollLeft+Lp(e);const l=-n.scrollTop;return Ht(a).direction==="rtl"&&(i+=lt(t.clientWidth,a.clientWidth)-o),{width:o,height:s,x:i,y:l}}function OT(e,t){const n=ut(e),a=cn(e),o=n.visualViewport;let s=a.clientWidth,i=a.clientHeight,l=0,c=0;
vendor: 4,487 bytes, line 371
371if(o){s=o.width,i=o.height;const d=_p();(!d||d&&t==="fixed")&&(l=o.offsetLeft,c=o.offsetTop)}return{width:s,height:i,x:l,y:c}}const LT=new Set(["absolute","fixed"]);function zT(e,t){const n=Fa(e,!0,t==="fixed"),a=n.top+e.clientTop,o=n.left+e.clientLeft,s=sn(e)?Nr(e):rn(1),i=e.clientWidth*s.x,l=e.clientHeight*s.y,c=o*s.x,d=a*s.y;return{width:i,height:l,x:c,y:d}}function Kh(e,t,n){let a;if(t==="viewport")a=OT(e,n);else if(t==="document")a=_T(cn(e));else if($t(t))a=zT(t,n);else{const o=wx(e);a={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return rl(a)}function jx(e,t){const n=ua(e);return n===t||!$t(n)||Wr(n)?!1:Ht(n).position==="fixed"||jx(n,t)}function MT(e,t){const n=t.get(e);if(n)return n;let a=rs(e,[],!1).filter(l=>$t(l)&&to(l)!=="body"),o=null;const s=Ht(e).position==="fixed";let i=s?ua(e):e;for(;$t(i)&&!Wr(i);){const l=Ht(i),c=Rp(i);!c&&l.position==="fixed"&&(o=null),(s?!c&&!o:!c&&l.position==="static"&&!!o&&LT.has(o.position)||Ts(i)&&!c&&jx(e,i))?a=a.filter(u=>u!==i):o=l,i=ua(i)}return t.set(e,a),a}function FT(e){let{element:t,boundary:n,rootBoundary:a,strategy:o}=e;const i=[...n==="clippingAncestors"?Ol(t)?[]:MT(t,this._c):[].concat(n),a],l=i[0],c=i.reduce((d,u)=>{const p=Kh(t,u,o);return d.top=lt(p.top,d.top),d.right=da(p.right,d.right),d.bottom=da(p.bottom,d.bottom),d.left=lt(p.left,d.left),d},Kh(t,l,o));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function qT(e){const{width:t,height:n}=yx(e);return{width:t,height:n}}function BT(e,t,n){const a=sn(t),o=cn(t),s=n==="fixed",i=Fa(e,!0,s,t);let l={scrollLeft:0,scrollTop:0};const c=rn(0);function d(){c.x=Lp(o)}if(a||!a&&!s)if((to(t)!=="body"||Ts(o))&&(l=Ll(t)),a){const m=Fa(t,!0,s,t);c.x=m.x+t.clientLeft,c.y=m.y+t.clientTop}else o&&d();s&&!a&&o&&d();const u=o&&!a&&!s?kx(o,l):rn(0),p=i.left+l.scrollLeft-c.x-u.x,h=i.top+l.scrollTop-c.y-u.y;return{x:p,y:h,width:i.width,height:i.height}}function Ic(e){return Ht(e).position==="static"}function Gh(e,t){if(!sn(e)||Ht(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return cn(e)===n&&(n=n.ownerDocument.body),n}function Tx(e,t){const n=ut(e);if(Ol(e))return n;if(!sn(e)){let o=ua(e);for(;o&&!Wr(o);){if($t(o)&&!Ic(o))return o;o=ua(o)}return n}let a=Gh(e,t);for(;a&&jT(a)&&Ic(a);)a=Gh(a,t);return a&&Wr(a)&&Ic(a)&&!Rp(a)?n:a||ST(e)||n}const VT=async function(e){const t=this.getOffsetParent||Tx,n=this.getDimensions,a=await n(e.floating);return{reference:BT(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function $T(e){return Ht(e).direction==="rtl"}const HT={convertOffsetParentRelativeRectToViewportRelativeRect:AT,getDocumentElement:cn,getClippingRect:FT,getOffsetParent:Tx,getElementRects:VT,getClientRects:RT,getDimensions:qT,getScale:Nr,isElement:$t,isRTL:$T};function Nx(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function WT(e,t){let n=null,a;const o=cn(e);function s(){var l;clearTimeout(a),(l=n)==null||l.disconnect(),n=null}function i(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),s();const d=e.getBoundingClientRect(),{left:u,top:p,width:h,height:m}=d;if(l||t(),!h||!m)return;const y=Ys(p),g=Ys(o.clientWidth-(u+h)),w=Ys(o.clientHeight-(p+m)),b=Ys(u),x={rootMargin:-y+"px "+-g+"px "+-w+"px "+-b+"px",threshold:lt(0,da(1,c))||1};let k=!0;function j(T){const N=T[0].intersectionRatio;if(N!==c){if(!k)return i();N?i(!1,N):a=setTimeout(()=>{i(!1,1e-7)},1e3)}N===1&&!Nx(d,e.getBoundingClientRect())&&i(),k=!1}try{n=new IntersectionObserver(j,{...x,root:o.ownerDocument})}catch{n=new IntersectionObserver(j,x)}n.observe(e)}return i(!0),s}function UT(e,t,n,a){a===void 0&&(a={});const{ancestorScroll:o=!0,ancestorResize:s=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=a,d=Op(e),u=o||s?[...d?rs(d):[],...rs(t)]:[];u.forEach(b=>{o&&b.addEventListener("scroll",n,{passive:!0}),s&&b.addEventListener("resize",n)});const p=d&&l?WT(d,n):null;let h=-1,m=null;i&&(m=new ResizeObserver(b=>{let[v]=b;v&&v.target===d&&m&&(m.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var x;(x=m)==null||x.observe(t)})),n()}),d&&!c&&m.observe(d),m.observe(t));let y,g=c?Fa(e):null;c&&w();function w(){const b=Fa(e);g&&!Nx(g,b)&&n(),g=b,y=requestAnimationFrame(w)}return n(),()=>{var b;u.forEach(v=>{o&&v.removeEventListener("scroll",n),s&&v.removeEventListener("resize",n)}),p==null||p(),(b=m)==null||b.disconnect(),m=null,c&&cancelAnimationFrame(y)}}
vendor: 4,250 bytes, line 371
371const KT=vT,GT=bT,QT=hT,YT=yT,ZT=fT,Qh=mT,XT=xT,JT=(e,t,n)=>{const a=new Map,o={platform:HT,...n},s={...o.platform,_c:a};return pT(e,t,{...o,platform:s})};var eN=typeof document<"u",tN=function(){},xi=eN?f.useLayoutEffect:tN;function ol(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,a,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(a=n;a--!==0;)if(!ol(e[a],t[a]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(a=n;a--!==0;)if(!{}.hasOwnProperty.call(t,o[a]))return!1;for(a=n;a--!==0;){const s=o[a];if(!(s==="_owner"&&e.$$typeof)&&!ol(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function Dx(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Yh(e,t){const n=Dx(e);return Math.round(t*n)/n}function Ac(e){const t=f.useRef(e);return xi(()=>{t.current=e}),t}function nN(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:a=[],platform:o,elements:{reference:s,floating:i}={},transform:l=!0,whileElementsMounted:c,open:d}=e,[u,p]=f.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[h,m]=f.useState(a);ol(h,a)||m(a);const[y,g]=f.useState(null),[w,b]=f.useState(null),v=f.useCallback(S=>{S!==T.current&&(T.current=S,g(S))},[]),x=f.useCallback(S=>{S!==N.current&&(N.current=S,b(S))},[]),k=s||y,j=i||w,T=f.useRef(null),N=f.useRef(null),D=f.useRef(u),C=c!=null,E=Ac(c),H=Ac(o),_=Ac(d),z=f.useCallback(()=>{if(!T.current||!N.current)return;const S={placement:t,strategy:n,middleware:h};H.current&&(S.platform=H.current),JT(T.current,N.current,S).then(I=>{const M={...I,isPositioned:_.current!==!1};A.current&&!ol(D.current,M)&&(D.current=M,bs.flushSync(()=>{p(M)}))})},[h,t,n,H,_]);xi(()=>{d===!1&&D.current.isPositioned&&(D.current.isPositioned=!1,p(S=>({...S,isPositioned:!1})))},[d]);const A=f.useRef(!1);xi(()=>(A.current=!0,()=>{A.current=!1}),[]),xi(()=>{if(k&&(T.current=k),j&&(N.current=j),k&&j){if(E.current)return E.current(k,j,z);z()}},[k,j,z,E,C]);const W=f.useMemo(()=>({reference:T,floating:N,setReference:v,setFloating:x}),[v,x]),F=f.useMemo(()=>({reference:k,floating:j}),[k,j]),K=f.useMemo(()=>{const S={position:n,left:0,top:0};if(!F.floating)return S;const I=Yh(F.floating,u.x),M=Yh(F.floating,u.y);return l?{...S,transform:"translate("+I+"px, "+M+"px)",...Dx(F.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:I,top:M}},[n,l,F.floating,u.x,u.y]);return f.useMemo(()=>({...u,update:z,refs:W,elements:F,floatingStyles:K}),[u,z,W,F,K])}const aN=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:a,padding:o}=typeof e=="function"?e(n):e;return a&&t(a)?a.current!=null?Qh({element:a.current,padding:o}).fn(n):{}:a?Qh({element:a,padding:o}).fn(n):{}}}},rN=(e,t)=>({...KT(e),options:[e,t]}),oN=(e,t)=>({...GT(e),options:[e,t]}),sN=(e,t)=>({...XT(e),options:[e,t]}),iN=(e,t)=>({...QT(e),options:[e,t]}),lN=(e,t)=>({...YT(e),options:[e,t]}),cN=(e,t)=>({...ZT(e),options:[e,t]}),dN=(e,t)=>({...aN(e),options:[e,t]});var uN="Arrow",Cx=f.forwardRef((e,t)=>{const{children:n,width:a=10,height:o=5,...s}=e;return r.jsx(ne.svg,{...s,ref:t,width:a,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:r.jsx("polygon",{points:"0,0 30,0 15,10"})})});Cx.displayName=uN;var pN=Cx;function mN(e){const[t,n]=f.useState(void 0);return mt(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const a=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const s=o[0];let i,l;if("borderBoxSize"in s){const c=s.borderBoxSize,d=Array.isArray(c)?c[0]:c;i=d.inlineSize,l=d.blockSize}else i=e.offsetWidth,l=e.offsetHeight;n({width:i,height:l})});return a.observe(e,{box:"border-box"}),()=>a.unobserve(e)}else n(void 0)},[e]),t}var Sx="Popper",[Px,Ex]=ln(Sx),[m6,Ix]=Px(Sx),Ax="PopperAnchor",Rx=f.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:a,...o}=e,s=Ix(Ax,n),i=f.useRef(null),l=je(t,i);return f.useEffect(()=>{s.onAnchorChange((a==null?void 0:a.current)||i.current)}),a?null:r.jsx(ne.div,{...o,ref:l})});Rx.displayName=Ax;var zp="PopperContent",[hN,fN]=Px(zp),_x=f.forwardRef((e,t)=>
vendor: 4,449 bytes, line 371
371{var le,Wa,En,ga,In,Ua;const{__scopePopper:n,side:a="bottom",sideOffset:o=0,align:s="center",alignOffset:i=0,arrowPadding:l=0,avoidCollisions:c=!0,collisionBoundary:d=[],collisionPadding:u=0,sticky:p="partial",hideWhenDetached:h=!1,updatePositionStrategy:m="optimized",onPlaced:y,...g}=e,w=Ix(zp,n),[b,v]=f.useState(null),x=je(t,An=>v(An)),[k,j]=f.useState(null),T=mN(k),N=(T==null?void 0:T.width)??0,D=(T==null?void 0:T.height)??0,C=a+(s!=="center"?"-"+s:""),E=typeof u=="number"?u:{top:0,right:0,bottom:0,left:0,...u},H=Array.isArray(d)?d:[d],_=H.length>0,z={padding:E,boundary:H.filter(vN),altBoundary:_},{refs:A,floatingStyles:W,placement:F,isPositioned:K,middlewareData:S}=nN({strategy:"fixed",placement:C,whileElementsMounted:(...An)=>UT(...An,{animationFrame:m==="always"}),elements:{reference:w.anchor},middleware:[rN({mainAxis:o+D,alignmentAxis:i}),c&&oN({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?sN():void 0,...z}),c&&iN({...z}),lN({...z,apply:({elements:An,rects:Ds,availableWidth:Yl,availableHeight:Cs})=>{const{width:Zl,height:ro}=Ds.reference,Ka=An.floating.style;Ka.setProperty("--radix-popper-available-width",`${Yl}px`),Ka.setProperty("--radix-popper-available-height",`${Cs}px`),Ka.setProperty("--radix-popper-anchor-width",`${Zl}px`),Ka.setProperty("--radix-popper-anchor-height",`${ro}px`)}}),k&&dN({element:k,padding:l}),bN({arrowWidth:N,arrowHeight:D}),h&&cN({strategy:"referenceHidden",...z})]}),[I,M]=zx(F),U=Oe(y);mt(()=>{K&&(U==null||U())},[K,U]);const $=(le=S.arrow)==null?void 0:le.x,X=(Wa=S.arrow)==null?void 0:Wa.y,re=((En=S.arrow)==null?void 0:En.centerOffset)!==0,[xe,Be]=f.useState();return mt(()=>{b&&Be(window.getComputedStyle(b).zIndex)},[b]),r.jsx("div",{ref:A.setFloating,"data-radix-popper-content-wrapper":"",style:{...W,transform:K?W.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:xe,"--radix-popper-transform-origin":[(ga=S.transformOrigin)==null?void 0:ga.x,(In=S.transformOrigin)==null?void 0:In.y].join(" "),...((Ua=S.hide)==null?void 0:Ua.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:r.jsx(hN,{scope:n,placedSide:I,onArrowChange:j,arrowX:$,arrowY:X,shouldHideArrow:re,children:r.jsx(ne.div,{"data-side":I,"data-align":M,...g,ref:x,style:{...g.style,animation:K?void 0:"none"}})})})});_x.displayName=zp;var Ox="PopperArrow",gN={top:"bottom",right:"left",bottom:"top",left:"right"},Lx=f.forwardRef(function(t,n){const{__scopePopper:a,...o}=t,s=fN(Ox,a),i=gN[s.placedSide];return r.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:r.jsx(pN,{...o,ref:n,style:{...o.style,display:"block"}})})});Lx.displayName=Ox;function vN(e){return e!==null}var bN=e=>({name:"transformOrigin",options:e,fn(t){var w,b,v;const{placement:n,rects:a,middlewareData:o}=t,i=((w=o.arrow)==null?void 0:w.centerOffset)!==0,l=i?0:e.arrowWidth,c=i?0:e.arrowHeight,[d,u]=zx(n),p={start:"0%",center:"50%",end:"100%"}[u],h=(((b=o.arrow)==null?void 0:b.x)??0)+l/2,m=(((v=o.arrow)==null?void 0:v.y)??0)+c/2;let y="",g="";return d==="bottom"?(y=i?p:`${h}px`,g=`${-c}px`):d==="top"?(y=i?p:`${h}px`,g=`${a.floating.height+c}px`):d==="right"?(y=`${-c}px`,g=i?p:`${m}px`):d==="left"&&(y=`${a.floating.width+c}px`,g=i?p:`${m}px`),{data:{x:y,y:g}}}});function zx(e){const[t,n="center"]=e.split("-");return[t,n]}var xN=Rx,yN=_x,wN=Lx,[zl,h6]=ln("Tooltip",[Ex]),Mp=Ex(),Mx="TooltipProvider",kN=700,Zh="tooltip.open",[jN,Fx]=zl(Mx),qx=e=>{const{__scopeTooltip:t,delayDuration:n=kN,skipDelayDuration:a=300,disableHoverableContent:o=!1,children:s}=e,i=f.useRef(!0),l=f.useRef(!1),c=f.useRef(0);return f.useEffect(()=>{const d=c.current;return()=>window.clearTimeout(d)},[]),r.jsx(jN,{scope:t,isOpenDelayedRef:i,delayDuration:n,onOpen:f.useCallback(()=>{window.clearTimeout(c.current),i.current=!1},[]),onClose:f.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>i.current=!0,a)},[a]),isPointerInTransitRef:l,onPointerInTransitChange:f.useCallback(d=>{l.current=d},[]),disableHoverableContent:o,children:s})};qx.displayName=Mx;var Bx="Tooltip",[f6,Ml]=zl(Bx),eu="TooltipTrigger",TN=f.forwardRef((e,t)=>
vendor: 4,239 bytes, line 371
371{const{__scopeTooltip:n,...a}=e,o=Ml(eu,n),s=Fx(eu,n),i=Mp(n),l=f.useRef(null),c=je(t,l,o.onTriggerChange),d=f.useRef(!1),u=f.useRef(!1),p=f.useCallback(()=>d.current=!1,[]);return f.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),r.jsx(xN,{asChild:!0,...i,children:r.jsx(ne.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...a,ref:c,onPointerMove:G(e.onPointerMove,h=>{h.pointerType!=="touch"&&!u.current&&!s.isPointerInTransitRef.current&&(o.onTriggerEnter(),u.current=!0)}),onPointerLeave:G(e.onPointerLeave,()=>{o.onTriggerLeave(),u.current=!1}),onPointerDown:G(e.onPointerDown,()=>{o.open&&o.onClose(),d.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:G(e.onFocus,()=>{d.current||o.onOpen()}),onBlur:G(e.onBlur,o.onClose),onClick:G(e.onClick,o.onClose)})})});TN.displayName=eu;var NN="TooltipPortal",[g6,DN]=zl(NN,{forceMount:void 0}),Ur="TooltipContent",Vx=f.forwardRef((e,t)=>{const n=DN(Ur,e.__scopeTooltip),{forceMount:a=n.forceMount,side:o="top",...s}=e,i=Ml(Ur,e.__scopeTooltip);return r.jsx(Dt,{present:a||i.open,children:i.disableHoverableContent?r.jsx($x,{side:o,...s,ref:t}):r.jsx(CN,{side:o,...s,ref:t})})}),CN=f.forwardRef((e,t)=>{const n=Ml(Ur,e.__scopeTooltip),a=Fx(Ur,e.__scopeTooltip),o=f.useRef(null),s=je(t,o),[i,l]=f.useState(null),{trigger:c,onClose:d}=n,u=o.current,{onPointerInTransitChange:p}=a,h=f.useCallback(()=>{l(null),p(!1)},[p]),m=f.useCallback((y,g)=>{const w=y.currentTarget,b={x:y.clientX,y:y.clientY},v=AN(b,w.getBoundingClientRect()),x=RN(b,v),k=_N(g.getBoundingClientRect()),j=LN([...x,...k]);l(j),p(!0)},[p]);return f.useEffect(()=>()=>h(),[h]),f.useEffect(()=>{if(c&&u){const y=w=>m(w,u),g=w=>m(w,c);return c.addEventListener("pointerleave",y),u.addEventListener("pointerleave",g),()=>{c.removeEventListener("pointerleave",y),u.removeEventListener("pointerleave",g)}}},[c,u,m,h]),f.useEffect(()=>{if(i){const y=g=>{const w=g.target,b={x:g.clientX,y:g.clientY},v=(c==null?void 0:c.contains(w))||(u==null?void 0:u.contains(w)),x=!ON(b,i);v?h():x&&(h(),d())};return document.addEventListener("pointermove",y),()=>document.removeEventListener("pointermove",y)}},[c,u,i,d,h]),r.jsx($x,{...e,ref:s})}),[SN,PN]=zl(Bx,{isInside:!1}),EN=vk("TooltipContent"),$x=f.forwardRef((e,t)=>{const{__scopeTooltip:n,children:a,"aria-label":o,onEscapeKeyDown:s,onPointerDownOutside:i,...l}=e,c=Ml(Ur,n),d=Mp(n),{onClose:u}=c;return f.useEffect(()=>(document.addEventListener(Zh,u),()=>document.removeEventListener(Zh,u)),[u]),f.useEffect(()=>{if(c.trigger){const p=h=>{const m=h.target;m!=null&&m.contains(c.trigger)&&u()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[c.trigger,u]),r.jsx(ys,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:p=>p.preventDefault(),onDismiss:u,children:r.jsxs(yN,{"data-state":c.stateAttribute,...d,...l,ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[r.jsx(EN,{children:a}),r.jsx(SN,{scope:n,isInside:!0,children:r.jsx(Db,{id:c.contentId,role:"tooltip",children:o||a})})]})})});Vx.displayName=Ur;var Hx="TooltipArrow",IN=f.forwardRef((e,t)=>{const{__scopeTooltip:n,...a}=e,o=Mp(n);return PN(Hx,n).isInside?null:r.jsx(wN,{...o,...a,ref:t})});IN.displayName=Hx;function AN(e,t){const n=Math.abs(t.top-e.y),a=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,a,o,s)){case s:return"left";case o:return"right";case n:return"top";case a:return"bottom";default:throw new Error("unreachable")}}function RN(e,t,n=5){const a=[];switch(t){case"top":a.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":a.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":a.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":a.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return a}
371function _N(e){const{top:t,right:n,bottom:a,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:a},{x:o,y:a}]}function ON(e,t){const{x:n,y:a}=e;let o=!1;for(let s=0,i=t.length-1;s<t.length;i=s++){const l=t[s],c=t[i],d=l.x,u=l.y,p=c.x,h=c.y;u>a!=h>a&&n<(p-d)*(a-u)/(h-u)+d&&(o=!o)}return o}function LN(e){const t=e.slice();return t.sort((n,a)=>n.x<a.x?-1:n.x>a.x?1:n.y<a.y?-1:n.y>a.y?1:0),zN(t)}function zN(e){if(e.length<=1)return e.slice();const t=[];for(let a=0;a<e.length;a++){const o=e[a];for(;t.length>=2;){const s=t[t.length-1],i=t[t.length-2];if((s.x-i.x)*(o.y-i.y)>=(s.y-i.y)*(o.x-i.x))t.pop();else break}t.push(o)}t.pop();const n=[];for(let a=e.length-1;a>=0;a--){const o=e[a];for(;n.length>=2;){const s=n[n.length-1],i=n[n.length-2];if((s.x-i.x)*(o.y-i.y)>=(s.y-i.y)*(o.x-i.x))n.pop();else break}n.push(o)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var MN=qx,Wx=Vx;const FN=MN,qN=f.forwardRef(({className:e,sideOffset:t=4,...n},a)=>r.jsx(Wx,{ref:a,sideOffset:t,className:pe("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...n}));qN.displayName=Wx.displayName;var Fl=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},ql=typeof window>"u"||"Deno"in globalThis;function _t(){}function BN(e,t){return typeof e=="function"?e(t):e}function VN(e){return typeof e=="number"&&e>=0&&e!==1/0}function $N(e,t){return Math.max(e+(t||0)-Date.now(),0)}function tu(e,t){return typeof e=="function"?e(t):e}function HN(e,t){return typeof e=="function"?e(t):e}function Xh(e,t){const{type:n="all",exact:a,fetchStatus:o,predicate:s,queryKey:i,stale:l}=e;if(i){if(a){if(t.queryHash!==Fp(i,t.options))return!1}else if(!ss(t.queryKey,i))return!1}if(n!=="all"){const c=t.isActive();if(n==="active"&&!c||n==="inactive"&&c)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||o&&o!==t.state.fetchStatus||s&&!s(t))}function Jh(e,t){const{exact:n,status:a,predicate:o,mutationKey:s}=e;if(s){if(!t.options.mutationKey)return!1;if(n){if(os(t.options.mutationKey)!==os(s))return!1}else if(!ss(t.options.mutationKey,s))return!1}return!(a&&t.state.status!==a||o&&!o(t))}function Fp(e,t){return((t==null?void 0:t.queryKeyHashFn)||os)(e)}function os(e){return JSON.stringify(e,(t,n)=>nu(n)?Object.keys(n).sort().reduce((a,o)=>(a[o]=n[o],a),{}):n)}function ss(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>ss(e[n],t[n])):!1}function Ux(e,t){if(e===t)return e;const n=ef(e)&&ef(t);if(n||nu(e)&&nu(t)){const a=n?e:Object.keys(e),o=a.length,s=n?t:Object.keys(t),i=s.length,l=n?[]:{},c=new Set(a);let d=0;for(let u=0;u<i;u++){const p=n?u:s[u];(!n&&c.has(p)||n)&&e[p]===void 0&&t[p]===void 0?(l[p]=void 0,d++):(l[p]=Ux(e[p],t[p]),l[p]===e[p]&&e[p]!==void 0&&d++)}return o===i&&d===o?e:l}return t}function ef(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function nu(e){if(!tf(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!tf(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function tf(e){return Object.prototype.toString.call(e)==="[object Object]"}function WN(e){return new Promise(t=>{setTimeout(t,e)})}function UN(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?Ux(e,t):t}function KN(e,t,n=0){const a=[...e,t];return n&&a.length>n?a.slice(1):a}function GN(e,t,n=0){const a=[t,...e];return n&&a.length>n?a.slice(0,-1):a}var qp=Symbol();function Kx(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===qp?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var Na,Wn,Pr,tg,QN=(tg=class extends Fl{constructor(){super();ie(this,Na);ie(this,Wn);ie(this,Pr);ee(this,Pr,t=>{if(!ql&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){P(this,Wn)||this.setEventListener(P(this,Pr))}onUnsubscribe(){var t;this.hasListeners()||((t=P(this,Wn))==null||t.call(this),ee(this,Wn,void 0))}setEventListener(t){var n;ee(this,Pr,t),(n=P(this,Wn))==null||n.call(this),ee(this,Wn,t(a=>{typeof a=="boolean"?this.setFocused(a):this.onFocus()}))}setFocused(t){P(this,Na)!==t&&(ee(this,Na,t),this.onFocus())}onFocus(){const t=this.isFocused();
vendor: 4,924 bytes, line 371
371this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof P(this,Na)=="boolean"?P(this,Na):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},Na=new WeakMap,Wn=new WeakMap,Pr=new WeakMap,tg),Gx=new QN,Er,Un,Ir,ng,YN=(ng=class extends Fl{constructor(){super();ie(this,Er,!0);ie(this,Un);ie(this,Ir);ee(this,Ir,t=>{if(!ql&&window.addEventListener){const n=()=>t(!0),a=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",a,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",a)}}})}onSubscribe(){P(this,Un)||this.setEventListener(P(this,Ir))}onUnsubscribe(){var t;this.hasListeners()||((t=P(this,Un))==null||t.call(this),ee(this,Un,void 0))}setEventListener(t){var n;ee(this,Ir,t),(n=P(this,Un))==null||n.call(this),ee(this,Un,t(this.setOnline.bind(this)))}setOnline(t){P(this,Er)!==t&&(ee(this,Er,t),this.listeners.forEach(a=>{a(t)}))}isOnline(){return P(this,Er)}},Er=new WeakMap,Un=new WeakMap,Ir=new WeakMap,ng),sl=new YN;function ZN(){let e,t;const n=new Promise((o,s)=>{e=o,t=s});n.status="pending",n.catch(()=>{});function a(o){Object.assign(n,o),delete n.resolve,delete n.reject}return n.resolve=o=>{a({status:"fulfilled",value:o}),e(o)},n.reject=o=>{a({status:"rejected",reason:o}),t(o)},n}function XN(e){return Math.min(1e3*2**e,3e4)}function Qx(e){return(e??"online")==="online"?sl.isOnline():!0}var Yx=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function Rc(e){return e instanceof Yx}function Zx(e){let t=!1,n=0,a=!1,o;const s=ZN(),i=g=>{var w;a||(h(new Yx(g)),(w=e.abort)==null||w.call(e))},l=()=>{t=!0},c=()=>{t=!1},d=()=>Gx.isFocused()&&(e.networkMode==="always"||sl.isOnline())&&e.canRun(),u=()=>Qx(e.networkMode)&&e.canRun(),p=g=>{var w;a||(a=!0,(w=e.onSuccess)==null||w.call(e,g),o==null||o(),s.resolve(g))},h=g=>{var w;a||(a=!0,(w=e.onError)==null||w.call(e,g),o==null||o(),s.reject(g))},m=()=>new Promise(g=>{var w;o=b=>{(a||d())&&g(b)},(w=e.onPause)==null||w.call(e)}).then(()=>{var g;o=void 0,a||(g=e.onContinue)==null||g.call(e)}),y=()=>{if(a)return;let g;const w=n===0?e.initialPromise:void 0;try{g=w??e.fn()}catch(b){g=Promise.reject(b)}Promise.resolve(g).then(p).catch(b=>{var T;if(a)return;const v=e.retry??(ql?0:3),x=e.retryDelay??XN,k=typeof x=="function"?x(n,b):x,j=v===!0||typeof v=="number"&&n<v||typeof v=="function"&&v(n,b);if(t||!j){h(b);return}n++,(T=e.onFail)==null||T.call(e,n,b),WN(k).then(()=>d()?void 0:m()).then(()=>{t?h(b):y()})})};return{promise:s,cancel:i,continue:()=>(o==null||o(),s),cancelRetry:l,continueRetry:c,canStart:u,start:()=>(u()?y():m().then(y),s)}}var JN=e=>setTimeout(e,0);function e4(){let e=[],t=0,n=l=>{l()},a=l=>{l()},o=JN;const s=l=>{t?e.push(l):o(()=>{n(l)})},i=()=>{const l=e;e=[],l.length&&o(()=>{a(()=>{l.forEach(c=>{n(c)})})})};return{batch:l=>{let c;t++;try{c=l()}finally{t--,t||i()}return c},batchCalls:l=>(...c)=>{s(()=>{l(...c)})},schedule:s,setNotifyFunction:l=>{n=l},setBatchNotifyFunction:l=>{a=l},setScheduler:l=>{o=l}}}var Ze=e4(),Da,ag,Xx=(ag=class{constructor(){ie(this,Da)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),VN(this.gcTime)&&ee(this,Da,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(ql?1/0:5*60*1e3))}clearGcTimeout(){P(this,Da)&&(clearTimeout(P(this,Da)),ee(this,Da,void 0))}},Da=new WeakMap,ag),Ar,Ca,bt,Sa,We,ds,Pa,Ot,pn,rg,t4=(rg=class extends Xx{constructor(t){super();ie(this,Ot);ie(this,Ar);ie(this,Ca);ie(this,bt);ie(this,Sa);ie(this,We);ie(this,ds);ie(this,Pa);ee(this,Pa,!1),ee(this,ds,t.defaultOptions),this.setOptions(t.options),this.observers=[],ee(this,Sa,t.client),ee(this,bt,P(this,Sa).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,ee(this,Ar,a4(this.options)),this.state=t.state??P(this,Ar),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=P(this,We))==null?void 0:t.promise}setOptions(t){this.options={...P(this,ds),...t},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&P(this,bt).remove(this)}setData(t,n){const a=UN(this.state.data,t,this.options);return Ve(this,Ot,pn).call(this,{data:a,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),a}setState(t,n){Ve(this,Ot,pn).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var a,o;const n=(a=P(this,We))==null?void 0:a.promise;return(o=P(this,We))==null||o.cancel(t),n?n.then(_t).catch(_t):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(P(this,Ar))}isActive(){return this.observers.some(t=>HN(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===qp||this.state.dataUpdateCount+this.state.errorUpdate
vendor: 1,274 bytes, line 371
371Count===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>tu(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!$N(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(a=>a.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=P(this,We))==null||n.continue()}onOnline(){var n;const t=this.observers.find(a=>a.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=P(this,We))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),P(this,bt).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||(P(this,We)&&(P(this,Pa)?P(this,We).cancel({revert:!0}):P(this,We).cancelRetry()),this.scheduleGc()),P(this,bt).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Ve(this,Ot,pn).call(this,{type:"invalidate"})}
vendor: 9,018 bytes, line 371
371fetch(t,n){var d,u,p;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(P(this,We))return P(this,We).continueRetry(),P(this,We).promise}if(t&&this.setOptions(t),!this.options.queryFn){const h=this.observers.find(m=>m.options.queryFn);h&&this.setOptions(h.options)}const a=new AbortController,o=h=>{Object.defineProperty(h,"signal",{enumerable:!0,get:()=>(ee(this,Pa,!0),a.signal)})},s=()=>{const h=Kx(this.options,n),y=(()=>{const g={client:P(this,Sa),queryKey:this.queryKey,meta:this.meta};return o(g),g})();return ee(this,Pa,!1),this.options.persister?this.options.persister(h,y,this):h(y)},l=(()=>{const h={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:P(this,Sa),state:this.state,fetchFn:s};return o(h),h})();(d=this.options.behavior)==null||d.onFetch(l,this),ee(this,Ca,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((u=l.fetchOptions)==null?void 0:u.meta))&&Ve(this,Ot,pn).call(this,{type:"fetch",meta:(p=l.fetchOptions)==null?void 0:p.meta});const c=h=>{var m,y,g,w;Rc(h)&&h.silent||Ve(this,Ot,pn).call(this,{type:"error",error:h}),Rc(h)||((y=(m=P(this,bt).config).onError)==null||y.call(m,h,this),(w=(g=P(this,bt).config).onSettled)==null||w.call(g,this.state.data,h,this)),this.scheduleGc()};return ee(this,We,Zx({initialPromise:n==null?void 0:n.initialPromise,fn:l.fetchFn,abort:a.abort.bind(a),onSuccess:h=>{var m,y,g,w;if(h===void 0){c(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(h)}catch(b){c(b);return}(y=(m=P(this,bt).config).onSuccess)==null||y.call(m,h,this),(w=(g=P(this,bt).config).onSettled)==null||w.call(g,h,this.state.error,this),this.scheduleGc()},onError:c,onFail:(h,m)=>{Ve(this,Ot,pn).call(this,{type:"failed",failureCount:h,error:m})},onPause:()=>{Ve(this,Ot,pn).call(this,{type:"pause"})},onContinue:()=>{Ve(this,Ot,pn).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0})),P(this,We).start()}},Ar=new WeakMap,Ca=new WeakMap,bt=new WeakMap,Sa=new WeakMap,We=new WeakMap,ds=new WeakMap,Pa=new WeakMap,Ot=new WeakSet,pn=function(t){const n=a=>{switch(t.type){case"failed":return{...a,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...a,fetchStatus:"paused"};case"continue":return{...a,fetchStatus:"fetching"};case"fetch":return{...a,...n4(a.data,this.options),fetchMeta:t.meta??null};case"success":return ee(this,Ca,void 0),{...a,data:t.data,dataUpdateCount:a.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const o=t.error;return Rc(o)&&o.revert&&P(this,Ca)?{...P(this,Ca),fetchStatus:"idle"}:{...a,error:o,errorUpdateCount:a.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:a.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error"};case"invalidate":return{...a,isInvalidated:!0};case"setState":return{...a,...t.state}}};this.state=n(this.state),Ze.batch(()=>{this.observers.forEach(a=>{a.onQueryUpdate()}),P(this,bt).notify({query:this,type:"updated",action:t})})},rg);function n4(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Qx(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function a4(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,a=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?a??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Qt,og,r4=(og=class extends Fl{constructor(t={}){super();ie(this,Qt);this.config=t,ee(this,Qt,new Map)}build(t,n,a){const o=n.queryKey,s=n.queryHash??Fp(o,n);let i=this.get(s);return i||(i=new t4({client:t,queryKey:o,queryHash:s,options:t.defaultQueryOptions(n),state:a,defaultOptions:t.getQueryDefaults(o)}),this.add(i)),i}add(t){P(this,Qt).has(t.queryHash)||(P(this,Qt).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=P(this,Qt).get(t.queryHash);n&&(t.destroy(),n===t&&P(this,Qt).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){Ze.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return P(this,Qt).get(t)}getAll(){return[...P(this,Qt).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(a=>Xh(n,a))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(a=>Xh(t,a)):n}notify(t){Ze.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){Ze.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){Ze.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},Qt=new WeakMap,og),Yt,Qe,Ea,Zt,Fn,sg,o4=(sg=class extends Xx{constructor(t){super();ie(this,Zt);ie(this,Yt);ie(this,Qe);ie(this,Ea);this.mutationId=t.mutationId,ee(this,Qe,t.mutationCache),ee(this,Yt,[]),this.state=t.state||s4(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){P(this,Yt).includes(t)||(P(this,Yt).push(t),this.clearGcTimeout(),P(this,Qe).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){ee(this,Yt,P(this,Yt).filter(n=>n!==t)),this.scheduleGc(),P(this,Qe).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){P(this,Yt).length||(this.state.status==="pending"?this.scheduleGc():P(this,Qe).remove(this))}continue(){var t;return((t=P(this,Ea))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var s,i,l,c,d,u,p,h,m,y,g,w,b,v,x,k,j,T,N,D;const n=()=>{Ve(this,Zt,Fn).call(this,{type:"continue"})};ee(this,Ea,Zx({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(C,E)=>{Ve(this,Zt,Fn).call(this,{type:"failed",failureCount:C,error:E})},onPause:()=>{Ve(this,Zt,Fn).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>P(this,Qe).canRun(this)}));const a=this.state.status==="pending",o=!P(this,Ea).canStart();try{if(a)n();else{Ve(this,Zt,Fn).call(this,{type:"pending",variables:t,isPaused:o}),await((i=(s=P(this,Qe).config).onMutate)==null?void 0:i.call(s,t,this));const E=await((c=(l=this.options).onMutate)==null?void 0:c.call(l,t));E!==this.state.context&&Ve(this,Zt,Fn).call(this,{type:"pending",context:E,variables:t,isPaused:o})}const C=await P(this,Ea).start();return await((u=(d=P(this,Qe).config).onSuccess)==null?void 0:u.call(d,C,t,this.state.context,this)),await((h=(p=this.options).onSuccess)==null?void 0:h.call(p,C,t,this.state.context)),await((y=(m=P(this,Qe).config).onSettled)==null?void 0:y.call(m,C,null,this.state.variables,this.state.context,this)),await((w=(g=this.options).onSettled)==null?void 0:w.call(g,C,null,t,this.state.context)),Ve(this,Zt,Fn).call(this,{type:"success",data:C}),C}catch(C){try{throw await((v=(b=P(this,Qe).config).onError)==null?void 0:v.call(b,C,t,this.state.context,this)),await((k=(x=this.options).onError)==null?void 0:k.call(x,C,t,this.state.context)),await((T=(j=P(this,Qe).config).onSettled)==null?void 0:T.call(j,void 0,C,this.state.variables,this.state.context,this)),await((D=(N=this.options).onSettled)==null?void 0:D.call(N,void 0,C,t,this.state.context)),C}finally{Ve(this,Zt,Fn).call(this,{type:"error",error:C})}}finally{P(this,Qe).runNext(this)}}},Yt=new WeakMap,Qe=new WeakMap,Ea=new WeakMap,Zt=new WeakSet,Fn=function(t){const n=a=>{switch(t.type){case"failed":return{...a,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...a,isPaused:!0};case"continue":return{...a,isPaused:!1};case"pending":return{...a,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...a,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...a,data:void 0,error:t.error,failureCount:a.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),Ze.batch(()=>{P(this,Yt).forEach(a=>{a.onMutationUpdate(t)}),P(this,Qe).notify({mutation:this,type:"updated",action:t})})},sg);function s4(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var fn,Lt,us,ig,i4=(ig=class extends Fl{constructor(t={}){super();ie(this,fn);ie(this,Lt);ie(this,us);this.config=t,ee(this,fn,new Set),ee(this,Lt,new Map),ee(this,us,0)}build(t,n,a){const o=new o4({mutationCache:this,mutationId:++Ps(this,us)._,options:t.defaultMutationOptions(n),state:a});return this.add(o),o}add(t){P(this,fn).add(t);const n=Zs(t);
371if(typeof n=="string"){const a=P(this,Lt).get(n);a?a.push(t):P(this,Lt).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(P(this,fn).delete(t)){const n=Zs(t);if(typeof n=="string"){const a=P(this,Lt).get(n);if(a)if(a.length>1){const o=a.indexOf(t);o!==-1&&a.splice(o,1)}else a[0]===t&&P(this,Lt).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=Zs(t);if(typeof n=="string"){const a=P(this,Lt).get(n),o=a==null?void 0:a.find(s=>s.state.status==="pending");return!o||o===t}else return!0}runNext(t){var a;const n=Zs(t);if(typeof n=="string"){const o=(a=P(this,Lt).get(n))==null?void 0:a.find(s=>s!==t&&s.state.isPaused);return(o==null?void 0:o.continue())??Promise.resolve()}else return Promise.resolve()}clear(){Ze.batch(()=>{P(this,fn).forEach(t=>{this.notify({type:"removed",mutation:t})}),P(this,fn).clear(),P(this,Lt).clear()})}getAll(){return Array.from(P(this,fn))}find(t){const n={exact:!0,...t};return this.getAll().find(a=>Jh(n,a))}findAll(t={}){return this.getAll().filter(n=>Jh(t,n))}notify(t){Ze.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return Ze.batch(()=>Promise.all(t.map(n=>n.continue().catch(_t))))}},fn=new WeakMap,Lt=new WeakMap,us=new WeakMap,ig);function Zs(e){var t;return(t=e.options.scope)==null?void 0:t.id}function nf(e){return{onFetch:(t,n)=>{var u,p,h,m,y;const a=t.options,o=(h=(p=(u=t.fetchOptions)==null?void 0:u.meta)==null?void 0:p.fetchMore)==null?void 0:h.direction,s=((m=t.state.data)==null?void 0:m.pages)||[],i=((y=t.state.data)==null?void 0:y.pageParams)||[];let l={pages:[],pageParams:[]},c=0;const d=async()=>{let g=!1;const w=x=>{Object.defineProperty(x,"signal",{enumerable:!0,get:()=>(t.signal.aborted?g=!0:t.signal.addEventListener("abort",()=>{g=!0}),t.signal)})},b=Kx(t.options,t.fetchOptions),v=async(x,k,j)=>{if(g)return Promise.reject();if(k==null&&x.pages.length)return Promise.resolve(x);const N=(()=>{const H={client:t.client,queryKey:t.queryKey,pageParam:k,direction:j?"backward":"forward",meta:t.options.meta};return w(H),H})(),D=await b(N),{maxPages:C}=t.options,E=j?GN:KN;return{pages:E(x.pages,D,C),pageParams:E(x.pageParams,k,C)}};if(o&&s.length){const x=o==="backward",k=x?l4:af,j={pages:s,pageParams:i},T=k(a,j);l=await v(j,T,x)}else{const x=e??s.length;do{const k=c===0?i[0]??a.initialPageParam:af(a,l);if(c>0&&k==null)break;l=await v(l,k),c++}while(c<x)}return l};t.options.persister?t.fetchFn=()=>{var g,w;return(w=(g=t.options).persister)==null?void 0:w.call(g,d,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=d}}}function af(e,{pages:t,pageParams:n}){const a=t.length-1;return t.length>0?e.getNextPageParam(t[a],t,n[a],n):void 0}function l4(e,{pages:t,pageParams:n}){var a;return t.length>0?(a=e.getPreviousPageParam)==null?void 0:a.call(e,t[0],t,n[0],n):void 0}var Te,Kn,Gn,Rr,_r,Qn,Or,Lr,lg,c4=(lg=class{constructor(e={}){ie(this,Te);ie(this,Kn);ie(this,Gn);ie(this,Rr);ie(this,_r);ie(this,Qn);ie(this,Or);ie(this,Lr);ee(this,Te,e.queryCache||new r4),ee(this,Kn,e.mutationCache||new i4),ee(this,Gn,e.defaultOptions||{}),ee(this,Rr,new Map),ee(this,_r,new Map),ee(this,Qn,0)}mount(){Ps(this,Qn)._++,P(this,Qn)===1&&(ee(this,Or,Gx.subscribe(async e=>{e&&(await this.resumePausedMutations(),P(this,Te).onFocus())})),ee(this,Lr,sl.subscribe(async e=>{e&&(await this.resumePausedMutations(),P(this,Te).onOnline())})))}unmount(){var e,t;Ps(this,Qn)._--,P(this,Qn)===0&&((e=P(this,Or))==null||e.call(this),ee(this,Or,void 0),(t=P(this,Lr))==null||t.call(this),ee(this,Lr,void 0))}isFetching(e){return P(this,Te).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return P(this,Kn).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=P(this,Te).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=P(this,Te).build(this,t),a=n.state.data;return a===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(tu(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(a))}getQueriesData(e){return P(this,Te).findAll(e).map(({queryKey:t,state:n})=>{const a=n.data;return[t,a]})}setQueryData(e,t,n){const a=this.defaultQueryOptions({queryKey:e}),o=P(this,Te).get(a.queryHash),s=o==null?void 0:o.state.data,i=BN(t,s);if(i!==void 0)return P(this,Te).build(this,a).setData(i,{...n,manual:!0})}
371setQueriesData(e,t,n){return Ze.batch(()=>P(this,Te).findAll(e).map(({queryKey:a})=>[a,this.setQueryData(a,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=P(this,Te).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=P(this,Te);Ze.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=P(this,Te);return Ze.batch(()=>(n.findAll(e).forEach(a=>{a.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},a=Ze.batch(()=>P(this,Te).findAll(e).map(o=>o.cancel(n)));return Promise.all(a).then(_t).catch(_t)}invalidateQueries(e,t={}){return Ze.batch(()=>(P(this,Te).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},a=Ze.batch(()=>P(this,Te).findAll(e).filter(o=>!o.isDisabled()&&!o.isStatic()).map(o=>{let s=o.fetch(void 0,n);return n.throwOnError||(s=s.catch(_t)),o.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(a).then(_t)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=P(this,Te).build(this,t);return n.isStaleByTime(tu(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(_t).catch(_t)}fetchInfiniteQuery(e){return e.behavior=nf(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(_t).catch(_t)}ensureInfiniteQueryData(e){return e.behavior=nf(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return sl.isOnline()?P(this,Kn).resumePausedMutations():Promise.resolve()}getQueryCache(){return P(this,Te)}getMutationCache(){return P(this,Kn)}getDefaultOptions(){return P(this,Gn)}setDefaultOptions(e){ee(this,Gn,e)}setQueryDefaults(e,t){P(this,Rr).set(os(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...P(this,Rr).values()],n={};return t.forEach(a=>{ss(e,a.queryKey)&&Object.assign(n,a.defaultOptions)}),n}setMutationDefaults(e,t){P(this,_r).set(os(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...P(this,_r).values()],n={};return t.forEach(a=>{ss(e,a.mutationKey)&&Object.assign(n,a.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...P(this,Gn).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Fp(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===qp&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...P(this,Gn).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){P(this,Te).clear(),P(this,Kn).clear()}},Te=new WeakMap,Kn=new WeakMap,Gn=new WeakMap,Rr=new WeakMap,_r=new WeakMap,Qn=new WeakMap,Or=new WeakMap,Lr=new WeakMap,lg),d4=f.createContext(void 0),u4=({client:e,children:t})=>(f.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),r.jsx(d4.Provider,{value:e,children:t}));/**
372 * @remix-run/router v1.23.0
373 *
374 * Copyright (c) Remix Software Inc.
375 *
376 * This source code is licensed under the MIT license found in the
377 * LICENSE.md file in the root directory of this source tree.
378 *
379 * @license MIT
380 */function is(){return is=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},is.apply(this,arguments)}var Xn;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Xn||(Xn={}));const rf="popstate";function p4(e){e===void 0&&(e={});function t(a,o){let{pathname:s,search:i,hash:l}=a.location;return au("",{pathname:s,search:i,hash:l},o.state&&o.state.usr||null,o.state&&o.state.key||"default")}function n(a,o){return typeof o=="string"?o:il(o)}return h4(t,n,null,e)}function Se(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Jx(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function m4(){return Math.random().toString(36).substr(2,8)}function of(e,t){return{usr:e.state,key:e.key,idx:t}}function au(e,t,n,a){return n===void 0&&(n=null),is({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?no(t):t,{state:n,key:t&&t.key||a||m4()})}function il(e){let{pathname:t="/",search:n="",hash:a=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),a&&a!=="#"&&(t+=a.charAt(0)==="#"?a:"#"+a),t}function no(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let a=e.indexOf("?");a>=0&&(t.search=e.substr(a),e=e.substr(0,a)),e&&(t.pathname=e)}return t}function h4(e,t,n,a){a===void 0&&(a={});let{window:o=document.defaultView,v5Compat:s=!1}=a,i=o.history,l=Xn.Pop,c=null,d=u();d==null&&(d=0,i.replaceState(is({},i.state,{idx:d}),""));function u(){return(i.state||{idx:null}).idx}function p(){l=Xn.Pop;let w=u(),b=w==null?null:w-d;d=w,c&&c({action:l,location:g.location,delta:b})}function h(w,b){l=Xn.Push;let v=au(g.location,w,b);d=u()+1;let x=of(v,d),k=g.createHref(v);try{i.pushState(x,"",k)}catch(j){if(j instanceof DOMException&&j.name==="DataCloneError")throw j;o.location.assign(k)}s&&c&&c({action:l,location:g.location,delta:1})}function m(w,b){l=Xn.Replace;let v=au(g.location,w,b);d=u();let x=of(v,d),k=g.createHref(v);i.replaceState(x,"",k),s&&c&&c({action:l,location:g.location,delta:0})}function y(w){let b=o.location.origin!=="null"?o.location.origin:o.location.href,v=typeof w=="string"?w:il(w);return v=v.replace(/ $/,"%20"),Se(b,"No window.location.(origin|href) available to create URL for href: "+v),new URL(v,b)}let g={get action(){return l},get location(){return e(o,i)},listen(w){if(c)throw new Error("A history only accepts one active listener");return o.addEventListener(rf,p),c=w,()=>{o.removeEventListener(rf,p),c=null}},createHref(w){return t(o,w)},createURL:y,encodeLocation(w){let b=y(w);return{pathname:b.pathname,search:b.search,hash:b.hash}},push:h,replace:m,go(w){return i.go(w)}};return g}var sf;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(sf||(sf={}));function f4(e,t,n){return n===void 0&&(n="/"),g4(e,t,n,!1)}function g4(e,t,n,a){let o=typeof t=="string"?no(t):t,s=Bp(o.pathname||"/",n);if(s==null)return null;let i=ey(e);v4(i);let l=null;for(let c=0;l==null&&c<i.length;++c){let d=S4(s);l=D4(i[c],d,a)}return l}function ey(e,t,n,a){t===void 0&&(t=[]),n===void 0&&(n=[]),a===void 0&&(a="");let o=(s,i,l)=>{let c={relativePath:l===void 0?s.path||"":l,caseSensitive:s.caseSensitive===!0,childrenIndex:i,route:s};c.relativePath.startsWith("/")&&(Se(c.relativePath.startsWith(a),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+a+'" is not val
380id. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(a.length));let d=ia([a,c.relativePath]),u=n.concat(c);s.children&&s.children.length>0&&(Se(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),ey(s.children,t,u,d)),!(s.path==null&&!s.index)&&t.push({path:d,score:T4(d,s.index),routesMeta:u})};return e.forEach((s,i)=>{var l;if(s.path===""||!((l=s.path)!=null&&l.includes("?")))o(s,i);else for(let c of ty(s.path))o(s,i,c)}),t}function ty(e){let t=e.split("/");if(t.length===0)return[];let[n,...a]=t,o=n.endsWith("?"),s=n.replace(/\?$/,"");if(a.length===0)return o?[s,""]:[s];let i=ty(a.join("/")),l=[];return l.push(...i.map(c=>c===""?s:[s,c].join("/"))),o&&l.push(...i),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function v4(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:N4(t.routesMeta.map(a=>a.childrenIndex),n.routesMeta.map(a=>a.childrenIndex)))}const b4=/^:[\w-]+$/,x4=3,y4=2,w4=1,k4=10,j4=-2,lf=e=>e==="*";function T4(e,t){let n=e.split("/"),a=n.length;return n.some(lf)&&(a+=j4),t&&(a+=y4),n.filter(o=>!lf(o)).reduce((o,s)=>o+(b4.test(s)?x4:s===""?w4:k4),a)}function N4(e,t){return e.length===t.length&&e.slice(0,-1).every((a,o)=>a===t[o])?e[e.length-1]-t[t.length-1]:0}function D4(e,t,n){let{routesMeta:a}=e,o={},s="/",i=[];for(let l=0;l<a.length;++l){let c=a[l],d=l===a.length-1,u=s==="/"?t:t.slice(s.length)||"/",p=cf({path:c.relativePath,caseSensitive:c.caseSensitive,end:d},u),h=c.route;if(!p&&d&&n&&!a[a.length-1].route.index&&(p=cf({path:c.relativePath,caseSensitive:c.caseSensitive,end:!1},u)),!p)return null;
vendor: 9,263 bytes, lines 380-389
380Object.assign(o,p.params),i.push({params:o,pathname:ia([s,p.pathname]),pathnameBase:A4(ia([s,p.pathnameBase])),route:h}),p.pathnameBase!=="/"&&(s=ia([s,p.pathnameBase]))}return i}function cf(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,a]=C4(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let s=o[0],i=s.replace(/(.)\/+$/,"$1"),l=o.slice(1);return{params:a.reduce((d,u,p)=>{let{paramName:h,isOptional:m}=u;if(h==="*"){let g=l[p]||"";i=s.slice(0,s.length-g.length).replace(/(.)\/+$/,"$1")}const y=l[p];return m&&!y?d[h]=void 0:d[h]=(y||"").replace(/%2F/g,"/"),d},{}),pathname:s,pathnameBase:i,pattern:e}}function C4(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),Jx(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let a=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(i,l,c)=>(a.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(a.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),a]}function S4(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return Jx(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Bp(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,a=e.charAt(n);return a&&a!=="/"?null:e.slice(n)||"/"}function P4(e,t){t===void 0&&(t="/");let{pathname:n,search:a="",hash:o=""}=typeof e=="string"?no(e):e;return{pathname:n?n.startsWith("/")?n:E4(n,t):t,search:R4(a),hash:_4(o)}}function E4(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function _c(e,t,n,a){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(a)+"].  Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function I4(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Vp(e,t){let n=I4(e);return t?n.map((a,o)=>o===n.length-1?a.pathname:a.pathnameBase):n.map(a=>a.pathnameBase)}function $p(e,t,n,a){a===void 0&&(a=!1);let o;typeof e=="string"?o=no(e):(o=is({},e),Se(!o.pathname||!o.pathname.includes("?"),_c("?","pathname","search",o)),Se(!o.pathname||!o.pathname.includes("#"),_c("#","pathname","hash",o)),Se(!o.search||!o.search.includes("#"),_c("#","search","hash",o)));let s=e===""||o.pathname==="",i=s?"/":o.pathname,l;if(i==null)l=n;else{let p=t.length-1;if(!a&&i.startsWith("..")){let h=i.split("/");for(;h[0]==="..";)h.shift(),p-=1;o.pathname=h.join("/")}l=p>=0?t[p]:"/"}let c=P4(o,l),d=i&&i!=="/"&&i.endsWith("/"),u=(s||i===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(d||u)&&(c.pathname+="/"),c}const ia=e=>e.join("/").replace(/\/\/+/g,"/"),A4=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),R4=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,_4=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function O4(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const ny=["post","put","patch","delete"];new Set(ny);const L4=["get",...ny];new Set(L4);/**
381 * React Router v6.30.1
382 *
383 * Copyright (c) Remix Software Inc.
384 *
385 * This source code is licensed under the MIT license found in the
386 * LICENSE.md file in the root directory of this source tree.
387 *
388 * @license MIT
389 */function ls(){return ls=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},ls.apply(this,arguments)}const Hp=f.createContext(null),z4=f.createContext(null),fa=f.createContext(null),Bl=f.createContext(null),Sn=f.createContext({outlet:null,matches:[],isDataRoute:!1}),ay=f.createContext(null);function M4(e,t){let{relative:n}=t===void 0?{}:t;ao()||Se(!1);let{basename:a,navigator:o}=f.useContext(fa),{hash:s,pathname:i,search:l}=sy(e,{relative:n}),c=i;return a!=="/"&&(c=i==="/"?a:ia([a,i])),o.createHref({pathname:c,search:l,hash:s})}function ao(){return f.useContext(Bl)!=null}function Pn(){return ao()||Se(!1),f.useContext(Bl).location}function ry(e){f.useContext(fa).static||f.useLayoutEffect(e)}function oy(){let{isDataRoute:e}=f.useContext(Sn);return e?X4():F4()}function F4(){ao()||Se(!1);let e=f.useContext(Hp),{basename:t,future:n,navigator:a}=f.useContext(fa),{matches:o}=f.useContext(Sn),{pathname:s}=Pn(),i=JSON.stringify(Vp(o,n.v7_relativeSplatPath)),l=f.useRef(!1);return ry(()=>{l.current=!0}),f.useCallback(function(d,u){if(u===void 0&&(u={}),!l.current)return;if(typeof d=="number"){a.go(d);return}let p=$p(d,JSON.parse(i),s,u.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:ia([t,p.pathname])),(u.replace?a.replace:a.push)(p,u.state,u)},[t,a,i,s,e])}function q4(){let{matches:e}=f.useContext(Sn),t=e[e.length-1];return t?t.params:{}}function sy(e,t){let{relative:n}=t===void 0?{}:t,{future:a}=f.useContext(fa),{matches:o}=f.useContext(Sn),{pathname:s}=Pn(),i=JSON.stringify(Vp(o,a.v7_relativeSplatPath));return f.useMemo(()=>$p(e,JSON.parse(i),s,n==="path"),[e,i,s,n])}function B4(e,t){return V4(e,t)}function V4(e,t,n,a){ao()||Se(!1);let{navigator:o}=f.useContext(fa),{matches:s}=f.useContext(Sn),i=s[s.length-1],l=i?i.params:{};i&&i.pathname;let c=i?i.pathnameBase:"/";i&&i.route;let d=Pn(),u;if(t){var p;let w=typeof t=="string"?no(t):t;c==="/"||(p=w.pathname)!=null&&p.startsWith(c)||Se(!1),u=w}else u=d;let h=u.pathname||"/",m=h;if(c!=="/"){let w=c.replace(/^\//,"").split("/");m="/"+h.replace(/^\//,"").split("/").slice(w.length).join("/")}let y=f4(e,{pathname:m}),g=K4(y&&y.map(w=>Object.assign({},w,{params:Object.assign({},l,w.params),pathname:ia([c,o.encodeLocation?o.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?c:ia([c,o.encodeLocation?o.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),s,n,a);return t&&g?f.createElement(Bl.Provider,{value:{location:ls({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:Xn.Pop}},g):g}function $4(){let e=Z4(),t=O4(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,o={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},t),n?f.createElement("pre",{style:o},n):null,null)}const H4=f.createElement($4,null);class W4 extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?f.createElement(Sn.Provider,{value:this.props.routeContext},f.createElement(ay.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function U4(e){let{routeContext:t,match:n,children:a}=e,o=f.useContext(Hp);return o&&o.static&&o.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=n.route.id),f.createElement(Sn.Provider,{value:t},a)}function K4(e,t,n,a){var o;if(t===void 0&&(t=[]),n===void 0&&(n=null),a===void 0&&(a=null),e==null){var s;if(!n)return null;if(n.errors)e=n.matches;else if((s=a)!=null&&s.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let i=e,l=(o=n)==null?void 0:o.errors;if(l!=null){let u=i.findIndex(p=>p.route.id&&(l==null?void 0:l[p.route.id])!==void 0);u>=0||Se(!1),i=i.slice(0,Math.min(i.length,u+1))}let c=!1,d=-1;if(n&&a&&a.v7_partialHydration)for(let u=0;u<i.length;u++){let p=i[u];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(d=u),p.route.id){let{loaderData:h,errors:m}=n,y=p.route.loader&&h[p.route.id]===void 0&&(!m||m[p.route.id]===void 0);if(p.route.lazy||y){c=!0,d>=0?i=i.slice(0,d+1):i=[i[0]];break}}}return i.reduceRight((u,p,h)=>{let m,y=!1,g=null,w=null;n&&(m=l&&p.route.id?l[p.route.id]:void 0,g=p.route.errorElement||H4,c&&(d<0&&h===0?(y=!0,w=null):d===h&&(y=!0,w=p.route.hydrateFallbackElement||null)));let b=t.concat(i.slice(0,h+1)),v=()=>{let x;return m?x=g:y?x=w:p.route.Component?x=f.createElement(p.route.Component,null):p.route.element?x=p.route.element:x=u,f.createElement(U4,{match:p,routeC
389ontext:{outlet:u,matches:b,isDataRoute:n!=null},children:x})};return n&&(p.route.ErrorBoundary||p.route.errorElement||h===0)?f.createElement(W4,{location:n.location,revalidation:n.revalidation,component:g,error:m,children:v(),routeContext:{outlet:null,matches:b,isDataRoute:!0}}):v()},null)}var iy=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(iy||{}),ll=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(ll||{});function G4(e){let t=f.useContext(Hp);return t||Se(!1),t}function Q4(e){let t=f.useContext(z4);return t||Se(!1),t}function Y4(e){let t=f.useContext(Sn);return t||Se(!1),t}function ly(e){let t=Y4(),n=t.matches[t.matches.length-1];return n.route.id||Se(!1),n.route.id}function Z4(){var e;let t=f.useContext(ay),n=Q4(ll.UseRouteError),a=ly(ll.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[a]}function X4(){let{router:e}=G4(iy.UseNavigateStable),t=ly(ll.UseNavigateStable),n=f.useRef(!1);return ry(()=>{n.current=!0}),f.useCallback(function(o,s){s===void 0&&(s={}),n.current&&(typeof o=="number"?e.navigate(o):e.navigate(o,ls({fromRouteId:t},s)))},[e,t])}function J4(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function Pe(e){let{to:t,replace:n,state:a,relative:o}=e;ao()||Se(!1);let{future:s,static:i}=f.useContext(fa),{matches:l}=f.useContext(Sn),{pathname:c}=Pn(),d=oy(),u=$p(t,Vp(l,s.v7_relativeSplatPath),c,o==="path"),p=JSON.stringify(u);return f.useEffect(()=>d(JSON.parse(p),{replace:n,state:a,relative:o}),[d,p,o,n,a]),null}function q(e){Se(!1)}function eD(e){let{basename:t="/",children:n=null,location:a,navigationType:o=Xn.Pop,navigator:s,static:i=!1,future:l}=e;ao()&&Se(!1);let c=t.replace(/^\/*/,"/"),d=f.useMemo(()=>({basename:c,navigator:s,static:i,future:ls({v7_relativeSplatPath:!1},l)}),[c,l,s,i]);typeof a=="string"&&(a=no(a));let{pathname:u="/",search:p="",hash:h="",state:m=null,key:y="default"}=a,g=f.useMemo(()=>{let w=Bp(u,c);return w==null?null:{location:{pathname:w,search:p,hash:h,state:m,key:y},navigationType:o}},[c,u,p,h,m,y,o]);return g==null?null:f.createElement(fa.Provider,{value:d},f.createElement(Bl.Provider,{children:n,value:g}))}function tD(e){let{children:t,location:n}=e;return B4(ru(t),n)}new Promise(()=>{});function ru(e,t){t===void 0&&(t=[]);let n=[];return f.Children.forEach(e,(a,o)=>{if(!f.isValidElement(a))return;let s=[...t,o];if(a.type===f.Fragment){n.push.apply(n,ru(a.props.children,s));return}a.type!==q&&Se(!1),!a.props.index||!a.props.children||Se(!1);let i={id:a.props.id||s.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,loader:a.props.loader,action:a.props.action,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(i.children=ru(a.props.children,s)),n.push(i)}),n}/**
390 * React Router DOM v6.30.1
391 *
392 * Copyright (c) Remix Software Inc.
393 *
394 * This source code is licensed under the MIT license found in the
395 * LICENSE.md file in the root directory of this source tree.
396 *
397 * @license MIT
398 */function ou(){return ou=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},ou.apply(this,arguments)}function nD(e,t){if(e==null)return{};var n={},a=Object.keys(e),o,s;for(s=0;s<a.length;s++)o=a[s],!(t.indexOf(o)>=0)&&(n[o]=e[o]);return n}function aD(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function rD(e,t){return e.button===0&&(!t||t==="_self")&&!aD(e)}const oD=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],sD="6";try{window.__reactRouterVersion=sD}catch{}const iD="startTransition",df=Du[iD];function lD(e){let{basename:t,children:n,future:a,window:o}=e,s=f.useRef();s.current==null&&(s.current=p4({window:o,v5Compat:!0}));let i=s.current,[l,c]=f.useState({action:i.action,location:i.location}),{v7_startTransition:d}=a||{},u=f.useCallback(p=>{d&&df?df(()=>c(p)):c(p)},[c,d]);return f.useLayoutEffect(()=>i.listen(u),[i,u]),f.useEffect(()=>J4(a),[a]),f.createElement(eD,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:i,future:a})}const cD=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",dD=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,L=f.forwardRef(function(t,n){let{onClick:a,relative:o,reloadDocument:s,replace:i,state:l,target:c,to:d,preventScrollReset:u,viewTransition:p}=t,h=nD(t,oD),{basename:m}=f.useContext(fa),y,g=!1;
398if(typeof d=="string"&&dD.test(d)&&(y=d,cD))try{let x=new URL(window.location.href),k=d.startsWith("//")?new URL(x.protocol+d):new URL(d),j=Bp(k.pathname,m);k.origin===x.origin&&j!=null?d=j+k.search+k.hash:g=!0}catch{}let w=M4(d,{relative:o}),b=uD(d,{replace:i,state:l,target:c,preventScrollReset:u,relative:o,viewTransition:p});function v(x){a&&a(x),x.defaultPrevented||b(x)}return f.createElement("a",ou({},h,{href:y||w,onClick:g||s?a:v,ref:n,target:c}))});var uf;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(uf||(uf={}));var pf;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(pf||(pf={}));function uD(e,t){let{target:n,replace:a,state:o,preventScrollReset:s,relative:i,viewTransition:l}=t===void 0?{}:t,c=oy(),d=Pn(),u=sy(e,{relative:i});return f.useCallback(p=>{if(rD(p,n)){p.preventDefault();let h=a!==void 0?a:il(d)===il(u);c(e,{replace:h,state:o,preventScrollReset:s,relative:i,viewTransition:l})}},[d,c,u,a,o,n,e,s,i,l])}var pD=typeof Element<"u",mD=typeof Map=="function",hD=typeof Set=="function",fD=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function yi(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,a,o;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(a=n;a--!==0;)if(!yi(e[a],t[a]))return!1;return!0}var s;if(mD&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(s=e.entries();!(a=s.next()).done;)if(!t.has(a.value[0]))return!1;for(s=e.entries();!(a=s.next()).done;)if(!yi(a.value[1],t.get(a.value[0])))return!1;return!0}if(hD&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(s=e.entries();!(a=s.next()).done;)if(!t.has(a.value[0]))return!1;return!0}if(fD&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(a=n;a--!==0;)if(e[a]!==t[a])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(a=n;a--!==0;)if(!Object.prototype.hasOwnProperty.call(t,o[a]))return!1;if(pD&&e instanceof Element)return!1;for(a=n;a--!==0;)if(!((o[a]==="_owner"||o[a]==="__v"||o[a]==="__o")&&e.$$typeof)&&!yi(e[o[a]],t[o[a]]))return!1;return!0}return e!==e&&t!==t}var gD=function(t,n){try{return yi(t,n)}catch(a){if((a.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw a}};const vD=ps(gD);var bD=function(e,t,n,a,o,s,i,l){if(!e){var c;if(t===void 0)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var d=[n,a,o,s,i,l],u=0;c=new Error(t.replace(/%s/g,function(){return d[u++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}},xD=bD;const mf=ps(xD);var yD=function(t,n,a,o){var s=a?a.call(o,t,n):void 0;if(s!==void 0)return!!s;if(t===n)return!0;if(typeof t!="object"||!t||typeof n!="object"||!n)return!1;var i=Object.keys(t),l=Object.keys(n);if(i.length!==l.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(n),d=0;d<i.length;d++){var u=i[d];if(!c(u))return!1;var p=t[u],h=n[u];if(s=a?a.call(o,p,h,u):void 0,s===!1||s===void 0&&p!==h)return!1}return!0};const wD=ps(yD);var cy=(e=>(e.BASE="base",e.BODY="body",e.HEAD="head",e.HTML="html",e.LINK="link",e.META="meta",e.NOSCRIPT="noscript",e.SCRIPT="script",e.STYLE="style",e.TITLE="title",e.FRAGMENT="Symbol(react.fragment)",e))(cy||{}),Oc={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}}
398,hf=Object.values(cy),Wp={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},kD=Object.entries(Wp).reduce((e,[t,n])=>(e[n]=t,e),{}),Ft="data-rh",Dr={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},Cr=(e,t)=>{for(let n=e.length-1;n>=0;n-=1){const a=e[n];if(Object.prototype.hasOwnProperty.call(a,t))return a[t]}return null},jD=e=>{let t=Cr(e,"title");const n=Cr(e,Dr.TITLE_TEMPLATE);if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,()=>t);const a=Cr(e,Dr.DEFAULT_TITLE);return t||a||void 0},TD=e=>Cr(e,Dr.ON_CHANGE_CLIENT_STATE)||(()=>{}),Lc=(e,t)=>t.filter(n=>typeof n[e]<"u").map(n=>n[e]).reduce((n,a)=>({...n,...a}),{}),ND=(e,t)=>t.filter(n=>typeof n.base<"u").map(n=>n.base).reverse().reduce((n,a)=>{if(!n.length){const o=Object.keys(a);for(let s=0;s<o.length;s+=1){const l=o[s].toLowerCase();if(e.indexOf(l)!==-1&&a[l])return n.concat(a)}}return n},[]),DD=e=>console&&typeof console.warn=="function"&&console.warn(e),vo=(e,t,n)=>{const a={};return n.filter(o=>Array.isArray(o[e])?!0:(typeof o[e]<"u"&&DD(`Helmet: ${e} should be of type "Array". Instead found type "${typeof o[e]}"`),!1)).map(o=>o[e]).reverse().reduce((o,s)=>{const i={};s.filter(c=>{let d;const u=Object.keys(c);for(let h=0;h<u.length;h+=1){const m=u[h],y=m.toLowerCase();t.indexOf(y)!==-1&&!(d==="rel"&&c[d].toLowerCase()==="canonical")&&!(y==="rel"&&c[y].toLowerCase()==="stylesheet")&&(d=y),t.indexOf(m)!==-1&&(m==="innerHTML"||m==="cssText"||m==="itemprop")&&(d=m)}if(!d||!c[d])return!1;const p=c[d].toLowerCase();return a[d]||(a[d]={}),i[d]||(i[d]={}),a[d][p]?!1:(i[d][p]=!0,!0)}).reverse().forEach(c=>o.push(c));const l=Object.keys(i);for(let c=0;c<l.length;c+=1){const d=l[c],u={...a[d],...i[d]};a[d]=u}return o},[]).reverse()},CD=(e,t)=>{if(Array.isArray(e)&&e.length){for(let n=0;n<e.length;n+=1)if(e[n][t])return!0}return!1},SD=e=>({baseTag:ND(["href"],e),bodyAttributes:Lc("bodyAttributes",e),defer:Cr(e,Dr.DEFER),encode:Cr(e,Dr.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:Lc("htmlAttributes",e),linkTags:vo("link",["rel","href"],e),metaTags:vo("meta",["name","charset","http-equiv","property","itemprop"],e),noscriptTags:vo("noscript",["innerHTML"],e),onChangeClientState:TD(e),scriptTags:vo("script",["src","innerHTML"],e),styleTags:vo("style",["cssText"],e),title:jD(e),titleAttributes:Lc("titleAttributes",e),prioritizeSeoTags:CD(e,Dr.PRIORITIZE_SEO_TAGS)}),dy=e=>Array.isArray(e)?e.join(""):e,PD=(e,t)=>{const n=Object.keys(e);for(let a=0;a<n.length;a+=1)if(t[n[a]]&&t[n[a]].includes(e[n[a]]))return!0;return!1},zc=(e,t)=>Array.isArray(e)?e.reduce((n,a)=>(PD(a,t)?n.priority.push(a):n.default.push(a),n),{priority:[],default:[]}):{default:e,priority:[]},ff=(e,t)=>({...e,[t]:void 0}),ED=["noscript","script","style"],su=(e,t=!0)=>t===!1?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"),uy=e=>Object.keys(e).reduce((t,n)=>{const a=typeof e[n]<"u"?`${n}="${e[n]}"`:`${n}`;return t?`${t} ${a}`:a},""),ID=(e,t,n,a)=>{const o=uy(n),s=dy(t);return o?`<${e} ${Ft}="true" ${o}>${su(s,a)}</${e}>`:`<${e} ${Ft}="true">${su(s,a)}</${e}>`},AD=(e,t,n=!0)=>t.reduce((a,o)=>{const s=o,i=Object.keys(s).filter(d=>!(d==="innerHTML"||d==="cssText")).reduce((d,u)=>{const p=typeof s[u]>"u"?u:`${u}="${su(s[u],n)}"`;return d?`${d} ${p}`:p},""),l=s.innerHTML||s.cssText||"",c=ED.indexOf(e)===-1;return`${a}<${e} ${Ft}="true" ${i}${c?"/>":`>${l}</${e}>`}`},""),py=(e,t={})=>Object.keys(e).reduce((n,a)=>{const o=Wp[a];return n[o||a]=e[a],n},t),RD=(e,t,n)=>{const a={key:t,[Ft]:!0},o=py(n,a);return[R.createElement("title",o,t)]},wi=(e,t)=>t.map((n,a)=>{const o={key:a,[Ft]:!0};return Object.keys(n).forEach(s=>{const l=Wp[s]||s;if(l==="innerHTML"||l==="cssText"){const c=n.innerHTML||n.cssText;o.dangerouslySetInnerHTML={__html:c}}else o[l]=n[s]}),R.createElement(e,o)}),vt=(e,t,n=!0)=>{switch(e){case"title":return{toComponent:()=>RD(e,t.title,t.titleAttributes),toString:()=>ID(e,t.title,t.titleAttributes,n)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>py(t),toString:()=>uy(t)};default:return{toComponent:()=>wi(e,t),toString:()=>AD(e,t,n)}}},_D=({metaTags:e,linkTags:t,scriptTags:n,encode:a})=>{const o=zc(e,Oc.meta),s=zc(t,Oc.link),i=zc(n,Oc.script);return{priorityMethods:{toComponent:()=>[...wi("meta",o.priority),...wi("link",s.priority),...wi("script",i.priority)],toString:()=>`${vt("meta",o.priority,a)} ${vt("link",s.priority,a)} ${vt("script",i.priority,a)}`},metaTags:o.default,linkTags:s.default,scriptTags:i.default}},OD=e=>{const{baseTag:t,bodyAttributes:n,encode:a=!0,htmlAttributes:o,noscriptTags:s,styleTags:i,title:l="",titleAttributes:c,prioritizeSeoTags:d}=e;let{linkTags:u,metaTags:p,scriptTags:h}=e,m={toComponent:()=>{},toString:()=>""};return d&&({priorityMethods:m,linkTags:u,metaTags:p,scriptTags:h}=_D(e)),{priority:m,base:vt("base",t,a),bodyAttributes:vt("bodyAttributes",n,a),htmlAttributes:vt("htmlAttributes",o,a),link:vt("link",u,a),meta:vt("meta",p,a),noscript:vt("noscript",s,a),script:vt("script",h,a),style:vt("style",i,a),title:vt("title",{title:l,titleAttributes:c},a)}},iu=OD,Xs=[],my=!!(typeof window<"u"&&window.document&&window.document.createElement),lu=class{constructor(e,t){dn(this,"instances",[]);dn(this,"canUseDOM",my);dn(this,"context");dn(this,"value",{setHelmet:e=>{this.context.helmet=e},helmetInstances:{get:()=>this.canUseDOM?Xs:this.instances,add:e=>{(this.canUseDOM?Xs:this.instances).push(e)},remove:e=>{const t=(this.canUseDOM?Xs:this.instances).indexOf(e);(this.canUseDOM?Xs:this.instances).splice(t,1)}}});this.context=e,this.canUseDOM=t||!1,t||(e.helmet=iu({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},LD={},hy=R.createContext(LD),Ia,fy=(Ia=class extends f.Component{constructor(n){super(n);dn(this,"helmetData");this.helmetData=new lu(this.props.context||{},Ia.canUseDOM)}render(){return R.createElement(hy.Provider,{value:this.helmetData.value},this.props.children)}},dn(Ia,"canUseDOM",my),Ia),Xa=(e,t)=>{const n=document.head||document.querySelector("head"),a=n.querySelectorAll(`${e}[${Ft}]`),o=[].slice.call(a),s=[];let i;return t&&t.length&&t.forEach(l=>{const c=document.createElement(e);for(const d in l)if(Object.prototype.hasOwnProperty.call(l,d))if(d==="innerHTML")c.innerHTML=l.innerHTML;else if(d==="cssText")c.styleSheet?c.styleSheet.cssText=l.cssText:c.appendChild(document.createTextNode(l.cssText));else{const u=d,p=typeof l[u]>"u"?"":l[u];c.setAttribute(d,p)}c.setAttribute(Ft,"true"),o.some((d,u)=>(i=u,c.isEqualNode(d)))?o.splice(i,1):s.push(c)}),o.forEach(l=>{var c;return(c=l.parentNode)==null?void 0:c.removeChild(l)}
398),s.forEach(l=>n.appendChild(l)),{oldTags:o,newTags:s}},cu=(e,t)=>{const n=document.getElementsByTagName(e)[0];if(!n)return;const a=n.getAttribute(Ft),o=a?a.split(","):[],s=[...o],i=Object.keys(t);for(const l of i){const c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),o.indexOf(l)===-1&&o.push(l);const d=s.indexOf(l);d!==-1&&s.splice(d,1)}for(let l=s.length-1;l>=0;l-=1)n.removeAttribute(s[l]);o.length===s.length?n.removeAttribute(Ft):n.getAttribute(Ft)!==i.join(",")&&n.setAttribute(Ft,i.join(","))},zD=(e,t)=>{typeof e<"u"&&document.title!==e&&(document.title=dy(e)),cu("title",t)},gf=(e,t)=>{const{baseTag:n,bodyAttributes:a,htmlAttributes:o,linkTags:s,metaTags:i,noscriptTags:l,onChangeClientState:c,scriptTags:d,styleTags:u,title:p,titleAttributes:h}=e;cu("body",a),cu("html",o),zD(p,h);const m={baseTag:Xa("base",n),linkTags:Xa("link",s),metaTags:Xa("meta",i),noscriptTags:Xa("noscript",l),scriptTags:Xa("script",d),styleTags:Xa("style",u)},y={},g={};Object.keys(m).forEach(w=>{const{newTags:b,oldTags:v}=m[w];b.length&&(y[w]=b),v.length&&(g[w]=m[w].oldTags)}),t&&t(),c(e,y,g)},bo=null,MD=e=>{bo&&cancelAnimationFrame(bo),e.defer?bo=requestAnimationFrame(()=>{gf(e,()=>{bo=null})}):(gf(e),bo=null)},FD=MD,vf=class extends f.Component{constructor(){super(...arguments);dn(this,"rendered",!1)}shouldComponentUpdate(t){return!wD(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:n}=this.props.context;let a=null;const o=SD(t.get().map(s=>{const i={...s.props};return delete i.context,i}));fy.canUseDOM?FD(o):iu&&(a=iu(o)),n(a)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},Xc,ze=(Xc=class extends f.Component{shouldComponentUpdate(e){return!vD(ff(this.props,"helmetData"),ff(e,"helmetData"))}mapNestedChildrenToProps(e,t){if(!t)return null;switch(e.type){case"script":case"noscript":return{innerHTML:t};case"style":return{cssText:t};default:throw new Error(`<${e.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(e,t,n,a){return{...t,[e.type]:[...t[e.type]||[],{...n,...this.mapNestedChildrenToProps(e,a)}]}}mapObjectTypeChildren(e,t,n,a){switch(e.type){case"title":return{...t,[e.type]:a,titleAttributes:{...n}};case"body":return{...t,bodyAttributes:{...n}};case"html":return{...t,htmlAttributes:{...n}};default:return{...t,[e.type]:{...n}}}}mapArrayTypeChildrenToProps(e,t){let n={...t};return Object.keys(e).forEach(a=>{n={...n,[a]:e[a]}}),n}warnOnInvalidChildren(e,t){return mf(hf.some(n=>e.type===n),typeof e.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${hf.join(", ")} are allowed. Helmet does not support rendering <${e.type}> elements. Refer to our API for more information.`),mf(!t||typeof t=="string"||Array.isArray(t)&&!t.some(n=>typeof n!="string"),`Helmet expects a string as a child of <${e.type}>. Did you forget to wrap your children in braces? ( <${e.type}>{\`\`}</${e.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(e,t){let n={};return R.Children.forEach(e,a=>{if(!a||!a.props)return;const{children:o,...s}=a.props,i=Object.keys(s).reduce((c,d)=>(c[kD[d]||d]=s[d],c),{});let{type:l}=a;
vendor: 4,557 bytes, line 398
398switch(typeof l=="symbol"?l=l.toString():this.warnOnInvalidChildren(a,o),l){case"Symbol(react.fragment)":t=this.mapChildrenToProps(o,t);break;case"link":case"meta":case"noscript":case"script":case"style":n=this.flattenArrayTypeChildren(a,n,i,o);break;default:t=this.mapObjectTypeChildren(a,t,i,o);break}}),this.mapArrayTypeChildrenToProps(n,t)}render(){const{children:e,...t}=this.props;let n={...t},{helmetData:a}=t;if(e&&(n=this.mapChildrenToProps(e,n)),a&&!(a instanceof lu)){const o=a;a=new lu(o.context,!0),delete n.helmetData}return a?R.createElement(vf,{...n,context:a.value}):R.createElement(hy.Consumer,null,o=>R.createElement(vf,{...n,context:o}))}},dn(Xc,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),Xc);function qD(){const{pathname:e}=Pn();return f.useEffect(()=>{window.scrollTo(0,0)},[e]),null}const Y=e=>typeof e=="string",xo=()=>{let e,t;const n=new Promise((a,o)=>{e=a,t=o});return n.resolve=e,n.reject=t,n},bf=e=>e==null?"":""+e,BD=(e,t,n)=>{e.forEach(a=>{t[a]&&(n[a]=t[a])})},VD=/###/g,xf=e=>e&&e.indexOf("###")>-1?e.replace(VD,"."):e,yf=e=>!e||Y(e),Lo=(e,t,n)=>{const a=Y(t)?t.split("."):t;let o=0;for(;o<a.length-1;){if(yf(e))return{};const s=xf(a[o]);!e[s]&&n&&(e[s]=new n),Object.prototype.hasOwnProperty.call(e,s)?e=e[s]:e={},++o}return yf(e)?{}:{obj:e,k:xf(a[o])}},wf=(e,t,n)=>{const{obj:a,k:o}=Lo(e,t,Object);if(a!==void 0||t.length===1){a[o]=n;return}let s=t[t.length-1],i=t.slice(0,t.length-1),l=Lo(e,i,Object);for(;l.obj===void 0&&i.length;)s=`${i[i.length-1]}.${s}`,i=i.slice(0,i.length-1),l=Lo(e,i,Object),l!=null&&l.obj&&typeof l.obj[`${l.k}.${s}`]<"u"&&(l.obj=void 0);l.obj[`${l.k}.${s}`]=n},$D=(e,t,n,a)=>{const{obj:o,k:s}=Lo(e,t,Object);o[s]=o[s]||[],o[s].push(n)},cl=(e,t)=>{const{obj:n,k:a}=Lo(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,a))return n[a]},HD=(e,t,n)=>{const a=cl(e,n);return a!==void 0?a:cl(t,n)},gy=(e,t,n)=>{for(const a in t)a!=="__proto__"&&a!=="constructor"&&(a in e?Y(e[a])||e[a]instanceof String||Y(t[a])||t[a]instanceof String?n&&(e[a]=t[a]):gy(e[a],t[a],n):e[a]=t[a]);return e},Ja=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var WD={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};const UD=e=>Y(e)?e.replace(/[&<>"'\/]/g,t=>WD[t]):e;class KD{constructor(t){this.capacity=t,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(t){const n=this.regExpMap.get(t);if(n!==void 0)return n;const a=new RegExp(t);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(t,a),this.regExpQueue.push(t),a}}const GD=[" ",",","?","!",";"],QD=new KD(20),YD=(e,t,n)=>{t=t||"",n=n||"";const a=GD.filter(i=>t.indexOf(i)<0&&n.indexOf(i)<0);if(a.length===0)return!0;const o=QD.getRegExp(`(${a.map(i=>i==="?"?"\\?":i).join("|")})`);let s=!o.test(e);if(!s){const i=e.indexOf(n);i>0&&!o.test(e.substring(0,i))&&(s=!0)}return s},du=(e,t,n=".")=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;const a=t.split(n);let o=e;for(let s=0;s<a.length;){if(!o||typeof o!="object")return;let i,l="";for(let c=s;c<a.length;++c)if(c!==s&&(l+=n),l+=a[c],i=o[l],i!==void 0){if(["string","number","boolean"].indexOf(typeof i)>-1&&c<a.length-1)continue;s+=c-s+1;break}o=i}return o},cs=e=>e==null?void 0:e.replace("_","-"),ZD={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){var n,a;(a=(n=console==null?void 0:console[e])==null?void 0:n.apply)==null||a.call(n,console,t)}};class dl{constructor(t,n={}){this.init(t,n)}init(t,n={}){this.prefix=n.prefix||"i18next:",this.logger=t||ZD,this.options=n,this.debug=n.debug}log(...t){return this.forward(t,"log","",!0)}warn(...t){return this.forward(t,"warn","",!0)}error(...t){return this.forward(t,"error","")}deprecate(...t){return this.forward(t,"warn","WARNING DEPRECATED: ",!0)}forward(t,n,a,o){return o&&!this.debug?null:(Y(t[0])&&(t[0]=`${a}${this.prefix} ${t[0]}`),this.logger[n](t))}create(t){return new dl(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new dl(this.logger,t)}}var tn=new dl;class Vl{constructor(){this.observers={}}on(t,n){return t.split(" ").forEach(a=>{this.observers[a]||(this.observers[a]=new Map);const o=this.observers[a].get(n)||0;this.observers[a].set(n,o+1)}),this}off(t,n){if(this.observers[t]){if(!n){delete this.observers[t];return}this.observers[t].delete(n)}}emit(t,...n){this.observers[t]&&Array.from(this.observers[t].entries()).forEac
vendor: 3,033 bytes, line 398
398h(([o,s])=>{for(let i=0;i<s;i++)o(...n)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([o,s])=>{for(let i=0;i<s;i++)o.apply(o,[t,...n])})}}class kf extends Vl{constructor(t,n={ns:["translation"],defaultNS:"translation"}){super(),this.data=t||{},this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const n=this.options.ns.indexOf(t);n>-1&&this.options.ns.splice(n,1)}getResource(t,n,a,o={}){var d,u;const s=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,i=o.ignoreJSONStructure!==void 0?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let l;t.indexOf(".")>-1?l=t.split("."):(l=[t,n],a&&(Array.isArray(a)?l.push(...a):Y(a)&&s?l.push(...a.split(s)):l.push(a)));const c=cl(this.data,l);return!c&&!n&&!a&&t.indexOf(".")>-1&&(t=l[0],n=l[1],a=l.slice(2).join(".")),c||!i||!Y(a)?c:du((u=(d=this.data)==null?void 0:d[t])==null?void 0:u[n],a,s)}addResource(t,n,a,o,s={silent:!1}){const i=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator;let l=[t,n];a&&(l=l.concat(i?a.split(i):a)),t.indexOf(".")>-1&&(l=t.split("."),o=n,n=l[1]),this.addNamespaces(n),wf(this.data,l,o),s.silent||this.emit("added",t,n,a,o)}addResources(t,n,a,o={silent:!1}){for(const s in a)(Y(a[s])||Array.isArray(a[s]))&&this.addResource(t,n,s,a[s],{silent:!0});o.silent||this.emit("added",t,n,a)}addResourceBundle(t,n,a,o,s,i={silent:!1,skipCopy:!1}){let l=[t,n];t.indexOf(".")>-1&&(l=t.split("."),o=a,a=n,n=l[1]),this.addNamespaces(n);let c=cl(this.data,l)||{};i.skipCopy||(a=JSON.parse(JSON.stringify(a))),o?gy(c,a,s):c={...c,...a},wf(this.data,l,c),i.silent||this.emit("added",t,n,a)}removeResourceBundle(t,n){this.hasResourceBundle(t,n)&&delete this.data[t][n],this.removeNamespaces(n),this.emit("removed",t,n)}hasResourceBundle(t,n){return this.getResource(t,n)!==void 0}getResourceBundle(t,n){return n||(n=this.options.defaultNS),this.getResource(t,n)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const n=this.getDataByLanguage(t);return!!(n&&Object.keys(n)||[]).find(o=>n[o]&&Object.keys(n[o]).length>0)}toJSON(){return this.data}}var vy={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,a,o){return e.forEach(s=>{var i;t=((i=this.processors[s])==null?void 0:i.process(t,n,a,o))??t}),t}};const by=Symbol("i18next/PATH_KEY");function XD(){const e=[],t=Object.create(null);let n;return t.get=(a,o)=>{var s;return(s=n==null?void 0:n.revoke)==null||s.call(n),o===by?e:(e.push(o),n=Proxy.revocable(a,t),n.proxy)},Proxy.revocable(Object.create(null),t).proxy}function uu(e,t){const{[by]:n}=e(XD());return n.join((t==null?void 0:t.keySeparator)??".")}const jf={},Mc=e=>!Y(e)&&typeof e!="boolean"&&typeof e!="number";class ul extends Vl{constructor(t,n={}){super(),BD(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","
398i18nFormat","utils"],t,this),this.options=n,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=tn.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t,n={interpolation:{}}){const a={...n};if(t==null)return!1;const o=this.resolve(t,a);if((o==null?void 0:o.res)===void 0)return!1;const s=Mc(o.res);return!(a.returnObjects===!1&&s)}extractFromKey(t,n){let a=n.nsSeparator!==void 0?n.nsSeparator:this.options.nsSeparator;a===void 0&&(a=":");const o=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator;let s=n.ns||this.options.defaultNS||[];const i=a&&t.indexOf(a)>-1,l=!this.options.userDefinedKeySeparator&&!n.keySeparator&&!this.options.userDefinedNsSeparator&&!n.nsSeparator&&!YD(t,a,o);if(i&&!l){const c=t.match(this.interpolator.nestingRegexp);if(c&&c.length>0)return{key:t,namespaces:Y(s)?[s]:s};const d=t.split(a);(a!==o||a===o&&this.options.ns.indexOf(d[0])>-1)&&(s=d.shift()),t=d.join(o)}return{key:t,namespaces:Y(s)?[s]:s}}translate(t,n,a){let o=typeof n=="object"?{...n}:n;if(typeof o!="object"&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),typeof o=="object"&&(o={...o}),o||(o={}),t==null)return"";typeof t=="function"&&(t=uu(t,{...this.options,...o})),Array.isArray(t)||(t=[String(t)]);const s=o.returnDetails!==void 0?o.returnDetails:this.options.returnDetails,i=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,{key:l,namespaces:c}=this.extractFromKey(t[t.length-1],o),d=c[c.length-1];let u=o.nsSeparator!==void 0?o.nsSeparator:this.options.nsSeparator;u===void 0&&(u=":");const p=o.lng||this.language,h=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if((p==null?void 0:p.toLowerCase())==="cimode")return h?s?{res:`${d}${u}${l}`,usedKey:l,exactUsedKey:l,usedLng:p,usedNS:d,usedParams:this.getUsedParamsDetails(o)}:`${d}${u}${l}`:s?{res:l,usedKey:l,exactUsedKey:l,usedLng:p,usedNS:d,usedParams:this.getUsedParamsDetails(o)}:l;const m=this.resolve(t,o);let y=m==null?void 0:m.res;const g=(m==null?void 0:m.usedKey)||l,w=(m==null?void 0:m.exactUsedKey)||l,b=["[object Number]","[object Function]","[object RegExp]"],v=o.joinArrays!==void 0?o.joinArrays:this.options.joinArrays,x=!this.i18nFormat||this.i18nFormat.handleAsObject,k=o.count!==void 0&&!Y(o.count),j=ul.hasDefaultValue(o),T=k?this.pluralResolver.getSuffix(p,o.count,o):"",N=o.ordinal&&k?this.pluralResolver.getSuffix(p,o.count,{ordinal:!1}):"",D=k&&!o.ordinal&&o.count===0,C=D&&o[`defaultValue${this.options.pluralSeparator}zero`]||o[`defaultValue${T}`]||o[`defaultValue${N}`]||o.defaultValue;let E=y;x&&!y&&j&&(E=C);const H=Mc(E),_=Object.prototype.toString.apply(E);if(x&&E&&H&&b.indexOf(_)<0&&!(Y(v)&&Array.isArray(E))){if(!o.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const z=this.options.returnedObjectHandler?this.options.returnedObjectHandler(g,E,{...o,ns:c}):`key '${l} (${this.language})' returned an object instead of string.`;return s?(m.res=z,m.usedParams=this.getUsedParamsDetails(o),m):z}if(i){const z=Array.isArray(E),A=z?[]:{},W=z?w:g;for(const F in E)if(Object.prototype.hasOwnProperty.call(E,F)){const K=`${W}${i}${F}`;j&&!y?A[F]=this.translate(K,{...o,defaultValue:Mc(C)?C[F]:void 0,joinArrays:!1,ns:c}):A[F]=this.translate(K,{...o,joinArrays:!1,ns:c}),A[F]===K&&(A[F]=E[F])}y=A}}else if(x&&Y(v)&&Array.isArray(y))y=y.join(v),y&&(y=this.extendTranslation(y,t,o,a));else{let z=!1,A=!1;!this.isValidLookup(y)&&j&&(z=!0,y=C),this.isValidLookup(y)||(A=!0,y=l);const F=(o.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&A?void 0:y,K=j&&C!==y&&this.options.updateMissing;if(A||z||K){if(this.logger.log(K?"updateKey":"missingKey",p,d,l,K?C:y),i){const U=this.resolve(l,{...o,keySeparator:!1});U&&U.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let S=[];const I=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if(this.options.saveMissingTo==="fallback"&&I&&I[0])for(let U=0;U<I.length;U++)S.push(I[U]);else this.options.saveMissingTo==="all"?S=this.languageUtils.toResolveHierarchy(o.lng||this.language):S.push(o.lng||this.language);const M=(U,$,X)=>{var xe;const re=j&&X!==y?X:F;this.options.missingKeyHandler?this.options.missingKeyHandler(U,d,$,re,K,o):(xe=this.backendConnector)!=null&&xe.saveMissing&&this.backendConnector.saveMissing(U,d,$,re,K,o),this.emit
vendor: 29,277 bytes, line 398
398("missingKey",U,d,$,y)};this.options.saveMissing&&(this.options.saveMissingPlurals&&k?S.forEach(U=>{const $=this.pluralResolver.getSuffixes(U,o);D&&o[`defaultValue${this.options.pluralSeparator}zero`]&&$.indexOf(`${this.options.pluralSeparator}zero`)<0&&$.push(`${this.options.pluralSeparator}zero`),$.forEach(X=>{M([U],l+X,o[`defaultValue${X}`]||C)})}):M(S,l,C))}y=this.extendTranslation(y,t,o,m,a),A&&y===l&&this.options.appendNamespaceToMissingKey&&(y=`${d}${u}${l}`),(A||z)&&this.options.parseMissingKeyHandler&&(y=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${d}${u}${l}`:l,z?y:void 0,o))}return s?(m.res=y,m.usedParams=this.getUsedParamsDetails(o),m):y}extendTranslation(t,n,a,o,s){var c,d;if((c=this.i18nFormat)!=null&&c.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...a},a.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!a.skipInterpolation){a.interpolation&&this.interpolator.init({...a,interpolation:{...this.options.interpolation,...a.interpolation}});const u=Y(t)&&(((d=a==null?void 0:a.interpolation)==null?void 0:d.skipOnVariables)!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let p;if(u){const m=t.match(this.interpolator.nestingRegexp);p=m&&m.length}let h=a.replace&&!Y(a.replace)?a.replace:a;if(this.options.interpolation.defaultVariables&&(h={...this.options.interpolation.defaultVariables,...h}),t=this.interpolator.interpolate(t,h,a.lng||this.language||o.usedLng,a),u){const m=t.match(this.interpolator.nestingRegexp),y=m&&m.length;p<y&&(a.nest=!1)}!a.lng&&o&&o.res&&(a.lng=this.language||o.usedLng),a.nest!==!1&&(t=this.interpolator.nest(t,(...m)=>(s==null?void 0:s[0])===m[0]&&!a.context?(this.logger.warn(`It seems you are nesting recursively key: ${m[0]} in key: ${n[0]}`),null):this.translate(...m,n),a)),a.interpolation&&this.interpolator.reset()}const i=a.postProcess||this.options.postProcess,l=Y(i)?[i]:i;return t!=null&&(l!=null&&l.length)&&a.applyPostProcessor!==!1&&(t=vy.handle(l,t,n,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...o,usedParams:this.getUsedParamsDetails(a)},...a}:a,this)),t}resolve(t,n={}){let a,o,s,i,l;return Y(t)&&(t=[t]),t.forEach(c=>{if(this.isValidLookup(a))return;const d=this.extractFromKey(c,n),u=d.key;o=u;let p=d.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const h=n.count!==void 0&&!Y(n.count),m=h&&!n.ordinal&&n.count===0,y=n.context!==void 0&&(Y(n.context)||typeof n.context=="number")&&n.context!=="",g=n.lngs?n.lngs:this.languageUtils.toResolveHierarchy(n.lng||this.language,n.fallbackLng);p.forEach(w=>{var b,v;this.isValidLookup(a)||(l=w,!jf[`${g[0]}-${w}`]&&((b=this.utils)!=null&&b.hasLoadedNamespace)&&!((v=this.utils)!=null&&v.hasLoadedNamespace(l))&&(jf[`${g[0]}-${w}`]=!0,this.logger.warn(`key "${o}" for languages "${g.join(", ")}" won't get resolved as namespace "${l}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),g.forEach(x=>{var T;if(this.isValidLookup(a))return;i=x;const k=[u];if((T=this.i18nFormat)!=null&&T.addLookupKeys)this.i18nFormat.addLookupKeys(k,u,x,w,n);else{let N;h&&(N=this.pluralResolver.getSuffix(x,n.count,n));const D=`${this.options.pluralSeparator}zero`,C=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(h&&(n.ordinal&&N.indexOf(C)===0&&k.push(u+N.replace(C,this.options.pluralSeparator)),k.push(u+N),m&&k.push(u+D)),y){const E=`${u}${this.options.contextSeparator||"_"}${n.context}`;k.push(E),h&&(n.ordinal&&N.indexOf(C)===0&&k.push(E+N.replace(C,this.options.pluralSeparator)),k.push(E+N),m&&k.push(E+D))}}let j;for(;j=k.pop();)this.isValidLookup(a)||(s=j,a=this.getResource(x,w,j,n))}))})}),{res:a,usedKey:o,exactUsedKey:s,usedLng:i,usedNS:l}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,n,a,o={}){var s;return(s=this.i18nFormat)!=null&&s.getResource?this.i18nFormat.getResource(t,n,a,o):this.resourceStore.getResource(t,n,a,o)}getUsedParamsDetails(t={}){const n=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],a=t.replace&&!Y(t.replace);let o=a?t.replace:t;if(a&&typeof t.count<"u"&&(o.count=t.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!a){o={...o};for(const s of n)delete o[s]}return o}static hasDefaultValue(t){const n="defaultValue";for(const a in t)if(Object.prototype.hasOwnProperty.call(t,a)&&n===a.substring(0,n.length)&&t[a]!==void 0)return!0;return!1}}class Tf{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=tn.create("languageUtils")}getScriptPartFromCode(t){if(t=cs(t),!t||t.indexOf("-")<0)return null;const n=t.split("-");return n.length===2||(n.pop(),n[n.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(n.join("-"))}getLanguagePartFromCode(t){if(t=cs(t),!t||t.indexOf("-")<0)return t;const n=t.split("-");return this.formatLanguageCode(n[0])}formatLanguageCode(t){if(Y(t)&&t.indexOf("-")>-1){let n;try{n=Intl.getCanonicalLocales(t)[0]}catch{}return n&&this.options.lowerCaseLng&&(n=n.toLowerCase()),n||(this.options.lowerCaseLng?t.toLowerCase():t)}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let n;return t.forEach(a=>{if(n)return;const o=this.formatLanguageCode(a);(!this.options.supportedLngs||this.isSupportedCode(o))&&(n=o)}),!n&&this.options.supportedLngs&&t.forEach(a=>{if(n)return;const o=this.getScriptPartFromCode(a);if(this.isSupportedCode(o))return n=o;const s=this.getLanguagePartFromCode(a);if(this.isSupportedCode(s))return n=s;n=this.options.supportedLngs.find(i=>{if(i===s)return i;if(!(i.indexOf("-")<0&&s.indexOf("-")<0)&&(i.indexOf("-")>0&&s.indexOf("-")<0&&i.substring(0,i.indexOf("-"))===s||i.indexOf(s)===0&&s.length>1))return i})}),n||(n=this.getFallbackCodes(this.options.fallbackLng)[0]),n}getFallbackCodes(t,n){if(!t)return[];if(typeof t=="function"&&(t=t(n)),Y(t)&&(t=[t]),Array.isArray(t))return t;if(!n)return t.default||[];let a=t[n];return a||(a=t[this.getScriptPartFromCode(n)]),a||(a=t[this.formatLanguageCode(n)]),a||(a=t[this.getLanguagePartFromCode(n)]),a||(a=t.default),a||[]}toResolveHierarchy(t,n){const a=this.getFallbackCodes((n===!1?[]:n)||this.options.fallbackLng||[],t),o=[],s=i=>{i&&(this.isSupportedCode(i)?o.push(i):this.logger.warn(`rejecting language code not found in supportedLngs: ${i}`))};return Y(t)&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&s(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&s(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&s(this.getLanguagePartFromCode(t))):Y(t)&&s(this.formatLanguageCode(t)),a.forEach(i=>{o.indexOf(i)<0&&s(this.formatLanguageCode(i))}),o}}const Nf={zero:0,one:1,two:2,few:3,many:4,other:5},Df={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class JD{constructor(t,n={}){this.languageUtils=t,this.options=n,this.logger=tn.create("pluralResolver"),this.pluralRulesCache={}}clearCache(){this.pluralRulesCache={}}getRule(t,n={}){const a=cs(t==="dev"?"en":t),o=n.ordinal?"ordinal":"cardinal",s=JSON.stringify({cleanedCode:a,type:o});if(s in this.pluralRulesCache)return this.pluralRulesCache[s];let i;try{i=new Intl.PluralRules(a,{type:o})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),Df;if(!t.match(/-|_/))return Df;const c=this.languageUtils.getLanguagePartFromCode(t);i=this.getRule(c,n)}return this.pluralRulesCache[s]=i,i}needsPlural(t,n={}){let a=this.getRule(t,n);return a||(a=this.getRule("dev",n)),(a==null?void 0:a.resolvedOptions().pluralCategories.length)>1}getPluralFormsOfKey(t,n,a={}){return this.getSuffixes(t,a).map(o=>`${n}${o}`)}getSuffixes(t,n={}){let a=this.getRule(t,n);return a||(a=this.getRule("dev",n)),a?a.resolvedOptions().pluralCategories.sort((o,s)=>Nf[o]-Nf[s]).map(o=>`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:""}${o}`):[]}getSuffix(t,n,a={}){const o=this.getRule(t,a);return o?`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${o.select(n)}`:(this.logger.warn(`no plural rule found for: ${t}`),this.getSuffix("dev",n,a))}}const Cf=(e,t,n,a=".",o=!0)=>{let s=HD(e,t,n);return!s&&o&&Y(n)&&(s=du(e,n,a),s===void 0&&(s=du(t,n,a))),s},Fc=e=>e.replace(/\$/g,"$$$$");class Sf{constructor(t={}){var n;this.logger=tn.create("interpolator"),this.options=t,this.format=((n=t==null?void 0:t.interpolation)==null?void 0:n.format)||(a=>a),this.init(t)}init(t={}){t.interpolation||(t.interpolation={escapeValue:!0});const{escape:n,escapeValue:a,useRawValueToEscape:o,prefix:s,prefixEscaped:i,suffix:l,suffixEscaped:c,formatSeparator:d,unescapeSuffix:u,unescapePrefix:p,nestingPrefix:h,nestingPrefixEscaped:m,nestingSuffix:y,nestingSuffixEscaped:g,nestingOptionsSeparator:w,maxReplaces:b,alwaysFormat:v}=t.interpolation;this.escape=n!==void 0?n:UD,this.escapeValue=a!==void 0?a:!0,this.useRawValueToEscape=o!==void 0?o:!1,this.prefix=s?Ja(s):i||"{{",this.suffix=l?Ja(l):c||"}}",this.formatSeparator=d||",",this.unescapePrefix=u?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":u||"",this.nestingPrefix=h?Ja(h):m||Ja("$t("),this.nestingSuffix=y?Ja(y):g||Ja(")"),this.nestingOptionsSeparator=w||",",this.maxReplaces=b||1e3,this.alwaysFormat=v!==void 0?v:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=(n,a)=>(n==null?void 0:n.source)===a?(n.lastIndex=0,n):new RegExp(a,"g");this.regexp=t(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=t(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=t(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(t,n,a,o){var m;let s,i,l;const c=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},d=y=>{if(y.indexOf(this.formatSeparator)<0){const v=Cf(n,c,y,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(v,void 0,a,{...o,...n,interpolationkey:y}):v}const g=y.split(this.formatSeparator),w=g.shift().trim(),b=g.join(this.formatSeparator).trim();return this.format(Cf(n,c,w,this.options.keySeparator,this.options.ignoreJSONStructure),b,a,{...o,...n,interpolationkey:w})};this.resetRegExp();const u=(o==null?void 0:o.missingInterpolationHandler)||this.options.missingInterpolationHandler,p=((m=o==null?void 0:o.interpolation)==null?void 0:m.skipOnVariables)!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:y=>Fc(y)},{regex:this.regexp,safeValue:y=>this.escapeValue?Fc(this.escape(y)):Fc(y)}].forEach(y=>{for(l=0;s=y.regex.exec(t);){const g=s[1].trim();if(i=d(g),i===void 0)if(typeof u=="function"){const b=u(t,s,o);i=Y(b)?b:""}else if(o&&Object.prototype.hasOwnProperty.call(o,g))i="";else if(p){i=s[0];continue}else this.logger.warn(`missed to pass in variable ${g} for interpolating ${t}`),i="";else!Y(i)&&!this.useRawValueToEscape&&(i=bf(i));const w=y.safeValue(i);if(t=t.replace(s[0],w),p?(y.regex.lastIndex+=i.length,y.regex.lastIndex-=s[0].length):y.regex.lastIndex=0,l++,l>=this.maxReplaces)break}}),t}nest(t,n,a={}){let o,s,i;const l=(c,d)=>{const u=this.nestingOptionsSeparator;if(c.indexOf(u)<0)return c;const p=c.split(new RegExp(`${u}[ ]*{`));let h=`{${p[1]}`;c=p[0],h=this.interpolate(h,i);const m=h.match(/'/g),y=h.match(/"/g);(((m==null?void 0:m.length)??0)%2===0&&!y||y.length%2!==0)&&(h=h.replace(/'/g,'"'));try{i=JSON.parse(h),d&&(i={...d,...i})}catch(g){return this.logger.warn(`failed parsing options string in nesting for key ${c}`,g),`${c}${u}${h}`}return i.defaultValue&&i.defaultValue.indexOf(this.prefix)>-1&&delete i.defaultValue,c};for(;o=this.nestingRegexp.exec(t);){let c=[];i={...a},i=i.replace&&!Y(i.replace)?i.replace:i,i.applyPostProcessor=!1,delete i.defaultValue;const d=/{.*}/.test(o[1])?o[1].lastIndexOf("}")+1:o[1].indexOf(this.formatSeparator);if(d!==-1&&(c=o[1].slice(d).split(this.formatSeparator).map(u=>u.trim()).filter(Boolean),o[1]=o[1].slice(0,d)),s=n(l.call(this,o[1].trim(),i),i),s&&o[0]===t&&!Y(s))return s;Y(s)||(s=bf(s)),s||(this.logger.warn(`missed to resolve ${o[1]} for nesting ${t}`),s=""),c.length&&(s=c.reduce((u,p)=>this.format(u,p,a.lng,{...a,interpolationkey:o[1].trim()}),s.trim())),t=t.replace(o[0],s),this.regexp.lastIndex=0}return t}}const eC=e=>{let t=e.toLowerCase().trim();const n={};if(e.indexOf("(")>-1){const a=e.split("(");t=a[0].toLowerCase().trim();const o=a[1].substring(0,a[1].length-1);t==="currency"&&o.indexOf(":")<0?n.currency||(n.currency=o.trim()):t==="relativetime"&&o.indexOf(":")<0?n.range||(n.range=o.trim()):o.split(";").forEach(i=>{if(i){const[l,...c]=i.split(":"),d=c.join(":").trim().replace(/^'+|'+$/g,""),u=l.trim();n[u]||(n[u]=d),d==="false"&&(n[u]=!1),d==="true"&&(n[u]=!0),isNaN(d)||(n[u]=parseInt(d,10))}})}return{formatName:t,formatOptions:n}},Pf=e=>{const t={};return(n,a,o)=>{let s=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(s={...s,[o.interpolationkey]:void 0});const i=a+JSON.stringify(s);let l=t[i];return l||(l=e(cs(a),o),t[i]=l),l(n)}},tC=e=>(t,n,a)=>e(cs(n),a)(t);class nC{constructor(t={}){this.logger=tn.create("formatter"),this.options=t,this.init(t)}init(t,n={interpolation:{}}){this.formatSeparator=n.interpolation.formatSeparator||",";const a=n.cacheInBuiltFormats?Pf:tC;this.formats={number:a((o,s)=>{const i=new Intl.NumberFormat(o,{...s});return l=>i.format(l)}),currency:a((o,s)=>{const i=new Intl.NumberFormat(o,{...s,style:"currency"});return l=>i.format(l)}),datetime:a((o,s)=>{const i=new Intl.DateTimeFormat(o,{...s});return l=>i.format(l)}),relativetime:a((o,s)=>{const i=new Intl.RelativeTimeFormat(o,{...s});return l=>i.format(l,s.range||"day")}),list:a((o,s)=>{const i=new Intl.ListFormat(o,{...s});return l=>i.format(l)})}}add(t,n){this.formats[t.toLowerCase().trim()]=n}addCached(t,n){this.formats[t.toLowerCase().trim()]=Pf(n)}format(t,n,a,o={}){const s=n.split(this.formatSeparator);if(s.length>1&&s[0].indexOf("(")>1&&s[0].indexOf(")")<0&&s.find(l=>l.indexOf(")")>-1)){const l=s.findIndex(c=>c.indexOf(")")>-1);s[0]=[s[0],...s.splice(1,l)].join(this.formatSeparator)}return s.reduce((l,c)=>{var p;const{formatName:d,formatOptions:u}=eC(c);if(this.formats[d]){let h=l;try{const m=((p=o==null?void 0:o.formatParams)==null?void 0:p[o.interpolationkey])||{},y=m.locale||m.lng||o.locale||o.lng||a;h=this.formats[d](l,y,{...u,...o,...m})}catch(m){this.logger.warn(m)}return h}else this.logger.warn(`there was no format function for ${d}`);return l},t)}}const aC=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)};class rC extends Vl{constructor(t,n,a,o={}){var s,i;super(),this.backend=t,this.store=n,this.services=a,this.languageUtils=a.languageUtils,this.options=o,this.logger=tn.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=o.maxParallelReads||10,this.readingCalls=0,this.maxRetries=o.maxRetries>=0?o.maxRetries:5,this.retryTimeout=o.retryTimeout>=1?o.retryTimeout:350,this.state={},this.queue=[],(i=(s=this.backend)==null?void 0:s.init)==null||i.call(s,a,o.backend,o)}queueLoad(t,n,a,o){const s={},i={},l={},c={};return t.forEach(d=>{let u=!0;n.forEach(p=>{const h=`${d}|${p}`;!a.reload&&this.store.hasResourceBundle(d,p)?this.state[h]=2:this.state[h]<0||(this.state[h]===1?i[h]===void 0&&(i[h]=!0):(this.state[h]=1,u=!1,i[h]===void 0&&(i[h]=!0),s[h]===void 0&&(s[h]=!0),c[p]===void 0&&(c[p]=!0)))}),u||(l[d]=!0)}),(Object.keys(s).length||Object.keys(i).length)&&this.queue.push({pending:i,pendingCount:Object.keys(i).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(s),pending:Object.keys(i),toLoadLanguages:Object.keys(l),toLoadNamespaces:Object.keys(c)}}loaded(t,n,a){const o=t.split("|"),s=o[0],i=o[1];n&&this.emit("failedLoading",s,i,n),!n&&a&&this.store.addResourceBundle(s,i,a,void 0,void 0,{skipCopy:!0}),this.state[t]=n?-1:2,n&&a&&(this.state[t]=0);const l={};this.queue.forEach(c=>{$D(c.loaded,[s],i),aC(c,t),n&&c.errors.push(n),c.pendingCount===0&&!c.done&&(Object.keys(c.loaded).forEach(d=>{l[d]||(l[d]={});const u=c.loaded[d];u.length&&u.forEach(p=>{l[d][p]===void 0&&(l[d][p]=!0)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit("loaded",l),this.queue=this.queue.filter(c=>!c.done)}read(t,n,a,o=0,s=this.retryTimeout,i){if(!t.length)return i(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:n,fcName:a,tried:o,wait:s,callback:i});return}this.readingCalls++;const l=(d,u)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(d&&u&&o<this.maxRetries){setTimeout(()=>{this.read.call(this,t,n,a,o+1,s*2,i)},s);return}i(d,u)},c=this.backend[a].bind(this.backend);if(c.length===2){try{const d=c(t,n);d&&typeof d.then=="function"?d.then(u=>l(null,u)).catch(l):l(null,d)}catch(d){l(d)}return}return c(t,n,l)}prepareLoading(t,n,a={},o){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();Y(t)&&(t=this.languageUtils.toResolveHierarchy(t)),Y(n)&&(n=[n]);const s=this.queueLoad(t,n,a,o);if(!s.toLoad.length)return s.pending.length||o(),null;s.toLoad.forEach(i=>{this.loadOne(i)})}load(t,n,a){this.prepareLoading(t,n,{},a)}reload(t,n,a){this.prepareLoading(t,n,{reload:!0},a)}loadOne(t,n=""){const a=t.split("|"),o=a[0],s=a[1];this.read(o,s,"read",void 0,void 0,(i,l)=>{i&&this.logger.warn(`${n}loading namespace ${s} for language ${o} failed`,i),!i&&l&&this.logger.log(`${n}loaded namespace ${s} for language ${o}`,l),this.loaded(t,i,l)})}saveMissing(t,n,a,o,s,i={},l=()=>{}){var c,d,u,p,h;if((d=(c=this.services)==null?void 0:c.utils)!=null&&d.hasLoadedNamespace&&!((p=(u=this.services)==null?void 0:u.utils)!=null&&p.hasLoadedNamespace(n))){this.logger.warn(`did not save key "${a}" as the namespace "${n}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(a==null||a==="")){if((h=this.backend)!=null&&h.create){const m={...i,isUpdate:s},y=this.backend.create.bind(this.backend);if(y.length<6)try{let g;y.length===5?g=y(t,n,a,o,m):g=y(t,n,a,o),g&&typeof g.then=="function"?g.then(w=>l(null,w)).catch(l):l(null,g)}catch(g){l(g)}else y(t,n,a,o,l,m)}!t||!t[0]||this.store.addResource(t[0],n,a,o)}}}const qc=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]=="object"&&(t=e[1]),Y(e[1])&&(t.defaultValue=e[1]),Y(e[2])&&(t.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const n=e[3]||e[2];Object.keys(n).forEach(a=>{t[a]=n[a]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Ef=e=>{var t,n;return Y(e.ns)&&(e.ns=[e.ns]),Y(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),Y(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),((n=(t=e.supportedLngs)==null?void 0:t.indexOf)==null?void 0:n.call(t,"cimode"))<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),typeof e.initImmediate=="boolean"&&(e.initAsync=e.initImmediate),e},Js=()=>{},oC=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(n=>{typeof e[n]=="function"&&(e[n]=e[n].bind(e))})},sC=e=>{var t,n,a,o,s,i,l,c,d;return!!(((a=(n=(t=e==null?void 0:e.modules)==null?void 0:t.backend)==null?void 0:n.name)==null?void 0:a.indexOf("Locize"))>0||((l=(i=(s=(o=e==null?void 0:e.modules)==null?void 0:o.backend)==null?void 0:s.constructor)==null?void 0:i.name)==null?void 0:l.indexOf("Locize"))>0||(d=(c=e==null?void 0:e.options)==null?void 0:c.backend)!=null&&d.backends&&e.options.backend.backends.some(u=>{var p,h,m;return((p=u==null?void 0:u.name)==null?void 0:p.indexOf("Locize"))>0||((m=(h=u==null?void 0:u.constructor)==null?void 0:h.name)==null?void 0:m.indexOf("Locize"))>0}))};class zo extends Vl{constructor(t={},n){if(super(),this.options=Ef(t),this.services={},this.logger=tn,this.modules={external:[]},oC(this),n&&!this.isInitialized&&!t.isClone){if(!this.options.initAsync)return this.init(t,n),this;setTimeout(()=>{this.init(t,n)},0)}}init(t={},n){this.isInitializing=!0,typeof t=="function"&&(n=t,t={}),t.defaultNS==null&&t.ns&&(Y(t.ns)?t.defaultNS=t.ns:t.ns.indexOf("translation")<0&&(t.defaultNS=t.ns[0]));const a=qc();this.options={...a,...this.options,...Ef(t)},this.options.interpolation={...a.interpolation,...this.options.interpolation},t.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=t.keySeparator),t.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=t.nsSeparator),typeof this.options.overloadTranslationOptionHandler!="function"&&(this.options.overloadTranslationOptionHandler=a.overloadTranslationOptionHandler),this.options.showSupportNotice!==!1&&!sC(this)&&typeof console<"u"&&typeof console.info<"u"&&console.info("🌐 i18next is maintained with support from locize.com — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙");const o=d=>d?typeof d=="function"?new d:d:null;if(!this.options.isClone){this.modules.logger?tn.init(o(this.modules.logger),this.options):tn.init(null,this.options);let d;this.modules.formatter?d=this.modules.formatter:d=nC;const u=new Tf(this.options);this.store=new kf(this.options.resources,this.options);const p=this.services;p.logger=tn,p.resourceStore=this.store,p.languageUtils=u,p.pluralResolver=new JD(u,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==a.interpolation.format&&this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),d&&(!this.options.interpolation.format||this.options.interpolation.format===a.interpolation.format)&&(p.formatter=o(d),p.formatter.init&&p.formatter.init(p,this.options),this.options.interpolation.format=p.formatter.format.bind(p.formatter)),p.interpolator=new Sf(this.options),p.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},p.backendConnector=new rC(o(this.modules.backend),p.resourceStore,p,this.options),p.backendConnector.on("*",(m,...y)=>{this.emit(m,...y)}),this.modules.languageDetector&&(p.languageDetector=o(this.modules.languageDetector),p.languageDetector.init&&p.languageDetector.init(p,this.options.detection,this.options)),this.modules.i18nFormat&&(p.i18nFormat=o(this.modules.i18nFormat),p.i18nFormat.init&&p.i18nFormat.init(this)),this.translator=new ul(this.services,this.options),this.translator.on("*",(m,...y)=>{this.emit(m,...y)}),this.modules.external.forEach(m=>{m.init&&m.init(this)})}if(this.format=this.options.interpolation.format,n||(n=Js),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.length>0&&d[0]!=="dev"&&(this.options.lng=d[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(d=>{this[d]=(...u)=>this.store[d](...u)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(d=>{this[d]=(...u)=>(this.store[d](...u),this)});const l=xo(),c=()=>{const d=(u,p)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(p),n(u,p)};if(this.languages&&!this.isInitialized)return d(null,this.t.bind(this));this.changeLanguage(this.options.lng,d)};return this.options.resources||!this.options.initAsync?c():setTimeout(c,0),l}loadResources(t,n=Js){var s,i;let a=n;const o=Y(t)?t:this.language;if(typeof t=="function"&&(a=t),!this.options.resources||this.options.partialBundledLanguages){if((o==null?void 0:o.toLowerCase())==="cimode"&&(!this.options.preload||this.options.preload.length===0))return a();const l=[],c=d=>{if(!d||d==="cimode")return;this.services.languageUtils.toResolveHierarchy(d).forEach(p=>{p!=="cimode"&&l.indexOf(p)<0&&l.push(p)})};o?c(o):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(u=>c(u)),(i=(s=this.options.preload)==null?void 0:s.forEach)==null||i.call(s,d=>c(d)),this.services.backendConnector.load(l,this.options.ns,d=>{!d&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),a(d)})}else a(null)}reloadResources(t,n,a){const o=xo();return typeof t=="function"&&(a=t,t=void 0),typeof n=="function"&&(a=n,n=void 0),t||(t=this.languages),n||(n=this.options.ns),a||(a=Js),this.services.backendConnector.reload(t,n,s=>{o.resolve(),a(s)}),o}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&vy.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1)){for(let n=0;n<this.languages.length;n++){const a=this.languages[n];if(!(["cimode","dev"].indexOf(a)>-1)&&this.store.hasLanguageSomeTranslations(a)){this.resolvedLanguage=a;break}}!this.resolvedLanguage&&this.languages.indexOf(t)<0&&this.store.hasLanguageSomeTranslations(t)&&(this.resolvedLanguage=t,this.languages.unshift(t))}}changeLanguage(t,n){this.isLanguageChangingTo=t;const a=xo();this.emit("languageChanging",t);const o=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},s=(l,c)=>{c?this.isLanguageChangingTo===t&&(o(c),this.translator.changeLanguage(c),this.isLanguageChangingTo=void 0,this.emit("languageChanged",c),this.logger.log("languageChanged",c)):this.isLanguageChangingTo=void 0,a.resolve((...d)=>this.t(...d)),n&&n(l,(...d)=>this.t(...d))},i=l=>{var u,p;!t&&!l&&this.services.languageDetector&&(l=[]);const c=Y(l)?l:l&&l[0],d=this.store.hasLanguageSomeTranslations(c)?c:this.services.languageUtils.getBestMatchFromCodes(Y(l)?[l]:l);d&&(this.language||o(d),this.translator.language||this.translator.changeLanguage(d),(p=(u=this.services.languageDetector)==null?void 0:u.cacheUserLanguage)==null||p.call(u,d)),this.loadResources(d,h=>{s(h,d)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?i(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(i):this.services.languageDetector.detect(i):i(t),a}getFixedT(t,n,a){const o=(s,i,...l)=>{let c;typeof i!="object"?c=this.options.overloadTranslationOptionHandler([s,i].concat(l)):c={...i},c.lng=c.lng||o.lng,c.lngs=c.lngs||o.lngs,c.ns=c.ns||o.ns,c.keyPrefix!==""&&(c.keyPrefix=c.keyPrefix||a||o.keyPrefix);const d=this.options.keySeparator||".";let u;return c.keyPrefix&&Array.isArray(s)?u=s.map(p=>(typeof p=="function"&&(p=uu(p,{...this.options,...i})),`${c.keyPrefix}${d}
398${p}`)):(typeof s=="function"&&(s=uu(s,{...this.options,...i})),u=c.keyPrefix?`${c.keyPrefix}${d}${s}`:s),this.t(u,c)};return Y(t)?o.lng=t:o.lngs=t,o.ns=n,o.keyPrefix=a,o}t(...t){var n;return(n=this.translator)==null?void 0:n.translate(...t)}exists(...t){var n;return(n=this.translator)==null?void 0:n.exists(...t)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t,n={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const a=n.lng||this.resolvedLanguage||this.languages[0],o=this.options?this.options.fallbackLng:!1,s=this.languages[this.languages.length-1];if(a.toLowerCase()==="cimode")return!0;const i=(l,c)=>{const d=this.services.backendConnector.state[`${l}|${c}`];return d===-1||d===0||d===2};if(n.precheck){const l=n.precheck(this,i);if(l!==void 0)return l}return!!(this.hasResourceBundle(a,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||i(a,t)&&(!o||i(s,t)))}loadNamespaces(t,n){const a=xo();return this.options.ns?(Y(t)&&(t=[t]),t.forEach(o=>{this.options.ns.indexOf(o)<0&&this.options.ns.push(o)}),this.loadResources(o=>{a.resolve(),n&&n(o)}),a):(n&&n(),Promise.resolve())}loadLanguages(t,n){const a=xo();Y(t)&&(t=[t]);const o=this.options.preload||[],s=t.filter(i=>o.indexOf(i)<0&&this.services.languageUtils.isSupportedCode(i));return s.length?(this.options.preload=o.concat(s),this.loadResources(i=>{a.resolve(),n&&n(i)}),a):(n&&n(),Promise.resolve())}dir(t){var o,s;if(t||(t=this.resolvedLanguage||(((o=this.languages)==null?void 0:o.length)>0?this.languages[0]:this.language)),!t)return"rtl";try{const i=new Intl.Locale(t);if(i&&i.getTextInfo){const l=i.getTextInfo();if(l&&l.direction)return l.direction}}catch{}const n=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],a=((s=this.services)==null?void 0:s.languageUtils)||new Tf(qc());return t.toLowerCase().indexOf("-latn")>1?"ltr":n.indexOf(a.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(t={},n){const a=new zo(t,n);return a.createInstance=zo.createInstance,a}cloneInstance(t={},n=Js){const a=t.forkResourceStore;a&&delete t.forkResourceStore;const o={...this.options,...t,isClone:!0},s=new zo(o);if((t.debug!==void 0||t.prefix!==void 0)&&(s.logger=s.logger.clone(t)),["store","services","language"].forEach(l=>{s[l]=this[l]}),s.services={...this.services},s.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},a){const l=Object.keys(this.store.data).reduce((c,d)=>(c[d]={...this.store.data[d]},c[d]=Object.keys(c[d]).reduce((u,p)=>(u[p]={...c[d][p]},u),c[d]),c),{});s.store=new kf(l,o),s.services.resourceStore=s.store}if(t.interpolation){const c={...qc().interpolation,...this.options.interpolation,...t.interpolation},d={...o,interpolation:c};s.services.interpolator=new Sf(d)}return s.translator=new ul(s.services,o),s.translator.on("*",(l,...c)=>{s.emit(l,...c)}),s.init(o,n),s.translator.options=o,s.translator.backendConnector.services.utils={hasLoadedNamespace:s.hasLoadedNamespace.bind(s)},s}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const De=zo.createInstance();De.createInstance;De.dir;De.init;De.loadResources;De.reloadResources;De.use;De.changeLanguage;De.getFixedT;De.t;De.exists;De.setDefaultNamespace;De.hasLoadedNamespace;De.loadNamespaces;De.loadLanguages;const iC=(e,t,n,a)=>{var s,i,l,c;const o=[n,{code:t,...a||{}}];if((i=(s=e==null?void 0:e.services)==null?void 0:s.logger)!=null&&i.forward)return e.services.logger.forward(o,"warn","react-i18next::",!0);qa(o[0])&&(o[0]=`react-i18next:: ${o[0]}`),(c=(l=e==null?void 0:e.services)==null?void 0:l.logger)!=null&&c.warn?e.services.logger.warn(...o):console!=null&&console.warn&&console.warn(...o)},If={},xy=(e,t,n,a)=>{qa(n)&&If[n]||(qa(n)&&(If[n]=new Date),iC(e,t,n,a))},yy=(e,t)=>()=>{if(e.isInitialized)t();else{const n=()=>{setTimeout(()=>{e.off("initialized",n)},0),t()};e.on("initialized",n)}},pu=(e,t,n)=>{e.loadNamespaces(t,yy(e,n))},Af=(e,t,n,a)=>
398{if(qa(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return pu(e,n,a);n.forEach(o=>{e.options.ns.indexOf(o)<0&&e.options.ns.push(o)}),e.loadLanguages(t,yy(e,a))},lC=(e,t,n={})=>!t.languages||!t.languages.length?(xy(t,"NO_LANGUAGES","i18n.languages were undefined or empty",{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(a,o)=>{if(n.bindI18n&&n.bindI18n.indexOf("languageChanging")>-1&&a.services.backendConnector.backend&&a.isLanguageChangingTo&&!o(a.isLanguageChangingTo,e))return!1}}),qa=e=>typeof e=="string",cC=e=>typeof e=="object"&&e!==null,dC=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,uC={"&amp;":"&","&#38;":"&","&lt;":"<","&#60;":"<","&gt;":">","&#62;":">","&apos;":"'","&#39;":"'","&quot;":'"',"&#34;":'"',"&nbsp;":" ","&#160;":" ","&copy;":"©","&#169;":"©","&reg;":"®","&#174;":"®","&hellip;":"…","&#8230;":"…","&#x2F;":"/","&#47;":"/"},pC=e=>uC[e],mC=e=>e.replace(dC,pC);let mu={bindI18n:"languageChanged",bindI18nStore:"",transEmptyNodeValue:"",transSupportBasicHtmlNodes:!0,transWrapTextNodes:"",transKeepBasicHtmlNodesFor:["br","strong","i","p"],useSuspense:!0,unescape:mC,transDefaultProps:void 0};const hC=(e={})=>{mu={...mu,...e}},fC=()=>mu;let wy;const gC=e=>{wy=e},vC=()=>wy,bC={type:"3rdParty",init(e){hC(e.options.react),gC(e)}},xC=f.createContext();class yC{constructor(){this.usedNamespaces={}}addUsedNamespaces(t){t.forEach(n=>{this.usedNamespaces[n]||(this.usedNamespaces[n]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}}var ky={exports:{}},jy={};/**
399 * @license React
400 * use-sync-external-store-shim.production.js
401 *
402 * Copyright (c) Meta Platforms, Inc. and affiliates.
403 *
404 * This source code is licensed under the MIT license found in the
405 * LICENSE file in the root directory of this source tree.
406 */var Kr=f;function wC(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var kC=typeof Object.is=="function"?Object.is:wC,jC=Kr.useState,TC=Kr.useEffect,NC=Kr.useLayoutEffect,DC=Kr.useDebugValue;function CC(e,t){var n=t(),a=jC({inst:{value:n,getSnapshot:t}}),o=a[0].inst,s=a[1];return NC(function(){o.value=n,o.getSnapshot=t,Bc(o)&&s({inst:o})},[e,n,t]),TC(function(){return Bc(o)&&s({inst:o}),e(function(){Bc(o)&&s({inst:o})})},[e]),DC(n),n}function Bc(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!kC(e,n)}catch{return!0}}function SC(e,t){return t()}var PC=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?SC:CC;jy.useSyncExternalStore=Kr.useSyncExternalStore!==void 0?Kr.useSyncExternalStore:PC;ky.exports=jy;var EC=ky.exports;const IC=(e,t)=>qa(t)?t:cC(t)&&qa(t.defaultValue)?t.defaultValue:Array.isArray(e)?e[e.length-1]:e,AC={t:IC,ready:!1},RC=()=>()=>{},Q=(e,t={})=>{var C,E,H;const{i18n:n}=t,{i18n:a,defaultNS:o}=f.useContext(xC)||{},s=n||a||vC();s&&!s.reportNamespaces&&(s.reportNamespaces=new yC),s||xy(s,"NO_I18NEXT_INSTANCE","useTranslation: You will need to pass in an i18next instance by using initReactI18next");const i=f.useMemo(()=>{var _;return{...fC(),...(_=s==null?void 0:s.options)==null?void 0:_.react,...t}},[s,t]),{useSuspense:l,keyPrefix:c}=i,d=o||((C=s==null?void 0:s.options)==null?void 0:C.defaultNS),u=qa(d)?[d]:d||["translation"],p=f.useMemo(()=>u,u);(H=(E=s==null?void 0:s.reportNamespaces)==null?void 0:E.addUsedNamespaces)==null||H.call(E,p);const h=f.useRef(0),m=f.useCallback(_=>{if(!s)return RC;const{bindI18n:z,bindI18nStore:A}=i,W=()=>{h.current+=1,_()};return z&&s.on(z,W),A&&s.store.on(A,W),()=>{z&&z.split(" ").forEach(F=>s.off(F,W)),A&&A.split(" ").forEach(F=>s.store.off(F,W))}},[s,i]),y=f.useRef(),g=f.useCallback(()=>{if(!s)return AC;const _=!!(s.isInitialized||s.initializedStoreOnce)&&p.every(S=>lC(S,s,i)),z=t.lng||s.language,A=h.current,W=y.current;if(W&&W.ready===_&&W.lng===z&&W.keyPrefix===c&&W.revision===A)return W;const K={t:s.getFixedT(z,i.nsMode==="fallback"?p:p[0],c),ready:_,lng:z,keyPrefix:c,revision:A};return y.current=K,K},[s,p,c,i,t.lng]),[w,b]=f.useState(0),{t:v,ready:x}=EC.useSyncExternalStore(m,g,g);f.useEffect(()=>{if(s&&!x&&!l){const _=()=>b(z=>z+1);t.lng?Af(s,t.lng,p,_):pu(s,p,_)}},[s,t.lng,p,x,l,w]);const k=s||{},j=f.useRef(null),T=f.useRef(),N=_=>{const z=Object.getOwnPropertyDescriptors(_);z.__original&&delete z.__original;const A=Object.create(Object.getPrototypeOf(_),z);
406if(!Object.prototype.hasOwnProperty.call(A,"__original"))try{Object.defineProperty(A,"__original",{value:_,writable:!1,enumerable:!1,configurable:!1})}catch{}return A},D=f.useMemo(()=>{const _=k,z=_==null?void 0:_.language;let A=_;_&&(j.current&&j.current.__original===_?T.current!==z?(A=N(_),j.current=A,T.current=z):A=j.current:(A=N(_),j.current=A,T.current=z));const W=[v,A,x];return W.t=v,W.i18n=A,W.ready=x,W},[v,k,x,k.resolvedLanguage,k.language,k.languages]);if(s&&l&&!x)throw new Promise(_=>{const z=()=>_();t.lng?Af(s,t.lng,p,z):pu(s,p,z)});return D},_C=Rl("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium ring-offset-background transition-all duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90 shadow-sm hover:shadow-md",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline",cta:"gradient-cta text-cta-foreground shadow-md hover:shadow-glow font-semibold relative overflow-hidden before:absolute before:inset-0 before:bg-gradient-to-b before:from-white/20 before:via-transparent before:to-black/15 before:pointer-events-none hover:brightness-110 active:brightness-95 transition-all",hero:"gradient-cta text-cta-foreground shadow-lg hover:shadow-glow font-semibold text-base relative overflow-hidden before:absolute before:inset-0 before:bg-gradient-to-b before:from-white/20 before:via-transparent before:to-black/15 before:pointer-events-none hover:brightness-110 active:brightness-95 transition-all",heroOutline:"border-2 border-white/80 text-white bg-transparent hover:bg-white/10 font-medium",navCta:"gradient-cta text-cta-foreground shadow-sm font-semibold relative overflow-hidden before:absolute before:inset-0 before:bg-gradient-to-b before:from-white/15 before:via-transparent before:to-black/10 before:pointer-events-none hover:brightness-110 active:brightness-95 transition-all"},size:{default:"h-10 px-5 py-2",sm:"h-9 rounded-md px-4",lg:"h-12 rounded-xl px-8 text-base",xl:"h-14 roun
406ded-xl px-10 text-lg",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),te=f.forwardRef(({className:e,variant:t,size:n,asChild:a=!1,...o},s)=>{const i=a?fk:"button";return r.jsx(i,{className:pe(_C({variant:t,size:n,className:e})),ref:s,...o})});te.displayName="Button";const OC="/assets/dfakto-logo-blue-BdYhtBzC.png",Rf=[{code:"fr",label:"FR"},{code:"en",label:"EN"},{code:"nl",label:"NL"}];function _f(){var a;const{i18n:e}=Q(),t=(a=e.language)==null?void 0:a.split("-")[0],n=Rf.some(o=>o.code===t)?t:"en";return r.jsx("div",{className:"flex items-center gap-1 text-sm font-medium",children:Rf.map((o,s)=>r.jsxs("span",{className:"flex items-center gap-1",children:[s>0&&r.jsx("span",{className:"text-muted-foreground",children:"|"}),r.jsx("button",{onClick:()=>e.changeLanguage(o.code),"aria-current":n===o.code?"true":void 0,className:`px-1 transition-colors ${n===o.code?"text-foreground font-bold":"text-muted-foreground hover:text-foreground"}`,children:o.label})]},o.code))})}var LC=f.createContext(void 0);function $l(e){const t=f.useContext(LC);return e||t||"ltr"}function zC(e){const t=f.useRef({value:e,previous:e});return f.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Ha="NavigationMenu",[Up,Ty,MC]=xs(Ha),[hu,FC,qC]=xs(Ha),[Kp,v6]=ln(Ha,[MC,qC]),[BC,Ct]=Kp(Ha),[VC,$C]=Kp(Ha),Ny=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,value:a,onValueChange:o,defaultValue:s,delayDuration:i=200,skipDelayDuration:l=300,orientation:c="horizontal",dir:d,...u}=e,[p,h]=f.useState(null),m=je(t,C=>h(C)),y=$l(d),g=f.useRef(0),w=f.useRef(0),b=f.useRef(0),[v,x]=f.useState(!0),[k,j]=Cn({prop:a,onChange:C=>{const E=C!=="",H=l>0;E?(window.clearTimeout(b.current),H&&x(!1)):(window.clearTimeout(b.current),b.current=window.setTimeout(()=>x(!0),l)),o==null||o(C)},defaultProp:s??"",caller:Ha}),T=f.useCallback(()=>{window.clearTimeout(w.current),w.current=window.setTimeout(()=>j(""),150)},[j]),N=f.useCallback(C=>{window.clearTimeout(w.current),j(C)},[j]),D=f.useCallback(C=>{k===C?window.clearTimeout(w.current):g.current=window.setTimeout(()=>{window.clearTimeout(w.current),j(C)},i)},[k,j,i]);return f.useEffect(()=>()=>{window.clearTimeout(g.current),window.clearTimeout(w.current),window.clearTimeout(b.current)},[]),r.jsx(Dy,{scope:n,isRootMenu:!0,value:k,dir:y,orientation:c,rootNavigationMenu:p,onTriggerEnter:C=>{window.clearTimeout(g.current),v?D(C):N(C)},onTriggerLeave:()=>{window.clearTimeout(g.current),T()},onContentEnter:()=>window.clearTimeout(w.current),onContentLeave:T,onItemSelect:C=>{j(E=>E===C?"":C)},onItemDismiss:()=>j(""),children:r.jsx(ne.nav,{"aria-label":"Main","data-orientation":c,dir:y,...u,ref:m})})});Ny.displayName=Ha;var fu="NavigationMenuSub",HC=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,value:a,onValueChange:o,defaultValue:s,orientation:i="horizontal",...l}=e,c=Ct(fu,n),[d,u]=Cn({prop:a,onChange:o,defaultProp:s??"",caller:fu});return r.jsx(Dy,{scope:n,isRootMenu:!1,value:d,dir:c.dir,orientation:i,rootNavigationMenu:c.rootNavigationMenu,onTriggerEnter:p=>u(p),onItemSelect:p=>u(p),onItemDismiss:()=>u(""),children:r.jsx(ne.div,{"data-orientation":i,...l,ref:t})})});HC.displayName=fu;var Dy=e=>{const{scope:t,isRootMenu:n,rootNavigationMenu:a,dir:o,orientation:s,children:i,value:l,onItemSelect:c,onItemDismiss:d,onTriggerEnter:u,onTriggerLeave:p,onContentEnter:h,onContentLeave:m}=e,[y,g]=f.useState(null),[w,b]=f.useState(new Map),[v,x]=f.useState(null);return r.jsx(BC,{scope:t,isRootMenu:n,rootNavigationMenu:a,value:l,previousValue:zC(l),baseId:xn(),dir:o,orientation:s,viewport:y,onViewportChange:g,indicatorTrack:v,onIndicatorTrackChange:x,onTriggerEnter:Oe(u),onTriggerLeave:Oe(p),onContentEnter:Oe(h),onContentLeave:Oe(m),onItemSelect:Oe(c),onItemDismiss:Oe(d),onViewportContentChange:f.useCallback((k,j)=>{b(T=>(T.set(k,j),new Map(T)))},[]),onViewportContentRemove:f.useCallback(k=>{b(j=>j.has(k)?(j.delete(k),new Map(j)):j)},[]),children:r.jsx(Up.Provider,{scope:t,children:r.jsx(VC,{scope:t,items:w,children:i})})})},Cy="NavigationMenuList",Sy=f.forwardRef((e,t)=>
vendor: 4,187 bytes, line 406
406{const{__scopeNavigationMenu:n,...a}=e,o=Ct(Cy,n),s=r.jsx(ne.ul,{"data-orientation":o.orientation,...a,ref:t});return r.jsx(ne.div,{style:{position:"relative"},ref:o.onIndicatorTrackChange,children:r.jsx(Up.Slot,{scope:n,children:o.isRootMenu?r.jsx(My,{asChild:!0,children:s}):s})})});Sy.displayName=Cy;var Py="NavigationMenuItem",[WC,Ey]=Kp(Py),Iy=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,value:a,...o}=e,s=xn(),i=a||s||"LEGACY_REACT_AUTO_VALUE",l=f.useRef(null),c=f.useRef(null),d=f.useRef(null),u=f.useRef(()=>{}),p=f.useRef(!1),h=f.useCallback((y="start")=>{if(l.current){u.current();const g=vu(l.current);g.length&&Yp(y==="start"?g:g.reverse())}},[]),m=f.useCallback(()=>{if(l.current){const y=vu(l.current);y.length&&(u.current=XC(y))}},[]);return r.jsx(WC,{scope:n,value:i,triggerRef:c,contentRef:l,focusProxyRef:d,wasEscapeCloseRef:p,onEntryKeyDown:h,onFocusProxyEnter:h,onRootContentClose:m,onContentFocusOutside:m,children:r.jsx(ne.li,{...o,ref:t})})});Iy.displayName=Py;var gu="NavigationMenuTrigger",Ay=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,disabled:a,...o}=e,s=Ct(gu,e.__scopeNavigationMenu),i=Ey(gu,e.__scopeNavigationMenu),l=f.useRef(null),c=je(l,i.triggerRef,t),d=qy(s.baseId,i.value),u=By(s.baseId,i.value),p=f.useRef(!1),h=f.useRef(!1),m=i.value===s.value;return r.jsxs(r.Fragment,{children:[r.jsx(Up.ItemSlot,{scope:n,value:i.value,children:r.jsx(Fy,{asChild:!0,children:r.jsx(ne.button,{id:d,disabled:a,"data-disabled":a?"":void 0,"data-state":Zp(m),"aria-expanded":m,"aria-controls":u,...o,ref:c,onPointerEnter:G(e.onPointerEnter,()=>{h.current=!1,i.wasEscapeCloseRef.current=!1}),onPointerMove:G(e.onPointerMove,pl(()=>{a||h.current||i.wasEscapeCloseRef.current||p.current||(s.onTriggerEnter(i.value),p.current=!0)})),onPointerLeave:G(e.onPointerLeave,pl(()=>{a||(s.onTriggerLeave(),p.current=!1)})),onClick:G(e.onClick,()=>{s.onItemSelect(i.value),h.current=m}),onKeyDown:G(e.onKeyDown,y=>{const w={horizontal:"ArrowDown",vertical:s.dir==="rtl"?"ArrowLeft":"ArrowRight"}[s.orientation];m&&y.key===w&&(i.onEntryKeyDown(),y.preventDefault())})})})}),m&&r.jsxs(r.Fragment,{children:[r.jsx(Db,{"aria-hidden":!0,tabIndex:0,ref:i.focusProxyRef,onFocus:y=>{const g=i.contentRef.current,w=y.relatedTarget,b=w===l.current,v=g==null?void 0:g.contains(w);(b||!v)&&i.onFocusProxyEnter(b?"start":"end")}}),s.viewport&&r.jsx("span",{"aria-owns":u})]})]})});Ay.displayName=gu;var UC="NavigationMenuLink",Of="navigationMenu.linkSelect",Ry=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,active:a,onSelect:o,...s}=e;return r.jsx(Fy,{asChild:!0,children:r.jsx(ne.a,{"data-active":a?"":void 0,"aria-current":a?"page":void 0,...s,ref:t,onClick:G(e.onClick,i=>{const l=i.target,c=new CustomEvent(Of,{bubbles:!0,cancelable:!0});if(l.addEventListener(Of,d=>o==null?void 0:o(d),{once:!0}),Ji(l,c),!c.defaultPrevented&&!i.metaKey){const d=new CustomEvent(ki,{bubbles:!0,cancelable:!0});Ji(l,d)}},{checkForDefaultPrevented:!1})})})});Ry.displayName=UC;var Gp="NavigationMenuIndicator",_y=f.forwardRef((e,t)=>{const{forceMount:n,...a}=e,o=Ct(Gp,e.__scopeNavigationMenu),s=!!o.value;return o.indicatorTrack?vp.createPortal(r.jsx(Dt,{present:n||s,children:r.jsx(KC,{...a,ref:t})}),o.indicatorTrack):null});_y.displayName=Gp;var KC=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,...a}=e,o=Ct(Gp,n),s=Ty(n),[i,l]=f.useState(null),[c,d]=f.useState(null),u=o.orientation==="horizontal",p=!!o.value;f.useEffect(()=>{var g;const y=(g=s().find(w=>w.value===o.value))==null?void 0:g.ref.current;y&&l(y)},[s,o.value]);const h=()=>{i&&d({size:u?i.offsetWidth:i.offsetHeight,offset:u?i.offsetLeft:i.offsetTop})};return bu(i,h),bu(o.indicatorTrack,h),c?r.jsx(ne.div,{"aria-hidden":!0,"data-state":p?"visible":"hidden","data-orientation":o.orientation,...a,ref:t,style:{position:"absolute",...u?{left:0,width:c.size+"px",transform:`translateX(${c.offset}px)`}:{top:0,height:c.size+"px",transform:`translateY(${c.offset}px)`},...a.style}}):null}),Gr="NavigationMenuContent",Oy=f.forwardRef((e,t)=>{const{forceMount:n,...a}=e,o=Ct(Gr,e.__scopeNavigationMenu),s=Ey(Gr,e.__scopeNavigationMenu),i=je(s.contentRef,t),l=s.value===o.value,c={value:s.value,triggerRef:s.triggerRef,focu
406sProxyRef:s.focusProxyRef,wasEscapeCloseRef:s.wasEscapeCloseRef,onContentFocusOutside:s.onContentFocusOutside,onRootContentClose:s.onRootContentClose,...a};return o.viewport?r.jsx(GC,{forceMount:n,...c,ref:i}):r.jsx(Dt,{present:n||l,children:r.jsx(Ly,{"data-state":Zp(l),...c,ref:i,onPointerEnter:G(e.onPointerEnter,o.onContentEnter),onPointerLeave:G(e.onPointerLeave,pl(o.onContentLeave)),style:{pointerEvents:!l&&o.isRootMenu?"none":void 0,...c.style}})})});Oy.displayName=Gr;var GC=f.forwardRef((e,t)=>{const n=Ct(Gr,e.__scopeNavigationMenu),{onViewportContentChange:a,onViewportContentRemove:o}=n;return mt(()=>{a(e.value,{ref:t,...e})},[e,t,a]),mt(()=>()=>o(e.value),[e.value,o]),null}),ki="navigationMenu.rootContentDismiss",Ly=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,value:a,triggerRef:o,focusProxyRef:s,wasEscapeCloseRef:i,onRootContentClose:l,onContentFocusOutside:c,...d}=e,u=Ct(Gr,n),p=f.useRef(null),h=je(p,t),m=qy(u.baseId,a),y=By(u.baseId,a),g=Ty(n),w=f.useRef(null),{onItemDismiss:b}=u;f.useEffect(()=>{const x=p.current;if(u.isRootMenu&&x){const k=()=>{var j;b(),l(),x.contains(document.activeElement)&&((j=o.current)==null||j.focus())};return x.addEventListener(ki,k),()=>x.removeEventListener(ki,k)}},[u.isRootMenu,e.value,o,b,l]);const v=f.useMemo(()=>{const k=g().map(E=>E.value);u.dir==="rtl"&&k.reverse();const j=k.indexOf(u.value),T=k.indexOf(u.previousValue),N=a===u.value,D=T===k.indexOf(a);if(!N&&!D)return w.current;const C=(()=>{if(j!==T){if(N&&T!==-1)return j>T?"from-end":"from-start";if(D&&j!==-1)return j>T?"to-start":"to-end"}return null})();return w.current=C,C},[u.previousValue,u.value,u.dir,g,a]);return r.jsx(My,{asChild:!0,children:r.jsx(ys,{id:y,"aria-labelledby":m,"data-motion":v,"data-orientation":u.orientation,...d,ref:h,disableOutsidePointerEvents:!1,onDismiss:()=>{var k;const x=new Event(ki,{bubbles:!0,cancelable:!0});(k=p.current)==null||k.dispatchEvent(x)},onFocusOutside:G(e.onFocusOutside,x=>{var j;c();const k=x.target;(j=u.rootNavigationMenu)!=null&&j.contains(k)&&x.preventDefault()}),onPointerDownOutside:G(e.onPointerDownOutside,x=>{var N;const k=x.target,j=g().some(D=>{var C;return(C=D.ref.current)==null?void 0:C.contains(k)}),T=u.isRootMenu&&((N=u.viewport)==null?void 0:N.contains(k));(j||T||!u.isRootMenu)&&x.preventDefault()}),onKeyDown:G(e.onKeyDown,x=>{var T;const k=x.altKey||x.ctrlKey||x.metaKey;if(x.key==="Tab"&&!k){const N=vu(x.currentTarget),D=document.activeElement,C=N.findIndex(_=>_===D),H=x.shiftKey?N.slice(0,C).reverse():N.slice(C+1,N.length);Yp(H)?x.preventDefault():(T=s.current)==null||T.focus()}}),onEscapeKeyDown:G(e.onEscapeKeyDown,x=>{i.current=!0})})})}),Qp="NavigationMenuViewport",zy=f.forwardRef((e,t)=>{const{forceMount:n,...a}=e,s=!!Ct(Qp,e.__scopeNavigationMenu).value;return r.jsx(Dt,{present:n||s,children:r.jsx(QC,{...a,ref:t})})});zy.displayName=Qp;var QC=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,children:a,...o}=e,s=Ct(Qp,n),i=je(t,s.onViewportChange),l=$C(Gr,e.__scopeNavigationMenu),[c,d]=f.useState(null),[u,p]=f.useState(null),h=c?(c==null?void 0:c.width)+"px":void 0,m=c?(c==null?void 0:c.height)+"px":void 0,y=!!s.value,g=y?s.value:s.previousValue;return bu(u,()=>{u&&d({width:u.offsetWidth,height:u.offsetHeight})}),r.jsx(ne.div,{"data-state":Zp(y),"data-orientation":s.orientation,...o,ref:i,style:{pointerEvents:!y&&s.isRootMenu?"none":void 0,"--radix-navigation-menu-viewport-width":h,"--radix-navigation-menu-viewport-height":m,...o.style},onPointerEnter:G(e.onPointerEnter,s.onContentEnter),onPointerLeave:G(e.onPointerLeave,pl(s.onContentLeave)),children:Array.from(l.items).map(([b,{ref:v,forceMount:x,...k}])=>{const j=g===b;return r.jsx(Dt,{present:x||j,children:r.jsx(Ly,{...k,ref:bp(v,T=>{j&&T&&p(T)})})},b)})})}),YC="FocusGroup",My=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,...a}=e,o=Ct(YC,n);return r.jsx(hu.Provider,{scope:n,children:r.jsx(hu.Slot,{scope:n,children:r.jsx(ne.div,{dir:o.dir,...a,ref:t})})})}),Lf=["ArrowRight","ArrowLeft","ArrowUp","ArrowDown"],ZC="FocusGroupItem",Fy=f.forwardRef((e,t)=>{const{__scopeNavigationMenu:n,...a}=e,o=FC(n),s=Ct(ZC,n);return r.jsx(hu.ItemSlot,{scope:n,children:r.jsx(ne.button,{...a,ref:t,onKeyDown:G(e.onKeyDown,i=>
406{if(["Home","End",...Lf].includes(i.key)){let c=o().map(p=>p.ref.current);if([s.dir==="rtl"?"ArrowRight":"ArrowLeft","ArrowUp","End"].includes(i.key)&&c.reverse(),Lf.includes(i.key)){const p=c.indexOf(i.currentTarget);c=c.slice(p+1)}setTimeout(()=>Yp(c)),i.preventDefault()}})})})});function vu(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const o=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||o?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Yp(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}function XC(e){return e.forEach(t=>{t.dataset.tabindex=t.getAttribute("tabindex")||"",t.setAttribute("tabindex","-1")}),()=>{e.forEach(t=>{const n=t.dataset.tabindex;t.setAttribute("tabindex",n)})}}function bu(e,t){const n=Oe(t);mt(()=>{let a=0;if(e){const o=new ResizeObserver(()=>{cancelAnimationFrame(a),a=window.requestAnimationFrame(n)});return o.observe(e),()=>{window.cancelAnimationFrame(a),o.unobserve(e)}}},[e,n])}function Zp(e){return e?"open":"closed"}function qy(e,t){return`${e}-trigger-${t}`}function By(e,t){return`${e}-content-${t}`}function pl(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Vy=Ny,$y=Sy,JC=Iy,Hy=Ay,eS=Ry,Wy=_y,Uy=Oy,Ky=zy;const Gy=f.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(Vy,{ref:a,className:pe("relative z-10 flex max-w-max flex-1 items-center justify-center",e),...n,children:[t,r.jsx(Yy,{})]}));Gy.displayName=Vy.displayName;const Qy=f.forwardRef(({className:e,...t},n)=>r.jsx($y,{ref:n,className:pe("group flex flex-1 list-none items-center justify-center space-x-1",e),...t}));Qy.displayName=$y.displayName;const er=JC,tS=Rl("group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"),ji=f.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(Hy,{ref:a,className:pe(tS(),"group",e),...n,children:[t," ",r.jsx(Zb,{className:"relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180","aria-hidden":"true"})]}));ji.displayName=Hy.displayName;const Ti=f.forwardRef(({className:e,...t},n)=>r.jsx(Uy,{ref:n,className:pe("left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto",e),...t}));Ti.displayName=Uy.displayName;const xa=eS,Yy=f.forwardRef(({className:e,...t},n)=>r.jsx("div",{className:pe("absolute left-0 top-full flex justify-center"),children:r.jsx(Ky,{className:pe("origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",e),ref:n,...t})}));Yy.displayName=Ky.displayName;const nS=f.forwardRef(({className:e,...t},n)=>r.jsx(Wy,{ref:n,className:pe("top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",e),...t,children:r.jsx("div",{className:"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md"})}));nS.displayName=Wy.displayName;const aS=e=>[{title:"beVault",href:"/bevault-data-warehouse-automation",description:e("menu.bevaultDesc")},{title:"proPilot",href:"/propilot-strategy-execution-management-software",description:e("menu.propilotDesc")},{title:"Odoo",href:"/odoo",description:e("menu.odooDesc")}],rS=e=>[{title:e("footer.digitalTransformation"),href:"/solutions/digital-transformation"},{title:e("footer.regulatoryCompliance"),href:"/solutions/regulatory-compliance"},{title:e("footer.operationalExcellence"),href:"/solutions/operational-excellence"}],oS=e=>[{title:e("footer.publicSector"),href:"/solutions/public-sector"},{title:e("footer.finance"),href:"/solutions/finance"},{title:e("footer.industry"),href:"/solutions/industry"}],sS=e=>[{title:e("footer.program"),href:"/partners/program",description:e("partnerProgram.menuDesc")},{title:e("footer.ecosystem"),href:"/partners/ecosystem",description:e("partnerEcosystem.menuDesc")}];function iS(){const{t:e}=Q(),t=aS(e),n=rS(e),[a,o]=f.useState(!1),s=oS(e),i=sS(e);return Pn(),r.jsxs("header",{className:"fixed top-0 left-0 right-0 z-50 glass border-b border-border/50",children:[r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"flex items-center justify-between h-16 lg:h-20",children:[r.jsx(L,{to:"/",className:"flex items-center gap-2",children:r.jsx("img",{src:OC,alt:"dFakto",className:"h-10 w-auto"})}),r.jsx("nav",{className:"hidden lg:flex items-center gap-1",children:r.jsx(Gy,{children:r.jsxs(Qy,{children:[r.jsxs(er,{children:[r.jsx(ji,{className:"bg-transparent",children:e("nav.products")}),r.jsx(Ti,{children:r.jsx("ul",{className:"grid w-[400px] gap-3 p-4",children:t.map(l=>r.jsx("li",{children:r.jsx(xa,{asChild:!0,children:r.jsxs(L,{to:l.href,className:"group/item block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",children:[r.jsx("div",{className:"text-sm font-medium leading-none",children:l.title}),r.jsx("p",{className:"line-clamp-2 text-sm leading-snug text-muted-foreground group-hover/item:text-white group-focus/item:text-white",children:l.description})]})})},l.href))})})]}),r.jsxs(er,{children:[r.jsx(ji,{className:"bg-transparent",children:e("nav.solutions")}),r.jsx(Ti,{children:r.jsxs("div",{className:"grid w-[500px] gap-3 p-4 md:grid-cols-2",children:[r.jsxs("div",{children:[r.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:e("nav.byUseCase")}),r.jsx("ul",{className:"space-y-1",children:n.map(l=>r.jsx("li",{children:r.jsx(xa,{asChild:!0,children:r.jsx(L,{to:l.href,className:"block select-none rounded-md px-3 py-2 text-sm leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground",children:l.title})})},l.href))})]}),r.jsxs("div",{children:[r.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase tracking-wider mb-2",children:e("nav.byIndustry")}),r.jsx("ul",{className:"space-y-1",children:s.map(l=>r.jsx("li",{children:r.jsx(xa,{asChild:!0,children:r.jsx(L,{to:l.href,className:"block select-none rounded-md px-3 py-2 text-sm leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground",children:l.title})})},l.href))})]})]})})]}),r.jsx(er,{children:r.jsx(xa,{asChild:!0,children:r.jsx(L,{to:"/agentic-ai",className:"group inline-flex h-10 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none",children:e("nav.agenticAi")})})}),r.jsxs(er,{children:[r.jsx(ji,{className:"bg-transparent",children:e("nav.partners")}),r.jsx(Ti,{children:r.jsx("ul",{className:"grid w-[400px] gap-3 p-4",children:i.map(l=>r.jsx("li",{children:r.jsx(xa,{asChild:!0,children:r.jsxs(L,{to:l.href,className:"group/item block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",children:[r.jsx("div",{className:"text-sm font-medium leading-none",children:l.title}),r.jsx("p",{className:"line-clamp-2 text-sm leading-snug text-muted-foreground group-hover/item:text-white group-focus/item:text-white",children:l.description})]})})},l.href))})})]}),r.jsx(er,{children:r.jsx(xa,{asChild:!0,children:r.jsx(L,{to:"/ressources-dfakto",className:"group inline-flex h-10 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none",children:e("nav.resources")})})}),r.jsx(er,{children:r.jsx(xa,{asChild:!0,children:r.jsx(L,{to:"/consulting",className:"group inline-flex h-10 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none",children:e("nav.consulting")})})})]})})}),r.jsxs("div",{className:"hidden lg:flex items-center gap-4",children:[r.jsx(_f,{}),r.jsx(L,{to:"/contact",children:r.jsx(te,{variant:"navCta",children:e("nav.contactUs")})})]}),r.jsx("button",{className:"lg:hidden p-2 hover:bg-muted rounded-lg transition-colors",onClick:()=>o(!a),children:a?r.jsx(Sp,{size:24}):r.jsx(Sj,{size:24})})]})}),a&&r.jsx("div",{className:"lg:hidden bg-background border-t border-border",children:r.jsxs("nav",{className:"container mx-auto px-4 py-4 space-y-4",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase",children:e("nav.products")}),t.map(l=>r.jsx(L,{to:l.href,className:"block py-2 text-foreground hover:text-accent",onClick:()=>o(!1),children:l.title},l.href))]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase",children:e("nav.solutions")}
406),[...n,...s].map(l=>r.jsx(L,{to:l.href,className:"block py-2 text-foreground hover:text-accent",onClick:()=>o(!1),children:l.title},l.href))]}),r.jsx(L,{to:"/agentic-ai",className:"block py-2 text-foreground hover:text-accent",onClick:()=>o(!1),children:e("nav.agenticAi")}),r.jsxs("div",{className:"space-y-2",children:[r.jsx("h4",{className:"text-xs font-semibold text-muted-foreground uppercase",children:e("nav.partners")}),i.map(l=>r.jsx(L,{to:l.href,className:"block py-2 text-foreground hover:text-accent",onClick:()=>o(!1),children:l.title},l.href))]}),r.jsx(L,{to:"/ressources-dfakto",className:"block py-2 text-foreground hover:text-accent",onClick:()=>o(!1),children:e("nav.resources")}),r.jsx(L,{to:"/consulting",className:"block py-2 text-foreground hover:text-accent",onClick:()=>o(!1),children:e("nav.consulting")}),r.jsxs("div",{className:"pt-4 border-t border-border",children:[r.jsx(L,{to:"/contact",onClick:()=>o(!1),children:r.jsx(te,{variant:"cta",className:"w-full",children:e("nav.contactUs")})}),r.jsx("div",{className:"mt-3 flex justify-center",children:r.jsx(_f,{})})]})]})})]})}const lS="/assets/dfakto-logo-white-DQI9sbxc.svg";function cS(){const{t:e}=Q(),t={products:[{label:"beVault",href:"/bevault-data-warehouse-automation"},{label:"proPilot",href:"/propilot-strategy-execution-management-software"},{label:"Odoo",href:"/odoo"},{label:e("nav.agenticAi"),href:"/agentic-ai"}],solutions:[{label:e("footer.digitalTransformation"),href:"/solutions/digital-transformation"},{label:e("footer.regulatoryCompliance"),href:"/solutions/regulatory-compliance"},{label:e("footer.operationalExcellence"),href:"/solutions/operational-excellence"},{label:e("footer.finance"),href:"/solutions/finance"},{label:e("footer.publicSector"),href:"/solutions/public-sector"},{label:e("footer.industry"),href:"/solutions/industry"}],partners:[{label:e("footer.program"),href:"/partners/program"},{label:e("footer.ecosystem"),href:"/partners/ecosystem"}],company:[{label:e("footer.consulting"),href:"/consulting"},{label:e("footer.resources"),href:"/ressources-dfakto"},{label:e("footer.contact"),href:"/contact"}]};return r.jsx("footer",{className:"bg-navy text-white/90",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 py-16",children:[r.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-8 lg:gap-12",children:[r.jsxs("div",{className:"col-span-2",children:[r.jsx(L,{to:"/",className:"flex items-center gap-2 mb-4",children:r.jsx("img",{src:lS,alt:"dFakto",className:"h-10 w-auto"})}),r.jsx("p",{className:"text-white/60 text-sm leading-relaxed mb-6",children:e("footer.tagline")}),r.jsxs("div",{className:"space-y-3 mb-6",children:[r.jsxs("div",{className:"flex items-center gap-3 text-sm",children:[r.jsx(ns,{className:"w-4 h-4 text-white/60 flex-shrink-0"}),r.jsxs("div",{className:"text-white/60 flex items-center gap-2",children:[r.jsx("span",{children:"Paris"}),r.jsx("span",{className:"text-white/30",children:"•"}),r.jsx("span",{children:e("footer.brussels")})]})]}),r.jsxs("div",{className:"flex items-center gap-3 text-sm",children:[r.jsx(tl,{className:"w-4 h-4 text-white/60 flex-shrink-0"}),r.jsxs("div",{className:"text-white/60 flex items-center gap-2 flex-wrap",children:[r.jsx("a",{href:"tel:+33189164974",className:"hover:text-white transition-colors",children:"+33.1.89.16.49.74"}),r.jsx("span",{className:"text-white/30",children:"/"}),r.jsx("a",{href:"tel:+3222906390",className:"hover:text-white transition-colors",children:"+32.2.290.63.90"})]})]})]}),r.jsxs("div",{className:"flex gap-4",children:[r.jsx("a",{href:"https://www.linkedin.com/company/dfakto/?viewAsMember=true",target:"_blank",rel:"noopener noreferrer","aria-label":"LinkedIn",className:"text-white/60 hover:text-white transition-colors",children:r.jsx(nx,{size:20})}),r.jsx("a",{href:"https://www.youtube.com/@youtube-dfakto",target:"_blank",rel:"noopener noreferrer","aria-label":"YouTube",className:"text-white/60 hover:text-white transition-colors",children:r.jsx(Mj,{size:20})})]})]}),r.jsxs("div",{children:[r.jsx("h4",{className:"text-white font-semibold mb-4",children:e("footer.products")}),r.jsx("ul",{className:"space-y-3",children:t.products.map(n=>r.jsx("li",{children:r.jsx(L,{to:n.href,className:"text-white/60 hover:text-white text-sm transition-colors",children:n.label})},n.href))})]}),r.jsxs("div",{children:[r.jsx("h4",{className:"text-white font-semibold mb-4",children:e("footer.solutions")}),r.jsx("ul",{className:"space-y-3",children:t.solutions.map(n=>r.jsx("li",{children:r.jsx(L,{to:n.href,className:"text-white/60 hover:text-white text-sm transition-colors",children:n.label})},n.href))})]}),r.jsxs("div",{children:[r.jsx("h4",{className:"text-white font-semibold mb-4",children:e("footer.partners")}),r.jsx("ul",{className:"space-y-3",children:t.partners.map(n=>r.jsx("li",{children:r.jsx(L,{to:n.href,className:"text-white/60 hover:text-white text-sm transition-colors",children:n.label})},n.href))})]}),r.jsxs("div",{children:[r.jsx("h4",{className:"text-white font-semibold mb-4",children:e("footer.company")}),r.jsx("ul",{className:"space-y-3",children:t.company.map(n=>r.jsx("li",{children:r.jsx(L,{to:n.href,className:"text-white/60 hover:text-white text-sm transition-colors",children:n.label})},n.href))})]})]}),r.jsx("div",{className:"border-t border-white/10 mt-12 pt-8",children:r.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-center gap-4",children:[r.jsxs("p",{className:"text-white/60 text-sm",children:["© ",new Date().getFullYear()," dFakto. ",e("footer.copyright")]}),r.jsxs("div",{className:"flex gap-6",children:[r.jsx(L,{to:"/disclaimer/privacy-statement-eu",className:"text-white/60 hover:text-white text-sm transition-colors",children:e("footer.privacyPolicy")}),r.jsx(L,{to:"/legal-notice",className:"text-white/60 hover:text-white text-sm transition-colors",children:e("footer.legalNotice")})]})]})})]})})}const dS="https://www.dfakto.com";function uS(){const{pathname:e}=Pn(),t=`${dS}${e}`;return r.jsxs(ze,{children:[r.jsx("link",{rel:"alternate",hrefLang:"en",href:t}),r.jsx("link",{rel:"alternate",hrefLang:"fr",href:t}),r.jsx("link",{rel:"alternate",hrefLang:"nl",href:t}),r.jsx("link",{rel:"alternate",hrefLang:"x-default",href:t})]})}function Z({children:e}){return r.jsxs("div",{className:"min-h-screen flex flex-col",children:[r.jsx(uS,{}),r.jsx(iS,{}),r.jsx("main",{className:"flex-1 pt-16 lg:pt-20",children:e}),r.jsx(cS,{})]})}var Vc="rovingFocusGroup.onEntryFocus",pS={bubbles:!1,cancelable:!0},Ns="RovingFocusGroup",[xu,Zy,mS]=xs(Ns),[hS,Xy]=ln(Ns,[mS]),[fS,gS]=hS(Ns),Jy=f.forwardRef((e,t)=>
vendor: 4,663 bytes, line 406
406r.jsx(xu.Provider,{scope:e.__scopeRovingFocusGroup,children:r.jsx(xu.Slot,{scope:e.__scopeRovingFocusGroup,children:r.jsx(vS,{...e,ref:t})})}));Jy.displayName=Ns;var vS=f.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:a,loop:o=!1,dir:s,currentTabStopId:i,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:c,onEntryFocus:d,preventScrollOnEntryFocus:u=!1,...p}=e,h=f.useRef(null),m=je(t,h),y=$l(s),[g,w]=Cn({prop:i,defaultProp:l??null,onChange:c,caller:Ns}),[b,v]=f.useState(!1),x=Oe(d),k=Zy(n),j=f.useRef(!1),[T,N]=f.useState(0);return f.useEffect(()=>{const D=h.current;if(D)return D.addEventListener(Vc,x),()=>D.removeEventListener(Vc,x)},[x]),r.jsx(fS,{scope:n,orientation:a,dir:y,loop:o,currentTabStopId:g,onItemFocus:f.useCallback(D=>w(D),[w]),onItemShiftTab:f.useCallback(()=>v(!0),[]),onFocusableItemAdd:f.useCallback(()=>N(D=>D+1),[]),onFocusableItemRemove:f.useCallback(()=>N(D=>D-1),[]),children:r.jsx(ne.div,{tabIndex:b||T===0?-1:0,"data-orientation":a,...p,ref:m,style:{outline:"none",...e.style},onMouseDown:G(e.onMouseDown,()=>{j.current=!0}),onFocus:G(e.onFocus,D=>{const C=!j.current;if(D.target===D.currentTarget&&C&&!b){const E=new CustomEvent(Vc,pS);if(D.currentTarget.dispatchEvent(E),!E.defaultPrevented){const H=k().filter(F=>F.focusable),_=H.find(F=>F.active),z=H.find(F=>F.id===g),W=[_,z,...H].filter(Boolean).map(F=>F.ref.current);n0(W,u)}}j.current=!1}),onBlur:G(e.onBlur,()=>v(!1))})})}),e0="RovingFocusGroupItem",t0=f.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:a=!0,active:o=!1,tabStopId:s,children:i,...l}=e,c=xn(),d=s||c,u=gS(e0,n),p=u.currentTabStopId===d,h=Zy(n),{onFocusableItemAdd:m,onFocusableItemRemove:y,currentTabStopId:g}=u;return f.useEffect(()=>{if(a)return m(),()=>y()},[a,m,y]),r.jsx(xu.ItemSlot,{scope:n,id:d,focusable:a,active:o,children:r.jsx(ne.span,{tabIndex:p?0:-1,"data-orientation":u.orientation,...l,ref:t,onMouseDown:G(e.onMouseDown,w=>{a?u.onItemFocus(d):w.preventDefault()}),onFocus:G(e.onFocus,()=>u.onItemFocus(d)),onKeyDown:G(e.onKeyDown,w=>{if(w.key==="Tab"&&w.shiftKey){u.onItemShiftTab();return}if(w.target!==w.currentTarget)return;const b=yS(w,u.orientation,u.dir);if(b!==void 0){if(w.metaKey||w.ctrlKey||w.altKey||w.shiftKey)return;w.preventDefault();let x=h().filter(k=>k.focusable).map(k=>k.ref.current);if(b==="last")x.reverse();else if(b==="prev"||b==="next"){b==="prev"&&x.reverse();const k=x.indexOf(w.currentTarget);x=u.loop?wS(x,k+1):x.slice(k+1)}setTimeout(()=>n0(x))}}),children:typeof i=="function"?i({isCurrentTabStop:p,hasTabStop:g!=null}):i})})});t0.displayName=e0;var bS={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function xS(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function yS(e,t,n){const a=xS(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(a))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(a)))return bS[a]}function n0(e,t=!1){const n=document.activeElement;for(const a of e)if(a===n||(a.focus({preventScroll:t}),document.activeElement!==n))return}function wS(e,t){return e.map((n,a)=>e[(t+a)%e.length])}var kS=Jy,jS=t0,Hl="Tabs",[TS,b6]=ln(Hl,[Xy]),a0=Xy(),[NS,Xp]=TS(Hl),r0=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,onValueChange:o,defaultValue:s,orientation:i="horizontal",dir:l,activationMode:c="automatic",...d}=e,u=$l(l),[p,h]=Cn({prop:a,onChange:o,defaultProp:s??"",caller:Hl});return r.jsx(NS,{scope:n,baseId:xn(),value:p,onValueChange:h,orientation:i,dir:u,activationMode:c,children:r.jsx(ne.div,{dir:u,"data-orientation":i,...d,ref:t})})});r0.displayName=Hl;var o0="TabsList",s0=f.forwardRef((e,t)=>{const{__scopeTabs:n,loop:a=!0,...o}=e,s=Xp(o0,n),i=a0(n);return r.jsx(kS,{asChild:!0,...i,orientation:s.orientation,dir:s.dir,loop:a,children:r.jsx(ne.div,{role:"tablist","aria-orientation":s.orientation,...o,ref:t})})});s0.displayName=o0;var i0="TabsTrigger",l0=f.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,disabled:o=!1,...s}=e,i=Xp(i0,n),l=a0(n),c=u0(i.baseId,a),d=p0(i.baseId,a),u=a===i.value;return r.jsx(jS,{asChild:!0,...l,focusable:!o,active:u,children:r.jsx(ne.button,{type:"button",role:"tab","aria-selected":u,"aria-controls":d,"data-state":u?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:c,...s,ref:t,onMouseDown:G(e.onMouseDown,p=>{!o&&p.button===0&&p.ctrlKey===!1?i.onValueChange(a):p.preventDefault()}),onKeyDown:G(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&i.onValueChange(a)}),onFocus:G(e.onFocus,()=>{const p=i.activationMode!=="manual";!u&&!o&&p&&i.onValueChange(a)})})})});l0.displayName=i0;var c0="TabsContent",d0=f.forwardRef((e,t)=>
406{const{__scopeTabs:n,value:a,forceMount:o,children:s,...i}=e,l=Xp(c0,n),c=u0(l.baseId,a),d=p0(l.baseId,a),u=a===l.value,p=f.useRef(u);return f.useEffect(()=>{const h=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(h)},[]),r.jsx(Dt,{present:o||u,children:({present:h})=>r.jsx(ne.div,{"data-state":u?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":c,hidden:!h,id:d,tabIndex:0,...i,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:h&&s})})});d0.displayName=c0;function u0(e,t){return`${e}-trigger-${t}`}function p0(e,t){return`${e}-content-${t}`}var DS=r0,m0=s0,h0=l0,f0=d0;const CS=DS,g0=f.forwardRef(({className:e,...t},n)=>r.jsx(m0,{ref:n,className:pe("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",e),...t}));g0.displayName=m0.displayName;const Ni=f.forwardRef(({className:e,...t},n)=>r.jsx(h0,{ref:n,className:pe("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",e),...t}));Ni.displayName=h0.displayName;const Di=f.forwardRef(({className:e,...t},n)=>r.jsx(f0,{ref:n,className:pe("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));Di.displayName=f0.displayName;const SS=()=>{const{t:e}=Q(),[t,n]=f.useState("question"),[a,o]=f.useState("question"),[s,i]=f.useState("question"),l=p=>{n(p==="2-hours"?"leader":"bottleneck")},c=p=>{o(p==="dedicated"?"leader":"bottleneck")},d=p=>{i(p==="cloud"?"leader":"bottleneck")},u=(p,h,m,y,g,w,b,v)=>p==="leader"?r.jsxs("div",{className:"flex flex-col md:flex-row items-center gap-6 animate-fade-up",children:[r.jsx("div",{className:"flex-shrink-0",children:r.jsx("div",{className:"w-14 h-14 rounded-xl bg-accent/10 flex items-center justify-center",children:r.jsx(on,{className:"w-7 h-7 text-accent"})})}),r.jsxs("div",{className:"flex-1 text-center md:text-left",children:[r.jsx("h3",{className:"text-lg font-semibold text-foreground mb-1",children:e("maturity.aheadOfCurve")}),r.jsx("p",{className:"text-muted-foreground text-sm",children:m})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(L,{to:g,children:r.jsxs(te,{variant:"cta",size:"sm",children:[y,r.jsx(Ge,{className:"w-4 h-4"})]})}),r.jsx(te,{variant:"ghost",size:"sm",onClick:h,className:"text-muted-foreground",children:e("maturity.restart")})]})]}):p==="bottleneck"?r.jsxs("div",{className:"flex flex-col md:flex-row items-center gap-6 animate-fade-up",children:[r.jsx("div",{className:"flex-shrink-0",children:r.jsx("div",{className:"w-14 h-14 rounded-xl bg-cta/10 flex items-center justify-center",children:r.jsx(Cp,{className:"w-7 h-7 text-cta"})})}),r.jsxs("div",{className:"flex-1 text-center md:text-left",children:[r.jsx("h3",{className:"text-lg font-semibold text-foreground mb-1",children:e("maturity.roomForImprovement")}),r.jsx("p",{className:"text-muted-foreground text-sm",children:w})]}),r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx(L,{to:v,children:r.jsxs(te,{variant:"cta",size:"sm",children:[b,r.jsx(Ge,{className:"w-4 h-4"})]})}),r.jsx(te,{variant:"ghost",size:"sm",onClick:h,className:"text-muted-foreground",children:e("maturity.restart")})]})]}):null;return r.jsxs("div",{className:"bg-card rounded-2xl shadow-card p-6 lg:p-8 border border-border animate-fade-up delay-400",children:[r.jsxs("div",{className:"text-center mb-6",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl bg-accent/10 flex items-center justify-center mx-auto mb-4",children:r.jsx(Np,{className:"w-6 h-6 text-accent"})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-1",children:e("maturity.title")}),r.jsx("p",{className:"text-muted-foreground text-sm",children:e("maturity.subtitle")})]}),r.jsxs(CS,{defaultValue:"bevault",className:"w-full",children:[r.jsxs(g0,{
406className:"grid w-full grid-cols-3 mb-6",children:[r.jsxs(Ni,{value:"bevault",className:"flex items-center gap-2",children:[r.jsx(ks,{className:"w-4 h-4"}),r.jsx("span",{className:"hidden sm:inline",children:"beVault"})]}),r.jsxs(Ni,{value:"propilot",className:"flex items-center gap-2",children:[r.jsx(Hr,{className:"w-4 h-4"}),r.jsx("span",{className:"hidden sm:inline",children:"proPilot"})]}),r.jsxs(Ni,{value:"odoo",className:"flex items-center gap-2",children:[r.jsx(Xr,{className:"w-4 h-4"}),r.jsx("span",{className:"hidden sm:inline",children:"Odoo"})]})]}),r.jsx(Di,{value:"bevault",children:t==="question"?r.jsxs("div",{className:"text-center",children:[r.jsx("p",{className:"text-foreground font-medium mb-4",children:e("maturity.bevault.question")}),r.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[r.jsxs(te,{variant:"outline",onClick:()=>l("2-hours"),className:"min-w-[100px]",children:[r.jsx(Oo,{className:"w-4 h-4 mr-2"}),e("maturity.bevault.opt1")]}),r.jsxs(te,{variant:"outline",onClick:()=>l("1-week"),className:"min-w-[100px]",children:[r.jsx(Oo,{className:"w-4 h-4 mr-2"}),e("maturity.bevault.opt2")]}),r.jsxs(te,{variant:"outline",onClick:()=>l("1-month"),className:"min-w-[100px]",children:[r.jsx(Oo,{className:"w-4 h-4 mr-2"}),e("maturity.bevault.opt3")]})]})]}):u(t,()=>n("question"),e("maturity.bevault.leaderText"),e("maturity.bevault.leaderCta"),"/bevault-data-warehouse-automation",e("maturity.bevault.bottleneckText"),e("maturity.bevault.bottleneckCta"),"/bevault-data-warehouse-automation")}),r.jsx(Di,{value:"propilot",children:a==="question"?r.jsxs("div",{className:"text-center",children:[r.jsx("p",{className:"text-foreground font-medium mb-4",children:e("maturity.propilot.question")}),r.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[r.jsx(te,{variant:"outline",onClick:()=>c("excel"),className:"min-w-[120px]",children:e("maturity.propilot.opt1")}),r.jsx(te,{variant:"outline",onClick:()=>c("bi"),className:"min-w-[120px]",children:e("maturity.propilot.opt2")}),r.jsx(te,{variant:"outline",onClick:()=>c("dedicated"),className:"min-w-[140px]",children:e("maturity.propilot.opt3")})]})]}):u(a,()=>o("question"),e("maturity.propilot.leaderText"),e("maturity.propilot.leaderCta"),"/propilot-strategy-execution-management-software",e("maturity.propilot.bottleneckText"),e("maturity.propilot.bottleneckCta"),"/propilot-strategy-execution-management-software")}),r.jsx(Di,{value:"odoo",children:s==="question"?r.jsxs("div",{className:"text-center",children:[r.jsx("p",{className:"text-foreground font-medium mb-4",children:e("maturity.odoo.question")}),r.jsxs("div",{className:"flex flex-wrap justify-center gap-3",children:[r.jsx(te,{variant:"outline",onClick:()=>d("legacy"),className:"min-w-[100px]",children:e("maturity.odoo.opt1")}),r.jsx(te,{variant:"outline",onClick:()=>d("manual"),className:"min-w-[120px]",children:e("maturity.odoo.opt2")}),r.jsx(te,{variant:"outline",onClick:()=>d("cloud"),className:"min-w-[100px]",children:e("maturity.odoo.opt3")})]})]}):u(s,()=>i("question"),e("maturity.odoo.leaderText"),e("maturity.odoo.leaderCta"),"/odoo",e("maturity.odoo.bottleneckText"),e("maturity.odoo.bottleneckCta"),"/odoo")})]})]})},PS="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%2060%2060'%3e%3cpath%20fill='%23141e12'%20d='M30%202c15.464%200%2028%2012.536%2028%2028%200%2015.297-12.267%2027.726-27.5%2027.993V58h-1v-.007C14.267%2057.726%202%2045.297%202%2030%202%2014.536%2014.536%202%2030%202m.5%2017h-1V3.021c-3.155.256-6.23%202.923-8.61%207.631-1.198%202.373-2.182%205.2-2.878%208.348h-1.023c1.518-7.024%204.445-12.571%208.077-15.248C16.108%206.52%209.203%2016.649%208.912%2029.177H11v1H8.904c.064%2012.824%207.05%2023.255%2016.162%2026.07-3.803-2.803-6.831-8.751-8.28-16.247h1.018c.701%203.551%201.763%206.727%203.087%209.348%202.378%204.708%205.454%207.374%208.609%207.63V40h1v16.978c3.155-.256%206.232-2.922%208.61-7.63%201.324-2.621%202.385-5.797%203.086-9.348h1.018c-1.449%207.496-4.477%2013.444-8.28%2016.247%209.112-2.815%2016.099-13.246%2016.163-26.07H49v-1h2.088c-.29-12.528-7.196-22.657-16.154-25.425%203.632%202.677%206.56%208.224%208.077%2015.248h-1.023c-.696-3.149-1.68-5.975-2.878-8.348-2.378-4.708-5.455-7.375-8.61-7.63zM3.002%2030.177c.074%2011.478%207.31%202
4061.255%2017.463%2025.089-7.392-4.487-12.507-14.027-12.56-25.09zm49.09.546c-.217%2010.83-5.289%2020.13-12.56%2024.543%2010.155-3.834%2017.392-13.61%2017.466-25.09h-4.901zM20.465%204.733C10.502%208.495%203.349%2017.98%203.014%2029.177h4.898C8.158%2018.39%2013.217%209.132%2020.465%204.733m19.07.001c7.247%204.4%2012.307%2013.656%2012.553%2024.443h4.898c-.335-11.198-7.488-20.68-17.45-24.443'/%3e%3cpath%20fill='%23141e12'%20d='M16.455%2037.72q0-.75.23-1.35.24-.61.83-1.16.6-.55%201.66-1.11.49-.261.79-.48.3-.22.44-.47t.14-.61q0-.37-.16-.64a1.1%201.1%200%200%200-.48-.44q-.31-.16-.78-.16-.75%200-1.19.39-.43.39-.54%201.11l-.9-.06q.12-1.04.8-1.66t1.83-.62q.73%200%201.25.26t.79.73q.28.46.28%201.07%200%20.54-.18.94-.18.39-.61.73-.42.34-1.16.73-.96.51-1.46%201.03-.49.519-.52.93h3.93v.84zm7.224%200q0-1.101.3-2.19.3-1.101.86-2.13.57-1.03%201.36-1.94h-4.1v-.84h5.04v.78a13%2013%200%200%200-1.47%202.02q-.57.99-.84%202.05-.27%201.05-.27%202.25zm6.677.16q-.86%200-1.49-.45c-.63-.45-.747-.727-.98-1.28q-.34-.83-.34-1.97t.34-1.97q.35-.84.98-1.29.63-.46%201.49-.46.87%200%201.5.46.63.45.97%201.28.35.83.35%201.98%200%201.14-.35%201.97-.34.83-.97%201.28t-1.5.45m0-.84q.92%200%201.42-.74.5-.75.5-2.12%200-.921-.23-1.56-.22-.65-.65-.98-.42-.34-1.04-.34-.61%200-1.04.34-.42.33-.65.98-.22.639-.22%201.56%200%201.37.5%202.12.5.74%201.41.74m6.63.84q-.86%200-1.49-.45t-.98-1.28q-.34-.83-.34-1.97t.34-1.97q.35-.84.98-1.29.63-.46%201.49-.46.87%200%201.5.46.63.45.97%201.28.35.83.35%201.98%200%201.14-.35%201.97-.34.83-.97%201.28t-1.5.45m0-.84q.92%200%201.42-.74.5-.75.5-2.12%200-.921-.23-1.56-.22-.65-.65-.98-.42-.34-1.04-.34-.61%200-1.04.34-.42.33-.65.98-.22.639-.22%201.56%200%201.37.5%202.12.501.74%201.41.74m5.202.68v-5.26h-1.48v-.74h.6q.39%200%20.62-.1a.6.6%200%200%200%20.34-.34q.1-.24.1-.66h.68v7.1zm-19.942-9.44v-7.1h.86v7.1zm4.999.16q-.82%200-1.43-.31a2.5%202.5%200%200%201-.97-.85%202.75%202.75%200%200%201-.41-1.27l.9-.06q.07.531.31.9.24.37.64.56.41.19.98.19.5%200%20.85-.13t.53-.38a.98.98%200%200%200%20.19-.61q0-.33-.16-.58-.15-.26-.59-.47-.43-.22-1.28-.43-.82-.21-1.31-.46-.48-.25-.7-.61-.21-.36-.21-.89%200-.6.28-1.05a1.9%201.9%200%200%201%20.82-.71q.53-.26%201.26-.26.78%200%201.34.3.56.29.89.8t.41%201.16l-.9.06a1.8%201.8%200%200%200-.28-.76%201.44%201.44%200%200%200-.58-.53q-.37-.19-.9-.19-.66%200-1.05.32a1%201%200%200%200-.39.82q0%20.33.15.55.16.21.56.38.4.16%201.15.35.89.22%201.41.53.53.3.75.7.23.4.23.91%200%20.621-.32%201.08-.32.45-.88.7a3.25%203.25%200%200%201-1.29.24m6.726%200q-1.01%200-1.74-.44-.72-.45-1.11-1.28t-.39-1.98.39-1.98q.39-.84%201.11-1.29.73-.45%201.74-.45%201.02%200%201.74.45.73.45%201.12%201.29.39.831.39%201.98t-.39%201.98a2.9%202.9%200%200%201-1.12%201.28q-.72.44-1.74.44m0-.84q.741%200%201.26-.34.531-.34.81-.98.28-.64.28-1.54t-.28-1.54q-.279-.65-.81-.99-.519-.35-1.26-.35-.729%200-1.26.35-.52.34-.8.99-.28.64-.28%201.54t.28%201.54.8.98q.531.34%201.26.34'/%3e%3c/svg%3e",ES="https://dfakto.eu.probopages.com/en",zf={fr:{title:"dFakto est certifié ISO/IEC 27001:2022",main:"Le système de management de la sécurité de l'information de dFakto est certifié ISO/IEC 27001:2022 dans le périmètre certifié.",cta:"En savoir plus sur la certification dFakto →",label:"SECURITÉ & CONFIANCE",fullTitle:"Une certification internationale pour renforcer la confiance",scope:"La certification couvre la conception, le développement, la fourniture et le support de services de solutions logicielles pour l'automatisation des données, la gouvernance des données prête pour l'IA et l'exécution stratégique.",entity:"Entité certifiée : Deployments Factory SA, opérant sous le nom « dFakto »."},en:{title:"dFakto is certified to ISO/IEC 27001:2022",main:"dFakto's Information Security Management System is certified to ISO/IEC 27001:2022 within the certified scope.",cta:"Learn more about dFakto's certification →",label:"SECURITY & TRUST",fullTitle:"International certification that strengthens trust",scope:"The certification covers the design, development, delivery and support of software solutions services for data automation, AI-ready data governance and strategic execution.",entity:"Certified entity: Deployments Factory SA, trading as dFakto."},nl:{title:"dFakto is gecertificeerd volgens ISO/IEC 27001:2022",main:"Het managementsysteem voor informatiebeveiliging van dFakto is binnen de gecertificeerde scope gecertificeerd volgens ISO/IEC 27001:2022.",cta:"Meer informatie over de certificering van dFakto →",label:"VEILIGHEID & VERTROUWEN",fullTitle:"Een internationale certificering die vertrouwen versterkt",scope:"De certificering omvat het ontwerp, de ontwikkeling, de levering en de ondersteuning van softwareoplossingen voor data-automatisering, AI-klare datagovernance en strategische uitvoering.",entity:"Gecertificeerde entiteit: Deployments Factory SA, handelend onder de naam « dFakto »."}}
406,IS=()=>{const{i18n:e}=Q(),t=(e.language||"en").slice(0,2);return zf[t]??zf.en},v0=({full:e=!1})=>{const t=IS();return r.jsx("section",{className:e?"pb-16 lg:pb-24":"pb-16 lg:pb-20",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-4xl mx-auto rounded-2xl border border-border bg-card shadow-card p-8 flex flex-col sm:flex-row items-start gap-6",children:[r.jsx("img",{src:PS,alt:"ISO/IEC 27001:2022",className:"w-20 h-20 flex-shrink-0"}),r.jsxs("div",{children:[r.jsx("span",{className:"inline-block text-xs font-semibold tracking-wider text-accent mb-2",children:e?t.label:"ISO/IEC 27001:2022"}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-3",children:e?t.fullTitle:t.title}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-3",children:t.main}),e&&r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-3",children:t.scope}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-3 font-medium",children:t.entity})]}),r.jsx("a",{href:ES,target:"_blank",rel:"noopener noreferrer",className:"text-accent font-semibold hover:underline",children:t.cta})]})]})})})},AS="https://bookings.cloud.microsoft/book/[email protected]/?ismsaljsauthenabled";function jt({children:e,variant:t="hero",size:n="xl",className:a,meetingUrl:o}){const s=o||AS;return r.jsx("a",{href:s,target:"_blank",rel:"noopener noreferrer",className:"inline-block",children:r.jsxs(te,{variant:t,size:n,className:a,children:[e,r.jsx(Ge,{className:"w-5 h-5"})]})})}const RS="/assets/client-exki-Cog5E0FM.svg",_S="/assets/client-bnp-Cq35riA6.svg",OS="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='Calque_3'%20width='400'%20height='400'%20viewBox='0%200%20400%20400'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:%232a2f80;}.cls-1,.cls-2,.cls-3{stroke-width:0px;}.cls-2{fill:%23fff;}.cls-3{fill:%23ee282d;}%3c/style%3e%3c/defs%3e%3cg%20id='layer1'%3e%3cg%20id='g76'%3e%3crect%20id='base-2'%20class='cls-1'%20x='26'%20y='16.5'%20width='357.7'%20height='357.7'%3e%3c/rect%3e%3cpolygon%20id='switch'%20class='cls-3'%20points='227.1%20193.2%20247.7%20193.2%20383.7%2016.5%20363.6%2016.5%20227.1%20193.2'%3e%3c/polygon%3e%3cpath%20id='axa'%20class='cls-2'%20d='M299.3,272c6.2,17.5,19.1,62.8,24.2,66.5h-33.7c-.1-4-.6-8-1.6-11.9-1.5-5.2-13.7-44.5-13.7-44.5h-53.5l-8.4,12s10.1,31.7,10.8,33.2c1.1,2.8,5.9,11.2,5.9,11.2h-32.4s-.8-4.8-1.1-6.9c-.3-1.6-3.1-10.5-3.1-10.5,0,0-7.3,8-9.3,11.8s-2.9,5.6-2.9,5.6h-25.3s-.9-4.8-1.2-6.9c-.3-1.6-3.3-11.3-3.3-11.3,0,0-7.1,8.6-9.1,12.3s-2.9,5.8-2.9,5.8h-25s7.1-6.7,9.5-9.6c4.2-4.9,19.7-25.2,19.7-25.2l-6.2-21.5h-53.2s-30.3,39.9-31.5,41.1-10,13.9-10.2,15.3h-15.8v-10c.2-.2.4-.4.6-.6.5-.4,23-28.3,43.7-55.8,18.6-24,36-47.4,37.5-49.6,3.7-5.4,9-17,9-17h27.5s.9,10.7,1.6,13.3c.7,2.3,17.5,57.3,17.9,57.8l9.3-11.8-15.8-48.8s-3.7-9.2-4.9-10.6h32.1c-.1,3,.2,5.9,1.1,8.7,1.3,4,8.2,28.9,8.2,28.9,0,0,21.9-27.4,23.2-29.4,1.6-2.5,2.5-5.3,2.7-8.2h26.8s-4.9,3.6-13.5,14.4c-2.9,3.7-31.1,39.6-31.1,39.6,0,0,2.5,8.4,3.7,12.6.3,1.2.6,2,.6,2.1s.6-.7,1.7-2.1c7.3-9.2,40.4-52.7,42.4-56.4,1.6-3,4-6.4,5.4-10.1h26.1s.6,7.8,1.4,10l16.
4061,56.5ZM259.6,230.9c-3.8,8.2-26.4,35.7-26.4,35.7h35.7s-6.9-21.3-8.1-26.1c-.6-3.1-.9-6.2-.7-9.3,0-.6-.1-1.3-.5-.3ZM122.3,230.9c-3.8,8.2-26.4,35.7-26.4,35.7h35.7s-6.9-21.3-8.1-26.1c-.6-3.1-.8-6.2-.7-9.3,0-.6,0-1.3-.5-.3ZM176.1,314.1l9.9-13.5c-.9-1-6.4-17.8-6.4-17.8l-9.6,12.3,6.1,19Z'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/svg%3e",LS="/assets/client-parking-brussels-wC0Pvznl.svg",zS="/assets/client-france-BZJS2qGj.svg",MS="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='255px'%20height='48px'%20viewBox='0%200%20255%2048'%3e%3cdefs%3e%3cg%20id='Layer0_0_FILL'%3e%3cpath%20fill='%231300FF'%20stroke='none'%20d='%20M%200%2037%20L%200%2047.95%2010.85%2047.95%2010.85%2037%200%2037%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_FILL'%3e%3cpath%20fill='%231D1D1B'%20stroke='none'%20d='%20M%2042.4%2036.8%20L%2045%2048%2057.75%2048%2044.55%200%2029%201%2016.25%2048%2027.2%2048%2029.85%2036.8%2042.4%2036.8%20M%2031.9%2028.4%20L%2036.2%2010.65%2040.4%2028.4%2031.9%2028.4%20M%2081.45%208.45%20Q%2084.35%208.4%2087.3%208.95%2089.7%209.4%2093.85%2010.65%20L%2096.35%202.5%20Q%2092.8%201.3%2090.75%200.85%2086.9%200%2082.15%200%2072.05%200%2066.85%206.55%2061.75%2012.95%2061.75%2025%2061.75%2037.95%2068.3%2043.9%2073.35%2048.5%2081.65%2048.5%2089.95%2048.5%2096.55%2046.45%20L%2096.55%2025%2086.05%2025%2086.05%2039.8%20Q%2080%2039%2077.05%2035.25%2073.95%2031.35%2073.95%2024%2073.95%2019.05%2074.55%2015.15%2074.9%2012.55%2076.4%2010.8%2078.25%208.6%2081.45%208.45%20M%20139.4%206.1%20Q%20134.6%200%20124.5%200%20115.15%200%20109.8%206.1%20104.15%2012.5%20104.15%2024.3%20104.15%2035.4%20108.85%2041.7%20113.85%2048.5%20123.55%2048.5%20132.75%2048.5%20138.25%2042.5%20144.1%2036.05%20144.1%2024.3%20144.1%2012%20139.4%206.1%20M%20124.3%208.35%20Q%20128.05%208.35%20130.15%2012.15%20132%2015.5%20132%2020.65%20L%20132%2026%20Q%20132%2031%20129.75%2035.25%20127.3%2039.75%20124%2039.75%20120.4%2039.75%20118.25%2035.65%20116.4%2032.15%20116.4%2027.45%20L%20116.4%2022.15%20Q%20116.4%2017.05%20118.55%2012.9%20120.9%208.35%20124.3%208.35%20M%20178.9%203.3%20Q%20174.25%200%20165.05%200%20163%200%20156.9%200.45%20L%20151.25%200.85%20151.25%2048%20163.05%2048%20163.05%2031.75%20Q%20166.05%2032%20166.65%2032%20L%20174.3%2048%20187.15%2048%20176.75%2029.3%20176.8%2029.3%20Q%20183.65%2024.9%20184.15%2015%20184.15%206.95%20178.9%203.3%20M%20162.85%2022.75%20L%20162.85%208.15%20162.9%208.15%20Q%20167.75%208.15%20169.7%209.6%20171.8%2011.2%20171.8%2015.35%20171.8%2020.1%20169.65%2023.25%20166.85%2023.25%20162.85%2022.75%20M%20206.65%2048%20L%20206.65%200%20194.85%201%20194.85%2048%20206.65%2048%20M%20243.1%2048%20L%20255.9%2048%20242.7%200%20227.1%201%20214.4%2048%20225.3%2048%20228%2036.8%20240.5%2036.8%20243.1%2048%20M%20238.5%2028.4%20L%20230%2028.4%20234.3%2010.65%20238.5%2028.4%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%201,%200,%200,%201,%200,0)%20'%3e%3cuse%20xlink:href='%23Layer0_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%201,%200,%200,%201,%200,0)%20'%3e%3cuse%20xlink:href='%23Layer0_1_FILL'/%3e%3c/g%3e%3c/svg%3e",FS="/assets/client-jandenul-B_ORRY9o.svg",qS="data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='Calque_5'%20width='179.3'%20height='160.1'%20viewBox='0%200%20179.3%20160.1'%3e%3cdefs%3e%3cstyle%3e.cls-1{fill:%23ef3e58;}.cls-1,.cls-2{stroke-width:0px;}.cls-2{fill:%23010101;}%3c/style%3e%3c/defs%3e%3cg%20id='MCI_PRIMARY_LOGO_RGB_NEG'%3e%3cg%20id='MCI'%3e%3cpath%20id='Tracé_1'%20class='cls-2'%20d='M64.5,115c-4.2-2-8.8-3-13.4-2.9h-.1c-5.2.2-10.2,2-14.3,5.1-3.7-3-8.2-4.8-12.9-5-1.1-.1-2.2-.2-3.3-.2-5.9.1-11.7,1.5-17,4l-3.5,1.6v41.2h10.9v-33.4q0-.4.4-.6l.2-.1c3-1.2,6.1-1.8,9.3-1.8,3.2-.2,6.4.8,8.8,2.9,1,1.2,1.5,2.7,1.3,4.3l.1,28.8h10.8l.1-33.9c.8-.3,1.7-.6,2.6-.9,2.4-.7,4.8-1.1,7.3-1.
4061s8.9.5,10.1,5.1c.1.7.2,1.3.2,2v28.8h10.9v-28.9c.3-6.2-3-12.1-8.5-15Z'%3e%3c/path%3e%3crect%20id='Rectangle_33'%20class='cls-2'%20x='122.7'%20y='113.2'%20width='10.9'%20height='45.6'%3e%3c/rect%3e%3cpath%20id='Tracé_2'%20class='cls-2'%20d='M109.2,147.6c-2.2,1.1-4.6,1.6-7,1.5-8.4.3-13.4-5.8-13.4-13.1.1-7.6,5.3-13.5,13.4-13.2,2.5-.1,5.1.5,7.3,1.7l7.7-8.5c-6.9-4.5-16.5-4.9-24.2-2.7-10,2.9-14.9,12.2-14.6,22.7-.2,15.1,9.2,24.2,23.9,24,5.3.2,10.5-1.2,15-4l-7.7-8.6-.4.2Z'%3e%3c/path%3e%3c/g%3e%3cg%20id='MCI_FLOWER'%3e%3ccircle%20id='Ellipse_2'%20class='cls-1'%20cx='128.1'%20cy='51.2'%20r='8'%3e%3c/circle%3e%3cpath%20id='Tracé_3'%20class='cls-2'%20d='M179.3,51.1c0-13.9-10.5-25.5-24.3-26.9-1.5-14.9-14.8-25.7-29.7-24.1-12.7,1.3-22.8,11.4-24.1,24.1-14.9,1.6-25.7,14.9-24.1,29.8,1.3,12.7,11.4,22.8,24.1,24.1,1.5,14.9,14.8,25.7,29.7,24.1,12.7-1.3,22.8-11.4,24.1-24.1,13.8-1.5,24.3-13.1,24.3-27ZM128.1,5.9c11.7,0,21.1,9.5,21.2,21.1,0,8.1-2.7,15.9-7.6,22.3-.3-1.8-.9-3.6-1.8-5.1h0c-7-11.5-19.2-18.9-32.6-19.9,1.3-10.5,10.2-18.4,20.8-18.4h0ZM126.3,58.6c-4.1-1-6.7-5.2-5.6-9.3,1-4.1,5.2-6.7,9.3-5.6,4.1,1,6.7,5.2,5.6,9.3-.5,2-1.8,3.7-3.5,4.7-1.8,1.1-3.9,1.4-5.8.9h0ZM82.9,51.1c0-11.6,9.4-21.1,21.1-21.1,8.1,0,15.9,2.7,22.2,7.7-1.8.3-3.6.9-5.2,1.8h0c-11.5,7-18.9,19.2-19.9,32.6-10.4-1.4-18.2-10.3-18.2-21h0ZM128.1,96.4c-11.7,0-21.1-9.5-21.1-21.1,0-8.1,2.7-15.9,7.7-22.2.2,1.8.9,3.6,1.8,5.1h0c7,11.5,19.2,18.9,32.6,19.9-1.5,10.5-10.4,18.3-21,18.3h0ZM152.2,72.3c-8.1,0-15.9-2.7-22.2-7.6,1.8-.3,3.6-.9,5.1-1.8h0c11.5-7,18.9-19.2,19.9-32.6,11.6,1.6,19.6,12.3,18,23.9-1.5,10.3-10.3,18-20.8,18.1h0Z'%3e%3c/path%3e%3c/g%3e%3c/g%3e%3c/svg%3e",BS="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='none'%20x='0px'%20y='0px'%20width='558px'%20height='500px'%20viewBox='0%200%20558%20500'%3e%3cdefs%3e%3cg%20id='Layer0_0_FILL'%3e%3cpath%20fill='%237DAED3'%20stroke='none'%20d='%20M%20524.2%20395.9%20L%20502.75%20395.9%20Q%20487.3%20417.3%20468.65%20437%20430.8%20476.8%20390.05%20503.75%20349.55%20530.5%20310.65%20541.6%20271.05%20552.95%20237.3%20546.85%20202.2%20540.5%20176.75%20515.75%20154%20493.65%20144%20462.45%20134.35%20432.2%20137.45%20395.95%20L%2088.45%20395.95%20Q%2082.3%20439.5%2091.9%20475.4%20101.9%20512.7%20128%20538%20155.9%20565.15%20198.65%20573.15%20239.8%20580.85%20288.45%20569.75%20337.1%20558.6%20384.8%20530.6%20434.45%20501.45%20475.25%20458.5%20503%20429.3%20524.2%20395.9%20M%20521.2%20125.9%20Q%20545.95%20149.5%20555.9%20184.7%20565.6%20218.8%20560.2%20259.5%20L%20574.5%20259.5%20Q%20579.2%20215.45%20568.1%20178.45%20556.65%20140.45%20530%20115.1%20501.65%2088.2%20459.5%2079.75%20418.5%2071.6%20371.2%2082.15%20323.35%2092.85%20277.35%20120.9%20229.05%20150.35%20190.1%20194.65%20162.8%20225.75%20141.6%20259.5%20L%20189%20259.5%20Q%20206.05%20233.45%20228.1%20208.3%20264.1%20167.35%20305.05%20139.45%20345.05%20112.2%20384.85%20100.75%20424.95%2089.15%20459.55%2095.2%20495.45%20101.4%20521.2%20125.9%20Z'/%3e%3c/g%3e%3cg%20id='Layer0_1_FILL'%3e%3cpath%20fill='%23000000'%20stroke='none'%20d='%20M%20238.35%20277.15%20Q%20223.45%20277.15%20211.15%20283.65%20198.9%20290.2%20192.15%20301.65%20185.35%20312.9%20185.35%20326.65%20185.35%20346.25%20199.35%20360.85%20213.2%20375.45%20238%20375.45%20265.4%20375.45%20280.35%20355.85%20L%20261.85%20343.15%20Q%20253.2%20353.9%20237.35%20353.9%20224.75%20353.9%20216.85%20346.3%20209.05%20338.65%20209.05%20326.8%20209.05%20314.55%20217.15%20306.7%20225.25%20298.8%20238.5%20298.8%20245.8%20298.8%20251.1%20301%20256.4%20303.25%20262%20309%20L%20281.5%20298.25%20Q%20274.3%20287.85%20263.35%20282.65%20252.55%20277.15%20238.35%20277.15%20M%2099.8%20277%20Q%2091.25%20277%2084%20280.1%2076.65%20283.2%2070.15%20289.5%20L%2070.15%20279.3%2046.7%20279.3%2046.7%20407.1%2070.15%20407.1%2070.15%20362.9%20Q%2077.25%20369.55%2084%20372.3%2090.95%20375.2%2099.05%20375.2%20117.2%20375.2%20130.5%20361.2%20143.8%20347%20143.8%20326.3%20143.8%20304.65%20131%20290.8%20118.25%20277%2099.8%20277%20M%2069.15%20325.8%20Q%2069.15%20313.5%2076.45%20305.9%2083.9%20298.3%2094.85%20298.3%20105.7%20298.3%20113.05%20306.15%20120.25%20313.7%20120.25%20325.9%20120.25%20338.15%20112.95%20345.9%20105.65%20353.7%2094.85%20353.7%2083.85%20353.7%2076.45%20346%2069.15%20338.4%2069.15%20325.8%20M%20582.05%20279.2%20L%20582.05%20289.5%20Q%20575.7%20283.15%20568.35%20280.15%20560.95%20276.9%20552.55%20276.9%20534.35%20276.9%20521.35%20290.7%20508.55%20304.55%20508.55%20326.2%20508.55%20347.1%20521.85%20361.1%20534.95%20375.1%20553.25%20375.1%20561.65%20375.1%20568.25%20372.2%20575.35%20369.25%20582.05%20362.8%20L%20582.05%20372.7%20605.55%20372.7%20605.55%20279.2%20582.05%20279.2%20M%20539.2%20305.95%20Q%20546.3%20298.25%20557.25%20298.25%20568.5%20298.35%20575.9%20305.9%20583.2%20313.5%20583.2%20325.7%20583.2%20338.2%20575.9%20345.9%20568.45%20353.65%20557.5%20353.65%20546.7%20353.65%20539.4%20345.75%20532%20337.8%20532%20325.75%20532%20313.55%20539.2%20305.95%20M%20433.65%20276.9%20Q%20423.85%20276.9%20415.85%20281.2%20407.65%20285.6%20402.15%20293.8%20397.75%20285.5%20390.75%20281.2%20383.85%20276.9%20375%20276.9%20366.2%20276.9%20358.85%20280.2%20351.45%20283.55%20345.5%20290.1%20L%20345.5%20279.3%20322%20279.3%20322%20372.6%20345.45%20372.6%20345.45%20331.1%20Q%20345.45%20317.7%20347.85%20311.4%20350.3%20305.1%20355.05%20301.7%20359.9%20298.2%20365.75%20298.2%20371%20298.2%20374.75%20300.9%20378.55%20303.8%20380.35%20309.3%20382.25%20314.7%20382.25%20327.4%20L%20382.25%20372.6%20405.75%20372.6%20405.75%20330.5%20Q%20405.75%20317.25%20408.05%20311.1%20410.3%20305.1%20415.15%20301.6%20419.9%20298.2%20426.05%20298.2%20433.85%20298.2%20437.95%20303.8%20441.95%20309.45%20441.95%20325.3%20L%20441.95%20372.7%20465.45%20372.7%20465.45%20317.9%20Q%20465.45%20301.15%20462.15%20293.65%20459%20286.25%20451.25%20281.5%20443.7%20276.9%20433.65%20276.9%20Z'/%3e%3c/g%3e%3c/defs%3e%3cg%20transform='matrix(%201,%200,%200,%201,%20-46.7,-76.2)%20'%3e%3cuse%20xlink:href='%23Layer0_0_FILL'/%3e%3c/g%3e%3cg%20transform='matrix(%201,%200,%200,%201,%20-46.7,-76.2)%20'%3e%3cuse%20xlink:href='%23Layer0_1_FILL'/%3e%3c/g%3e%3c/svg%3e",Mf=[{name:"Exki",logo:RS},{name:"BNP Paribas",logo:_S},{name:"AXA",logo:OS},{name:"Parking.brussels",logo:LS},{name:"Gouvernement français",logo:zS},{name:"Agoria",logo:MS},{name:"Jan De Nul",logo:FS},{name:"MCI",logo:qS},{name:"PCMA",logo:BS}
406],VS=[{city:"Paris",phone:"+33.1.89.16.49.74"},{city:"Bruxelles",phone:"+32.2.290.63.90"}],$S=()=>{const{t:e}=Q(),t=[{value:"40+",label:e("stats.consultants")},{value:"25",label:e("stats.years")},{value:"50+",label:e("stats.customers")},{value:e("stats.certifiedValue"),label:e("stats.certified")}],n=[{icon:ks,title:"beVault",subtitle:e("products.bevault.subtitle"),description:e("products.bevault.description"),href:"/bevault-data-warehouse-automation",features:[e("products.bevault.feature1"),e("products.bevault.feature2"),e("products.bevault.feature3")]},{icon:Hr,title:"proPilot",subtitle:e("products.propilot.subtitle"),description:e("products.propilot.description"),href:"/propilot-strategy-execution-management-software",features:[e("products.propilot.feature1"),e("products.propilot.feature2"),e("products.propilot.feature3")]},{icon:Xr,title:"Odoo",subtitle:e("products.odoo.subtitle"),description:e("products.odoo.description"),href:"/odoo",features:[e("products.odoo.feature1"),e("products.odoo.feature2"),e("products.odoo.feature3")]}],a=[{icon:tx,title:e("industries.finance.title"),description:e("industries.finance.description"),href:"/solutions/finance"},{icon:Tp,title:e("industries.publicSector.title"),description:e("industries.publicSector.description"),href:"/solutions/public-sector"},{icon:Jb,title:e("industries.industry.title"),description:e("industries.industry.description"),href:"/solutions/industry"}];return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:"dFakto | The Analytics Data Warehouse & Strategy Platform"}),r.jsx("meta",{name:"description",content:"Unify your data with beVault (Certified Data Vault) and drive execution with proPilot. The complete platform for data-driven organizations."}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/"})]}),r.jsxs("section",{className:"relative gradient-hero overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_rgba(59,130,246,0.15),_transparent_50%)]"}),r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_bottom_left,_rgba(255,107,53,0.1),_transparent_50%)]"}),r.jsx("div",{className:"container mx-auto px-4 lg:px-8 py-24 lg:py-32 relative",children:r.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/10 backdrop-blur-sm border border-white/10 mb-8 animate-fade-up",children:[r.jsx(jp,{className:"w-4 h-4 text-cta"}),r.jsx("span",{className:"text-white/80 text-sm font-medium",children:e("hero.badge")})]}),r.jsxs("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight animate-fade-up delay-100",children:[e("hero.titleStart")," ",r.jsx("span",{className:"text-gradient",children:e("hero.titleHighlight")})]}),r.jsx("p",{className:"text-lg md:text-xl text-white/70 mb-10 max-w-3xl mx-auto leading-relaxed animate-fade-up delay-200",children:e("hero.subtitle")}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center animate-fade-up delay-300",children:[r.jsx(jt,{variant:"hero",size:"xl",children:e("hero.ctaPrimary")}),r.jsx(L,{to:"/contact",children:r.jsx(te,{variant:"heroOutline",size:"xl",children:e("hero.ctaSecondary")})})]})]})}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-background to-transparent"})]}),r.jsx("section",{className:"py-8 -mt-16 relative z-10",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"max-w-4xl mx-auto",children:r.jsx(SS,{})})})}),r.jsx("section",{className:"py-16 lg:py-20",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-8 lg:gap-12",children:t.map((o,s)=>r.jsxs("div",{className:"text-center animate-fade-up",style:{animationDelay:`${s*100}ms`},children:[r.jsx("div",{className:"text-4xl lg:text-5xl font-bold text-foreground mb-2",children:o.value}),r.jsx("div",{className:"text-muted-foreground",children:o.label})]},s))})})}),r.jsx(v0,{}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("products.sectionTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("products.sectionSubtitle")})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:n.map((o,s)=>r.jsxs(L,{to:o.href,className:"group bg-card rounded-2xl p-8 shadow-card border border-border hover:shadow-lg hover:border-accent/30 transition-all duration-300 animate-fade-up",style:{animationDelay:`${s*100}ms`}
406,children:[r.jsx("div",{className:"w-14 h-14 rounded-xl bg-navy/5 group-hover:bg-accent/10 flex items-center justify-center mb-6 transition-colors",children:r.jsx(o.icon,{className:"w-7 h-7 text-navy group-hover:text-accent transition-colors"})}),r.jsx("h3",{className:"text-2xl font-semibold text-foreground mb-1 group-hover:text-accent transition-colors",children:o.title}),r.jsx("p",{className:"text-sm text-accent font-medium mb-4",children:o.subtitle}),r.jsx("p",{className:"text-muted-foreground mb-6 leading-relaxed",children:o.description}),r.jsx("ul",{className:"space-y-2 mb-6",children:o.features.map(i=>r.jsxs("li",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[r.jsx(on,{className:"w-4 h-4 text-accent"}),i]},i))}),r.jsxs("div",{className:"flex items-center gap-2 text-accent font-medium group-hover:gap-3 transition-all",children:[e("products.learnMore")," ",r.jsx(Ge,{className:"w-4 h-4"})]})]},o.title))}),r.jsx("div",{className:"text-center mt-12",children:r.jsx(jt,{variant:"cta",size:"lg",children:e("products.midCta")})})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("industries.sectionTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("industries.sectionSubtitle")})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:a.map((o,s)=>r.jsxs(L,{to:o.href,className:"group relative overflow-hidden rounded-2xl bg-navy p-8 animate-fade-up",style:{animationDelay:`${s*100}ms`},children:[r.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-accent/20 to-transparent opacity-0 group-hover:opacity-100 transition-opacity"}),r.jsxs("div",{className:"relative",children:[r.jsx("div",{className:"w-14 h-14 rounded-xl bg-white/10 flex items-center justify-center mb-6",children:r.jsx(o.icon,{className:"w-7 h-7 text-white"})}),r.jsx("h3",{className:"text-2xl font-semibold text-white mb-3",children:o.title}),r.jsx("p",{className:"text-white/70 mb-6",children:o.description}),r.jsxs("div",{className:"flex items-center gap-2 text-white font-medium group-hover:gap-3 transition-all",children:[e("industries.exploreSolutions")," ",r.jsx(Ge,{className:"w-4 h-4"})]})]})]},o.title))})]})}),r.jsx("section",{className:"py-16 lg:py-24 gradient-hero",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-white mb-6",children:e("cta.title")}),r.jsx("p",{className:"text-lg text-white/70 mb-8",children:e("cta.subtitle")}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[r.jsx(jt,{variant:"hero",size:"xl",children:e("cta.primary")}),r.jsx(L,{to:"/contact",children:r.jsx(te,{variant:"heroOutline",size:"xl",children:e("cta.secondary")})})]})]})})}),r.jsx("section",{className:"py-16 lg:py-20 bg-muted/30 overflow-hidden",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("div",{className:"text-center mb-12",children:r.jsx("p",{className:"text-muted-foreground font-medium uppercase tracking-wider text-sm",children:e("trustedBy")})}),r.jsx("div",{className:"relative",children:r.jsx("div",{className:"flex animate-scroll gap-12 py-4",children:[...Mf,...Mf].map((o,s)=>r.jsx("div",{className:"flex-shrink-0 w-32 h-16 flex items-center justify-center grayscale hover:grayscale-0 opacity-60 hover:opacity-100 transition-all duration-300",children:r.jsx("img",{src:o.logo,alt:`dFakto Client Logo - ${o.name}`,className:"max-h-12 max-w-full object-contain"})},`${o.name}-${s}`))})})]})}),r.jsx("section",{className:"py-16 lg:py-20",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("div",{className:"text-center mb-12",children:r.jsx("h2",{className:"text-2xl lg:text-3xl font-bold text-foreground mb-4",children:e("offices.title")})}),r.jsx("div",{className:"flex flex-wrap justify-center gap-8 lg:gap-16",children:VS.map(o=>r.jsxs("div",{className:"flex items-center gap-4 bg-card rounded-xl p-6 border border-border",children:[r.jsx("div",{className:"w-12 h-12 rounded-lg bg-accent/10 flex items-center justify-center",children:r.jsx(ns,{className:"w-6 h-6 text-accent"})}),r.jsxs("div",{children:[r.jsx("h3",{className:"font-semibold text-foreground",children:o.city}),r.jsxs("a",{href:`tel:${o.phone.replace(/\./g,"")}`,className:"text-muted-foreground text-sm flex items-center gap-2 hover:text-accent transition-colors",children:[r.jsx(tl,{className:"w-4 h-4"}),o.phone]})]})]},o.city))})]})})]})},HS=["Snowflake","Databricks","Azure Synapse","Google BigQuery","AWS Redshift","PostgreSQL"],WS=()=>{const{t:e}=Q(),t=[{icon:ox,titleKey:"featureAutoTitle",descKey:"featureAutoDesc"},{icon:yj,titleKey:"featureLineageTitle",descKey:"featureLineageDesc"},{icon:Oo,titleKey:"featureRapidTitle",descKey:"featureRapidDesc"},{icon:ax,titleKey:"featureAuditTitle",descKey:"featureAuditDesc"}
406,{icon:Qb,titleKey:"featureOnPremTitle",descKey:"featureOnPremDesc"},{icon:Rj,titleKey:"featureIncrTitle",descKey:"featureIncrDesc"}],n=[{metric:"80%",labelKey:"benefitTime"},{metric:"100%",labelKey:"benefitLineage"},{metric:"0",labelKey:"benefitErrors"},{metric:"24/7",labelKey:"benefitMonitoring"}],a=[{step:"01",titleKey:"step1Title",descKey:"step1Desc"},{step:"02",titleKey:"step2Title",descKey:"step2Desc"},{step:"03",titleKey:"step3Title",descKey:"step3Desc"},{step:"04",titleKey:"step4Title",descKey:"step4Desc"}];return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:"beVault | Data Vault Automation Software & Tool"}),r.jsx("meta",{name:"description",content:"Automate your Data Warehouse build. Generate SQL, lineage, and documentation automatically. Compatible with Snowflake, Azure, and On-premise."}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/bevault-data-warehouse-automation"})]}),r.jsxs("section",{className:"relative gradient-hero overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_rgba(59,130,246,0.15),_transparent_50%)]"}),r.jsx("div",{className:"container mx-auto px-4 lg:px-8 py-24 lg:py-32 relative",children:r.jsxs("div",{className:"max-w-4xl",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/10 backdrop-blur-sm border border-white/10 mb-8 animate-fade-up",children:[r.jsx(ks,{className:"w-4 h-4 text-cta"}),r.jsx("span",{className:"text-white/80 text-sm font-medium",children:e("bevaultPage.badge")})]}),r.jsxs("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight animate-fade-up delay-100",children:[e("bevaultPage.title")," ",r.jsx("span",{className:"text-gradient",children:e("bevaultPage.titleHighlight")})]}),r.jsx("p",{className:"text-lg md:text-xl text-white/70 mb-10 max-w-2xl leading-relaxed animate-fade-up delay-200",children:e("bevaultPage.subtitle")}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 animate-fade-up delay-300",children:[r.jsx(jt,{variant:"hero",size:"xl",children:e("bevaultPage.ctaPrimary")}),r.jsx(L,{to:"/ressources-dfakto",children:r.jsx(te,{variant:"heroOutline",size:"xl",children:e("bevaultPage.ctaSecondary")})})]})]})}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-background to-transparent"})]}),r.jsx("section",{className:"py-12 bg-muted/30 border-y border-border",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-8",children:n.map((o,s)=>r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"text-3xl lg:text-4xl font-bold text-accent mb-1",children:o.metric}),r.jsx("div",{className:"text-sm text-muted-foreground",children:e(`bevaultPage.${o.labelKey}`)})]},s))})})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("bevaultPage.featuresTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("bevaultPage.featuresSubtitle")})]}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-8",children:t.map((o,s)=>r.jsxs("div",{className:"bg-card rounded-xl p-6 border border-border hover:border-accent/30 hover:shadow-card transition-all duration-300 animate-fade-up",style:{animationDelay:`${s*50}ms`},children:[r.jsx("div",{className:"w-12 h-12 rounded-lg bg-accent/10 flex items-center justify-center mb-4",children:r.jsx(o.icon,{className:"w-6 h-6 text-accent"})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:e(`bevaultPage.${o.titleKey}`)}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e(`bevaultPage.${o.descKey}`)})]},o.titleKey))})]})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-12",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("bevaultPage.platformsTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("bevaultPage.platformsSubtitle")})]}),r.jsx("div",{className:"flex flex-wrap justify-center gap-4",children:HS.map(o=>r.jsx("div",{className:"px-6 py-3 bg-card rounded-lg border border-border text-foreground font-medium",children:o},o))})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("div",{className:"text-center mb-16",children:r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("bevaultPage.howTitle")})}),r.jsx("div",{className:"grid md:grid-cols-4 gap-8",children:a.map(o=>r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"text-5xl font-bold text-accent/20 mb-4",children:o.step}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:e(`bevaultPage.${o.titleKey}`)}),r.jsx("p",{className:"text-muted-foreground",children:e(`bevaultPage.${o.descKey}`)})]},o.step))})]})}),r.jsx("section",{className:"py-16 lg:py-20",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"bg-card rounded-2xl p-8 lg:p-12 border border-border flex flex-col lg:flex-row items-center justify-between gap-6",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:e("bevaultPage.deepDiveTitle")}),r.jsx("p",{className:"text-muted-foreground",children:e("bevaultPage.deepDiveDesc")})]}),r.jsx("a",{href:"https://www.bevault.io/",target:"_blank",rel:"noopener noreferrer",children:r.jsxs(te,{variant:"cta",size:"lg",children:[e("bevaultPage.deepDiveCta"),r.jsx(Ge,{className:"w-4 h-4"})]})})]})})}),r.jsx("section",{className:"py-16 lg:py-24 gradient-hero",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-white mb-6",children:e("bevaultPage.ctaBottomTitle")}),r.jsx("p",{className:"text-lg text-white/70 mb-8",children:e("bevaultPage.ctaBottomSubt
406itle")}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[r.jsx(jt,{variant:"hero",size:"xl",children:e("bevaultPage.ctaBottomPrimary")}),r.jsx("a",{href:"https://learn.bevault.io",target:"_blank",rel:"noopener noreferrer",children:r.jsx(te,{variant:"heroOutline",size:"xl",children:e("bevaultPage.ctaBottomSecondary")})})]})]})})})]})},US=()=>{const{t:e}=Q(),t=[{icon:Hr,titleKey:"featureOkrTitle",descKey:"featureOkrDesc"},{icon:Np,titleKey:"featureDashTitle",descKey:"featureDashDesc"},{icon:wj,titleKey:"featureInitTitle",descKey:"featureInitDesc"},{icon:js,titleKey:"featureTeamTitle",descKey:"featureTeamDesc"},{icon:cj,titleKey:"featureNotifTitle",descKey:"featureNotifDesc"},{icon:hj,titleKey:"featureReportTitle",descKey:"featureReportDesc"}],n=[{metric:"40%",labelKey:"benefitGoal"},{metric:"60%",labelKey:"benefitAlignment"},{metric:"100%",labelKey:"benefitVisibility"},{metric:"1",labelKey:"benefitTruth"}],a=[{titleKey:"forExecutives",items:["execItem1","execItem2","execItem3"]},{titleKey:"forStrategy",items:["stratItem1","stratItem2","stratItem3"]},{titleKey:"forTeamLeads",items:["teamItem1","teamItem2","teamItem3"]}];return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:"proPilot | Strategic Portfolio Management Software (PPM)"}),r.jsx("meta",{name:"description",content:"Bridge the gap between strategy and execution. Monitor KPIs, OKRs, and project portfolios in real-time. The alternative to Excel for steering."}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/propilot-strategy-execution-management-software"})]}),r.jsxs("section",{className:"relative gradient-hero overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_rgba(255,107,53,0.15),_transparent_50%)]"}),r.jsx("div",{className:"container mx-auto px-4 lg:px-8 py-24 lg:py-32 relative",children:r.jsxs("div",{className:"max-w-4xl",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/10 backdrop-blur-sm border border-white/10 mb-8 animate-fade-up",children:[r.jsx(Hr,{className:"w-4 h-4 text-cta"}),r.jsx("span",{className:"text-white/80 text-sm font-medium",children:e("propilotPage.badge")})]}),r.jsxs("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight animate-fade-up delay-100",children:[e("propilotPage.title")," ",r.jsx("span",{className:"text-gradient",children:e("propilotPage.titleHighlight")})]}),r.jsx("p",{className:"text-lg md:text-xl text-white/70 mb-10 max-w-2xl leading-relaxed animate-fade-up delay-200",children:e("propilotPage.subtitle")}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 animate-fade-up delay-300",children:[r.jsx(jt,{variant:"hero",size:"xl",children:e("propilotPage.ctaPrimary")}),r.jsx("a",{href:"https://support.propilot.io/",target:"_blank",rel:"noopener noreferrer",children:r.jsx(te,{variant:"heroOutline",size:"xl",children:e("propilotPage.ctaSecondary")})})]})]})}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-background to-transparent"})]}),r.jsx("section",{className:"py-12 bg-muted/30 border-y border-border",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-8",children:n.map((o,s)=>r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"text-3xl lg:text-4xl font-bold text-cta mb-1",children:o.metric}),r.jsx("div",{className:"text-sm text-muted-foreground",children:e(`propilotPage.${o.labelKey}`)})]},s))})})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("propilotPage.featuresTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("propilotPage.featuresSubtitle")})]}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-8",children:t.map((o,s)=>r.jsxs("div",{className:"bg-card rounded-xl p-6 border border-border hover:border-cta/30 hover:shadow-card transition-all duration-300 animate-fade-up",style:{animationDelay:`${s*50}ms`},children:[r.jsx("div",{className:"w-12 h-12 rounded-lg bg-cta/10 flex items-center justify-center mb-4",children:r.jsx(o.icon,{className:"w-6 h-6 text-cta"})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:e(`propilotPage.${o.titleKey}`)}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e(`propilotPage.${o.descKey}`)})]},o.titleKey))})]})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("div",{className:"text-center mb-16",children:r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("propilotPage.useCasesTitle")})}),r.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:a.map((o,s)=>r.jsxs("div",{className:"bg-card rounded-xl p-8 border border-border",children:[r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-4",children:e(`propilotPage.${o.titleKey}`)}),r.jsx("ul",{className:"space-y-3",children:o.items.map(i=>r.jsxs("li",{className:"flex items-center gap-3 text-muted-foreground",children:[r.jsx(on,{className:"w-5 h-5 text-cta flex-shrink-0"}),e(`propilotPage.${i}`)]},i))})]},s))})]})}),r.jsx("section",{className:"py-16 lg:py-20",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"bg-card rounded-2xl p-8 lg:p-12 border border-border flex flex-col lg:flex-row items-center justify-between gap-6",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:e("propilotPage.deepDiveTitle")}),r.jsx("p",{className:"text-muted-foreground",children:e("propilotPage.deepDiveDesc")})]}),r.jsx("a",{href:"https://www.propilot.io/",target:"_blank",rel:"noopener noreferrer",children:r.jsxs(te,{variant:"cta",size:"lg",children:[e("propilotPage.deepDiveCta"),r.jsx(Ge,{className:"w-4 h-4"})]})})]})})}),r.jsx("section",{className:"py-16 lg:py-24 gradient-hero",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-white mb-6",children:e("propilotPage.ctaBottomTitle")}),r.jsx("p",{className:"text-lg text-white/70 mb-8",children:e("propilotPage.ctaBottomSubt
406itle")}),r.jsx(jt,{variant:"hero",size:"xl",children:e("propilotPage.ctaBottomPrimary")})]})})})]})},KS=()=>{const{t:e}=Q(),t=[{title:e("odooPage.challenge1Title"),desc:e("odooPage.challenge1Desc")},{title:e("odooPage.challenge2Title"),desc:e("odooPage.challenge2Desc")},{title:e("odooPage.challenge3Title"),desc:e("odooPage.challenge3Desc")}],n=[e("odooPage.bevault1"),e("odooPage.bevault2"),e("odooPage.bevault3")],a=[e("odooPage.propilot1"),e("odooPage.propilot2"),e("odooPage.propilot3")];return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:e("odooPage.metaTitle")}),r.jsx("meta",{name:"description",content:e("odooPage.metaDescription")}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/odoo"}),r.jsx("meta",{property:"og:title",content:e("odooPage.metaTitle")}),r.jsx("meta",{property:"og:description",content:e("odooPage.metaDescription")}),r.jsx("meta",{property:"og:type",content:"website"}),r.jsx("meta",{name:"twitter:card",content:"summary_large_image"})]}),r.jsxs("section",{className:"relative gradient-hero overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_rgba(59,130,246,0.15),_transparent_50%)]"}),r.jsx("div",{className:"container mx-auto px-4 lg:px-8 py-24 lg:py-32 relative",children:r.jsxs("div",{className:"max-w-4xl",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/10 backdrop-blur-sm border border-white/10 mb-8 animate-fade-up",children:[r.jsx(Xr,{className:"w-4 h-4 text-cta"}),r.jsx("span",{className:"text-white/80 text-sm font-medium",children:e("odooPage.badge")})]}),r.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight animate-fade-up delay-100",children:e("odooPage.heroTitle")}),r.jsx("p",{className:"text-lg md:text-xl text-white/70 mb-10 max-w-2xl leading-relaxed animate-fade-up delay-200",children:e("odooPage.heroSubtitle")}),r.jsx("div",{className:"flex flex-col sm:flex-row gap-4 animate-fade-up delay-300",children:r.jsx(L,{to:"/contact",children:r.jsx(te,{variant:"hero",size:"xl",children:e("odooPage.heroCta")})})})]})}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-background to-transparent"})]}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("odooPage.challengesTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("odooPage.challengesSubtitle")})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:t.map((o,s)=>r.jsxs("div",{className:"bg-card rounded-xl p-8 border border-border hover:border-destructive/30 transition-all duration-300",children:[r.jsx("div",{className:"w-12 h-12 rounded-lg bg-destructive/10 flex items-center justify-center mb-4",children:r.jsx(Cp,{className:"w-6 h-6 text-destructive"})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:o.title}),r.jsx("p",{className:"text-muted-foreground",children:o.desc})]},s))})]})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("div",{className:"text-center mb-16",children:r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("odooPage.approachTitle")})}),r.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[r.jsxs("div",{className:"bg-card rounded-2xl p-8 lg:p-10 border border-border",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl bg-accent/10 flex items-center justify-center",children:r.jsx(ks,{className:"w-6 h-6 text-accent"})}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-xl font-semibold text-foreground",children:e("odooPage.foundationLabel")}),r.jsx("p",{className:"text-sm text-accent font-medium",children:"beVault"})]})]}),r.jsx("p",{className:"text-muted-foreground mb-6",children:e("odooPage.foundationDesc")}),r.jsx("ul",{className:"space-y-3",children:n.map((o,s)=>r.jsxs("li",{className:"flex items-start gap-3",children:[r.jsx(on,{className:"w-5 h-5 text-accent flex-shrink-0 mt-0.5"}),r.jsx("span",{className:"text-foreground",children:o})]},s))})]}),r.jsxs("div",{className:"bg-navy rounded-2xl p-8 lg:p-10",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl bg-white/10 flex items-center justify-center",children:r.jsx(Hr,{className:"w-6 h-6 text-white"})}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-xl font-semibold text-white",children:e("odooPage.strategyLabel")}),r.jsx("p",{className:"text-sm text-cta font-medium",children:"proPilot"})]})]}),r.jsx("p",{className:"text-white/70 mb-6",children:e("odooPage.strategyDesc")}),r.jsx("ul",{className:"space-y-3",children:a.map((o,s)=>r.jsxs("li",{className:"flex items-start gap-3",children:[r.jsx(on,{className:"w-5 h-5 text-cta flex-shrink-0 mt-0.5"}),r.jsx("span",{className:"text-white/90",children:o})]},s))})]})]})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"max-w-4xl mx-auto",children:r.jsx("div",{className:"bg-gradient-to-br from-accent/5 to-cta/5 rounded-2xl p-8 lg:p-12 border border-accent/20",children:r.jsxs("div",{className:"text-center",children:[r.jsx("p",{className:"text-sm font-medium text-accent uppercase tracking-wider mb-4",children:e("odooPage.testimonialLabel")}),r.jsx("h3",{className:"text-2xl lg:text-3xl font-bold text-foreground mb-4",children:e("odooPage.caseCompany")}),r.jsx("p",{className:"text-xl text-cta font-semibold mb-6",children:e("odooPage.caseResult")}),r.jsxs("blockquote",{className:"text-lg text-muted-foreground italic",children:['"',e("odooPage.caseQuote"),'"']})]})})})})}),r.jsx("section",{className:"py-16 lg:py-24 gradient-hero",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-white mb-8",children:e("odooPage.ctaBottomTitle")}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[r.jsx(L,{to:"/contact",children:r.jsx(te,{variant:"hero",size:"xl",className:"w-full sm:w-auto",children:e("odooPage.ctaBottomPrimary")})}),r.jsx(L,{to:"/category/success-case/",children:r.jsx(te,{variant:"heroOutline",size:"xl",className:"w-full sm:w-auto",children:e("odooPage.ctaBottomSecondary")})})]})]})})})]})},GS={"digital-transformation":{icon:Xr,challenges:[{titleKey:"challenge1Title",descKey:"challenge1Desc"},{titleKey:"challenge2Title",descKey:"challenge2Desc"},{titleKey:"challenge3Title",descKey:"challenge3Desc"}],bevaultKeys:["bevault1","bevault2","bevault3"],propilotKeys:["propilot1","propilot2","propilot3"],caseStudy:{companyKey:"caseCompany",resultKey:"caseResult",quoteKey:"caseQuote"}},"regulatory-compliance":{icon:ax,challenges:[{titleKey:"challenge1Title",descKey:"challenge1Desc"},{titleKey:"challenge2Title",descKey:"challenge2Desc"},{titleKey:"challenge3Title",descKey:"challenge3Desc"}],bevaultKeys:["bevault1","bevault2","bevault3"],propilotKeys:["propilot1","propilot2","propilot3"],caseStudy:{companyKey:"caseCompany",resultKey:"caseResult",quoteKey:"caseQuote"}},"operational-excellence":{icon:rx,challenges:[{titleKey:"challenge1Title",descKey:"challenge1Desc"},{titleKey:"challenge2Title",descKey:"challenge2Desc"},{titleKey:"challenge3Title",descKey:"challenge3Desc"}],bevaultKeys:["bevault1","bevault2","bevault3"],propilotKeys:["propilot1","propilot2","propilot3"],caseStudy:{companyKey:"caseCompany",resultKey:"caseResult",quoteKey:"caseQuote"}},"public-sector":{icon:Tp,challenges:[{titleKey:"challenge1Title",descKey:"challenge1Desc"},{titleKey:"challenge2Title",descKey:"challenge2Desc"},{titleKey:"challenge3Title",descKey:"challenge3Desc"}],bevaultKeys:["bevault1","bevault2","bevault3"],propilotKeys:["propilot1","propilot2","propilot3"],caseStudy:{companyKey:"caseCompany",resultKey:"caseResult",quoteKey:"caseQuote"}},finance:{icon:tx,challenges:[{titleKey:"challenge1Title",descKey:"challenge1Desc"},{titleKey:"challenge2Title",descKey:"challenge2Desc"},{titleKey:"challenge3Title",descKey:"challenge3Desc"}],bevaultKeys:["bevault1","bevault2","bevault3"],propilotKeys:["propilot1","propilot2","propilot3"],caseStudy:{companyKey:"caseCompany",resultKey:"caseResult",quoteKey:"caseQuote"}},industry:{icon:Jb,challenges:[{titleKey:"challenge1Title",descKey:"challenge1Desc"},{titleKey:"challenge2Title",descKey:"challenge2Desc"},{titleKey:"challenge3Title",descKey:"challenge3Desc"}],bevaultKeys:["bevault1","bevault2","bevault3"],propilotKeys:["propilot1","propilot2","propilot3"],caseStudy:{companyKey:"caseCompany",resultKey:"caseResult",quoteKey:"caseQuote"}}},QS={"digital-transformation":"digitalTransformation","regulatory-compliance":"regulatoryCompliance","operational-excellence":"operationalExcellence","public-sector":"publicSector",finance:"finance",industry:"industry"},Ff={regulatoryCompliance:{title:"Regulatory compliance",subtitle:"Audit-ready data governance",heroDesc:"Meet the strictest regulatory requirements with automated data lineage, full auditability, and compliance-by-design architecture.",challenge1Title:"Audit trail gaps",challenge1Desc:"Incomplete data lineage making audits costly and risky",challenge2Title:"Manual compliance reporting",challenge2Desc:"Quarterly reports consuming weeks of analyst time",challenge3Title:"Policy enforcement",challenge3Desc:"Inconsistent data governance across business units",bevault1:"100% automated data lineage from source to report",bevault2:"Immutable audit trails with temporal versioning",bevault3:"Pre-built compliance templates for GDPR, BCBS 239, SOX",propilot1:"Compliance initiative tracking with deadline alerts",propilot2:"Policy implementation progress across departments",propilot3:"Regulatory calendar integration for proactive planning",caseCompany:"Global Insurance Firm",caseResult:"Achieved 100% audit pass rate",caseQuote:"Our regulators were impressed by the data lineage visibility."},operationalExcellence:{title:"Operational excellence",subtitle:"Data-driven operations",heroDesc:"Optimize operational performance with real-time analytics, automated workflows, and strategic alignment tools.",challenge1Title:"Delayed insights",challenge1Desc:"Batch processing creating 24-48 hour data latency",challenge2Title:"Process fragmentation",challenge2Desc:"Disconnected tools creating operational blind spots",challenge3Title:"Manual reporting",challenge3Desc:"Operations teams spending 40% of time on reports",bevault1:"Near real-time data integration with CDC supp
406ort",bevault2:"Operational data marts for self-service analytics",bevault3:"Automated KPI calculation and anomaly detection",propilot1:"OKR alignment connecting teams to strategic goals",propilot2:"Operational initiative tracking with resource visibility",propilot3:"Performance dashboards for continuous improvement",caseCompany:"Manufacturing Leader",caseResult:"Improved operational efficiency by 35%",caseQuote:"Real-time data transformed our production planning."},publicSector:{title:"Public sector",subtitle:"Transparent government data",heroDesc:"Enable transparent public reporting, GDPR compliance, and legacy system modernization for government organizations.",challenge1Title:"GDPR compliance",challenge1Desc:"Citizen data protection across multiple systems and agencies",challenge2Title:"Legacy system migration",challenge2Desc:"Decades of data locked in outdated mainframe systems",challenge3Title:"Transparent public reporting",challenge3Desc:"Demand for open data and accountability metrics",bevault1:"GDPR-compliant data architecture with consent tracking",bevault2:"Automated legacy system extraction and modernization",bevault3:"Open data portal integration for public transparency",propilot1:"Policy implementation tracking across agencies",propilot2:"Citizen service KPIs with public dashboards",propilot3:"Inter-agency initiative coordination",caseCompany:"Belgian Federal Agency",caseResult:"Modernized 20 years of legacy data",caseQuote:"Citizens now have real-time access to service performance."},finance:{title:"Finance",subtitle:"Regulatory reporting & risk management",heroDesc:"Achieve BCBS 239 compliance, automate regulatory reporting, and enable real-time risk management with enterprise data infrastructure.",challenge1Title:"Basel III/BCBS 239 compliance",challenge1Desc:"Regulatory pressure for complete data lineage and aggregation",challenge2Title:"Data lineage for audit",challenge2Desc:"Regulators demanding full traceability from source to report",challenge3Title:"Real-time risk reporting",challenge3Desc:"Moving from T+1 to intraday risk visibility",bevault1:"BCBS 239 compliant data architecture out of the box",bevault2:"Automated regulatory report generation with full lineage",bevault3:"Real-time data integration for intraday risk metrics",propilot1:"Regulatory deadline tracking and alerting",propilot2:"Compliance initiative portfolio management",propilot3:"Audit preparation dashboards for leadership",caseCompany:"European Investment Bank",caseResult:"Reduced regulatory reporting time by 60%",caseQuote:"We went from weeks to hours for our quarterly submissions."},industry:{title:"Industry",subtitle:"Industry 4.0 & supply chain",heroDesc:"Power Industry 4.0 initiatives with IoT data integration, supply chain optimization, and smart manufacturing analytics.",challenge1Title:"IoT data integration",challenge1Desc:"Millions of sensor readings requiring real-time processing across production lines",challenge2Title:"Supply chain visibility",challenge2Desc:"Fragmented data across suppliers, logistics, and inventory systems",challenge3Title:"Predictive maintenance",challenge3Desc:"Historical trend anal
406ysis for equipment failure prevention",bevault1:"High-volume IoT data ingestion with streaming support",bevault2:"Unified supply chain data model across all partners",bevault3:"Asset data historization for predictive analytics",propilot1:"Industry 4.0 initiative tracking with clear KPIs",propilot2:"Supply chain optimization objectives alignment",propilot3:"Manufacturing excellence dashboards for leadership",caseCompany:"Manufacturing Leader",caseResult:"Reduced supply chain delays by 40%",caseQuote:"Real-time visibility transformed our production planning."}},YS=()=>{const{slug:e}=q4(),{t,i18n:n}=Q(),a=e?GS[e]:null,o=e?QS[e]:null;if(!a||!o)return r.jsx(Z,{children:r.jsxs("div",{className:"container mx-auto px-4 py-24 text-center",children:[r.jsx("h1",{className:"text-3xl font-bold mb-4",children:t("solutionPage.notFound")}),r.jsx(L,{to:"/",className:"text-accent hover:underline",children:t("solutionPage.returnHome")})]})});const s=c=>{const d=`solutionPage.${o}.${c}`,u=t(d);return u===d&&Ff[o]&&Ff[o][c]||u},i=a.icon,l=s("title");return r.jsxs(Z,{children:[r.jsxs("section",{className:"relative gradient-hero overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_rgba(59,130,246,0.15),_transparent_50%)]"}),r.jsx("div",{className:"container mx-auto px-4 lg:px-8 py-24 lg:py-32 relative",children:r.jsxs("div",{className:"max-w-4xl",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/10 backdrop-blur-sm border border-white/10 mb-8 animate-fade-up",children:[r.jsx(i,{className:"w-4 h-4 text-cta"}),r.jsx("span",{className:"text-white/80 text-sm font-medium",children:s("subtitle")})]}),r.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight animate-fade-up delay-100",children:l}),r.jsx("p",{className:"text-lg md:text-xl text-white/70 mb-10 max-w-2xl leading-relaxed animate-fade-up delay-200",children:s("heroDesc")}),r.jsx("div",{className:"flex flex-col sm:flex-row gap-4 animate-fade-up delay-300",children:r.jsx(jt,{variant:"hero",size:"xl",children:t("solutionPage.bookDemo")})})]})}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-background to-transparent"})]}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:t("solutionPage.challengesTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:t("solutionPage.challengesSubtitle",{solution:l.toLowerCase()})})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:a.challenges.map((c,d)=>r.jsxs("div",{className:"bg-card rounded-xl p-8 border border-border hover:border-destructive/30 transition-all duration-300",children:[r.jsx("div",{className:"w-12 h-12 rounded-lg bg-destructive/10 flex items-center justify-center mb-4",children:r.jsx(Cp,{className:"w-6 h-6 text-destructive"})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:s(c.titleKey)}),r.jsx("p",{className:"text-muted-foreground",children:s(c.descKey)})]},d))})]})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("div",{className:"text-center mb-16",children:r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:t("solutionPage.approachTitle")})}),r.jsxs("div",{className:"grid lg:grid-cols-2 gap-8",children:[r.jsxs("div",{className:"bg-card rounded-2xl p-8 lg:p-10 border border-border",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl bg-accent/10 flex items-center justify-center",children:r.jsx(ks,{className:"w-6 h-6 text-accent"})}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-xl font-semibold text-foreground",children:t("solutionPage.foundationLabel")}),r.jsx("p",{className:"text-sm text-accent font-medium",children:"beVault"})]})]}),r.jsx("p",{className:"text-muted-foreground mb-6",children:t("solutionPage.foundationDesc")}),r.jsx("ul",{className:"space-y-3",children:a.bevaultKeys.map((c,d)=>r.jsxs("li",{className:"flex items-start gap-3",children:[r.jsx(on,{className:"w-5 h-5 text-accent flex-shrink-0 mt-0.5"}),r.jsx("span",{className:"text-foreground",children:s(c)})]},d))})]}),r.jsxs("div",{className:"bg-navy rounded-2xl p-8 lg:p-10",children:[r.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[r.jsx("div",{className:"w-12 h-12 rounded-xl bg-white/10 flex items-center justify-center",children:r.jsx(Hr,{className:"w-6 h-6 text-white"})}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-xl font-semibold text-white",children:t("solutionPage.strategyLabel")}),r.jsx("p",{className:"text-sm text-cta font-medium",children:"proPilot"})]})]}),r.jsx("p",{className:"text-white/70 mb-6",children:t("solutionPage.strategyDesc")}),r.jsx("ul",{className:"space-y-3",children:a.propilotKeys.map((c,d)=>r.jsxs("li",{className:"flex items-start gap-3",children:[r.jsx(on,{className:"w-5 h-5 text-cta flex-shrink-0 mt-0.5"}),r.jsx("span",{className:"text-white/90",children:s(c)})]},d))})]})]})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"max-w-4xl mx-auto",children:r.jsx("div",{className:"bg-gradient-to-br from-accent/5 to-cta/5 rounded-2xl p-8 lg:p-12 border border-accent/20",children:r.jsxs("div",{className:"text-center",children:[r.jsx("p",{className:"text-sm font-medium text-accent uppercase tracking-wider mb-4",children:t("solutionPage.successStory")}),r.jsx("h3",{className:"text-2xl lg:text-3xl font-bold text-foreground mb-4",children:s(a.caseStudy.companyKey)}),r.jsx("p",{className:"text-xl text-cta font-semibold mb-6",children:s(a.caseStudy.resultKey)}),r.jsxs("blockquote",{className:"text-lg text-muted-foreground italic",children:['"',s(a.caseStudy.quoteKey),'"']})]})})})})}),r.jsx("section",{className:"py-16 lg:py-24 gradient-hero",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-white mb-6",children:t("solutionPage.ctaTitle",{solution:l.toLowerCase()})}),r.jsx("p",{className:"text-lg text-white/70 mb-8",children:t("solutionPage.ctaSubtitle")}),r.jsx("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:r.jsx(jt,{variant:"hero",size:"xl",children:t("solutionPage.bookDemo")})})]})})})]})},ZS=[Pj,bj,ox,Np,uj,Xr],XS=()=>{const{t:e}=Q(),t=ZS.map((o,s)=>({icon:o,title:e(`agenticAi.uc${s+1}Title`),description:e(`agenticAi.uc${s+1}Desc`)})),n=[e("agenticAi.whatBullet1"),e("agenticAi.whatBullet2"),e("agenticAi.whatBullet3"),e("agenticAi.whatBullet4")],a=[e("agenticAi.builtOnBullet1"),e("agenticAi.builtOnBullet2"),e("agenticAi.builtOnBullet3")];return r.jsxs(Z,{children:[r.jsxs("section",{className:"relative gradient-hero overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_rgba(255,107,53,0.2),_transparent_50%)]"}),r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_bottom_left,_rgba(59,130,246,0.15),_transparent_50%)]"}),r.jsx("div",{className:"container mx-auto px-4 lg:px-8 py-24 lg:py-32 relative",children:r.jsxs("div",{className:"max-w-4xl",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/10 backdrop-blur-sm border border-white/10 mb-8 animate-fade-up",children:[r.jsx(Oj,{className:"w-4 h-4 text-cta"}),r.jsx("span",{className:"text-white/80 text-sm font-medium",children:e("agenticAi.badge")})]}),r.jsxs("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight animate-fade-up delay-100",children:[e("agenticAi.heroTitle1")," ",r.jsx("span",{className:"text-gradient",children:e("agenticAi.heroTitle2")})]}),r.jsx("p",{className:"text-lg md:text-xl text-white/70 mb-10 max-w-2xl leading-relaxed animate-fade-up delay-200",children:e("agenticAi.heroDesc")}),r.jsx("div",{className:"flex flex-col sm:flex-row gap-4 animate-fade-up delay-300",children:r.jsx(L,{to:"/contact",children:r.jsxs(te,{variant:"hero",size:"xl",children:[e("agenticAi.heroCta"),r.jsx(Ge,{className:"w-5 h-5"})]})})})]})}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-background to-transparent"})]}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"grid lg:grid-cols-2 gap-16 items-center",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-6",children:e("agenticAi.whatTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground mb-6 leading-relaxed",children:e("agenticAi.whatP1")}),r.jsx("p",{className:"text-lg text-muted-foreground mb-8 leading-relaxed",children:e("agenticAi.whatP2")}),r.jsx("ul",{className:"space-y-4",children:n.map(o=>r.jsxs("li",{className:"flex items-start gap-3",children:[r.jsx(on,{className:"w-5 h-5 text-accent flex-shrink-0 mt-0.5"}),r.jsx("span",{className:"text-foreground",children:o})]},o))})]}),r.jsxs("div",{className:"bg-navy rounded-2xl p-8 lg:p-12",children:[r.jsx(dj,{className:"w-16 h-16 text-cta mb-6"}),r.jsx("h3",{className:"text-2xl font-semibold text-white mb-4",children:e("agenticAi.builtOnTitle")}),r.jsx("p",{className:"text-white/70 mb-6 leading-relaxed",children:e("agenticAi.builtOnDesc")}),r.jsx("ul",{className:"space-y-3",children:a.map(o=>r.jsxs("li",{className:"flex items-center gap-2 text-white/80",children:[r.jsx(on,{className:"w-4 h-4 text-cta"}),o]},o))})]})]})})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("agenticAi.useCasesTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("agenticAi.useCasesSubtitle")})]}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-8",children:t.map((o,s)=>r.jsxs("div",{className:"bg-card rounded-xl p-6 border border-border hover:border-cta/30 hover:shadow-card transition-all duration-300 animate-fade-up",style:{animationDelay:`${s*50}ms`},children:[r.jsx("div",{className:"w-12 h-12 rounded-lg bg-cta/10 flex items-center justify-center mb-4",children:r.jsx(o.icon,{className:"w-6 h-6 text-cta"})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:o.title}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:o.description})]},o.title))})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-12",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("agenticAi.techTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("agenticAi.techSubtitle")})]}),r.jsx("div",{className:"flex flex-wrap justify-center gap-4",children:["Dust","n8n","OpenAI","Anthropic","
406LangChain","Hugging Face"].map(o=>r.jsx("div",{className:"px-6 py-3 bg-card rounded-lg border border-border text-foreground font-medium",children:o},o))})]})}),r.jsx("section",{className:"py-16 lg:py-24 gradient-hero",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-white mb-6",children:e("agenticAi.ctaTitle")}),r.jsx("p",{className:"text-lg text-white/70 mb-8",children:e("agenticAi.ctaDesc")}),r.jsx(jt,{variant:"hero",size:"xl",children:e("agenticAi.ctaCta")})]})})})]})},{slice:JS,forEach:eP}=[];function tP(e){return eP.call(JS.call(arguments,1),t=>{if(t)for(const n in t)e[n]===void 0&&(e[n]=t[n])}),e}function nP(e){return typeof e!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(n=>n.test(e))}const qf=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,aP=function(e,t){const a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},o=encodeURIComponent(t);let s=`${e}=${o}`;if(a.maxAge>0){const i=a.maxAge-0;if(Number.isNaN(i))throw new Error("maxAge should be a Number");s+=`; Max-Age=${Math.floor(i)}`}if(a.domain){if(!qf.test(a.domain))throw new TypeError("option domain is invalid");s+=`; Domain=${a.domain}`}if(a.path){if(!qf.test(a.path))throw new TypeError("option path is invalid");s+=`; Path=${a.path}`}if(a.expires){if(typeof a.expires.toUTCString!="function")throw new TypeError("option expires is invali
406d");s+=`; Expires=${a.expires.toUTCString()}`}if(a.httpOnly&&(s+="; HttpOnly"),a.secure&&(s+="; Secure"),a.sameSite)switch(typeof a.sameSite=="string"?a.sameSite.toLowerCase():a.sameSite){case!0:s+="; SameSite=Strict";break;case"lax":s+="; SameSite=Lax";break;case"strict":s+="; SameSite=Strict";break;case"none":s+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return a.partitioned&&(s+="; Partitioned"),s},Bf={create(e,t,n,a){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};n&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+n*60*1e3)),a&&(o.domain=a),document.cookie=aP(e,t,o)},read(e){const t=`${e}=`,n=document.cookie.split(";");for(let a=0;a<n.length;a++){let o=n[a];for(;o.charAt(0)===" ";)o=o.substring(1,o.length);if(o.indexOf(t)===0)return o.substring(t.length,o.length)}return null},remove(e,t){this.create(e,"",-1,t)}};var rP={name:"cookie",lookup(e){let{lookupCookie:t}=e;if(t&&typeof document<"u")return Bf.read(t)||void 0},cacheUserLanguage(e,t){let{lookupCookie:n,cookieMinutes:a,cookieDomain:o,cookieOptions:s}=t;n&&typeof document<"u"&&Bf.create(n,e,a,o,s)}},oP={name:"querystring",lookup(e){var a;let{lookupQuerystring:t}=e,n;if(typeof window<"u"){let{search:o}=window.location;!window.location.search&&((a=window.location.hash)==null?void 0:a.indexOf("?"))>-1&&(o=window.location.hash.substring(window.location.hash.indexOf("?")));const i=o.substring(1).split("&");for(let l=0;l<i.length;l++){const c=i[l].indexOf("=");c>0&&i[l].substring(0,c)===t&&(n=i[l].substring(c+1))}}return n}},sP={name:"hash",lookup(e){var o;let{lookupHash:t,lookupFromHashIndex:n}=e,a;if(typeof window<"u"){const{hash:s}=window.location;if(s&&s.length>2){const i=s.substring(1);if(t){const l=i.split("&");for(let c=0;c<l.length;c++){const d=l[c].indexOf("=");d>0&&l[c].substring(0,d)===t&&(a=l[c].substring(d+1))}}if(a)return a;if(!a&&n>-1){const l=s.match(/\/([a-zA-Z-]*)/g);return Array.isArray(l)?(o=l[typeof n=="number"?n:0])==null?void 0:o.replace("/",""):void 0}}}return a}};let tr=null;const Vf=()=>{if(tr!==null)return tr;try{if(tr=typeof window<"u"&&window.localStorage!==null,!tr)return!1;const e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch{tr=!1}return tr};var iP={name:"localStorage",lookup(e){let{lookupLocalStorage:t}=e;if(t&&Vf())return window.localStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupLocalStorage:n}=t;n&&Vf()&&window.localStorage.setItem(n,e)}};let nr=null;const $f=()=>{if(nr!==null)return nr;try{if(nr=typeof window<"u"&&window.sessionStorage!==null,!nr)return!1;const e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch{nr=!1}return nr};var lP={name:"sessionStorage",lookup(e){let{lookupSessionStorage:t}=e;if(t&&$f())return window.sessionStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupSessionStorage:n}=t;n&&$f()&&window.sessionStorage.setItem(n,e)}},cP={name:"navigator",lookup(e){const t=[];if(typeof navigator<"u"){const{languages:n,userLanguage:a,language:o}=navigator;if(n)for(let s=0;s<n.length;s++)t.push(n[s]);a&&t.push(a),o&&t.push(o)}return t.length>0?t:void 0}},dP={name:"htmlTag",lookup(e){let{htmlTag:t}=e,n;const a=t||(typeof document<"u"?document.documentElement:null);return a&&typeof a.getAttribute=="function"&&(n=a.getAttribute("lang")),n}},uP={name:"path",lookup(e){var o;let{lookupFromPathIndex:t}=e;if(typeof window>"u")return;const n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(n)?(o=n[typeof t=="number"?t:0])==null?void 0:o.replace("/",""):void 0}},pP={name:"subdomain",lookup(e){var o,s;let{lookupFromSubdomainIndex:t}=e;const n=typeof t=="number"?t+1:1,a=typeof window<"u"&&((s=(o=window.location)==null?void 0:o.hostname)==null?void 0:s.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i));if(a)return a[n]}};let b0=!1;try{document.cookie,b0=!0}catch{}const x0=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];b0||x0.splice(1,1);const mP=()=>({order:x0,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:e=>e});class y0{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(t,n)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=t,this.options=tP(n,this.options||{},mP()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=o=>o.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=a,this.addDetector(rP),this.addDetector(oP),this.addDetector(iP),this.addDetector(lP),this.addDetector(cP),this.addDetector(dP),this.addDetector(uP),this.addDetector(pP),this.addDetector(sP)}
vendor: 4,502 bytes, line 406
406addDetector(t){return this.detectors[t.name]=t,this}detect(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,n=[];return t.forEach(a=>{if(this.detectors[a]){let o=this.detectors[a].lookup(this.options);o&&typeof o=="string"&&(o=[o]),o&&(n=n.concat(o))}}),n=n.filter(a=>a!=null&&!nP(a)).map(a=>this.options.convertDetectedLanguage(a)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}cacheUserLanguage(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;n&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(t)>-1||n.forEach(a=>{this.detectors[a]&&this.detectors[a].cacheUserLanguage(t,this.options)}))}}y0.type="languageDetector";const hP={products:"Products",solutions:"Solutions",partners:"Partners",resources:"Resources",consulting:"About",contactUs:"Contact us",agenticAi:"Agentic AI",byUseCase:"By Use Case",byIndustry:"By Industry"},fP={badge:"Certified Data Vault 2.0 partner",titleStart:"From data chaos to",titleHighlight:"business clarity.",subtitle:"The analytics data warehouse built for impact. Automate your foundations with beVault and drive your organization with proPilot.",ctaPrimary:"Analyze your data",ctaSecondary:"Contact us"},gP={consultants:"Expert Consultants",years:"Years of Expertise",customers:"Enterprise customers",certifiedValue:"Certified",certified:"Data Vault 2.0"},vP={sectionTitle:"Enterprise-grade products",sectionSubtitle:"Purpose-built solutions for data automation and strategy execution",bevault:{subtitle:"Data warehouse automation",description:"Automate your entire data warehouse with Certified Data Vault 2.0 methodology. From raw data to business-ready insights in hours, not months.",feature1:"Automated Data Vault 2.0",feature2:"Full data lineage",feature3:"CI/CD ready"},propilot:{subtitle:"Strategy execution management",description:"Turn strategy into action. Connect OKRs, KPIs, and initiatives across your organization with complete visibility and accountability.",feature1:"OKR alignment",feature2:"Real-time dashboards",feature3:"Initiative tracking"},odoo:{subtitle:"Odoo + Data Analytics",description:"Connect Odoo to your data warehouse. Turn your ERP data into reliable strategic indicators.",feature1:"Odoo ↔ Data Warehouse connection",feature2:"Advanced reporting on your ERP data",feature3:"AI-ready data"},learnMore:"Learn more",midCta:"Work your strategy"},bP={sectionTitle:"Industry solutions",sectionSubtitle:"Deep expertise across regulated industries where data integrity matters most",finance:{title:"Finance",description:"BCBS 239 compliance, risk management, and audit-ready reporting"},publicSector:{title:"Public sector",description:"GDPR compliance, legacy migration, and transparent public reporting"},industry:{title:"Industry",description:"Industry 4.0, IoT data integration, and supply chain optimization"},exploreSolutions:"Explore solutions"},xP={title:"Ready to transform your data strategy?",subtitle:"Join 50+ enterprises who have achieved data clarity with dFakto.",primary:"Book a workshop",secondary:"Contact us"},yP="Trusted by industry leaders",wP={title:"Our offices"},kP={title:"Maturity assessment",subtitle:"Quick check: where does your organization stand?",restart:"Restart",aheadOfCurve:"You're ahead of the curve",roomForImprovement:"Room for improvement",bevault:{question:"Time to connect a new data source?",opt1:"2 hours",opt2:"1 week",opt3:"1 month+",leaderText:"Your data infrastructure is agile. Discover how to scale further.",leaderCta:"See how to scale",bottleneckText:"Slow data integration is holding back your business agility.",bottleneckCta:"Fix this with beVault"},propilot:{question:"How do you track strategic KPIs?",opt1:"Excel/PPT",opt2:"BI tool",opt3:"Dedicated platform",leaderText:"You have a solid foundation for strategic alignment.",leaderCta:"Optimize further",bottleneckText:"Manual tracking creates silos and delays strategic decisions.",bottleneckCta:"Discover proPilot"},odoo:{question:"Current ERP status?",opt1:"Legacy system",opt2:"Manual processes",opt3:"Cloud ERP",leaderText:"Your operations are modernized. Let's optimize further.",leaderCta:"Explore integrations",bottleneckText:"Legacy systems and manual processes slow down your business.",bottleneckCta:"Modernize with Odoo"}},jP={badge:"Certified Data Vault 2.0",title:"beVault: data products",titleHighlight:"automation",subtitle:"Transform your data infrastru
406cture with automated Data Vault 2.0 generation. From chaotic sources to enterprise-grade analytics foundation—in days, not months.",ctaPrimary:"Book a demo",ctaSecondary:"See case studies",benefitTime:"Reduction in development time",benefitLineage:"Data lineage coverage",benefitErrors:"Manual coding errors",benefitMonitoring:"Automated monitoring",featuresTitle:"Enterprise-grade automation",featuresSubtitle:"beVault handles the complexity so your team can focus on delivering business value",featureAutoTitle:"Automated Data Vault 2.0",featureAutoDesc:"Generate Hubs, Links, and Satellites with a business-first approach. Certified methodology ensures best practices.",featureLineageTitle:"Full Data Lineage",featureLineageDesc:"Track every data element from source to report. Complete audit trail for regulatory compliance and debugging.",featureRapidTitle:"Rapid Deployment",featureRapidDesc:"Go from raw data to analytics-ready warehouse in days, not months. Pre-built patterns accelerate delivery.",featureAuditTitle:"100% Auditability",featureAuditDesc:"Every change is versioned and traceable. Meet the strictest regulatory requirements with confidence.",featureOnPremTitle:"On-Premise & Cloud",featureOnPremDesc:"Deploy anywhere. We support full On-Premise setups for maximum security, or Private Cloud environments.",featureIncrTitle:"Incremental Loading",featureIncrDesc:"Efficient delta processing minimizes resource usage and ensures near real-time data freshness.",platformsTitle:"Deploy anywhere",platformsSubtitle:"Native support for all major data platforms",howTitle:"How beVault works",step1Title:"Model your Business",step1Desc:"Create a data model that truly represents your unique business processes. Keep the human in the loop for a business-first approach.",step2Title:"Connect your Sources",step2Desc:"Map your source data to your business model without technical bias. Built-in Data Quality checks at ingestion.",step3Title:"Generate & Deploy",step3Desc:"Full DDL, ETL, and documentation generated instantly",step4Title:"Monitor & Iterate",step4Desc:"Built-in monitoring and easy model evolution",deepDiveTitle:"Looking for technical deep-dives?",deepDiveDesc:"Visit our dedicated product site for documentation, tutorials, and more.",deepDiveCta:"Go to beVault website",ctaBottomTitle:"Ready to automate your data warehouse?",ctaBottomSubtitle:"See how beVault can transform your data infrastructure in a personalized demo.",ctaBottomPrimary:"Book a demo",ctaBottomSecondary:"Visit e-Learning"},TP={badge:"Strategy Execution Platform",title:"proPilot: Turn Strategy into",titleHighlight:"Action",subtitle:"Connect objectives, initiatives, and KPIs across your organization. Give leaders the visibility they need to steer strategy with confidence.",ctaPrimary:"Book a demo",ctaSecondary:"View documentation",benefitGoal:"Improvement in goal achievement",benefitAlignment:"Faster strategic alignment",benefitVisibility:"Visibility across teams",benefitTruth:"Single source of truth",featuresTitle:"Complete strategy execution",featuresSubtitle:"Everything you need to translate strategy into measurable results",featureOkrTitle:"OKR Management",featureOkrDesc:"Define, cascade, and track Objectives & Key Results across your entire organization with full alignment visibility.",featureDashTitle:"Real-Time Dashboards",featureDashDesc:"Live performance dashboards that connect to your data sources for always-current strategic insights.",featureInitTitle:"Initiative Tracking",featureInitDesc:"Link strategic initiatives to objectives. Track progress, resources, and dependencies in one place.",featureTeamTitle:"Team Alignment",featureTeamDesc:"Ensure every team understands how their work contributes to organizational goals with cascading objectives.",featureNotifTitle:"Smart Notifications",featureNotifDesc:"Automated alerts when metrics drift or deadlines approach. Never miss a strategic milestone.",featureReportTitle:"Executive Reporting",featureReportDesc:"One-click board reports and stakeholder updates with beautiful, data-driven presentations.",useCasesTitle:"Built for every leader",forExecutives:"For Executives",execItem1:"Board-ready reporting",execItem2:"Organization-wide visibility",execItem3:"Strategic risk monitoring",forStrategy:"For Strategy Teams",stratItem1:"OKR cascade management",stratItem2:"Initiative portfolio tracking",stratItem3:"Cross-functional alignment",forTeamLeads:"For Team Leads",teamItem1:"Clear goal alignment",teamItem2:"Progress tracking",teamItem3:"Resource visibility",deepDiveTitle:"Looking for te
406chnical deep-dives?",deepDiveDesc:"Visit our dedicated product site for documentation, tutorials, and more.",deepDiveCta:"Go to proPilot website",ctaBottomTitle:"Ready to execute strategy with confidence?",ctaBottomSubtitle:"See how proPilot can align your organization around what matters most.",ctaBottomPrimary:"Book a demo"},NP={metaTitle:"Odoo + Data Analytics | Turn Odoo Data Into a Strategic Asset | dFakto",metaDescription:"Connect Odoo to your data warehouse. Advanced reporting, unified KPIs and AI-ready data with beVault and proPilot.",badge:"Odoo + Data Analytics",heroTitle:"Turn your Odoo data into a strategic asset",heroSubtitle:"Odoo structures your operations. dFakto connects your Odoo data to your analytics ecosystem for advanced reporting and operational AI.",heroCta:"Let's discuss your project →",challengesTitle:"The challenges you face",challengesSubtitle:"The common limits of companies using Odoo without a data strategy",challenge1Title:"Reporting limited to native dashboards",challenge1Desc:"Native Odoo dashboards are no longer enough as soon as you combine several data sources.",challenge2Title:"Siloed data",challenge2Desc:"Your Odoo data stays isolated from your other systems: CRM, finance, logistics and more.",challenge3Title:"AI and analytics blocked",challenge3Desc:"Without a structured data warehouse, your Odoo data cannot be used for advanced analytics or AI.",approachTitle:"The dFakto approach",foundationLabel:"The Foundation",foundationDesc:"Connect Odoo to your data warehouse. Guarantee full traceability of your ERP data.",bevault1:"Automated extraction of Odoo data",bevault2:"Integration with all your other sources",bevault3:"Data structured in Data Vault 2.0 — fully auditable",strategyLabel:"The Strategy",strategyDesc:"Steer operations with unified indicators built from all your sources.",propilot1:"Real-time cross-system dashboards",propilot2:"Business KPIs calculated on all of your data",propilot3:"Data ready for your AI models",testimonialLabel:"CLIENT TESTIMONIAL",caseCompany:"Industrial company",caseResult:"Unified reporting in 3 weeks",caseQuote:"We had Odoo for 5 years without ever truly using our data. beVault changed everything.",ctaBottomTitle:"Ready to unlock more value from your Odoo data?",ctaBottomPrimary:"Let's discuss your project →",ctaBottomSecondary:"See our client cases →"},DP={bookDemo:"Book a demo",challengesTitle:"The challenges you face",challengesSubtitle:"Common pain points in {{solution}} that hold organizations back",approachTitle:"The dFakto approach",foundationLabel:"The Foundation",foundationDesc:"Automate your data integration. Ensure 100% auditability and lineage for regulators.",strategyLabel:"The Strategy",strategyDesc:"Align your portfolio with regulatory deadlines and strategic goals.",successStory:"Success Story",ctaTitle:"Ready to solve your {{solution}} challenges?",ctaSubtitle:"Book a personalized demo and see how we can help.",notFound:"Solution not found",returnHome:"Return to home",digitalTransformation:{title:"Digital transformation",subtitle:"Modernize your data infrastructure",heroDesc:"Accelerate your digital transformation journey with automated data foundations and strategic execution frameworks.",challenge1Title:"Legacy system complexity",challenge1Desc:"Siloed data across dozens of legacy systems creating blind spots",challenge2Title:"Manual data processes",challenge2Desc:"Error-prone ETL scripts consuming valuable engineering time",challenge3Title:"Lack of single source of truth",challenge3Desc:"Conflicting reports undermining executive decision-making",bevault1:"Automated migration from legacy systems to modern Data Vault",bevault2:"Unified data model across all sources with full lineage",bevault3:"Self-documenting architecture for knowledge transfer",propilot1:"Transformation roadmap with clear milestones and KPIs",propilot2:"Cross-functional alignment on digital initiatives",propilot3:"Real-time progress tracking for leadership visibility",caseCompany:"European Retailer",caseResult:"Reduced data integration time by 75%",caseQuote:"dFakto helped us modernize 15 years of legacy data in 6 months."},regulatoryCompliance:{title:"Regulatory compliance",subtitle:"Audit-ready data governance",heroDesc:"Meet the strictest regulatory requirements with automated data lineage, full auditability, and compliance-by-design architecture.",challenge1Title:"Audit trail gaps",challenge1Desc:"Incomplete data lineage making audits costly and risky",challenge2Title:"Manual compliance reporting",challenge2Desc:"Quarterly reports consuming weeks of analyst time",challenge3Title:"Policy enforcement",challenge3Desc:"Inconsistent data governance across business units",bevault1:"100% automated data lineage from source to report",bevault2:"Immutable audit trails with temporal versioning",bevault3:"Pre-built compliance templates for GDPR, BCBS 239, SOX",propilot1:"Compliance initiative tracking with deadline alerts",propilot2:"Policy implementation progress across departments",propilot3:"Regulatory calendar integration for proactive planning",caseCompany:"Global Insurance Firm",caseResult:"Achieved 100% audit pass rate",caseQuote:"Our regulators were impressed by the data lineage visibility."},operationalExcellence:{title:"Operational excellence",subtitle:"Data-driven operations",heroDesc:"Optimize operational performance with real-time analytics, automated workflows, and strategic alignment tools.",challenge1Title:"Delayed insights",challenge1Desc:"Batch processing creating 24-48 hour data latency",challenge2Title:"Process fragmentation",challenge2Desc:"Disconnected tools creating operational blind spots",challenge3Title:"Manual reporting",challenge3Desc:"Operations teams spending 40% of time on reports",bevault1:"Near real-time data integration with CDC supp
406ort",bevault2:"Operational data marts for self-service analytics",bevault3:"Automated KPI calculation and anomaly detection",propilot1:"OKR alignment connecting teams to strategic goals",propilot2:"Operational initiative tracking with resource visibility",propilot3:"Performance dashboards for continuous improvement",caseCompany:"Manufacturing Leader",caseResult:"Improved operational efficiency by 35%",caseQuote:"Real-time data transformed our production planning."},publicSector:{title:"Public sector",subtitle:"Transparent government data",heroDesc:"Enable transparent public reporting, GDPR compliance, and legacy system modernization for government organizations.",challenge1Title:"GDPR compliance",challenge1Desc:"Citizen data protection across multiple systems and agencies",challenge2Title:"Legacy system migration",challenge2Desc:"Decades of data locked in outdated mainframe systems",challenge3Title:"Transparent public reporting",challenge3Desc:"Demand for open data and accountability metrics",bevault1:"GDPR-compliant data architecture with consent tracking",bevault2:"Automated legacy system extraction and modernization",bevault3:"Open data portal integration for public transparency",propilot1:"Policy implementation tracking across agencies",propilot2:"Citizen service KPIs with public dashboards",propilot3:"Inter-agency initiative coordination",caseCompany:"Belgian Federal Agency",caseResult:"Modernized 20 years of legacy data",caseQuote:"Citizens now have real-time access to service performance."},finance:{title:"Finance",subtitle:"Regulatory reporting & risk management",heroDesc:"Achieve BCBS 239 compliance, automate regulatory reporting, and enable real-time risk management with enterprise data infrastructure.",challenge1Title:"Basel III / BCBS 239 compliance",challenge1Desc:"Regulatory pressure for complete data lineage and aggregation",challenge2Title:"Data lineage for audit",challenge2Desc:"Regulators demanding full traceability from source to report",challenge3Title:"Real-time risk reporting",challenge3Desc:"Moving from T+1 to intraday risk visibility",bevault1:"BCBS 239 compliant data architecture out of the box",bevault2:"Automated regulatory report generation with full lineage",bevault3:"Real-time data integration for intraday risk metrics",propilot1:"Regulatory deadline tracking and alerting",propilot2:"Compliance initiative portfolio management",propilot3:"Audit preparation dashboards for leadership",caseCompany:"European Investment Bank",caseResult:"Reduced regulatory reporting time by 60%",caseQuote:"We went from weeks to hours for our quarterly submissions."},industry:{title:"Industry",subtitle:"Industry 4.0 & supply chain",heroDesc:"Power Industry 4.0 initiatives with IoT data integration, supply chain optimization, and smart manufacturing analytics.",challenge1Title:"IoT data integration",challenge1Desc:"Millions of sensor readings requiring real-time processing across production lines",challenge2Title:"Supply chain visibility",challenge2Desc:"Fragmented data across suppliers, logistics, and inventory systems",challenge3Title:"Predictive maintenance",challenge3Desc:"Historical trend anal
406ysis for equipment failure prevention",bevault1:"High-volume IoT data ingestion with streaming support",bevault2:"Unified supply chain data model across all partners",bevault3:"Asset data historization for predictive analytics",propilot1:"Industry 4.0 initiative tracking with clear KPIs",propilot2:"Supply chain optimization objectives alignment",propilot3:"Manufacturing excellence dashboards for leadership",caseCompany:"Manufacturing Leader",caseResult:"Reduced supply chain delays by 40%",caseQuote:"Real-time visibility transformed our production planning."}},CP={badge:"Next-Generation Intelligence",heroTitle1:"Agentic AI for",heroTitle2:"Enterprise Data",heroDesc:"Unlock the next frontier of data intelligence. Combine the reliability of beVault's data foundation with autonomous AI agents that reason, act, and learn.",heroCta:"Explore possibilities",whatTitle:"What is Agentic AI?",whatP1:"Agentic AI represents a paradigm shift from reactive chatbots to proactive, goal-oriented AI systems that can plan, execute, and learn from complex tasks.",whatP2:"Unlike traditional AI that responds to prompts, agentic systems can autonomously break down objectives, use tools, access data, and iterate until goals are achieved.",whatBullet1:"Autonomous task decomposition and planning",whatBullet2:"Multi-step reasoning with tool orchestration",whatBullet3:"Continuous learning from feedback loops",whatBullet4:"Enterprise-grade security and governance",builtOnTitle:"Built on trusted data",builtOnDesc:"Agentic AI is only as good as the data it accesses. beVault provides the enterprise-grade data foundation that makes AI reliable and auditable.",builtOnBullet1:"Full data lineage for AI explainability",builtOnBullet2:"Governed access to sensitive data",builtOnBullet3:"Real-time data freshness",useCasesTitle:"Enterprise use cases",useCasesSubtitle:"Transform how your organization works with AI-powered automation",uc1Title:"Conversational Analytics",uc1Desc:"Ask questions in natural language and get instant answers from your data warehouse.",uc2Title:"Document Intelligence",uc2Desc:"Extract insights from contracts, reports, and unstructured documents at scale.",uc3Title:"Workflow Automation",uc3Desc:"Orchestrate complex business processes with AI agents that learn and adapt.",uc4Title:"Predictive Analytics",uc4Desc:"Forecast trends and anomalies before they impact your business.",uc5Title:"Knowledge Management",uc5Desc:"Build enterprise knowledge graphs that connect people, processes, and data.",uc6Title:"Process Optimization",uc6Desc:"Identify bottlenecks and opportunities with AI-powered process mining.",techTitle:"Technology ecosystem",techSubtitle:"We integrate with leading AI and automation platforms",ctaTitle:"Ready to explore Agentic AI?",ctaDesc:"Let's discuss how autonomous AI agents can transform your data operations.",ctaCta:"Book a consultation"},SP={bevaultDesc:"Certified Data Vault 2.0 automation platform",propilotDesc:"Strategy execution & management software",odooDesc:"Odoo + Data Analytics"},PP={badge:"Partner program",heroTitle1:"Grow your business with",heroTitle2:"dFakto",heroDesc:"Join our reseller partner program and earn 30% to 50% commission in Year 1 plus recurring revenue. Training, support, and co-marketing included.",becomePartner:"Become a partner",registerLead:"Discuss a project",registerLeadTitle:"Discuss a project",levelsTitle:"Partner levels",levelsSubtitle:"Progress through our partner tiers and unlock greater benefits",levelRegistered:"Registered",levelCertified:"Certified",levelStrategic:"Strategic",regBenefit1:"Access to partner portal",regBenefit2:"Product documentation",regBenefit3:"Basic sales materials",regBenefit4:"10% referral commission",certBenefit1:"All Registered benefits",certBenefit2:"Technical certification",certBenefit3:"Co-marketing opportunities",certBenefit4:"30% commission on deals",certBenefit5:"Priority support",stratBenefit1:"All Certified benefits",stratBenefit2:"Joint business planning",stratBenefit3:"Executive sponsorship",stratBenefit4
406:"50% commission on deals",stratBenefit5:"Recurring revenue share",stratBenefit6:"Exclusive leads",benefitsTitle:"Partner benefits",benefit1Title:"Lucrative commissions",benefit1Desc:"30-50% in year 1, plus recurring revenue share",benefit2Title:"Free training",benefit2Desc:"Certification through our e-learning platform",benefit3Title:"Co-marketing",benefit3Desc:"Joint webinars, events, and content creation",benefit4Title:"Lead sharing",benefit4Desc:"Qualified leads for strategic partners",howTitle:"How it works",step1Title:"Application",step1Desc:"Submit your partner application with company details and expertise",step2Title:"Onboarding",step2Desc:"Complete partner onboarding and access training resources",step3Title:"Certification",step3Desc:"Get certified on beVault and proPilot through our e-Learning",step4Title:"Co-sell",step4Desc:"Start generating leads and closing deals with our support",ctaTitle:"Ready to partner with us?",ctaDesc:"Start your application today and unlock new revenue streams.",menuDesc:"Become a reseller or integrator"},EP={heroTitle:"Partner ecosystem",heroSubtitle:"Technology stack and integrator partners",techTitle:"Technology stack",techSubtitle:"Native connectors for your entire data ecosystem",catBi:"BI & Analytics",catData:"Data platforms",catAutomation:"Automation",catCloud:"Cloud & infra",catApps:"Applications",partnersTitle:"Our partners",partnersSubtitle:"Trusted integrators delivering dFakto solutions worldwide",findBadge:"Find an expert",findTitle:"Need an integrator?",findDesc:"Tell us about your project and we'll connect you with the right partner.",ctaTitle:"Want to become a partner?",ctaDesc:"Join our partner ecosystem and grow your business with dFakto",ctaButton:"View partner program",menuDesc:"Explore our technology and service partners"},IP={heroTitle1:"Consulting services:",heroTitle2:"25 years of data excellence",heroDesc:"We are not just a software vendor. We are consultants first. Our team brings deep expertise in data strategy, architecture, and transformation.",heroCta:"Contact us",stat1Value:"Founded 2000",stat1Label:"25 years of excellence",stat2Value:"40+ consultants",stat2Label:"Certified experts",stat3Value:"50+ customers",stat3Label:"Enterprise clients",auditTitle:"Need a fast-track audit?",auditDesc:"Get a rapid assessment of your data architecture and actionable recommendations.",auditCta:"Book your audit",servicesTitle:"Our services",servicesSubtitle:"Comprehensive consulting to transform your data capabilities",svc1Title:"Data strategy",svc1Desc:"Define your data vision and roadmap. We help you align data initiatives with business objectives for maximum impact.",svc2Title:"Architecture audits",svc2Desc:"Assess your current data infrastructure. Identify gaps, redundancies, and opportunities for optimization.",svc3Title:"Change management",svc3Desc:"Ensure successful adoption of new data practices. We guide your teams through transformation with training and support.",svc4Title:"Data governance",svc4Desc:"Establish policies, standards, and processes for data quality, security, and compliance across your organization.",whyTitle:"Why choose dFakto?",joinTitle:"Join our team",joinDesc:"We're always looking for talented people passionate about data and strategy.",joinCta:"View open positions",ctaTitle:"Let's talk about your data project",ctaDesc:"A 30-minute initial call to understand your challenges.",ctaCta:"Book a call →",whyCard1Title:"25 years of experience",whyCard1Desc:"Expertise built on hundreds of data projects in France, Belgium and beyond.",whyCard2Title:"Data Vault 2.0 Certified",whyCard2Desc:"The only VTCP certified partner in Belgium and France. A rigorous methodology, not shortcuts.",whyCard3Title:"50+ enterprise clients",whyCard3Desc:"References in banking, public sector, industry and many more.",whyCard4Title:"Strategy to implementation",whyCard4Desc:"End-to-end support — no gap between consulting and execution.",whyCard5Title:"Proprietary tools",whyCard5Desc:"beVault and proPilot, born from our field experience, accelerate every project.",whyCard6Title:"Collaborative approach",whyCard6Desc:"Agile methodology, mixed client-dFakto teams, skills transfer included.",teamTitle:"Our team",teamSubtitle:"Experts who understand both data and business.",teamPortrait:"Portrait",member1Role:"CEO & Founder",member2Role:"Managing Director",member3Role:"Chief Product Officer",member4Role:"beVault Product Manager",member5Role:"Senior Business Analyst",member6Role:"Senior Data Analyst",member7Role:"Marketing",casesTitle:"They trust us",casesTag1:"CLIENT CASE · BANKING",casesCase1Title:"Steering all the transverse transformation programs of a large European bank",casesCase1Text:"Multiple simultaneous programs, hundreds of stakeholders — successfully steered with proPilot.",casesTag2:"CLIENT CASE · HEALTHCARE",casesCase2Title:"Solution implemented in 3 days in a crisis management hospital",casesCase2Text:"An operational data warehouse in 72 hours to respond to a critical health emergency.",casesCta:"Read the case study →",casesAll:"See all our client cases →",beerTitle:"We also brew our own beer.",beerText:"dFakto co-created an exclusive recipe with Brasserie Witloof, a Brussels craft brewery. Limited edition, 100% local.",beerLink:"Find out more →",teamGroupCaption:"The dFakto team — Paris & Brussels"},AP={heroTitle:"Resources",heroSubtitle:"Guides, documentation, and learning materials",card1Title:"dFakto Blog",card1Desc:"Insights on data management and strategy execution",card2Title:"Success Stories",card2Desc:"Real-world customer success cases",card3Title:"beVault blog",card3Desc:"Latest insights on data warehouse automation",card4Title:"proPilot blog",card4Desc:"Strategy execution best practices",card5Title:"beVault success stories",card5Desc:"Customer implementation results",card6Title:"beVault documentation",card6Desc:"Technical documentation and guides",card7Title:"proPilot documentation",card7Desc:"User guides and API reference",card8Title:"dFakto e-learning platform",card8Desc:"Get certified on beVault and proPilot",card9Title:"Support portal",card9Desc:"Get help from our support team",card10Title:"Partner resources",card10Desc:"Sales kits, brochures, and technical docs",card11Title:"Careers",card11Desc:"Join the dFakto team",card12Title:"Data Glossary",card12Desc:"Master the vocabulary of Data, AI, and Strategy.",card13Title:"White papers",card13Desc:"Download our insights, white papers and case studies.",comingSoon:"Coming soon",view:"View",open:"Open",discover:"Discover"},RP={heroTitle:"Data Strategy & Architecture Glossary",heroSubtitle:"Understand the key concepts shaping the future of data-driven organizations."},_P={backToResources:"Back to Resources",heroTitle:"dFakto Success Stories",heroSubtitle:"Discover how leading organizations transformed their operations with dFakto solutions",readCase:"Read case study",story1Title:"Crelan's Acquisition of AXA Banque Belgium",story1Industry:"Banking",story2Title:"Master Data Management: Consolidating the Information into a Single Version",story2Industry:"Data Management",story3Title:"Steering all the transverse transformation programs of a large European bank",
406story3Industry:"Banking",story4Title:"Solution implemented in 3 days in a crisis management hospital",story4Industry:"Healthcare",story5Title:"One common risk management platform across 17 factoring entities",story5Industry:"Finance",story6Title:"Covid 19: Bruss'Help selects dFakto's platform to help the most vulnerable",story6Industry:"Public Sector",story7Title:"Much faster reporting thanks to a unified and trusted platform, using fewer resources",story7Industry:"Enterprise",story8Title:"Unified and automated reporting for all construction and maintenance projects",story8Industry:"Construction"},OP={backToResources:"Back to Resources",title:"Crelan's Acquisition of AXA Banque Belgium",intro:"To ensure automated monitoring of the closing of the €691 million M&A deal and free up capacity, the players relied on the digital control system in proPilot.",p1:"In order to monitor the closing phase of the M&A, a master plan has been drawn up to prepare the sale of AXA Banque Belgium's banking activities to Crelan. The transaction is valued at 691 million euros. The financial and legal requirements prior to such an operation necessitate precise monitoring of the progress of the plan, synergies and savings achieved. For example, it is essential to provide the ECB with solid guarantees regarding the financing of the takeover. In this type of operation, making information available to the many parties involved is another major challenge.",p2:"Bain Consulting's teams implemented the master plan in proPilot with the support of dFakto's Business teams. The plan is based on a coherent three-level tree structure, which makes it possible to monitor at each level the indicators and qualitative information that reflect the commitment of resources and the concrete impact of projects in relation to the objectives set. It also makes it possible to identify the risks and successes encountered in each area. proPilot has thus made it possible to monitor the levels of responsibility for all stakeholders.",p3:"Digitising the plan with proPilot has eliminated much of the manual work and automated the monitoring and updating of the plan for all stakeholders. Real-time information and freed-up capacity meant that resources could be focused on analysis and high added-value tasks.",keyResults:"Key Results",kr1:"projects integrated into the digitised plan",kr2:"integration streams monitored",kr3:"report generation for real-time monitoring",kr3Label:"Hourly",kr4:"transaction successfully completed",p4:"proPilot enabled Bain Consulting's strategic teams and Crelan's Integration Management Office to monitor integration streams, projects and milestones for all those involved. In total, more than 500 projects were integrated into the digitised plan, divided into 11 integration streams. Reports were generated on an hourly basis to ensure monitoring at different frequencies.",p5:"By digitising the plan and monitoring it in real time, potential synergies were identified and explored, an essential step in meeting the regulatory requirements prior to the merger and acquisition. The transaction, valued at €691m (of which €611m in cash), was successfully completed.",quote:"The proPilot platform enabled Crelan's Integration Management Office (IMO), supported by Bain Consulting, to digitise the Master Plan to monitor progress and create synergies in order to meet the financial and legal requirements prior to the merger and acquisition.",quoteAuthor:"Sander Muylle, Head of Transformation Office at Crelan"},LP={backToResources:"Back to Resources",title:"Master data management: consolidating the information into a single version",intro:"The implementation of a Master Data Management (MDM) system for this leader in payment services has helped them better manage their customers.",p1:"For this European leader in payment and transaction services, the complexity of its systems increased exponentially with its business growth, the result of successive acquisitions. The data of the different sources were going through different enrichment paths and calculation rules. This resulted in barely comparable outputs, giving the commercial and aftersales teams poor insight when it came to decision-making.",p2:"The dataFaktory was selected to take over the data of the different operational systems of all group's entities, resulting in a unified view of their customers and installed base of payment terminals, and better tracking of their commercial and aftersales activities.",solutionTitle:"The Solution",solutionDesc:"As an agile Master Data Management solution, the dataFaktory connects with the CRMs and ERPs of all the group's entities. The data from all the systems are loaded several times per day; then go through data quality checks, enrichments and business rules, so that data structure and consistency are ensured. That information is finally presented to business users via reports and in their daily operational tools, enabling them to take the right commercial decisions.",ke
406yResults:"Key Results",kr1:"data sources connected",kr2Label:"Unified view",kr2:"of customers and installed base",kr3Label:"Multiple daily",kr3:"data loads with quality checks",kr4Label:"Single customer referential",kr4:"for the entire group",quote:"Replacing all the group entities' systems at once with a single data warehouse would have taken years to complete, but there was an urgent need to supply the business with consistent information. With dFakto's solution, we started by connecting 3 data sources, and we developed the reports that the teams needed. We have added other business systems over time, connecting over 80 sources: the dataFaktory has become our automated MDM platform, our only customer referential.",quoteAuthor:"Group's MDM Owner"},zP={backToResources:"Back to Resources",title:"Steering all the transverse transformation programs of a large European bank",p1:"Steering platform for the bank's major initiatives, leading to overachievement of the strategic and operational objectives.",p2:"Following the acquisition of several financial institutions, the group launched a strategic program to simplify its processed and identify synergies over a period of 4 years. the plans consisted of 2700 projects in parallel in 40 countries at the cost of €2 billion investment, with expected savings of €2 billion per year.",p3:"The bank needed a system to continuously update many parallel plans, keeping them consistent and coordinated. The system was expected to communicate fluidly, from the top down and the bottom up, between the internal and external stakeholders. One of the major expectations of the system was the provision of trustworthy and consistent information to governance and decision-making meetings.",p4:"We helped the bank translate its plan into a normalized tree structure, with granularity in line with the hierarchical organisation. The plans were then uploaded onto proPilot, thereby providing all staff involved the information, relevant to their level, that they needed to track their projects, their programs and portfolio.",p5:"People in the organisation were asked to provide updates on a monthly basis of the progress status of their projects, programs or portfolio, with simple qualitative indicators: weather forecast (sunny, clouded, rainy), trend (upwards, stable, downwards) achievement percentage. Thanks to proPilot's simple interface these updates took only 2 minutes. On a quarterly basis, people were requested to give their project/program/portfolio achievement forecast, using a small number of indicators of resources and impact.",p6:"In parallel, we defined the reports and dashboards needed for the bank's governance meetings at every level, from the project level to the executive committee. Those reports were supplied with the qualitative input provided by the project stakeholders, and with the quantitative input from data sources such as the bank's accounting system, ERP, HR systems, etc…",p7:"The reports and dashboards gave the bank's management visibility over the performance of every project, enabling them to stop projects that were performing badly and to reallocate resources to projects that were performing well. Decisions over plan adaptations were directly integrated into proPilot's plans, and the subsequent actions communicated to all the stakeholders involved.",p8:'Head of Program Management said: "Agile, reliable and recurring information on complex initiatives, as well as a clear governance structure with regular decision-making meetings, are necessary for performance and overachievement. We ended up investing €2 billion, for a yearly saving of €3,5 billion. dFakto has been decisive in helping us overachieve the objectives of our plans. It was a no-brainer for us to use their data-driven management platform to steer our subsequent strategic plans."'},MP={backToResources:"Back to Resources",title:"Solution implemented in 3 days in a crisis management hospital",p1:"A management platform to manage the scarce resources of a Brussels hospital, in the midst of the coronavirus crisis.",p2:"In the context of the coronavirus crisis, there was an urgent need for the Hospital crisis unit to visualise the situation of its different services, including a number of free beds for people in intensive care, in real time. More generally, the hospital management team needed tools to ensure efficient, real-time allocation of materials and resources, and optimal reception of patients based on their health status.",p3:"It was crucial to devise an approach and a solution that would help the normally isolated services consolidate information.",p4:"In a crisis context, up-to-date data and accurate information is essential for making the right decisions. Over 3 days, joint teams consisting of dFakto and Penbox staff worked relentlessly in collaboration with the Crisis Unit of the University Hospital to deploy an operational IT platform that would suitably support the Hospital's staff.",p5:"dFakto implemented its proPilot solution, tailored to manage crisis plans. With its fast and simple data capture interface, information on resource availability (beds, pumps, oxygen, etc…) from the different field departments is gathered and shared in real time.",p6:"Penbox' solution was used to provide information regarding the availability of nursing staff, based on a 'check-in' and 'check-out' system that could be accessed using smartphones.",p7:"We then deployed a dataFaktory to aggregate the information from both the proPilot and Penbox applications and to make the combined information available in a reporting and visualisation tool.",p8:'Thibaut De Vylder, CEO dFakto, said: "In order to supp
406ort the collective war effort, we were happy to rapidly supply the hospital with a data-management platform. The solution can be replicated whilst adapting to the specificities of any structure. it is obviously the case for hospitals but also for public institutions or other organisation under pressure that want to have the best operational solution in just a few days."'},FP={backToResources:"Back to Resources",title:"One common risk management platform across 17 factoring entities",p1:"This European factoring leader enjoys a consolidated view of its clients' risks by connecting all its entities' applications and systems.",p2:"Many organisations make use of factoring, by which their customer invoices (= account receivables) are sold to a factor, usually a bank, so that the organisations directly receive the value of their invoices.",p3:"When this large European bank grew its factoring activity by consolidating 17 entities, a coordination centre was set up and asked to provide a holistic view of the risks borne by the 17 entities worldwide. But those entities didn't use a common operating system and were applying different risk policies. There was an urgent need to align all the factoring entities on transversal concepts and risk definitions, and to have a system to consolidate the risk positions of all the entities.",p4:"We deployed a dataFaktory, to which the data sources of the 17 factoring entities were connected, and uploaded automatically every month, with quality checks performed on the data. Cross-entity reporting offers multiple views, including trend analysis, data quality reports and performance indicators.",p5:"In less than 3 months, the management was able to get a consolidated view of its clients' risks. The local risk managers receive relevant risk reporting, taking into account the group's guidelines as well as the local specific reality.",p6:`The Head of Global Risk said: "We needed to provide within 3 months' time a global overview over the risks associated with the activities of our 17 worldwide factoring entities, each working with its own IT system. Using dFakto's methodology and platform, we aligned the risk definitions across our 17 factoring entities, and the 90 data sources of the local systems have been aggregated into a dataFactory, with 400 enrichments and calculation rules, producing 30 automated reports. We now apply one common risk policy throughout all our entities, enabling our local risk managers to make better decisions based on accurate and comparable data."`},qP={tagline:"From data chaos to business clarity.",products:"Products",solutions:"Solutions",partners:"Partners",company:"Company",consulting:"Consulting",resources:"Resources",contact:"Contact",digitalTransformation:"Digital Transformation",regulatoryCompliance:"Regulatory Compliance",operationalExcellence:"Operational Excellence",finance:"Finance",publicSector:"Public Sector",industry:"Industry",program:"Program",ecosystem:"Ecosystem",copyright:"All rights reserved.",privacyPolicy:"Privacy Policy",legalNotice:"Legal Notice",brussels:"Brussels"},BP={backToResources:"Back to Resources",title:"Covid 19: Bruss'Help selects dFakto's platform to help the most vulnerable",p1:"In just a few days, dFakto's teams deployed a management platform for Bruss'Help in order to help the most vulnerable during the Covid 19 crisis.",p2:"Bruss'Help (formerly La Strada) oversees the provision of aid to vulnerable people in Brussels. In response to the Coronavirus outbreak, Bruss'Help had to coordinate the actions of different organisations and associations working to help vulnerable people, a part of the population that is particularly at risk during sanitary crises.",p3:"Bruss'Help has to ensure real-time follow-ups and find solutions to various individual situations: medical needs, accompaniment by street teams, provision of hostel rooms for the sick, etc. Without a common information system, the different actors spent a lot of time manually checking information across different systems and calling each other to get real-time status updates.",p4:"dFakto's team
406s deployed in a few days an operational IT platform to ensure coordination between the various social and medical actors. The data of the different organisations and associations are connected to a dataFaktory in near-real-time thanks to a high-frequency upload rate. Reports and dashboards are automatically produced, constantly providing Bruss'Help teams with instant, up-to-date information.",p5:"Measures taken by public authorities and Bruss'Help are adapting to the situation. The dFakto platform enables the easy integration of new data sources, such as information concerning new human and material resources, and makes the sources directly available to the beneficiaries. The system also enables an efficient collaboration among medical crisis centres (Medical outposts of Doctors Without Borders, the Red Cross and the New-Samusocial), that are directly working with the most vulnerable.",p6:`The Operation Director of Bruss'Help said: "We don't have to spend so much time on tedious manual information checks anymore. We can now fully allocate our time to help people in need. And because we now have accurate and up-to-date information, we are taking good decisions and making the best use of our resources."`},VP={backToResources:"Back to Resources",title:"Much faster reporting thanks to a unified and trusted platform, using fewer resources",intro:"Much faster reporting thanks to a unified and trusted platform, using much fewer resources",subtitle:"An effective platform for project reporting to the bank's CIO Office, creating trust in information, increasing people's added-value and reducing unproductive tasks by 75%.",challengesTitle:"Challenges:",p1:"The IT department of this European bancassurer's Belgian entity manages projects on a yearly basis with a €90M annual budget and with 60 project managers and 600 resources. Project information was spread out over several systems: the 60 project managers spent around 5 days gathering and interpreting data for their monthly report, while consolidated information was only available 4 weeks after the end of the month.",solutionTitle:"Solution:",p2:"The CIO Office wanted a single tool to track project actuals/forecast and budget, and which would provide the consolidated information much faster. We implemented a dataFactory in 4 phases.",p3:"First, we connected the different data sources (BRM, ETR, Clarity, etc.) to the platform, while fully understanding the pains and expected benefits. Second, we helped define the roles and responsibilities among user groups. We introduced Qlikview as a business intelligence solution.",p4:"Third, we helped define common project concepts and processes.",p5:"And finally, we helped improve data quality and improved the CIO Office's Qlikview competences.",benefitsTitle:"Benefits:",p6:"A number of hard benefits were achieved too:",benefit1:"all reports are refreshed in 1 hour instead of over several days;",benefit2:"the number of project meetings was cut in 3, and their duration in 2;",benefit3:"75% reduction in the time spent doing administrative tasks",benefit4:"38% reduction in the FTEs needed to manage projects.",quote:"With dFakto's reporting platform, the organisation is now aligned on one version of the truth, and is finally comfortable with the figures people deal with. Reporting is now refreshed in one hour. Today, we have fewer meetings to discuss projects, and they are much more efficient. We have switched from low value-added activities (data crunching) to higher value-added ones (analysis), saving 75% of time spent on administrative tasks, resulting in an FTE reduction of 38% in the CIO office. Overall, we have developed the capabilities of the organisation with regard to portfolio management",quoteAuthor:"Head of Portfolio Management for the CIO Office"},$P={backToResources:"Back to Resources",title:"Unified and automated reporting for all construction and maintenance projects",p1:"Unified and automated reporting for all construction and maintenance projects around the world.",p2:"Offshore, marine, civil, environment and project development. Jan De Nul Group is a leading expert in five main activities. Jan De Nul Group shapes both water and land. They enable the production of offshore energy and maintain the depth of waterways. They build new ports and create extra land. They realise complex infrastru
406cture works and erect any type of building. They tackle pollution in whatever form. Thanks to the fruitful interaction within our company, we can offer overall solutions that combine one, several or even all these activities.",p3:"This world leader in large infrastructure works gets full project visibility by connecting financial and non-financial information systems",p4:"With thousands of engineers and crews working around the globe on heavy engineering projects, the company's project progress accounting relies on a complex crossing of financial actuals with budgetary forecasts that depend on weather conditions, fuel prices and the geographical location of ships and materials.",p5:"With many reports that each showed only part of the full picture, the visibility over the many concurrent projects around the globe was partial, inaccurate and delayed by at least 1 month. As a large part of the group's revenue is project-based, it was crucial to have a near-real-time, consistent progress status based on data from multiple sources.",p6:"dFakto has set up a dataFaktory integrating data from the financial systems and the project management tools. The data are sourced several times per day and are prepared for reporting, after a number of quality checks and enrichments are performed. Two standardised A4 reports are generated per project and automatically sent to stakeholders around the globe; they are used by senior management to objectively compare project performance, both in and across business lines.",quote:"Our management information was provided through a variety of separate reports and systems, giving us insufficient insight into the financial situation and progress of our 450 projects. With a dFaktory that combines the data from our different systems and sources, we now have real-time visibility over each project and over our consolidated portfolio. We identify issues earlier and can take immediate actions, saving millions every year. Also, our reporting system is now much more flexible and can be adapted to our changing needs."},HP={backToResources:"Back to Resources",heroTitle:"dFakto Blog",heroSubtitle:"Insights on data management, strategy execution, and digital transformation",readArticle:"Read article",catERPArchitecture:"ERP & Architecture",catDataStrategy:"Data Strategy",catCompany:"Company",catPartnership:"Partnership",catPressRelease:"Press Release",catInsights:"Insights",catProduct:"Product",catStrategy:"Strategy",catTech:"Tech",catEvent:"Event",catAIStrategy:"AI Strategy",catPressReleaseFr:"Press release",catSecurity:"Security"},WP={title:"The Mechanics of Data Vault",backToResources:"Back to Resources",h2_1:"What is Data Vault 2.0?",p1:"Developed by Dan Linstedt, Data Vault 2.0 is an evolutionary approach that incorporates ideas from thought leaders in the field, mathematical concepts, usage of hashing to increase performance of historization and rational development processes like Agile. It aggregates the best practices in methodology, architecture, and modeling from experienced data architects.",p2:"At the heart of data vaulting is the data vault model, which offers a solution to the challenges faced by traditional data modeling approaches.",p3:'Traditional models, like "enterprise data warehouses" or star schemas, have limitations in terms of adaptability and ease of maintenance.',p4:"In contrast, the data vault model organizes data in three types of tables: <strong>Hub</strong>, <strong>Satellite</strong>, and <strong>Link</strong>. The Hub table stores business keys, the Satellite table contains attributes related to the data, and the Link table captures the transactional relationships between data points. This model provides a comprehensive and scalable representation of the business's data, along with a dimensional layer for easy access by analysts and data consumers.",p5:"Data Vault 2.0 takes the data vault model to the next level. It extends beyond just a data model and incorporates the architecture and methodology described above.",li1:"Data is loaded in parallel, and business rules are tracked over time, allowing for retroactive analysis and version control.",li2:"When new data sources emerge, they can be seamlessly integrated into the existing structure without the need for rework or re-engineering.",p6:"Employing Data Vault 2.0 is the least risky way to build a robust and adaptable data platform. It offers a prescriptive methodology for executives, business managers, analysts, and data consumers to deliver business value from the data platform efficiently. For practitioners and managers responsible for data platforms, Data Vault 2.0 provides a comprehensive and resilient approach to building and deploying a functional model and scalable architecture that can withstand the challenges posed by evolving business needs.",h2_2:"Data Vault 2.0 and automation",p7:"Data Vault 2.0 (DV2) can be automated, while Data Vault 1.0 (DV1) had limitations in terms of automation, primarily due to the lack of standardized specifications. Let me explain why.",p8:"Automation in the context of data modeling and implementation refers to the ability to use software tools and processes to 
406streamline and expedite the creation and management of data structures. It allows for consistent and efficient development, reduces manual effort, and minimizes the risk of errors.",p9:"DV2 benefits from increased automation because it provides a more standardized and well-defined methodology compared to DV1. In DV2, the specifications and best practices for modeling and implementing a Data Vault are clearly outlined. The Data Vault 2.0 Standard serves as a comprehensive guide that includes methodology, architecture, and modeling practices.",p10:"The clarity and standardization of DV2 make it easier to automate various aspects of the Data Vault implementation process. With a well-defined set of rules and guidelines, software tools can be developed to generate compliant Data Vault structures automatically. These tools can create Data Vault objects, such as hubs, satellites, and links, following the prescribed patterns and rules.",p11:"In contrast, DV1 did not have as explicit and widely accepted specifications. Different practitioners had their interpretations and approaches to building Data Vault models, which led to variations in compliant Data Vault implementations. The lack of a standardized framework made it challenging to develop automation tools that could cater to the diverse ways of implementing DV1.",p12:"The introduction of DV2 and its standardized approach resolved this issue. It brought together the collective knowledge and experiences of data architects and practitioners who had worked on Data Vault projects over the years. By consolidating best practices and providing clear guidelines, DV2 created a foundation that could be leveraged for automation.",h2_3:"Data warehouse and datalake automation",p13:"Data warehouses and data lakes have the option to embrace Data Vault 2.0 (DV2) as their chosen data modeling and implementation methodology. By adopting DV2, they can ensure the full scalability of their data models for the future and enable their data warehouses or data lakes to become sustainable in the long run. Let's explore this further.",p14:"Data warehouses and data lakes serve as central repositories for storing and analyzing large volumes of data. They provide a foundation for reporting, analytics, and data-driven decision-making within organizations. The data models used in these systems play a crucial role in organizing and structuring the data for efficient querying and analysis.",p15:"DV2 offers several benefits that make it an attractive choice for data warehouses and data lakes looking for a sustainable and scalable data model.",h3_1:"Scalability",p16:"DV2 is designed to accommodate the ever-changing needs of businesses as they grow and evolve. The flexibility and adaptability of the Data Vault model allow for easy incorporation of new data sources, system changes, and expanding business requirements. This scalability ensures that the data warehouse or data lake can effectively handle increased data volumes and complexity over time.",h3_2:"Future-proofing",p17:"By adhering to the DV2 methodology, data warehouses and data lakes can future-proof their data models. DV2 follows a set of best practices and standardized guidelines that have been refined over years of industry experience. This approach minimizes the risk of creating data models that may become obsolete or difficult to maintain as business requirements evolve.",h3_3:"Consistency and reusability",p18:"DV2 promotes consistency in data modeling by providing a clear set of rules and patterns. This consistency makes it easier to understand and work with the data model across different teams and projects. Additionally, the standardized nature of DV2 enables the reusability of data vault objects, such as hubs, satellites, and links, which can significantly reduce development effort and enhance data integration and consolidation.",h3_4:"Reduced maintenance and complexity",p19:"DV2 simplifies data modeling and management by separating the concerns of the data vault, business vault, and presentation layers. This separation reduces the complexity of the data model and makes it easier to maintain and modify over time. By embracing DV2, data warehouses and data lakes can achieve a more streamlined and sustainable architecture, leading to lower maintenance costs and improved data quality.",p20:"DWH and DL can choose to embrace Data Vault 2.0 to ensure the scalability and sustainability of their data models. DV2's scalability allows for accommodating future growth and changing business requirements. By following standardized best practices, data warehouses and data lakes can create consistent and reusable data models. Embracing DV2 also reduces maintenance efforts and complexity, leading to more sustainable and efficie
406nt data management practices."},UP={backToResources:"Back to Resources",title:"Introducing Data Driven Management",intro:"Doing the right things and doing the things right are two different but related problems.",p1:"<strong>Doing the right things</strong> refers to making the correct decision or taking the appropriate action in a given situation. This requires a deep understanding of the situation, the potential consequences of different actions, and the values and goals of the decision maker.",p2:"<strong>Doing the things right</strong> refers to the execution or implementation of a decision or action. This requires a focus on the details, a commitment to quality, and an attention to process and procedures.",quote1:"Strategy without execution is a hallucination.",quote1Author:"— Thomas Edison",p3:"It is possible to do the right things and do the things right, but it is also possible to do one without the other. For example, a leader may make a decision to invest in a new technology that aligns with the organization's goals and values, but if the implementation of that technology is rushed or poorly executed, the decision may not lead to the desired outcome. Similarly, a team may execute a project flawlessly, but if the project itself is not aligned with the organization's goals or values, it will not be considered a success.",quote2:"Ideas without action are worthless.",quote2Author:"— Harvey Mackay",p4:"In order to be truly successful, it is important to both do the right things and do the things right. This requires a balance of strategic thinking and attention to detail, a strong sense of purpose and a commitment to quality. It also requires constant communication and collaboration, as well as a willingness to adapt and learn from past experiences.",p5:"Ultimately, doing the right things and doing the things right is a continuous journey that requires ongoing effort and dedication.",h2_1:"Connecting the dots",p6:"Connecting the execution of a plan to the decision making process with data is essential in ensuring that the strategy and execution are aligned and effective. Data provides valuable insights into the performance of a plan, enabling organizations to make informed decisions and adjust their strategy accordingly.",p7:"The first step in connecting the execution to the decision making process with data is to establish clear metrics and goals for the plan. These metrics should be closely tied to the overall strategy of the organization, and should be used to measure progress and success. For example, if the strategy is to increase sales, the metric could be the number of sales made per month.",p8:"Once the metrics have been established, organizations should organize the progress to collect and analyze data regularly to track performance against these metrics. This data can be used to identify areas of success and areas that need improvement. For example, if sales are not meeting expectations, data analysis may reveal that the problem is with the marketing strategy rather than the sales team.",p9:"Once the data has been analyzed, the organization can make informed decisions about how to adjust the strategy to better align with the execution. For example, if the problem is with the marketing strategy, the organization may decide to invest more resources in digital marketing, or to re-brand the product to appeal to a different market.",p10:"By connecting the execution to the decision making process with data, organizations can ensure that their strategy and execution are closely aligned, and that their efforts are directed towards achieving their goals. This approach enables organizations to make data-driven decisions that are more likely to lead to success, and helps them to stay on track with their overall strategy."},KP={backToResources:"Back to Resources",title:"Data Driven Management Framework",p1:"dFakto has developed a data-driven management framework that aims to improve the execution of strategic decisions within any organization. This framework is composed of four core processes that work together to achieve this goal.",h2_1:"1. Data management (Data)",p2:"The first process is data management. It is the process of turning raw data into actionable information that can be used to make informed decisions. This process involves collecting, storing, and analyzing data to uncover insights that can be used to improve the performance of the organization.",h2_2:"2. Decision-making (Decide)",p3:"The second process is decision-making. This process involves taking the actionable information obtained from the data management process and using it to make strategic decisions. This process requires clear communication, collaboration, and a decision-making process that is grounded in data-driven insights.",h2_3:"3. Piloting (Plan)",p4:"The third process is piloting. This process involves turning the decisions made in the decision-making process into actions on the ground. It involves testing the effectiveness of the decisions and making adjustments as needed. This process is critical for ensuring that the decisions made are actually executed and that they have the desired impact.",h2_4:"4. Execution (Do)",p5:"The final process is execution. This process involves putting the decisions and actions into practice through business processes and/or projects. It is the process of ensuring that the organization is able to execute the decisions made in a timely and effective manner. This process requires clear communication, collaboration, and a focus on delivering results. Execution generates new data and the cycle c
406ontinues…",quote1:"Data-driven decision making is not about removing intuition, but enhancing it.",quote1Author:"— Tim Cook, CEO of Apple Inc.",p6:"By following the four core processes outlined in this framework, organizations can turn data into actionable information, make data-driven decisions, pilot and execute those decisions, and ultimately achieve better results."},GP={backToResources:"Back to Resources",title:"Data Driven Management: Measuring Performance",p1:"The ability to accurately measure and track the execution of a project or process is crucial for ensuring its success. However, the complexity and volume of data involved in these processes can make it difficult to identify and address issues in a timely manner. To improve the execution of these processes, it is important to focus on the quality of the data and the use of live measuring tools to identify and address execution gaps.",h2_1:"Key quality indicators (KQI's)",p2:"One way to improve the quality of data is through the use of key quality indicators (KQI's). These indicators provide objective measures of the structure, persistence, and locations of data quality issues within the data used to produce information. By developing a specific framework within the dataFaktory, it is possible to create data quality scores and 'DNA tags' that can be easily aggregated and historicized. This allows for more accurate and efficient identification of data quality issues and allows for more effective and targeted solutions.",h2_2:"Key execution indicators (KEI's)",p3:"Another important aspect of improving execution is the use of key execution indicators (KEI's). These indicators measure the distance between the planned trajectory and the realized trajectory of a project or process. By developing a specific framework within a proPilot and dataFaktory, it is possible to create objective measures of execution gaps that are both current (KEI to-date) and future-facing (KEI at-completion). This allows for more accurate and proactive identification of issues and allows for more effective and targeted solutions.",h2_3:"Managing complexity",p4:"However, it is important to note that the use of these secondary flows, such as KQI and KEI, may increase the perceived complexity of the process. To mitigate this, it is important to ensure that the frameworks are clear, easy to understand, and accessible to all members of the team. Additionally, it is important to provide training and support to ensure that all members of the team are able to effectively use these frameworks to improve the execution of the projects or processes.",h2_4:"The complementary role of KPI's",p5:"The use of Key Performance Indicators (KPI's) is of course complementary to the use of KEI's and KQI's, which do not have the purpose of replacing them. In fact:",li1:"<strong>KPI's</strong> allow us to see if a project or process is reaching its destination.",li2:"<strong>KEI's</strong> help to qualify how it deviates from the path to get there.",li3:"<strong>KQI's</strong> allow to objectively measure the degree of confidence we can have in the information related to them.",p6:"By utilizing a combination of KPIs, KEIs, and KQIs, we can gain a comprehensive and insightful understanding of our strategic initiatives. This allows us to proactively manage and course-correct along the way, ensuring that we not only meet but exceed our ambitious goals from the outset. By optimizing our approach, we can maximize the value of our initiatives, paving the way for even greater success. So let us embrace these powerful tools and unleash the full potential of our strategic endeavors!"},QP={backToResources:"Back to Resources",title:"DataFaktory: Benefits for Business Users",p1:"dataFaktory, our datamanagement platform, differs from technical solutions designed for data experts in several ways. Let's take a closer look at all these differentiating points.",h3_1:"User-friendly interface",p2:"dataFaktory prioritizes a user-friendly interface that simplifies data management tasks. It is designed to be intuitive and accessible to business users, allowing them to configure, operate, and maintain the solution without extensive technical knowledge. This focus on user experience sets it apart from other Data Vault solutions that may have more complex interfaces tailored for technical experts.",h3_2:"Business-oriented architecture",p3:"dataFaktory adopts a business-oriented architecture that aligns with the needs of business stakeholders. It bridges the gap between business requirements and technical implementation, emphasizing the understanding and usage of data by non-technical profiles. This approach makes it easier for business users to leverage the solution effectively, distinguishing it from Data Vault solutions that primarily cater to technical experts.",h3_3:"Orchestration, automation, and simplification",p4:"dataFaktory excels in orchestration, automation, and simplification of data management processes. It automates complex operations such as data extraction, transformation, and distribution, reducing the reliance on manual intervention. By streamlining these processes, dataFaktory minimizes the effort required for data management, making it more efficient compared to other Data Vault solutions that may involve more manual steps.",h3_4:"Embedded data quality",p5:"dataFaktory embeds data quality controls as an integral part of the solution. It applies data quality measures not only to individual data sources but also to combined sources, ensuring the overall quality of the data ecosystem. This built-in data quality feature sets it apart from other Data Vault solutions that may require additional tools or processes to address data quality concerns.",h3_5:"Techno-agnostic approach",p6:"dataFaktory embraces a techno-agnostic approach, allowing it to connect with different and heterogeneous data sources. It is compatible with various underlying technologies, including different databases, ETL (Extract, Transform, Load) tools, SQL scripts, Python rout
406ines, and BI (Business Intelligence) tools. This flexibility enables dataFaktory to leverage existing technology investments, making it adaptable to diverse technology environments.",h3_6:"Ready-to-use dashboards",p7:"dataFaktory offers a comprehensive set of ready-to-use business dashboards across multiple management domains such as sales, marketing, finance, and inventory. These dashboards provide immediate access to key insights and metrics, covering 95% of an organization's typical needs. The pre-built dashboards are designed with a user-friendly interface and require minimal customization, distinguishing dataFaktory from Data Vault solutions that may lack this out-of-the-box dashboard functionality.",ctaText:"Interested to learn more?",ctaButton:"Contact us for a demo"},YP={backToResources:"Back to Resources",title:"Why do Data Warehouses take forever?",p1:"Is your company's data warehouse working the way you want it to? Are you happy with your dashboards? Do all the sources of data you produce feed into it?",p2:"It's possible that if you're using the 'old methods', the answer is 'probably not'. Sadly this is going to change anytime soon if your business changes with any pace. Indeed, you likely have a series of overlapping change requests and a reluctance to introduce more until you can have assurance of some progress, or even some semblance of currency.",p3:"Rising above the change requests, a more pertinent question is: <strong>'Does your data warehouse reflect the current reality of your business?'</strong> Certainly not if you are still waiting on those pending changes. In fact, I'll bet you have probably resigned yourself to all of this lag and labelled it 'business as usual'. You might be, if you are proactive, be looking out for technology solutions, but it need not be like that.",h2_1:"Old dogs, new tricks?",p4:"Using just the 'tried and tested' approaches, anytime you change one thing in your data warehouse there are usually knock on effects such as dependent systems. As a result your data warehouse must usually alter (and test!) iteratively until its data model can cope. This happens a lot, and many have resigned themselves to accepting this as the price of change in 'modern' data warehouse technology. We know it's not true.",p5:"New regulations, compliance requirements, connected external systems, business mergers, process changes or simply expanding requirements introduce a need for modifying how you capture, store and analyse your data. In fact the most significant challenge of any data warehouse is to <strong>capture change while maintaining continuity</strong> with historical data so that reporting is consistent and accurate. Sounds impossible? Not really.",p6:"Making changes using traditional methods will nearly always require a review of data models, impact assessments and even complete rewrites when new requirements are implemented – it's all very slow, tedious and sometimes painful. And when you are done, the model changes must be tested for assurance that nothing has been broken, before moving from staging to live analytics. Weeks turn into months with all of this, and it involves a huge amount of time and effort.",h2_2:"A better approach",p7:"It's complicated keeping up with today's pace, which is why some clever people came up with the <strong>Data Vault discipline</strong>. It's a method of separating core data structure from the data content. The result is you can quickly and accurately adapt to change without suffering lag times and the inaccuracies of traditional data warehouse methodologies. You build the structure ONCE and then hang your data off of it in 'satellites'.",p8:"Need to change? No problem, just add additional structure without breaking what was already there. If you need to include more data, you simply hang more off of the core structure ('hubs' and 'links').",p9:"Data Vault is a methodology, not a technology. It is a way of thinking about data, rather than a shiny new trend. It involves separating the structure of your data from the changes. It simplifies and stabilises your data model, so that it becomes a fixed entity into which your raw data is locked and never changes. It is a <strong>vault of truth</strong> of your business – warts and all."}
406,ZP={backToResources:"Back to Resources",title:"Scalefree and dFakto Partner on Data Vault",h2_1:"dFakto and Scalefree partner to elevate data warehouse automation and Data Vault solutions",date:"<strong>Brussels, 2024 November 12th</strong>",p1:"dFakto is pleased to announce a strategic partnership with <strong>Scalefree</strong>, an industry expert in business intelligence consulting and the implementation of data warehouse projects, specializing in the Data Vault 2.0 method.",p2:"This collaboration aims to further enhance the capabilities of our Data Vault Automation platform, <strong>beVault</strong>, delivering advanced data management solutions to organizations globally.",p3:"Scalefree's deep expertise in Data Vault modeling and data warehouse implementation aligns seamlessly with dFakto's beVault technology—a powerful solution that automates the entire Data Vault lifecycle, from integration to the deployment of Information Marts. Together, dFakto and Scalefree will provide clients with a robust, scalable approach to managing their data ecosystems, enabling faster, more accurate insights, and supporting better decision-making.",highlight:"To date, beVault is the only certified Data Vault 2.0 tool.",p4:"This partnership combines Scalefree's data modeling proficiency with dFakto's automation technology and expertise, offering a complete solution for organizations seeking to modernize their data infrastructure. By automating complex data processes and leveraging the Data Vault methodology, this alliance empowers businesses to streamline their data operations, reduce costs, and achieve greater agility in their data management strategies.",p5:"Scalefree is specialized in Data Vault 2.0 solutions for modern enterprises. As a certified training partner, Scalefree brings its expertise to help organizations unlock the full potential of their data. Focused on delivering practical and innovative solutions across various industries, Scalefree ensures that companies can harness Big Data effectively within today's business context.",h3_1:"About beVault",p6:"beVault is a platform that seamlessly connects business needs with technological solutions within a unified platform. Its Data Vault 2.0 certification underscores its compliance and effectiveness in modern, scalable data management practices.",h3_2:"About dFakto",p7:"dFakto is a pioneer in providing automated data management platforms that support initiatives in both the public and private sectors. Focused on innovation, dFakto enables organizations to transform data into actionable insights, improving decision-making and operational efficiency.",h3_3:"About Scalefree",p8:"Scalefree was founded in 2016 by the inventor of Data Vault, Dan Linstedt and Michael Olschimke and stands for the field-tested and sustainable implementation of data warehouse projects based on the Data Vault Standards defined by Dan Linstedt. With competent consulting and training, Scalefree leads companies on the way to a scalable, efficient and future-proof data infrastructure."},XP={backToResources:"Back to Resources",title:"PCMA & dFakto: AI Platform for Business Events",h2_1:"destinAItor previewed at edUcon 2025 as transformative destination and venue research tool",p1:"<strong>CHICAGO, IL</strong> – DestinAItor, PCMA's next-generation destination and venue planning tool for business events strategists, delivers data-driven insights, ultimately reducing the time and money invested in destination and venue research. Developed in partnership with dFakto, the AI-powered platform goes beyond dates, rates and space.",p2:"Previewed at edUcon earlier this month, destinAItor features a destination marketing organization (DMO) validation process. Participating destinations and venues review and most importantly, verify their respective profiles ensuring accurate and current content. The curated data incorporates information such as sustainability initiatives, safety measures, economic sectors, citywide events, infrastructure developments and more. Destinaitor leverages strategic data partnerships with Tempest and Simpleview to integrate meetings and events data, allowing events strategists to easily compare multiple destinations based on objective, verified data. DestinAItor also includes an RFP feature that can analyze a planner's request for proposal and suggest matching destinations.",p3:'Insights from the destinAItor platform are complimentary for business events strategists. Destinations and venues interested in being searchable are required to join a destinAItor pilot for review of AI-generated destination data and to move forward with achieving the "Verified Destination" badge to appear on the platform.',quote1:"I believe destinAItor will revolutionize how business events strategists research destinations and venues. The platform is dynamic. This is going to be a continued evolution. PCMA remains committed to empowering our global business events community with tools that are intuitive and responsive to their needs. destinAItor delivers on this need.",quote1Author:"— Sheriff Karamat, CAE, PCMA and CEMA President & CEO",p4:"Participating destinations and venues benefit from performance reports and analytics on search patterns and trending destinations as the platform allows destinations and venues to highlight unique value propositions, ultimately attracting business that aligns with their respective strategic goals.",quote2a:"The business events industry is rapidly evolving, with increasing demand for secured and compliant AI-
406powered solutions and data-driven decision-making. Through collaboration with PCMA, we identified industry challenges – data overload from multiple sources, inefficient search processes, and significant mistrust in AI data due to accuracy concerns.",quote2b:"For destinations and venues, it's an opportunity to control their data and brand narrative, address poor lead generation, and overcome RFP spam, while gaining performance insights through analytics on search patterns. This is just the beginning. We see new use cases arising and new game changing features will be added to the destinAItor platform on a continual basis.",quote2Author:"— Thibaut De Vylder, CEO of dFakto",h3_1:"Contact:",contact:'Meghan Risch<br />PCMA<br />Chief of Staff, Vice President, Corporate Communications<br />Email: <a href="mailto:[email protected]">[email protected]</a>',h3_2:"About PCMA",p5:`PCMA, PCMA Foundation, and CEMA educate, inspire, and listen, creating meaningful experiences where passion, purpose, and commerce come together. We are the world's largest community for Business Events Strategists, providing senior-level education, networking, and market intelligence for the global business events industry. Our mission is to drive social and economic progress through business events. Headquartered in Chicago, IL PCMA has 17 North American Chapters, regional communities in APAC, EMEA, and LATAM, and members in 59 countries. The Corporate Event Marketing Association (CEMA), a PCMA subsidiary, advances strategic event marketing and marketing communications for senior-level event marketers and industry professionals. Visit us at <a href="https://pcma.org" target="_blank" rel="noopener noreferrer">pcma.org</a>.`,h3_3:"About dFakto",p6:'dFakto is a data-driven, business-minded expert in advanced data platforms, committed to revolutionizing how organizations transform, perform, and comply with their data. We provide innovative tooled-consulting and licensing solutions, highlighted by our leading platforms, beVault (<a href="https://www.bevault.io" target="_blank" rel="noopener noreferrer">www.bevault.io</a>) and proPilot (<a href="https://www.propilot.io" target="_blank" rel="noopener noreferrer">www.proPilot.io</a>). Our mission is to empower a diverse range of clients, from governments and large corporations to associations and SMEs, by enabling them to build, run, and maintain agile, state-of-the-art data platforms. The dFakto platform excels at preparing and integrating data from multiple sources, ensuring it is handled in a secure and compliant way. Furthermore, our future-proof solutions are designed to flexibly cope with the rapid advancements and changing demands of Artificial Intelligence technologies, providing future-proof data management capabilities. dFakto has currently offices in Brussels and Paris and will operate on the North American market through the JV in Chicago. Visit us at <a href="https://www.dfakto.com" target="_blank" rel="noopener noreferrer">www.dfakto.com</a>.'},JP={backToResources:"Back to Resources",title:"25 years of data innovation: a message from our CEO",welcome:"Welcome to dFakto!",p1:"As we celebrate our 25th anniversary in September 2025, I find myself reflecting on a journey that has been nothing short of remarkable. From our humble beginnings to becoming a leading innovator in data management automation, we have navigated the evolving landscape of technology and business with a singular focus: to deliver practical, agile, and effective solutions to organizations worldwide.",p2:"Only 60 years ago, data was often seen as a byproduct of business operations, not allowed to move out of the systems. Today, data is the lifeblood of organizations — enabling smarter decisions, driving innovation, and providing the foundation for future growth.",p3:"As the world changes rapidly, at dFakto we have embraced this transformation, continuously adapting our solutions to meet the ever-shifting needs of our clients.",h2_1:"At dFakto, we do things differently:",li1:"<strong>No magic bullets, just proven results</strong> — We don't promise the impossible or sell quick fixes. We deliver genuine stability and strategic agility in today's unpredictable business environment.",li2:"<strong>Accelerate with confidence</strong> — We provide organizations with the precise tools needed to manage and leverage data effectively, enabling faster decisions, smarter operations, and unmatched efficie
406ncy.",li3:"<strong>Strategic focus, maximum impact</strong> — Our solutions don't try to do everything. They excel at doing the right things, quickly, at a fraction of traditional costs and timelines.",p4:"For 25 years, we have proven that data management is a journey, not a destination. We have built beVault, our automated data-management solution, and proPilot, a powerful tool for managing strategic initiatives, both designed to empower teams and create lasting value.",p5:"But more than the solutions themselves, it's our philosophy — our approach to problem-solving — that sets us apart.",p6:`We don't believe in "one-size-fits-all" solutions. We believe in customizing the 80% to fit your needs and spending the necessary time on the 20% that makes the difference. It's a formula that works, and it's why we're trusted by clients in diverse industries — organizations that need agility and stability in equal measure.`,p7:"As we look toward the future, we remain as committed as ever to our mission: helping organizations unlock the full potential of their data. We're not just a technology company or a consulting firm — we are a <strong>tooled-consulting company</strong>, built to be agile, adaptable, and always ready to face new challenges head-on.",goal:"Our goal is simple: to help you innovate, accelerate, and transform with the power of data.",p8:"Thank you for being part of our journey.",p9:"Whether you're a client, partner, or team member, your trust and collaboration are what have made our success possible.",p10:"Here's to the next 25 years — and beyond. Together, we will continue to shape the future of data management.",signName:"– Thibaut De Vylder",signTitle:"dFakto CEO"},e5={backToBlog:"Back to Blog",category:"Data Strategy",title:"The Myth of the Single ERP: Why Odoo Should Not Be Your Data Warehouse",h2_1:"Introduction",p1:"Today, no information system exists in isolation. A modern company typically operates:",li1_1:"an ERP (such as Odoo),",li1_2:"a CRM,",li1_3:"marketing tools,",li1_4:"vertical business platforms,",li1_5:"or even IoT sources, flat files, or legacy systems.",p2:'The challenge is no longer just collecting data, but <strong>consolidating, cross-referencing, and leveraging</strong> it reliably. Asking Odoo to serve as the "single source of truth" for all this data is a natural temptation, but one that often leads to added complexity and costs.',h2_2:"Odoo is not in the same league as dedicated data platforms",p3:"Odoo remains highly effective at managing transactional and business processes. However, consolidating data from disparate systems, historizing it, harmonizing it, and making it available for analytics requires a platform specifically designed to orchestrate all these data flows.",h2_3:"A data platform to orchestrate without replacing",p4:"This is precisely the role of <strong>beVault</strong>.",p5:"beVault:",li3_1:"connects to all enterprise sources (ERP, CRM, files, other apps)",li3_2:"automatically historizes data with a structured and governed model",li3_3:"feeds BI or AI tools without having to cobble together homemade pipelines",li3_4:"maintains a <strong>single source of truth</strong> structured for all stakeholders.",p6:"This approach is not about removing Odoo, but about ensuring each system keeps its optimal role:",li4_1:"<strong>Odoo</strong> handles transactional business operations,",li4_2:"<strong>beVault</strong> handles unification, governance, and analytical reuse.",h2_4:"Concrete benefits for the business",li5_1:"Decisions based on consistent data across CRM, ERP, marketing, and finance.",li5_2:"More time spent on analysis, less on Excel manipulations or manual exports.",li5_3:"Strong adaptability when new sources appear or needs evolve.",h2_5:"Conclusion",p7:"To sustainably address cross-functional data needs, the answer is not to force Odoo into a role it was not designed for. It is about establishing a <strong>coherent data architecture</strong>, where Odoo is one reliable source among others, feeding a more robust platform like beVault."},t5={backToBlog:"Back to Blog",category:"ERP & Architecture",title:"Is Odoo Slow? Don't Buy Servers, Change Your Architecture.",subtitle:"The real question behind performance issues",h2_1:"Introduction",p1:`When organizations implement Odoo at scale, it's not uncommon to hear: "Odoo is starting to get slow." Yet, in most cases, this isn't a configuration error or an isolated technical optimization gap: it's a <strong>strategic signal</strong>. When the ERP simultaneously carries transactional workloads, reporting needs, integrations, and data historization, the limitations don't come from the softw
406are itself — they come from the growing burden of responsibilities placed upon it.`,h2_2:"The real problem: extending the ERP beyond its natural scope",p2:"Odoo excels as a transactional ERP, but it is not designed as a modern centralized data platform. Trying to stretch it to simultaneously serve as:",li2_1:"a data hub,",li2_2:"a reporting engine,",li2_3:"an analytical source of truth",p3:"…is often the root cause of perceived slowdowns or costly trade-offs around performance and complexity.",h2_3:"A different path: adding a dedicated data layer",p4:"Instead of multiplying point optimizations within Odoo, a more relevant question for leaders is: wouldn't it be more effective to delegate data consolidation and orchestration to a platform designed for that purpose? This is where a solution like <strong>beVault</strong> comes into play.",p5:"beVault positions itself as a modern data platform, built on the Data Vault methodology, that automates data model generation, integration of diverse sources, complete historization, and governance — all while facilitating BI and analytical exploitation, and offloading Odoo from tasks it's not optimized for.",h2_4:"Why this approach is different",li4_1:"<strong>Preserved performance:</strong> Odoo continues to handle transactional operations without being overwhelmed by heavy data demands.",li4_2:"<strong>Modularity and scalability:</strong> the data layer evolves according to needs without multiplying constraints on the ERP.",li4_3:"<strong>Business ROI:</strong> reduce time spent cobbling together integration solutions or homemade scripts.",h2_5:"Conclusion",p6:"Optimizing Odoo over and over is not the right lever if the constraints come from data complexity. The real question is <strong>architectural</strong>. And from this perspective, integrating a specialized data layer like beVault becomes the logical decision — not to replace Odoo, but to complement it intelligently."},n5={title:"Privacy statement",subtitle:"How we handle your data",s1Title:"1. Introduction",s1Text:'Deployments Factory, trading as dFakto ("we", "our", or "us") is committed to protecting your privacy. This Privacy Statement explains how we collect, use, disclose, and safeguard your information when you visit our website or use our services, in compliance with the General Data Protection Regulation (GDPR) and applicable EU privacy laws.',s2Title:"2. Data collection",s2Text:"We may collect information about you in the following ways:",s2Li1Label:"Personal data you provide:",s2Li1:"Name, email address, company name, phone number, and job title when you fill out contact forms, request demos, or subscribe to newsletters.",s2Li2Label:"Automatically collected data:",s2Li2:"IP address, browser type, device information, pages visited, and time spent on our website.",s2Li3Label:"Cookies and tracking technologies:",s2Li3:"We use cookies to enhance your browsing experience and analyze website traffic.",s3Title:"3. How we use your information",s3Text:"We use the information we collect for the following purposes:",s3Li1:"To provide, operate, and maintain our services",s3Li2:"To respond to your inquiries and support requests",s3Li3:"To send you marketing communications (only with your explicit consent)",s3Li4:"To improve our website and services",s3Li5:"To comply with legal obligations",s3Li6:"To protect our rights and prevent fraud",s4Title:"4. Your GDPR rights",s4Text:"Under the General Data Protection Regulation (GDPR), you have the following rights:",s4Li1Label:"Right of access:",s4Li1:"You can request a copy of the personal data we hold about you.",s4Li2Label:"Right to rectification:",s4Li2:"You can request that we correct inaccurate or incomplete data.",s4Li3Label:"Right to erasure:",s4Li3:'You can request that we delete your personal data ("right to be forgotten").',s4Li4Label:"Right to restrict processing:",s4Li4:"You can request that we limit how we use your data.",s4Li5Label:"Right to data portability:",s4Li5:"You can request your data in a structured, commonly used format.",s4Li6Label:"Right to object:",s4Li6:"You can object to processing of your data for direct marketing purposes.",s4Li7Label:"Right to withdraw consent:",s4Li7:"Where processing is based on consent, you can withdraw it at any time.",s4Contact:"To exercise any of these rights, please contact us at",s5Title:"5. Cookies",s5Text:"We use the following types of cookies:",s5Li1Label:"Essential cookies:",s5Li1:"Required for the website to function properly.",s5Li2Label:"Analytics cookies:",s5Li2:"Help us understand how visitors interact with our website.",s5Li3Label:"Marketing cookies:",s5Li3:"Used to deliver relevant advertisements (only with your consent).",s5Manage:"You can manage your cookie preferences through your browser settings or our cookie consent banner.",s6Title:"6. Data retention",s6Text:"We retain your personal data only for as long as necessary to fulfill the purposes for which it was collected, or as required by law. Contact form submissions are retained for up to 3 years, and marketing consent records are kept for the duration of your subscription plus 1 year.",s7Title:"7. Data security",s7Text:"We implement appropriate technical and organizational measures to protect your personal data against unauthorized access, alteration, disclosure, or destruction. This includes encryption, access controls, and regular security assessments.",s8Title:"8. Third-party sharing",s8Text:"We do not sell your personal data. We may share your information with trusted third-party service providers who assist us in operating our website and services, subject to confidentiality agreements. These include hosting providers (OVHcloud, Lovable) and analytics services.",s9Title:"9. International transfers",s9Text:"Your data may be transferred to and processed in countries outside the European Economic Area (EEA). When this occurs, we ensure appropriate safeguards are in place, such as Standard Contractual Clauses approved by the European Commission.",s10Title:"10. Contact us",s10Text:"If you have questions about this Privacy Statement or wish to exercise your rights, please contact us:",s10Company:"Deployments Factory (dFakto)",s10Role:"Data Protection Contact",s10Address1:"Rue Saint Hubert 17",s10Address2:"1150 Woluwé-Saint-Pierre, Belgium",s10Complaint:"You also have the right to lodge a complaint with a supervisory authority. In Belgium, this is the",s10Authority:"Data Protection Authority (Autorité de protection des données)",lastUpdated:"Last updated: January 2025"},a5={title:"Legal notice",subtitle:"Legal information and terms",companyInfoTitle:"Company information",companyName:"Company name:",companyNameValue:"Deployments Factory (trading as dFakto)",registeredOffice:"Registered office:",registeredOfficeValue:"Rue Saint Hubert 17, 1150 Woluwé-Saint-Pierre, Belgium",vatNumber:"VAT number:",vatNumberValue:"BE 0479.167.371",email:"Email:",phone:"Phone:",pubDirectorTitle:"Publication director",pubDirectorText:"The publication director of this website is",pubDirectorName:"Thibaut De Vylder",hostingTitle:"Hosting",primaryHosting:"Primary hosting:",appHosting:"Application hosting:",ipTitle:"Intellectual property",ipText:"All content on this website, including but not limited to text, graphics, logos, images, audio clips, digital downloads, and software, is the property of Deployments Factory (dFakto) or its content suppliers and is protected by international copyright laws. The compilation of all content on this site is the exclusive property of Deployments Factory.",tmTitle:"Trademarks",tmText:"beVault, proPilot, and dFakto are registered trademarks of Deployments Factory. All other trademarks mentioned on this website are the property of their respective owners.",liabilityTitle:"Limitation of liability",liabilityText:"While Deployments Factory strives to ensure the accuracy and completeness of the information on this website, we make no representations or warranties of any kind, express or implied, about the completeness, accuracy, reliability, suitability, or availability of the website or the information, products, services, or related graphics contained on the website for any purpose.",linksTitle:"External links",linksText:"This website may contain links to external websites that are not operated by Deployments Factory. We have no control over the content and nature of these sites and are not responsible for their content or privacy policies.",lawTitle:"Ap
406plicable law",lawText:"This legal notice is governed by Belgian law. Any disputes arising from the use of this website shall be subject to the exclusive jurisdiction of the courts of Brussels, Belgium.",contactTitle:"Contact",contactText:"For any questions regarding this legal notice, please contact us at"},r5={title:"Contact us",subtitle:"Get in touch with our team to discuss your Data, Strategy or ERP projects.",getInTouch:"Get in touch",ourOffices:"Our offices",brusselsOffice:"Brussels",parisOffice:"Paris",email:"Email"},o5={badge:"Partner application",title:"Join the dFakto ecosystem",subtitle:"Apply to become a partner and unlock new revenue streams with our products"},s5={backToBlog:"Back to Blog",category:"AI Strategy",title:"2026: Preparing Your IT for the AI Era with beVault (Avoiding Admin Complexity)",date:"February 19, 2026",subtitle:"Why your current IT will become a bottleneck—and how to get ahead of it.",h2_intro:"2026: Why Your Current IT Is About to Become a Bottleneck (And How to Prepare)",p_intro1:"The reality is brutal but necessary: the way we've built our IT systems over the past 15 years is becoming obsolete. Not because your software is bad, but because the way we'll use it is changing radically with the arrival of AI.",p_intro2:"Here is our analysis of what awaits SMEs and mid-market companies by 2026, and how to transform your current silos into orchestrated fluidity.",h2_1:"1. The Modernization Trap: The Software Archipelago",p1_1:`For the past fifteen years, companies have adopted a "best tool for each task" strategy to modernize. One software for accounting, a SaaS for marketing, a CRM for sales, an ERP for production… Without intending to, we've created a "tech stack fragmentation"—a technological layer cake.`,p1_2:`An average company today ends up with dozens of different tools. The problem? These tools are silos. They don't naturally communicate with each other. The human consequence: your teams spend their days acting as "glue." They copy information from one tab, paste it into another, export an Excel file, rework it, and re-import it elsewhere. This is what we call administrative complexity, and it costs a fortune.`,h2_2:"2. The Great Misunderstanding of the Graphical Interface",p2_1:"This is the core problem for the years ahead. For 40 years, we've designed software for humans. We created buttons, dropdown menus, colorful dashboards. It was necessary so that we could use the machine.",p2_2:`But today, you want to bring Artificial Intelligence (AI) into your business. For an AI, your beautiful graphical interfaces are obstacles—"pixel walls." AI works at the speed of light with raw text and code. If you force it to "look" at a screen, to guess where to click, or to understand that a red button means "Urgent," you slow it down considerably. It's like asking a computer to read a book by turning pages with a robotic arm, when it could download the text file in a millisecond.`,p2_3:'The interface, which was an aid for humans, becomes a tax for AI—the "Interface Tax."',h2_3:"3. 2026: The Era of Delegation",p3_1:`Until the end of 2025, we were in the "Copilot" era: you chat with the AI, ask it a question, it answers. Useful, but still manual. The year 2026 will mark the shift to delegation. We won't want to discuss with the AI anymore—we'll want to entrust it with entire missions: "Check inventory, order missing parts, and notify customers about the delay."`,p3_2:"For this delegation to succeed, the AI must stop simulating a human clicking. It needs to plug directly into the brain of your business.",h2_bevault:"The Answer: Remove the Middleman with beVault",p_bevault_intro:`This is where a solution like beVault comes in. Its role is not to add yet another software layer, but to create "underground highways" between your data and the AI, completely bypassing graphical interfaces. Here's how it works in three key steps to make your SME future-compatible:`,h3_step1:"Step 1: Get Under the Hood (Direct Connection)",p_step1:`Instead of trying to connect to the screen of your ERP or CRM, beVault plugs directly "at the source"—into the raw databases or APIs (the technical connectors). It extracts the raw facts (orders, invoices, hours worked) before they're formatted for a computer screen. You get the pure raw material.`,h3_step2:"Step 2: The Universal Translator (The Semantic Layer)",p_step2_1:`This is the most critical step. If you pull data from 10 different software systems, you get a Tower of Babel. In software A, a customer is called "Client_ID." In software B, it's "KUNNR." In the sales rep's Excel file, it's "Company Name." For an AI, that's chaos—it can't guess these are the same thing.`,p_step2_2:'beVault acts as an intelligent, centralized dictionary (based on the Data Vault 2.0 methodology). It defines once and for all that "Client_ID," "KUNNR," and "Company Name" correspond to the same unique business concept. The result: the AI no longer needs to guess. The data structure itself carries the meaning.',h3_step3:"Step 3: Speak the Machine's Language",p_step3:"Once the data is collected and translated, beVault makes it available in a format that machines love (structured APIs and MCP protocols for language models like GPT or Claude). The AI agent no longer needs to navigate. It asks beVault a precise technical question and receives an instant, reliable answer.",h3_proofpoint:"Want to see a concrete result?",p_proofpoint1:"Theory is good. Practice is better.",p_proofpoint2:"Discover how we applied these AI and data structuring principles to help <strong>
406PCMA</strong> transform their hybrid events.",p_proofpoint_cta:'👉 <a href="https://www.bevault.io/5-conference-attendance-increase-hybrid-solutions/" target="_blank" rel="noopener noreferrer"><strong>Read the case study: +5% attendance increase with hybrid solutions</strong></a>',h2_conclusion:'Conclusion: Stop Paying the "Interface Tax"',p_conclusion1:"The economic calculus is simple. Without this approach: you pay humans to translate machine data into visual screens. Then you pay AI tools to try to re-understand those visual screens. It's a double waste of time and money.",p_conclusion2:"With beVault: you automate the translation once—from raw data to a universal language for your machines.",p_conclusion3:'Your business moves from a "messy library where you search for books by hand" to an "instant digital knowledge base." That is the only condition for AI to become a true growth engine for your SME—and not just a conversational gadget.'},i5={tag:"Upcoming Webinar",title:"Odoo Analytics Stack Webinar",date:"Thursday, May 28 at 4:00 PM (CET)",language:"Live webinar hosted in French",cta:"Register Now"},l5={title:"Webinar Replay: The Ultimate Analytics Stack for Odoo",metaDesc:"Watch the replay: Loïc Gamain (dFakto) and Julien Masson (Osolutions) present the ideal architecture to solve complex data challenges in the Odoo ecosystem.",category:"Replay",backToBlog:"Back to Blog",heroSubtitle:"In this session, Loïc Gamain (dFakto) and Julien Masson (Osolutions) present the ideal architecture to solve complex data challenges in the Odoo ecosystem. Watch the full demonstration below.",problemTitle:"Odoo is not a Data Warehouse (nor a BI tool)",problemIntro:"Odoo is an exceptional ERP for managing daily operations. However, when your clients' projects grow in scale, three major limitations appear:",problem1:"<strong>Performance:</strong> Heavy queries on years of historical data degrade the user experience in production.",problem2:"<strong>Data Silos:</strong> The lack of a unified experience when crossing Odoo information with external software (CRM, legacy systems, Excel files).",problem3:"<strong>The Financial Trap:</strong> To compensate for these shortcomings, costs skyrocket due to external BI licenses (like Power BI) that force users to leave their ERP.",solution1Title:"Back-end Architecture: Preparing Data with beVault",solution1Text:`The solution to protect Odoo's performance is not optimizing code. You need to change the architecture and create an independent data layer. Here comes beVault, our sovereign (100% Belgian) "All-in-One" Data platform. Behind the scenes, beVault connects to your sources and extracts raw data with zero impact on production. Your business rules are applied automatically. Data is cleaned, historized safely, and distributed ready-to-use.`,solution2Title:"Front-end Interface: Native BI with O'Dashboard",solution2Text:`Perfect data is useless if not displayed where your users work. Thanks to our alliance with Osolutions, the data prepared by beVault is directly leveraged by <a href="https://odashboard.eu/" target="_blank" rel="noopener noreferrer">O'Dashboard</a>. The result: complex multi-source dashboards displayed natively inside Odoo menus. A seamless user experience, with no dispersed tools and zero external BI license costs.`,ctaTitle:"Have a complex Odoo data project in mind? We have the solution.",ctaText:"",ctaButton:"Talk to our team"},c5={badge:"LIMITED EDITION",heroTitle:"dFakto has its own beer.",heroSubtitle:"An exclusive recipe, co-created with Brasserie Witloof in Brussels.",heroDesc:"Because the best decisions are sometimes made over a beer. dFakto teamed up with Brasserie Witloof, a Brussels craft brewery, to create an exclusive recipe — brewed in small batches, with as much care as our algorithms.",photoPlaceholder:"dFakto beer photo — coming soon",partnerLabel:"— OUR PARTNER —",partnerTitle:"Witloof, a Brussels craft brewery",partnerText:"Brasserie Witloof is an independent craft brewery based in Brussels. Passionate about quality beers and creative collaborations, it shares dFakto's values: high standards, attention to detail and local roots.",partnerLink:"Discover Brasserie Witloof →",re
406cipeLabel:"— AN EXCLUSIVE RECIPE —",recipeTitle:"Co-created. Unique. Artisanal.",recipeSubtitle:"This beer exists nowhere else. The recipe was developed in close collaboration between the dFakto teams and the Witloof brewers — a unique blend, brewed as a limited edition.",card1Title:"Exclusive recipe",card1Text:"Developed specially for dFakto, impossible to find anywhere else.",card2Title:"100% Brussels",card2Text:"Brewed in Brussels by passionate craftspeople.",card3Title:"Limited edition",card3Text:"Produced in small batches to keep its artisanal character.",orderLabel:"— INTERESTED? —",orderTitle:"Order our beers",orderSubtitle:"Would you like to receive our dFakto beers for an event, a client or simply for your team? Contact us.",metaTitle:"The dFakto x Witloof beer | Limited edition",metaDesc:"An exclusive craft beer co-created by dFakto and Brasserie Witloof in Brussels. Limited edition."},d5={metaTitle:"dFakto transfers its Odoo activities to Niboo and accelerates on data",metaDesc:"dFakto entrusts its Odoo activities to Niboo and refocuses on enterprise data management with beVault, proPilot and beVault for Odoo.",category:"Press release",backToBlog:"Back to Blog",date:"Paris/Brussels, 11 September 2026",title:"dFakto transfers its Odoo activities to Niboo and accelerates on data with beVault and proPilot",subtitle:"Effective since 1 May 2026, this strategic decision marks dFakto's refocus on its historical core business: enterprise data management.",intro:"<strong>Paris/Brussels, 11 September 2026</strong> – dFakto, a pioneer in data management solutions since 2000, announces the transfer of all its Odoo activities to Niboo, its long-standing partner. This transition, effective since 1 May 2026, allows dFakto to focus 100% of its energy and resources on what has been its DNA for more than 25 years: mastering enterprise data through its products beVault and proPilot.",h2_1:"A deliberate strategic choice",p1_1:"Founded in 2000 with a presence in Paris and Brussels, dFakto has established itself as a technology leader in the data field. As the publisher of beVault, the first Data Vault 2.0 certified solution, and of proPilot, the company supports organisations in transforming their data architectures to improve their Business Intelligence and Artificial Intelligence capabilities.",quote1:"After 26 years of existence, we have decided to refocus on what truly sets us apart: data. Modern data management requires sharp expertise, constant innovation and total focus. That is 
406what beVault and proPilot deserve, and that is what we are going to give them.",quote1Author:"Thibaut De Vylder, CEO of dFakto",p1_2:"This transfer is not a withdrawal, but a deliberate choice of specialisation. dFakto is handing over a thriving business to a trusted partner in order to accelerate further in its field of excellence.",h2_2:"An 11-year partnership evolving naturally",p2_1:"Niboo and dFakto have been working together for 11 years in the Odoo ecosystem. Niboo was already dFakto's main partner in this area, handling a large share of the implementations and associated services. This takeover formalises a long-standing operational reality and is part of a mutual commitment over the next 5 years.",quote2:"Entrusting this business to Niboo is the logical next step after a decade of collaboration. We built this trust together, and we know our clients will be in the best possible hands.",quote2Author:"Loic Gamain, Managing Director of dFakto",p2_2:"The dFakto teams dedicated to Odoo are joining Niboo, guaranteeing perfect continuity for clients. Contracts are taken over unchanged, and dFakto continues to provide infrastructure and hosting, ensuring a smooth transition with no service interruption.",h2_3:"Complete continuity for clients",p3_1:"dFakto's current clients within the Odoo scope will experience no disruption. The same teams continue to support them, now within Niboo, a long-standing Odoo Gold Partner.",quote3:"Our clients lose nothing — quite the opposite. They now benefit from two highly specialised partners: Niboo for Odoo, dFakto for data. It is the best of both worlds.",quote3Author:"Thibaut De Vylder, CEO and founder of dFakto",h2_4:"beVault for Odoo: the strategic alliance continues",p4_1:"The transfer of the Odoo activities in no way means that dFakto is withdrawing from this ecosystem. On the contrary, the company is strengthening its presence through beVault for Odoo, a data integration and management solution designed specifically for Odoo users.",p4_2:"beVault for Odoo enables companies using the Odoo ERP to structure, historise and leverage their data with the power of Data Vault 2.0, guaranteeing scalability, traceability and compliance. This solution illustrates the perfect complementarity between Niboo, the ERP expert, and dFakto, the data specialist.",quote4:"Our link with the Odoo ecosystem remains strong and strategic. beVault for Odoo is a bridge between our two areas of expertise, and this technical alliance will deepen in the years to come.",quote4Author:"Loïc Gamain",p4_3:'To discover beVault for Odoo in detail, dFakto held a dedicated webinar on 28 May 2026. Watch the replay here: <a href="https://www.youtube.com/watch?v=UTnvdG_hR-w" target="_blank" rel="noopener noreferrer">Webinar: Structured data &amp; native dashboards in Odoo: the missing analytics stack</a>.',h2_5:"Vision and outlook",p5_1:"Freed from managing an ERP business, dFakto will accelerate the development of beVault and proPilot. The company plans several major announcements in the coming months regarding new features, advanced integrations and innovative use cases in Artificial Intelligence and Business Intelligence.",quote5:"Data is at the heart of every digital transformation today. We have a clear vision, differentiating products and now 100% of our focus. The coming years are going to be exciting.",quote5Author:"Thibaut De Vylder",h2_about1:"About dFakto",about1:"Founded in 2000, dFakto is a software publisher specialising in enterprise data management. Based in Paris and Brussels, the company develops beVault and proPilot, tools that revolutionise the way organisations collect, secure and leverage their data to improve their Business Intelligence and Artificial Intelligence capabilities. dFakto supports companies of all sizes in building robust, scalable data architectures compliant with international standards.",contact1:'<strong>dFakto press contact:</strong><br />Loïc Gamain, Managing Director<br /><a href="mailto:[email protected]">[email protected]</a><br />+33.1.87.43.00.35<br /><a href="https://www.dfakto.com" target="_blank" rel="noopener noreferrer">www.dfakto.com</a>',h2_about2:"About Niboo",about2_1:"Niboo is a Belgian Odoo integrator founded in 2014 and an Odoo Gold Partner. Based in Brussels and present in France and the French Overseas Territories, the company has 37 employees and covers the entire life cycle of an Odoo project: functional analysis, implementation, development, data migration, training, hosting and support.",about2_2:"Its method consists in implementing Odoo as close to the standard as possible and developing only what brings business value specific to the client. This discipline guarantees solutions that remain aligned with the publisher's successive versions and predictable maintenance costs.",contact2:'<strong>Niboo press contact:</strong><br />Ismail Belayachi, Marketing Manager<br /><a href="mailto:[email protected]">[email protected]</a><br />+32 479 07 62 30<br /><a href="https://www.niboo.com" target="_blank" rel="noopener noreferrer">www.niboo.com</a>',pressTitle:"In the press",pressDesc:"Read the article about the Niboo x dFakto operation, published in Trends-Tend
406ances.",pressButton:"Read the article (PDF)",pressButtonOnline:"Read the article online",shareLinkedin:"Share on LinkedIn",shareCopy:"Copy link",shareCopied:"Link copied",ctaTitle:"An Odoo project, a data project, or both? Let's talk.",ctaButton:"Talk to our experts"},u5={notFound:"Oops! Page not found",returnHome:"Return to home"},p5={title:"Book a demo",subtitle:"Schedule a personalized demo with our team to see how dFakto can transform your data strategy",cta:"Book a meeting"},m5={backToResources:"Back to Resources",title:"dFakto achieves ISO/IEC 27001 certification, strengthening its commitment to information security",intro:"We're proud to announce that dFakto (Deployments Factory) is now ISO/IEC 27001 certified, marking a major milestone in our ongoing commitment to protecting information and earning the trust of our customers and partners.",p1:"This achievement reflects the work we've done to build security into how we operate. First, across our people, processes, and technology. And continuously, to manage information security risks in a structured and transparent way.",p2:"This milestone was achieved in close partnership with Probo, whose platform and team guided us through the ISO 27001 journey and helped make the process significantly smoother from start to finish.",h2_1:"What this means for our customers",p3:"ISO/IEC 27001 certification provides independent validation that dFakto has implemented and operates a robust Information Security Management System (ISMS) aligned with international best practices.",p4:"For our customers, this means:",list1:["Increased confidence in how we protect sensitive and confidential information","A risk-based approach to identifying and managing information security threats","Easier vendor security assessments and procurement reviews","Alignment with enterprise, regulatory, and contractual security expectations","Assurance that security is embedded into our daily operations"],p5:"ISO/IEC 27001 is not a one-time effort. It represents a continuous commitment to maintaining, monitoring, and improving our information security practices over time.",h2_2:"What is ISO/IEC 27001, exactly?",p6:"ISO/IEC 27001 is the leading international standard for information security management, published by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC).",p7:"The standard defines requirements for establishing, implementing, maintaining, and continually improving an Information Security Management System (ISMS). This system is designed to help organizations systematically manage information security risks, taking into account:",list2:["People and organizational processes","Technology and infrastructure","Legal, regulatory, and contractual obligations"],p8:"As part of the certification process, an independent, accredited certification body audited our ISMS and verified that it meets the requirements of ISO/IEC 27001 within the defined scope of certification.",h2_3:"A structured, ongoing approach to security",p9:"Achieving ISO/IEC 27001 certification required us to formalize and strengthen how we approach information security, including:",list3:["Identifying and assessing information security risks","Defining and implementing appropriate security controls","Establishing clear governance, policies, and responsibilities","Continuously monitoring, reviewing, and improving our security posture"],certificate:'You can access our ISO 27001 Certificate <a href="https://dfakto.eu.probopages.com/en" target="_blank" rel="noopener noreferrer">here</a>.'},h5={nav:hP,hero:fP,stats:gP,products:vP,industries:bP,cta:xP,trustedBy:yP,offices:wP,maturity:kP,bevaultPage:jP,propilotPage:TP,odooPage:NP,solutionPage:DP,agenticAi:CP,menu:SP,partnerProgram:PP,partnerEcosystem:EP,consulting:IP,resources:AP,glossary:RP,successStories:_P,caseCrelanAxa:OP,caseConsolidating:LP,caseSteering:zP,caseCrisisHospital:MP,caseRiskFactoring:FP,footer:qP,caseBrussHelp:BP,caseFasterReporting:VP,caseUnifiedReporting:$P,blogHub:HP,blogMechanicsDataVault:WP,blogIntroducingDDM:UP,blogDDMFramework:KP,blogDDMPerformance:GP,blogDatafaktoryBusiness:QP,blogWhyDWHTakeForever:YP,blogScalefreePartnership:ZP,blogPcmaAI:XP,blogCeo25Years:JP,blogOdooVsDW:e5,blogOdooPerf:t5,privacy:n5,legal:a5,contactPage:r5,partnerApply:o5,blogAIReadiness:s5,webinar:i5,blogWebinarOdooAnalytics:l5,drink:c5,pressNibooOdoo:d5,system:u5,bookDemo:p5,blogIso27001:m5},f5={products:"Produits",solutions:"Solutions",partners:"Partenaires",resources:"Ressources",consulting:"À propos",contactUs:"Contactez-nous",agenticAi:"IA Agentique",byUseCase:"Par cas d'usage",byIndustry:"Par industrie"},g5={badge:"Partenaire certifié Data Vault 2.0",titleStart:"Du chaos des données à la",titleHighlight:"clarté métier.",subtitle:"La plateforme analytique conçue pour l'impact. Automatisez vos fondations avec beVault et pilotez votre organisation avec proPilot.",ctaPrimary:"Analysez vos données",ctaSecondary:"Contactez-nous"},v5={consultants:"Consultants experts",years:"Années d'expertise",customers:"Clients entreprise",certifiedValue:"Certifié",certified:"Data Vault 2.0"},b5={sectionTitle:"Produits destinés aux entreprises",sectionSubtitle:"Des solutions dédiées à l'automatisation des données et au pilotage stratég
406ique",bevault:{subtitle:"Automatisation d'entrepôt de données",description:"Automatisez l'intégralité de votre entrepôt de données avec la méthodologie certifiée Data Vault 2.0. De la donnée brute aux indicateurs métier en quelques heures, pas en mois.",feature1:"Data Vault 2.0 automatisé",feature2:"Traçabilité complète des données",feature3:"Prêt pour le CI/CD"},propilot:{subtitle:"Pilotage de l'exécution stratégique",description:"Transformez la stratégie en action. Connectez vos OKR, KPI et initiatives à travers votre organisation avec une visibilité et une responsabilité totales.",feature1:"Alignement des OKR",feature2:"Tableaux de bord en temps réel",feature3:"Suivi des initiatives"},odoo:{subtitle:"Odoo + Data Analytics",description:"Connectez Odoo à votre data warehouse. Transformez vos données ERP en indicateurs stratégiques fiables.",feature1:"Connexion Odoo ↔ Data Warehouse",feature2:"Reporting avancé sur vos données ERP",feature3:"Données prêtes pour l'IA"},learnMore:"En savoir plus",midCta:"Pilotez votre stratégie"},x5={sectionTitle:"Solutions sectorielles",sectionSubtitle:"Une expertise approfondie dans les secteurs réglementés où l'intégrité des données est essentielle",finance:{title:"Finance",description:"Conformité BCBS 239, gestion des risques et reporting prêt pour l'audit"},publicSector:{title:"Secteur public",description:"Conformité RGPD, migration des systèmes existants et reporting public transparent"},industry:{title:"Industrie",description:"Industrie 4.0, intégration de données IoT et optimisation de la chaîne d'approvisionnement"},exploreSolutions:"Explorer les solutions"},y5={title:"Prêt à transformer votre stratégie data ?",subtitle:"Rejoignez plus de 50 entreprises ayant atteint la clarté data avec dFakto.",primary:"Réserver un workshop",secondary:"Contactez-nous"},w5="Ils nous font confiance",k5={title:"Nos bureaux"},j5={title:"Évaluation de maturité",subtitle:"Test rapide : où en est votre organisation ?",restart:"Recommencer",aheadOfCurve:"Vous êtes en avance",roomForImprovement:"Des progrès sont possibles",bevault:{question:"Temps pour connecter une nouvelle source de données ?",opt1:"2 heures",opt2:"1 semaine",opt3:"1 mois+",leaderText:"Votre infrastru
406cture data est agile. Découvrez comment passer à l'échelle.",leaderCta:"Passer à l'échelle",bottleneckText:"Une intégration de données lente freine l'agilité de votre entreprise.",bottleneckCta:"Résoudre avec beVault"},propilot:{question:"Comment suivez-vous vos KPI stratégiques ?",opt1:"Excel/PPT",opt2:"Outil BI",opt3:"Plateforme dédiée",leaderText:"Vous disposez d'une base solide pour l'alignement stratégique.",leaderCta:"Optimiser davantage",bottleneckText:"Le suivi manuel crée des silos et retarde les décisions stratégiques.",bottleneckCta:"Découvrir proPilot"},odoo:{question:"Statut actuel de votre ERP ?",opt1:"Système existant",opt2:"Processus manuels",opt3:"ERP Cloud",leaderText:"Vos opérations sont modernisées. Allons plus loin.",leaderCta:"Explorer les intégrations",bottleneckText:"Les systèmes existants et les processus manuels ralentissent votre entreprise.",bottleneckCta:"Moderniser avec Odoo"}},T5={badge:"Data Vault 2.0 certifié",title:"beVault : automatisation des",titleHighlight:"produits data",subtitle:"Transformez votre infrastru
406cture de données grâce à la génération automatisée de Data Vault 2.0. Passez de sources chaotiques à une base analytique de niveau entreprise en quelques jours seulement, et non en plusieurs mois.",ctaPrimary:"Réserver une démo",ctaSecondary:"Voir les études de cas",benefitTime:"du temps de développement réduit",benefitLineage:"de couverture de la traçabilité des données",benefitErrors:"Erreurs de codage manuel",benefitMonitoring:"Surveillance automatisée",featuresTitle:"Automatisation de niveau entreprise",featuresSubtitle:"beVault gère la complexité pour que votre équipe se concentre sur la création de valeur métier",featureAutoTitle:"Data Vault 2.0 automatisé",featureAutoDesc:"Générez Hubs, Links et Satellites avec une approche métier. La méthodologie certifiée garantit les meilleures pratiques.",featureLineageTitle:"Traçabilité complète des données",featureLineageDesc:"Suivez chaque élément de données de la source au rapport. Piste d'audit complète pour la conformité réglementaire et le débogage.",featureRapidTitle:"Déploiement rapide",featureRapidDesc:"Passez de données brutes à un entrepôt prêt pour l'analyse en quelques jours. Les modèles préconstruits accélèrent la livraison.",featureAuditTitle:"100 % d'auditabilité",featureAuditDesc:"Chaque modification est versionnée et traçable. Répondez aux exigences réglementaires les plus strictes en toute confiance.",featureOnPremTitle:"On-Premise & Cloud",featureOnPremDesc:"Déployez où vous voulez. Nous supportons les installations On-Premise pour une sécurité maximale, ou les environnements Cloud privés.",featureIncrTitle:"Chargement incrémental",featureIncrDesc:"Le traitement delta efficace minimise l'utilisation des ressources et garantit une fraîcheur des données en quasi temps réel.",platformsTitle:"Déployez partout",platformsSubtitle:"Support natif pour toutes les grandes plateformes de données",howTitle:"Comment fonctionne beVault",step1Title:"Modélisez votre métier",step1Desc:"Créez un modèle de données qui représente fidèlement vos processus métier. Gardez l'humain dans la boucle pour une approche business-first.",step2Title:"Connectez vos sources",step2Desc:"Mappez vos données sources sur votre modèle métier sans biais technique. Contrôles de qualité des données intégrés à l'ingestion.",step3Title:"Générez & déployez",step3Desc:"DDL, ETL et documentation générés instantanément",step4Title:"Surveillez & itérez",step4Desc:"Surveillance intégrée et évolution facile du modèle",deepDiveTitle:"Vous cherchez des approfondissements techniques ?",deepDiveDesc:"Visitez notre site produit dédié pour la documentation, les tutoriels et plus encore.",deepDiveCta:"Aller sur le site beVault",ctaBottomTitle:"Prêt à automatiser votre entrepôt de données ?",ctaBottomSubtitle:"Découvrez comment beVault peut transformer votre infrastru
406cture de données lors d'une démo personnalisée.",ctaBottomPrimary:"Réserver une démo",ctaBottomSecondary:"Accéder au e-Learning"},N5={badge:"Plateforme de pilotage stratégique",title:"proPilot : Transformez la stratégie en",titleHighlight:"action",subtitle:"Reliez les objectifs, les initiatives et les indicateurs clés de performance (KPI) à l'échelle de votre organisation. Offrez aux dirigeants la visibilité dont ils ont besoin pour orienter leur stratégie en toute confiance.",ctaPrimary:"Réserver une démo",ctaSecondary:"Voir la documentation",benefitGoal:"d'amélioration de l'atteinte des objectifs",benefitAlignment:"d'alignement stratégique plus rapide",benefitVisibility:"de visibilité sur toutes les équipes",benefitTruth:"Source unique de vérité",featuresTitle:"Exécution complète de la stratégie",featuresSubtitle:"Tout ce qu'il faut pour traduire la stratégie en résultats mesurables",featureOkrTitle:"Gestion des OKRs",featureOkrDesc:"Définissez, déclinez et suivez les objectifs & résultats clés à travers toute votre organisation avec une visibilité totale sur l'alignement.",featureDashTitle:"Tableaux de bord en temps réel",featureDashDesc:"Des tableaux de bord connectés à vos sources de données pour des analyses stratégiques toujours à jour.",featureInitTitle:"Suivi des initiatives",featureInitDesc:"Reliez les initiatives stratégiques aux objectifs. Suivez l'avancement, les ressources et les dépendances en un seul endroit.",featureTeamTitle:"Alignement des équipes",featureTeamDesc:"Assurez-vous que chaque équipe comprend comment son travail contribue aux objectifs de l'organisation grâce à la déclinaison en cascade.",featureNotifTitle:"Notifications intelligentes",featureNotifDesc:"Alertes automatiques lorsque les indicateurs dérivent ou que les échéances approchent. Ne manquez jamais un jalon stratégique.",featureReportTitle:"Reporting exécutif",featureReportDesc:"Rapports pour le conseil d'administration et mises à jour parties prenantes en un clic, avec des présentations visuelles basées sur les données.",useCasesTitle:"Conçu pour tous les responsables",forExecutives:"Pour les dirigeants",execItem1:"Reporting prêt pour le conseil",execItem2:"Visibilité à l'échelle de l'organisation",execItem3:"Surveillance des risques stratégiques",forStrategy:"Pour les équipes stratégie",stratItem1:"Gestion de la cascade OKR",stratItem2:"Suivi du portefeuille d'initiatives",stratItem3:"Alignement transversal",forTeamLeads:"Pour les responsables d'équipe",teamItem1:"Alignement clair sur les objectifs",teamItem2:"Suivi de l'avancement",teamItem3:"Visibilité sur les ressources",deepDiveTitle:"Vous cherchez des approfondissements techniques ?",deepDiveDesc:"Visitez notre site produit dédié pour la documentation, les tutoriels et plus encore.",deepDiveCta:"Aller sur le site proPilot",ctaBottomTitle:"Prêt à piloter votre stratégie en toute confiance ?",ctaBottomSubtitle:"Découvrez comment proPilot peut aligner votre organisation autour de ce qui compte le plus.",ctaBottomPrimary:"Réserver une démo"},D5={metaTitle:"Odoo + Data Analytics | Transformez vos données Odoo | dFakto",metaDescription:"Connectez Odoo à votre data warehouse. Reporting avancé, KPIs unifiés et données prêtes pour l'IA avec beVault et proPilot.",badge:"Odoo + Data Analytics",heroTitle:"Transformez vos données Odoo en avantage concurrentiel",heroSubtitle:"Odoo structure vos opérations. dFakto connecte vos données Odoo à votre écosystème data pour un reporting avancé et une IA opérationnelle.",heroCta:"Discutons de votre projet →",challengesTitle:"Les défis auxquels vous faites face",challengesSubtitle:"Les limites courantes des entreprises qui utilisent Odoo sans stratégie data",challenge1Title:"Reporting limité",challenge1Desc:"Les dashboards natifs Odoo ne suffisent plus dès que vous croisez plusieurs sources de données.",challenge2Title:"Données silotées",challenge2Desc:"Vos données Odoo restent isolées de vos autres systèmes : CRM, finance, logistique...",challenge3Title:"IA et analytics bloqués",challenge3Desc:"Sans data warehouse structuré, vos données Odoo ne sont pas exploitables pour l'analyse avancée ou l'IA.",approachTitle:"L'approche dFakto",foundationLabel:"La Fondation",foundationDesc:"Connectez Odoo à votre data warehouse. Garantissez une traçabilité complète de vos données ERP.",bevault1:"Extraction automatisée des données Odoo",bevault2:"Intégration avec toutes vos autres sources",bevault3:"Données structurées en Data Vault 2.0 — auditables",strategyLabel:"La Stratég
406ie",strategyDesc:"Pilotez vos opérations avec des indicateurs unifiés issus de toutes vos sources.",propilot1:"Tableaux de bord cross-systèmes en temps réel",propilot2:"KPIs métier calculés sur la totalité de vos données",propilot3:"Données prêtes pour vos modèles d'IA",testimonialLabel:"TÉMOIGNAGE CLIENT",caseCompany:"Entreprise industrielle",caseResult:"Reporting unifié en 3 semaines",caseQuote:"Nous avions Odoo depuis 5 ans sans jamais vraiment exploiter nos données. beVault a tout changé.",ctaBottomTitle:"Prêt à tirer plus de valeur de vos données Odoo ?",ctaBottomPrimary:"Discutons de votre projet →",ctaBottomSecondary:"Voir nos cas clients →"},C5={bookDemo:"Réserver un rendez-vous",challengesTitle:"Les défis auxquels vous faites face",challengesSubtitle:"Les points de friction courants en {{solution}} qui freinent les organisations",approachTitle:"L'approche dFakto",foundationLabel:"La Fondation",foundationDesc:"Automatisez votre intégration de données. Garantissez une auditabilité et une traçabilité à 100 % pour les régulateurs.",strategyLabel:"La Stratégie",strategyDesc:"Alignez votre portefeuille sur les échéances réglementaires et les objectifs stratégiques.",successStory:"Témoignage client",ctaTitle:"Prêt à relever vos défis de {{solution}} ?",ctaSubtitle:"Réservez une démo personnalisée et découvrez comment nous pouvons vous aider.",notFound:"Solution introuvable",returnHome:"Retour à l'accueil",digitalTransformation:{title:"Transformation digitale",subtitle:"Modernisez votre infrastru
406cture de données",heroDesc:"Accélérez votre parcours de transformation digitale grâce à des fondations data automatisées et des cadres d'exécution stratégique.",challenge1Title:"Complexité des systèmes existants",challenge1Desc:"Des données cloisonnées dans des dizaines de systèmes créant des angles morts",challenge2Title:"Processus de données manuels",challenge2Desc:"Des scripts ETL sujets aux erreurs consommant un temps d'ingénierie précieux",challenge3Title:"Absence de source unique de vérité",challenge3Desc:"Des rapports contradictoires sapant la prise de décision des dirigeants",bevault1:"Migration automatisée des systèmes existants vers un Data Vault moderne",bevault2:"Modèle de données unifié sur toutes les sources avec traçabilité complète",bevault3:"Architecture auto-documentée pour le transfert de connaissances",propilot1:"Feuille de route de transformation avec jalons et KPIs clairs",propilot2:"Alignement transversal sur les initiatives digitales",propilot3:"Suivi de l'avancement en temps réel pour la visibilité des dirigeants",caseCompany:"Retailer européen",caseResult:"Temps d'intégration des données réduit de 75 %",caseQuote:"dFakto nous a aidés à moderniser 15 ans de données historiques en 6 mois."},regulatoryCompliance:{title:"Conformité réglementaire",subtitle:"Gouvernance des données prête pour l'audit",heroDesc:"Répondez aux exigences réglementaires les plus strictes grâce à la traçabilité automatisée des données, une auditabilité complète et une architecture conçue pour la conformité.",challenge1Title:"Lacunes dans la piste d'audit",challenge1Desc:"Une traçabilité incomplète des données rendant les audits coûteux et risqués",challenge2Title:"Reporting de conformité manuel",challenge2Desc:"Des rapports trimestriels mobilisant des semaines de travail d'analystes",challenge3Title:"Application des politiques",challenge3Desc:"Une gouvernance des données incohérente entre les unités métier",bevault1:"Traçabilité automatisée à 100 % de la source au rapport",bevault2:"Pistes d'audit immuables avec versionnage temporel",bevault3:"Modèles de conformité préconstruits pour GDPR, BCBS 239, SOX",propilot1:"Suivi des initiatives de conformité avec alertes d'échéances",propilot2:"Avancement de la mise en œuvre des politiques par département",propilot3:"Intégration du calendrier réglementaire pour une planification proactive",caseCompany:"Assureur international",caseResult:"Taux de réussite aux audits de 100 %",caseQuote:"Nos régulateurs ont été impressionnés par la visibilité sur la traçabilité des données."},operationalExcellence:{title:"Excellence opérationnelle",subtitle:"Opérations pilotées par les données",heroDesc:"Optimisez la performance opérationnelle grâce à l'analytique en temps réel, des workflows automatisés et des outils d'alignement stratégique.",challenge1Title:"Analyses en retard",challenge1Desc:"Le traitement par lots créant une latence de 24 à 48 heures sur les données",challenge2Title:"Fragmentation des processus",challenge2Desc:"Des outils déconnectés créant des angles morts opérationnels",challenge3Title:"Reporting manuel",challenge3Desc:"Les équipes opérationnelles consacrant 40 % de leur temps aux rapports",bevault1:"Intégration de données en quasi temps réel avec support CDC",bevault2:"Data marts opérationnels pour l'analytique en libre-service",bevault3:"Calcul automatisé des KPIs et détection d'anomalies",propilot1:"Alignement des OKRs reliant les équipes aux objectifs stratégiques",propilot2:"Suivi des initiatives opérationnelles avec visibilité sur les ressources",propilot3:"Tableaux de bord de performance pour l'amélioration continue",caseCompany:"Leader industriel",caseResult:"Efficacité opérationnelle améliorée de 35 %",caseQuote:"Les données en temps réel ont transformé notre planification de production."},publicSector:{title:"Secteur public",subtitle:"Données gouvernementales transparentes",heroDesc:"Permettre la publication transparente des rapports, la conformité au RGPD et la modernisation des systèmes existants pour les organismes gouvernementaux.",challenge1Title:"Conformité GDPR",challenge1Desc:"Protection des données citoyennes à travers de multiples systèmes et agences",challenge2Title:"Migration des systèmes existants",challenge2Desc:"Des décennies de données enfermées dans des systèmes mainframe obsolètes",challenge3Title:"Reporting public transparent",challenge3Desc:"Demande croissante d'open data et d'indicateurs de responsabilité",bevault1:"Architecture de données conforme au GDPR avec suivi du consentement",bevault2:"Extraction et modernisation automatisées des systèmes existants",bevault3:"Intégration de portails open data pour la transparence publique",propilot1:"Suivi de la mise en œuvre des politiques entre agences",propilot2:"KPIs de
406s services aux citoyens avec tableaux de bord publics",propilot3:"Coordination des initiatives inter-agences",caseCompany:"Agence fédérale belge",caseResult:"20 ans de données historiques modernisées",caseQuote:"Les citoyens ont désormais accès en temps réel à la performance des services."},finance:{title:"Finance",subtitle:"Reporting réglementaire & gestion des risques",heroDesc:"Atteignez la conformité BCBS 239, automatisez le reporting réglementaire et permettez la gestion des risques en temps réel grâce à une infrastructure de données d'entreprise.",challenge1Title:"Conformité Basel III / BCBS 239",challenge1Desc:"Pression réglementaire pour une traçabilité et une agrégation complètes des données",challenge2Title:"Traçabilité des données pour l'audit",challenge2Desc:"Les régulateurs exigent une traçabilité complète de la source au rapport",challenge3Title:"Reporting des risques en temps réel",challenge3Desc:"Passage de T+1 à une visibilité intrajournalière des risques",bevault1:"Architecture de données conforme BCBS 239 prête à l'emploi",bevault2:"Génération automatisée de rapports réglementaires avec traçabilité complète",bevault3:"Intégration de données en temps réel pour les métriques de risque intrajournalières",propilot1:"Suivi des échéances réglementaires et alertes",propilot2:"Gestion de portefeuille des initiatives de conformité",propilot3:"Tableaux de bord de préparation d'audit pour la direction",caseCompany:"Banque d'investissement européenne",caseResult:"Temps de reporting réglementaire réduit de 60 %",caseQuote:"Nous sommes passés de semaines à quelques heures pour nos soumissions trimestrielles."},industry:{title:"Industrie",subtitle:"Industrie 4.0 & chaîne d'approvisionnement",heroDesc:"Propulsez vos initiatives Industrie 4.0 avec l'intégration de données IoT, l'optimisation de la chaîne d'approvisionnement et l'analytique de fabrication intelligente.",challenge1Title:"Intégration des données IoT",challenge1Desc:"Des millions de lectures de capteurs nécessitant un traitement en temps réel sur les lignes de production",challenge2Title:"Visibilité de la chaîne d'approvisionnement",challenge2Desc:"Données fragmentées entre fournisseurs, logistique et systèmes d'inventaire",challenge3Title:"Maintenance prédictive",challenge3Desc:"Analyse des tendances historiques pour la prévention des pannes d'équipements",bevault1:"Ingestion de données IoT à haut volume avec support du streaming",bevault2:"Modèle de données unifié de la chaîne d'approvisionnement entre tous les partenaires",bevault3:"Historisation des données d'actifs pour l'analytique prédictive",propilot1:"Suivi des initiatives Industrie 4.0 avec des KPIs clairs",propilot2:"Alignement des objectifs d'optimisation de la chaîne d'approvisionnement",propilot3:"Tableaux de bord d'excellence manufacturière pour la direction",caseCompany:"Leader industriel",caseResult:"Réduction des retards de la chaîne d'approvisionnement de 40 %",caseQuote:"La visibilité en temps réel a transformé notre planification de production."}},S5={badge:"Intelligence de nouvelle génération",heroTitle1:"IA Agentique pour les",heroTitle2:"données d'entreprise",heroDesc:"Franchissez la prochaine frontière de l'intelligence des données. Combinez la fiabilité des fondations de données beVault avec des agents IA autonomes qui raisonnent, agissent et apprennent.",heroCta:"Explorer les possibilités",whatTitle:"Qu'est-ce que l'IA Agentique ?",whatP1:"L'IA Agentique représente un changement de paradigme : des chatbots réactifs vers des systèmes IA proactifs, orientés objectifs, capables de planifier, exécuter et apprendre à partir de tâches complexes.",whatP2:"Contrairement à l'IA traditionnelle qui répond à des instructions, les systèmes agentiques peuvent décomposer les objectifs de manière autonome, utiliser des outils, accéder aux données et itérer jusqu'à atteindre les objectifs.",whatBullet1:"Décomposition et planification autonomes des tâches",whatBullet2:"Raisonnement multi-étapes avec orchestration d'outils",whatBullet3:"Apprentissage continu à partir de boucles de rétroaction",whatBullet4:"Sécurité et gouvernance de niveau entreprise",builtOnTitle:"Construit sur des données fiables",builtOnDesc:"L'IA Agentique n'est aussi performante que les données auxquelles elle accède. beVault fournit les fondations de données de niveau entreprise qui rendent l'IA fiable et auditable.",builtOnBullet1:"Traçabilité complète des données pour l'explicabilité de l'IA",builtOnBullet2:"Accès gouverné aux données sensibles",builtOnBullet3:"Fraîcheur des données en temps réel",useCasesTitle:"Cas d'usage entreprise",useCasesSubtitle:"Transformez le fonctionnement de votre organisation grâce à l'automatisation par l'IA",uc1Title:"Analytique conversationnelle",uc1Desc:"Posez des questions en langage naturel et obtenez des réponses instantanées de votre entrepôt de données.",uc2Title:"Intelligence documentaire",uc2Desc:"Extrayez des insights de contrats, rapports et documents non structurés à grande échelle.",uc3Title:"Automatisation des workflows",uc3Desc:"Orchestrez des processus métier complexes avec des agents IA qui apprennent et s'adaptent.",uc4Title:"Analytique prédictive",uc4Desc:"Anticipez les tendances et anomalies avant qu'elles n'impactent votre activité.",uc5Title:"Gestion des connaissances",uc5Desc:"Construisez des graphes de connaissances d'entreprise reliant personnes, processus et données.",uc6Title:"Optimisation des processus",uc6Desc:"Identifiez les goulets d'étranglement et opportunités grâce au process mining alimenté par l'IA.",techTitle:"Écosystème technologique",techSubtitle:"Nous nous intégrons aux principales plateformes d'IA et d'automatisation",ctaTitle:"Prêt à explorer l'IA Agentique ?",ctaDesc:"Discutons de la façon dont les agents IA autonomes peuvent transformer vos opérations data.",ctaCta:"Réserver une consultation"},P5={bevaultDesc:"Plateforme d'automatisation Data Vault 2.0 certifiée",propilotDesc:"Logiciel de pilotage et d'exécution stratég
406ique",odooDesc:"Odoo + Data Analytics"},E5={badge:"Programme partenaires",heroTitle1:"Développez votre activité avec",heroTitle2:"dFakto",heroDesc:"Rejoignez notre programme partenaire revendeur et gagnez de 30 % à 50 % de commission la première année, plus des revenus récurrents. Formation, support et co-marketing inclus.",becomePartner:"Devenir partenaire",registerLead:"Discuter d'un projet",registerLeadTitle:"Discuter d'un projet",levelsTitle:"Niveaux partenaires",levelsSubtitle:"Progressez dans nos niveaux de partenariat et débloquez des avantages croissants",levelRegistered:"Partenaire",levelCertified:"Expert",levelStrategic:"Premium",regBenefit1:"Accès au portail partenaire",regBenefit2:"Documentation produit",regBenefit3:"Kits de vente",regBenefit4:"10% de commission d'apport",certBenefit1:"Tous les avantages Partenaire",certBenefit2:"Certification technique",certBenefit3:"Opportunités de co-marketing",certBenefit4:"30% de commission sur les ventes",certBenefit5:"Support prioritaire",stratBenefit1:"Tous les avantages Expert",stratBenefit2:"Business Plan conjoint",stratBenefit3:"Sponsorship de la direction",stratBenefit4
406:"50% de commission sur les ventes",stratBenefit5:"Partage de revenus récurrents",stratBenefit6:"Leads exclusifs",benefitsTitle:"Avantages partenaires",benefit1Title:"Commissions attractives",benefit1Desc:"30-50 % la première année, plus partage de revenus récurrents",benefit2Title:"Formation gratuite",benefit2Desc:"Certification via notre plateforme e-learning",benefit3Title:"Co-marketing",benefit3Desc:"Webinaires, événements et création de contenu conjoints",benefit4Title:"Partage de leads",benefit4Desc:"Leads qualifiés pour les partenaires stratégiques",howTitle:"Comment ça fonctionne",step1Title:"Candidature",step1Desc:"Soumettez votre candidature partenaire avec les détails de votre entreprise et votre expertise",step2Title:"Onboarding",step2Desc:"Complétez l'intégration partenaire et accédez aux ressources de formation",step3Title:"Certification",step3Desc:"Obtenez la certification beVault et proPilot via notre e-Learning",step4Title:"Co-vente",step4Desc:"Commencez à générer des leads et conclure des affaires avec notre support",ctaTitle:"Prêt à devenir partenaire ?",ctaDesc:"Démarrez votre candidature aujourd'hui et débloquez de nouveaux flux de revenus.",menuDesc:"Devenez revendeur ou intégrateur"},I5={heroTitle:"Écosystème partenaires",heroSubtitle:"Stack technologique et partenaires intégrateurs",techTitle:"Stack technologique",techSubtitle:"Connecteurs natifs pour tout votre écosystème data",catBi:"BI & Analytics",catData:"Plateformes de données",catAutomation:"Automatisation",catCloud:"Cloud & infra",catApps:"Applications",partnersTitle:"Nos partenaires",partnersSubtitle:"Des intégrateurs de confiance déployant les solutions dFakto dans le monde entier",findBadge:"Trouver un expert",findTitle:"Besoin d'un intégrateur ?",findDesc:"Parlez-nous de votre projet et nous vous mettrons en contact avec le bon partenaire.",ctaTitle:"Envie de devenir partenaire ?",ctaDesc:"Rejoignez notre écosystème partenaires et développez votre activité avec dFakto",ctaButton:"Voir le programme partenaire",menuDesc:"Explorez nos partenaires technologiques et services"},A5={heroTitle1:"Services de conseil :",heroTitle2:"25 ans d'excellence data",heroDesc:"Nous ne sommes pas qu'un éditeur de logiciels. Nous sommes d'abord des consultants. Notre équipe apporte une expertise approfondie en stratégie data, architecture et transformation.",heroCta:"Contactez-nous",stat1Value:"Fondée en 2000",stat1Label:"25 ans d'excellence",stat2Value:"40+ consultants",stat2Label:"Experts certifiés",stat3Value:"50+ clients",stat3Label:"Clients entreprise",auditTitle:"Besoin d'un audit flash ?",auditDesc:"Obtenez une évaluation rapide de votre architecture data et des recommandations concrètes.",auditCta:"Réserver votre audit",servicesTitle:"Nos services",servicesSubtitle:"Un conseil complet pour transformer vos capacités data",svc1Title:"Stratégie data",svc1Desc:"Définissez votre vision et votre feuille de route data. Nous vous aidons à aligner vos initiatives data avec vos objectifs métier pour un impact maximal.",svc2Title:"Audits d'architecture",svc2Desc:"Évaluez votre infrastru
406cture data actuelle. Identifiez les lacunes, redondances et opportunités d'optimisation.",svc3Title:"Conduite du changement",svc3Desc:"Assurez l'adoption réussie de nouvelles pratiques data. Nous guidons vos équipes à travers la transformation avec formation et accompagnement.",svc4Title:"Gouvernance des données",svc4Desc:"Établissez des politiques, standards et processus pour la qualité, la sécurité et la conformité des données dans toute votre organisation.",whyTitle:"Pourquoi choisir dFakto ?",joinTitle:"Rejoignez notre équipe",joinDesc:"Nous recherchons en permanence des talents passionnés par la data et la stratégie.",joinCta:"Voir les postes ouverts",ctaTitle:"Parlons de votre projet data",ctaDesc:"Un premier échange de 30 minutes pour comprendre vos enjeux.",ctaCta:"Réserver un échange →",whyCard1Title:"25 ans d'expérience",whyCard1Desc:"Une expertise construite sur des centaines de projets data en France, Belgique et au-delà.",whyCard2Title:"Certifiés Data Vault 2.0",whyCard2Desc:"Seul partenaire certifié VTCP en Belgique et France. Une méthode rigoureuse, pas des raccourcis.",whyCard3Title:"50+ clients entreprise",whyCard3Desc:"Des références dans la banque, le secteur public, l'industrie et bien d'autres secteurs.",whyCard4Title:"De la stratégie à l'implémentation",whyCard4Desc:"Un accompagnement bout en bout — pas de gap entre le conseil et l'exécution.",whyCard5Title:"Outils propriétaires",whyCard5Desc:"beVault et proPilot, nés de notre expérience terrain, accélèrent chaque projet.",whyCard6Title:"Approche collaborative",whyCard6Desc:"Méthode agile, équipes mixtes client-dFakto, transfert de compétences inclus.",teamTitle:"Notre équipe",teamSubtitle:"Des experts qui comprennent à la fois la data et le business.",teamPortrait:"Portrait",member1Role:"CEO & Fondateur",member2Role:"Managing Director",member3Role:"Chief Product Officer",member4Role:"Chef de produit beVault",member5Role:"Senior Business Analyst",member6Role:"Senior Data Analyst",member7Role:"Marketing",casesTitle:"Ils nous font confiance",casesTag1:"CAS CLIENT · BANQUE",casesCase1Title:"Piloter tous les programmes de transformation transversaux d'une grande banque européenne",casesCase1Text:"Plusieurs programmes simultanés, des centaines de parties prenantes — piloté avec succès grâce à proPilot.",casesTag2:"CAS CLIENT · SANTÉ",casesCase2Title:"Solution déployée en 3 jours dans un hôpital en gestion de crise",casesCase2Text:"Un data warehouse opérationnel en 72 heures pour répondre à une urgence sanitaire critique.",casesCta:"Lire le cas client →",casesAll:"Voir tous nos cas clients →",beerTitle:"On brasse aussi notre propre bière.",beerText:"dFakto a co-créé une recette exclusive avec la Brasserie Witloof, brasserie artisanale bruxelloise. Édition limitée, 100% locale.",beerLink:"En savoir plus →",teamGroupCaption:"L'équipe dFakto — Paris & Bruxelles"},R5={heroTitle:"Ressources",heroSubtitle:"Guides, documentation et supports de formation",card1Title:"Blog dFakto",card1Desc:"Analyses sur la gestion des données et le pilotage stratégique",card2Title:"Cas clients",card2Desc:"Des cas concrets de réussite client",card3Title:"Blog beVault",card3Desc:"Les dernières analyses sur l'automatisation des entrepôts de données",card4Title:"Blog proPilot",card4Desc:"Bonnes pratiques en exécution stratégique",card5Title:"Success stories beVault",card5Desc:"Résultats d'implémentation chez nos clients",card6Title:"Documentation beVault",card6Desc:"Documentation technique et guides",card7Title:"Documentation proPilot",card7Desc:"Guides utilisateur et référence API",card8Title:"Plateforme e-learning dFakto",card8Desc:"Obtenez la certification beVault et proPilot",card9Title:"Portail support",card9Desc:"Obtenez l'aide de notre équipe support",card10Title:"Ressources partenaires",card10Desc:"Kits de vente, brochures et documentation technique",card11Title:"Carrières",card11Desc:"Rejoignez l'équipe dFakto",card12Title:"Glossaire Data",card12Desc:"Maîtrisez le vocabulaire de la Data, de l'IA et de la Stratég
406ie.",card13Title:"Livres blancs",card13Desc:"Téléchargez nos analyses, livres blancs et cas clients.",comingSoon:"Bientôt disponible",view:"Voir",open:"Ouvrir",discover:"Découvrir"},_5={heroTitle:"Glossaire Data Stratégie & Architecture",heroSubtitle:"Comprenez les concepts clés qui façonnent l'avenir des organisations pilotées par la donnée."},O5={backToResources:"Retour aux Ressources",heroTitle:"Cas Clients dFakto",heroSubtitle:"Découvrez comment des organisations leaders ont transformé leurs opérations avec les solutions dFakto",readCase:"Lire la suite",story1Title:"L'acquisition de AXA Banque Belgium par Crelan",story1Industry:"Banque",story2Title:"Master Data Management : consolider l'information en une version unique",story2Industry:"Gestion des données",story3Title:"Piloter tous les programmes de transformation transversaux d'une grande banque européenne",story3Industry:"Banque",story4Title:"Solution déployée en 3 jours dans un hôpital en gestion de crise",story4Industry:"Santé",story5Title:"Une plateforme commune de gestion des risques pour 17 entités d'affacturage",story5Industry:"Finance",story6Title:"Covid 19 : Bruss'Help choisit la plateforme dFakto pour aider les plus vulnérables",story6Industry:"Secteur public",story7Title:"Un reporting bien plus rapide grâce à une plateforme unifiée et fiable, avec moins de ressources",story7Industry:"Entreprise",story8Title:"Reporting unifié et automatisé pour tous les projets de construction et maintenance",story8Industry:"Construction"},L5={backToResources:"Retour aux Ressources",title:"L'acquisition d'AXA Banque Belgium par Crelan",intro:"Pour assurer le suivi automatisé de la clôture de l'opération de M&A de 691 millions d'euros et libérer de la capacité, les acteurs se sont appuyés sur le système de pilotage digital proPilot.",p1:"Afin de suivre la phase de clôture du M&A, un master plan a été élaboré pour préparer la vente des activités bancaires d'AXA Banque Belgium à Crelan. La transaction est évaluée à 691 millions d'euros. Les exigences financières et légales préalables à une telle opération nécessitent un suivi précis de l'avancement du plan, des synergies et des économies réalisées. Il est par exemple essentiel de fournir à la BCE des garanties solides concernant le financement de la reprise. Dans ce type d'opération, la mise à disposition de l'information aux nombreuses parties prenantes constitue un autre défi majeur.",p2:"Les équipes de Bain Consulting ont implémenté le master plan dans proPilot avec le support des équipes Business de dFakto. Le plan repose sur une arborescence cohérente à trois niveaux, qui permet de suivre à chaque niveau les indicateurs et les informations qualitatives reflétant l'engagement des ressources et l'impact concret des projets par rapport aux objectifs fixés. Il permet également d'identifier les risques et les succès rencontrés dans chaque domaine. proPilot a ainsi permis de suivre les niveaux de responsabilité pour l'ensemble des parties prenantes.",p3:"La digitalisation du plan avec proPilot a éliminé une grande partie du travail manuel et automatisé le suivi et la mise à jour du plan pour toutes les parties prenantes. L'information en temps réel et la capacité libérée ont permis de concentrer les ressources sur l'analyse et les tâches à forte valeur ajoutée.",keyResults:"Résultats clés",kr1:"projets intégrés dans le plan digitalisé",kr2:"flux d'intégration suivis",kr3:"génération de rapports pour le suivi en temps réel",kr3Label:"Horaire",kr4:"transaction conclue avec succès",p4:"proPilot a permis aux équipes stratégiques de Bain Consulting et au Bureau de Gestion de l'Intégration (IMO) de Crelan de suivre les flux d'intégration, les projets et les jalons pour l'ensemble des parties prenantes. Au total, plus de 500 projets ont été intégrés dans le plan digitalisé, répartis en 11 flux d'intégration. Les rapports étaient générés toutes les heures pour assurer un suivi à différentes fréquences.",p5:"Grâce à la digitalisation du plan et à son suivi en temps réel, les synergies potentielles ont été identifiées et explorées, une étape essentielle pour répondre aux exigences réglementaires préalables à la fusion-acquisition. La transaction, évaluée à 691 M€ (dont 611 M€ en cash), a été menée à bien avec succès.",quote:"La plateforme proPilot a permis au Bureau de Gestion de l'Intégration (IMO) de Crelan, accompagné par Bain Consulting, de digitaliser le Master Plan pour suivre l'avancement et cr
406éer des synergies afin de répondre aux exigences financières et légales préalables à la fusion-acquisition.",quoteAuthor:"Sander Muylle, Head of Transformation Office chez Crelan"},z5={backToResources:"Retour aux Ressources",title:"Master data management : consolider l'information en une version unique",intro:"La mise en place d'un système de Master Data Management (MDM) pour ce leader des services de paiement lui a permis de mieux gérer ses clients.",p1:"Pour ce leader européen des services de paiement et de transaction, la complexité de ses systèmes a augmenté de manière exponentielle avec sa croissance, fruit d'acquisitions successives. Les données des différentes sources suivaient des parcours d'enrichissement et des règles de calcul distincts. Il en résultait des outputs difficilement comparables, offrant aux équipes commerciales et après-vente une visibilité insuffisante pour la prise de décision.",p2:"La dataFaktory a été sélectionnée pour reprendre les données des différents systèmes opérationnels de toutes les entités du groupe, aboutissant à une vue unifiée de leurs clients et du parc installé de terminaux de paiement, ainsi qu'un meilleur suivi de leurs activités commerciales et après-vente.",solutionTitle:"La solution",solutionDesc:"En tant que solution agile de Master Data Management, la dataFaktory se connecte aux CRM et ERP de toutes les entités du groupe. Les données de tous les systèmes sont chargées plusieurs fois par jour, puis passent par des contrôles de qualité, des enrichissements et des règles métier, garantissant la structure et la cohérence des données. Ces informations sont finalement présentées aux utilisateurs métier via des rapports et dans leurs outils opérationnels quotidiens, leur permettant de prendre les bonnes décisions commerciales.",keyResults:"Résultats clés",kr1:"sources de données connectées",kr2Label:"Vue unifiée",kr2:"des clients et du parc installé",kr3Label:"Chargements quotidiens multiples",kr3:"avec contrôles de qualité",kr4Label:"Référentiel client unique",kr4:"pour l'ensemble du groupe",quote:"Remplacer tous les systèmes des entités du groupe d'un seul coup par un data warehouse unique aurait pris des années, mais il y avait un besoin urgent de fournir aux métiers une information cohérente. Avec la solution dFakto, nous avons commencé par connecter 3 sources de données et développé les rapports dont les équipes avaient besoin. Nous avons ajouté d'autres systèmes métier au fil du temps, connectant plus de 80 sources : la dataFaktory est devenue notre plateforme MDM automatisée, notre seul référentiel client.",quoteAuthor:"Responsable MDM du Groupe"},M5={backToResources:"Retour aux Ressources",title:"Piloter tous les programmes de transformation transversaux d'une grande banque européenne",p1:"Plateforme de pilotage des initiatives majeures de la banque, ayant conduit à un dépassement des objectifs stratégiques et opérationnels.",p2:"Suite à l'acquisition de plusieurs institutions financières, le groupe a lancé un programme stratégique visant à simplifier ses processus et à identifier des synergies sur une période de 4 ans. Les plans comprenaient 2 700 projets en parallèle dans 40 pays, pour un investissement de 2 milliards d'euros, avec des économies attendues de 2 milliards d'euros par an.",p3:"La banque avait besoin d'un système pour mettre à jour en continu de nombreux plans parallèles, en les maintenant cohérents et coordonnés. Le système devait communiquer de manière fluide, du haut vers le bas et du bas vers le haut, entre les parties prenantes internes et externes. L'une des attentes majeures du système était la fourniture d'informations fiables et cohérentes aux réunions de gouvernance et de prise de décision.",p4:"Nous avons aidé la banque à traduire son plan en une arborescence normalisée, avec une granularité en phase avec l'organisation hiérarchique. Les plans ont ensuite été chargés dans proPilot, fournissant ainsi à l'ensemble du personnel impliqué l'information, pertinente à leur niveau, dont ils avaient besoin pour suivre leurs projets, programmes et portefeuille.",p5:"Les collaborateurs de l'organisation étaient invités à fournir mensuellement une mise à jour de l'état d'avancement de leurs projets, programmes ou portefeuille, à l'aide d'indicateurs qualitatifs simples : météo (soleil, nuageux, pluvieux), tendance (hausse, stable, baisse) et pourcentage d'atteinte. Grâce à l'interface simple de proPilot, ces mises à jour ne prenaient que 2 minutes. Sur une base trimestrielle, les collaborateurs devaient fournir leurs prévisions d'atteinte projet/programme/portefeuille, en utilisant un nombre restreint d'indicateurs de ressources et d'impact.",p6:"En parallèle, nous avons défini les rapports et tableaux de bord nécessaires aux réunions de gouvernance de la banque à chaque niveau, du projet au comité exécutif. Ces rapports étaient alimentés par les données qualitatives fournies par les parties prenantes des projets, et par les données quantitatives provenant de sources telles que le système comptable de la banque, l'ERP, les systèmes RH, etc.",p7:"Les rapports et tableaux de bord ont donné à la direction de la banque une visibilité sur la performance de chaque projet, leur permettant d'arrêter les projets sous-performants et de réallouer les ressources vers les projets performants. Les décisions d'adaptation des plans étaient directement intégrées dans les plans proPilot, et les actions subséquentes communiquées à toutes les parties prenantes concernées.",p8:"Le Responsable de la Gestion des Programmes a déclaré : « Une information agile, fiable et récurrente sur des initiatives complexes, ainsi qu'une structure de gouvernance claire avec des réunions décisionnelles régulières, sont nécessaires pour la performance et le dépassement des objectifs. Nous avons finalement investi 2 milliards d'euros, pour une économie annuelle de 3,5 milliards d'euros. dFakto a été décisif pour nous aider à dépasser les objectifs de nos plans. C'était une évidence pour nous d'utiliser leur plateforme de management data-driven pour piloter nos plans stratég
406iques suivants. »"},F5={backToResources:"Retour aux Ressources",title:"Solution déployée en 3 jours dans un hôpital en gestion de crise",p1:"Une plateforme de gestion pour gérer les ressources rares d'un hôpital bruxellois, en pleine crise du coronavirus.",p2:"Dans le contexte de la crise du coronavirus, l'unité de crise de l'hôpital avait un besoin urgent de visualiser la situation de ses différents services, notamment le nombre de lits disponibles en soins intensifs, en temps réel. Plus généralement, l'équipe de direction de l'hôpital avait besoin d'outils pour assurer une allocation efficace et en temps réel du matériel et des ressources, ainsi qu'un accueil optimal des patients en fonction de leur état de santé.",p3:"Il était crucial d'imaginer une approche et une solution qui aideraient les services, habituellement isolés, à consolider l'information.",p4:"En contexte de crise, des données à jour et une information précise sont essentielles pour prendre les bonnes décisions. En 3 jours, des équipes conjointes composées de collaborateurs de dFakto et Penbox ont travaillé sans relâche en collaboration avec l'Unité de Crise de l'Hôpital Universitaire pour déployer une plateforme IT opérationnelle capable de soutenir efficacement le personnel de l'hôpital.",p5:"dFakto a implémenté sa solution proPilot, adaptée à la gestion de plans de crise. Grâce à son interface de saisie rapide et simple, les informations sur la disponibilité des ressources (lits, pompes, oxygène, etc.) des différents services de terrain sont collectées et partagées en temps réel.",p6:"La solution Penbox a été utilisée pour fournir des informations sur la disponibilité du personnel infirmier, basée sur un système de « check-in » et « check-out » accessible par smartphone.",p7:"Nous avons ensuite déployé une dataFaktory pour agréger les informations des applications proPilot et Penbox et rendre l'information combinée disponible dans un outil de reporting et de visualisation.",p8:"Thibaut De Vylder, CEO de dFakto, a déclaré : « Afin de soutenir l'effort collectif, nous avons été heureux de fournir rapidement à l'hôpital une plateforme de gestion des données. La solution peut être répliquée tout en s'adaptant aux spécificités de chaque structure. C'est évidemment le cas pour les hôpitaux mais aussi pour les institutions publiques ou toute autre organisation sous pression souhaitant disposer de la meilleure solution opérationnelle en quelques jours seulement. »"},q5={backToResources:"Retour aux Ressources",title:"Une plateforme commune de gestion des risques pour 17 entités d'affacturage",p1:"Ce leader européen de l'affacturage bénéficie d'une vue consolidée des risques de ses clients en connectant les applications et systèmes de toutes ses entités.",p2:"De nombreuses organisations ont recours à l'affacturage, par lequel leurs factures clients (= créances) sont vendues à un factor, généralement une banque, afin que les organisations reçoivent directement la valeur de leurs factures.",p3:"Lorsque cette grande banque européenne a développé son activité d'affacturage en consolidant 17 entités, un centre de coordination a été mis en place et chargé de fournir une vision globale des risques portés par les 17 entités dans le monde. Mais ces entités n'utilisaient pas un système opérationnel commun et appliquaient des politiques de risque différentes. Il y avait un besoin urgent d'aligner toutes les entités d'affacturage sur des concepts transversaux et des définitions de risque, et de disposer d'un système pour consolider les positions de risque de toutes les entités.",p4:"Nous avons déployé une dataFaktory, à laquelle les sources de données des 17 entités d'affacturage ont été connectées et chargées automatiquement chaque mois, avec des contrôles de qualité effectués sur les données. Le reporting transversal offre de multiples vues, incluant l'analyse de tendances, les rapports de qualité des données et les indicateurs de performance.",p5:"En moins de 3 mois, la direction a pu obtenir une vue consolidée des risques de ses clients. Les responsables locaux des risques reçoivent un reporting pertinent, tenant compte à la fois des directives du groupe et de la réalité locale spécifique.",p6:"Le Responsable des Risques Globaux a déclaré : « Nous devions fournir en 3 mois une vue d'ensemble des risques associés aux activités de nos 17 entités d'affacturage dans le monde, chacune fonctionnant avec son propre système IT. En utilisant la méthodologie et la plateforme dFakto, nous avons aligné les définitions de risque de nos 17 entités d'affacturage, et les 90 sources de données des systèmes locaux ont été agrégées dans une dataFactory, avec 400 enrichissements et règles de calcul, produisant 30 rapports automatisés. Nous appliquons désormais une politique de risque commune à toutes nos entités, permettant à nos responsables locaux des risques de prendre de meilleures décisions basées sur des données précises et comparables. »"},B5={tagline:"Du chaos des données à la clarté métier.",products:"Produits",solutions:"Solutions",partners:"Partenaires",company:"Entreprise",consulting:"Conseil",resources:"Ressources",contact:"Contact",digitalTransformation:"Transformation digitale",regulatoryCompliance:"Conformité réglementaire",operationalExcellence:"Excellence opérationnelle",finance:"Finance",publicSector:"Secteur public",industry:"Industrie",program:"Programme",ecosystem:"Écosystème",copyright:"Tous droits réservés.",privacyPolicy:"Politique de confidentialité",legalNotice:"Mentions légales",brussels:"Bruxelles"}
406,V5={backToResources:"Retour aux Ressources",title:"Covid 19 : Bruss'Help choisit la plateforme de dFakto pour aider les plus vulnérables",p1:"En quelques jours seulement, les équipes de dFakto ont déployé une plateforme de gestion pour Bruss'Help afin d'aider les plus vulnérables pendant la crise du Covid 19.",p2:"Bruss'Help (anciennement La Strada) supervise l'aide aux personnes vulnérables à Bruxelles. En réponse à l'épidémie de Coronavirus, Bruss'Help a dû coordonner les actions de différentes organisations et associations œuvrant pour aider les personnes vulnérables, une partie de la population particulièrement à risque lors des crises sanitaires.",p3:"Bruss'Help doit assurer un suivi en temps réel et trouver des solutions aux diverses situations individuelles : besoins médicaux, accompagnement par les équipes de rue, mise à disposition de chambres d'hébergement pour les malades, etc. Sans système d'information commun, les différents acteurs passaient beaucoup de temps à vérifier manuellement les informations dans différents systèmes et à s'appeler pour obtenir des mises à jour en temps réel.",p4:"Les équipes de dFakto ont déployé en quelques jours une plateforme informatique opérationnelle pour assurer la coordination entre les différents acteurs sociaux et médicaux. Les données des différentes organisations et associations sont connectées à une dataFaktory en quasi temps réel grâce à une fréquence de chargement élevée. Les rapports et tableaux de bord sont produits automatiquement, fournissant en permanence aux équipes de Bruss'Help des informations instantanées et actualisées.",p5:"Les mesures prises par les autorités publiques et Bruss'Help s'adaptent à la situation. La plateforme dFakto permet l'intégration facile de nouvelles sources de données, telles que les informations concernant de nouvelles ressources humaines et matérielles, et les rend directement disponibles aux bénéficiaires. Le système permet également une collaboration efficace entre les centres de crise médicaux (Postes médicaux avancés de Médecins Sans Frontières, la Croix-Rouge et le New-Samusocial), qui travaillent directement avec les plus vulnérables.",p6:"Le Directeur des Opérations de Bruss'Help a déclaré : « Nous n'avons plus à passer autant de temps sur de fastidieuses vérifications manuelles d'informations. Nous pouvons désormais consacrer pleinement notre temps à aider les personnes dans le besoin. Et parce que nous disposons maintenant d'informations précises et à jour, nous prenons de bonnes décisions et utilisons au mieux nos ressources. »"},$5={backToResources:"Retour aux Ressources",title:"Un reporting beaucoup plus rapide grâce à une plateforme unifiée et fiable, avec moins de ressources",intro:"Un reporting beaucoup plus rapide grâce à une plateforme unifiée et fiable, avec beaucoup moins de ressources",subtitle:"Une plateforme efficace pour le reporting de projets au bureau du CIO de la banque, créant la confiance dans l'information, augmentant la valeur ajoutée des personnes et réduisant les tâches improductives de 75 %.",challengesTitle:"Défis :",p1:"Le département informatique de l'entité belge de ce bancassureur européen gère des projets sur une base annuelle avec un budget de 90 M€ et 60 chefs de projet et 600 ressources. Les informations de projet étaient réparties dans plusieurs systèmes : les 60 chefs de projet passaient environ 5 jours à collecter et interpréter les données pour leur rapport mensuel, tandis que les informations consolidées n'étaient disponibles que 4 semaines après la fin du mois.",solutionTitle:"Solution :",p2:"Le bureau du CIO souhaitait un outil unique pour suivre les réalisations/prévisions et le budget des projets, et qui fournirait les informations consolidées beaucoup plus rapidement. Nous avons mis en place une dataFactory en 4 phases.",p3:"Tout d'abord, nous avons connecté les différentes sources de données (BRM, ETR, Clarity, etc.) à la plateforme, en comprenant parfaitement les difficultés et les bénéfices attendus. Ensuite, nous avons aidé à définir les rôles et responsabilités parmi les groupes d'utilisateurs. Nous avons introduit Qlikview comme solution de business intelligence.",p4:"Troisièmement, nous avons aidé à définir des concepts et processus de projet communs.",p
4065:"Et enfin, nous avons aidé à améliorer la qualité des données et renforcé les compétences Qlikview du bureau du CIO.",benefitsTitle:"Bénéfices :",p6:"Un certain nombre de bénéfices tangibles ont également été obtenus :",benefit1:"tous les rapports sont actualisés en 1 heure au lieu de plusieurs jours ;",benefit2:"le nombre de réunions de projet a été divisé par 3, et leur durée par 2 ;",benefit3:"réduction de 75 % du temps consacré aux tâches administratives ;",benefit4:"réduction de 38 % des ETP nécessaires à la gestion des projets.",quote:"Avec la plateforme de reporting de dFakto, l'organisation est désormais alignée sur une seule version de la vérité et est enfin à l'aise avec les chiffres. Le reporting est maintenant actualisé en une heure. Aujourd'hui, nous avons moins de réunions pour discuter des projets, et elles sont bien plus efficaces. Nous sommes passés d'activités à faible valeur ajoutée (traitement de données) à des activités à plus forte valeur ajoutée (analyse), économisant 75 % du temps consacré aux tâches administratives, ce qui a entraîné une réduction de 38 % des ETP au bureau du CIO. Dans l'ensemble, nous avons développé les capacités de l'organisation en matière de gestion de portefeuille.",quoteAuthor:"Responsable de la gestion de portefeuille du bureau du CIO"},H5={backToResources:"Retour aux Ressources",title:"Reporting unifié et automatisé pour tous les projets de construction et de maintenance",p1:"Reporting unifié et automatisé pour tous les projets de construction et de maintenance à travers le monde.",p2:"Offshore, maritime, génie civil, environnement et développement de projets. Le groupe Jan De Nul est un expert de premier plan dans cinq activités principales. Le groupe Jan De Nul façonne à la fois l'eau et la terre. Ils permettent la production d'énergie offshore et maintiennent la profondeur des voies navigables. Ils construisent de nouveaux ports et créent de nouvelles terres. Ils réalisent des travaux d'infrastru
406cture complexes et érigent tout type de bâtiment. Ils s'attaquent à la pollution sous toutes ses formes. Grâce à l'interaction fructueuse au sein de l'entreprise, ils peuvent offrir des solutions globales combinant une, plusieurs ou même toutes ces activités.",p3:"Ce leader mondial des grands travaux d'infrastructure obtient une visibilité complète sur ses projets en connectant les systèmes d'information financiers et non financiers.",p4:"Avec des milliers d'ingénieurs et d'équipes travaillant à travers le monde sur des projets de génie lourd, la comptabilité d'avancement des projets de l'entreprise repose sur un croisement complexe des réalisations financières avec des prévisions budgétaires qui dépendent des conditions météorologiques, des prix du carburant et de la localisation géographique des navires et des matériaux.",p5:"Avec de nombreux rapports qui ne montraient chacun qu'une partie de la situation globale, la visibilité sur les nombreux projets simultanés à travers le monde était partielle, imprécise et retardée d'au moins 1 mois. Comme une grande partie du chiffre d'affaires du groupe est basée sur les projets, il était crucial de disposer d'un état d'avancement cohérent et en quasi temps réel, basé sur des données provenant de sources multiples.",p6:"dFakto a mis en place une dataFaktory intégrant les données des systèmes financiers et des outils de gestion de projet. Les données sont collectées plusieurs fois par jour et préparées pour le reporting, après un certain nombre de contrôles de qualité et d'enrichissements. Deux rapports standardisés au format A4 sont générés par projet et envoyés automatiquement aux parties prenantes à travers le monde ; ils sont utilisés par la direction générale pour comparer objectivement les performances des projets, au sein et entre les lignes d'activité.",quote:"Nos informations de gestion étaient fournies par une multitude de rapports et systèmes distincts, ne nous donnant qu'une vision insuffisante de la situation financière et de l'avancement de nos 450 projets. Avec une dFaktory qui combine les données de nos différents systèmes et sources, nous disposons désormais d'une visibilité en temps réel sur chaque projet et sur notre portefeuille consolidé. Nous identifions les problèmes plus tôt et pouvons agir immédiatement, économisant des millions chaque année. De plus, notre système de reporting est désormais beaucoup plus flexible et peut être adapté à nos besoins changeants."},W5={backToResources:"Retour aux Ressources",heroTitle:"Blog dFakto",heroSubtitle:"Perspectives sur la gestion des données, l'exécution stratégique et la transformation digitale",readArticle:"Lire la suite",catERPArchitecture:"ERP & Architecture",catDataStrategy:"Stratégie Data",catCompany:"Entreprise",catPartnership:"Partenariat",catPressRelease:"Communiqué de presse",catInsights:"Perspectives",catProduct:"Produit",catStrategy:"Stratégie",catTech:"Tech",catEvent:"Événement",catAIStrategy:"Stratégie IA",catPressReleaseFr:"Communiqué de presse",catSecurity:"Sécurité"},U5={title:"La mécanique du Data Vault",backToResources:"Retour aux Ressources",h2_1:"Qu'est-ce que le Data Vault 2.0 ?",p1:"Développé par Dan Linstedt, le Data Vault 2.0 est une approche évolutive qui intègre les idées de leaders du domaine, des concepts mathématiques, l'utilisation du hachage pour améliorer les performances de l'historisation et des processus de développement rationnels comme l'Agile. Il rassemble les meilleures pratiques en matière de méthodologie, d'architecture et de modélisation issues d'architectes de données expérimentés.",p2:"Au cœur du data vaulting se trouve le modèle Data Vault, qui offre une solution aux défis rencontrés par les approches traditionnelles de modélisation des données.",p3:"Les modèles traditionnels, comme les « entrepôts de données d'entreprise » ou les schémas en étoile, présentent des limites en termes d'adaptabilité et de facilité de maintenance.",p4:"En revanche, le modèle Data Vault organise les données en trois types de tables : <strong>Hub</strong>, <strong>Satellite</strong> et <strong>Link</strong>. La table Hub stocke les clés métier, la table Satellite contient les attributs liés aux données, et la table Link capture les relations transactionnelles entre les points de données. Ce modèle fournit une représentation complète et évolutive des données de l'entreprise, ainsi qu'une couche dimensionnelle pour un accès facile par les analystes et les consommateurs de données.",p5:"Le Data Vault 2.0 pousse le modèle Data Vault au niveau supérieur. Il va au-delà d'un simple modèle de données et intègre l'architecture et la méthodologie décrites ci-dessus.",li1:"Les données sont chargées en parallèle et les règles métier sont suivies dans le temps, permettant une analyse rétrospective et un contrôle de version.",li2:"Lorsque de nouvelles s
406ources de données apparaissent, elles peuvent être intégrées de manière transparente dans la structure existante sans nécessiter de refonte ou de réingénierie.",p6:"Adopter le Data Vault 2.0 est le moyen le moins risqué de construire une plateforme de données robuste et adaptable. Il offre une méthodologie prescriptive aux dirigeants, responsables métier, analystes et consommateurs de données pour fournir efficacement de la valeur métier à partir de la plateforme de données. Pour les praticiens et les responsables de plateformes de données, le Data Vault 2.0 propose une approche complète et résiliente pour construire et déployer un modèle fonctionnel et une architecture évolutive capable de résister aux défis posés par l'évolution des besoins métier.",h2_2:"Data Vault 2.0 et automatisation",p7:"Le Data Vault 2.0 (DV2) peut être automatisé, tandis que le Data Vault 1.0 (DV1) présentait des limitations en termes d'automatisation, principalement en raison de l'absence de spécifications standardisées. Expliquons pourquoi.",p8:"L'automatisation dans le contexte de la modélisation et de l'implémentation des données fait référence à la capacité d'utiliser des outils logiciels et des processus pour rationaliser et accélérer la création et la gestion des structures de données. Elle permet un développement cohérent et efficace, réduit l'effort manuel et minimise le risque d'erreurs.",p9:"Le DV2 bénéficie d'une automatisation accrue car il fournit une méthodologie plus standardisée et bien définie par rapport au DV1. Dans le DV2, les spécifications et les meilleures pratiques pour la modélisation et l'implémentation d'un Data Vault sont clairement énoncées. Le standard Data Vault 2.0 sert de guide complet incluant la méthodologie, l'architecture et les pratiques de modélisation.",p10:"La clarté et la standardisation du DV2 facilitent l'automatisation de divers aspects du processus d'implémentation du Data Vault. Avec un ensemble bien défini de règles et de directives, des outils logiciels peuvent être développés pour générer automatiquement des structures Data Vault conformes. Ces outils peuvent créer des objets Data Vault, tels que des hubs, des satellites et des links, en suivant les modèles et les règles prescrits.",p11:"En revanche, le DV1 ne disposait pas de spécifications aussi explicites et largement acceptées. Différents praticiens avaient leurs propres interprétations et approches pour construire des modèles Data Vault, ce qui a conduit à des variations dans les implémentations conformes. L'absence d'un cadre standardisé rendait difficile le développement d'outils d'automatisation capables de répondre aux diverses manières d'implémenter le DV1.",p12:"L'introduction du DV2 et son approche standardisée ont résolu ce problème. Il a rassemblé les connaissances et expériences collectives des architectes de données et des praticiens ayant travaillé sur des projets Data Vault au fil des années. En consolidant les meilleures pratiques et en fournissant des directives claires, le DV2 a créé une base pouvant être exploitée pour l'automatisation.",h2_3:"Automatisation des entrepôts de données et des lacs de données",p13:"Les entrepôts de données et les lacs de données ont la possibilité d'adopter le Data Vault 2.0 (DV2) comme méthodologie de modélisation et d'implémentation. En adoptant le DV2, ils peuvent garantir la pleine évolutivité de leurs modèles de données pour l'avenir et permettre à leurs entrepôts ou lacs de données de devenir durables à long terme. Explorons cela plus en détail.",p14:"Les entrepôts de données et les lacs de données servent de référentiels centraux pour le stockage et l'analyse de grands volumes de données. Ils constituent la base du reporting, de l'analytique et de la prise de décision basée sur les données au sein des organisations. Les modèles de données utilisés dans ces systèmes jouent un rôle crucial dans l'organisation et la structuration des données pour un interrogation et une analyse efficaces.",p15:"Le DV2 offre plusieurs avantages qui en font un choix attractif pour les entrepôts de données et les lacs de données recherchant un modèle de données durable et évolutif.",h3_1:"Évolutivité",p16:"Le DV2 est conçu pour s'adapter aux besoins en constante évolution des entreprises à mesure qu'elles croissent. La flexibilité et l'adaptabilité du modèle Data Vault permettent d'incorporer facilement de nouvelles s
406ources de données, des changements de systèmes et des exigences métier croissantes. Cette évolutivité garantit que l'entrepôt de données ou le lac de données peut gérer efficacement l'augmentation des volumes de données et de la complexité au fil du temps.",h3_2:"Pérennité",p17:"En adhérant à la méthodologie DV2, les entrepôts de données et les lacs de données peuvent pérenniser leurs modèles de données. Le DV2 suit un ensemble de meilleures pratiques et de directives standardisées qui ont été affinées au fil d'années d'expérience industrielle. Cette approche minimise le risque de créer des modèles de données qui pourraient devenir obsolètes ou difficiles à maintenir à mesure que les exigences métier évoluent.",h3_3:"Cohérence et réutilisabilité",p18:"Le DV2 favorise la cohérence dans la modélisation des données en fournissant un ensemble clair de règles et de modèles. Cette cohérence facilite la compréhension et le travail avec le modèle de données entre différentes équipes et projets. De plus, la nature standardisée du DV2 permet la réutilisabilité des objets Data Vault, tels que les hubs, les satellites et les links, ce qui peut réduire considérablement l'effort de développement et améliorer l'intégration et la consolidation des données.",h3_4:"Maintenance réduite et complexité diminuée",p19:"Le DV2 simplifie la modélisation et la gestion des données en séparant les préoccupations du data vault, du business vault et des couches de présentation. Cette séparation réduit la complexité du modèle de données et facilite sa maintenance et sa modification au fil du temps. En adoptant le DV2, les entrepôts de données et les lacs de données peuvent atteindre une architecture plus rationalisée et durable, entraînant des coûts de maintenance réduits et une qual
406ité de données améliorée.",p20:"Les DWH et DL peuvent choisir d'adopter le Data Vault 2.0 pour garantir l'évolutivité et la durabilité de leurs modèles de données. L'évolutivité du DV2 permet de s'adapter à la croissance future et aux exigences métier changeantes. En suivant les meilleures pratiques standardisées, les entrepôts de données et les lacs de données peuvent créer des modèles de données cohérents et réutilisables. L'adoption du DV2 réduit également les efforts de maintenance et la complexité, menant à des pratiques de gestion des données plus durables et efficaces."},K5={backToResources:"Retour aux Ressources",title:"Introduction au Data Driven Management",intro:"Faire les bonnes choses et bien faire les choses sont deux problèmes différents mais liés.",p1:"<strong>Faire les bonnes choses</strong> consiste à prendre la bonne décision ou à entreprendre l'action appropriée dans une situation donnée. Cela nécessite une compréhension approfondie de la situation, des conséquences potentielles des différentes actions, ainsi que des valeurs et objectifs du décideur.",p2:"<strong>Bien faire les choses</strong> fait référence à l'exécution ou à la mise en œuvre d'une décision ou d'une action. Cela nécessite une attention aux détails, un engagement envers la qualité et une attention aux processus et procédures.",quote1:"La stratégie sans exécution est une hallucination.",quote1Author:"— Thomas Edison",p3:"Il est possible de faire les bonnes choses et de bien les faire, mais il est également possible de faire l'un sans l'autre. Par exemple, un dirigeant peut décider d'investir dans une nouvelle technologie alignée sur les objectifs et les valeurs de l'organisation, mais si la mise en œuvre de cette technologie est précipitée ou mal exécutée, la décision peut ne pas mener au résultat souhaité. De même, une équipe peut exécuter un projet de manière impeccable, mais si le projet lui-même n'est pas aligné sur les objectifs ou les valeurs de l'organisation, il ne sera pas considéré comme un succès.",quote2:"Les idées sans action ne valent rien.",quote2Author:"— Harvey Mackay",p4:"Pour réussir véritablement, il est important à la fois de faire les bonnes choses et de bien les faire. Cela nécessite un équilibre entre la réflexion stratégique et l'attention aux détails, un sens aigu de la mission et un engagement envers la qualité. Cela requiert également une communication et une collaboration constantes, ainsi qu'une volonté de s'adapter et d'apprendre des expériences passées.",p5:"En fin de compte, faire les bonnes choses et bien les faire est un parcours continu qui nécessite des efforts et un dévouement constants.",h2_1:"Relier les points",p6:"Relier l'exécution d'un plan au processus de prise de décision grâce aux données est essentiel pour garantir que la stratégie et l'exécution sont alignées et efficaces. Les données fournissent des informations précieuses sur la performance d'un plan, permettant aux organisations de prendre des décisions éclairées et d'ajuster leur stratég
406ie en conséquence.",p7:"La première étape pour relier l'exécution au processus de prise de décision avec les données consiste à établir des métriques et des objectifs clairs pour le plan. Ces métriques doivent être étroitement liées à la stratégie globale de l'organisation et doivent être utilisées pour mesurer les progrès et le succès. Par exemple, si la stratégie vise à augmenter les ventes, la métrique pourrait être le nombre de ventes réalisées par mois.",p8:"Une fois les métriques établies, les organisations doivent organiser le suivi pour collecter et analyser régulièrement les données afin de suivre les performances par rapport à ces métriques. Ces données peuvent être utilisées pour identifier les domaines de réussite et ceux nécessitant des améliorations. Par exemple, si les ventes ne répondent pas aux attentes, l'analyse des données peut révéler que le problème vient de la stratégie marketing plutôt que de l'équipe commerciale.",p9:"Une fois les données analysées, l'organisation peut prendre des décisions éclairées sur la manière d'ajuster la stratégie pour mieux s'aligner sur l'exécution. Par exemple, si le problème vient de la stratégie marketing, l'organisation peut décider d'investir davantage de ressources dans le marketing digital, ou de repositionner le produit pour séduire un marché différent.",p10:"En reliant l'exécution au processus de prise de décision grâce aux données, les organisations peuvent s'assurer que leur stratég
406ie et leur exécution sont étroitement alignées, et que leurs efforts sont dirigés vers l'atteinte de leurs objectifs. Cette approche permet aux organisations de prendre des décisions basées sur les données, plus susceptibles de mener au succès, et les aide à rester sur la bonne voie avec leur stratégie globale."},G5={backToResources:"Retour aux Ressources",title:"Le cadre du Data Driven Management",p1:"dFakto a développé un cadre de Data Driven Management qui vise à améliorer l'exécution des décisions stratégiques au sein de toute organisation. Ce cadre est composé de quatre processus fondamentaux qui fonctionnent ensemble pour atteindre cet objectif.",h2_1:"1. Gestion des données (Data)",p2:"Le premier processus est la gestion des données. C'est le processus de transformation des données brutes en informations exploitables pouvant être utilisées pour prendre des décisions éclairées. Ce processus implique la collecte, le stockage et l'analyse des données afin de découvrir des insights permettant d'améliorer la performance de l'organisation.",h2_2:"2. Prise de décision (Decide)",p3:"Le deuxième processus est la prise de décision. Ce processus consiste à prendre les informations exploitables obtenues à partir du processus de gestion des données et à les utiliser pour prendre des décisions stratégiques. Ce processus nécessite une communication claire, une collaboration et un processus décisionnel fondé sur des insights basés sur les données.",h2_3:"3. Pilotage (Plan)",p4:"Le troisième processus est le pilotage. Ce processus consiste à transformer les décisions prises lors du processus décisionnel en actions concrètes sur le terrain. Il implique de tester l'efficacité des décisions et d'apporter les ajustements nécessaires. Ce processus est essentiel pour garantir que les décisions prises sont effectivement exécutées et qu'elles ont l'impact souhaité.",h2_4:"4. Exécution (Do)",p5:"Le dernier processus est l'exécution. Ce processus consiste à mettre en pratique les décisions et les actions à travers des processus métier et/ou des projets. C'est le processus qui garantit que l'organisation est capable d'exécuter les décisions prises de manière rapide et efficace. Ce processus nécessite une communication claire, une collaboration et un accent sur l'obtention de résultats. L'exécution génère de nouvelles données et le cycle continue…",quote1:"La prise de décision basée sur les données ne consiste pas à supprimer l'intuition, mais à la renforcer.",quote1Author:"— Tim Cook, PDG d'Apple Inc.",p6:"En suivant les quatre processus fondamentaux décrits dans ce cadre, les organisations peuvent transformer les données en informations exploitables, prendre des décisions basées sur les données, piloter et exécuter ces décisions, et finalement obtenir de meilleurs résultats."},Q5={backToResources:"Retour aux Ressources",title:"Data Driven Management : Mesurer la performance",p1:"La capacité à mesurer et suivre avec précision l'exécution d'un projet ou d'un processus est cruciale pour garantir son succès. Cependant, la complexité et le volume de données impliqués dans ces processus peuvent rendre difficile l'identification et la résolution des problèmes en temps opportun. Pour améliorer l'exécution de ces processus, il est important de se concentrer sur la qualité des données et l'utilisation d'outils de mesure en temps réel pour identifier et combler les écarts d'exécution.",h2_1:"Indicateurs clés de qualité (KQI's)",p2:"Un moyen d'améliorer la qualité des données passe par l'utilisation d'indicateurs clés de qualité (KQI's). Ces indicateurs fournissent des mesures objectives de la structure, de la persistance et de la localisation des problèmes de qualité des données au sein des données utilisées pour produire de l'information. En développant un cadre spécifique au sein de la dataFaktory, il est possible de créer des scores de qualité des données et des « tags ADN » facilement agrégeables et historisables. Cela permet une identification plus précise et efficace des problèmes de qualité des données et des solutions plus ciblées.",h2_2:"Indicateurs clés d'exécution (KEI's)",p3:"Un autre aspect important de l'amélioration de l'exécution est l'utilisation d'indicateurs clés d'exécution (KEI's). Ces indicateurs mesurent la distance entre la trajectoire planifiée et la trajectoire réalisée d'un projet ou d'un processus. En développant un cadre spécifique au sein d'un proPilot et d'une dataFaktory, il est possible de créer des mesures objectives des écarts d'exécution, à la fois actuels (KEI à date) et prospectifs (KEI à l'achèvement). Cela permet une identification plus précise et proactive des problèmes et des solutions plus efficaces et ciblées.",h2_3:"Gérer la complexité",p4:"Cependant, il est important de noter que l'utilisation de ces flux secondaires, tels que les KQI et les KEI, peut augmenter la complexité perçue du processus. Pour atténuer cela, il est important de s'assurer que les cadres sont clairs, faciles à comprendre et accessibles à tous les membres de l'équipe. De plus, il est important de fournir une formation et un s
406outien pour garantir que tous les membres de l'équipe sont en mesure d'utiliser efficacement ces cadres pour améliorer l'exécution des projets ou des processus.",h2_4:"Le rôle complémentaire des KPI's",p5:"L'utilisation des indicateurs clés de performance (KPI's) est bien entendu complémentaire à l'utilisation des KEI's et des KQI's, qui n'ont pas vocation à les remplacer. En effet :",li1:"<strong>Les KPI's</strong> permettent de voir si un projet ou un processus atteint sa destination.",li2:"<strong>Les KEI's</strong> aident à qualifier comment il dévie du chemin pour y arriver.",li3:"<strong>Les KQI's</strong> permettent de mesurer objectivement le degré de confiance que nous pouvons accorder aux informations qui y sont liées.",p6:"En utilisant une combinaison de KPIs, KEIs et KQIs, nous pouvons obtenir une compréhension complète et approfondie de nos initiatives stratégiques. Cela nous permet de gérer proactivement et de corriger le cap en cours de route, garantissant que nous atteignons et dépassons nos objectifs ambitieux dès le départ. En optimisant notre approche, nous pouvons maximiser la valeur de nos initiatives, ouvrant la voie à un succès encore plus grand. Alors adoptons ces outils puissants et libérons le plein potentiel de nos initiatives stratégiques !"},Y5={backToResources:"Retour aux Ressources",title:"DataFaktory : Les bénéfices pour les utilisateurs métiers",p1:"dataFaktory, notre plateforme de gestion des données, se distingue des solutions techniques conçues pour les experts data de plusieurs manières. Examinons de plus près tous ces points de différenciation.",h3_1:"Interface conviviale",p2:"dataFaktory privilégie une interface conviviale qui simplifie les tâches de gestion des données. Elle est conçue pour être intuitive et accessible aux utilisateurs métiers, leur permettant de configurer, exploiter et maintenir la solution sans connaissances techniques approfondies. Cette attention portée à l'expérience utilisateur la distingue des autres solutions Data Vault qui peuvent avoir des interfaces plus complexes destinées aux experts techniques.",h3_2:"Architecture orientée métier",p3:"dataFaktory adopte une architecture orientée métier qui s'aligne sur les besoins des parties prenantes business. Elle comble le fossé entre les exigences métier et l'implémentation technique, en mettant l'accent sur la compréhension et l'utilisation des données par des profils non techniques. Cette approche facilite l'exploitation efficace de la solution par les utilisateurs métiers, la distinguant des solutions Data Vault qui s'adressent principalement aux experts techniques.",h3_3:"Orchestration, automatisation et simplification",p4:"dataFaktory excelle dans l'orchestration, l'automatisation et la simplification des processus de gestion des données. Elle automatise les opérations complexes telles que l'extraction, la transformation et la distribution des données, réduisant la dépendance à l'intervention manuelle. En rationalisant ces processus, dataFaktory minimise l'effort nécessaire à la gestion des données, la rendant plus efficace par rapport aux autres solutions Data Vault qui peuvent impliquer davantage d'étapes manuelles.",h3_4:"Qualité des données intégrée",p5:"dataFaktory intègre les contrôles de qualité des données comme partie intégrante de la solution. Elle applique des mesures de qualité des données non seulement aux sources de données individuelles mais aussi aux sources combinées, garantissant la qualité globale de l'écosystème de données. Cette fonctionnalité intégrée de qualité des données la distingue des autres solutions Data Vault qui peuvent nécessiter des outils ou processus supplémentaires pour répondre aux préoccupations de qualité des données.",h3_5:"Approche techno-agnostique",p6:"dataFaktory adopte une approche techno-agnostique, lui permettant de se connecter à des sources de données différentes et hétérogènes. Elle est compatible avec diverses technologies sous-jacentes, y compris différentes bases de données, outils ETL (Extract, Transform, Load), scripts SQL, routines Python et outils BI (Business Intelligence). Cette flexibilité permet à dataFaktory d'exploiter les investissements technologiques existants, la rendant adaptable à des environnements technologiques diversifiés.",h3_6:"Tableaux de bord prêts à l'emploi",p7:"dataFaktory propose un ensemble complet de tableaux de bord métier prêts à l'emploi couvrant plusieurs domaines de gestion tels que les ventes, le marketing, la finance et les stocks. Ces tableaux de bord offrent un accès immédiat aux insights et métriques clés, couvrant 95 % des besoins typiques d'une organisation. Les tableaux de bord préconstruits sont conçus avec une interface conviviale et nécessitent une personnalisation minimale, distinguant dataFaktory des solutions Data Vault qui peuvent manquer de cette fonctionnalité de tableaux de bord prêts à l'emploi.",ctaText:"Vous souhaitez en savoir plus ?",ctaButton:"Contactez-nous pour une démo"}
406,Z5={backToResources:"Retour aux Ressources",title:"Pourquoi les Data Warehouses prennent-ils une éternité ?",p1:"Le data warehouse de votre entreprise fonctionne-t-il comme vous le souhaitez ? Êtes-vous satisfait de vos tableaux de bord ? Toutes les sources de données que vous produisez l'alimentent-elles ?",p2:"Il est possible que si vous utilisez les « anciennes méthodes », la réponse soit « probablement pas ». Malheureusement, cela ne changera pas de sitôt si votre activité évolue à un rythme soutenu. En effet, vous avez probablement une série de demandes de modifications qui se chevauchent et une réticence à en introduire davantage tant que vous n'aurez pas l'assurance de certains progrès, ou même d'une certaine actualité.",p3:"Au-delà des demandes de modifications, une question plus pertinente se pose : <strong>« Votre data warehouse reflète-t-il la réalité actuelle de votre entreprise ? »</strong> Certainement pas si vous attendez encore ces modifications en attente. En fait, je parie que vous vous êtes probablement résigné à tout ce retard et l'avez étiqueté « business as usual ». Vous pourriez, si vous êtes proactif, être à la recherche de solutions technologiques, mais il n'est pas nécessaire qu'il en soit ainsi.",h2_1:"Vieux chiens, nouveaux tours ?",p4:"En utilisant uniquement les approches « éprouvées », chaque fois que vous modifiez quelque chose dans votre data warehouse, il y a généralement des effets en cascade sur les systèmes dépendants. En conséquence, votre data warehouse doit généralement être modifié (et testé !) de manière itérative jusqu'à ce que son modèle de données puisse s'adapter. Cela arrive souvent, et beaucoup se sont résignés à accepter cela comme le prix du changement dans la technologie « moderne » des data warehouses. Nous savons que ce n'est pas vrai.",p5:"Les nouvelles réglementations, les exigences de conformité, les systèmes externes connectés, les fusions d'entreprises, les changements de processus ou simplement l'expansion des besoins introduisent la nécessité de modifier la façon dont vous capturez, stockez et analysez vos données. En fait, le défi le plus important de tout data warehouse est de <strong>capturer le changement tout en maintenant la continuité</strong> avec les données historiques afin que le reporting soit cohérent et précis. Cela semble impossible ? Pas vraiment.",p6:"Effectuer des modifications avec les méthodes traditionnelles nécessitera presque toujours une revue des modèles de données, des évaluations d'impact et même des réécritures complètes lors de l'implémentation de nouvelles exigences – c'est lent, fastidieux et parfois douloureux. Et une fois terminé, les modifications du modèle doivent être testées pour s'assurer que rien n'a été cassé, avant de passer du staging aux analyses en production. Les semaines se transforment en mois, et cela implique un temps et un effort considérables.",h2_2:"Une meilleure approche",p7:"Il est compliqué de suivre le rythme actuel, c'est pourquoi des personnes ingénieuses ont inventé la <strong>discipline Data Vault</strong>. C'est une méthode qui sépare la structure fondamentale des données de leur contenu. Le résultat : vous pouvez vous adapter rapidement et précisément au changement sans subir les délais et les inexactitudes des méthodologies traditionnelles de data warehouse. Vous construisez la structure UNE SEULE FOIS, puis vous y accrochez vos données dans des « satellites ».",p8:"Besoin de changer ? Pas de problème, ajoutez simplement une structure supplémentaire sans casser ce qui existait déjà. Si vous devez inclure plus de données, vous les accrochez simplement à la structure centrale (« hubs » et « links »).",p9:"Le Data Vault est une méthodologie, pas une technologie. C'est une façon de penser les données, plutôt qu'une nouvelle tendance brillante. Cela implique de séparer la structure de vos données des changements. Cela simplifie et stabilise votre modèle de données, de sorte qu'il devient une entité fixe dans laquelle vos données brutes sont verrouillées et ne changent jamais. C'est un <strong>coffre-fort de vérité</strong> de votre entreprise – avec ses qualités et ses défauts."}
406,X5={backToResources:"Retour aux Ressources",title:"Scalefree et dFakto s'associent sur le Data Vault",h2_1:"dFakto et Scalefree s'associent pour élever l'automatisation des data warehouses et les solutions Data Vault",date:"<strong>Bruxelles, 12 novembre 2024</strong>",p1:"dFakto a le plaisir d'annoncer un partenariat stratégique avec <strong>Scalefree</strong>, un expert reconnu en consulting en business intelligence et en implémentation de projets de data warehouse, spécialisé dans la méthode Data Vault 2.0.",p2:"Cette collaboration vise à renforcer davantage les capacités de notre plateforme d'automatisation Data Vault, <strong>beVault</strong>, en offrant des solutions avancées de gestion des données aux organisations du monde entier.",p3:"L'expertise approfondie de Scalefree en modélisation Data Vault et en implémentation de data warehouses s'aligne parfaitement avec la technologie beVault de dFakto — une solution puissante qui automatise l'ensemble du cycle de vie Data Vault, de l'intégration au déploiement des Information Marts. Ensemble, dFakto et Scalefree offriront à leurs clients une approche robuste et évolutive pour gérer leurs écosystèmes de données, permettant des insights plus rapides et plus précis, et soutenant une meilleure prise de décision.",highlight:"À ce jour, beVault est le seul outil certifié Data Vault 2.0.",p4:"Ce partenariat combine la maîtrise de la modélisation des données de Scalefree avec la technologie d'automatisation et l'expertise de dFakto, offrant une solution complète aux organisations cherchant à moderniser leur infrastructure de données. En automatisant les processus de données complexes et en exploitant la méthodologie Data Vault, cette alliance permet aux entreprises de rationaliser leurs opérations de données, de réduire les coûts et d'atteindre une plus grande agilité dans leurs stratégies de gestion des données.",p5:"Scalefree est spécialisé dans les solutions Data Vault 2.0 pour les entreprises modernes. En tant que partenaire de formation certifié, Scalefree apporte son expertise pour aider les organisations à exploiter le plein potentiel de leurs données. Axé sur la livraison de solutions pratiques et innovantes dans divers secteurs, Scalefree garantit que les entreprises peuvent exploiter efficacement le Big Data dans le contexte commercial actuel.",h3_1:"À propos de beVault",p6:"beVault est une plateforme qui connecte de manière transparente les besoins métier aux solutions technologiques au sein d'une plateforme unifiée. Sa certification Data Vault 2.0 souligne sa conformité et son efficacité dans les pratiques modernes et évolutives de gestion des données.",h3_2:"À propos de dFakto",p7:"dFakto est un pionnier dans la fourniture de plateformes automatisées de gestion des données qui soutiennent les initiatives dans les secteurs public et privé. Axé sur l'innovation, dFakto permet aux organisations de transformer les données en insights exploitables, améliorant la prise de décision et l'efficacité opérationnelle.",h3_3:"À propos de Scalefree",p8:"Scalefree a été fondé en 2016 par l'inventeur du Data Vault, Dan Linstedt, et Michael Olschimke, et représente l'implémentation éprouvée et durable de projets de data warehouse basés sur les standards Data Vault définis par Dan Linstedt. Grâce à un consulting et des formations compétents, Scalefree accompagne les entreprises vers une infrastructure de données évolutive, efficace et pérenne."},J5={backToResources:"Retour aux Ressources",title:"PCMA & dFakto : Plateforme IA pour les événements d'entreprise",h2_1:"destinAItor présenté en avant-première à edUcon 2025 comme outil révolutionnaire de recherche de destinations et de lieux",p1:"<strong>CHICAGO, IL</strong> – DestinAItor, l'outil de planification de destinations et de lieux de nouvelle génération de PCMA pour les stratèges en événements d'entreprise, fournit des insights basés sur les données, réduisant ainsi le temps et l'argent investis dans la recherche de destinations et de lieux. Développée en partenariat avec dFakto, la plateforme alimentée par l'IA va au-delà des dates, tarifs et espaces.",p2:"Présenté en avant-première 
406à edUcon ce mois-ci, destinAItor intègre un processus de validation par les organisations de marketing de destination (DMO). Les destinations et lieux participants examinent et, surtout, vérifient leurs profils respectifs pour garantir un contenu précis et à jour. Les données sélectionnées intègrent des informations telles que les initiatives de développement durable, les mesures de sécurité, les secteurs économiques, les événements à l'échelle de la ville, les développements d'infrastructure et plus encore. DestinAItor exploite des partenariats stratégiques de données avec Tempest et Simpleview pour intégrer les données de réunions et d'événements, permettant aux stratèges événementiels de comparer facilement plusieurs destinations sur la base de données objectives et vérifiées. DestinAItor inclut également une fonctionnalité RFP capable d'analyser un appel d'offres et de suggérer des destinations correspondantes.",p3:"Les insights de la plateforme destinAItor sont offerts gratuitement aux stratèges en événements d'entreprise. Les destinations et lieux souhaitant être référencés doivent rejoindre un pilote destinAItor pour examiner les données de destination générées par l'IA et obtenir le badge « Destination Vérifiée » pour apparaître sur la plateforme.",quote1:"Je crois que destinAItor va révolutionner la façon dont les stratèges en événements d'entreprise recherchent des destinations et des lieux. La plateforme est dynamique. Ce sera une évolution continue. PCMA reste engagé à donner à notre communauté mondiale d'événements d'entreprise des outils intuitifs et réactifs à leurs besoins. destinAItor répond à ce besoin.",quote1Author:"— Sheriff Karamat, CAE, Président & CEO de PCMA et CEMA",p4:"Les destinations et lieux participants bénéficient de rapports de performance et d'analyses sur les tendances de recherche et les destinations en vogue, car la plateforme permet aux destinations et lieux de mettre en avant leurs propositions de valeur uniques, attirant ainsi des activités alignées sur leurs objectifs stratégiques respectifs.",quote2a:"L'industrie des événements d'entreprise évolue rapidement, avec une demande croissante pour des solutions sécurisées et conformes alimentées par l'IA et une prise de décision basée sur les données. Grâce à notre collaboration avec PCMA, nous avons identifié les défis de l'industrie – surcharge de données provenant de sources multiples, processus de recherche inefficaces et méfiance significative envers les données IA en raison de préoccupations liées à la précision.",quote2b:"Pour les destinations et les lieux, c'est une opportunité de contrôler leurs données et leur récit de marque, de résoudre les problèmes de génération de leads insuffisante et de surmonter le spam de RFP, tout en obtenant des insights de performance grâce à l'analyse des tendances de recherche. Ce n'est que le début. Nous voyons émerger de nouveaux cas d'usage et de nouvelles fonctionnalités révolutionnaires seront ajoutées à la plateforme destinAItor en continu.",quote2Author:"— Thibaut De Vylder, CEO de dFakto",h3_1:"Contact :",contact:'Meghan Risch<br />PCMA<br />Chief of Staff, Vice President, Corporate Communications<br />Email : <a href="mailto:[email protected]">[email protected]</a>',h3_2:"À propos de PCMA",p5:`PCMA, la Fondation PCMA et CEMA éduquent, inspirent et écoutent, créant des expériences significatives où passion, objectif et commerce se rejoignent. Nous sommes la plus grande communauté mondiale de stratèges en événements d'entreprise, offrant une formation de haut niveau, du réseautage et de l'intelligence de marché pour l'industrie mondiale des événements d'entreprise. Notre mission est de stimuler le progrès social et économique à travers les événements d'entreprise. Basée à Chicago, IL, PCMA compte 17 chapitres nord-américains, des communautés régionales en APAC, EMEA et LATAM, et des membres dans 59 pays. La Corporate Event Marketing Association (CEMA), filiale de PCMA, fait progresser le marketing événementiel stratég
406ique et les communications marketing pour les professionnels du marketing événementiel de haut niveau. Visitez-nous sur <a href="https://pcma.org" target="_blank" rel="noopener noreferrer">pcma.org</a>.`,h3_3:"À propos de dFakto",p6:`dFakto est un expert axé sur les données et orienté métier dans les plateformes de données avancées, engagé à révolutionner la façon dont les organisations transforment, performent et se conforment avec leurs données. Nous fournissons des solutions innovantes de consulting outillé et de licences, mises en valeur par nos plateformes phares, beVault (<a href="https://www.bevault.io" target="_blank" rel="noopener noreferrer">www.bevault.io</a>) et proPilot (<a href="https://www.propilot.io" target="_blank" rel="noopener noreferrer">www.proPilot.io</a>). Notre mission est de donner les moyens à une gamme diversifiée de clients, des gouvernements et grandes entreprises aux associations et PME, de construire, exploiter et maintenir des plateformes de données agiles et à la pointe de la technologie. La plateforme dFakto excelle dans la préparation et l'intégration de données provenant de sources multiples, garantissant un traitement sécurisé et conforme. De plus, nos solutions pérennes sont conçues pour s'adapter avec souplesse aux avancées rapides et aux exigences changeantes des technologies d'Intelligence Artificielle. dFakto a actuellement des bureaux à Bruxelles et Paris et opérera sur le marché nord-américain via la JV à Chicago. Visitez-nous sur <a href="https://www.dfakto.com" target="_blank" rel="noopener noreferrer">www.dfakto.com</a>.`},eE={backToResources:"Retour aux Ressources",title:"25 ans d'innovation Data : Le message de notre CEO",welcome:"Bienvenue chez dFakto !",p1:"Alors que nous célébrons notre 25e anniversaire en septembre 2025, je me retrouve à réfléchir à un parcours qui a été tout simplement remarquable. De nos débuts modestes à notre position de leader dans l'automatisation de la gestion des données, nous avons navigué dans le paysage évolutif de la technologie et du business avec un objectif unique : fournir des solutions pratiques, agiles et efficaces aux organisations du monde entier.",p2:"Il y a seulement 60 ans, les données étaient souvent considérées comme un sous-produit des opérations commerciales, sans possibilité de sortir des systèmes. Aujourd'hui, les données sont le sang vital des organisations — permettant des décisions plus intelligentes, stimulant l'innovation et fournissant les bases de la croissance future.",p3:"Alors que le monde évolue rapidement, chez dFakto, nous avons embrassé cette transformation, en adaptant continuellement nos solutions pour répondre aux besoins en constante évolution de nos clients.",h2_1:"Chez dFakto, nous faisons les choses différemment :",li1:"<strong>Pas de solutions miracles, juste des résultats prouvés</strong> — Nous ne promettons pas l'impossible et ne vendons pas de solutions rapides. Nous offrons une véritable stabilité et une agilité stratégique dans l'environnement commercial imprévisible d'aujourd'hui.",li2:"<strong>Accélérer en toute confiance</strong> — Nous fournissons aux organisations les outils précis nécessaires pour gérer et exploiter efficacement les données, permettant des décisions plus rapides, des opérations plus intelligentes et une efficacité inégalée.",li3:"<strong>Focus stratégique, impact maximum</strong> — Nos solutions n'essaient pas de tout faire. Elles excellent à faire les bonnes choses, rapidement, pour une fraction des coûts et des délais traditionnels.",p4:"Pendant 25 ans, nous avons prouvé que la gestion des données est un voyage, pas une destination. Nous avons construit beVault, notre solution automatisée de gestion des données, et proPilot, un outil puissant pour gérer les initiatives stratégiques, tous deux conçus pour autonomiser les équipes et créer une valeur durable.",p5:"Mais plus que les solutions elles-mêmes, c'est notre philosophie — notre approche de la résolution de problèmes — qui nous distingue.",p6:"Nous ne croyons pas aux solutions « taille unique ». Nous croyons en la personnalisation des 80 % pour répondre à vos besoins et en consacrant le temps nécessaire aux 20 % qui font la différence. C'est une formule qui fonctionne, et c'est pourquoi nous sommes de confiance pour des clients dans des industries diverses — des organisations qui ont besoin d'agilité et de stabilité à parts égales.",p7:"En regardant vers l'avenir, nous restons plus que jamais engagés dans notre mission : aider les organisations à libérer le plein potentiel de leurs données. Nous ne sommes pas seulement une entreprise technologique ou un cabinet de conseil — nous sommes une <strong>entreprise de consulting outillé</strong>, construite pour être agile, adaptable et toujours prête à relever de nouveaux défis.",goal:"Notre objectif est simple : vous aider à innover, accélérer et transformer grâce à la puissance des données.",p8:"Merci de faire partie de notre voyage.",p9:"Que vou
406s soyez client, partenaire ou membre de l'équipe, votre confiance et votre collaboration sont ce qui a rendu notre succès possible.",p10:"Aux 25 prochaines années — et au-delà. Ensemble, nous continuerons à façonner l'avenir de la gestion des données.",signName:"– Thibaut De Vylder",signTitle:"dFakto CEO"},tE={backToBlog:"Retour au Blog",category:"Stratégie Data",title:"Le mythe de l'ERP unique : Pourquoi Odoo ne doit pas être votre Data Warehouse.",h2_1:"Introduction",p1:"Aujourd'hui, aucun système d'information n'est isolé. Une entreprise moderne exploite typiquement :",li1_1:"un ERP (comme Odoo),",li1_2:"un CRM,",li1_3:"des outils marketing,",li1_4:"des plateformes métiers verticales,",li1_5:"voire des sources IoT, fichiers ou legacy.",p2:"Le défi n'est plus seulement de collecter des données, mais de les <strong>consolider, croiser et exploiter</strong> de manière fiable. Demander à Odoo de servir de « source unique de vérité » pour toutes ces données est une tentation naturelle, mais souvent source de complexité et de coûts supplémentaires.",h2_2:"Odoo ne joue pas dans la même cour que les plateformes data dédiées",p3:"Odoo reste très performant pour gérer des processus transactionnels et métiers. Cependant, la consolidation de données issues de systèmes disparates, leur historisation, leur harmonisation et leur mise à disposition pour l'analytique requièrent une plateforme conçue pour orchestrer tous ces flux.",h2_3:"Une plateforme data pour orchestrer sans se substituer",p4:"C'est précisément le rôle de <strong>beVault</strong>.",p5:"beVault :",li3_1:"se connecte à toutes sources d'entreprise (ERP, CRM, fichiers, autres apps)",li3_2:"historise automatiquement les données avec un modèle structuré et gouverné",li3_3:"alimente les outils BI ou d'IA sans rebricoler des pipelines maison",li3_4:"maintient une <strong>source unique de vérité</strong> structurée pour toutes les parties prenantes.",p6:"Cette approche ne consiste pas à supprimer Odoo, mais à assurer que chaque système garde son rôle optimal :",li4_1:"<strong>Odoo</strong> s'occupe du transactionnel métier,",li4_2:"<strong>beVault</strong> s'occupe de l'unification, de la gouvernance et de la réutilisation analytique.",h2_4:"Bénéfices concrets pour l'entreprise",li5_1:"Des décisions basées sur des données cohérentes entre CRM, ERP, marketing, finance.",li5_2:"Plus de temps passé sur l'analyse, moins sur les manipulations Excel ou les exports manuels.",li5_3:"Une adaptabilité forte quand de nouvelles sources apparaissent ou que les besoins évoluent.",h2_5:"Conclusion",p7:"Pour répondre aux besoins croisés de données de manière durable, il ne s'agit pas de faire entrer Odoo dans un rôle pour lequel il n'est pas conçu. Il s'agit d'établir une <strong>architecture data cohérente</strong>, où Odoo est une source fiable parmi d'autres, alimentant une plateforme plus robuste comme beVault."},nE={backToBlog:"Retour au Blog",category:"ERP & Architecture",title:"Odoo est lent ? N'achetez pas de serveurs, changez d'architecture.",subtitle:"La vraie question derrière les problèmes de performance",h2_1:"Introduction",p1:"Quand des organisations implémentent Odoo à grande échelle, il n'est pas rare d'entendre : « Odoo commence à devenir lent. » Pourtant, dans la majorité des cas, ce n'est pas une erreur de configuration ou un manque d'optimisation technique isolé : c'est un <strong>signal stratégique</strong>. Quand l'ERP commence à porter simultanément le transactionnel, les besoins de reporting, les intégrations et l'historisation des données, les limites ne viennent pas du logiciel lui-même : elles viennent de la charge croissante des responsabilités qu'on lui impose.",h2_2:"Le vrai problème : étendre l'ERP au-delà de son périmètre naturel",p2:"Odoo excelle en tant que ERP transactionnel, mais n'est pas conçu comme une plateforme data centralisée moderne. Chercher à l'étirer pour en faire en même temps :",li2_1:"un hub de données,",li2_2:"un moteur de reporting,",li2_3:"une source de vérité analytique",p3:"…c'est souvent la racine des lenteurs ressenties ou des arbitrages coûteux autour de performance et complexité.",h2_3:"Un autre chemin : ajouter une couche data dédiée",p4:"Au lieu de multiplier les optimisations ponctuelles dans Odoo, une question plus pertinente pour les dirigeants est : ne serait-il pas plus efficace de lui déléguer la consolidation et l'orchestration des données à une plateforme conçue pour ça ? C'est là qu'une solution comme <strong>beVault</strong> entre en jeu.",p5:"beVault se positionne comme une plateforme data moderne, construite sur la méthodologie Data Vault, qui automatise la génération de modèles de données, l'intégration de sources diverses, l'historisation complète et la gouvernance, tout en facilitant l'exploitation BI et analytique, tout en déchargeant Odoo de tâches pour lesquelles il n'est pas optimisé.",h2_4:"Pourquoi cette approche est différente",li4_1:"<strong>Performance préservée :</strong> Odoo continue de gérer le transactionnel sans être saturé par des besoins data lourds.",li4_2:"<strong>Modularité et scalabilité :</strong> la couche data évolue selon les besoins sans multiplier les contraintes sur l'ERP.",li4_3:"<strong>ROI business :</strong>
406 réduire le temps passé à bricoler des solutions d'intégration ou des scripts maison.",h2_5:"Conclusion",p6:"Optimiser Odoo encore et encore n'est pas le bon levier si les contraintes viennent de la complexité data. La vraie question est <strong>architecturale</strong>. Et dans cette optique, intégrer une couche data spécialisée comme beVault devient la décision logique — non pour remplacer Odoo, mais pour le compléter intelligemment."},aE={title:"Politique de confidentialité",subtitle:"Comment nous traitons vos données",s1Title:"1. Introduction",s1Text:"Deployments Factory, exerçant sous le nom commercial dFakto (« nous », « notre » ou « nos »), s'engage à protéger votre vie privée. Cette Déclaration de confidentialité explique comment nous collectons, utilisons, divulguons et protégeons vos informations lorsque vous visitez notre site web ou utilisez nos services, conformément au Règlement Général sur la Protection des Données (RGPD) et aux lois européennes applicables en matière de vie privée.",s2Title:"2. Collecte des données",s2Text:"Nous pouvons collecter des informations vous concernant de la manière suivante :",s2Li1Label:"Données personnelles que vous fournissez :",s2Li1:"Nom, adresse e-mail, nom de l'entreprise, numéro de téléphone et fonction lorsque vous remplissez des formulaires de contact, demandez des démonstrations ou vous abonnez à nos newsletters.",s2Li2Label:"Données collectées automatiquement :",s2Li2:"Adresse IP, type de navigateur, informations sur l'appareil, pages visitées et temps passé sur notre site web.",s2Li3Label:"Cookies et technologies de suivi :",s2Li3:"Nous utilisons des cookies pour améliorer votre expérience de navigation et analyser le trafic du site web.",s3Title:"3. Utilisation de vos informations",s3Text:"Nous utilisons les informations collectées aux fins suivantes :",s3Li1:"Fournir, exploiter et maintenir nos services",s3Li2:"Répondre à vos demandes et requêtes de support",s3Li3:"Vous envoyer des communications marketing (uniquement avec votre consentement explicite)",s3Li4:"Améliorer notre site web et nos services",s3Li5:"Respecter nos obligations légales",s3Li6:"Protéger nos droits et prévenir la fraude",s4Title:"4. Vos droits RGPD",s4Text:"En vertu du Règlement Général sur la Protection des Données (RGPD), vous disposez des droits suivants :",s4Li1Label:"Droit d'accès :",s4Li1:"Vous pouvez demander une copie des données personnelles que nous détenons à votre sujet.",s4Li2Label:"Droit de rectification :",s4Li2:"Vous pouvez demander que nous corrigions des données inexactes ou incomplètes.",s4Li3Label:"Droit à l'effacement :",s4Li3:"Vous pouvez demander que nous supprimions vos données personnelles (« droit à l'oubli »).",s4Li4Label:"Droit à la limitation du traitement :",s4Li4:"Vous pouvez demander que nous limitions l'utilisation de vos données.",s4Li5Label:"Droit à la portabilité des données :",s4Li5:"Vous pouvez demander vos données dans un format structuré et couramment utilisé.",s4Li6Label:"Droit d'opposition :",s4Li6:"Vous pouvez vous opposer au traitement de vos données à des fins de marketing direct.",s4Li7Label:"Droit de retrait du consentement :",s4Li7:"Lorsque le traitement est basé sur le consentement, vous pouvez le retirer à tout moment.",s4Contact:"Pour exercer l'un de ces droits, veuillez nous contacter à",s5Title:"5. Cookies",s5Text:"Nous utilisons les types de cookies suivants :",s5Li1Label:"Cookies essentiels :",s5Li1:"Nécessaires au bon fonctionnement du site web.",s5Li2Label:"Cookies analytiques :",s5Li2:"Nous aident à comprendre comment les visiteurs interagissent avec notre site web.",s5Li3Label:"Cookies marketing :",s5Li3:"Utilisés pour diffuser des publicités pertinentes (uniquement avec votre consentement).",s5Manage:"Vous pouvez gérer vos préférences en matière de cookies via les paramètres de votre navigateur ou notre bannière de consentement aux cookies.",s6Title:"6. Conservation des données",s6Text:"Nous conservons vos données personnelles uniquement aussi longtemps que nécessaire pour atteindre les objectifs pour lesquels elles ont été collectées, ou conformément aux exigences légales. Les soumissions de formulaires de contact sont conservées jusqu'à 3 ans, et les enregistrements de consentement marketing sont conservés pendant la durée de votre abonnement plus 1 an.",s7Title:"7. Sécurité des données",s7Text:"Nous mettons en œuvre des mesures techniques et organisationnelles appropriées pour protéger vos données personnelles contre tout accès non autorisé, toute altération, divulgation ou destruction. Cela inclut le chiffrement, les contrôles d'accès et les évaluations de sécurité régulières.",s8Title:"8. Partage avec des tiers",s8Text:"Nous ne vendons pas vos données personnelles. Nous pouvons partager vos informations avec des prestataires de services tiers de confiance qui n
406ous assistent dans l'exploitation de notre site web et de nos services, sous réserve d'accords de confidentialité. Ceux-ci incluent les fournisseurs d'hébergement (OVHcloud, Lovable) et les services d'analyse.",s9Title:"9. Transferts internationaux",s9Text:"Vos données peuvent être transférées et traitées dans des pays situés en dehors de l'Espace Économique Européen (EEE). Lorsque cela se produit, nous veillons à ce que des garanties appropriées soient en place, telles que les Clauses Contractuelles Types approuvées par la Commission européenne.",s10Title:"10. Nous contacter",s10Text:"Si vous avez des questions concernant cette Déclaration de confidentialité ou souhaitez exercer vos droits, veuillez nous contacter :",s10Company:"Deployments Factory (dFakto)",s10Role:"Contact Protection des Données",s10Address1:"Rue Saint Hubert 17",s10Address2:"1150 Woluwé-Saint-Pierre, Belgique",s10Complaint:"Vous avez également le droit de déposer une plainte auprès d'une autorité de contrôle. En Belgique, il s'agit de l'",s10Authority:"Autorité de protection des données",lastUpdated:"Dernière mise à jour : janvier 2025"},rE={title:"Mentions légales",subtitle:"Informations juridiques et conditions",companyInfoTitle:"Raison sociale",companyName:"Dénomination sociale :",companyNameValue:"Deployments Factory (exerçant sous le nom dFakto)",registeredOffice:"Siège social :",registeredOfficeValue:"Rue Saint Hubert 17, 1150 Woluwé-Saint-Pierre, Belgique",vatNumber:"Numéro de TVA :",vatNumberValue:"BE 0479.167.371",email:"E-mail :",phone:"Téléphone :",pubDirectorTitle:"Directeur de la publication",pubDirectorText:"Le directeur de la publication de ce site web est",pubDirectorName:"Thibaut De Vylder",hostingTitle:"Hébergement",primaryHosting:"Hébergement principal :",appHosting:"Hébergement applicatif :",ipTitle:"Propriété intellectuelle",ipText:"L'ensemble du contenu de ce site web, y compris, sans s'y limiter, les textes, graphiques, logos, images, clips audio, téléchargements numériques et logiciels, est la propriété de Deployments Factory (dFakto) ou de ses fournisseurs de contenu et est protégé par les lois internationales sur le droit d'auteur. La compilation de l'ensemble du contenu de ce site est la propriété exclusive de Deployments Factory.",tmTitle:"Marques déposées",tmText:"beVault, proPilot et dFakto sont des marques déposées de Deployments Factory. Toutes les autres marques mentionnées sur ce site web sont la propriété de leurs détenteurs respectifs.",liabilityTitle:"Limitation de responsabilité",liabilityText:"Bien que Deployments Factory s'efforce de garantir l'exactitude et l'exhaustivité des informations figurant sur ce site web, nous ne faisons aucune déclaration ni garantie, expresse ou implicite, quant à l'exhaustivité, l'exactitude, la fiabilité, l'adéquation ou la disponibilité du site web ou des informations, produits, services ou graphiques associés contenus sur le site web, à quelque fin que ce soit.",linksTitle:"Liens externes",linksText:"Ce site web peut contenir des liens vers des sites web externes qui ne sont pas exploités par Deployments Factory. Nous n'avons aucun contrôle sur le contenu et la nature de ces sites et ne sommes pas responsables de leur contenu ou de leurs politiques de confidentialité.",lawTitle:"Droit applicable",lawText:"Les présentes mentions légales sont régies par le droit belge. Tout litige découlant de l'utilisation de ce site web sera soumis à la compétence exclusive des tribunaux de Bruxelles, Belgique.",contactTitle:"Contact",contactText:"Pour toute question relative aux présentes mentions légales, veuillez nous contacter à"},oE={title:"Contactez-nous",subtitle:"Prenez contact avec notre équipe pour discuter de vos projets Data, Stratégie ou ERP.",getInTouch:"Prenez contact",ourOffices:"Nos bureaux",brusselsOffice:"Bruxelles",parisOffice:"Paris",email:"Email"},sE={badge:"Candidature partenaire",title:"Rejoignez l'écosystème dFakto",subtitle:"Devenez partenaire et développez votre activité."}
406,iE={backToBlog:"Retour au Blog",category:"Stratégie IA",title:"2026 : Préparer votre informatique pour l'ère de l'IA avec beVault et éviter la complexité administrative.",date:"19 février 2026",subtitle:"Pourquoi votre informatique actuelle va devenir un frein — et comment s'y préparer.",h2_intro:"2026 : Pourquoi votre informatique actuelle va devenir un frein (et comment s'y préparer)",p_intro1:"Le constat est brutal, mais nécessaire : la manière dont nous avons construit nos systèmes informatiques ces 15 dernières années est en passe de devenir obsolète. Pas parce que vos logiciels sont mauvais, mais parce que l'usage que nous allons en faire change radicalement avec l'arrivée de l'IA.",p_intro2:"Voici l'analyse de ce qui attend les PME et ETI d'ici 2026, et comment transformer vos silos actuels en une fluidité orchestrée.",h2_1:"1. Le piège de la modernisation : L'archipel des logiciels",p1_1:"Depuis une quinzaine d'années, pour se moderniser, les entreprises ont adopté la stratégie du « meilleur outil pour chaque tâche ». Un logiciel pour la compta, un SaaS pour le marketing, un CRM pour les ventes, un ERP pour la production... Sans le vouloir, nous avons créé un « mille-feuille technologique ».",p1_2:"Une entreprise moyenne se retrouve aujourd'hui avec des dizaines d'outils différents. Le problème ? Ces outils sont des silos. Ils ne se parlent pas naturellement. La conséquence humaine : Vos équipes passent leurs journées à servir de « colle ». Elles copient une info d'un onglet, la collent dans un autre, exportent un Excel, le retraitent, et le réimportent ailleurs. C'est ce qu'on appelle la complexité administrative, et elle coûte très cher.",h2_2:"2. Le grand malentendu de l'interface graphique",p2_1:"C'est le cœur du problème pour les années à venir. Pendant 40 ans, nous avons conçu des logiciels pour les humains. Nous avons créé des boutons, des menus déroulants, des tableaux de bord colorés. C'était nécessaire pour que nous puissions utiliser la machine.",p2_2:"Mais aujourd'hui, vous voulez faire entrer l'Intelligence Artificielle (IA) dans votre entreprise. Or, pour une IA, vos belles interfaces graphiques sont des obstacles, des « murs de pixels ». L'IA travaille à la vitesse de la lumière avec du texte brut et du code. Si vous l'obligez à « regarder » un écran, à deviner où cliquer ou à comprendre qu'un bouton rouge signifie « Urgence », vous la ralentissez considérablement. C'est comme demander à un ordinateur de lire un livre en tournant les pages avec un bras robotique, alors qu'il pourrait télécharger le fichier texte en une milliseconde.",p2_3:"L'interface, qui était une aide pour l'humain, devient une taxe pour l'IA.",h2_3:"3. 2026 : L'ère de la délégation",p3_1:"Jusqu'à fin 2025, nous étions dans l'ère du « Copilote » : on chatte avec l'IA, on lui pose une question, elle répond. C'est utile, mais ça reste manuel. L'année 2026 marquera le basculement vers la délégation. Nous ne voudrons plus discuter avec l'IA, nous voudrons lui confier des missions entières : « Vérifie les stocks, commande les pièces manquantes et préviens les clients du retard ».",p3_2:"Pour réussir cette délégation, l'IA ne doit plus simuler un humain qui clique. Elle doit pouvoir se brancher directement au cerveau de votre entreprise.",h2_bevault:"La réponse : Supprimer l'intermédiaire avec beVault",p_bevault_intro:"C'est ici qu'intervient une solution comme beVault. Son rôle n'est pas d'ajouter un logiciel de plus, mais de créer des « autoroutes souterraines » entre vos données et l'IA, en contournant totalement les interfaces graphiques. Voici comment cela fonctionne concrètement, en trois étapes clés, pour rendre votre PME compatible avec le futur :",h3_step1:"Étape 1 : Passer sous le capot (Connexion directe)",p_step1:"Au lieu d'essayer de se connecter à l'écran de votre ERP ou de votre CRM, beVault va se brancher directement « à la source », c'est-à-dire aux bases de données brutes ou aux API (les connecteurs techniques). Il aspire les faits bruts (les commandes, les factures, les heures travaillées) avant qu'ils ne soient mis en forme pour un écran d'ordinateur. On récupère la matière première pure.",h3_step2:"Étape 2 : Le traducteur universel (La couche sémantique)",p_step2_1:"C'est l'étape la plus critique. Si vous aspirez les données de 10 logiciels différents, vous obtenez une tour de Babel. Dans le logiciel A, un client s'appelle « Client_ID ». Dans le logiciel B, c'est « KUNNR ». Dans le fichier Excel du commercial, c'est « Nom sté ». Pour une IA, c'est le chaos. Elle ne peut pas deviner que c'est la même chose.",p_step2_2:"beVault agit comme un dictionnaire intelligent et centralisé (basé sur la méthode Data Vault 2.0). Il définit une bonne fois pour toutes que « Client_ID », « KUNNR » et « Nom sté » correspondent au même concept métier unique. Résultat : L'IA n'a plus besoin de deviner. La structure de la donnée elle-même porte le sens.",h3_step3:"Étape 3 : Parler le langage de la machine",p_step3:"Une fois la donnée collectée et traduite, beVault la met à disposition dans un format que les machines adorent (API structurées et protocoles MCP pour les modèles de langage comme GPT ou Claude). L'agent IA n'a plus besoin de naviguer. Il pose une question technique précise à beVault et reçoit une réponse instantanée et fiable.",h3_proofpoint:"Env
406ie de voir un résultat concret ?",p_proofpoint1:"La théorie, c'est bien. La pratique, c'est mieux.",p_proofpoint2:"Découvrez comment nous avons appliqué ces principes d'IA et de structuration de données pour aider <strong>PCMA</strong> à transformer ses événements hybrides.",p_proofpoint_cta:`👉 <a href="https://www.bevault.io/5-conference-attendance-increase-hybrid-solutions/" target="_blank" rel="noopener noreferrer"><strong>Lire l'étude de cas : +5% de fréquentation grâce aux solutions hybrides</strong></a>`,h2_conclusion:"Conclusion : Arrêtez de payer la « Taxe de l'interface »",p_conclusion1:"Le calcul économique est simple. Sans cette approche : Vous payez des humains pour traduire des données machine en écrans visuels. Puis vous payez des outils d'IA pour tenter de re-comprendre ces écrans visuels. C'est une double perte de temps et d'argent.",p_conclusion2:"Avec beVault : Vous automatisez la traduction une seule fois : de la donnée brute vers un langage universel pour vos machines.",p_conclusion3:"Votre entreprise passe du stade de « bibliothèque désordonnée où l'on cherche les livres à la main » à celui de « base de connaissances numérique instantanée ». C'est la seule condition pour que l'IA devienne un véritable moteur de croissance pour votre PME, et non un simple gadget de conversation."},lE={tag:"Prochain Webinaire",title:"Webinaire Stack Analytique Odoo",date:"Jeudi 28 mai à 16h00 (CET)",language:"Webinaire en direct en français",cta:"S'inscrire"},cE={title:"Replay du webinaire : La stack analytique ultime pour Odoo",metaDesc:"Revivez le webinaire : Loïc Gamain (dFakto) et Julien Masson (Osolutions) présentent l'architecture idéale pour résoudre les défis data complexes dans l'écosystème Odoo.",category:"Replay",backToBlog:"Retour au Blog",heroSubtitle:"Lors de cette session, Loïc Gamain (dFakto) et Julien Masson (Osolutions) présentent l'architecture idéale pour résoudre les défis data complexes dans l'écosystème Odoo. Revivez la démonstration intégrale ci-dessous.",problemTitle:"Odoo n'est pas un Data Warehouse (ni un outil de BI)",problemIntro:"Odoo est un ERP exceptionnel pour gérer l'opérationnel. Cependant, lorsque les projets de vos clients prennent de l'ampleur, trois limites majeures apparaissent :",problem1:"<strong>La performance :</strong> Les requêtes lourdes sur plusieurs années d'historique dégradent l'expérience des utilisateurs en production.",problem2:"<strong>Les silos de données :</strong> Il manque une expérience unifiée lorsqu'il faut croiser les informations d'Odoo avec des logiciels externes (CRM, anciens systèmes, fichiers Excel).",problem3:"<strong>Le piège financier :</strong> Pour pallier ces manques, la facture explose souvent à cause de l'achat de licences BI externes (comme Power BI) qui forcent les utilisateurs à quitter leur ERP.",solution1Title:"L'architecture Back-end : Préparer la donnée avec beVault",solution1Text:"La solution pour protéger les performances d'Odoo n'est pas d'optimiser le code. Il faut changer d'architecture et créer une couche de données indépendante. C'est ici qu'intervient beVault, notre plateforme Data « All-in-One » souveraine (100% belge). En coulisses, beVault se connecte à vos sources et extrait la donnée brute sans aucun impact sur la production. Vos règles métier sont appliquées automatiquement. Les données sont nettoyées, historisées en toute sécurité, et distribuées pour être prêtes à l'emploi.",solution2Title:"L'interface Front-end : La BI native avec O'Dashboard",solution2Text:`Une donnée parfaite ne sert à rien si elle n'est pas affichée là où travaillent vos utilisateurs. Grâce à notre alliance avec Osolutions, la donnée préparée par beVault est directement exploitée par <a href="https://odashboard.eu/" target="_blank" rel="noopener noreferrer">O'Dashboard</a>. Le résultat est sans appel : des tableaux de bord multi-sources complexes affichés nativement dans les menus d'Odoo. Une expérience utilisateur fluide, zéro outil dispersé et zéro coût de licence BI externe.`,ctaTitle:"Vous avez un projet data Odoo complexe en tête ? On a la solution.",ctaText:"",ctaButton:"En parler avec notre équipe"},dE={badge:"ÉDITION LIMITÉE",heroTitle:"dFakto a sa propre bière.",heroSubtitle:"Une recette exclusive, co-créée avec la Brasserie Witloof à Bruxelles.",heroDesc:"Parce que les meilleures décisions se prennent parfois autour d'une bière. dFakto a collaboré avec la Brasserie Witloof, brasserie artisanale bruxelloise, pour créer une recette exclusive — brassée en petites quantités, avec autant de soin que nos algorithmes.",photoPlaceholder:"Photo bière dFakto — à venir",partnerLabel:"— NOTRE PARTENAIRE —",partnerTitle:"Witloof, brasserie artisanale bruxelloise",partnerText:"La Brasserie Witloof est une brasserie artisanale indépendante basée à Bruxelles. Passionnée par les bières de qualité et les collaborations créatives, elle partage avec dFakto les mêmes valeurs : l'exigence, l'attention aux détails et l'ancrage local.",partnerLink:"Découvrir la brasserie Witloof →",re
406cipeLabel:"— UNE RECETTE EXCLUSIVE —",recipeTitle:"Co-créée. Unique. Artisanale.",recipeSubtitle:"Cette bière n'existe nulle part ailleurs. La recette a été développée en collaboration étroite entre les équipes dFakto et les brasseurs de Witloof — un assemblage unique, brassé en édition limitée.",card1Title:"Recette exclusive",card1Text:"Développée spécialement pour dFakto, impossible à trouver ailleurs.",card2Title:"100% bruxelloise",card2Text:"Brassée à Bruxelles par des artisans passionnés.",card3Title:"Édition limitée",card3Text:"Produite en petites quantités pour garder le caractère artisanal.",orderLabel:"— INTÉRESSÉ ? —",orderTitle:"Commandez nos bières",orderSubtitle:"Vous souhaitez recevoir nos bières dFakto pour un événement, un client ou simplement pour votre équipe ? Contactez-nous.",metaTitle:"La bière dFakto x Witloof | Édition limitée",metaDesc:"Une bière artisanale exclusive, co-créée par dFakto et la Brasserie Witloof à Bruxelles. Édition limitée."},uE={metaTitle:"dFakto cède ses activités Odoo à Niboo et accélère sur la data",metaDesc:"dFakto confie ses activités Odoo à Niboo et se recentre sur la gestion des données d'entreprise avec beVault, proPilot et beVault for Odoo.",category:"Communiqué de presse",backToBlog:"Retour au Blog",date:"Paris/Bruxelles, le 11 septembre 2026",title:"dFakto cède ses activités Odoo à Niboo et accélère sur la data avec beVault et proPilot",subtitle:"Effective depuis le 1er mai 2026, cette décision stratégique marque le recentrage de dFakto sur son cœur de métier historique : la gestion de données d'entreprise.",intro:"<strong>Paris/Bruxelles, le 11 septembre 2026</strong> – dFakto, pionnier des solutions de gestion de données depuis 2000, annonce la cession de l'ensemble de ses activités Odoo à Niboo, son partenaire de longue date. Cette transition, effective depuis le 1er mai 2026, permet à dFakto de concentrer 100 % de son énergie et de ses ressources sur ce qui fait son ADN depuis plus de 25 ans : la maîtrise de la donnée d'entreprise à travers ses produits beVault et proPilot.",h2_1:"Un choix stratégique délibéré",p1_1:"Fondée en 2000 avec une présence à Paris et Bruxelles, dFakto s'est imposée comme un leader technologique dans le domaine de la data. Éditeur de beVault, première solution certifiée Data Vault 2.0, et de proPilot, l'entreprise accompagne les organisations dans la transformation de leurs architectures de données pour améliorer leur Business Intelligence et leurs capacités d'Intelligence Artificielle.",quote1:"Après 26 ans d'existence, nous avons pris la décision de nous recentrer sur ce qui nous distingue vraiment : la donnée. La gestion de données modernes exige une expertise pointue, une innovation constante et une concentration totale. C'est ce que méritent beVault et proPilot, et c'est ce que nous allons leur offrir.",quote1Author:"Thibaut De Vylder, CEO de dFakto",p1_2:"Cette cession n'est pas un retrait, mais un choix assumé de spécialisation. dFakto cède une activité prospère à un partenaire de confiance pour mieux accélérer sur son terrain d'excellence.",h2_2:"Un partenariat de 11 ans qui évolue naturellement",p2_1:"Niboo et dFakto collaborent depuis 11 ans dans l'écosystème Odoo. Niboo était déjà le partenaire principal de dFakto sur ce périmètre, assurant une grande partie des implémentations et services associés. Cette reprise officialise une réalité opérationnelle de longue date et s'inscrit dans un engagement mutuel sur les 5 prochaines années.",quote2:"Confier cette activité à Niboo, c'est la suite logique d'une décennie de collaboration. Nous avons construit cette confiance ensemble, et nous savons que nos clients seront entre les meilleures mains possibles.",quote2Author:"Loic Gamain, Managing Director de dFakto",p2_2:"Les équipes dFakto dédiées à Odoo rejoignent Niboo, garantissant une continuité parfaite pour les clients. Les contrats sont repris à l'identique, et dFakto continue d'assurer l'infrastructure et l'hébergement, assurant une transition en douceur sans aucune interruption de service.",h2_3:"Une continuité totale pour les clients",p3_1:"Les clients actuels de dFakto sur le périmètre Odoo ne subiront aucune rupture. Les mêmes équipes continuent de les accompagner, désormais au sein de Niboo, Gold Partner historique de Odoo.",quote3:"Nos clients ne perdent rien, bien au contraire. Ils bénéficient désormais de deux partenaires ultra-spécialisés : Niboo sur Odoo, dFakto sur la data. C'est le meilleur des deux mondes.",quote3Author:"Thibaut De Vylder, CEO et fondateur de dFakto",h2_4:"beVault for Odoo : l'alliance stratég
406ique continue",p4_1:"La cession des activités Odoo ne signifie en aucun cas un retrait de dFakto de cet écosystème. Au contraire, l'entreprise renforce sa présence via beVault for Odoo, une solution d'intégration et de gestion de données spécialement conçue pour les utilisateurs d'Odoo.",p4_2:"beVault for Odoo permet aux entreprises utilisant l'ERP Odoo de structurer, historiser et exploiter leurs données avec la puissance du Data Vault 2.0, garantissant évolutivité, traçabilité et conformité. Cette solution illustre la complémentarité parfaite entre Niboo, expert de l'ERP, et dFakto, spécialiste de la data.",quote4:"Notre lien avec l'écosystème Odoo reste fort et stratégique. beVault for Odoo est une passerelle entre nos deux expertises, et cette alliance technique va s'approfondir dans les années à venir.",quote4Author:"Loïc Gamain",p4_3:'Pour découvrir beVault for Odoo en détail, dFakto a organisé un webinaire dédié le 28 mai 2026. Retrouvez le replay ici : <a href="https://www.youtube.com/watch?v=UTnvdG_hR-w" target="_blank" rel="noopener noreferrer">Webinaire : Données structurées &amp; dashboards natifs dans Odoo : la stack analytique manquante</a>.',h2_5:"Vision et perspectives",p5_1:"Libérée de la gestion d'une activité ERP, dFakto va accélérer le développement de beVault et proPilot. L'entreprise prévoit plusieurs annonces majeures dans les mois à venir concernant de nouvelles fonctionnalités, des intégrations avancées et des cas d'usage innovants en Intelligence Artificielle et Business Intelligence.",quote5:"La data est au cœur de toutes les transformations digitales actuelles. Nous avons une vision claire, des produits différenciants, et maintenant, 100 % de notre focus. Les prochaines années vont être passionnantes.",quote5Author:"Thibaut De Vylder",h2_about1:"À propos de dFakto",about1:"Fondée en 2000, dFakto est un éditeur de logiciels spécialisé dans la gestion de données d'entreprise. Basée à Paris et Bruxelles, l'entreprise développe beVault et proPilot, des outils qui révolutionnent la manière dont les organisations collectent, sécurisent et exploitent leurs données pour améliorer leur Business Intelligence et leurs capacités d'Intelligence Artificielle. dFakto accompagne des entreprises de toutes tailles dans la construction d'architectures de données robustes, évolutives et conformes aux standards internationaux.",contact1:'<strong>Contact presse dFakto :</strong><br />Loïc Gamain, Managing Director<br /><a href="mailto:[email protected]">[email protected]</a><br />+33.1.87.43.00.35<br /><a href="https://www.dfakto.com" target="_blank" rel="noopener noreferrer">www.dfakto.com</a>',h2_about2:"À propos de Niboo",about2_1:"Niboo est un intégrateur Odoo belge fondé en 2014 et Odoo Gold Partner. Établie à Bruxelles et présente en France et dans les Outre-Mers, l'entreprise compte 37 collaborateurs et couvre l'ensemble du cycle de vie d'un projet Odoo : analyse fonctionnelle, implémentation, développement, reprise de données, formation, hébergement et support.",about2_2:"Sa méthode consiste à implémenter Odoo au plus près du standard et à ne développer que ce qui apporte une valeur métier propre au client. Cette discipline garantit des solutions qui restent alignées sur les versions successives de l'éditeur et des coûts de maintenance prévisibles.",contact2:'<strong>Contact presse Niboo :</strong><br />Ismail Belayachi, Responsable Marketing<br /><a href="mailto:[email protected]">[email protected]</a><br />+32 479 07 62 30<br /><a href="https://www.niboo.com" target="_blank" rel="noopener noreferrer">www.niboo.com</a>',pressTitle:"Dans la presse",pressDesc:"Retrouvez l'article consacré à l'opération Niboo x dFakto, publié dans Trends-Tend
406ances.",pressButton:"Lire l'article (PDF)",pressButtonOnline:"Lire l'article en ligne",shareLinkedin:"Partager sur LinkedIn",shareCopy:"Copier le lien",shareCopied:"Lien copié",ctaTitle:"Un projet Odoo, data ou les deux ? Parlons-en.",ctaButton:"Échanger avec nos experts"},pE={notFound:"Oups ! Page introuvable",returnHome:"Retour à l'accueil"},mE={title:"Réserver une démo",subtitle:"Planifiez une démo personnalisée avec notre équipe et découvrez comment dFakto peut transformer votre stratégie data",cta:"Réserver un rendez-vous"},hE={backToResources:"Retour aux ressources",title:"dFakto obtient la certification ISO/IEC 27001 et renforce son engagement en matière de sécurité de l'information",intro:"Nous sommes fiers d'annoncer que dFakto (Deployments Factory) est désormais certifiée ISO/IEC 27001, une étape majeure dans notre engagement continu à protéger l'information et à mériter la confiance de nos clients et partenaires.",p1:"Cette réussite reflète le travail accompli pour intégrer la sécurité dans notre fonctionnement. D'abord, à travers nos collaborateurs, nos processus et nos technologies. Et de manière continue, pour gérer les risques liés à la sécurité de l'information de façon structurée et transparente.",p2:"Cette étape a été franchie en étroite collaboration avec Probo, dont la plateforme et l'équipe nous ont accompagnés tout au long du parcours ISO 27001 et ont rendu le processus nettement plus fluide du début à la fin.",h2_1:"Ce que cela signifie pour nos clients",p3:"La certification ISO/IEC 27001 apporte une validation indépendante que dFakto a mis en place et exploite un Système de Management de la Sécurité de l'Information (SMSI) robuste, conforme aux meilleures pratiques internationales.",p4:"Pour nos clients, cela signifie :",list1:["Une confiance accrue dans la manière dont nous protégeons les informations sensibles et confidentielles","Une approche fondée sur les risques pour identifier et gérer les menaces de sécurité de l'information","Des évaluations de sécurité fournisseurs et des revues d'achat facilitées","Un alignement avec les exigences de sécurité des entreprises, réglementaires et contractuelles","L'assurance que la sécurité est intégrée à nos opérations quotidiennes"],p5:"L'ISO/IEC 27001 n'est pas un effort ponctuel. Elle représente un engagement continu à maintenir, surveiller et améliorer nos pratiques de sécurité de l'information dans la durée.",h2_2:"Qu'est-ce que l'ISO/IEC 27001, exactement ?",p6:"L'ISO/IEC 27001 est la principale norme internationale de management de la sécurité de l'information, publiée par l'Organisation internationale de normalisation (ISO) et la Commission électrotechnique internationale (IEC).",p7:"La norme définit les exigences pour établir, mettre en œuvre, maintenir et améliorer continuellement un Système de Management de la Sécurité de l'Information (SMSI). Ce système aide les organisations à gérer systématiquement les risques de sécurité de l'information, en tenant compte :",list2:["des personnes et des processus organisationnels","des technologies et de l'infrastructure","des obligations légales, réglementaires et contractuelles"],p8:"Dans le cadre du processus de certification, un organisme de certification indépendant et accrédité a audité notre SMSI et vérifié qu'il répond aux exigences de l'ISO/IEC 27001 dans le périmètre de certification défini.",h2_3:"Une approche structurée et continue de la sécurité",p9:"L'obtention de la certification ISO/IEC 27001 nous a amenés à formaliser et renforcer notre approche de la sécurité de l'information, notamment :",list3:["Identifier et évaluer les risques de sécurité de l'information","Définir et mettre en œuvre des mesures de sécurité appropriées","Établir une gouvernance, des politiques et des responsabilités claires","Surveiller, revoir et améliorer en continu notre posture de sécurité"],certificate:'Vous pouvez consulter notre certificat ISO 27001 <a href="https://dfakto.eu.probopages.com/en" target="_blank" rel="noopener noreferrer">ici</a>.'},fE={nav:f5,hero:g5,stats:v5,products:b5,industries:x5,cta:y5,trustedBy:w5,office
406s:k5,maturity:j5,bevaultPage:T5,propilotPage:N5,odooPage:D5,solutionPage:C5,agenticAi:S5,menu:P5,partnerProgram:E5,partnerEcosystem:I5,consulting:A5,resources:R5,glossary:_5,successStories:O5,caseCrelanAxa:L5,caseConsolidating:z5,caseSteering:M5,caseCrisisHospital:F5,caseRiskFactoring:q5,footer:B5,caseBrussHelp:V5,caseFasterReporting:$5,caseUnifiedReporting:H5,blogHub:W5,blogMechanicsDataVault:U5,blogIntroducingDDM:K5,blogDDMFramework:G5,blogDDMPerformance:Q5,blogDatafaktoryBusiness:Y5,blogWhyDWHTakeForever:Z5,blogScalefreePartnership:X5,blogPcmaAI:J5,blogCeo25Years:eE,blogOdooVsDW:tE,blogOdooPerf:nE,privacy:aE,legal:rE,contactPage:oE,partnerApply:sE,blogAIReadiness:iE,webinar:lE,blogWebinarOdooAnalytics:cE,drink:dE,pressNibooOdoo:uE,system:pE,bookDemo:mE,blogIso27001:hE},gE={products:"Producten",solutions:"Oplossingen",partners:"Partners",resources:"Resources",consulting:"Over dFakto",contactUs:"Neem contact op",agenticAi:"Agentic AI",byUseCase:"Per uitdaging",byIndustry:"Per sector"},vE={bevaultDesc:"Gecertificeerd Data Vault 2.0-automatiseringsplatform",propilotDesc:"Platform voor strategische uitvoering en sturing",odooDesc:"Odoo + Data Analytics"},bE={badge:"Partnerprogramma",heroTitle1:"Laat uw business groeien met",heroTitle2:"dFakto",heroDesc:"Word reseller binnen ons partnerprogramma en verdien 30% tot 50% commissie in jaar 1, plus terugkerende inkomsten. Opleiding, ondersteuning en co-marketing inbegrepen.",becomePartner:"Word partner",registerLead:"Bespreek uw project",registerLeadTitle:"Bespreek uw project",levelsTitle:"Partnerniveaus",levelsSubtitle:"Groei door onze partnerniveaus en geniet van steeds meer voordelen",levelRegistered:"Geregistreerd",levelCertified:"Gecertificeerd",levelStrategic:"Strategisch",regBenefit1:"Toegang tot het partnerportaal",regBenefit2:"Productdocumentatie",regBenefit3:"Basismateriaal voor verkoop",regBenefit4:"10% commissie op doorverwijzingen",certBenefit1:"Alle voordelen van Geregistreerd",certBenefit2:"Technische certificering",certBenefit3:"Kansen voor co-marketing",certBenefit4:"30% commissie op deals",certBenefit5:"Ondersteuning met voorrang",stratBenefit1:"Alle voordelen van Gecertificeerd",stratBenefit2:"Gezamenlijke businessplanning",stratBenefit3:"Sponsorschap op directieniveau",stratBenefit4
406:"50% commissie op deals",stratBenefit5:"Aandeel in terugkerende inkomsten",stratBenefit6:"Exclusieve leads",benefitsTitle:"Voordelen voor partners",benefit1Title:"Aantrekkelijke commissies",benefit1Desc:"30 tot 50% in jaar 1, plus een aandeel in de terugkerende inkomsten",benefit2Title:"Gratis opleiding",benefit2Desc:"Certificering via ons e-learningplatform",benefit3Title:"Co-marketing",benefit3Desc:"Gezamenlijke webinars, events en content",benefit4Title:"Leads delen",benefit4Desc:"Gekwalificeerde leads voor strategische partners",howTitle:"Hoe het werkt",step1Title:"Aanvraag",step1Desc:"Dien uw partneraanvraag in met uw bedrijfsgegevens en expertise",step2Title:"Onboarding",step2Desc:"Doorloop de onboarding en krijg toegang tot alle opleidingsmateriaal",step3Title:"Certificering",step3Desc:"Behaal uw certificering op beVault en proPilot via onze e-learning",step4Title:"Samen verkopen",step4Desc:"Genereer leads en sluit deals met onze ondersteuning",ctaTitle:"Klaar om partner te worden?",ctaDesc:"Dien vandaag nog uw aanvraag in en ontsluit nieuwe inkomstenbronnen.",menuDesc:"Word reseller of integrator"},xE={heroTitle:"Partner-ecosysteem",heroSubtitle:"Ontdek onze technologie- en servicepartners.",techTitle:"Technologiestack",techSubtitle:"Native connectoren voor uw volledige data-ecosysteem",catBi:"BI & Analytics",catData:"Dataplatforms",catAutomation:"Automatisering",catCloud:"Cloud & infrastru
406ctuur",catApps:"Applicaties",partnersTitle:"Onze partners",partnersSubtitle:"Vertrouwde integratoren die wereldwijd oplossingen van dFakto leveren",findBadge:"Vind een expert",findTitle:"Op zoek naar een integrator?",findDesc:"Vertel ons over uw project en wij brengen u in contact met de juiste partner.",ctaTitle:"Wilt u partner worden?",ctaDesc:"Sluit u aan bij ons partner-ecosysteem en laat uw business groeien met dFakto",ctaButton:"Bekijk het partnerprogramma",menuDesc:"Ontdek onze technologie- en servicepartners"},yE={badge:"Data Vault 2.0-gecertificeerde expertise",titleStart:"Van datachaos naar",titleHighlight:"helderheid voor uw organisatie.",subtitle:"Het analytische platform voor impact. Automatiseer uw datafundament met beVault en stuur uw organisatie met proPilot.",ctaPrimary:"Ontdek onze oplossingen",ctaSecondary:"Neem contact op"},wE={consultants:"Data-experts",years:"Jaar expertise",customers:"Zakelijke klanten",certifiedValue:"Gecertificeerd",certified:"Data Vault 2.0"},kE={sectionTitle:"Producten voor organisaties",sectionSubtitle:"Oplossingen voor geautomatiseerde data en strategische sturing",bevault:{subtitle:"Geautomatiseerde datawarehouse-opbouw",description:"Automatiseer uw datawarehouse met de gecertificeerde Data Vault-methodologie. Ga in enkele uren van ruwe data naar bruikbare bedrijfsinformatie, niet in maanden.",feature1:"Geautomatiseerde Data Vault 2.0",feature2:"Volledige traceerbaarheid van data",feature3:"Klaar voor CI/CD"},propilot:{subtitle:"Strategische uitvoeringssturing",description:"Vertaal uw strategie naar actie. Verbind OKR's, KPI's en initiatieven binnen uw organisatie met volledige zichtbaarheid en verantwoordelijkheid.",feature1:"Afstemming van OKR's",feature2:"Realtime dashboards",feature3:"Opvolging van initiatieven"},odoo:{subtitle:"Odoo + Data Analytics",description:"Verbind Odoo met uw datawarehouse. Zet uw operationele ERP-data om in betrouwbare strategische inzichten.",feature1:"Verbinding tussen Odoo en het datawarehouse",feature2:"Geavanceerde rapportering op uw ERP-data",feature3:"Data die klaar is voor AI"},learnMore:"Meer informatie",midCta:"Werk aan uw strategie"},jE={sectionTitle:"Sectorale oplossingen",sectionSubtitle:"Diepgaande expertise in sectoren waar data-integriteit essentieel is",finance:{title:"Finance",description:"BCBS 239-compliance, risicobeheer en auditklare rapportering"},publicSector:{title:"Publieke sector",description:"GDPR-compliance, migratie van legacysystemen en transparante publieke rapportering"},industry:{title:"Industrie",description:"Industrie 4.0, integratie van IoT-data en optimalisatie van de toeleveringsketen"},exploreSolutions:"Ontdek de oplossingen"},TE={title:"Klaar om uw datastrategie te transformeren?",subtitle:"Sluit u aan bij 50+ organisaties die met dFakto helderheid in hun data vonden.",primary:"Boek een workshop",secondary:"Neem contact op"},NE="Vertrouwd door toonaangevende organisaties",DE={title:"Onze kantoren"},CE={title:"Data maturity assessment",subtitle:"Een snelle test: waar staat uw organisatie vandaag?",restart:"Opnieuw starten",aheadOfCurve:"U loopt voorop",roomForImprovement:"Ruimte voor verbetering",bevault:{question:"Hoe lang duurt het om een nieuwe databron aan te sluiten?",opt1:"2 uur",opt2:"1 week",opt3:"1 maand of langer",leaderText:"Uw datainfrastructuur is wendbaar. Ontdek hoe u verder kunt opschalen.",leaderCta:"Ontdek hoe u opschaalt",bottleneckText:"Trage dataintegratie remt de wendbaarheid van uw organisatie af.",bottleneckCta:"Los dit op met beVault"},propilot:{question:"Hoe volgt u uw strategische KPI's op?",opt1:"Excel/PPT",opt2:"BI-tool",opt3:"Specifiek platform",leaderText:"U beschikt over een stevige basis voor strategische afstemming.",leaderCta:"Verder optimaliseren",bottleneckText:"Manuele opvolging creëert silo's en vertraagt strategische beslissingen.",bottleneckCta:"Ontdek proPilot"},odoo:{question:"Wat is de status van uw ERP?",opt1:"Legacysysteem",opt2:"Manuele processen",opt3:"Cloud-ERP",leaderText:"Uw werking is gemoderniseerd. Laten we verder optimaliseren.",leaderCta:"Ontdek de integraties",bottleneckText:"Legacysystemen en manuele processen vertragen uw organisatie.",bottleneckCta:"Moderniseer met Odoo"}},SE={tagline:"Van datachaos naar helderheid voor uw organisatie.",products:"Producten",solutions:"Oplossingen",partners:"Partners",company:"Bedrijf",consulting:"Over d
406Fakto",resources:"Resources",contact:"Contact",digitalTransformation:"Digitale transformatie",regulatoryCompliance:"Regelgeving en compliance",operationalExcellence:"Operationele uitmuntendheid",finance:"Finance",publicSector:"Publieke sector",industry:"Industrie",program:"Partnerprogramma",ecosystem:"Ecosysteem",copyright:"Alle rechten voorbehouden.",privacyPolicy:"Privacyverklaring",legalNotice:"Wettelijke vermeldingen",brussels:"Brussel"},PE={badge:"Gecertificeerd Data Vault 2.0",title:"beVault: automatisering van",titleHighlight:"dataproducten",subtitle:"Transformeer uw datainfrastructuur met de geautomatiseerde generatie van Data Vault 2.0. Van chaotische bronnen naar een robuust analytisch fundament — in dagen, niet in maanden.",ctaPrimary:"Demo inplannen",ctaSecondary:"Bekijk de klantcases",benefitTime:"Minder ontwikkeltijd",benefitLineage:"Dekking van datalineage",benefitErrors:"Manuele codeerfouten",benefitMonitoring:"Geautomatiseerde monitoring",featuresTitle:"Automatisering op ondernemingsniveau",featuresSubtitle:"beVault beheerst de complexiteit, zodat uw team zich kan richten op zakelijke meerwaarde",featureAutoTitle:"Geautomatiseerde Data Vault 2.0",featureAutoDesc:"Genereer Hubs, Links en Satellites vanuit een business-first benadering. De gecertificeerde methodologie garandeert best practices.",featureLineageTitle:"Volledige datalineage",featureLineageDesc:"Volg elk datagegeven van bron tot rapport. Een volledig audittraject voor compliance en foutanalyse.",featureRapidTitle:"Snelle uitrol",featureRapidDesc:"Ga in dagen van ruwe data naar een analyseklaar datawarehouse, niet in maanden. Vooraf gebouwde patronen versnellen de oplevering.",featureAuditTitle:"100% auditbaarheid",featureAuditDesc:"Elke wijziging is geversioneerd en traceerbaar. Voldoe met vertrouwen aan de strengste regelgeving.",featureOnPremTitle:"On-premise en cloud",featureOnPremDesc:"Overal uitrolbaar. Wij ondersteunen volledige on-premise opstellingen voor maximale veiligheid, of private cloudomgevingen.",featureIncrTitle:"Incrementeel laden",featureIncrDesc:"Efficiënte deltaverwerking beperkt het resourcegebruik en houdt uw data nagenoeg realtime actueel.",platformsTitle:"Overal uitrolbaar",platformsSubtitle:"Native ondersteuning voor alle grote dataplatformen",howTitle:"Zo werkt beVault",step1Title:"Modelleer uw business",step1Desc:"Bouw een datamodel dat uw unieke bedrijfsprocessen echt weerspiegelt. De mens blijft betrokken, in een business-first benadering.",step2Title:"Verbind uw bronnen",step2Desc:"Koppel uw brondata aan uw bedrijfsmodel zonder technische vertekening. Ingebouwde controles op datakwaliteit bij de ingestie.",step3Title:"Genereren en uitrollen",step3Desc:"Volledige DDL, ETL en documentatie worden onmiddellijk gegenereerd",step4Title:"Opvolgen en verfijnen",step4Desc:"Ingebouwde monitoring en een model dat eenvoudig mee evolueert",deepDiveTitle:"Op zoek naar technische verdieping?",deepDiveDesc:"Bezoek onze productsite voor documentatie, tutorials en meer.",deepDiveCta:"Naar de beVault-website",ctaBottomTitle:"Klaar om uw datawarehouse te automatiseren?",ctaBottomSubtitle:"Ontdek in een persoonlijke demo hoe beVault uw datainfrastructuur transformeert.",ctaBottomPrimary:"Demo inplannen",ctaBottomSecondary:"Naar e-learning"},EE={badge:"Platform voor strategische uitvoering",title:"proPilot: zet strategie om in",titleHighlight:"actie",subtitle:"Verbind doelstellingen, initiatieven en KPI's binnen uw hele organisatie. Geef uw leidinggevenden het inzicht om de strategie met vertrouwen te sturen.",ctaPrimary:"Demo inplannen",ctaSecondary:"Bekijk de documentatie",benefitGoal:"Betere realisatie van doelstellingen",benefitAlignment:"Snellere strategische afstemming",benefitVisibility:"Inzicht over alle teams heen",benefitTruth:"Eén betrouwbare bron",featuresTitle:"Volledig management van strategische uitvoering",featuresSubtitle:"Alles wat u nodig heeft om strategie om te zetten in meetbare resultaten",featureOkrTitle:"OKR-beheer",featureOkrDesc:"Definieer, cascadeer en volg Objectives & Key Results op in uw hele organisatie, met volledig zicht op de afstemming.",featureDashTitle:"Realtime dashboards",featureDashDesc:"Live performantiedashboards die met uw databronnen verbonden zijn voor steeds actuele strategische inzichten.",featureInitTitle:"Opvolging van initiatieven",featureInitDesc:"Koppel strategische initiatieven aan doelstellingen. Volg voortgang, middelen en afhankelijkheden op één plek.",featureTeamTitle:"Afstemming van teams",featureTeamDesc:"Zorg dat elk team begrijpt hoe het bijdraagt aan de bedrijfsdoelstellingen, dankzij cascaderende doelstellingen.",featureNotifTitle:"Slimme meldingen",featureNotifDesc:"Automatische waarschuwingen wanneer indicatoren afwijken of deadlines naderen. Zo mist u geen enkele mijlpaal.",featureReportTitle:"Directierapportering",featureReportDesc:"Rapporten voor het directiecomité en updates voor belanghebbenden met één klik, in heldere datagedreven presentaties.",useCasesTitle:"Gebouwd voor elke leidinggevende",forExecutives:"Voor directieleden",execItem1:"Rapportering klaar voor het directiecomité",execItem2:"Inzicht in de hele organisatie",execItem3:"Opvolging van strategische risico's",forStrategy:"Voor strategieteams",stratItem1:"Beheer van de OKR-cascade",stratItem2:"Portfoliobeheer van initiatieven",stratItem3:"Afstemming over functies heen",forTeamLeads:"Voor teamverantwoordelijken",teamItem1:"Duidelijke afstemming van doelstellingen",teamItem2:"Voortgangsopvolging",teamItem3:"Zicht op de beschikbare middelen",deepDiveTitle:"Op zoek naar technische verdieping?",deepDiveDesc:"Bezoek onze productsite voor documentatie, tutorials en meer.",deepDiveCta:"Naar de proPilot-website",ctaBottomTitle:"Klaar om uw strategie met vertrouwen uit te voeren?",ctaBottomSubt
406itle:"Ontdek hoe proPilot uw organisatie afstemt op wat er echt toe doet.",ctaBottomPrimary:"Demo inplannen"},IE={metaTitle:"Odoo + Data Analytics | Maak van uw Odoo-data een strategische troef | dFakto",metaDescription:"Verbind Odoo met uw datawarehouse. Geavanceerde rapportering, uniforme KPI's en data die klaar is voor AI, met beVault en proPilot.",badge:"Odoo + Data Analytics",heroTitle:"Odoo voor uw activiteiten. beVault voor uw data.",heroSubtitle:"Verbind uw Odoo-data met uw datawarehouse en zet operationele ERP-data om in betrouwbare strategische inzichten.",heroCta:"Bespreek uw project →",challengesTitle:"De uitdagingen waarmee u wordt geconfronteerd",challengesSubtitle:"De typische beperkingen van organisaties die Odoo gebruiken zonder datastrategie",challenge1Title:"Rapportering beperkt tot de standaarddashboards",challenge1Desc:"De standaarddashboards van Odoo volstaan niet meer zodra u meerdere databronnen combineert.",challenge2Title:"Data in silo's",challenge2Desc:"Uw Odoo-data blijft losstaan van uw andere systemen: CRM, finance, logistiek en meer.",challenge3Title:"AI en analyse geblokkeerd",challenge3Desc:"Zonder gestructureerd datawarehouse kunt u uw Odoo-data niet inzetten voor geavanceerde analyse of AI.",approachTitle:"De aanpak van dFakto",foundationLabel:"Het fundament",foundationDesc:"Verbind Odoo met uw datawarehouse en garandeer de volledige traceerbaarheid van uw ERP-data.",bevault1:"Geautomatiseerde extractie van Odoo-data",bevault2:"Integratie met al uw andere bronnen",bevault3:"Data gestructureerd volgens Data Vault 2.0 — volledig auditbaar",strategyLabel:"De strategie",strategyDesc:"Stuur uw activiteiten met uniforme indicatoren, opgebouwd uit al uw bronnen.",propilot1:"Realtime dashboards over al uw systemen heen",propilot2:"Bedrijfsindicatoren berekend op al uw data",propilot3:"Data die klaar is voor uw AI-modellen",testimonialLabel:"KLANTGETUIGENIS",caseCompany:"Industrieel bedrijf",caseResult:"Uniforme rapportering in 3 weken",caseQuote:"We gebruikten Odoo al 5 jaar zonder onze data echt te benutten. beVault heeft alles veranderd.",ctaBottomTitle:"Klaar om meer waarde uit uw Odoo-data te halen?",ctaBottomPrimary:"Bespreek uw project →",ctaBottomSecondary:"Bekijk onze klantcases →"},AE={bookDemo:"Plan een gesprek",challengesTitle:"Uw belangrijkste uitdagingen",challengesSubtitle:"Veelvoorkomende knelpunten rond {{solution}} die organisaties afremmen",approachTitle:"De aanpak van dFakto",foundationLabel:"De basis",foundationDesc:"Automatiseer uw data-integratie. Zorg voor 100% auditbaarheid en volledige datalineage voor toezichthouders.",strategyLabel:"De strategie",strategyDesc:"Stem uw portfolio af op regelgevende deadlines en strategische doelstellingen.",successStory:"Klantgetuigenis",ctaTitle:"Klaar om uw uitdagingen rond {{solution}} aan te pakken?",ctaSubtitle:"Plan een persoonlijke demo en ontdek hoe wij u kunnen helpen.",notFound:"Oplossing niet gevonden",returnHome:"Terug naar de homepage",digitalTransformation:{title:"Digitale transformatie",subtitle:"Moderniseer uw data-infrastructuur",heroDesc:"Versnel uw digitale transformatie dankzij een betrouwbaar datafundament en duidelijke kaders voor strategische uitvoering.",challenge1Title:"Complexiteit van bestaande systemen",challenge1Desc:"Data zit verspreid over tientallen bestaande systemen, met blinde vlekken tot gevolg",challenge2Title:"Handmatige dataprocessen",challenge2Desc:"Foutgevoelige ETL-scripts die kostbare tijd van uw engineers opslorpen",challenge3Title:"Geen centrale bron van waarheid",challenge3Desc:"Tegenstrijdige rapporten die de besluitvorming van het management ondermijnen",bevault1:"Geautomatiseerde datamigratie van bestaande systemen naar een moderne Data Vault",bevault2:"Eén datamodel over alle databronnen heen, met volledige datalineage",bevault3:"Zelfdocumenterende architectuur voor vlotte kennisoverdracht",propilot1:"Transformatieroadmap met duidelijke mijlpalen en KPI's",propilot2:"Afstemming van digitale initiatieven over alle afdelingen heen",propilot3:"Realtime voortgangsopvolging en zichtbaarheid voor het management",caseCompany:"European Retailer",caseResult:"75% minder tijd nodig voor data-integratie",caseQuote:"dFakto hielp ons 15 jaar aan oude data te moderniseren in 6 maanden."},regulatoryCompliance:{title:"Regelgeving en compliance",subtitle:"Datagovernance die klaar is voor audits",heroDesc:"Beantwoord de strengste regelgevende vereisten met traceerbare data, complete auditmogelijkheden en een architectuur die klaar is voor compliance.",challenge1Title:"Hiaten in de audittrail",challenge1Desc:"Onvolledige datalineage maakt audits duur en risicovol",challenge2Title:"Handmatige compliance-rapportering",challenge2Desc:"Kwartaalrapporten die weken analistentijd kosten",challenge3Title:"Inconsistente toepassing van beleidsregels",challenge3Desc:"Ongelijke datagovernance tussen de verschillende bedrijfsonderdelen",bevault1:"100% geautomatiseerde datalineage, van bron tot rapport",bevault2:"Onwijzigbare audittrails met versiebeheer in de tijd",bevault3:"Kant-en-klare compliancemodellen voor AVG (GDPR), BCBS 239 en 
406SOX",propilot1:"Opvolging van compliance-initiatieven met waarschuwingen voor deadlines",propilot2:"Voortgang van de toepassing van beleidsregels over alle afdelingen heen",propilot3:"Integratie van de regelgevingskalender voor proactieve planning",caseCompany:"Global Insurance Firm",caseResult:"100% slaagpercentage bij audits",caseQuote:"Onze toezichthouders waren onder de indruk van de zichtbaarheid op de datalineage."},operationalExcellence:{title:"Operationele uitmuntendheid",subtitle:"Datagedreven operaties",heroDesc:"Verbeter uw operationele prestaties met betrouwbare data, gestroomlijnde processen en duidelijke opvolging.",challenge1Title:"Vertraagde inzichten",challenge1Desc:"Batchverwerking zorgt voor een datalatentie van 24 tot 48 uur",challenge2Title:"Versnipperde processen",challenge2Desc:"Losstaande tools creëren blinde vlekken in uw operaties",challenge3Title:"Handmatige rapportering",challenge3Desc:"Operationele teams besteden 40% van hun tijd aan rapporten",bevault1:"Data-integratie in bijna realtime, met ondersteuning voor CDC",bevault2:"Operationele datamarts voor selfservice-analyses",bevault3:"Automatische KPI-berekening en detectie van afwijkingen",propilot1:"OKR-afstemming die teams verbindt met de strategische doelstellingen",propilot2:"Opvolging van operationele initiatieven met zicht op de ingezette middelen",propilot3:"Prestatiedashboards voor continue verbetering",caseCompany:"Manufacturing Leader",caseResult:"35% hogere operationele efficiëntie",caseQuote:"Realtime data heeft onze productieplanning volledig veranderd."},publicSector:{title:"Publieke sector",subtitle:"Transparante overheidsdata",heroDesc:"Maak rapportering transparanter, versterk uw AVG-compliance en moderniseer uw bestaande systemen.",challenge1Title:"AVG-compliance",challenge1Desc:"Bescherming van gegevens van burgers over meerdere systemen en overheidsdiensten heen",challenge2Title:"Migratie van bestaande systemen",challenge2Desc:"Decennia aan data die vastzit in verouderde mainframesystemen",challenge3Title:"Trans
406parante publieke rapportering",challenge3Desc:"Groeiende vraag naar open data en verantwoordingscijfers",bevault1:"Data-architectuur conform de AVG (GDPR), met opvolging van toestemmingen",bevault2:"Geautomatiseerde extractie en modernisering van bestaande systemen",bevault3:"Integratie met open-dataportalen voor publieke transparantie",propilot1:"Opvolging van de uitvoering van beleid over alle overheidsdiensten heen",propilot2:"KPI's voor dienstverlening aan burgers, met publieke dashboards",propilot3:"Coördinatie van initiatieven tussen overheidsdiensten",caseCompany:"Belgian Federal Agency",caseResult:"20 jaar aan verouderde data gemoderniseerd",caseQuote:"Burgers hebben nu realtime inzicht in de prestaties van onze dienstverlening."},finance:{title:"Finance",subtitle:"Rapportering voor regelgeving en risicobeheer",heroDesc:"Versterk uw financiële sturing met betrouwbare data, geïntegreerde rapportering en een duidelijk overzicht van risico's en prestaties.",challenge1Title:"Basel III / BCBS 239-compliance",challenge1Desc:"Toenemende druk van toezichthouders voor volledige datalineage en -aggregatie",challenge2Title:"Datalineage voor audits",challenge2Desc:"Toezichthouders eisen volledige traceerbaarheid van bron tot rapport",challenge3Title:"Realtime risicorapportering",challenge3Desc:"De overstap van T+1 naar zicht op risico's doorheen de dag",bevault1:"Data-architectuur die meteen voldoet aan BCBS 239",bevault2:"Automatische aanmaak van rapportering voor regelgeving, met volledige datalineage",bevault3:"Realtime data-integratie voor risicocijfers doorheen de dag",propilot1:"Opvolging van en waarschuwingen voor regelgevende deadlines",propilot2:"Portfoliobeheer van compliance-initiatieven",propilot3:"Dashboards voor auditvoorbereiding, op maat van het management",caseCompany:"European Investment Bank",caseResult:"60% minder tijd nodig voor rapportering aan toezichthouders",caseQuote:"Waar we vroeger weken nodig hadden voor onze kwartaalrapportering, is dat nu een kwestie van uren."},industry:{title:"Industrie",subtitle:"Industrie 4.0 en toeleveringsketen",heroDesc:"Verbind uw industriële data, optimaliseer uw toeleveringsketen en bouw aan een betrouwbare basis voor Industrie 4.0.",challenge1Title:"Integratie van IoT-data",challenge1Desc:"Miljoenen sensormetingen die realtime verwerking vragen over alle productielijnen heen",challenge2Title:"Zichtbaarheid in de toeleveringsketen",challenge2Desc:"Verspreide data over leveranciers, logistiek en voorraadsystemen",challenge3Title:"Voorspellend onderhoud",challenge3Desc:"Historische trendanalyse om defecten aan machines te voorkomen",bevault1:"Verwerking van grote volumes IoT-data, met ondersteuning voor streaming",bevault2:"Eén datamodel voor de volledige toeleveringsketen en al uw partners",bevault3:"Historisering van assetdata voor voorspellende analyses",propilot1:"Opvolging van Industrie 4.0-initiatieven met heldere KPI's",propilot2:"Afstemming van doelstellingen voor de optimalisatie van de toeleveringsketen",propilot3:"Dashboards rond productie-excellentie voor het management",caseCompany:"Manufacturing Leader",caseResult:"40% minder vertragingen in de toeleveringsketen",caseQuote:"Realtime zichtbaarheid heeft onze productieplanning volledig veranderd."}},RE={badge:"Intelligentie van de volgende generatie",heroTitle1:"Agentic AI voor",heroTitle2:"bedrijfsdata",heroDesc:"Zet de volgende stap in data-intelligentie. Combineer de betrouwbaarheid van het datafundament van beVault met autonome AI-agents die redeneren, handelen en bijleren.",heroCta:"Ontdek de mogelijkheden",whatTitle:"Wat is Agentic AI?",whatP1:"Agentic AI betekent een fundamentele verschuiving: van reactieve chatbots naar proactieve, doelgerichte AI-systemen die complexe taken kunnen plannen, uitvoeren en er lessen uit trekken.",whatP2:"Anders dan klassieke AI, die enkel op vragen reageert, splitsen agentic systemen doelstellingen zelfstandig op, gebruiken ze tools, raadplegen ze data en werken ze door tot het doel bereikt is.",whatBullet1:"Zelfstandig opsplitsen en plannen van taken",whatBullet2:"Redeneren in meerdere stappen, met orkestratie van tools",whatBullet3:"Continu bijleren via feedback",whatBullet4:"Beveiliging en governance op ondernemingsniveau",builtOnTitle:"Gebouwd op betrouwbare data",builtOnDesc:"Agentic AI is maar zo goed als de data die ze gebruikt. beVault levert het datafundament op ondernemingsniveau dat AI betrouwbaar en auditeerbaar maakt.",builtOnBullet1:"Volledige datalineage voor verklaarbare AI",builtOnBullet2:"Beheerde toegang tot gevoelige data",builtOnBullet3:"Data die altijd actueel is",useCasesTitle:"Toepassingen in de onderneming",useCasesSubtitle:"Verander de manier waarop uw organisatie werkt met automatisering op basis van AI",uc1Title:"Conversationele analyses",uc1Desc:"Stel vragen in gewone taal en krijg meteen antwoorden uit uw datawarehouse.",uc2Title:"Documentintelligentie",uc2Desc:"Haal op grote schaal inzichten uit contracten, rapporten en ongestructureerde documenten.",uc3Title:"Workflowautomatisering",uc3Desc:"Orkestreer complexe bedrijfsprocessen met AI-agents die bijleren en zich aanpassen.",uc4Title:"Voorspellende analyses",uc4Desc:"V
406oorspel trends en afwijkingen voordat ze uw activiteiten beïnvloeden.",uc5Title:"Kennisbeheer",uc5Desc:"Bouw kennisgrafen die mensen, processen en data met elkaar verbinden.",uc6Title:"Procesoptimalisatie",uc6Desc:"Ontdek knelpunten en kansen met process mining op basis van AI.",techTitle:"Technologie-ecosysteem",techSubtitle:"Wij integreren met toonaangevende platformen voor AI en automatisering",ctaTitle:"Klaar om Agentic AI te ontdekken?",ctaDesc:"Laten we bespreken hoe autonome AI-agents uw dataprocessen kunnen transformeren.",ctaCta:"Plan een gesprek"},_E={badge:"Partneraanvraag",title:"Word deel van het ecosysteem van dFakto",subtitle:"Vraag aan om partner te worden en ontsluit nieuwe inkomstenbronnen met onze producten"},OE={notFound:"Oeps! Pagina niet gevonden",returnHome:"Terug naar de homepage"},LE={heroTitle1:"Consultancydiensten:",heroTitle2:"25 jaar data-excellentie",heroDesc:"Wij zijn niet zomaar een softwareleverancier. Wij zijn in de eerste plaats consultants. Ons team beschikt over diepgaande expertise in datastrategie, architectuur en transformatie.",heroCta:"Neem contact op",stat1Value:"Opgericht in 2000",stat1Label:"25 jaar excellentie",stat2Value:"40+ consultants",stat2Label:"Gecertificeerde experts",stat3Value:"50+ klanten",stat3Label:"Enterprise-klanten",auditTitle:"Nood aan een snelle audit?",auditDesc:"Krijg een snelle beoordeling van uw dataarchitectuur en concrete aanbevelingen.",auditCta:"Plan uw audit",servicesTitle:"Onze diensten",servicesSubtitle:"Uitgebreide consultancy om uw datamogelijkheden te transformeren",svc1Title:"Datastrategie",svc1Desc:"Bepaal uw datavisie en -roadmap. Wij helpen u dataprojecten af te stemmen op uw bedrijfsdoelstellingen voor maximale impact.",svc2Title:"Architectuuraudits",svc2Desc:"Evalueer uw huidige datainfrastructuur. Identificeer hiaten, redundanties en optimalisatiemogelijkheden.",svc3Title:"Changemanagement",svc3Desc:"Zorg voor een succesvolle adoptie van nieuwe datapraktijken. Wij begeleiden uw teams doorheen de transformatie met opleiding en ondersteuning.",svc4Title:"Datagovernance",svc4Desc:"Stel beleid, standaarden en processen op voor datakwaliteit, beveiliging en compliance binnen uw organisatie.",whyTitle:"Waarom kiezen voor dFakto?",joinTitle:"Word lid van ons team",joinDesc:"We zijn steeds op zoek naar getalenteerde mensen die gepassioneerd zijn door data en strategie.",joinCta:"Bekijk vacatures",ctaTitle:"Laten we het hebben over uw dataproject",ctaDesc:"Een eerste gesprek van 30 minuten om uw uitdagingen te begrijpen.",ctaCta:"Bespreek uw project →",whyCard1Title:"25 jaar ervaring",whyCard1Desc:"Expertise opgebouwd doorheen honderden dataprojecten in Frankrijk, België en daarbuiten.",whyCard2Title:"Data Vault 2.0 gecertifieerd",whyCard2Desc:"De enige VTCP-gecertificeerde partner in België en Frankrijk. Een rigoureuze methodologie, geen shortcuts.",whyCard3Title:"50+ enterprise-klanten",whyCard3Desc:"Referenties in de bankwereld, de publieke sector, de industrie en nog veel meer.",whyCard4Title:"Van strategie tot implementatie",whyCard4Desc:"End-to-end ondersteuning — geen kloof tussen consulting en uitvoering.",whyCard5Title:"Eigen tools",whyCard5Desc:"beVault en proPilot, ontstaan uit onze ervaring op het terrein, versnellen elk project.",whyCard6Title:"Samenwerkingsgerichte aanpak",whyCard6Desc:"Agile methodologie, gemengde teams van klant en dFakto, met kennisoverdracht inbegrepen.",teamTitle:"Ons team",teamSubtitle:"Experts die zowel data als business begrijpen.",teamPortrait:"Portret",member1Role:"CEO & oprichter",member2Role:"Managing Director",member3Role:"Chief Product Officer",member4Role:"beVault Product Manager",member5Role:"Senior Business Analyst",member6Role:"Senior Data Analyst",member7Role:"Marketing",casesTitle:"Ze vertrouwen op ons",casesTag1:"KLANTCASE · BANKWEZEN",casesCase1Title:"Aansturing van alle transversale transformatieprogramma's van een grote Europese bank",casesCase1Text:"Meerdere gelijktijdige programma's, honderden stakeholders — succesvol aangestuurd met proPilot.",casesTag2:"KLANTCASE · GEZONDHEIDSZORG",casesCase2Title:"Oplossing geïmplementeerd in 3 dagen in een ziekenhuis tijdens crisismanagement",casesCase2Text:"Een operationeel datawarehouse in 72 uur om te reageren op een kritieke gezondheidscrisis.",casesCta:"Lees de klantcase →",casesAll:"Bekijk al onze klantcases →",beerTitle:"We brouwen ook ons eigen bier.",beerText:"dFakto ontwikkelde samen met Brasserie Witloof, een ambachtelijke brouwerij uit Brussel, een exclusief recept. Beperkte oplage, 100% lokaal.",beerLink:"Meer informatie →",teamGroupCaption:"Het dFakto-team — Parijs & Brussel"},zE={heroTitle:"Resources",heroSubtitle:"Gidsen, documentatie en leercontent om uw data- en transformatietraject te ondersteunen.",card1Title:"dFakto Blog",card1Desc:"Inzichten over datamanagement en strategie-uitvoering",card2Title:"Klantcases",card2Desc:"Praktijkvoorbeelden van klantsuccessen",card3Title:"beVault-blog",card3Desc:"De laatste inzichten over datawarehouse-automatisering",card4Title:"proPilot-blog",card4Desc:"Best practices voor strategie-uitvoering",card5Title:"beVault-klantverhalen",card5Desc:"Resultaten van klantimplementaties",card6Title:"beVault-
406documentatie",card6Desc:"Technische documentatie en gidsen",card7Title:"proPilot-documentatie",card7Desc:"Gebruikershandleidingen en API-referentie",card8Title:"dFakto e-learningplatform",card8Desc:"Behaal uw certificering voor beVault en proPilot",card9Title:"Supportportaal",card9Desc:"Krijg hulp van ons supportteam",card10Title:"Partnerresources",card10Desc:"Salestools, brochures en technische documentatie",card11Title:"Vacatures",card11Desc:"Word lid van het dFakto-team",card12Title:"Dataglossarium",card12Desc:"Beheers het vocabulaire van Data, AI en Strategie.",card13Title:"Whitepapers",card13Desc:"Download onze inzichten, white papers en case studies.",comingSoon:"Binnenkort beschikbaar",view:"Bekijken",open:"Openen",discover:"Ontdekken"},ME={backToResources:"Terug naar Bronnen",heroTitle:"dFakto Blog",heroSubtitle:"Inzichten over datamanagement, strategie-uitvoering en digitale transformatie",readArticle:"Lees artikel",catERPArchitecture:"ERP & Architectuur",catDataStrategy:"Datastrategie",catCompany:"Bedrijf",catPartnership:"Partnerschap",catPressRelease:"Persbericht",catInsights:"Inzichten",catProduct:"Product",catStrategy:"Strategie",catTech:"Tech",catEvent:"Evenement",catAIStrategy:"AI-strategie",catPressReleaseFr:"Persbericht",catSecurity:"Beveiliging"},FE={title:"Neem contact op",subtitle:"Neem contact op met ons team om uw Data-, Strategie- of ERP-projecten te bespreken.",getInTouch:"Neem contact op",ourOffices:"Onze kantoren",brusselsOffice:"Brussel",parisOffice:"Parijs",email:"E-mail"},qE={tag:"Aankomend webinar",title:"Webinar over de Odoo Analytics Stack",date:"Donderdag 28 mei om 16:00 uur (CET)",language:"Live webinar in het Frans",cta:"Nu inschrijven"},BE={badge:"BEPERKTE OPLAGE",heroTitle:"dFakto heeft zijn eigen bier.",heroSubtitle:"Een exclusief recept, samen ontwikkeld met Brasserie Witloof in Brussel.",heroDesc:"Omdat de beste beslissingen soms bij een biertje worden genomen. dFakto sloeg de handen in elkaar met Brasserie Witloof, een ambachtelijke brouwerij uit Brussel, om een exclusief recept te creëren — gebrouwen in kleine oplages, met evenveel zorg als onze algoritmes.",photoPlaceholder:"Foto van het dFakto-bier — binnenkort beschikbaar",partnerLabel:"— ONZE PARTNER —",partnerTitle:"Witloof, een ambachtelijke brouwerij uit Brussel",partnerText:"Brasserie Witloof is een onafhankelijke ambachtelijke brouwerij gevestigd in Brussel. Gepassioneerd door kwaliteitsbieren en creatieve samenwerkingen, deelt zij de waarden van dFakto: hoge normen, aandacht voor detail en lokale verankering.",partnerLink:"Ontdek Brasserie Witloof →",recipeLabel:"— EEN EXCLUSIEF RECEPT —",recipeTitle:"Samen ontwikkeld. Uniek. Ambachtelijk.",recipeSubtitle:"Dit bier bestaat nergens anders. Het recept werd ontwikkeld in nauwe samenwerking tussen de teams van dFakto en de brouwers van Witloof — een unieke blend, gebrouwen als beperkte oplage.",card1Title:"Exclusief recept",card1Text:"Speciaal ontwikkeld voor dFakto, nergens anders te vinden.",card2Title:"100% Brussels",card2Text:"Gebrouwen in Brussel door gepassioneerde vakmensen.",card3Title:"Beperkte oplage",card3Text:"Geproduceerd in kleine oplages om het ambachtelijke karakter te behouden.",orderLabel:"— GEÏNTERESSEERD? —",orderTitle:"Bestel onze bieren",orderSubtitle:"Wilt u onze dFakto-bieren ontvangen voor een evenement, een klant of gewoon voor uw team? Neem contact op.",metaTitle:"Het dFakto x Witloof-bier | Beperkte oplage",metaDesc:"Een exclusief ambachtelijk bier, samen ontwikkeld door dFakto en Brasserie Witloof in Brussel. Beperkte oplage."},VE={title:"Privacyverklaring",subtitle:"Hoe wij omgaan met uw gegevens",s1Title:"1. Inleiding",s1Text:'Deployments Factory, handelend onder de naam dFakto ("wij", "ons" of "onze") hecht veel belang aan de bescherming van uw privacy. Deze privacyverklaring legt uit hoe wij uw gegevens verzamelen, gebruiken, openbaar maken en beschermen wanneer u onze website bezoekt of gebruikmaakt van onze diensten, in overeenstemming met de Algemene Verordening Gegevensbescherming (AVG) en de toepasselijke EU-privacywetgeving.',s2Title:"2. Verzameling van gegevens",s2Text:"Wij kunnen informatie over u op de volgende manieren verzamelen:",s2Li1Label:"Persoonsgegevens die u verstrekt:",s2Li1:"Naam, e-mailadres, bedrijfsnaam, telefoonnummer en functietitel wanneer u contactformulieren invult, een demo aanvraagt of zich abonneert op onze nieuwsbrieven.",s2Li2Label:"Automatisch verzamelde gegevens:",s2Li2:"IP-adres, browsertype, apparaatinformatie, bezochte pagina's en tijd doorgebracht op onze website.",s2Li3Label:"Cookies en trackingtechnologieën:",s2Li3:"Wij gebruiken cookies om uw surfervaring te verbeteren en het websiteverkeer te analyseren.",s3Title:"3. Hoe wij uw gegevens gebruiken",s3Text:"Wij gebruiken de verzamelde gegevens voor de volgende doeleinden:",s3Li1:"Om onze diensten te leveren, te beheren en te onderhouden",s3Li2:"Om te reageren op uw vragen en supportverzoeken",s3Li3:"Om u marketingcommunicatie te sturen (enkel met uw uitdrukkelijke toestemming)",s3Li4:"Om onze website en diensten te verbeteren",s3Li5:"Om te voldoen aan wettelijke verplichtingen",s3Li6:"Om onze rechten te beschermen en fraude te voorkomen",s4Title:"4. Uw rechten onder de AVG",s4Text:"Onder de Algemene Verordening Gegevensbescherming (AVG) beschikt u over de volgende rechten:",s4Li1Label:"Recht op inzage:",s4Li1:"U kunt een kopie opvragen van de persoonsgegevens die wij over u bewaren.",s4Li2Label:"Recht op rectificatie:",s4Li2:"U kunt vragen om onjuiste of onvolledige gegevens te corrigeren.",s4Li3Label:"Recht op gegevenswissing:",s4Li3:'U kunt vragen om uw persoonsgegevens te verwijderen ("recht om vergeten te worden").',s4Li4Label:"Recht op beperking van de verwerking:",s4Li4:"U kunt vragen om het gebruik van uw gegevens te beperken.",s4Li5Label:"Recht op overdraagbaarheid van gegevens:",s4Li5:"U kunt uw gegevens opvragen in een gestructureerd, veelgebruikt formaat.",s4Li6Label:"Recht van bezwaar:",s4Li6:"U kunt bezwaar maken tegen de verwerking van uw gegevens voor directmarketingdoeleinden.",s4Li7Label:"Recht om toestemming in te trekken:",s4Li7:"Wanneer de verwerking gebaseerd is op toestemming, kunt u deze op elk moment intrekken.",s4Contact:"Om een van deze rechten uit te oefenen, kunt u contact met ons opnemen via",s5Title:"5. Cookies",s5Text:"Wij gebruiken de volgende soorten cookies:",s5Li1Label:"Essentiële cookies:",s5Li1:"Noodzakelijk voor de goede werking van de website.",s5Li2Label:"Analytische cookies:",s5Li2:"Helpen ons te begrijpen hoe bezoekers omgaan met onze website.",s5Li3Label:"Marketingcookies:",s5Li3:"Gebruikt om relevante advertenties te tonen (enkel met uw toestemming).",s5Manage:"U kunt uw cookievoorkeuren beheren via uw browserinstellingen of onze cookiebanner.",s6Title:"6. Bewaartermijn van gegevens",s6Text:"Wij bewaren uw persoonsgegevens enkel zolang als nodig is om de doeleinden waarvoor ze werden verzameld te vervullen, of zoals wettelijk vereist. Ingezonden contactformulieren worden tot 3 jaar bewaard, en registraties van marketingtoestemming worden bewaard voor de duur van uw abonnement plus 1 jaar.",s7Title:"7. Gegevensbeveiliging",s7Text:"Wij nemen passende technische en organisatorische maatregelen om uw persoonsgegevens te beschermen tegen ongeoorloofde toegang, wijziging, openbaarmaking of vernietiging. Dit omvat encryptie, toegangscontroles en regelmatige beveiligingsbeoordelingen.",s8Title:"8. Delen met derden",s8Text:"Wij verkopen uw persoonsgegevens niet. Wij kunnen uw gegevens delen met vertrouwde externe dienstverleners die ons helpen bij het beheer van onze website en diensten, onderworpe
406n aan vertrouwelijkheidsovereenkomsten. Dit omvat hostingproviders (OVHcloud, Lovable) en analysediensten.",s9Title:"9. Internationale doorgiften",s9Text:"Uw gegevens kunnen worden doorgegeven aan en verwerkt in landen buiten de Europese Economische Ruimte (EER). In dat geval zorgen wij ervoor dat passende waarborgen worden toegepast, zoals door de Europese Commissie goedgekeurde standaardcontractbepalingen.",s10Title:"10. Neem contact op",s10Text:"Als u vragen heeft over deze privacyverklaring of uw rechten wenst uit te oefenen, kunt u contact met ons opnemen:",s10Company:"Deployments Factory (dFakto)",s10Role:"Contactpersoon gegevensbescherming",s10Address1:"Rue Saint Hubert 17",s10Address2:"1150 Sint-Pieters-Woluwe, België",s10Complaint:"U heeft ook het recht om een klacht in te dienen bij een toezichthoudende autoriteit. In België is dit de",s10Authority:"Gegevensbeschermingsautoriteit (Autorité de protection des données)",lastUpdated:"Laatst bijgewerkt: januari 2025"},$E={title:"Wettelijke vermeldingen",subtitle:"Juridische informatie en voorwaarden",companyInfoTitle:"Bedrijfsinformatie",companyName:"Bedrijfsnaam:",companyNameValue:"Deployments Factory (handelend onder de naam dFakto)",registeredOffice:"Maatschappelijke zetel:",registeredOfficeValue:"Rue Saint Hubert 17, 1150 Sint-Pieters-Woluwe, België",vatNumber:"Btw-nummer:",vatNumberValue:"BE 0479.167.371",email:"E-mail:",phone:"Telefoon:",pubDirectorTitle:"Publicatieverantwoordelijke",pubDirectorText:"De publicatieverantwoordelijke van deze website is",pubDirectorName:"Thibaut De Vylder",hostingTitle:"Hosting",primaryHosting:"Primaire hosting:",appHosting:"Applicatiehosting:",ipTitle:"Intellectuele eigendom",ipText:"Alle inhoud op deze website, met inbegrip van maar niet beperkt tot teksten, afbeeldingen, logo's, foto's, audiofragmenten, downloads en software, is eigendom van Deployments Factory (dFakto) of haar contentleveranciers en wordt beschermd door internationale auteursrechtwetgeving. De samenstelling van alle inhoud op deze site is de exclusieve eigendom van Deployments Factory.",tmTitle:"Handelsmerken",tmText:"beVault, proPilot en dFakto zijn gedeponeerde handelsmerken van Deployments Factory. Alle andere op deze website vermelde handelsmerken zijn eigendom van hun respectievelijke eigenaars.",liabilityTitle:"Beperking van aansprakelijkheid",liabilityText:"Hoewel Deployments Factory ernaar streeft de nauwkeurigheid en volledigheid van de informatie op deze website te waarborgen, geven wij geen enkele expliciete of impliciete garantie met betrekking tot de volledigheid, nauwkeurigheid, betrouwbaarheid, geschiktheid of beschikbaarheid van de website of van de informatie, producten, diensten of gerelateerde afbeeldingen die op de website worden vermeld, voor welk doel dan ook.",linksTitle:"Externe links",linksText:"Deze website kan links bevatten naar externe websites die niet door Deployments Factory worden beheerd. Wij hebben geen controle over de inhoud en aard van deze sites en zijn niet verantwoordelijk voor hun inhoud of privacybeleid.",lawTitle:"Toepasselijk recht",lawText:"Deze wettelijke vermelding wordt beheerst door het Belgisch recht. Elk geschil dat voortvloeit uit het gebruik van deze website valt onder de exclusieve bevoegdheid van de rechtbanken van Brussel, België.",contactTitle:"Contact",contactText:"Voor vragen over deze wettelijke vermelding kunt u contact met ons opnemen via"},HE={heroTitle:"Dataglossarium",heroSubtitle:"Begrijp de belangrijkste begrippen uit data, AI, strategie en governance."},WE={backToResources:"Terug naar Resources",heroTitle:"dFakto Klantverhalen",heroSubtitle:"Ontdek hoe toonaangevende organisaties hun activiteiten transformeerden met dFakto-oplossingen",readCase:"Lees de klantcase",story1Title:"De overname van AXA Banque Belgium door Crelan",story1Industry:"Bankwezen",story2Title:"Master Data Management: informatie consolideren tot één enkele versie",story2Industry:"Data Management",story3Title:"Sturing van alle transversale transformatieprogramma's van een grote Europese bank",story3Industry:"Bankwezen",story4Title:"Oplossing geïmplementeerd in 3 dagen in een ziekenhuis in crisismanagement",story4Industry:"Gezondheidszorg",story5Title:"Eén gemeenschappelijk risicobeheerplatform voor 17 factoringentiteiten",story5Industry:"Finance",story6Title:"Covid 19: Bruss'Help kiest het platform van dFakto om de meest kwetsbaren te helpen",story6Industry:"Publieke sector",story7Title:"Veel snellere rapportering dankzij een uniform en betrouwbaar platform, met minder middelen",story7Industry:"Enterprise",story8Title:"Uniforme en geautomatiseerde rapportering voor alle bouw- en onderhoudsprojecten",story8Industry:"Bouwsector"}
406,UE={backToResources:"Terug naar Resources",title:"De overname van AXA Banque Belgium door Crelan",intro:"Om automatische opvolging van de afronding van de M&A-deal van €691 miljoen te garanderen en capaciteit vrij te maken, vertrouwden de betrokken partijen op het digitale opvolgingssysteem in proPilot.",p1:"Om de afsluitingsfase van de M&A op te volgen, werd een masterplan opgesteld ter voorbereiding van de verkoop van de bankactiviteiten van AXA Banque Belgium aan Crelan. De transactie heeft een waarde van 691 miljoen euro. De financiële en juridische vereisten voorafgaand aan een dergelijke operatie vragen om een nauwkeurige opvolging van de voortgang van het plan, de gerealiseerde synergieën en besparingen. Zo is het essentieel om de ECB solide garanties te bieden over de financiering van de overname. Bij dit soort operaties is het beschikbaar stellen van informatie aan de vele betrokken partijen eveneens een grote uitdaging.",p2:"De teams van Bain Consulting implementeerden het masterplan in proPilot, met ondersteuning van de Business-teams van dFakto. Het plan is gebaseerd op een coherente boomstructuur met drie niveaus, waarmee op elk niveau de indicatoren en kwalitatieve informatie kunnen worden opgevolgd die de inzet van middelen en de concrete impact van projecten ten opzichte van de gestelde doelstellingen weergeven. Het maakt het ook mogelijk om de risico's en successen binnen elk domein te identificeren. Zo maakte proPilot het mogelijk om de verantwoordelijkheidsniveaus van alle stakeholders op te volgen.",p3:"Door het plan te digitaliseren met proPilot werd veel manueel werk geëlimineerd en de opvolging en actualisering van het plan voor alle stakeholders geautomatiseerd. Real-time informatie en vrijgemaakte capaciteit zorgden ervoor dat middelen konden worden ingezet voor analyse en taken met hoge toegevoegde waarde.",keyResults:"Belangrijkste resultaten",kr1:"projecten geïntegreerd in het gedigitaliseerde plan",kr2:"geïntegreerde streams opgevolgd",kr3:"rapportgeneratie voor real-time opvolging",kr3Label:"Uurlijks",kr4:"transactie succesvol afgerond",p4:"Dankzij proPilot konden de strategische teams van Bain Consulting en het Integration Management Office van Crelan de integratiestreams, projecten en mijlpalen opvolgen voor alle betrokkenen. In totaal werden meer dan 500 projecten geïntegreerd in het gedigitaliseerde plan, verdeeld over 11 integratiestreams. Rapporten werden uurlijks gegenereerd om opvolging aan verschillende frequenties mogelijk te maken.",p5:"Door het plan te digitaliseren en real-time op te volgen, werden mogelijke synergieën geïdentificeerd en verkend, een essentiële stap om te voldoen aan de regelgevende vereisten voorafgaand aan de fusie en overname. De transactie, met een waarde van €691 miljoen (waarvan €611 miljoen in cash), werd succesvol afgerond.",quote:"Het proPilot-platform stelde het Integration Management Office (IMO) van Crelan, ondersteund door Bain Consulting, in staat om het masterplan te digitaliseren om de voortgang op te volgen en synergieën te creëren, teneinde te voldoen aan de financiële en juridische vereisten voorafgaand aan de fusie en overname.",quoteAuthor:"Sander Muylle, Head of Transformation Office bij Crelan"},KE={backToResources:"Terug naar Resources",title:"Master data management: informatie consolideren tot één enkele versie",intro:"De implementatie van een Master Data Management-systeem (MDM) heeft deze leider in betalingsdiensten geholpen zijn klanten beter te beheren.",p1:"Voor deze Europese leider in betalings- en transactiediensten nam de complexiteit van de systemen exponentieel toe met de groei van de activiteiten, het gevolg van opeenvolgende overnames. Gegevens uit de verschillende bronnen doorliepen uiteenlopende verrijkingstrajecten en berekeningsregels. Dit resulteerde in nauwelijks vergelijkbare output, waardoor de commerciële en aftersales-teams weinig inzicht hadden bij het nemen van beslissingen.",p2:"De dataFaktory werd geselecteerd om de gegevens van de verschillende operationele systemen van alle groepsentiteiten over te nemen, wat resulteerde in een uniform beeld van hun klanten en het geïnstalleerde park betaalterminals, en een betere opvolging van hun commerciële en aftersales-activiteiten.",solutionTitle:"De oplossing",solutionDesc:"Als agile Master Data Management-oplossing verbindt de dataFaktory zich met de CRM's en ERP's van alle groepsentiteiten. De gegevens uit alle systemen worden meerdere keren per dag geladen, waarna ze kwaliteitscontroles, verrijkingen en bedrijfsregels doorlopen, zodat de datastructuur en -consistentie gewaarborgd zijn. Die informatie wordt vervolgens aan de business gebruikers gepresenteerd via rapporten en in hun dagelijkse operationele tools, zodat zij de juiste commerciële beslissingen kunnen nemen.",keyResults:"Belangrijkste resultaten",kr1:"verbonden databronnen",kr2L
406abel:"Uniform beeld",kr2:"van klanten en geïnstalleerd park",kr3Label:"Meerdere keren per dag",kr3:"gegevensladingen met kwaliteitscontroles",kr4Label:"Eén klantenreferentiebestand",kr4:"voor de hele groep",quote:"Alle systemen van de groepsentiteiten in één keer vervangen door één datawarehouse zou jaren hebben geduurd, terwijl er een dringende behoefte was om de business van consistente informatie te voorzien. Met de oplossing van dFakto zijn we gestart met het verbinden van 3 databronnen en ontwikkelden we de rapporten die de teams nodig hadden. Na verloop van tijd hebben we andere bedrijfssystemen toegevoegd, met meer dan 80 verbonden bronnen: de dataFaktory is ons geautomatiseerde MDM-platform geworden, ons enige klantenreferentiebestand.",quoteAuthor:"MDM Owner van de groep"},GE={backToResources:"Terug naar Resources",title:"Sturing van alle transversale transformatieprogramma's van een grote Europese bank",p1:"Sturingsplatform voor de grote initiatieven van de bank, wat leidde tot het overtreffen van de strategische en operationele doelstellingen.",p2:"Na de overname van verschillende financiële instellingen lanceerde de groep een strategisch programma om haar processen te vereenvoudigen en synergieën te identificeren over een periode van 4 jaar. De plannen bestonden uit 2700 parallelle projecten in 40 landen, met een investering van €2 miljard en verwachte besparingen van €2 miljard per jaar.",p3:"De bank had nood aan een systeem om vele parallelle plannen continu te actualiseren en consistent en gecoördineerd te houden. Van het systeem werd verwacht dat het vlot van boven naar onder en van onder naar boven zou communiceren tussen interne en externe stakeholders. Een van de belangrijkste verwachtingen was het verstrekken van betrouwbare en consistente informatie aan governance- en besluitvormingsvergaderingen.",p4:"We hielpen de bank haar plan te vertalen in een genormaliseerde boomstructuur, met een granulariteit in lijn met de hiërarchische organisatie. De plannen werden vervolgens geladen in proPilot, zodat alle betrokken medewerkers de informatie kregen die relevant was voor hun niveau, en die ze nodig hadden om hun projecten, programma's en portfolio op te volgen.",p5:"Aan de medewerkers werd gevraagd maandelijks een update te geven van de voortgangsstatus van hun projecten, programma's of portfolio, met eenvoudige kwalitatieve indicatoren: weersvoorspelling (zonnig, bewolkt, regen), trend (stijgend, stabiel, dalend) en percentage van realisatie. Dankzij de eenvoudige interface van proPilot namen deze updates slechts 2 minuten in beslag. Elk kwartaal werd aan medewerkers gevraagd hun realisatievoorspelling voor project/programma/portfolio te geven, aan de hand van een klein aantal indicatoren voor middelen en impact.",p6:"Parallel daaraan definieerden we de rapporten en dashboards die nodig waren voor de governance-vergaderingen van de bank op elk niveau, van projectniveau tot het directiecomité. Deze rapporten werden gevoed met de kwalitatieve input van de projectbetrokkenen en met de kwantitatieve input uit databronnen zoals het boekhoudsysteem van de bank, het ERP, HR-systemen enz.",p7:"De rapporten en dashboards gaven het management van de bank inzicht in de prestaties van elk project, waardoor het mogelijk werd om slecht presterende projecten stop te zetten en middelen te herverdelen naar goed presterende projecten. Beslissingen over aanpassingen aan het plan werden rechtstreeks geïntegreerd in de plannen van proPilot, en de daaropvolgende acties werden gecommuniceerd aan alle betrokken stakeholders.",p8:'Het Hoofd Program Management zei: "Agile, betrouwbare en terugkerende informatie over complexe initiatieven, samen met een duidelijke governancestructuur met regelmatige besluitvormingsvergaderingen, zijn noodzakelijk voor prestaties en het overtreffen van doelstellingen. Uiteindelijk investeerden we €2 miljard, voor een jaarlijkse besparing van €3,5 miljard. dFakto is doorslaggevend geweest om ons te helpen de doelstellingen van onze plannen te overtreffen. Het was voor ons vanzelfsprekend om hun datagedreven managementplatform te gebruiken om onze volgende strategische plannen te sturen."'}
406,QE={backToResources:"Terug naar Resources",title:"Oplossing geïmplementeerd in 3 dagen in een ziekenhuis in crisismanagement",p1:"Een managementplatform om de schaarse middelen van een Brussels ziekenhuis te beheren, midden in de coronacrisis.",p2:"In de context van de coronacrisis was er een dringende behoefte bij de crisiscel van het ziekenhuis om de situatie van haar verschillende diensten in real time te visualiseren, waaronder het aantal vrije bedden voor patiënten op intensieve zorgen. Meer algemeen had het managementteam van het ziekenhuis tools nodig om een efficiënte, real-time toewijzing van materiaal en middelen te garanderen, en een optimale opvang van patiënten op basis van hun gezondheidstoestand.",p3:"Het was cruciaal om een aanpak en een oplossing uit te werken die de normaal geïsoleerde diensten zou helpen om informatie te consolideren.",p4:"In een crisiscontext zijn actuele gegevens en nauwkeurige informatie essentieel om de juiste beslissingen te nemen. Gedurende 3 dagen werkten gezamenlijke teams van dFakto en Penbox onophoudelijk samen met de crisiscel van het universitair ziekenhuis om een operationeel IT-platform uit te rollen dat het personeel van het ziekenhuis op de gepaste manier zou ondersteunen.",p5:"dFakto implementeerde haar proPilot-oplossing, aangepast voor het beheer van crisisplannen. Dankzij een snelle en eenvoudige interface voor gegevensinvoer wordt informatie over de beschikbaarheid van middelen (bedden, pompen, zuurstof enz.) van de verschillende diensten op het terrein verzameld en in real time gedeeld.",p6:"De oplossing van Penbox werd gebruikt om informatie te verstrekken over de beschikbaarheid van verplegend personeel, op basis van een 'check-in'- en 'check-out'-systeem dat toegankelijk was via smartphones.",p7:"Vervolgens hebben we een dataFaktory uitgerold om de informatie van zowel de proPilot- als de Penbox-toepassingen samen te voegen en de gecombineerde informatie beschikbaar te stellen in een rapporterings- en visualisatietool.",p8:'Thibaut De Vylder, CEO van dFakto, zei: "Om de collectieve oorlogsinspanning te ondersteunen, waren we blij dat we het ziekenhuis snel een dataplatform konden aanleveren. De oplossing kan worden herhaald, aangepast aan de specifieke kenmerken van elke structuur. Dat geldt uiteraard voor ziekenhuizen, maar ook voor overheidsinstellingen of andere organisaties onder druk die op enkele dagen tijd de beste operationele oplossing willen hebben."'},YE={backToResources:"Terug naar Resources",title:"Eén gemeenschappelijk risicobeheerplatform voor 17 factoringentiteiten",p1:"Deze Europese leider in factoring geniet van een geconsolideerd beeld van de risico's van haar klanten door alle toepassingen en systemen van haar entiteiten met elkaar te verbinden.",p2:"Veel organisaties maken gebruik van factoring, waarbij hun klantfacturen (= vorderingen) worden verkocht aan een factor, meestal een bank, zodat de organisaties de waarde van hun facturen rechtstreeks ontvangen.",p3:"Toen deze grote Europese bank haar factoringactiviteiten uitbreidde door 17 entiteiten te consolideren, werd een coördinatiecentrum opgericht dat werd gevraagd om een holistisch beeld te geven van de risico's die de 17 entiteiten wereldwijd dragen. Maar deze entiteiten gebruikten geen gemeenschappelijk besturingssysteem en pasten verschillende risicobeleidslijnen toe. Er was een dringende behoefte om alle factoringentiteiten af te stemmen op transversale concepten en risicodefinities, en om te beschikken over een systeem om de risicoposities van alle entiteiten te consolideren.",p4:"We hebben een dataFaktory uitgerold, waarmee de databronnen van de 17 factoringentiteiten werden verbonden en automatisch maandelijks werden geladen, met kwaliteitscontroles op de gegevens. De cross-entity rapportering biedt meerdere weergaven, waaronder trendanalyses, datakwaliteitsrapporten en prestatie-indicatoren.",p5:"In minder dan 3 maanden kon het management een geconsolideerd beeld krijgen van de risico's van haar klanten. De lokale risk managers ontvangen relevante risicorapportering, rekening houdend met de richtlijnen van de groep en met de lokale specifieke realiteit.",p6:`Het Hoofd Global Risk zei: "We moesten binnen 3 maanden een globaal overzicht bieden van de risico's verbonden aan de activiteiten van onze 17 wereldwijde factoringentiteiten, die elk met hun eigen IT-systeem werkten. Dankzij de methodologie en het platform van dFakto hebben we de risicodefinities over onze 17 factoringentiteiten op elkaar afgestemd, en werden de 90 databronnen van de lokale systemen samengebracht in een dataFaktory, met 400 verrijkingen en berekeningsregels, die 30 geautomatiseerde rapporten opleveren. We passen nu één gemeenschappelijk risicobeleid toe in al onze entiteiten, waardoor onze lokale risk managers betere beslissingen kunnen nemen op basis van nauwkeurige en vergelijkbare gegevens."`}
406,ZE={backToResources:"Terug naar Resources",title:"Covid 19: Bruss'Help kiest het platform van dFakto om de meest kwetsbaren te helpen",p1:"In slechts enkele dagen tijd zetten de teams van dFakto een managementplatform op voor Bruss'Help om de meest kwetsbaren te helpen tijdens de Covid 19-crisis.",p2:"Bruss'Help (voorheen La Strada) staat in voor de hulpverlening aan kwetsbare mensen in Brussel. Als reactie op de coronavirusuitbraak moest Bruss'Help de acties coördineren van verschillende organisaties en verenigingen die kwetsbare mensen helpen, een deel van de bevolking dat bijzonder kwetsbaar is tijdens gezondheidscrises.",p3:"Bruss'Help moet real-time opvolging garanderen en oplossingen vinden voor uiteenlopende individuele situaties: medische behoeften, begeleiding door straatteams, het ter beschikking stellen van opvangkamers voor zieken enz. Zonder een gemeenschappelijk informatiesysteem besteedden de verschillende actoren veel tijd aan het handmatig controleren van informatie in verschillende systemen en aan onderlinge telefoontjes om real-time statusupdates te krijgen.",p4:"De teams van dFakto rolden binnen enkele dagen een operationeel IT-platform uit om de coördinatie tussen de verschillende sociale en medische actoren te garanderen. De gegevens van de verschillende organisaties en verenigingen worden bijna in real time verbonden met een dataFaktory, dankzij een hoogfrequente uploadfrequentie. Rapporten en dashboards worden automatisch gegenereerd en voorzien de teams van Bruss'Help voortdurend van actuele informatie.",p5:"De maatregelen genomen door de overheid en Bruss'Help worden aangepast aan de situatie. Het platform van dFakto maakt de eenvoudige integratie van nieuwe databronnen mogelijk, zoals informatie over nieuwe menselijke en materiële middelen, en stelt de bronnen rechtstreeks beschikbaar aan de begunstigden. Het systeem maakt ook een efficiënte samenwerking mogelijk tussen medische crisiscentra (medische posten van Artsen Zonder Grenzen, het Rode Kruis en het New-Samusocial), die rechtstreeks werken met de meest kwetsbaren.",p6:`De Operationeel Directeur van Bruss'Help zei: "We moeten niet langer zoveel tijd besteden aan vervelende handmatige informatiecontroles. We kunnen nu al onze tijd besteden aan het helpen van mensen in nood. En omdat we nu beschikken over nauwkeurige en actuele informatie, nemen we goede beslissingen en maken we het beste gebruik van onze middelen."`},XE={backToResources:"Terug naar Resources",title:"Veel snellere rapportering dankzij een uniform en betrouwbaar platform, met minder middelen",intro:"Veel snellere rapportering dankzij een uniform en betrouwbaar platform, met veel minder middelen",subtitle:"Een doeltreffend platform voor projectrapportering aan het CIO Office van de bank, dat vertrouwen creëert in de informatie, de toegevoegde waarde van medewerkers verhoogt en onproductieve taken met 75% vermindert.",challengesTitle:"Uitdagingen:",p1:"De IT-afdeling van de Belgische entiteit van deze Europese bankverzekeraar beheert jaarlijks projecten met een jaarbudget van €90 miljoen, met 60 projectmanagers en 600 medewerkers. Projectinformatie was verspreid over verschillende systemen: de 60 projectmanagers besteedden zo'n 5 dagen aan het verzamelen en interpreteren van gegevens voor hun maandrapport, terwijl geconsolideerde informatie pas 4 weken na het einde van de maand beschikbaar was.",solutionTitle:"Oplossing:",p2:"Het CIO Office wilde één enkele tool om de projectrealisaties/-voorspellingen en het budget op te volgen, en die de geconsolideerde informatie veel sneller zou opleveren. We implementeerden een dataFactory in 4 fasen.",p3:"Eerst verbonden we de verschillende databronnen (BRM, ETR, Clarity enz.) met het platform, met volledig begrip van de knelpunten en verwachte voordelen. Vervolgens hielpen we de rollen en verantwoordelijkheden tussen de gebruikersgroepen te definiëren. We introduceerden Qlikview als business intelligence-oplossing.",p4:"Ten derde hielpen we gemeenschappelijke projectconcepten en -processen te definiëren.",p5:"En ten slotte hielpen we de datakwaliteit te verbeteren en de Qlikview-vaardigheden van het CIO Office te versterken.",benefitsTitle:"Voordelen:",p6:"Er werden ook een aantal tastbare voordelen behaald:",benefit1:"alle rapporten worden binnen 1 uur ververst in plaats van na meerdere dagen;",benefit2:"het aantal projectvergaderingen werd met een factor 3 verminderd, en hun duur met een factor 2;",benefit3:"75% vermindering van de tijd besteed aan administratieve taken",benefit4:"38% vermindering van de FTE's nodig om projecten te beheren.",quote:"Met het rapporteringsplatform van dFakto is de organisatie nu afgestemd op één enkele versie van de waarheid, en voelt men zich eindelijk comfortabel met de cijfers waarmee wordt gewerkt. Rapportering wordt nu binnen een uur ververst. Vandaag hebben we minder vergaderingen om projecten te bespreken, en zijn ze veel efficiënter. We zijn overgestapt van activiteiten met lage toegevoegde waarde (data crunching) naar activiteiten met hogere toegevoegde waarde (analyse), waardoor we 75% van de tijd besteed aan administratieve taken besparen, wat resulteert in een FTE-vermindering van 38% bij het CIO office. Over het geheel genomen hebben we de capaciteiten van de organisatie op het vlak van portfoliobeheer verder ontwikkeld",quoteAuthor:"Head of Portfolio Management voor het CIO Office"}
406,JE={backToResources:"Terug naar Resources",title:"Uniforme en geautomatiseerde rapportering voor alle bouw- en onderhoudsprojecten",p1:"Uniforme en geautomatiseerde rapportering voor alle bouw- en onderhoudsprojecten wereldwijd.",p2:"Offshore, maritiem, burgerlijke bouwkunde, milieu en projectontwikkeling. Jan De Nul Group is een toonaangevende expert in vijf hoofdactiviteiten. Jan De Nul Group geeft vorm aan zowel water als land. Ze maken de productie van offshore-energie mogelijk en houden waterwegen op diepte. Ze bouwen nieuwe havens en creëren extra land. Ze realiseren complexe infrastructuurwerken en bouwen elk type gebouw. Ze pakken vervuiling in al haar vormen aan. Dankzij de vruchtbare samenwerking binnen het bedrijf kunnen zij globale oplossingen aanbieden die een, meerdere of zelfs al deze activiteiten combineren.",p3:"Deze wereldleider in grote infrastructuurwerken krijgt volledig projectinzicht door financiële en niet-financiële informatiesystemen met elkaar te verbinden",p4:"Met duizenden ingenieurs en bemanningen die wereldwijd werken aan zware engineeringsprojecten, steunt de projectvoortgangsboekhouding van het bedrijf op een complexe kruising van financiële realisaties met budgettaire voorspellingen die afhangen van weersomstandigheden, brandstofprijzen en de geografische locatie van schepen en materiaal.",p5:"Met veel rapporten die elk slechts een deel van het volledige beeld toonden, was het inzicht in de vele gelijktijdige projecten wereldwijd gedeeltelijk, onnauwkeurig en met minstens 1 maand vertraging. Aangezien een groot deel van de omzet van de groep projectgebonden is, was het cruciaal om te beschikken over een bijna real-time, consistente voortgangsstatus op basis van gegevens uit meerdere bronnen.",p6:"dFakto heeft een dataFaktory opgezet die gegevens uit de financiële systemen en de projectmanagementtools integreert. De gegevens worden meerdere keren per dag opgehaald en klaargemaakt voor rapportering, na een aantal kwaliteitscontroles en verrijkingen. Per project worden twee gestandaardiseerde A4-rapporten gegenereerd en automatisch verzonden naar stakeholders over de hele wereld; deze worden door het senior management gebruikt om projectprestaties objectief te vergelijken, zowel binnen als tussen business lines.",quote:"Onze managementinformatie werd verstrekt via een verscheidenheid aan afzonderlijke rapporten en systemen, wat ons onvoldoende inzicht gaf in de financiële situatie en voortgang van onze 450 projecten. Met een dataFaktory die de gegevens uit onze verschillende systemen en bronnen combineert, hebben we nu real-time inzicht in elk project en in onze geconsolideerde portfolio. We identificeren problemen eerder en kunnen onmiddellijk actie ondernemen, wat ons jaarlijks miljoenen bespaart. Bovendien is ons rapporteringssysteem nu veel flexibeler en kan het worden aangepast aan onze veranderende behoeften."},eI={title:"De mechanismen van Data Vault",backToResources:"Terug naar Resources",h2_1:"Wat is Data Vault 2.0?",p1:"Data Vault 2.0, ontwikkeld door Dan Linstedt, is een evolutionaire benadering die ideeën van vakexperts, wiskundige concepten, het gebruik van hashing om de prestaties van historisering te verbeteren, en rationele ontwikkelprocessen zoals Agile combineert. Het bundelt de beste praktijken op het gebied van methodologie, architectuur en modellering van ervaren data-architecten.",p2:"De kern van Data Vault is het datavaultmodel, dat een oplossing biedt voor de uitdagingen van traditionele datamodelleringsbenaderingen.",p3:"Traditionele modellen, zoals 'enterprise datawarehouses' of sterschema's, kennen beperkingen op het vlak van aanpasbaarheid en onderhoudsgemak.",p4:"Het datavaultmodel organiseert data daarentegen in drie types tabellen: <strong>Hub</strong>, <strong>Satellite</strong> en <strong>Link</strong>. De Hub-tabel bevat de business keys, de Satellite-tabel bevat de attributen die aan de data gekoppeld zijn, en de Link-tabel legt de transactionele relaties tussen datapunten vast. Dit model biedt een volledige en schaalbare weergave van de bedrijfsdata, aangevuld met een dimensionale laag voor eenvoudige toegang door analisten en dataconsumenten.",p5:"Data Vault 2.0 tilt het datavaultmodel naar een hoger niveau. Het gaat verder dan een louter datamodel en omvat ook de hierboven beschreven architectuur en methodologie.",li1:"Data wordt parallel geladen en businessregels worden doorheen de tijd bijgehouden, wat retroactieve analyse en versiebeheer mogelijk maakt.",li2:"Wanneer nieuwe databronnen ontstaan, kunnen ze naadloos in de bestaande structuur worden geïntegreerd, zonder herwerk of re-engineering.",p6:"Data Vault 2.0 inzetten is de minst risicovolle manier om een robuust en aanpasbaar dataplatform te bouwen. Het biedt directieleden, business managers, analisten en dataconsumenten een prescriptieve methodologie om efficiënt businesswaarde uit het dataplatform te halen. Voor practitioners en verantwoordelijken van dataplatformen biedt Data Vault 2.0 een volledige en veerkrachtige aanpak om een functioneel model en schaalbare architectuur te bouwen en uit te rollen, die bestand is tegen de uitdagingen van evoluerende bedrijfsbehoeften.",h2_2:"Data Vault 2.0 en automatisering",p7:"Data Vault 2.0 (DV2) kan worden geautomatiseerd, terwijl Data Vault 1.0 (DV1) beperkingen kende op het vlak van automatisering, voornamelijk door het gebrek aan gestandaardiseerde specificaties. Laten we uitleggen waarom.",p8:"Automatisering in de context van datamodellering en implementatie verwijst naar het vermogen om softw
406aretools en -processen te gebruiken om de creatie en het beheer van datastructuren te stroomlijnen en te versnellen. Het zorgt voor een consistente en efficiënte ontwikkeling, vermindert handmatige inspanningen en beperkt het risico op fouten.",p9:"DV2 profiteert van meer automatisering omdat het een meer gestandaardiseerde en duidelijk omschreven methodologie biedt dan DV1. In DV2 zijn de specificaties en best practices voor het modelleren en implementeren van een Data Vault duidelijk vastgelegd. De Data Vault 2.0 Standard dient als een uitgebreide gids die methodologie, architectuur en modelleringspraktijken omvat.",p10:"De duidelijkheid en standaardisatie van DV2 maken het eenvoudiger om verschillende aspecten van de implementatie van een Data Vault te automatiseren. Met een duidelijk gedefinieerde set regels en richtlijnen kunnen softwaretools worden ontwikkeld die automatisch conforme Data Vault-structuren genereren. Deze tools kunnen Data Vault-objecten, zoals hubs, satellites en links, aanmaken volgens de voorgeschreven patronen en regels.",p11:"DV1 daarentegen had geen even expliciete en algemeen aanvaarde specificaties. Verschillende practitioners hadden hun eigen interpretaties en benaderingen voor het bouwen van Data Vault-modellen, wat leidde tot variaties in conforme Data Vault-implementaties. Het ontbreken van een gestandaardiseerd kader maakte het lastig om automatiseringstools te ontwikkelen die de uiteenlopende manieren van DV1-implementatie konden ondersteunen.",p12:"De introductie van DV2 en zijn gestandaardiseerde aanpak loste dit probleem op. Het bracht de collectieve kennis en ervaring samen van data-architecten en practitioners die jarenlang aan Data Vault-projecten hadden gewerkt. Door best practices te bundelen en duidelijke richtlijnen te bieden, creëerde DV2 een basis waarop automatisering kon worden gebouwd.",h2_3:"Automatisering van datawarehouses en datalakes",p13:"Datawarehouses en datalakes kunnen ervoor kiezen om Data Vault 2.0 (DV2) te gebruiken als hun methodologie voor datamodellering en -implementatie. Door DV2 te omarmen, kunnen ze de volledige schaalbaarheid van hun datamodellen voor de toekomst garanderen en hun datawarehouses of datalakes op lange termijn duurzaam maken. Laten we dit verder verkennen.",p14:"Datawarehouses en datalakes fungeren als centrale opslagplaatsen voor het bewaren en analyseren van grote hoeveelheden data. Ze vormen de basis voor rapportage, analyse en data-gedreven besluitvorming binnen organisaties. De datamodellen die in deze systemen worden gebruikt, spelen een cruciale rol bij het organiseren en structureren van de data voor efficiënte bevraging en analyse.",p15:"DV2 biedt verschillende voordelen die het een aantrekkelijke keuze maken voor datawarehouses en datalakes die op zoek zijn naar een duurzaam en schaalbaar datamodel.",h3_1:"Schaalbaarheid",p16:"DV2 is ontworpen om de voortdurend veranderende behoeften van organisaties op te vangen naarmate ze groeien en evolueren. De flexibiliteit en aanpasbaarheid van het datavaultmodel maken het eenvoudig om nieuwe databronnen, systeemwijzigingen en groeiende bedrijfsvereisten te integreren. Deze schaalbaarheid zorgt ervoor dat het datawarehouse of datalake toenemende datavolumes en complexiteit doorheen de tijd effectief kan verwerken.",h3_2:"Toekomstbestendigheid",p17:"Door de DV2-methodologie te volgen, kunnen datawarehouses en datalakes hun datamodellen toekomstbestendig maken. DV2 volgt een reeks best practices en gestandaardiseerde richtlijnen die zijn verfijnd op basis van jarenlange ervaring in de sector. Deze aanpak beperkt het risico dat datamodellen verouderd raken of moeilijk te onderhouden zijn naarmate de bedrijfsvereisten evolueren.",h3_3:"Consistentie en herbruikbaarheid",p18:"DV2 bevordert consistentie in datamodellering door een duidelijke set regels en patronen te bieden. Deze consistentie maakt het eenvoudiger om het datamodel te begrijpen en ermee te werken binnen verschillende teams en projecten. Bovendien maakt het gestandaardiseerde karakter van DV2 het mogelijk om datavault-objecten, zoals hubs, satellites en links, te hergebruiken, wat de ontwikkelinspanning aanzienlijk kan verminderen en de data-integratie en -consolidatie kan verbeteren.",h3_4:"Minder onderhoud en complexiteit",p19:"DV2 vereenvoudigt datamodellering en -beheer door de scheiding van de data vault, de business vault en de presentatielagen. Deze scheiding vermindert de complexiteit van het datamodel en maakt het eenvoudiger om het doorheen de tijd te onderhouden en aan te passen. Door DV2 te omarmen, kunnen datawarehouses en datalakes een meer gestroomlijnde en duurzame architectuur realiseren, wat leidt tot lagere onderhoudskosten en een betere datakwaliteit.",p20:"DWH's en DL's kunnen ervoor kiezen om Data Vault 2.0 te omarmen om de schaalbaarheid en duurzaamheid van hun datamodellen te garanderen. De schaalbaarheid van DV2 maakt het mogelijk om toekomstige groei en veranderende bedrijfsvereisten op te vangen. Door gestandaardiseerde best practices te volgen, kunnen datawarehouses en datalakes consistente en herbruikbare datamodellen creëren. Het omarmen van DV2 vermindert ook de onderhoudsinspanning en complexiteit, wat leidt tot duurzamere en efficiëntere datamanagementpraktijken."}
406,tI={backToResources:"Terug naar Resources",title:"Kennismaken met Data Driven Management",intro:"De juiste dingen doen en de dingen juist doen zijn twee verschillende, maar onderling verbonden vraagstukken.",p1:"<strong>De juiste dingen doen</strong> verwijst naar het nemen van de juiste beslissing of het ondernemen van de gepaste actie in een bepaalde situatie. Dit vereist een diep inzicht in de situatie, de mogelijke gevolgen van verschillende acties, en de waarden en doelstellingen van de beslissingnemer.",p2:"<strong>De dingen juist doen</strong> verwijst naar de uitvoering of implementatie van een beslissing of actie. Dit vraagt aandacht voor detail, engagement voor kwaliteit, en oog voor proces en procedures.",quote1:"Strategie zonder uitvoering is een hallucinatie.",quote1Author:"— Thomas Edison",p3:"Het is mogelijk om zowel de juiste dingen te doen als de dingen juist te doen, maar het is ook mogelijk om het één zonder het ander te doen. Een leidinggevende kan bijvoorbeeld beslissen om te investeren in een nieuwe technologie die aansluit bij de doelstellingen en waarden van de organisatie, maar als de implementatie van die technologie overhaast of slecht uitgevoerd wordt, leidt de beslissing mogelijk niet tot het gewenste resultaat. Op dezelfde manier kan een team een project foutloos uitvoeren, maar als het project zelf niet aansluit bij de doelstellingen of waarden van de organisatie, zal het niet als een succes worden beschouwd.",quote2:"Ideeën zonder actie zijn waardeloos.",quote2Author:"— Harvey Mackay",p4:"Om echt succesvol te zijn, is het belangrijk om zowel de juiste dingen te doen als de dingen juist te doen. Dit vraagt een evenwicht tussen strategisch denken en aandacht voor detail, een sterk gevoel van doelgerichtheid en engagement voor kwaliteit. Het vereist ook voortdurende communicatie en samenwerking, en de bereidheid om zich aan te passen en te leren uit eerdere ervaringen.",p5:"Uiteindelijk zijn de juiste dingen doen en de dingen juist doen een continu traject dat voortdurende inspanning en toewijding vergt.",h2_1:"De puntjes met elkaar verbinden",p6:"Het koppelen van de uitvoering van een plan aan het besluitvormingsproces met data is essentieel om ervoor te zorgen dat strategie en uitvoering op elkaar zijn afgestemd en effectief zijn. Data biedt waardevolle inzichten in de prestaties van een plan, waardoor organisaties weloverwogen beslissingen kunnen nemen en hun strategie kunnen bijsturen.",p7:"De eerste stap om de uitvoering te koppelen aan het besluitvormingsproces met data is het vastleggen van duidelijke metrics en doelstellingen voor het plan. Deze metrics moeten nauw aansluiten bij de algemene strategie van de organisatie en dienen om vooruitgang en succes te meten. Als de strategie er bijvoorbeeld op gericht is de verkoop te verhogen, kan de metric het aantal verkopen per maand zijn.",p8:"Zodra de metrics zijn vastgelegd, moeten organisaties het proces organiseren om regelmatig data te verzamelen en te analyseren om de prestaties ten opzichte van deze metrics op te volgen. Deze data kan worden gebruikt om succesvolle gebieden en verbeterpunten te identificeren. Als de verkoop bijvoorbeeld niet aan de verwachtingen voldoet, kan data-analyse aan het licht brengen dat het probleem eerder bij de marketingstrategie ligt dan bij het verkoopteam.",p9:"Zodra de data geanalyseerd is, kan de organisatie weloverwogen beslissingen nemen over hoe de strategie moet worden bijgestuurd om beter aan te sluiten bij de uitvoering. Als het probleem bijvoorbeeld bij de marketingstrategie ligt, kan de organisatie beslissen om meer middelen te investeren in digitale marketing, of het product te herpositioneren om een andere doelgroep aan te spreken.",p10:"Door de uitvoering te koppelen aan het besluitvormingsproces met data, kunnen organisaties ervoor zorgen dat hun strategie en uitvoering nauw op elkaar zijn afgestemd, en dat hun inspanningen gericht zijn op het bereiken van hun doelstellingen. Deze aanpak stelt organisaties in staat om data-gedreven beslissingen te nemen die meer kans hebben om tot succes te leiden, en helpt hen om op koers te blijven met hun algemene strategie."}
406,nI={backToResources:"Terug naar Resources",title:"Data Driven Management Framework",p1:"dFakto heeft een data-gedreven managementframework ontwikkeld dat tot doel heeft de uitvoering van strategische beslissingen binnen elke organisatie te verbeteren. Dit framework bestaat uit vier kernprocessen die samenwerken om dit doel te bereiken.",h2_1:"1. Databeheer (Data)",p2:"Het eerste proces is databeheer. Dit is het proces waarbij ruwe data wordt omgezet in bruikbare informatie die kan worden gebruikt om weloverwogen beslissingen te nemen. Dit proces omvat het verzamelen, opslaan en analyseren van data om inzichten bloot te leggen die de prestaties van de organisatie kunnen verbeteren.",h2_2:"2. Besluitvorming (Decide)",p3:"Het tweede proces is besluitvorming. Dit proces houdt in dat de bruikbare informatie uit het databeheerproces wordt gebruikt om strategische beslissingen te nemen. Dit vereist duidelijke communicatie, samenwerking en een besluitvormingsproces dat gebaseerd is op data-gedreven inzichten.",h2_3:"3. Pilotering (Plan)",p4:"Het derde proces is pilotering. Dit proces houdt in dat de beslissingen uit het besluitvormingsproces worden omgezet in acties op het terrein. Het omvat het testen van de effectiviteit van de beslissingen en het bijsturen waar nodig. Dit proces is cruciaal om ervoor te zorgen dat de genomen beslissingen ook effectief worden uitgevoerd en het gewenste effect hebben.",h2_4:"4. Uitvoering (Do)",p5:"Het laatste proces is uitvoering. Dit proces houdt in dat de beslissingen en acties in de praktijk worden gebracht via bedrijfsprocessen en/of projecten. Het is het proces dat ervoor zorgt dat de organisatie de genomen beslissingen tijdig en effectief kan uitvoeren. Dit vereist duidelijke communicatie, samenwerking en een focus op het behalen van resultaten. Uitvoering genereert nieuwe data en de cyclus herhaalt zich…",quote1:"Data-gedreven besluitvorming gaat niet over het uitschakelen van intuïtie, maar over het versterken ervan.",quote1Author:"— Tim Cook, CEO van Apple Inc.",p6:"Door de vier kernprocessen van dit framework te volgen, kunnen organisaties data omzetten in bruikbare informatie, data-gedreven beslissingen nemen, deze beslissingen pilotéren en uitvoeren, en uiteindelijk betere resultaten behalen."},aI={backToResources:"Terug naar Resources",title:"Data Driven Management: prestaties meten",p1:"Het vermogen om de uitvoering van een project of proces nauwkeurig te meten en op te volgen, is cruciaal om het succes ervan te garanderen. De complexiteit en het volume van de data die bij deze processen betrokken zijn, kunnen het echter moeilijk maken om problemen tijdig te identificeren en aan te pakken. Om de uitvoering van deze processen te verbeteren, is het belangrijk om te focussen op de kwaliteit van de data en het gebruik van live meettools om uitvoeringsverschillen te identificeren en aan te pakken.",h2_1:"Key Quality Indicators (KQI's)",p2:"Eén manier om de datakwaliteit te verbeteren, is het gebruik van Key Quality Indicators (KQI's). Deze indicatoren bieden objectieve metingen van de structuur, persistentie en locaties van datakwaliteitsproblemen binnen de data die gebruikt wordt om informatie te produceren. Door een specifiek framework binnen de dataFaktory te ontwikkelen, is het mogelijk om datakwaliteitsscores en 'DNA-tags' te creëren die eenvoudig kunnen worden geaggregeerd en gehistoriseerd. Dit maakt het mogelijk om datakwaliteitsproblemen nauwkeuriger en efficiënter te identificeren en zorgt voor doeltreffendere en gerichte oplossingen.",h2_2:"Key Execution Indicators (KEI's)",p3:"Een ander belangrijk aspect om de uitvoering te verbeteren, is het gebruik van Key Execution Indicators (KEI's). Deze indicatoren meten het verschil tussen het geplande traject en het gerealiseerde traject van een project of proces. Door een specifiek framework binnen een proPilot en dataFaktory te ontwikkelen, is het mogelijk om objectieve metingen van uitvoeringsverschillen te creëren, zowel actueel (KEI to-date) als toekomstgericht (KEI at-completion). Dit maakt het mogelijk om problemen nauwkeuriger en proactiever te identificeren en zorgt voor doeltreffendere en gerichte oplossingen.",h2_3:"Complexiteit beheersen",p4:"Het is echter belangrijk op te merken dat het gebruik van deze secundaire flows, zoals KQI en KEI, de ervaren complexiteit van het proces kan verhogen. Om dit te beperken, is het belangrijk ervoor te zorgen dat de frameworks duidelijk, eenvoudig te begrijpen en toegankelijk zijn voor alle teamleden. Daarnaast is het belangrijk om opleiding en ondersteuning te bieden, zodat alle teamleden deze frameworks effectief kunnen gebruiken om de uitvoering van projecten of processen te verbeteren.",h2_4:"De aanvullende rol van KPI's",p5:"Het gebruik van Key Performance Indicators (KPI's) is uiteraard complementair aan het gebruik van KEI's en KQI's, en heeft niet als doel deze te vervangen. Concreet:",li1:"<strong>KPI's</strong> laten ons zien of een project of proces zijn bestemming bereikt.",li2:"<strong>KEI's</strong> helpen om te kwalificeren in welke mate er wordt afgeweken van het pad om daar te geraken.",li3:"<strong>KQI's</strong> maken het mogelijk om objectief de mate van vertrouwen te meten die we kunnen hebben in de bijhorende informatie.",p6:"Door een combinatie van KPI's, KEI's en KQI's te gebruiken, krijgen we een volledig en inzichtelijk beeld van onze strategische initiatieven. Dit stelt ons in staat om proactief bij te sturen onderweg, zodat we onze ambitieuze doelstellingen niet alleen halen, maar overtreffen vanaf het begin. Door onze aanpak te optimaliseren, kunnen we de waarde van onze initiatieven maximaliseren en de weg vrijmaken voor nog groter succes. Laten we deze krachtige tools omarmen en het volledige potentieel van onze strategische inspanningen benutten!"}
406,rI={backToResources:"Terug naar Resources",title:"DataFaktory: voordelen voor business users",p1:"dataFaktory, ons datamanagementplatform, verschilt op verschillende vlakken van technische oplossingen die voor data-experts zijn ontworpen. Laten we al deze onderscheidende punten van naderbij bekijken.",h3_1:"Gebruiksvriendelijke interface",p2:"dataFaktory geeft prioriteit aan een gebruiksvriendelijke interface die datamanagementtaken vereenvoudigt. Het is ontworpen om intuïtief en toegankelijk te zijn voor business users, zodat zij de oplossing kunnen configureren, gebruiken en onderhouden zonder uitgebreide technische kennis. Deze focus op gebruikservaring onderscheidt het van andere Data Vault-oplossingen die vaak complexere interfaces hebben, afgestemd op technische experts.",h3_2:"Business-georiënteerde architectuur",p3:"dataFaktory hanteert een business-georiënteerde architectuur die aansluit bij de behoeften van business stakeholders. Het overbrugt de kloof tussen bedrijfsvereisten en technische implementatie, met de nadruk op begrip en gebruik van data door niet-technische profielen. Deze aanpak maakt het voor business users eenvoudiger om de oplossing effectief te benutten, wat het onderscheidt van Data Vault-oplossingen die vooral gericht zijn op technische experts.",h3_3:"Orkestratie, automatisering en vereenvoudiging",p4:"dataFaktory blinkt uit in orkestratie, automatisering en vereenvoudiging van datamanagementprocessen. Het automatiseert complexe bewerkingen zoals data-extractie, -transformatie en -distributie, waardoor de afhankelijkheid van handmatige tussenkomst afneemt. Door deze processen te stroomlijnen, minimaliseert dataFaktory de inspanning die nodig is voor datamanagement, wat het efficiënter maakt dan andere Data Vault-oplossingen die vaak meer handmatige stappen vereisen.",h3_4:"Ingebouwde datakwaliteit",p5:"dataFaktory integreert datakwaliteitscontroles als een essentieel onderdeel van de oplossing. Het past datakwaliteitsmaatregelen toe op zowel individuele databronnen als gecombineerde bronnen, waardoor de algemene kwaliteit van het data-ecosysteem gewaarborgd blijft. Deze ingebouwde datakwaliteitsfunctie onderscheidt het van andere Data Vault-oplossingen die vaak bijkomende tools of processen vereisen om datakwaliteitsproblemen aan te pakken.",h3_5:"Techno-agnostische aanpak",p6:"dataFaktory hanteert een techno-agnostische aanpak, waardoor het kan aansluiten op verschillende en heterogene databronnen. Het is compatibel met diverse onderliggende technologieën, waaronder verschillende databases, ETL-tools (Extract, Transform, Load), SQL-scripts, Python-routines en BI-tools (Business Intelligence). Deze flexibiliteit stelt dataFaktory in staat om bestaande technologie-investeringen te benutten, waardoor het zich aanpast aan uiteenlopende technologische omgevingen.",h3_6:"Kant-en-klare dashboards",p7:"dataFaktory biedt een uitgebreide set kant-en-klare business dashboards voor meerdere managementdomeinen, zoals verkoop, marketing, financiën en voorraadbeheer. Deze dashboards bieden onmiddellijke toegang tot belangrijke inzichten en metrics, en dekken 95% van de typische behoeften van een organisatie. De vooraf gebouwde dashboards zijn ontworpen met een gebruiksvriendelijke interface en vereisen minimale aanpassing, wat dataFaktory onderscheidt van Data Vault-oplossingen die deze kant-en-klare dashboardfunctionaliteit vaak missen.",ctaText:"Interesse om meer te weten te komen?",ctaButton:"Contacteer ons voor een demo"},oI={backToResources:"Terug naar Resources",title:"Waarom duren datawarehouses zo lang?",p1:"Werkt het datawarehouse van uw bedrijf zoals u het wilt? Bent u tevreden met uw dashboards? Voeden alle databronnen die u produceert het datawarehouse?",p2:"Het is mogelijk dat, als u nog met de 'oude methodes' werkt, het antwoord 'waarschijnlijk niet' is. Helaas gaat dit niet snel veranderen als uw bedrijf in enig tempo evolueert. U hebt immers waarschijnlijk een reeks overlappende change requests en aarzelt om er meer te introduceren totdat u zekerheid heeft over enige vooruitgang, of zelfs een schijn van actualiteit.",p3:"Belangrijker dan de change requests is de vraag: <strong>'Weerspiegelt uw datawarehouse de huidige realiteit van uw bedrijf?'</strong> Zeker niet als u nog steeds wacht op die openstaande wijzigingen. Sterker nog, ik durf te wedden dat u zich al hebt neergelegd bij deze vertraging en het bestempeld als 'business as usual'. Als u proactief bent, kijkt u misschien al uit naar technologische oplossingen, maar het hoeft niet zo te zijn.",h2_1:"Oude gewoontes, nieuwe trucjes?",p4:"Met enkel de 'beproefde' aanpakken heeft elke wijziging in uw datawarehouse meestal gevolgen voor afhankelijke systemen. Daardoor moet uw datawarehouse doorgaans iteratief worden aangepast (en getest!) totdat het datamodel de wijziging kan verwerken. Dit gebeurt vaak, en velen hebben zich neergelegd bij het idee dat dit de prijs is voor verandering in 'moderne' datawarehousetechnologie. We weten dat dit niet klopt.",p5:"Nieuwe regelgeving, compliance-vereisten, gekoppelde externe systemen, fusies, procesveranderingen of gewoon groeiende vereisten leiden tot de nood om te wijzigen hoe u data vastlegt, opslaat en analyseert. De grootste uitdaging van elk datawarehouse is namelijk <strong>verandering vastleggen en tegelijk de continuïteit</strong> met historische data behouden, zodat rapportage consistent en accuraat blijft. Klinkt onmogelijk? Niet echt.",p6:"Wijzigingen doorvoeren met traditionele methodes vereist bijna altijd een herziening van datamodellen, impactanalyses en soms zelfs volledige herschrijvingen wanneer nieuwe vereisten worden geïmplementeerd — het is allemaal erg traag, omslachtig en soms pijnlijk. En als u klaar bent, moeten de modelwijzigingen worden getest om te garanderen dat er niets kapot is, voordat u van staging naar live analytics overgaat. Weken worden zo maanden, en het vergt enorm veel tijd en inspanning.",h2_2:"Een betere aanpak",p7:"Het is ingewikkeld om het huidige tempo bij te benen, en daarom hebben slimme mensen de <strong>Data Vault-discipline</strong> bedacht. Het is een methode om de kernstructuur van data te scheiden van de datainhoud. Het resultaat is dat u snel en accuraat kunt inspelen op verandering, zonder last te hebben van vertragingen en de onnauwkeurigheden van traditionele datawarehousemethodologieën. U bouwt de structuur ÉÉN keer en hangt vervolgens uw data eraan in 'satellites'.",p8:"Moet er iets veranderen? Geen probleem, voeg gewoon extra structuur toe zonder wat er al bestaat te breken. Als u meer data wilt opnemen, hangt u gewoon meer aan de kernstructuur ('hubs' en 'links').",p9:"Data Vault is een methodologie, geen technologie. Het is een manier van denken over data, geen voorbijgaande hype. Het houdt in dat u de structuur van uw data scheidt van de wijzigingen. Het vereenvoudigt en stabiliseert uw datamodel, zodat het een vaste entiteit wordt waarin uw ruwe data wordt vastgelegd en nooit meer verandert. Het is een <strong>vault of truth</strong> van uw bedrijf — met alle onvolkomenheden inbegrepen."}
406,sI={backToResources:"Terug naar Resources",title:"Scalefree en dFakto gaan partnerschap aan rond Data Vault",h2_1:"dFakto en Scalefree slaan de handen ineen om data warehouse automatisering en Data Vault-oplossingen naar een hoger niveau te tillen",date:"<strong>Brussel, 12 november 2024</strong>",p1:"dFakto kondigt met trots een strategisch partnerschap aan met <strong>Scalefree</strong>, een expert in business intelligence-consulting en de implementatie van data warehouse-projecten, gespecialiseerd in de Data Vault 2.0-methode.",p2:"Deze samenwerking heeft tot doel de mogelijkheden van ons Data Vault Automation-platform, <strong>beVault</strong>, verder te versterken en organisaties wereldwijd geavanceerde data-managementoplossingen te bieden.",p3:"De diepgaande expertise van Scalefree op het vlak van Data Vault-modellering en de implementatie van data warehouses sluit naadloos aan bij de beVault-technologie van dFakto — een krachtige oplossing die de volledige Data Vault-levenscyclus automatiseert, van integratie tot de uitrol van Information Marts. Samen bieden dFakto en Scalefree klanten een robuuste, schaalbare aanpak voor het beheer van hun data-ecosystemen, met snellere en nauwkeurigere inzichten en betere besluitvorming als resultaat.",highlight:"Tot op vandaag is beVault de enige gecertificeerde Data Vault 2.0-tool.",p4:"Dit partnerschap combineert de datamodellerings-expertise van Scalefree met de automatiseringstechnologie en know-how van dFakto en biedt zo een complete oplossing voor organisaties die hun data-infrastructuur willen moderniseren. Door complexe dataprocessen te automatiseren en de Data Vault-methodologie te benutten, stelt deze alliantie bedrijven in staat hun datawerking te stroomlijnen, kosten te verlagen en meer wendbaarheid te bereiken in hun datamanagementstrategieën.",p5:"Scalefree is gespecialiseerd in Data Vault 2.0-oplossingen voor moderne ondernemingen. Als gecertificeerd trainingspartner zet Scalefree zijn expertise in om organisaties te helpen het volledige potentieel van hun data te benutten. Scalefree richt zich op praktische en innovatieve oplossingen in uiteenlopende sectoren en zorgt ervoor dat bedrijven Big Data effectief kunnen inzetten binnen de huidige bedrijfscontext.",h3_1:"Over beVault",p6:"beVault is een platform dat bedrijfsbehoeften naadloos verbindt met technologische oplossingen binnen één uniform platform. De Data Vault 2.0-certificering onderstreept de conformiteit en effectiviteit van het platform in moderne, schaalbare datamanagementpraktijken.",h3_2:"Over dFakto",p7:"dFakto is een pionier in geautomatiseerde datamanagementplatformen die initiatieven in zowel de publieke als de private sector ondersteunen. Met de focus op innovatie stelt dFakto organisaties in staat om data om te zetten in bruikbare inzichten, wat de besluitvorming en operationele efficiëntie verbetert.",h3_3:"Over Scalefree",p8:"Scalefree werd in 2016 opgericht door de bedenker van Data Vault, Dan Linstedt, en Michael Olschimke, en staat voor de praktijkgetoetste en duurzame implementatie van data warehouse-projecten op basis van de Data Vault-standaarden zoals gedefinieerd door Dan Linstedt. Met deskundig advies en training loodst Scalefree bedrijven naar een schaalbare, efficiënte en toekomstbestendige data-infrastructuur."},iI={backToResources:"Terug naar Resources",title:"PCMA & dFakto: AI-platform voor zakelijke evenementen",h2_1:"destinAItor voorgesteld op edUcon 2025 als baanbrekende tool voor bestemmings- en locatieonderzoek",p1:"<strong>CHICAGO, IL</strong> – DestinAItor, de nieuwe generatie tool van PCMA voor bestemmings- en locatieplanning voor strategen van zakelijke evenementen, levert datagedreven inzichten en vermindert daarmee de tijd en het geld die worden geïnvesteerd in bestemmings- en locatieonderzoek. Het AI-gedreven platform, ontwikkeld in samenwerking met dFakto, gaat verder dan data, tarieven en ruimte.",p2:"destinAItor, eerder deze maand voorgesteld op edUcon, beschikt over een valideringsproces voor destination marketing organisaties (DMO's). Deelnemende bestemmingen en locaties controleren en, vooral, verifiëren hun respectievelijke profielen om accurate en actuele content te garanderen. De gecureerde data omvat informatie zoals duurzaamheidsinitiatieven, veiligheidsmaatregelen, economische sectoren, stadsbrede evenementen, infrastru
406ctuurontwikkelingen en meer. Destinaitor bouwt voort op strategische datapartnerschappen met Tempest en Simpleview om meeting- en evenementdata te integreren, waardoor strategen eenvoudig meerdere bestemmingen kunnen vergelijken op basis van objectieve, geverifieerde data. destinAItor beschikt ook over een RFP-functie die de aanvraag van een planner kan analyseren en passende bestemmingen kan voorstellen.",p3:'Inzichten van het destinAItor-platform zijn gratis voor strategen van zakelijke evenementen. Bestemmingen en locaties die doorzoekbaar willen zijn, dienen deel te nemen aan een destinAItor-pilootproject voor de beoordeling van AI-gegenereerde bestemmingsdata, om vervolgens het label "Verified Destination" te behalen en zo op het platform te verschijnen.',quote1:"Ik geloof dat destinAItor een revolutie teweeg zal brengen in de manier waarop strategen van zakelijke evenementen bestemmingen en locaties onderzoeken. Het platform is dynamisch. Dit wordt een voortdurende evolutie. PCMA blijft zich inzetten om onze wereldwijde community van zakelijke evenementen te versterken met tools die intuïtief zijn en inspelen op hun behoeften. destinAItor beantwoordt precies aan die behoefte.",quote1Author:"— Sheriff Karamat, CAE, President & CEO van PCMA en CEMA",p4:"Deelnemende bestemmingen en locaties profiteren van prestatierapporten en analyses over zoekpatronen en trending bestemmingen, aangezien het platform bestemmingen en locaties de kans geeft hun unieke troeven in de verf te zetten en zo klanten aan te trekken die aansluiten bij hun strategische doelstellingen.",quote2a:"De sector van zakelijke evenementen evolueert snel, met een toenemende vraag naar beveiligde en compliant AI-gedreven oplossingen en datagedreven besluitvorming. Door samen te werken met PCMA hebben we sectorspecifieke uitdagingen geïdentificeerd — een overvloed aan data uit meerdere bronnen, inefficiënte zoekprocessen en aanzienlijk wantrouwen ten opzichte van AI-data door twijfels over de nauwkeurigheid.",quote2b:"Voor bestemmingen en locaties is dit een kans om controle te krijgen over hun data en hun merkverhaal, om zwakke leadgeneratie aan te pakken en RFP-spam te overwinnen, terwijl ze via analyses inzicht krijgen in zoekpatronen. Dit is nog maar het begin. We zien nieuwe toepassingen ontstaan en er zullen doorlopend nieuwe baanbrekende functies aan het destinAItor-platform worden toegevoegd.",quote2Author:"— Thibaut De Vylder, CEO van dFakto",h3_1:"Contact:",contact:'Meghan Risch<br />PCMA<br />Chief of Staff, Vice President, Corporate Communications<br />E-mail: <a href="mailto:[email protected]">[email protected]</a>',h3_2:"Over PCMA",p5:`PCMA, PCMA Foundation en CEMA informeren, inspireren en luisteren, en creëren betekenisvolle ervaringen waarin passie, doelgerichtheid en commercie samenkomen. Wij zijn 's werelds grootste community voor strategen van zakelijke evenementen en bieden educatie op senior niveau, netwerkmogelijkheden en marktinformatie voor de wereldwijde sector van zakelijke evenementen. Onze missie is het stimuleren van sociale en economische vooruitgang via zakelijke evenementen. PCMA, met hoofdkantoor in Chicago, IL, telt 17 Noord-Amerikaanse chapters, regionale communities in APAC, EMEA en LATAM, en leden in 59 landen. De Corporate Event Marketing Association (CEMA), een dochterorganisatie van PCMA, bevordert strategische eventmarketing en marketingcommunicatie voor eventmarketeers op senior niveau en sectorprofessionals. Bezoek ons op <a href="https://pcma.org" target="_blank" rel="noopener noreferrer">pcma.org</a>.`,h3_3:"Over dFakto",p6:`dFakto is een datagedreven, bedrijfsgerichte expert in geavanceerde dataplatformen, die zich inzet om de manier waarop organisaties hun data transformeren, laten renderen en compliant houden, te revolutioneren. Wij bieden innovatieve, tool-gestuurde consulting- en licentieoplossingen, met als uithangbord onze toonaangevende platformen beVault (<a href="https://www.bevault.io" target="_blank" rel="noopener noreferrer">www.bevault.io</a>) en proPilot (<a href="https://www.propilot.io" target="_blank" rel="noopener noreferrer">www.proPilot.io</a>). Onze missie is om een breed scala aan klanten — van overheden en grote ondernemingen tot verenigingen en kmo's — te ondersteunen bij het bouwen, uitbaten en onderhouden van wendbare, hoogtechnologische dataplatformen. Het dFakto-platform blinkt uit in het voorbereiden en integreren van data uit meerdere bronnen, op een veilige en compliant manier. Bovendien zijn onze toekomstbestendige oplossingen ontworpen om flexibel in te spelen op de snelle vooruitgang en veranderende vereisten van kunstmatige-intelligentietechnologieën, met toekomstbestendige datamanagementmogelijkheden als resultaat. dFakto heeft momenteel kantoren in Brussel en Parijs en zal via de joint venture in Chicago actief zijn op de Noord-Amerikaanse markt. Bezoek ons op <a href="https://www.dfakto.com" target="_blank" rel="noopener noreferrer">www.dfakto.com</a>.`}
406,lI={backToResources:"Terug naar Resources",title:"25 jaar data-innovatie: een boodschap van onze CEO",welcome:"Welkom bij dFakto!",p1:"Nu we in september 2025 ons 25-jarig bestaan vieren, sta ik stil bij een traject dat werkelijk opmerkelijk is geweest. Van onze bescheiden beginjaren tot uitgroeien tot een toonaangevende innovator in datamanagementautomatisering: we hebben het steeds veranderende technologische en zakelijke landschap doorlopen met één duidelijke focus: organisaties wereldwijd praktische, wendbare en doeltreffende oplossingen bieden.",p2:"Slechts 60 jaar geleden werd data vaak beschouwd als een bijproduct van bedrijfsactiviteiten, dat de systemen niet mocht verlaten. Vandaag is data het levensbloed van organisaties — het maakt slimmere beslissingen mogelijk, stimuleert innovatie en vormt de basis voor toekomstige groei.",p3:"Terwijl de wereld snel verandert, heeft dFakto deze transformatie omarmd en onze oplossingen voortdurend aangepast aan de steeds veranderende behoeften van onze klanten.",h2_1:"Bij dFakto pakken we het anders aan:",li1:"<strong>Geen wondermiddelen, enkel bewezen resultaten</strong> — Wij beloven geen onmogelijke zaken en verkopen geen snelle oplossingen. Wij leveren echte stabiliteit en strategische wendbaarheid in de onvoorspelbare bedrijfsomgeving van vandaag.",li2:"<strong>Versnel met vertrouwen</strong> — Wij bieden organisaties de precieze tools die nodig zijn om data doeltreffend te beheren en te benutten, met snellere beslissingen, slimmere activiteiten en ongeëvenaarde efficiëntie als resultaat.",li3:"<strong>Strategische focus, maximale impact</strong> — Onze oplossingen proberen niet alles te doen. Ze blinken uit in het snel doen van de juiste dingen, tegen een fractie van de traditionele kosten en doorlooptijden.",p4:"Al 25 jaar bewijzen we dat datamanagement een traject is, geen eindpunt. We hebben beVault gebouwd, onze geautomatiseerde datamanagementoplossing, en proPilot, een krachtige tool voor het beheer van strategische initiatieven — beide ontworpen om teams te versterken en blijvende waarde te creëren.",p5:"Maar meer dan de oplossingen zelf is het onze filosofie — onze aanpak van probleemoplossing — die ons onderscheidt.",p6:'Wij geloven niet in "one-size-fits-all"-oplossingen. Wij geloven erin de 80% aan te passen aan uw behoeften en de nodige tijd te besteden aan de 20% die het verschil maakt. Het is een aanpak die werkt, en daarom vertrouwen klanten uit uiteenlopende sectoren op ons — organisaties die in gelijke mate nood hebben aan wendbaarheid en stabiliteit.',p7:"Terwijl we naar de toekomst kijken, blijven we even toegewijd aan onze missie: organisaties helpen het volledige potentieel van hun data te benutten. We zijn niet zomaar een technologiebedrijf of een consultancykantoor — we zijn een <strong>tool-gestuurd consultingbedrijf</strong>, gebouwd om wendbaar, aanpasbaar en steeds klaar te zijn om nieuwe uitdagingen aan te gaan.",goal:"Ons doel is eenvoudig: u helpen innoveren, versnellen en transformeren met de kracht van data.",p8:"Bedankt om deel uit te maken van ons traject.",p9:"Of u nu klant, partner of teamlid bent, uw vertrouwen en samenwerking hebben ons succes mogelijk gemaakt.",p10:"Op naar de volgende 25 jaar — en verder. Samen blijven we de toekomst van datamanagement vormgeven.",signName:"– Thibaut De Vylder",signTitle:"CEO van dFakto"},cI={backToBlog:"Terug naar Blog",category:"Datastrategie",title:"De mythe van het ene ERP: waarom Odoo niet uw data warehouse zou moeten zijn",h2_1:"Inleiding",p1:"Vandaag bestaat geen enkel informatiesysteem op zichzelf. Een modern bedrijf gebruikt doorgaans:",li1_1:"een ERP (zoals Odoo),",li1_2:"een CRM,",li1_3:"marketingtools,",li1_4:"verticale bedrijfsplatformen,",li1_5:"of zelfs IoT-bronnen, platte bestanden of legacysystemen.",p2:'De uitdaging bestaat niet langer alleen uit het verzamelen van data, maar uit het betrouwbaar <strong>consolideren, kruisen en benutten</strong> ervan. Van Odoo verwachten dat het de "single source of truth" wordt voor al die data, is een natuurlijke verleiding, maar leidt vaak tot bijkomende complexiteit en kosten.',h2_2:"Odoo speelt niet in dezelfde categorie als dedicated dataplatformen",p3:"Odoo blijft bijzonder effectief in het beheren van transactionele en bedrijfsprocessen. Maar het consolideren van data uit uiteenlopende systemen, het historiseren en harmoniseren ervan, en het beschikbaar maken voor analyse, vereist een platform dat specifiek is ontworpen om al deze datastromen te orkestreren.",h2_3:"Een dataplatform om te orkestreren, niet om te vervangen",p4:"Dat is precies de rol van <strong>beVault</strong>.",p5:"beVault:",li3_1:"verbindt met alle bedrijfsbronnen (ERP, CRM, bestanden, andere applicaties)",li3_2:"historiseert data automatisch volgens een gestructureerd en gegovernanceerd model",li3_3:"voedt BI- of AI-tools zonder dat u zelf pipelines hoeft samen te flansen",li3_4:"onderhoudt een gestructureerde <strong>single source of truth</strong> voor alle stakeholders.",p6:"Deze aanpak houdt niet in dat Odoo wordt weggehaald, maar zorgt ervoor dat elk systeem zijn optimale rol behoudt:",li4_1:"<strong>Odoo</strong> beheert de transactionele bedrijfsactiviteiten,",li4_2:"<strong>beVault</strong> zorgt voor unificatie, governance en analytisch hergebruik.",h2_4:"Concrete voordelen voor het bedrijf",li5_1:"Beslissingen gebaseerd op consistente data over CRM, ERP, marketing en finance heen.",li5_2:"Meer tijd voor analyse, minder tijd voor Excel-manipulaties of manuele exports.",li5_3:"Sterke aanpasbaarheid wanneer nieuwe bronnen opduiken of behoeften evolueren.",h2_5:"Conclusie",p7:"Om op een duurzame manier tegemoet te komen aan cross-functionele databehoeften, is het antwoord niet om Odoo een rol op te dringen waarvoor het niet is ontworpen. Het gaat erom een <strong>coherente data-architectuur</strong> op te zetten, waarbij Odoo een betrouwbare bron is onder andere, die een robuuster platform zoals beVault voedt."},dI={backToBlog:"Terug naar Blog",category:"ERP & Architectuur",title:"Is Odoo traag? Koop geen servers, verander uw architectuur.",subtitle:"De echte vraag achter prestatieproblemen",h2_1:"Inleiding",p1:'Wanneer organisaties Odoo op grote schaal implementeren, is het niet ongewoon om te horen: "Odoo begint traag te worden." Toch is dit in de meeste gevallen geen configuratiefout of een geïsoleerd technisch optimalisatieprobleem: het is een <strong>strategisch signaal</strong>. Wanneer het ERP tegelijk transactionele workloads, rapportagebehoeften, integraties en datahistorisering draagt, komen de beperkingen niet van de softw
406are zelf — ze komen van de steeds groter wordende last aan verantwoordelijkheden die erop wordt gelegd.',h2_2:"Het echte probleem: het ERP verder uitbreiden dan zijn natuurlijke reikwijdte",p2:"Odoo blinkt uit als transactioneel ERP, maar is niet ontworpen als modern gecentraliseerd dataplatform. Het rekken om tegelijk te dienen als:",li2_1:"een datahub,",li2_2:"een rapportage-engine,",li2_3:"een analytische single source of truth",p3:"…is vaak de onderliggende oorzaak van waargenomen vertragingen of kostbare compromissen op het vlak van performantie en complexiteit.",h2_3:"Een ander pad: een dedicated datalaag toevoegen",p4:"In plaats van punctuele optimalisaties binnen Odoo te vermenigvuldigen, is een relevantere vraag voor leidinggevenden: zou het niet efficiënter zijn om dataconsolidatie en -orkestratie toe te vertrouwen aan een platform dat daarvoor is ontworpen? Hier komt een oplossing zoals <strong>beVault</strong> in beeld.",p5:"beVault positioneert zich als een modern dataplatform, gebouwd op de Data Vault-methodologie, dat het genereren van datamodellen, de integratie van diverse bronnen, volledige historisering en governance automatiseert — en dit alles terwijl BI en analytisch gebruik worden vergemakkelijkt en Odoo wordt ontlast van taken waarvoor het niet is geoptimaliseerd.",h2_4:"Waarom deze aanpak anders is",li4_1:"<strong>Behouden performantie:</strong> Odoo blijft transactionele activiteiten afhandelen zonder overbelast te raken door zware datavereisten.",li4_2:"<strong>Modulariteit en schaalbaarheid:</strong> de datalaag evolueert volgens de behoeften, zonder de beperkingen op het ERP te vermenigvuldigen.",li4_3:"<strong>Return on investment:</strong> minder tijd nodig voor het samenflansen van integratieoplossingen of eigen scripts.",h2_5:"Conclusie",p6:"Odoo keer op keer optimaliseren is niet de juiste hefboom wanneer de beperkingen voortkomen uit datacomplexiteit. De echte vraag is <strong>architecturaal</strong> van aard. Vanuit dat perspectief wordt het integreren van een gespecialiseerde datalaag zoals beVault de logische keuze — niet om Odoo te vervangen, maar om het slim aan te vullen."},uI={backToBlog:"Terug naar Blog",category:"AI-strategie",title:"2026: Uw IT klaarstomen voor het AI-tijdperk met beVault (en administratieve complexiteit vermijden)",date:"19 februari 2026",subtitle:"Waarom uw huidige IT een knelpunt wordt — en hoe u er nu al op inspeelt.",h2_intro:"2026: waarom uw huidige IT op het punt staat een knelpunt te worden (en hoe u zich voorbereidt)",p_intro1:"De realiteit is hard maar noodzakelijk: de manier waarop we onze IT-systemen de voorbije 15 jaar hebben opgebouwd, raakt achterhaald. Niet omdat uw software slecht is, maar omdat de manier waarop we ze zullen gebruiken radicaal verandert met de opkomst van AI.",p_intro2:"Hier volgt onze analyse van wat kmo's en middelgrote bedrijven te wachten staat tegen 2026, en hoe u uw huidige silo's kunt omvormen tot geordende vloeiendheid.",h2_1:"1. De moderniseringsval: de softwarearchipel",p1_1:'De voorbije vijftien jaar hebben bedrijven een "beste tool voor elke taak"-strategie gehanteerd om te moderniseren. Eén software voor boekhouding, een SaaS voor marketing, een CRM voor sales, een ERP voor productie… Zonder het te willen, hebben we een "tech stack fragmentatie" gecreëerd — een technologische lasagne.',p1_2:`Een gemiddeld bedrijf komt vandaag uit op tientallen verschillende tools. Het probleem? Deze tools zijn silo's. Ze communiceren niet vanzelf met elkaar. Het menselijke gevolg: uw teams brengen hun dagen door als "lijm". Ze kopiëren informatie van het ene tabblad, plakken het in een ander, exporteren een Excel-bestand, bewerken het en importeren het elders opnieuw. Dit noemen we administratieve complexiteit, en het kost een fortuin.`,h2_2:"2. Het grote misverstand rond de grafische interface",p2_1:"Dit is het kernprobleem voor de komende jaren. Gedurende 40 jaar hebben we software ontworpen voor mensen. We creëerden knoppen, dropdownmenu's, kleurrijke dashboards. Dat was nodig zodat wij de machine konden gebruiken.",p2_2:`Maar vandaag wilt u kunstmatige intelligentie (AI) inzetten in uw bedrijf. Voor een AI zijn uw mooie grafische interfaces obstakels — "pixelmuren". AI werkt op de snelheid van het licht met ruwe tekst en code. Als u AI dwingt om naar een scherm te "kijken", te raden waar het moet klikken, of te begrijpen dat een rode knop "Urgent" betekent, vertraagt u het proces aanzienlijk. Het is alsof u een computer vraagt een boek te lezen door de pagina's om te slaan met een robotarm, terwijl hij het tekstbestand in een milliseconde had kunnen downloaden.`,p2_3:'De interface, die een hulpmiddel was voor mensen, wordt een belasting voor AI — de "interfacetaks".',h2_3:"3. 2026: het tijdperk van delegatie",p3_1:'Tot eind 2025 bevonden we ons in het "Copilot"-tijdperk: u chat met de AI, stelt een vraag, en die antwoordt. Nuttig, maar nog steeds manueel. 2026 markeert de overgang naar delegatie. We zullen niet langer met AI willen overleggen — we zullen haar volledige opdrachten willen toevertrouwen: "Controleer de voorraad, bestel de ontbrekende onderdelen en breng klanten op de hoogte van de vertraging."',p3_2:"Om deze delegatie te doen slagen, moet AI stoppen met het simuleren van een mens die klikt. Ze moet rechtstreeks aansluiten op het brein van uw bedrijf.",h2_bevault:"Het antwoord: schakel de tussenpersoon uit met beVault",p_bevault_intro:'Hier komt een oplossing zoals beVault in beeld. Haar rol is niet om nog een s
406oftwarelaag toe te voegen, maar om "ondergrondse snelwegen" te creëren tussen uw data en AI, waarbij grafische interfaces volledig worden omzeild. Zo werkt het in drie belangrijke stappen om uw kmo toekomstbestendig te maken:',h3_step1:"Stap 1: kijk onder de motorkap (rechtstreekse verbinding)",p_step1:`In plaats van te proberen verbinden met het scherm van uw ERP of CRM, koppelt beVault rechtstreeks "aan de bron" — met de ruwe databanken of API's (de technische connectoren). Het haalt de ruwe feiten (bestellingen, facturen, gewerkte uren) op vóór ze worden opgemaakt voor een computerscherm. U krijgt de pure grondstof.`,h3_step2:"Stap 2: de universele vertaler (de semantische laag)",p_step2_1:'Dit is de meest cruciale stap. Als u data uit 10 verschillende softwaresystemen haalt, krijgt u een Toren van Babel. In softwarepakket A heet een klant "Client_ID". In softwarepakket B is het "KUNNR". In het Excel-bestand van de verkoper heet het "Bedrijfsnaam". Voor een AI is dat chaos — ze kan niet raden dat het om hetzelfde gaat.',p_step2_2:'beVault fungeert als een intelligent, gecentraliseerd woordenboek (gebaseerd op de Data Vault 2.0-methodologie). Het legt eens en voor altijd vast dat "Client_ID", "KUNNR" en "Bedrijfsnaam" met hetzelfde unieke zakelijke concept overeenkomen. Het resultaat: AI hoeft niet langer te raden. De datastructuur zelf draagt de betekenis.',h3_step3:"Stap 3: spreek de taal van de machine",p_step3:"Zodra de data verzameld en vertaald is, stelt beVault ze beschikbaar in een formaat dat machines graag zien (gestructureerde API's en MCP-protocollen voor taalmodellen zoals GPT of Claude). De AI-agent hoeft niet langer te navigeren. Hij stelt beVault een precieze technische vraag en krijgt onmiddellijk een betrouwbaar antwoord.",h3_proofpoint:"Wilt u een concreet resultaat zien?",p_proofpoint1:"Theorie is goed. Praktijk is beter.",p_proofpoint2:"Ontdek hoe wij deze AI- en datastructureringsprincipes hebben toegepast om <strong>PCMA</strong> te helpen hun hybride evenementen te transformeren.",p_proofpoint_cta:'👉 <a href="https://www.bevault.io/5-conference-attendance-increase-hybrid-solutions/" target="_blank" rel="noopener noreferrer"><strong>Lees de case study: +5% meer deelnemers dankzij hybride oplossingen</strong></a>',h2_conclusion:'Conclusie: stop met de "interfacetaks" te betalen',p_conclusion1:"De economische rekensom is eenvoudig. Zonder deze aanpak betaalt u mensen om machinedata te vertalen naar visuele schermen. Vervolgens betaalt u AI-tools om die visuele schermen opnieuw te proberen begrijpen. Dat is een dubbele verspilling van tijd en geld.",p_conclusion2:"Met beVault automatiseert u de vertaling eenmalig — van ruwe data naar een universele taal voor uw machines.",p_conclusion3:'Uw bedrijf evolueert van een "chaotische bibliotheek waarin u handmatig naar boeken zoekt" naar een "digitale kennisbank op afroep". Dat is de enige voorwaarde opdat AI een echte groeimotor wordt voor uw kmo — en niet zomaar een conversationele gadget.'},pI={title:"Webinar-opname: de ultieme analytics-stack voor Odoo",metaDesc:"Bekijk de opname: Loïc Gamain (dFakto) en Julien Masson (Osolutions) presenteren de ideale architectuur om complexe datavraagstukken in het Odoo-ecosysteem op te lossen.",category:"Opname",backToBlog:"Terug naar Blog",heroSubtitle:"In deze sessie presenteren Loïc Gamain (dFakto) en Julien Masson (Osolutions) de ideale architectuur om complexe datavraagstukken in het Odoo-ecosysteem op te lossen. Bekijk hieronder de volledige demonstratie.",problemTitle:"Odoo is geen data warehouse (en ook geen BI-tool)",problemIntro:"Odoo is een uitstekend ERP voor het beheer van dagelijkse activiteiten. Maar wanneer de projecten van uw klanten in omvang toenemen, duiken drie grote beperkingen op:",problem1:"<strong>Performantie:</strong> zware queries op jarenlange historische data tasten de gebruikerservaring in productie aan.",problem2:"<strong>Datasilo's:</strong> het ontbreken van een uniforme ervaring bij het combineren van Odoo-informatie met externe software (CRM, legacysystemen, Excel-bestanden).",problem3:"<strong>De financiële val:</strong> om deze tekortkomingen te compenseren, lopen de kosten voor externe BI-licenties (zoals Power BI) de spuigaten uit, waardoor gebruikers hun ERP moeten verlaten.",solution1Title:"Back-end-architectuur: data voorbereiden met beVault",solution1Text:'De oplossing om de performantie van Odoo te beschermen, is geen code-optimalisatie. U moet de architectuur veranderen en een onafhankelijke datalaag creëren. Hier komt beVault om de hoek kijken, ons soevereine (100% Belgische) "All-in-One"-dataplatform. Achter de schermen verbindt beVault met uw bronnen en haalt het ruwe data op, zonder enige impact op de productie. Uw bedrijfsregels worden automatisch toegepast. Data wordt opgeschoond, veilig gehistoriseerd en klaar voor gebruik verspreid.',solution2Title:"Front-end-interface: native BI met O'Dashboard",solution2Text:`Perfecte data heeft geen nut als ze niet wordt weergegeven waar uw gebruikers werken. Dankzij onze alliantie met Osolutions wordt de door beVault voorbereide data rechtstreeks benut door <a href="https://odashboard.eu/" target="_blank" rel="noopener noreferrer">O'Dashboard</a>. Het resultaat: complexe multi-bron dashboards die native worden weergegeven in de menu's van Odoo. Een naadloze gebruikerservaring, zonder verspreide tools en zonder kosten voor externe BI-licenties.`,ctaTitle:"Heeft u een complex Odoo-dataproject in gedachten? Wij hebben de oplossing.",ctaText:"",ctaButton:"Praat met ons team"},mI={metaTitle:"dFakto draagt zijn Odoo-activiteiten over aan Niboo en versnelt op data",metaDesc:"dFakto vertrouwt zijn Odoo-activiteiten toe aan Niboo en herfocust op enterprise datamanagement met beVault, proPilot en beVault for Odoo.",category:"Persbericht",backToBlog:"Terug naar Blog",date:"Parijs/Brussel, 11 september 2026",title:"dFakto draagt zijn Odoo-activiteiten over aan Niboo en versnelt op data met beVault en proPilot",subt
406itle:"Van kracht sinds 1 mei 2026, markeert deze strategische beslissing de herfocus van dFakto op zijn historische kernactiviteit: enterprise datamanagement.",intro:"<strong>Parijs/Brussel, 11 september 2026</strong> – dFakto, een pionier in datamanagementoplossingen sinds 2000, kondigt de overdracht aan van al zijn Odoo-activiteiten aan Niboo, zijn langdurige partner. Deze overgang, van kracht sinds 1 mei 2026, stelt dFakto in staat om 100% van zijn energie en middelen te richten op wat al meer dan 25 jaar zijn DNA vormt: de beheersing van enterprise data via zijn producten beVault en proPilot.",h2_1:"Een weloverwogen strategische keuze",p1_1:"dFakto, opgericht in 2000 met een aanwezigheid in Parijs en Brussel, heeft zich gevestigd als een technologische leider in het domein van data. Als uitgever van beVault, de eerste Data Vault 2.0-gecertificeerde oplossing, en van proPilot, ondersteunt het bedrijf organisaties bij de transformatie van hun data-architecturen om hun Business Intelligence- en kunstmatige-intelligentiemogelijkheden te verbeteren.",quote1:"Na 26 jaar hebben we besloten ons te herfocussen op wat ons werkelijk onderscheidt: data. Modern datamanagement vereist scherpe expertise, voortdurende innovatie en volledige focus. Dat verdienen beVault en proPilot, en dat is wat we hen gaan geven.",quote1Author:"Thibaut De Vylder, CEO van dFakto",p1_2:"Deze overdracht is geen terugtrekking, maar een weloverwogen keuze voor specialisatie. dFakto draagt een bloeiende activiteit over aan een vertrouwde partner om verder te versnellen in zijn domein van excellentie.",h2_2:"Een 11-jarig partnerschap dat op natuurlijke wijze evolueert",p2_1:"Niboo en dFakto werken al 11 jaar samen binnen het Odoo-ecosysteem. Niboo was reeds de belangrijkste partner van dFakto op dit vlak en nam een groot deel van de implementaties en bijhorende diensten voor zijn rekening. Deze overname formaliseert een langdurige operationele realiteit en kadert in een wederzijds engagement voor de komende 5 jaar.",quote2:"Deze activiteit toevertrouwen aan Niboo is de logische volgende stap na een decennium van samenwerking. We hebben dit vertrouwen samen opgebouwd, en we weten dat onze klanten in de beste handen zijn.",quote2Author:"Loic Gamain, Managing Director van dFakto",p2_2:"De aan Odoo toegewijde teams van dFakto sluiten aan bij Niboo, wat perfecte continuïteit voor klanten garandeert. Contracten worden ongewijzigd overgenomen, en dFakto blijft instaan voor infrastructuur en hosting, zodat een vlotte overgang zonder onderbreking van dienstverlening wordt gewaarborgd.",h2_3:"Volledige continuïteit voor klanten",p3_1:"De huidige klanten van dFakto binnen de Odoo-scope zullen geen enkele hinder ondervinden. Dezelfde teams blijven hen ondersteunen, voortaan binnen Niboo, een langdurige Odoo Gold Partner.",quote3:"Onze klanten verliezen niets — integendeel. Ze genieten voortaan van twee sterk gespecialiseerde partners: Niboo voor Odoo, dFakto voor data. Het beste van beide werelden.",quote3Author:"Thibaut De Vylder, CEO en oprichter van dFakto",h2_4:"beVault for Odoo: de strategische alliantie gaat verder",p4_1:"De overdracht van de Odoo-activiteiten betekent geenszins dat dFakto zich terugtrekt uit dit ecosysteem. Integendeel, het bedrijf versterkt zijn aanwezigheid via beVault for Odoo, een data-integratie- en managementoplossing die specifiek is ontworpen voor Odoo-gebruikers.",p4_2:"beVault for Odoo stelt bedrijven die het Odoo ERP gebruiken in staat om hun data te structureren, te historiseren en te benutten met de kracht van Data Vault 2.0, wat schaalbaarheid, traceerbaarheid en compliance garandeert. Deze oplossing illustreert de perfecte complementariteit tussen Niboo, de ERP-expert, en dFakto, de dataspecialist.",quote4:"Onze band met het Odoo-ecosysteem blijft sterk en strategisch. beVault for Odoo vormt een brug tussen onze twee expertisedomeinen, en deze technische alliantie zal in de komende jaren nog verdiepen.",quote4Author:"Loïc Gamain",p4_3:'Om beVault for Odoo in detail te ontdekken, organiseerde dFakto op 28 mei 2026 een dedicated webinar. Bekijk hier de opname: <a href="https://www.youtube.com/watch?v=UTnvdG_hR-w" target="_blank" rel="noopener noreferrer">Webinar: gestructureerde data & native dashboards in Odoo: de ontbrekende analytics-stack</a>.',h2_5:"Visie en vooruitzichten",p5_1:"Bevrijd van het beheer van een ERP-activiteit, zal dFakto de ontwikkeling van beVault en proPilot versnellen. Het bedrijf plant in de komende maanden verschillende belangrijke aankondigingen over nieuwe functies, geavanceerde integraties en innovatieve toepassingen op het vlak van kunstmatige intelligentie en business intelligence.",quote5:"Data staat vandaag centraal in elke digitale transformatie. We hebben een duidelijke visie, onderscheidende producten en nu 100% van onze focus. De komende jaren beloven bijzonder boeiend te worden.",quote5Author:"Thibaut De Vylder",h2_about1:"Over dFakto",about1:"dFakto, opgericht in 2000, is een softwareuitgever gespecialiseerd in enterprise datamanagement. Met vestigingen in Parijs en Brussel ontwikkelt het bedrijf beVault en proPilot, tools die de manier waarop organisaties hun data verzamelen, beveiligen en benutten revolutioneren om hun Business Intelligence- en kunstmatige-intelligentiemogelijkheden te verbeteren. dFakto ondersteunt bedrijven van alle groottes bij het opbouwen van robuuste, schaalbare data-architecturen die voldoen aan internationale standaarden.",contact1:'<strong>Perscontact dFakto:</strong><br />Loïc Gamain, Managing Director<br /><a href="mailto:[email protected]">[email protected]</a><br />+33.1.87.43.00.35<br /><a href="https://www.dfakto.com" target="_blank" rel="noopener noreferrer">www.dfakto.com</a>',h2_about2:"Over Niboo",about2_1:"Niboo is een Belgische Odoo-integrator, opgericht in 2014 en Odoo Gold Partner. Het bedrijf, gevestigd in Brussel en actief in Frankrijk en de Franse overzeese gebieden, telt 37 medewerkers en dekt de volledige levenscyclus van een Odoo-project: functionele analyse, implementatie, ontwikkeling, datamigratie, opleiding, hosting en support.",about2_2:"De methode van Niboo bestaat erin Odoo zo dicht mogelijk bij de standaard te implementeren en enkel te ontwikkelen wat specifieke bedrijfswaarde oplevert voor de klant. Deze discipline garandeert oplossingen die afgestemd blijven op de opeenvolgende versies van de uitgever en zorgt voor voorspelbare onderhoudskosten.",contact2:'<strong>Perscontact Niboo:</strong><br />Ismail Belayachi, Marketing Manager<br /><a href="mailto:[email protected]">[email protected]</a><br />+32 479 07 62 30<br /><a href="https://www.niboo.com" target="_blank" rel="noopener noreferrer">www.niboo.com</a>',pressTitle:"In de pers",pressDesc:"Lees het artikel over de operatie Niboo x dFakto, gepubliceerd in Trends-Tend
406ances.",pressButton:"Lees het artikel (PDF)",pressButtonOnline:"Lees het artikel online",shareLinkedin:"Delen op LinkedIn",shareCopy:"Link kopiëren",shareCopied:"Link gekopieerd",ctaTitle:"Een Odoo-project, een dataproject, of beide? Laten we praten.",ctaButton:"Praat met onze experts"},hI={title:"Plan een demo",subtitle:"Plan een persoonlijke demo met ons team en ontdek hoe dFakto uw datastrategie kan transformeren",cta:"Plan een gesprek"},fI={backToResources:"Terug naar resources",title:"dFakto behaalt ISO/IEC 27001-certificering en versterkt zijn engagement voor informatiebeveiliging",intro:"Met trots kondigen wij aan dat dFakto (Deployments Factory) nu ISO/IEC 27001-gecertificeerd is. Een belangrijke mijlpaal in ons voortdurende engagement om informatie te beschermen en het vertrouwen van onze klanten en partners te verdienen.",p1:"Deze prestatie weerspiegelt het werk dat we hebben verricht om beveiliging te verankeren in onze manier van werken. Eerst in onze mensen, processen en technologie. En doorlopend, om informatiebeveiligingsrisico's op een gestructureerde en transparante manier te beheren.",p2:"Deze mijlpaal werd bereikt in nauwe samenwerking met Probo, wiens platform en team ons door het ISO 27001-traject hebben begeleid en het proces van begin tot eind aanzienlijk vlotter hebben gemaakt.",h2_1:"Wat dit betekent voor onze klanten",p3:"De ISO/IEC 27001-certificering biedt onafhankelijke bevestiging dat dFakto een robuust Information Security Management System (ISMS) heeft geïmplementeerd en beheert, in lijn met internationale best practices.",p4:"Voor onze klanten betekent dit:",list1:["Meer vertrouwen in hoe wij gevoelige en vertrouwelijke informatie beschermen","Een risicogebaseerde aanpak om informatiebeveiligingsdreigingen te identificeren en te beheren","Eenvoudigere leveranciersbeoordelingen en inkoopreviews","Afstemming op zakelijke, regelgevende en contractuele beveiligingsverwachtingen","De zekerheid dat beveiliging is verankerd in onze dagelijkse activiteiten"],p5:"ISO/IEC 27001 is geen eenmalige inspanning. Het staat voor een voortdurend engagement om onze informatiebeveiligingspraktijken te onderhouden, te monitoren en te verbeteren.",h2_2:"Wat is ISO/IEC 27001 precies?",p6:"ISO/IEC 27001 is de toonaangevende internationale norm voor informatiebeveiligingsbeheer, gepubliceerd door de International Organization for Standardization (ISO) en de International Electrotechnical Commission (IEC).",p7:"De norm definieert eisen voor het opzetten, implementeren, onderhouden en continu verbeteren van een Information Security Management System (ISMS). Dit systeem helpt organisaties informatiebeveiligingsrisico's systematisch te beheren, rekening houdend met:",list2:["Mensen en organisatorische processen","Technologie en infrastructuur","Wettelijke, regelgevende en contractuele verplichtingen"],p8:"Als onderdeel van het certificeringsproces heeft een onafhankelijke, geaccrediteerde certificeringsinstelling ons ISMS geauditeerd en bevestigd dat het binnen de gedefinieerde scope voldoet aan de eisen van ISO/IEC 27001.",h2_3:"Een gestructureerde, doorlopende aanpak van beveiliging",p9:"Het behalen van de ISO/IEC 27001-certificering vereiste dat we onze aanpak van informatiebeveiliging formaliseerden en versterkten, onder meer door:",list3:["Informatiebeveiligingsrisico's te identificeren en te beoordelen","Passende beveiligingsmaatregelen te definiëren en te implementeren","Duidelijke governance, beleidslijnen en verantwoordelijkheden vast te leggen","Onze beveiligingspositie continu te monitoren, te evalueren en te verbeteren"],certificate:'U kunt ons ISO 27001-certificaat <a href="https://dfakto.eu.probopages.com/en" target="_blank" rel="noopener noreferrer">hier</a> raadplegen.'},gI={nav:gE,menu:vE,partnerProgram:bE,partnerEcosystem:xE,hero:yE,stats:wE,products:kE,industries:jE,cta:TE,trustedBy:NE,offices:DE,maturity:CE,footer:SE,bevaultPage:PE,propilotPage:EE,odooPage:IE,solutionPage:AE,agenticAi:RE,partnerApply:_E,system:OE,consulting:LE,resources:zE,blogHub:ME,contactPage:FE,webinar:qE,drink:BE,privacy:VE,legal:$E,glossary:HE,successStories:WE,caseCrelanAxa:UE,caseConsolidating:KE,caseSteering:GE,caseCrisisHospital:QE,caseRiskFactoring:YE,caseBrussHelp:ZE,caseFasterReporting:XE,caseUnifiedReporting:JE,blogMechanicsDataVault:eI,blogIntroducingDDM:tI,blogDDMFramework:nI,blogDDMPerformance:aI,blogDatafaktoryBusiness:rI,blogWhyDWHTakeForever:oI,blogScalefreePartnership:sI,blogPcmaAI:iI,blogCeo25Years:lI,blogOdooVsDW:cI,blogOdooPerf:dI,blogAIReadiness:uI,blogWebinarOdooAnalytics:pI,pressNibooOdoo:mI,bookDemo:hI,blogIso27001:fI};
vendor: 4,216 bytes, line 406
406De.use(y0).use(bC).init({resources:{en:{translation:h5},fr:{translation:fE},nl:{translation:gI}},supportedLngs:["en","fr","nl"],nonExplicitSupportedLngs:!0,fallbackLng:{nl:["en","fr"],default:["en"]},returnEmptyString:!1,interpolation:{escapeValue:!1},detection:{order:["localStorage","navigator"],caches:["localStorage"]}});const w0=e=>{if(typeof document>"u")return;const t=(e==null?void 0:e.split("-")[0])??"en";document.documentElement.lang=["en","fr","nl"].includes(t)?t:"en"};w0(De.language);De.on("languageChanged",w0);var $c="focusScope.autoFocusOnMount",Hc="focusScope.autoFocusOnUnmount",Hf={bubbles:!1,cancelable:!0},vI="FocusScope",k0=f.forwardRef((e,t)=>{const{loop:n=!1,trapped:a=!1,onMountAutoFocus:o,onUnmountAutoFocus:s,...i}=e,[l,c]=f.useState(null),d=Oe(o),u=Oe(s),p=f.useRef(null),h=je(t,g=>c(g)),m=f.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;f.useEffect(()=>{if(a){let g=function(x){if(m.paused||!l)return;const k=x.target;l.contains(k)?p.current=k:qn(p.current,{select:!0})},w=function(x){if(m.paused||!l)return;const k=x.relatedTarget;k!==null&&(l.contains(k)||qn(p.current,{select:!0}))},b=function(x){if(document.activeElement===document.body)for(const j of x)j.removedNodes.length>0&&qn(l)};document.addEventListener("focusin",g),document.addEventListener("focusout",w);const v=new MutationObserver(b);return l&&v.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",g),document.removeEventListener("focusout",w),v.disconnect()}}},[a,l,m.paused]),f.useEffect(()=>{if(l){Uf.add(m);const g=document.activeElement;if(!l.contains(g)){const b=new CustomEvent($c,Hf);l.addEventListener($c,d),l.dispatchEvent(b),b.defaultPrevented||(bI(jI(j0(l)),{select:!0}),document.activeElement===g&&qn(l))}return()=>{l.removeEventListener($c,d),setTimeout(()=>{const b=new CustomEvent(Hc,Hf);l.addEventListener(Hc,u),l.dispatchEvent(b),b.defaultPrevented||qn(g??document.body,{select:!0}),l.removeEventListener(Hc,u),Uf.remove(m)},0)}}},[l,d,u,m]);const y=f.useCallback(g=>{if(!n&&!a||m.paused)return;const w=g.key==="Tab"&&!g.altKey&&!g.ctrlKey&&!g.metaKey,b=document.activeElement;if(w&&b){const v=g.currentTarget,[x,k]=xI(v);x&&k?!g.shiftKey&&b===k?(g.preventDefault(),n&&qn(x,{select:!0})):g.shiftKey&&b===x&&(g.preventDefault(),n&&qn(k,{select:!0})):b===v&&g.preventDefault()}},[n,a,m.paused]);return r.jsx(ne.div,{tabIndex:-1,...i,ref:h,onKeyDown:y})});k0.displayName=vI;function bI(e,{select:t=!1}={}){const n=document.activeElement;for(const a of e)if(qn(a,{select:t}),document.activeElement!==n)return}function xI(e){const t=j0(e),n=Wf(t,e),a=Wf(t.reverse(),e);return[n,a]}function j0(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const o=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||o?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Wf(e,t){for(const n of e)if(!yI(n,{upTo:t}))return n}function yI(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function wI(e){return e instanceof HTMLInputElement&&"select"in e}function qn(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&wI(e)&&t&&e.select()}}var Uf=kI();function kI(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=Kf(e,t),e.unshift(t)},remove(t){var n;e=Kf(e,t),(n=e[0])==null||n.resume()}}}function Kf(e,t){const n=[...e],a=n.indexOf(t);return a!==-1&&n.splice(a,1),n}function jI(e){return e.filter(t=>t.tagName!=="A")}var Wc=0;function TI(){f.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??Gf()),document.body.insertAdjacentElement("beforeend",e[1]??Gf()),Wc++,()=>{Wc===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Wc--}},[])}function Gf(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.
vendor: 5,651 bytes, lines 406-421
406style.position="fixed",e.style.pointerEvents="none",e}var Jt=function(){return Jt=Object.assign||function(t){for(var n,a=1,o=arguments.length;a<o;a++){n=arguments[a];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Jt.apply(this,arguments)};function T0(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]]);return n}function NI(e,t,n){if(n||arguments.length===2)for(var a=0,o=t.length,s;a<o;a++)(s||!(a in t))&&(s||(s=Array.prototype.slice.call(t,0,a)),s[a]=t[a]);return e.concat(s||Array.prototype.slice.call(t))}var Ci="right-scroll-bar-position",Si="width-before-scroll-bar",DI="with-scroll-bars-hidden",CI="--removed-body-scroll-bar-size";function Uc(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function SI(e,t){var n=f.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(a){var o=n.value;o!==a&&(n.value=a,n.callback(a,o))}}}})[0];return n.callback=t,n.facade}var PI=typeof window<"u"?f.useLayoutEffect:f.useEffect,Qf=new WeakMap;function EI(e,t){var n=SI(null,function(a){return e.forEach(function(o){return Uc(o,a)})});return PI(function(){var a=Qf.get(n);if(a){var o=new Set(a),s=new Set(e),i=n.current;o.forEach(function(l){s.has(l)||Uc(l,null)}),s.forEach(function(l){o.has(l)||Uc(l,i)})}Qf.set(n,e)},[e]),n}function II(e){return e}function AI(e,t){t===void 0&&(t=II);var n=[],a=!1,o={read:function(){if(a)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(s){var i=t(s,a);return n.push(i),function(){n=n.filter(function(l){return l!==i})}},assignSyncMedium:function(s){for(a=!0;n.length;){var i=n;n=[],i.forEach(s)}n={push:function(l){return s(l)},filter:function(){return n}}},assignMedium:function(s){a=!0;var i=[];if(n.length){var l=n;n=[],l.forEach(s),i=n}var c=function(){var u=i;i=[],u.forEach(s)},d=function(){return Promise.resolve().then(c)};d(),n={push:function(u){i.push(u),d()},filter:function(u){return i=i.filter(u),n}}}};return o}function RI(e){e===void 0&&(e={});var t=AI(null);return t.options=Jt({async:!0,ssr:!1},e),t}var N0=function(e){var t=e.sideCar,n=T0(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var a=t.read();if(!a)throw new Error("Sidecar medium not found");return f.createElement(a,Jt({},n))};N0.isSideCarExport=!0;function _I(e,t){return e.useMedium(t),N0}var D0=RI(),Kc=function(){},Wl=f.forwardRef(function(e,t){var n=f.useRef(null),a=f.useState({onScrollCapture:Kc,onWheelCapture:Kc,onTouchMoveCapture:Kc}),o=a[0],s=a[1],i=e.forwardProps,l=e.children,c=e.className,d=e.removeScrollBar,u=e.enabled,p=e.shards,h=e.sideCar,m=e.noRelative,y=e.noIsolation,g=e.inert,w=e.allowPinchZoom,b=e.as,v=b===void 0?"div":b,x=e.gapMode,k=T0(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),j=h,T=EI([n,t]),N=Jt(Jt({},k),o);return f.createElement(f.Fragment,null,u&&f.createElement(j,{sideCar:D0,removeScrollBar:d,shards:p,noRelative:m,noIsolation:y,inert:g,setCallbacks:s,allowPinchZoom:!!w,lockRef:n,gapMode:x}),i?f.cloneElement(f.Children.only(l),Jt(Jt({},N),{ref:T})):f.createElement(v,Jt({},N,{className:c,ref:T}),l))});Wl.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};Wl.classNames={fullWidth:Si,zeroRight:Ci};var OI=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function LI(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=OI();return t&&e.setAttribute("nonce",t),e}function zI(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function MI(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var FI=function(){var e=0,t=null;return{add:function(n){e==0&&(t=LI())&&(zI(t,n),MI(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},qI=function(){var e=FI();return function(t,n){f.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},C0=function(){var e=qI(),t=function(n){var a=n.styles,o=n.dynamic;return e(a,o),null};return t},BI={left:0,top:0,right:0,gap:0},Gc=function(e){return parseInt(e||"",10)||0},VI=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],a=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[Gc(n),Gc(a),Gc(o)]},$I=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return BI;var t=VI(e),n=document.documentElement.clientWidth,a=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,a-n+t[2]-t[0])}},HI=C0(),Sr="data-scroll-locked",WI=function(e,t,n,a){var o=e.left,s=e.top,i=e.right,l=e.gap;return n===void 0&&(n="margin"),`
407  .`.concat(DI,` {
408   overflow: hidden `).concat(a,`;
409   padding-right: `).concat(l,"px ").concat(a,`;
410  }
411  body[`).concat(Sr,`] {
412    overflow: hidden `).concat(a,`;
413    overscroll-behavior: contain;
414    `).concat([t&&"position: relative ".concat(a,";"),n==="margin"&&`
415    padding-left: `.concat(o,`px;
416    padding-top: `).concat(s,`px;
417    padding-right: `).concat(i,`px;
418    margin-left:0;
419    margin-top:0;
420    margin-right: `).concat(l,"px ").concat(a,`;
421    `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(a,";
421")].filter(Boolean).join(""),`
422  }
423  
424  .`).concat(Ci,` {
425    right: `).concat(l,"px ").concat(a,`;
426  }
427  
428  .`).concat(Si,` {
429    margin-right: `).concat(l,"px ").concat(a,`;
430  }
431  
432  .`).concat(Ci," .").concat(Ci,` {
433    right: 0 `).concat(a,`;
434  }
435  
436  .`).concat(Si," .").concat(Si,` {
437    margin-right: 0 `).concat(a,`;
438  }
439  
440  body[`).concat(Sr,`] {
441    `).concat(CI,": ").concat(l,`px;
442  }
443`)},Yf=function(){var e=parseInt(document.body.getAttribute(Sr)||"0",10);return isFinite(e)?e:0},UI=function(){f.useEffect(function(){return document.body.setAttribute(Sr,(Yf()+1).toString()),function(){var e=Yf()-1;e<=0?document.body.removeAttribute(Sr):document.body.setAttribute(Sr,e.toString())}},[])},KI=function(e){var t=e.noRelative,n=e.noImportant,a=e.gapMode,o=a===void 0?"margin":a;UI();var s=f.useMemo(function(){return $I(o)},[o]);return f.createElement(HI,{styles:WI(s,!t,o,n?"":"!important")})},yu=!1;if(typeof window<"u")try{var ei=Object.defineProperty({},"passive",{get:function(){return yu=!0,!0}});window.addEventListener("test",ei,ei),window.removeEventListener("test",ei,ei)}catch{yu=!1}var ar=yu?{passive:!1}:!1,GI=function(e){return e.tagName==="TEXTAREA"},S0=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!GI(e)&&n[t]==="visible")},QI=function(e){return S0(e,"overflowY")},YI=function(e){return S0(e,"overflowX")},Zf=function(e,t){var n=t.ownerDocument,a=t;do{typeof ShadowRoot<"u"&&a instanceof ShadowRoot&&(a=a.host);var o=P0(e,a);if(o){var s=E0(e,a),i=s[1],l=s[2];if(i>l)return!0}a=a.parentNode}while(a&&a!==n.body);return!1},ZI=function(e){var t=e.scrollTop,n=e.scrollHeight,a=e.clientHeight;return[t,n,a]},XI=function(e){var t=e.scrollLeft,n=e.scrollWidth,a=e.clientWidth;return[t,n,a]},P0=function(e,t){return e==="v"?QI(t):YI(t)},E0=function(e,t){return e==="v"?ZI(t):XI(t)},JI=function(e,t){return e==="h"&&t==="rtl"?-1:1},eA=function(e,t,n,a,o){var s=JI(e,window.getComputedStyle(t).direction),i=s*a,l=n.target,c=t.contains(l),d=!1,u=i>0,p=0,h=0;do{if(!l)break;var m=E0(e,l),y=m[0],g=m[1],w=m[2],b=g-w-s*y;(y||b)&&P0(e,l)&&(p+=b,h+=y);var v=l.parentNode;l=v&&v.nodeType===Node.DOCUMENT_FRAGMENT_NODE?v.host:v}while(!c&&l!==document.body||c&&(t.contains(l)||t===l));return(u&&(Math.abs(p)<1||!o)||!u&&(Math.abs(h)<1||!o))&&(d=!0),d},ti=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Xf=function(e){return[e.deltaX,e.deltaY]},Jf=function(e){return e&&"current"in e?e.current:e},tA=function(e,t){return e[0]===t[0]&&e[1]===t[1]},nA=function(e){return`
444  .block-interactivity-`.concat(e,` {pointer-events: none;}
445  .allow-interactivity-`).concat(e,` {pointer-events: all;}
446`)},aA=0,rr=[];function rA(e){var t=f.useRef([]),n=f.useRef([0,0]),a=f.useRef(),o=f.useState(aA++)[0],s=f.useState(C0)[0],i=f.useRef(e);f.useEffect(function(){i.current=e},[e]),f.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var g=NI([e.lockRef.current],(e.shards||[]).map(Jf),!0).filter(Boolean);return g.forEach(function(w){return w.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),g.forEach(function(w){return w.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var l=f.useCallback(function(g,w){if("touches"in g&&g.touches.length===2||g.type==="wheel"&&g.ctrlKey)return!i.current.allowPinchZoom;var b=ti(g),v=n.current,x="deltaX"in g?g.deltaX:v[0]-b[0],k="deltaY"in g?g.deltaY:v[1]-b[1],j,T=g.target,N=Math.abs(x)>Math.abs(k)?"h":"v";if("touches"in g&&N==="h"&&T.type==="range")return!1;var D=Zf(N,T);if(!D)return!0;if(D?j=N:(j=N==="v"?"h":"v",D=Zf(N,T)),!D)return!1;if(!a.current&&"changedTouches"in g&&(x||k)&&(a.current=j),!j)return!0;var C=a.current||j;return eA(C,w,g,C==="h"?x:k,!0)},[]),c=f.useCallback(function(g){var w=g;if(!(!rr.length||rr[rr.length-1]!==s)){var b="deltaY"in w?Xf(w):ti(w),v=t.current.filter(function(j){return j.name===w.type&&(j.target===w.target||w.target===j.shadowParent)&&tA(j.delta,b)})[0];if(v&&v.should){w.cancelable&&w.preventDefault();return}
vendor: 4,332 bytes, line 446
446if(!v){var x=(i.current.shards||[]).map(Jf).filter(Boolean).filter(function(j){return j.contains(w.target)}),k=x.length>0?l(w,x[0]):!i.current.noIsolation;k&&w.cancelable&&w.preventDefault()}}},[]),d=f.useCallback(function(g,w,b,v){var x={name:g,delta:w,target:b,should:v,shadowParent:oA(b)};t.current.push(x),setTimeout(function(){t.current=t.current.filter(function(k){return k!==x})},1)},[]),u=f.useCallback(function(g){n.current=ti(g),a.current=void 0},[]),p=f.useCallback(function(g){d(g.type,Xf(g),g.target,l(g,e.lockRef.current))},[]),h=f.useCallback(function(g){d(g.type,ti(g),g.target,l(g,e.lockRef.current))},[]);f.useEffect(function(){return rr.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:h}),document.addEventListener("wheel",c,ar),document.addEventListener("touchmove",c,ar),document.addEventListener("touchstart",u,ar),function(){rr=rr.filter(function(g){return g!==s}),document.removeEventListener("wheel",c,ar),document.removeEventListener("touchmove",c,ar),document.removeEventListener("touchstart",u,ar)}},[]);var m=e.removeScrollBar,y=e.inert;return f.createElement(f.Fragment,null,y?f.createElement(s,{styles:nA(o)}):null,m?f.createElement(KI,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function oA(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const sA=_I(D0,rA);var I0=f.forwardRef(function(e,t){return f.createElement(Wl,Jt({},e,{ref:t,sideCar:sA}))});I0.classNames=Wl.classNames;var iA=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},or=new WeakMap,ni=new WeakMap,ai={},Qc=0,A0=function(e){return e&&(e.host||A0(e.parentNode))},lA=function(e,t){return t.map(function(n){if(e.contains(n))return n;var a=A0(n);return a&&e.contains(a)?a:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},cA=function(e,t,n,a){var o=lA(t,Array.isArray(e)?e:[e]);ai[n]||(ai[n]=new WeakMap);var s=ai[n],i=[],l=new Set,c=new Set(o),d=function(p){!p||l.has(p)||(l.add(p),d(p.parentNode))};o.forEach(d);var u=function(p){!p||c.has(p)||Array.prototype.forEach.call(p.children,function(h){if(l.has(h))u(h);else try{var m=h.getAttribute(a),y=m!==null&&m!=="false",g=(or.get(h)||0)+1,w=(s.get(h)||0)+1;or.set(h,g),s.set(h,w),i.push(h),g===1&&y&&ni.set(h,!0),w===1&&h.setAttribute(n,"true"),y||h.setAttribute(a,"true")}catch(b){console.error("aria-hidden: cannot operate on ",h,b)}})};return u(t),l.clear(),Qc++,function(){i.forEach(function(p){var h=or.get(p)-1,m=s.get(p)-1;or.set(p,h),s.set(p,m),h||(ni.has(p)||p.removeAttribute(a),ni.delete(p)),m||p.removeAttribute(n)}),Qc--,Qc||(or=new WeakMap,or=new WeakMap,ni=new WeakMap,ai={})}},dA=function(e,t,n){n===void 0&&(n="data-aria-hidden");var a=Array.from(Array.isArray(e)?e:[e]),o=iA(e);return o?(a.push.apply(a,Array.from(o.querySelectorAll("[aria-live]"))),cA(a,o,n,"aria-hidden")):function(){return null}},Ul="Dialog",[R0,x6]=ln(Ul),[uA,Wt]=R0(Ul),_0=e=>{const{__scopeDialog:t,children:n,open:a,defaultOpen:o,onOpenChange:s,modal:i=!0}=e,l=f.useRef(null),c=f.useRef(null),[d,u]=Cn({prop:a,defaultProp:o??!1,onChange:s,caller:Ul});return r.jsx(uA,{scope:t,triggerRef:l,contentRef:c,contentId:xn(),titleId:xn(),descriptionId:xn(),open:d,onOpenChange:u,onOpenToggle:f.useCallback(()=>u(p=>!p),[u]),modal:i,children:n})};_0.displayName=Ul;var O0="DialogTrigger",pA=f.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,o=Wt(O0,n),s=je(t,o.triggerRef);return r.jsx(ne.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":tm(o.open),...a,ref:s,onClick:G(e.onClick,o.onOpenToggle)})});pA.displayName=O0;var Jp="DialogPortal",[mA,L0]=R0(Jp,{forceMount:void 0}),z0=e=>{const{__scopeDialog:t,forceMount:n,children:a,container:o}=e,s=Wt(Jp,t);return r.jsx(mA,{scope:t,forceMount:n,children:f.Children.map(a,i=>r.jsx(Dt,{present:n||s.open,children:r.jsx(xp,{asChild:!0,container:o,children:i})}))})};z0.displayName=Jp;var ml="DialogOverlay",M0=f.forwardRef((e,t)=>{const n=L0(ml,e.__scopeDialog),{forceMount:a=n.forceMount,...o}=e,s=Wt(ml,e.__scopeDialog);return s.modal?r.jsx(Dt,{present:a||s.open,children:r.jsx(fA,{...o,ref:t})}):null});M0.displayName=ml;var hA=ts("DialogOverlay.RemoveScroll"),fA=f.forwardRef((e,t)=>
vendor: 4,624 bytes, lines 446-450
446{const{__scopeDialog:n,...a}=e,o=Wt(ml,n);return r.jsx(I0,{as:hA,allowPinchZoom:!0,shards:[o.contentRef],children:r.jsx(ne.div,{"data-state":tm(o.open),...a,ref:t,style:{pointerEvents:"auto",...a.style}})})}),Ba="DialogContent",F0=f.forwardRef((e,t)=>{const n=L0(Ba,e.__scopeDialog),{forceMount:a=n.forceMount,...o}=e,s=Wt(Ba,e.__scopeDialog);return r.jsx(Dt,{present:a||s.open,children:s.modal?r.jsx(gA,{...o,ref:t}):r.jsx(vA,{...o,ref:t})})});F0.displayName=Ba;var gA=f.forwardRef((e,t)=>{const n=Wt(Ba,e.__scopeDialog),a=f.useRef(null),o=je(t,n.contentRef,a);return f.useEffect(()=>{const s=a.current;if(s)return dA(s)},[]),r.jsx(q0,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:G(e.onCloseAutoFocus,s=>{var i;s.preventDefault(),(i=n.triggerRef.current)==null||i.focus()}),onPointerDownOutside:G(e.onPointerDownOutside,s=>{const i=s.detail.originalEvent,l=i.button===0&&i.ctrlKey===!0;(i.button===2||l)&&s.preventDefault()}),onFocusOutside:G(e.onFocusOutside,s=>s.preventDefault())})}),vA=f.forwardRef((e,t)=>{const n=Wt(Ba,e.__scopeDialog),a=f.useRef(!1),o=f.useRef(!1);return r.jsx(q0,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{var i,l;(i=e.onCloseAutoFocus)==null||i.call(e,s),s.defaultPrevented||(a.current||(l=n.triggerRef.current)==null||l.focus(),s.preventDefault()),a.current=!1,o.current=!1},onInteractOutside:s=>{var c,d;(c=e.onInteractOutside)==null||c.call(e,s),s.defaultPrevented||(a.current=!0,s.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const i=s.target;((d=n.triggerRef.current)==null?void 0:d.contains(i))&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&o.current&&s.preventDefault()}})}),q0=f.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:a,onOpenAutoFocus:o,onCloseAutoFocus:s,...i}=e,l=Wt(Ba,n),c=f.useRef(null),d=je(t,c);return TI(),r.jsxs(r.Fragment,{children:[r.jsx(k0,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:o,onUnmountAutoFocus:s,children:r.jsx(ys,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":tm(l.open),...i,ref:d,onDismiss:()=>l.onOpenChange(!1)})}),r.jsxs(r.Fragment,{children:[r.jsx(bA,{titleId:l.titleId}),r.jsx(yA,{contentRef:c,descriptionId:l.descriptionId})]})]})}),em="DialogTitle",B0=f.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,o=Wt(em,n);return r.jsx(ne.h2,{id:o.titleId,...a,ref:t})});B0.displayName=em;var V0="DialogDescription",$0=f.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,o=Wt(V0,n);return r.jsx(ne.p,{id:o.descriptionId,...a,ref:t})});$0.displayName=V0;var H0="DialogClose",W0=f.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,o=Wt(H0,n);return r.jsx(ne.button,{type:"button",...a,ref:t,onClick:G(e.onClick,()=>o.onOpenChange(!1))})});W0.displayName=H0;function tm(e){return e?"open":"closed"}var U0="DialogTitleWarning",[y6,K0]=mk(U0,{contentName:Ba,titleName:em,docsSlug:"dialog"}),bA=({titleId:e})=>{const t=K0(U0),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
447
448If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
449
450For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return f.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},xA="DialogDescriptionWarning",yA=({contentRef:e,descriptionId:t})=>{const a=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${K0(xA).contentName}}.`;return f.useEffect(()=>{var s;const o=(s=e.current)==null?void 0:s.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(a))},[a,e,t]),null},wA=_0,kA=z0,G0=M0,Q0=F0,Y0=B0,Z0=$0,jA=W0;const X0=wA,TA=kA,J0=f.forwardRef(({className:e,...t},n)=>r.jsx(G0,{ref:n,className:pe("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));J0.displayName=G0.displayName;const nm=f.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(TA,{children:[r.jsx(J0,{}),r.jsxs(Q0,{ref:a,className:pe("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rou
450nded-lg",e),...n,children:[t,r.jsxs(jA,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-accent data-[state=open]:text-muted-foreground hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[r.jsx(Sp,{className:"h-4 w-4"}),r.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));nm.displayName=Q0.displayName;const e2=({className:e,...t})=>r.jsx("div",{className:pe("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});e2.displayName="DialogHeader";const am=f.forwardRef(({className:e,...t},n)=>r.jsx(Y0,{ref:n,className:pe("text-lg font-semibold leading-none tracking-tight",e),...t}));am.displayName=Y0.displayName;const NA=f.forwardRef(({className:e,...t},n)=>r.jsx(Z0,{ref:n,className:pe("text-sm text-muted-foreground",e),...t}));NA.displayName=Z0.displayName;const DA=()=>{const{t:e}=Q(),[t,n]=f.useState(!1),a=[{step:"01",title:e("partnerProgram.step1Title"),desc:e("partnerProgram.step1Desc")},{step:"02",title:e("partnerProgram.step2Title"),desc:e("partnerProgram.step2Desc")},{step:"03",title:e("partnerProgram.step3Title"),desc:e("partnerProgram.step3Desc")},{step:"04",title:e("partnerProgram.step4Title"),desc:e("partnerProgram.step4Desc")}],o=[{name:e("partnerProgram.levelRegistered"),color:"border-muted-foreground",benefits:[e("partnerProgram.regBenefit1"),e("partnerProgram.regBenefit2"),e("partnerProgram.regBenefit3"),e("partnerProgram.regBenefit4")]},{name:e("partnerProgram.levelCertified"),color:"border-accent",benefits:[e("partnerProgram.certBenefit1"),e("partnerProgram.certBenefit2"),e("partnerProgram.certBenefit3"),e("partnerProgram.certBenefit4"),e("partnerProgram.certBenefit5")]},{name:e("partnerProgram.levelStrategic"),color:"border-cta",benefits:[e("partnerProgram.stratBenefit1"),e("partnerProgram.stratBenefit2"),e("partnerProgram.stratBenefit3"),e("partnerProgram.stratBenefit4"),e("partnerProgram.stratBenefit5"),e("partnerProgram.stratBenefit6")]}],s=[{icon:vj,title:e("partnerProgram.benefit1Title"),desc:e("partnerProgram.benefit1Desc")},{icon:ex,title:e("partnerProgram.benefit2Title"),desc:e("partnerProgram.benefit2Desc")},{icon:Dp,title:e("partnerProgram.benefit3Title"),desc:e("partnerProgram.benefit3Desc")},{icon:rx,title:e("partnerProgram.benefit4Title"),desc:e("partnerProgram.benefit4Desc")}];return r.jsxs(Z,{children:[r.jsx(X0,{open:t,onOpenChange:n,children:r.jsxs(nm,{className:"sm:max-w-[600px]",children:[r.jsx(e2,{children:r.jsx(am,{children:e("partnerProgram.registerLeadTitle")})}),De.language==="fr"?r.jsx("iframe",{"aria-label":"Envie d'échanger sur un projet ?",frameBorder:"0",style:{height:"500px",width:"99%",border:"none"},src:"https://forms.zohopublic.eu/dfakto/form/Enviedchangersurunprojet/formperma/y5fO2B6NIvXGq28osMNtHvYKUBHplQs315Y5bgG3EMI",title:"Formulaire enregistrer un lead"}):r.jsx("iframe",{"aria-label":e("partnerProgram.registerLeadTitle"),frameBorder:"0",style:{height:"500px",width:"99%",border:"none"},src:"https://forms.zohopublic.eu/dfakto/form/Registeralead/formperma/xVrSQImP1g4_kho2yfP920igUuMhJFNyhkKKtBhfAoA",title:"Register a lead form"})]})}),r.jsxs("section",{className:"relative gradient-hero overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_rgba(255,107,53,0.2),_transparent_50%)]"}),r.jsx("div",{className:"container mx-auto px-4 lg:px-8 py-24 lg:py-32 relative",children:r.jsxs("div",{className:"max-w-4xl",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/10 backdrop-blur-sm border border-white/10 mb-8 animate-fade-up",children:[r.jsx(jp,{className:"w-4 h-4 text-cta"}),r.jsx("span",{className:"text-white/80 text-sm font-medium",children:e("partnerProgram.badge")})]}),r.jsxs("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight animate-fade-up delay-100",children:[e("partnerProgram.heroTitle1")," ",r.jsx("span",{className:"text-gradient",children:e("partnerProgram.heroTitle2")})]}),r.jsx("p",{className:"text-lg md:text-xl text-white/70 mb-10 max-w-2xl leading-relaxed animate-fade-up delay-200",children:e("partnerProgram.heroDesc")}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 animate-fade-up delay-300",children:[r.jsx(L,{to:"/partners/apply",children:r.jsxs(te,{variant:"hero",size:"xl",children:[e("partnerProgram.becomePartner"),r.jsx(Ge,{className:"w-5 h-5"})]})}),r.jsx(te,{variant:"heroOutline",size:"xl",onClick:()=>n(!0),children:e("partnerProgram.registerLead")})]})]})}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-background to-transparent"})]}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("partnerProgram.levelsTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("partnerProgram.levelsSubtitle")})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:o.map((i,l)=>r.jsxs("div",{className:`bg-card rounded-2xl p-8 border-2 ${i.color} animate-fade-up`,style:{animationDelay:`${l*100}ms`},children:[r.jsx("h3",{className:"text-2xl font-semibold text-foreground mb-6",children:i.name}),r.jsx("ul",{className:"space-y-3",children:i.benefits.map(c=>r.jsxs("li",{className:"flex items-start gap-3",children:[r.jsx(on,{className:"w-5 h-5 text-accent flex-shrink-0 mt-0.5"}),r.jsx("span",{className:"text-foreground",children:c})]},c))})]},i.name))})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("div",{className:"text-center mb-16",children:r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("partnerProgram.benefitsTitle")})}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-8",children:s.map((i,l)=>r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"w-14 h-14 roun
450ded-xl bg-accent/10 flex items-center justify-center mx-auto mb-4",children:r.jsx(i.icon,{className:"w-7 h-7 text-accent"})}),r.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:i.title}),r.jsx("p",{className:"text-muted-foreground text-sm",children:i.desc})]},l))})]})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("div",{className:"text-center mb-16",children:r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("partnerProgram.howTitle")})}),r.jsx("div",{className:"grid md:grid-cols-4 gap-8",children:a.map((i,l)=>r.jsxs("div",{className:"text-center",children:[r.jsx("div",{className:"text-5xl font-bold text-accent/20 mb-4",children:i.step}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:i.title}),r.jsx("p",{className:"text-muted-foreground",children:i.desc})]},l))})]})}),r.jsx("section",{className:"py-16 lg:py-24 gradient-hero",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-white mb-6",children:e("partnerProgram.ctaTitle")}),r.jsx("p",{className:"text-lg text-white/70 mb-8",children:e("partnerProgram.ctaDesc")}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[r.jsx(L,{to:"/partners/apply",children:r.jsxs(te,{variant:"hero",size:"xl",children:[e("partnerProgram.becomePartner"),r.jsx(Ge,{className:"w-5 h-5"})]})}),r.jsx(te,{variant:"heroOutline",size:"xl",onClick:()=>n(!0),children:e("partnerProgram.registerLead")})]})]})})})]})},CA="/assets/toucan-toco-DAuxfvDW.png",SA="/assets/power-bi-CyhZ0IvT.png",PA="/assets/tableau-DvSuea0F.png",EA="/assets/azure-synapse-BMIrTCmn.png",IA="/assets/amazon-redshift-D-XwwNKa.png",AA="/assets/ibm-db2-CAY739jd.png",RA="/assets/dust-VNLQA5T2.png",_A="/assets/aws-step-functions-CZUGKmRY.png",OA="/assets/ovhcloud-BBR6WkAZ.png",LA="/assets/aws-BOhrsSld.png",zA="/assets/azure-Dwmp-QzW.png",MA="/assets/microsoft-dynamics-C5lkXa6r.png",FA="/assets/sql-server-BEMlehsb.png",qA="/assets/partner-proximus-DsYAlfxn.png",BA="/assets/partner-deloitte-CdsjZRTe.png",VA="/assets/partner-capgemini-Bh7ccMkJ.png",$A="/assets/partner-scalefree-CpKVQ86V.svg",HA="/assets/partner-followus-CMYuI0dq.png",WA="/assets/partner-sbi-BzEbBrY7.svg",UA="/assets/partner-8advisory-CA2-4Jnk.svg",KA="/assets/partner-toucan-Cwby4Dj-.webp",GA="/assets/partner-atos-Cou6QzRg.png",Yc=[{name:"Proximus",logo:qA},{name:"Deloitte",logo:BA},{name:"Capgemini",logo:VA},{name:"Scalefree",logo:$A},{name:"FollowUS",logo:HA},{name:"SBI",logo:WA},{name:"8Advisory",logo:UA},{name:"Toucan Toco",logo:KA},{name:"Atos",logo:GA}],QA=()=>{const{t:e}=Q(),t={"Toucan Toco":"toucantoco","Power BI":"powerbi",Tableau:"tableau",Qlik:"qlik",Looker:"looker",Snowflake:"snowflake",Databricks:"databricks","Azure Synapse":"microsoftazure","Google BigQuery":"googlebigquery","Amazon Redshift":"amazonredshift","IBM DB2":"ibm",PostgreSQL:"postgresql","SQL Server":"microsoftsqlserver",MySQL:"mysql",Dust:"dust",n8n:"n8n","AWS Step Functions":"awslambda",Zapier:"zapier",OVHcloud:"ovhcloud",AWS:"amazonaws",Azure:"microsoftazure",GCP:"googlecloud",Docker:"docker",Kubernetes:"kubernetes",Odoo:"odoo",Zoho:"zoho",Shopify:"shopify",SAP:"sap","Microsoft Dynamics":"dynamics365",Jira:"jira"},n={"Toucan Toco":CA,"Power BI":SA,Tableau:PA,"Azure Synapse":EA,"Amazon Redshift":IA,"IBM DB2":AA,Dust:RA,"AWS Step Functions":_A,OVHcloud:OA,AWS:LA,Azure:zA,"Microsoft Dynamics":MA,"SQL Server":FA},a=s=>{if(n[s])return n[s];const i=t[s];return i?`https://cdn.simpleicons.org/${i}`:null},o=[{name:e("partnerEcosystem.catBi"),tools:["Toucan Toco","Power BI","Tableau","Qlik","Looker"]},{name:e("partnerEcosystem.catData"),tools:["Snowflake","Databricks","Azure Synapse","Google BigQuery","Amazon Redshift","IBM DB2","PostgreSQL","SQL Server","MySQL"]},{name:e("partnerEcosystem.catAutomation"),tools:["Dust","n8n","AWS Step Functions","Zapier"]},{name:e("partnerEcosystem.catCloud"),tools:["OVHcloud","AWS","Azure","GCP","Docker","Kubernetes"]},{name:e("partnerEcosystem.catApps"),tools:["Odoo","Zoho","Shopify","SAP","Microsoft Dynamics","Jira"]}];return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:"dFakto Partners | Technology & Integration Ecosystem"}),r.jsx("meta",{name:"description",content:"Discover our certified integrators and technology partners (Snowflake, Microsoft, Odoo, Tableau)."}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/partners/ecosystem"})]}),r.jsx("section",{className:"gradient-hero py-24 lg:py-32",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-6",children:e("partnerEcosystem.heroTitle")}),r.jsx("p",{className:"text-xl text-white/70",children:e("partnerEcosystem.heroSubtitle")})]})})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-12",children:[r.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:e("partnerEcosystem.techTitle")}),r.jsx("p",{className:"text-muted-foreground",children:e("partnerEcosystem.techSubtitle")})]}
450),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-5 gap-6",children:o.map(s=>r.jsxs("div",{className:"space-y-3",children:[r.jsx("h3",{className:"text-sm font-semibold text-muted-foreground uppercase tracking-wider mb-4",children:s.name}),r.jsx("div",{className:"space-y-2",children:s.tools.map(i=>{const l=a(i);return r.jsxs("div",{className:"bg-card rounded-lg px-4 py-3 border border-border hover:border-accent/30 transition-all flex items-center gap-3",children:[l&&r.jsx("img",{src:l,alt:`${i} logo`,className:"w-5 h-5 flex-shrink-0",onError:c=>{c.target.style.display="none"}}),r.jsx("span",{className:"font-medium text-foreground text-sm",children:i})]},i)})})]},s.name))})]})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-12",children:[r.jsx("h2",{className:"text-3xl font-bold text-foreground mb-4",children:e("partnerEcosystem.partnersTitle")}),r.jsx("p",{className:"text-muted-foreground",children:e("partnerEcosystem.partnersSubtitle")})]}),r.jsx("div",{className:"relative overflow-hidden py-8",children:r.jsx("div",{className:"flex gap-16 animate-marquee",children:[...Yc,...Yc,...Yc].map((s,i)=>r.jsx("div",{className:"flex-shrink-0 w-48 h-24 flex items-center justify-center grayscale hover:grayscale-0 transition-all duration-300",children:r.jsx("img",{src:s.logo,alt:`dFakto Partner Logo - ${s.name}`,className:"max-h-20 max-w-full object-contain"})},`${s.name}-${i}`))})})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-4xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-10",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-accent/10 border border-accent/20 mb-6",children:[r.jsx(js,{className:"w-4 h-4 text-accent"}),r.jsx("span",{className:"text-accent text-sm font-medium",children:e("partnerEcosystem.findBadge")})]}),r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("partnerEcosystem.findTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto leading-relaxed",children:e("partnerEcosystem.findDesc")})]}),r.jsx("div",{className:"bg-card rounded-2xl border border-border p-6 lg:p-8",style:{minHeight:"550px"},children:De.language==="fr"?r.jsx("iframe",{"aria-label":"Besoin d'un intégrateur ?",frameBorder:"0",style:{height:"500px",width:"99%",border:"none"},src:"https://forms.zohopublic.eu/dfakto/form/Besoindunintgrateur/formperma/PiMArf7UY1MtkTTix7EGYJb8iVfP3FVYfjh3Fr3_Dy4"}):r.jsx("iframe",{"aria-label":e("partnerEcosystem.findTitle"),frameBorder:"0",style:{height:"500px",width:"99%",border:"none"},src:"https://forms.zohopublic.eu/dfakto/form/Needanintegrator/formperma/cQCBKCzJ8JG3DQI_2xAVL-VGAaRM86qFx5JVpiQvQiw"})})]})})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsx("h2",{className:"text-2xl lg:text-3xl font-bold text-foreground mb-4",children:e("partnerEcosystem.ctaTitle")}),r.jsx("p",{className:"text-muted-foreground mb-8 max-w-xl mx-auto",children:e("partnerEcosystem.ctaDesc")}),r.jsx(L,{to:"/partners/program",children:r.jsxs(te,{variant:"cta",size:"lg",children:[e("partnerEcosystem.ctaButton"),r.jsx(Ge,{className:"w-4 h-4"})]})})]})})]})},YA=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full bg-white/10 backdrop-blur-sm border border-white/10 mb-6",children:[r.jsx(Dp,{className:"w-4 h-4 text-cta"}),r.jsx("span",{className:"text-white/80 text-sm font-medium",children:e("partnerApply.badge")})]}),r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-4",children:e("partnerApply.title")}),r.jsx("p",{className:"text-xl text-white/70 max-w-2xl mx-auto",children:e("partnerApply.subtitle")})]})}),r.jsx("section",{className:"py-8 lg:py-12",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"max-w-4xl mx-auto bg-card rounded-2xl border border-border overflow-hidden shadow-card",children:De.language==="fr"?r.jsx("iframe",{"aria-label":"Devenir partenaire",frameBorder:"0",style:{height:"800px",width:"99%",border:"none"},src:"https://forms.zohopublic.eu/dfakto/form/Devenirpartenaire/formperma/6e10QOnHBoKQz0xgOmytRfuJLcB1L4lEaCy03nkbsKE",title:"Formulaire devenir partenaire",className:"w-full"}):r.jsx("iframe",{"aria-label":"Become a partner",frameBorder:"0",style:{height:"800px",width:"99%",border:"none"},src:"https://forms.zohopublic.eu/dfakto/form/Becomeapartner2/formperma/3dYV6x7p4mvW2Z9msWVvAGaXxrbHn23qP7ncEY-dqFM",title:"Partner application form",className:"w-full"})})})})]})},ZA=Rl("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function rm({className:e,variant:t,...n}){return r.jsx("div",{className:pe(ZA({variant:t}),e),...n})}const XA=[{icon:Ij,key:"card1",href:"/category/blogpost/",comingSoon:!1,isInternal:!0},{icon:zj,key:"card2",href:"/category/success-case/",comingSoon:!1,isInternal:!0},{icon:Oh,key:"card3",href:"https://www.bevault.io/blog/",comingSoon:!1},{icon:Oh,key:"card4",href:"https://www.propilot.io/blog-home/",comingSoon:!1},{icon:el,key:"card5",href:"https://www.bevault.io/bevault-implementation-results/",comingSoon:!1},{icon:_h,key:"card6",href:"https://support.bevault.io/en/bevault-documentation/current-version",comingSoon:!1},{icon:_h,key:"card7",href:"https://support.propilot.io/en/home/Working-version/",comingSoon:!1},{icon:ex,key:"card8",href:"https://learn.bevault.io/",comingSoon:!1},{icon:kj,key:"card9",href:"http://support.dfakto.com",comingSoon:!1},{icon:xj,key:"card10",href:"#",comingSoon:!0}
450,{icon:pj,key:"card11",href:"https://www.welcometothejungle.com/fr/companies/dfakto",comingSoon:!1},{icon:Tj,key:"card12",href:"/glossary",comingSoon:!1,isInternal:!0},{icon:el,key:"card13",href:"/ressources/livres-blancs",comingSoon:!1,isInternal:!0,ctaKey:"resources.discover"}],JA=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:"dFakto Resources | Data Vault Blog, Case Studies & Docs"}),r.jsx("meta",{name:"description",content:"Explore our latest insights on Data Vault, Strategy Execution, and read how clients like BNP Paribas and AXA succeeded with us."}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/ressources-dfakto"})]}),r.jsx("section",{className:"gradient-hero py-24 lg:py-32",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-6",children:e("resources.heroTitle")}),r.jsx("p",{className:"text-xl text-white/70",children:e("resources.heroSubtitle")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:XA.map(t=>{const n=e(`resources.${t.key}Title`),a=e(`resources.${t.key}Desc`),o=t.icon;return t.comingSoon?r.jsxs("div",{className:"group bg-card rounded-xl p-8 border border-border opacity-75 cursor-not-allowed",children:[r.jsx("div",{className:"w-14 h-14 rounded-xl bg-muted flex items-center justify-center mb-6",children:r.jsx(o,{className:"w-7 h-7 text-muted-foreground"})}),r.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[r.jsx("h3",{className:"text-xl font-semibold text-foreground",children:n}),r.jsxs(rm,{variant:"secondary",className:"flex items-center gap-1",children:[r.jsx(Dj,{className:"w-3 h-3"}),e("resources.comingSoon")]})]}),r.jsx("p",{className:"text-muted-foreground mb-4",children:a})]},t.key):t.isInternal?r.jsxs(L,{to:t.href,className:"group bg-card rounded-xl p-8 border border-border hover:border-accent/30 hover:shadow-card transition-all duration-300",children:[r.jsx("div",{className:"w-14 h-14 rounded-xl bg-accent/10 group-hover:bg-accent/20 flex items-center justify-center mb-6 transition-colors",children:r.jsx(o,{className:"w-7 h-7 text-accent"})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2 group-hover:text-accent transition-colors",children:n}),r.jsx("p",{className:"text-muted-foreground mb-4",children:a}),r.jsxs("div",{className:"flex items-center gap-2 text-accent font-medium group-hover:gap-3 transition-all",children:[e(t.ctaKey??"resources.view")," ",r.jsx(Ge,{className:"w-4 h-4"})]})]},t.key):r.jsxs("a",{href:t.href,target:"_blank",rel:"noopener noreferrer",className:"group bg-card rounded-xl p-8 border border-border hover:border-accent/30 hover:shadow-card transition-all duration-300",children:[r.jsx("div",{className:"w-14 h-14 rounded-xl bg-accent/10 group-hover:bg-accent/20 flex items-center justify-center mb-6 transition-colors",children:r.jsx(o,{className:"w-7 h-7 text-accent"})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2 group-hover:text-accent transition-colors",children:n}),r.jsx("p",{className:"text-muted-foreground mb-4",children:a}),r.jsxs("div",{className:"flex items-center gap-2 text-accent font-medium group-hover:gap-3 transition-all",children:[e("resources.open")," ",r.jsx(Xb,{className:"w-4 h-4"})]})]},t.key)})})})})]})};var Kl="Collapsible",[eR,t2]=ln(Kl),[tR,om]=eR(Kl),n2=f.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:a,defaultOpen:o,disabled:s,onOpenChange:i,...l}=e,[c,d]=Cn({prop:a,defaultProp:o??!1,onChange:i,caller:Kl});return r.jsx(tR,{scope:n,disabled:s,contentId:xn(),open:c,onOpenToggle:f.useCallback(()=>d(u=>!u),[d]),children:r.jsx(ne.div,{"data-state":im(c),"data-disabled":s?"":void 0,...l,ref:t})})});n2.displayName=Kl;var a2="CollapsibleTrigger",r2=f.forwardRef((e,t)=>{const{__scopeCollapsible:n,...a}=e,o=om(a2,n);return r.jsx(ne.button,{type:"button","aria-controls":o.contentId,"aria-expanded":o.open||!1,"data-state":im(o.open),"data-disabled":o.disabled?"":void 0,disabled:o.disabled,...a,ref:t,onClick:G(e.onClick,o.onOpenToggle)})});r2.displayName=a2;var sm="CollapsibleContent",o2=f.forwardRef((e,t)=>
vendor: 4,350 bytes, line 450
450{const{forceMount:n,...a}=e,o=om(sm,e.__scopeCollapsible);return r.jsx(Dt,{present:n||o.open,children:({present:s})=>r.jsx(nR,{...a,ref:t,present:s})})});o2.displayName=sm;var nR=f.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:a,children:o,...s}=e,i=om(sm,n),[l,c]=f.useState(a),d=f.useRef(null),u=je(t,d),p=f.useRef(0),h=p.current,m=f.useRef(0),y=m.current,g=i.open||l,w=f.useRef(g),b=f.useRef(void 0);return f.useEffect(()=>{const v=requestAnimationFrame(()=>w.current=!1);return()=>cancelAnimationFrame(v)},[]),mt(()=>{const v=d.current;if(v){b.current=b.current||{transitionDuration:v.style.transitionDuration,animationName:v.style.animationName},v.style.transitionDuration="0s",v.style.animationName="none";const x=v.getBoundingClientRect();p.current=x.height,m.current=x.width,w.current||(v.style.transitionDuration=b.current.transitionDuration,v.style.animationName=b.current.animationName),c(a)}},[i.open,a]),r.jsx(ne.div,{"data-state":im(i.open),"data-disabled":i.disabled?"":void 0,id:i.contentId,hidden:!g,...s,ref:u,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":y?`${y}px`:void 0,...e.style},children:g&&o})});function im(e){return e?"open":"closed"}var aR=n2,rR=r2,oR=o2,Ut="Accordion",sR=["Home","End","ArrowDown","ArrowUp","ArrowLeft","ArrowRight"],[lm,iR,lR]=xs(Ut),[Gl,w6]=ln(Ut,[lR,t2]),cm=t2(),s2=R.forwardRef((e,t)=>{const{type:n,...a}=e,o=a,s=a;return r.jsx(lm.Provider,{scope:e.__scopeAccordion,children:n==="multiple"?r.jsx(pR,{...s,ref:t}):r.jsx(uR,{...o,ref:t})})});s2.displayName=Ut;var[i2,cR]=Gl(Ut),[l2,dR]=Gl(Ut,{collapsible:!1}),uR=R.forwardRef((e,t)=>{const{value:n,defaultValue:a,onValueChange:o=()=>{},collapsible:s=!1,...i}=e,[l,c]=Cn({prop:n,defaultProp:a??"",onChange:o,caller:Ut});return r.jsx(i2,{scope:e.__scopeAccordion,value:R.useMemo(()=>l?[l]:[],[l]),onItemOpen:c,onItemClose:R.useCallback(()=>s&&c(""),[s,c]),children:r.jsx(l2,{scope:e.__scopeAccordion,collapsible:s,children:r.jsx(c2,{...i,ref:t})})})}),pR=R.forwardRef((e,t)=>{const{value:n,defaultValue:a,onValueChange:o=()=>{},...s}=e,[i,l]=Cn({prop:n,defaultProp:a??[],onChange:o,caller:Ut}),c=R.useCallback(u=>l((p=[])=>[...p,u]),[l]),d=R.useCallback(u=>l((p=[])=>p.filter(h=>h!==u)),[l]);return r.jsx(i2,{scope:e.__scopeAccordion,value:i,onItemOpen:c,onItemClose:d,children:r.jsx(l2,{scope:e.__scopeAccordion,collapsible:!0,children:r.jsx(c2,{...s,ref:t})})})}),[mR,Ql]=Gl(Ut),c2=R.forwardRef((e,t)=>{const{__scopeAccordion:n,disabled:a,dir:o,orientation:s="vertical",...i}=e,l=R.useRef(null),c=je(l,t),d=iR(n),p=$l(o)==="ltr",h=G(e.onKeyDown,m=>{var D;if(!sR.includes(m.key))return;const y=m.target,g=d().filter(C=>{var E;return!((E=C.ref.current)!=null&&E.disabled)}),w=g.findIndex(C=>C.ref.current===y),b=g.length;if(w===-1)return;m.preventDefault();let v=w;const x=0,k=b-1,j=()=>{v=w+1,v>k&&(v=x)},T=()=>{v=w-1,v<x&&(v=k)};switch(m.key){case"Home":v=x;break;case"End":v=k;break;case"ArrowRight":s==="horizontal"&&(p?j():T());break;case"ArrowDown":s==="vertical"&&j();break;case"ArrowLeft":s==="horizontal"&&(p?T():j());break;case"ArrowUp":s==="vertical"&&T();break}const N=v%b;(D=g[N].ref.current)==null||D.focus()});return r.jsx(mR,{scope:n,disabled:a,direction:o,orientation:s,children:r.jsx(lm.Slot,{scope:n,children:r.jsx(ne.div,{...i,"data-orientation":s,ref:c,onKeyDown:a?void 0:h})})})}),hl="AccordionItem",[hR,dm]=Gl(hl),d2=R.forwardRef((e,t)=>{const{__scopeAccordion:n,value:a,...o}=e,s=Ql(hl,n),i=cR(hl,n),l=cm(n),c=xn(),d=a&&i.value.includes(a)||!1,u=s.disabled||e.disabled;return r.jsx(hR,{scope:n,open:d,disabled:u,triggerId:c,children:r.jsx(aR,{"data-orientation":s.orientation,"data-state":g2(d),...l,...o,ref:t,disabled:u,open:d,onOpenChange:p=>{p?i.onItemOpen(a):i.onItemClose(a)}})})});d2.displayName=hl;var u2="AccordionHeader",p2=R.forwardRef((e,t)=>{const{__scopeAccordion:n,...a}=e,o=Ql(Ut,n),s=dm(u2,n);return r.jsx(ne.h3,{"data-orientation":o.orientation,"data-state":g2(s.open),"data-disabled":s.disabled?"":void 0,...a,ref:t})});p2.displayName=u2;var wu="AccordionTrigger",m2=R.forwardRef((e,t)=>{const{__scopeAccordion:n,...a}=e,o=Ql(Ut,n),s=dm(wu,n),i=dR(wu,n),l=cm(n);return r.jsx(lm.ItemSlot,{scope:n,children:r.jsx(rR,{"aria-disabled":s.open&&!i.collapsible||void 0,"data-orientation":o.orientation,id:s.triggerId,...l,...a,ref:t})})});m2.displayName=wu;
450var h2="AccordionContent",f2=R.forwardRef((e,t)=>{const{__scopeAccordion:n,...a}=e,o=Ql(Ut,n),s=dm(h2,n),i=cm(n);return r.jsx(oR,{role:"region","aria-labelledby":s.triggerId,"data-orientation":o.orientation,...i,...a,ref:t,style:{"--radix-accordion-content-height":"var(--radix-collapsible-content-height)","--radix-accordion-content-width":"var(--radix-collapsible-content-width)",...e.style}})});f2.displayName=h2;function g2(e){return e?"open":"closed"}var fR=s2,gR=d2,vR=p2,v2=m2,b2=f2;const bR=fR,x2=f.forwardRef(({className:e,...t},n)=>r.jsx(gR,{ref:n,className:pe("border-b",e),...t}));x2.displayName="AccordionItem";const y2=f.forwardRef(({className:e,children:t,...n},a)=>r.jsx(vR,{className:"flex",children:r.jsxs(v2,{ref:a,className:pe("flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",e),...n,children:[t,r.jsx(Zb,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));y2.displayName=v2.displayName;const w2=f.forwardRef(({className:e,children:t,...n},a)=>r.jsx(b2,{ref:a,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...n,children:r.jsx("div",{className:pe("pb-4 pt-0",e),children:t})}));w2.displayName=b2.displayName;const eg=[{id:"strategy-governance",title_en:"Strategy & Data Governance",title_fr:"Stratégie & Gouvernance Data",title_nl:"Strategie & Data Governance",terms:[{term:"Context Gap",definition_en:"The Context Gap is the disconnect between raw operational data and the business context required to interpret it. Closing this gap is essential to transform data into actionable insights that align with strategic objectives.",definition_fr:"Le Context Gap désigne l'écart entre les données opérationnelles brutes et le contexte métier nécessaire à leur interprétation. Combler cet écart est essentiel pour transformer la donnée en décisions alignées avec les objectifs stratégiques.",definition_nl:"De Context Gap is de kloof tussen ruwe operationele data en de bedrijfscontext die nodig is om ze te interpreteren. Het dichten van deze kloof is essentieel om data om te zetten in bruikbare inzichten die aansluiten bij de strategische doelstellingen."},{term:"Single Source of Truth (SSOT)",definition_en:"A Single Source of Truth is a unified, authoritative data repository that every team in the organization references for decision-making. It eliminates conflicting reports and ensures consistency across business units.",definition_fr:"La Single Source of Truth (SSOT) est un référentiel de données unifié et faisant autorité, sur lequel toutes les équipes s'appuient pour décider. Elle élimine les rapports contradictoires et garantit la cohérence à l'échelle de l'organisation.",definition_nl:"Een Single Source of Truth is een uniform, gezaghebbend gegevensrepository waarop elk team in de organisatie zich baseert voor besluitvorming. Het elimineert tegenstrijdige rapporten en zorgt voor consistentie over alle bedrijfseenheden heen."},{term:"Data Driven Management",definition_en:"Data Driven Management is a leadership approach where strategic and operational decisions are grounded in verified data rather than intuition. It combines KPIs, OKRs and analytics to steer performance, execution and quality in a single framework.",definition_fr:"Le Data Driven Management est une approche de pilotage où les décisions stratégiques et opérationnelles s'appuient sur des données vérifiées plutôt que sur l'intuition. Il combine KPIs, OKRs et analytics dans un cadre unique pour piloter performance, exécution et qualité.",definition_nl:"Data Driven Management is een managementbenadering waarbij strategische en operationele beslissingen gebaseerd zijn op geverifieerde data in plaats van intuïtie. Het combineert KPI's, OKR's en analytics in één kader om prestaties, uitvoering en kwaliteit te sturen."},{term:"Digital Transformation",definition_en:"Digital Transformation is the deep restructuring of business models, processes and culture enabled by digital and data technologies. Its success depends on a solid data foundation that supports automation, analytics and AI at scale.",definition_fr:"La transformation digitale est la refonte profonde des modèles d'affaires, processus et culture rendue possible par les technologies numériques et data. Son succès repose sur des fondations data solides, capables de soutenir automatisation, analytics et IA à l'échelle.",definition_nl:"Digital Transformation is de diepgaande herstructurering van businessmodellen, processen en cultuur, mogelijk gemaakt door digitale en data-technologieën. Het succes ervan hangt af van een solide datafundament dat automatisering, analytics en AI op schaal ondersteunt."},{term:"Data Governance",definition_en:"Data Governance is the framework of policies, roles and processes that define how data is managed, secured and used across the enterprise. It guarantees quality, compliance and accountability throughout the data lifecycle.",definition_fr:"La gouvernance des données est l'ensemble des politiques, rôles et processus définissant la manière dont les données sont gérées, sécurisées et exploitées dans l'entreprise. Elle garantit qualité, conformité et responsabilité tout au long du cycle de vie de la donnée.",definition_nl:"Data Governance is het geheel van beleid, rollen en processen dat bepaalt hoe data binnen de organisatie worden beheerd, beveiligd en gebruikt. Het waarborgt kwaliteit, compliance en verantwoordelijkheid doorheen de volledige levenscyclus van de data."},{term:"Démocratisation de la Data",definition_en:"Data democratization is the practice of giving business users self-service access to trusted data, without depending on IT for every request. It accelerates decision-making while preserving governance and security.",definition_fr:"La démocratisation de la data consiste à offrir aux utilisateurs métier un accès self-service à des données fiables, sans dépendre de l'IT pour chaque requête. Elle accélère la prise de décision tout en préservant gouvernance et sécurité.",definition_nl:"Data-democratisering is de praktijk waarbij zakelijke gebruikers self-service toegang krijgen tot betrouwbare data, zonder voor elke aanvraag afhankelijk te zijn van IT. Het versnelt de besluitvorming met behoud van governance en beveiliging."},{term:"Data Literacy",definition_en:"Data Literacy is the ability of employees to read, understand, question and communicate with data. A data-literate organization turns insights into action faster and reduces the risk of misinterpretation.",definition_fr:"La data literacy est la capacité des collaborateurs à lire, comprendre, questionner et communiquer avec les données. Une organisation data literate transforme plus vite les insights en actions et réduit les risques de mauvaise interprétation.",definition_nl:"Data Literacy is het vermogen van medewerkers om data te lezen, te begrijpen, te bevragen en erover te communiceren. Een data-literate organisatie zet inzichten sneller om in actie en vermindert het risico op verkeerde interpretatie."},{term:"Data Mesh / Data Fabric",definition_en:"Data Mesh and Data Fabric are modern architectural paradigms that distribute data ownership to business domains while ensuring interoperability through shared standards and platforms. They combine decentralization with enterprise-wide governance.",definition_fr:"Data Mesh et Data Fabric sont des paradigmes d'architecture modernes qui distribuent la propriété des données aux domaines métier tout en assurant l'interopérabilité via des standards et plateformes partagés. Ils conjuguent décentralisation et gouvernance d'entreprise.",definition_nl:"Data Mesh en Data Fabric zijn moderne architectuurparadigma's die het eigenaarschap van data verdelen over de bedrijfsdomeinen, met behoud van interoperabiliteit via gedeelde standaarden en platformen. Ze combineren decentralisatie met governance op ondernemingsniveau."},{term:"Data Product",definition_en:"A Data Product is a curated, reusable dataset or analytical asset designed, documented and maintained like a software product. It has clear owners, SLAs and consumers, making data more reliable and scalable across the business.",definition_fr:"Un Data Product est un jeu de données ou un actif analytique curé, réutilisable, conçu, documenté et maintenu comme un produit logiciel. Il dispose de propriétaires, SLAs et consommateurs clairement identifiés, rendant la donnée plus fiable et scalable.",definition_nl:"Een Data Product is een verzorgde, herbruikbare dataset of analytisch asset die ontworpen, gedocumenteerd en onderhouden wordt zoals een softwareproduct. Het heeft duidelijke eigenaars, SLA's en gebruikers, waardoor data betrouwbaarder en schaalbaarder wordt binnen de organisatie."},{term:"Master Data Management (MDM)",definition_en:"Master Data Management is the discipline of creating and maintaining a unique, consistent view of critical business entities such as customers, products or suppliers. MDM is the backbone of reliable analytics and seamless cross-system processes.",definition_fr:"Le Master Data Management (MDM) est la discipline qui consiste à créer et maintenir une vision unique et cohérente des entités critiques de l'entreprise — clients, produits, fournisseurs. Le MDM est le socle d'analyses fiables et de processus cross-systèmes fluides.",definition_nl:"Master Data Management is de discipline die zich richt op het creëren en onderhouden van een uniek, consistent beeld van kritieke bedrijfsentiteiten zoals klanten, producten of leveranciers. MDM vormt de ruggengraat van betrouwbare analytics en vlotte cross-systeemprocessen."},{term:"RGPD & Data Privacy",definition_en:"GDPR (RGPD) and data privacy regulations govern how personal data is collected, stored and processed within the EU. Compliance requires strong data governance, traceability and the ability to honor data subject rights at any time.",definition_fr:"Le RGPD et plus largement les réglementations sur la protection des données encadrent la collecte, le stockage et le traitement des données personnelles dans l'UE. La conformité exige une gouvernance solide, une traçabilité fine et la capacité d'honorer à tout moment les droits des personnes.",definition_nl:"GDPR (AVG) en regelgeving rond gegevensbescherming bepalen hoe persoonsgegevens binnen de EU worden verzameld, opgeslagen en verwerkt. Compliance vereist sterke data governance, traceerbaarheid en het vermogen om te allen tijde de rechten van betrokkenen te respecteren."}]}
450,{id:"architecture-engineering",title_en:"Architecture & Engineering",title_fr:"Architecture & Ingénierie",title_nl:"Architectuur & Engineering",terms:[{term:"Data Vault 2.0",definition_en:"Data Vault 2.0 is a modern data modeling methodology built for agility, auditability and scalability. It separates business keys, relationships and context, allowing data warehouses to evolve continuously without costly rework.",definition_fr:"Data Vault 2.0 est une méthodologie de modélisation moderne pensée pour l'agilité, l'auditabilité et la scalabilité. Elle sépare clés métier, relations et contexte, permettant aux data warehouses d'évoluer en continu sans refonte coûteuse.",definition_nl:"Data Vault 2.0 is een moderne datamodelleringsmethode ontworpen voor wendbaarheid, auditeerbaarheid en schaalbaarheid. Het scheidt bedrijfssleutels, relaties en context, waardoor data warehouses continu kunnen evolueren zonder kostbare herwerking."},{term:"Data Warehouse Automation (DWA)",definition_en:"Data Warehouse Automation industrializes the design, build and operation of a data warehouse through code generation and metadata-driven pipelines. It dramatically cuts delivery times while improving consistency and documentation.",definition_fr:"La Data Warehouse Automation (DWA) industrialise la conception, la construction et l'exploitation d'un entrepôt de données via la génération de code et des pipelines pilotés par métadonnées. Elle réduit drastiquement les délais tout en améliorant cohérence et documentation.",definition_nl:"Data Warehouse Automation industrialiseert het ontwerp, de bouw en de exploitatie van een data warehouse via codegeneratie en metadata-gestuurde pipelines. Het verkort de doorlooptijden drastisch en verbetert tegelijk de consistentie en documentatie."},{term:"Data Warehouse",definition_en:"A Data Warehouse is a centralized, structured repository optimized for analytics and reporting across the enterprise. It consolidates data from multiple sources into a historized model that supports trusted decision-making.",definition_fr:"Un Data Warehouse est un référentiel centralisé et structuré, optimisé pour l'analyse et le reporting à l'échelle de l'entreprise. Il consolide les données issues de multiples sources dans un modèle historisé, support de décisions fiables.",definition_nl:"Een Data Warehouse is een gecentraliseerd, gestructureerd repository dat geoptimaliseerd is voor analyse en rapportage binnen de hele organisatie. Het consolideert data uit meerdere bronnen in een gehistoriseerd model dat betrouwbare besluitvorming ondersteunt."},{term:"Data Lake & Data Lakehouse",definition_en:"A Data Lake stores large volumes of raw, multi-format data for exploration and advanced analytics. The Lakehouse adds warehouse-grade transactional and governance capabilities on top, unifying BI and AI workloads on a single platform.",definition_fr:"Un Data Lake stocke de grands volumes de données brutes et multi-formats pour l'exploration et l'analytique avancée. Le Lakehouse ajoute par-dessus les capacités transactionnelles et de gouvernance d'un data warehouse, unifiant BI et IA sur une seule plateforme.",definition_nl:"Een Data Lake slaat grote volumes ruwe, multi-format data op voor exploratie en geavanceerde analytics. De Lakehouse voegt daar warehouse-grade transactionele en governance-mogelijkheden aan toe, waardoor BI- en AI-workloads op één platform worden verenigd."},{term:"Modern Data Stack (MDS)",definition_en:"The Modern Data Stack is a cloud-native ecosystem of best-of-breed tools covering ingestion, storage, transformation, governance and analytics. It favors modularity, scalability and rapid time-to-value compared to monolithic legacy platforms.",definition_fr:"La Modern Data Stack (MDS) est un écosystème cloud-native d'outils best-of-breed couvrant ingestion, stockage, transformation, gouvernance et analytique. Elle privilégie modularité, scalabilité et rapidité de mise en valeur face aux plateformes monolithiques historiques.",definition_nl:"De Modern Data Stack is een cloud-native ecosysteem van best-of-breed tools voor ingestie, opslag, transformatie, governance en analytics. Het geeft de voorkeur aan modulariteit, schaalbaarheid en snelle time-to-value ten opzichte van monolithische legacyplatformen."},{term:"Data Engineering",definition_en:"Data Engineering is the discipline of designing, building and operating the pipelines and platforms that make data usable for analytics and AI. It bridges raw source systems and business consumption with reliable, scalable infrastru
450cture.",definition_fr:"L'ingénierie des données (Data Engineering) regroupe la conception, la construction et l'exploitation des pipelines et plateformes qui rendent la donnée exploitable pour l'analytique et l'IA. Elle relie systèmes sources et usages métier via une infrastructure fiable et scalable.",definition_nl:"Data Engineering is de discipline van het ontwerpen, bouwen en beheren van de pipelines en platformen die data bruikbaar maken voor analytics en AI. Het verbindt brongesystemen met bedrijfsgebruik via een betrouwbare, schaalbare infrastructuur."},{term:"Dette Technique Data",definition_en:"Data technical debt accumulates when shortcuts are taken in modeling, pipelines or governance. Over time it slows projects, increases incidents and erodes trust in data — automation and strong architecture are the most effective remedies.",definition_fr:"La dette technique data s'accumule lorsque des raccourcis sont pris dans la modélisation, les pipelines ou la gouvernance. Avec le temps, elle ralentit les projets, multiplie les incidents et érode la confiance dans la donnée — l'automatisation et une architecture solide en sont les meilleurs remèdes.",definition_nl:"Technische schuld op data ontstaat wanneer er bochten worden afgesneden in modellering, pipelines of governance. Na verloop van tijd vertraagt dit projecten, verhoogt het incidenten en tast het het vertrouwen in data aan — automatisering en een sterke architectuur zijn de meest effectieve remedies."},{term:"Change Data Capture (CDC)",definition_en:"Change Data Capture is a technique that identifies and propagates only the data changes from source systems to downstream platforms. It enables near real-time synchronization while minimizing load on operational databases.",definition_fr:"Le Change Data Capture (CDC) est une technique qui identifie et propage uniquement les changements survenus dans les systèmes sources vers les plateformes aval. Il permet une synchronisation quasi temps réel tout en limitant la charge sur les bases opérationnelles.",definition_nl:"Change Data Capture is een techniek die enkel de datawijzigingen in bronsystemen identificeert en doorstuurt naar downstreamplatformen. Het maakt bijna real-time synchronisatie mogelijk en minimaliseert tegelijk de belasting van operationele databases."},{term:"ETL / ELT",definition_en:"ETL (Extract, Transform, Load) and ELT (Extract, Load, Transform) are two patterns for moving data from sources to analytical platforms. ELT, powered by cloud compute, has become the modern default for scalability and flexibility.",definition_fr:"ETL (Extract, Transform, Load) et ELT (Extract, Load, Transform) sont deux schémas de circulation des données entre sources et plateformes analytiques. L'ELT, porté par la puissance du cloud, s'impose comme le standard moderne pour sa scalabilité et sa flexibilité.",definition_nl:"ETL (Extract, Transform, Load) en ELT (Extract, Load, Transform) zijn twee patronen om data van bronnen naar analytische platformen te verplaatsen. ELT, aangedreven door cloud compute, is de moderne standaard geworden voor schaalbaarheid en flexibiliteit."},{term:"Star Schema",definition_en:"The Star Schema is a dimensional modeling pattern where a central fact table is surrounded by descriptive dimension tables. It is widely used in BI for its readability and performance on analytical queries.",definition_fr:"Le Star Schema est un modèle dimensionnel dans lequel une table de faits centrale est entourée de tables de dimensions descriptives. Très répandu en BI, il offre lisibilité et performance pour les requêtes analytiques.",definition_nl:"Het Star Schema is een dimensioneel modelleringspatroon waarbij een centrale feitentabel wordt omringd door beschrijvende dimensietabellen. Het wordt veel gebruikt in BI vanwege zijn leesbaarheid en prestaties bij analytische query's."},{term:"Semantic Layer (Couche Sémantique)",definition_en:"A Semantic Layer is a business-friendly abstraction over the data warehouse that exposes consistent metrics, dimensions and definitions to all consumers. It ensures every dashboard, report or AI agent speaks the same language.",definition_fr:"La couche sémantique est une abstraction métier au-dessus du data warehouse, qui expose des métriques, dimensions et définitions cohérentes à tous les consommateurs. Elle garantit que dashboards, rapports et agents IA parlent un langage commun.",definition_nl:"Een Semantic Layer is een bedrijfsvriendelijke abstractielaag boven het data warehouse die consistente metrics, dimensies en definities blootstelt aan alle gebruikers. Het zorgt ervoor dat elk dashboard, rapport of AI-agent dezelfde taal spreekt."},{term:"Scalabilité Cloud",definition_en:"Cloud scalability is the ability of a data platform to elastically adjust storage and compute resources to demand. It supports growth, peak workloads and AI use cases without overprovisioning.",definition_fr:"La scalabilité cloud désigne la capacité d'une plateforme data à ajuster élastiquement stockage et puissance de calcul à la demande. Elle accompagne la croissance, les pics de charge et les cas d'usage IA sans surdimensionnement.",definition_nl:"Cloud-schaalbaarheid is het vermogen van een dataplatform om opslag- en rekenresources elastisch af te stemmen op de vraag. Het ondersteunt groei, piekbelastingen en AI-toepassingen zonder overdimensionering."},{term:"Pipeline de données",definition_en:"A data pipeline is an automated chain of steps that ingests, transforms and delivers data from sources to consumers. Well-designed pipelines are observable, idempotent and resilient to failure.",definition_fr:"Un pipeline de données est une chaîne automatisée d'étapes qui ingère, transforme et livre les données depuis les sources jusqu'aux consommateurs. Bien conçu, il est observable, idempotent et résilient aux pannes.",definition_nl:"Een datapipeline is een geautomatiseerde keten van stappen die data van bronnen naar gebruikers ingeeft, transformeert en aflevert. Goed ontworpen pipelines zijn observeerbaar, idempotent en veerkrachtig bij storingen."},{term:"Real-Time Data",definition_en:"Real-Time Data refers to information made available for analysis within seconds of being generated. It enables use cases such as operational monitoring, fraud detection and dynamic personalization.",definition_fr:"La donnée temps réel désigne une information rendue disponible pour l'analyse en quelques secondes après sa génération. Elle ouvre la voie à des usages comme la supervision o
450pérationnelle, la détection de fraude ou la personnalisation dynamique.",definition_nl:"Real-Time Data verwijst naar informatie die binnen seconden na het ontstaan beschikbaar wordt gesteld voor analyse. Het maakt toepassingen mogelijk zoals operationele monitoring, fraudedetectie en dynamische personalisatie."}]},{id:"finance-compliance",title_en:"Finance, Compliance & Traceability",title_fr:"Finance, Conformité & Traçabilité",title_nl:"Finance, Compliance & Traceerbaarheid",terms:[{term:"BCBS 239",definition_en:"BCBS 239 is a Basel Committee standard defining principles for effective risk data aggregation and reporting in banks. It requires accurate, complete, timely and auditable data — making robust data architecture a regulatory imperative.",definition_fr:"BCBS 239 est un standard du Comité de Bâle définissant les principes d'agrégation et de reporting des données de risque pour les banques. Il exige des données exactes, complètes, à jour et auditables, faisant d'une architecture data solide un impératif réglementaire.",definition_nl:"BCBS 239 is een standaard van het Bazels Comité die principes vastlegt voor effectieve aggregatie en rapportage van risicodata bij banken. Het vereist nauwkeurige, volledige, tijdige en auditeerbare data, waardoor een robuuste dataarchitectuur een regelgevende noodzaak wordt."},{term:"Data Lineage",definition_en:"Data Lineage maps the full journey of data — from source systems through every transformation to final reports. It is essential for trust, debugging, impact analysis and regulatory compliance.",definition_fr:"Le data lineage cartographie le parcours complet de la donnée — des systèmes sources jusqu'aux rapports finaux, en passant par chaque transformation. Il est essentiel pour la confiance, le debug, l'analyse d'impact et la conformité réglementaire.",definition_nl:"Data Lineage brengt het volledige traject van data in kaart — van bronsystemen doorheen elke transformatie tot de uiteindelijke rapporten. Het is essentieel voor vertrouwen, foutopsporing, impactanalyse en regelgevingscompliance."},{term:"Auditabilité",definition_en:"Auditability is the capacity to reconstruct, at any point in time, how a figure or decision was produced from the underlying data. It is a foundational requirement in regulated industries such as banking, insurance and pharma.",definition_fr:"L'auditabilité est la capacité de reconstituer, à tout moment, la manière dont un chiffre ou une décision a été produit à partir des données sous-jacentes. C'est une exigence fondamentale dans les secteurs régulés tels que la banque, l'assurance ou la pharma.",definition_nl:"Auditeerbaarheid is het vermogen om op elk moment te reconstrueren hoe een cijfer of beslissing tot stand is gekomen op basis van de onderliggende data. Het is een fundamentele vereiste in gereguleerde sectoren zoals bankwezen, verzekeringen en farma."},{term:"Data Quality",definition_en:"Data Quality measures how fit data is for its intended use, along dimensions such as accuracy, completeness, consistency and timeliness. High-quality data is the prerequisite to reliable analytics, AI and decision-making.",definition_fr:"La data quality évalue dans quelle mesure la donnée est apte à son usage, selon des dimensions telles que l'exactitude, la complétude, la cohérence et la fraîcheur. Une donnée de qualité est le prérequis d'une analytique, d'une IA et de décisions fiables.",definition_nl:"Data Quality meet in welke mate data geschikt is voor het beoogde gebruik, aan de hand van dimensies zoals nauwkeurigheid, volledigheid, consistentie en tijdigheid. Hoogwaardige data is de voorwaarde voor betrouwbare analytics, AI en besluitvorming."},{term:"Historisation des données",definition_en:"Data historization is the practice of preserving every version of data over time, rather than overwriting it. It enables 'as-of' reporting, trend anal
450ysis and full traceability of business evolution.",definition_fr:"L'historisation des données consiste à conserver chaque version d'une donnée dans le temps, plutôt que de l'écraser. Elle permet le reporting « à date », l'analyse de tendances et une traçabilité complète de l'évolution du business.",definition_nl:"Data-historisering is de praktijk waarbij elke versie van data doorheen de tijd wordt bewaard in plaats van overschreven. Het maakt 'as-of'-rapportage, trendanalyse en volledige traceerbaarheid van de bedrijfsevolutie mogelijk."},{term:"ESG Reporting",definition_en:"ESG Reporting consolidates environmental, social and governance indicators to meet regulatory and stakeholder expectations. It relies on auditable data pipelines that combine financial and non-financial sources.",definition_fr:"Le reporting ESG consolide les indicateurs environnementaux, sociaux et de gouvernance pour répondre aux exigences réglementaires et des parties prenantes. Il repose sur des pipelines de données auditables combinant sources financières et extra-financières.",definition_nl:"ESG Reporting consolideert milieu-, sociale en governance-indicatoren om te voldoen aan regelgevende en stakeholderverwachtingen. Het steunt op auditeerbare datapipelines die financiële en niet-financiële bronnen combineren."},{term:"Data Catalog",definition_en:"A Data Catalog is an organized inventory of an enterprise's data assets, enriched with descriptions, owners, quality indicators and usage. It is the discovery layer that makes data findable, understandable and trustworthy.",definition_fr:"Un Data Catalog est un inventaire organisé des actifs data de l'entreprise, enrichi de descriptions, de propriétaires, d'indicateurs de qualité et d'usage. C'est la couche de découverte qui rend la donnée trouvable, compréhensible et fiable.",definition_nl:"Een Data Catalog is een georganiseerde inventaris van de dataassets van een organisatie, verrijkt met beschrijvingen, eigenaars, kwaliteitsindicatoren en gebruik. Het is de ontdekkingslaag die data vindbaar, begrijpelijk en betrouwbaar maakt."},{term:"Réconciliation de données",definition_en:"Data reconciliation is the process of comparing and aligning datasets from different systems to ensure they tell the same story. It is critical in finance, regulatory reporting and M&A integrations.",definition_fr:"La réconciliation de données consiste à comparer et aligner des jeux de données issus de systèmes différents pour s'assurer qu'ils racontent la même histoire. Elle est critique en finance, en reporting réglementaire et lors d'intégrations post-acquisition.",definition_nl:"Data-reconciliatie is het proces waarbij datasets uit verschillende systemen worden vergeleken en op elkaar afgestemd om te zorgen dat ze hetzelfde verhaal vertellen. Het is cruciaal in finance, regelgevende rapportage en fusies & overnames."},{term:"RBAC (Role-Based Access Control)",definition_en:"Role-Based Access Control grants permissions to data and applications based on a user's role rather than individual identity. It simplifies governance, strengthens security and supports compliance with regulations like GDPR.",definition_fr:"Le Role-Based Access Control (RBAC) attribue les droits d'accès aux données et applications en fonction du rôle de l'utilisateur plutôt que de son identité individuelle. Il simplifie la gouvernance, renforce la sécurité et soutient la conformité (RGPD, etc.).",definition_nl:"Role-Based Access Control kent rechten toe voor data en applicaties op basis van de rol van een gebruiker, niet van diens individuele identiteit. Het vereenvoudigt governance, versterkt de beveiliging en ondersteunt compliance met regelgeving zoals GDPR."}]},{id:"ecosystem-ai",title_en:"Ecosystem, BI & Artificial Intelligence",title_fr:"Écosystème, Odoo, BI & IA",title_nl:"Ecosysteem, BI & Kunstmatige Intelligentie",terms:[{term:"Silos de données",definition_en:"Data silos occur when information is trapped inside isolated systems, departments or tools. They prevent a unified view of the business and are one of the main obstacles to data-driven decision-making.",definition_fr:"Les silos de données apparaissent lorsque l'information est enfermée dans de
450s systèmes, départements ou outils isolés. Ils empêchent une vision unifiée de l'entreprise et constituent l'un des principaux obstacles au pilotage par la donnée.",definition_nl:"Datasilo's ontstaan wanneer informatie opgesloten zit in geïsoleerde systemen, afdelingen of tools. Ze verhinderen een eenduidig beeld van de organisatie en vormen een van de belangrijkste obstakels voor datagedreven besluitvorming."},{term:"ERP",definition_en:"An Enterprise Resource Planning (ERP) system integrates core business processes — finance, operations, HR, supply chain — into a single platform. ERPs like Odoo are key data sources that must be properly connected to the analytical stack.",definition_fr:"Un ERP (Enterprise Resource Planning) intègre les processus clés de l'entreprise — finance, opérations, RH, supply chain — au sein d'une plateforme unique. Les ERP comme Odoo sont des sources de données stratégiques à connecter correctement à la stack analytique.",definition_nl:"Een Enterprise Resource Planning (ERP)-systeem integreert de kernprocessen van een organisatie — finance, operaties, HR, supply chain — in één platform. ERP's zoals Odoo zijn belangrijke databronnen die correct moeten worden gekoppeld aan de analytische stack."},{term:"Reverse ETL",definition_en:"Reverse ETL pushes curated data from the warehouse back into operational tools such as CRMs, ERPs or marketing platforms. It activates analytical insights directly in the systems where business users work.",definition_fr:"Le Reverse ETL renvoie les données curées du data warehouse vers les outils opérationnels — CRM, ERP, plateformes marketing. Il permet d'activer les insights analytiques directement dans les systèmes utilisés au quotidien par les équipes métier.",definition_nl:"Reverse ETL stuurt verzorgde data uit het warehouse terug naar operationele tools zoals CRM's, ERP's of marketingplatformen. Het activeert analytische inzichten rechtstreeks in de systemen waarmee zakelijke gebruikers werken."},{term:"Business Intelligence (BI)",definition_en:"Business Intelligence covers the technologies and practices used to analyze data and present actionable information through dashboards and reports. Modern BI relies on a strong semantic layer and governed data to deliver consistent KPIs.",definition_fr:"La Business Intelligence (BI) regroupe les technologies et pratiques d'analyse de données et de restitution via dashboards et rapports. La BI moderne s'appuie sur une couche sémantique solide et une donnée gouvernée pour fournir des KPIs cohérents.",definition_nl:"Business Intelligence omvat de technologieën en praktijken die worden gebruikt om data te analyseren en bruikbare informatie te presenteren via dashboards en rapporten. Moderne BI steunt op een sterke semantische laag en gegoverneerde data om consistente KPI's te leveren."},{term:"LLM & IA Générative",definition_en:"Large Language Models (LLMs) and Generative AI produce text, code or analysis from natural language prompts. Their business value depends on access to high-quality, contextualized enterprise data through patterns like RAG.",definition_fr:"Les Large Language Models (LLM) et l'IA générative produisent texte, code ou analyse à partir d'instructions en langage naturel. Leur valeur métier dépend de l'accès à une donnée d'entreprise de qualité et contextualisée, via des approches comme le RAG.",definition_nl:"Large Language Models (LLM's) en Generative AI produceren tekst, code of analyses op basis van natuurlijke-taalprompts. Hun bedrijfswaarde hangt af van toegang tot hoogwaardige, gecontextualiseerde bedrijfsdata via patronen zoals RAG."},{term:"RAG (Retrieval-Augmented Generation)",definition_en:"Retrieval-Augmented Generation enhances LLMs by retrieving relevant enterprise data at query time and injecting it into the prompt. It grounds AI answers in trusted, up-to-date company knowledge while reducing hallucinations.",definition_fr:"Le RAG (Retrieval-Augmented Generation) enrichit les LLM en récupérant la donnée d'entreprise pertinente au moment de la requête et en l'injectant dans le prompt. Il ancre les réponses de l'IA dans une connaissance fiable et à jour, tout en limitant les hallucinations.",definition_nl:"Retrieval-Augmented Generation verbetert LLM's door relevante bedrijfsdata op te halen op het moment van de vraag en die in de prompt te injecteren. Het verankert AI-antwoorden in betrouwbare, actuele bedrijfskennis en vermindert hallucinaties."},{term:"MCP (Model Context Protocol)",definition_en:"The Model Context Protocol is an open standard that lets AI agents securely connect to enterprise data sources, tools and APIs. It standardizes how LLMs access context, making agentic workflows safer and more interoperable.",definition_fr:"Le Model Context Protocol (MCP) est un standard ouvert permettant aux agents IA de se connecter de manière sécurisée aux sources de données, outils et APIs de l'entreprise. Il normalise l'accès au contexte par les LLM et rend les workflows agentiques plus sûrs et interopérables.",definition_nl:"Het Model Context Protocol is een open standaard waarmee AI-agents veilig kunnen verbinden met bedrijfsdatabronnen, tools en API's. Het standaardiseert hoe LLM's toegang krijgen tot context, waardoor agentische workflows veiliger en interoperabeler worden."},{term:"API (Application Programming Interface)",definition_en:"An API is a contract that allows software systems to exchange data and functionality in a structured way. APIs are the backbone of integrations between ERPs, data platforms, BI tools and AI services.",definition_fr:"Une API (Application Programming Interface) est un contrat permettant à des systèmes logiciels d'échanger données et fonctionnalités de manière structurée. Les APIs sont la colonne vertébrale des intégrations entre ERP, plateformes data, outils BI et services d'IA.",definition_nl:"Een API is een contract dat softwaresystemen in staat stelt om op een gestructureerde manier data en functionaliteit uit te wisselen. API's vormen de ruggengraat van integraties tussen ERP's, dataplatformen, BI-tools en AI-diensten."}]}],xR=()=>{var s,i;const{t:e,i18n:t}=Q(),n=(s=t.language)!=null&&s.startsWith("fr")?"fr":(i=t.language)!=null&&i.startsWith("nl")?"nl":"en",a=(l,c,d)=>n==="fr"?l:n==="nl"?c:d,o={"@context":"https://schema.org","@type":"FAQPage",mainEntity:eg.flatMap(l=>l.terms.map(c=>({"@type":"Question",name:a(`Qu'est-ce que ${c.term} ?`,`Wat is ${c.term}?`,`What is ${c.term}
450?`),acceptedAnswer:{"@type":"Answer",text:a(c.definition_fr,c.definition_nl,c.definition_en)}})))};return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:a("Glossaire Data & Stratégie : Maîtrisez le Data Vault, la BI et l'IA","Dataglossarium: Data Vault, BI en AI onder de knie","Data & Strategy Glossary: Master Data Vault, BI, and AI")}),r.jsx("meta",{name:"description",content:a("Glossaire complet des termes clés en ingénierie des données, gouvernance, intégration ERP et intelligence artificielle.","Volledig glossarium met de belangrijkste begrippen uit data-engineering, datagovernance, ERP-integratie en artificiële intelligentie.","Comprehensive glossary of key terms in Data Engineering, Data Governance, ERP integration, and Artificial Intelligence.")}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/glossary"}),r.jsx("meta",{property:"og:title",content:a("Glossaire Data & Stratégie : Maîtrisez le Data Vault, la BI et l'IA","Dataglossarium: Data Vault, BI en AI onder de knie","Data & Strategy Glossary: Master Data Vault, BI, and AI")}),r.jsx("meta",{property:"og:description",content:a("Glossaire complet des termes clés en ingénierie des données, gouvernance, intégration ERP et intelligence artificielle.","Volledig glossarium met de belangrijkste begrippen uit data-engineering, datagovernance, ERP-integratie en artificiële intelligentie.","Comprehensive glossary of key terms in Data Engineering, Data Governance, ERP integration, and Artificial Intelligence.")}),r.jsx("meta",{property:"og:url",content:"https://www.dfakto.com/glossary"}),r.jsx("meta",{property:"og:type",content:"website"}),r.jsx("script",{type:"application/ld+json",children:JSON.stringify(o)})]}),r.jsx("section",{className:"gradient-hero py-24 lg:py-32",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-6",children:e("glossary.heroTitle")}),r.jsx("p",{className:"text-xl text-white/70 max-w-3xl mx-auto",children:e("glossary.heroSubtitle")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8 max-w-4xl",children:eg.map(l=>r.jsxs("div",{className:"mb-16",children:[r.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-foreground mb-6 border-b border-border pb-3",children:a(l.title_fr,l.title_nl,l.title_en)}),r.jsx(bR,{type:"single",collapsible:!0,className:"w-full",children:l.terms.map((c,d)=>r.jsxs(x2,{value:`${l.id}-${d}`,children:[r.jsx(y2,{className:"text-left",children:r.jsx("h3",{className:"text-base md:text-lg font-semibold m-0",children:c.term})}),r.jsx(w2,{className:"text-muted-foreground leading-relaxed text-base",children:a(c.definition_fr,c.definition_nl,c.definition_en)})]},`${l.id}-${d}`))})]},l.id))})})]})},k2=[{slug:"bevault-ia",path:"/ressources/livre-blanc-bevault-ia",tag_fr:"LIVRE BLANC",tag_en:"WHITE PAPER",tag_nl:"WHITEPAPER",title_fr:"Unlocking the power of data for SMEs and public organizations",title_en:"Unlocking the power of data for SMEs and public organizations",title_nl:"Unlocking the power of data for SMEs and public organizations",cardDesc_fr:"Découvrez comment construire une fondation data solide pour l'intelligence artificielle, la business intelligence et la gouvernance des données.",cardDesc_en:"Discover how to build a solid data foundation for artificial intelligence, business intelligence and data governance.",cardDesc_nl:"Ontdek hoe u een solide datafundament bouwt voor artificiële intelligentie, business intelligence en datagovernance.",cardCta_fr:"Découvrir le livre blanc →",cardCta_en:"Discover the white paper →",cardCta_nl:"Ontdek de whitepaper →",languageNote_fr:"Document disponible en anglais uniquement",languageNote_en:"Available in English only",languageNote_nl:"Alleen beschikbaar in het Engels",subtitle_fr:"Découvrez comment construire une fondation data solide pour vos projets d'intelligence artificielle, de business intelligence et de gouvernance des données.",subtitle_en:"Discover how to build a solid data foundation for artificial intelligence, business intelligence and data governance.",subtitle_nl:"Ontdek hoe u een solide datafundament bouwt voor uw projecten rond artificiële intelligentie, business intelligence en datagovernance.",note_fr:"Document disponible en anglais uniquement.",note_nl:"Dit document is momenteel alleen in het Engels beschikbaar.",sectionTitle_fr:"Dans ce livre blanc",sectionTitle_en:"What you will discover",sectionTitle_nl:"Wat u ontdekt",bullets_fr:["Pourquoi la qualité des données est essentielle pour les projets d'IA","Comment Data Vault 2.1 contribue à structurer et gouverner les données","Comment les PME et organisations publiques peuvent développer leurs capacités data"],bullets_en:["Why data quality is essential for successful AI projects","How Data Vault 2.1 helps structure and govern data","How SMEs and public organizations can develop their data capabilities"],bullets_nl:["Waarom datakwaliteit essentieel is voor succesvolle AI-projecten","Hoe Data Vault 2.1 helpt bij het structureren en governen van data","Hoe kmo's en publieke organisaties hun datacapaciteiten kunnen ontwikkelen"],formTitle_fr:"Téléchargez le livre blanc",formTitle_en:"Download the white paper",formTitle_nl:"Download de whitepaper",formUrl_fr:"https://forms.zohopublic.eu/dfakto/form/TlchargernotrelivreblancsurbeVaultlIA/formperma/U5LLlgQ1JK1rpi9ff06kKC-ZcxBuOgFsHwI
450MEKfhqpo",formUrl_en:"https://forms.zohopublic.eu/dfakto/form/DownloadourpaperaboutbeVaultAI/formperma/qFlkXGP7X-jVQKMW-oLRDWDvajxbgF0JP24p90RaHYU",formUrl_nl:"https://forms.zohopublic.eu/dfakto/form/DownloadourpaperaboutbeVaultAI/formperma/qFlkXGP7X-jVQKMW-oLRDWDvajxbgF0JP24p90RaHYU",formLabel_fr:"Télécharger notre livre blanc sur beVault & l'IA",formLabel_en:"Download our paper about beVault & AI",formLabel_nl:"Download onze whitepaper over beVault & AI",thanks_fr:"Merci ! Vous recevrez le livre blanc par email. Le document est disponible en anglais uniquement.",thanks_en:"Thank you! You will receive the white paper by email.",thanks_nl:"Bedankt! Na het invullen van het formulier ontvangt u het document per e-mail. Dit document is momenteel alleen in het Engels beschikbaar."},{slug:"pilotage-action-publique",path:"/ressources/livre-blanc-pilotage-action-publique",tag_fr:"LIVRE BLANC",tag_en:"WHITE PAPER",tag_nl:"WHITEPAPER",title_fr:"Pilotage de l'action publique par la donnée",title_en:"Data-driven management of public policy",title_nl:"Datagedreven aansturing van het overheidsbeleid",cardDesc_fr:"Découvrez comment les organismes publics peuvent passer d'une gestion manuelle à une gestion intelligente de leurs données stratégiques.",cardDesc_en:"Discover how public organizations can move from manual management to intelligent management of their strategic data.",cardDesc_nl:"Ontdek hoe overheidsorganisaties kunnen evolueren van een manueel naar een intelligent beheer van hun strategische data.",cardCta_fr:"Télécharger le livre blanc →",cardCta_en:"Download the white paper →",cardCta_nl:"Download de whitepaper →",subtitle_fr:"Comment les organismes publics passent d'une gestion manuelle à une gestion intelligente de leurs données stratégiques.",subtitle_en:"How public organizations move from manual management to intelligent management of their strategic data.",subtitle_nl:"Hoe overheidsorganisaties evolueren van een manueel naar een intelligent beheer van hun strategische data.",sectionTitle_fr:"Dans ce livre blanc",sectionTitle_en:"What you will discover",sectionTitle_nl:"Wat u ontdekt",bullets_fr:["Les défis spécifiques de la donnée dans le secteur public","La modernisation des systèmes existants","L'alignement entre conformité, transparence et performance opérationnelle"],bullets_en:["The specific data challenges faced by public organizations","How to modernize existing systems","How to align compliance, transparency and operational performance"],bullets_nl:["De specifieke datauitdagingen van overheidsorganisaties","Hoe u bestaande systemen moderniseert","Hoe u compliance, transparantie en operationele performantie op elkaar afstemt"],formTitle_fr:"Téléchargez le livre blanc",formTitle_en:"Download the white paper",formTitle_nl:"Download de whitepaper",formUrl_fr:"https://forms.zohopublic.eu/dfakto/form/Tlchargernotrelivreblancsurlepilotagedelactionpubl/formperma/JQ2FsejNhuB3wfCiKL2_Ni15aFZeTSWRnL4xSy6cjb8",formUrl_en:"https://forms.zohopublic.eu/dfakto/form/Downloadourwhitepaperonthemanagementofpublicpolicy/formperma/UIozXIadx1Qgfq7L_mzuehXLtEao10qZpU1s2t8yTvM",formUrl_nl:"https://forms.zohopublic.eu/dfakto/form/Downloadourwhitepaperonthemanagementofpublicpolicy/formperma/UIozXIadx1Qgfq7L_mzuehXLtEao10qZpU1s2t8yTvM",formLabel_fr:"Télécharger notre livre blanc sur le pilotage de l'action publique",formLabel_en:"Download our white paper on the management of public policy",formLabel_nl:"Download onze whitepaper over de aansturing van het overheidsbeleid",thanks_fr:"Merci ! Vous recevrez le livre blanc par email.",thanks_en:"Thank you! You will receive the white paper by email.",thanks_nl:"Bedankt! Na het invullen van het formulier ontvangt u het document per e-mail."},{slug:"cas-client-bnp-paribas",path:"/ressources/cas-client-bnp-paribas",tag_fr:"CAS CLIENT",tag_en:"CASE STUDY",tag_nl:"KLANTCASE",title_fr:"Cas BNP Paribas : les clés pour le pilotage de projets de transformation réussi",title_en:"BNP Paribas case study: The keys to successful transformation project management",title_nl:"BNP Paribas klantcase: de sleutels tot succesvol beheer van transformatieprojecten",cardDesc_fr:"Découvrez comment proPilot aide les grandes organisations à piloter plusieurs programmes de transformation simultanément.",cardDesc_en:"Discover how proPilot helps large organizations steer multiple transformation programs simultaneously.",cardDesc_nl:"Ontdek hoe proPilot grote organisaties helpt om meerdere transformatieprogramma's tegelijk aan te sturen.",cardCta_fr:"Télécharger le c
450as client →",cardCta_en:"Download the case study →",cardCta_nl:"Download de klantcase →",subtitle_fr:"Découvrez comment une grande banque européenne a piloté plusieurs programmes de transformation simultanément avec proPilot.",subtitle_en:"Discover how a major European bank successfully managed multiple transformation programs simultaneously with proPilot.",subtitle_nl:"Ontdek hoe een grote Europese bank met proPilot meerdere transformatieprogramma's tegelijk met succes heeft aangestuurd.",sectionTitle_fr:"Dans ce cas client",sectionTitle_en:"What you will discover",sectionTitle_nl:"Wat u ontdekt",bullets_fr:["Le contexte et les défis d'une grande organisation bancaire","L'approche mise en place avec proPilot","Les résultats obtenus pour le pilotage des transformations"],bullets_en:["The context and challenges of a major banking organization","The approach implemented with proPilot","The concrete results achieved"],bullets_nl:["De context en uitdagingen van een grote bankorganisatie","De aanpak die met proPilot werd geïmplementeerd","De concrete resultaten die werden behaald"],formTitle_fr:"Téléchargez le cas client",formTitle_en:"Download the case study",formTitle_nl:"Download de klantcase",formUrl_fr:"https://forms.zohopublic.eu/dfakto/form/TlchargeznotrelivreblancconsacrnotretudedecassurBN/formperma/6nVgD_Bh3BJmcdMuSZ2T3nwr6KxVpmdqFwSbTs7Z568",formUrl_en:"https://forms.zohopublic.eu/dfakto/form/DownloadourwhitepaperaboutourBNPcasestudy/formperma/F87iR9YnUgI-0o84czbAxQqq6cFwvzX3Le71kD0kV3M",formUrl_nl:"https://forms.zohopublic.eu/dfakto/form/DownloadourwhitepaperaboutourBNPcasestudy/formperma/F87iR9YnUgI-0o84czbAxQqq6cFwvzX3Le71kD0kV3M",formLabel_fr:"Téléchargez notre livre blanc consacré à notre étude de cas sur BNP",formLabel_en:"Download our white paper about our BNP case study",formLabel_nl:"Download onze whitepaper over onze BNP-klantcase",thanks_fr:"Merci ! Vous recevrez le cas client par email.",thanks_en:"Thank you! You will receive the case study by email.",thanks_nl:"Bedankt! Na het invullen van het formulier ontvangt u het document per e-mail."}],yR=e=>k2.find(t=>t.slug===e),wR=()=>{var s,i;const{i18n:e}=Q(),t=(s=e.language)!=null&&s.startsWith("fr")?"fr":(i=e.language)!=null&&i.startsWith("nl")?"nl":"en",n=(l,c,d)=>t==="fr"?l:t==="nl"?c:d,a=n("Livres blancs","Whitepapers","White papers"),o=n("Des analyses et retours d'expérience pour mieux comprendre les enjeux de la donnée, de la stratégie et de la transformation.","Analyses en praktijkervaringen die u helpen de uitdagingen rond data, strategie en transformatie beter te begrijpen.","Insights and customer experiences to help you better understand data, strategy and transformation challenges.");return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:n("Livres blancs dFakto | Data, stratégie et transformation","Whitepapers van dFakto | Data, strategie en transformatie","dFakto white papers | Data, strategy and transformation")}),r.jsx("meta",{name:"description",content:o}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/ressources/livres-blancs"})]}),r.jsx("section",{className:"gradient-hero py-24 lg:py-32",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-6",children:a}),r.jsx("p",{className:"text-xl text-white/70 max-w-3xl mx-auto",children:o})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:k2.map(l=>r.jsxs(L,{to:l.path,className:"group flex flex-col bg-card rounded-xl p-8 border border-border hover:border-accent/30 hover:shadow-card transition-all duration-300",children:[r.jsx("div",{className:"w-14 h-14 rounded-xl bg-accent/10 group-hover:bg-accent/20 flex items-center justify-center mb-6 transition-colors",children:r.jsx(el,{className:"w-7 h-7 text-accent"})}),r.jsx(rm,{variant:"secondary",className:"w-fit mb-3",children:n(l.tag_fr,l.tag_nl,l.tag_en)}),r.jsx("h2",{className:"text-xl font-semibold text-foreground mb-2 group-hover:text-accent transition-colors",children:n(l.title_fr,l.title_nl,l.title_en)}),r.jsx("p",{className:"text-muted-foreground mb-3",children:n(l.cardDesc_fr,l.cardDesc_nl,l.cardDesc_en)}),n(l.languageNote_fr,l.languageNote_nl,l.languageNote_en)&&r.jsx("p",{className:"text-sm italic text-muted-foreground mb-4",children:n(l.languageNote_fr,l.languageNote_nl,l.languageNote_en)}),r.jsx("span",{className:"mt-auto text-accent font-medium",children:n(l.cardCta_fr,l.cardCta_nl,l.cardCta_en)})]},l.slug))})})})]})},j2=()=>{const e=Pn(),{t}=Q();return f.useEffect(()=>{console.error("404 Error: User attempted to access non-existent route:",e.pathname)},[e.pathname]),r.jsx("div",{className:"flex min-h-screen items-center justify-center bg-muted",children:r.jsxs("div",{className:"text-center",children:[r.jsx("h1",{className:"mb-4 text-4xl font-bold",children:"404"}),r.jsx("p",{className:"mb-4 text-xl text-muted-foreground",children:t("system.notFound")}),r.jsx("a",{href:"/",className:"text-primary underline hover:text-primary/90",children:t("system.returnHome")}
450)]})})},Zc=({slug:e})=>{var u,p;const{i18n:t}=Q(),n=(u=t.language)!=null&&u.startsWith("fr")?"fr":(p=t.language)!=null&&p.startsWith("nl")?"nl":"en",a=(h,m,y)=>n==="fr"?h:n==="nl"?m:y,o=yR(e);if(!o)return r.jsx(j2,{});const s=a(o.title_fr,o.title_nl,o.title_en),i=a(o.subtitle_fr,o.subtitle_nl,o.subtitle_en),l=a(o.bullets_fr,o.bullets_nl,o.bullets_en),c=a(o.formUrl_fr,o.formUrl_nl,o.formUrl_en),d=a(o.formLabel_fr,o.formLabel_nl,o.formLabel_en);return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:`${s} | dFakto`}),r.jsx("meta",{name:"description",content:i}),r.jsx("link",{rel:"canonical",href:`https://www.dfakto.com${o.path}`})]}),r.jsx("section",{className:"gradient-hero py-20 lg:py-28",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 max-w-4xl",children:[r.jsxs(L,{to:"/ressources/livres-blancs",className:"flex w-fit items-center gap-2 text-white/70 hover:text-white transition-colors mb-8",children:[r.jsx(ue,{className:"w-4 h-4"}),a("Retour aux livres blancs","Terug naar de whitepapers","Back to white papers")]}),r.jsx(rm,{variant:"secondary",className:"mb-4",children:a(o.tag_fr,o.tag_nl,o.tag_en)}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white mb-6",children:s}),r.jsx("p",{className:"text-lg md:text-xl text-white/70",children:i}),a(o.note_fr,o.note_nl,void 0)&&r.jsx("p",{className:"mt-4 text-white/60 italic",children:a(o.note_fr,o.note_nl,void 0)})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 items-start max-w-6xl mx-auto",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-6",children:a(o.sectionTitle_fr,o.sectionTitle_nl,o.sectionTitle_en)}),r.jsx("ul",{className:"space-y-4",children:l.map(h=>r.jsxs("li",{className:"flex items-start gap-3",children:[r.jsx("span",{className:"mt-1 w-6 h-6 shrink-0 rounded-full bg-accent/10 flex items-center justify-center",children:r.jsx(Yb,{className:"w-4 h-4 text-accent"})}),r.jsx("span",{className:"text-muted-foreground",children:h})]},h))}),r.jsxs(L,{to:"/ressources-dfakto",className:"inline-flex items-center gap-2 mt-8 text-accent font-medium hover:gap-3 transition-all",children:[r.jsx(ue,{className:"w-4 h-4"}),a("Retour aux ressources","Terug naar de resources","Back to resources")]})]}),r.jsxs("div",{className:"bg-card rounded-xl border border-border p-6 lg:p-8",children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-6",children:a(o.formTitle_fr,o.formTitle_nl,o.formTitle_en)}),r.jsx("iframe",{"aria-label":d,title:d,src:c,style:{height:"760px",width:"99%",border:"none"}},c),r.jsx("p",{className:"mt-4 text-sm text-muted-foreground",children:a(o.thanks_fr,o.thanks_nl,o.thanks_en)})]})]})})})]})},kR=[{titleKey:"blogIso27001.title",slug:"/dfakto-iso-27001-certification",categoryKey:"blogHub.catSecurity"},{titleKey:"pressNibooOdoo.title",slug:"/actualites/dfakto-niboo-odoo-data",categoryKey:"blogHub.catPressRelease"},{titleKey:"blogWebinarOdooAnalytics.title",slug:"/webinar-odoo-analytics-stack",categoryKey:"blogHub.catEvent"},{titleKey:"blogAIReadiness.title",slug:"/ai-readiness-2026-bevault",categoryKey:"blogHub.catAIStrategy"},{titleKey:"blogOdooPerf.title",slug:"/odoo-performance-architecture",categoryKey:"blogHub.catERPArchitecture"},{titleKey:"blogOdooVsDW.title",slug:"/odoo-vs-datawarehouse",categoryKey:"blogHub.catDataStrategy"},{titleKey:"blogCeo25Years.title",slug:"/25-years-of-data-innovation-a-message-from-our-ceo/",categoryKey:"blogHub.catCompany"},{titleKey:"blogPcmaAI.title",slug:"/pcma-dfakto-ai-platform-business-events/",categoryKey:"blogHub.catPartnership"},{titleKey:"blogScalefreePartnership.title",slug:"/press-release-scalefree-and-dfakto-partner-datavault/",categoryKey:"blogHub.catPressRelease"},{titleKey:"blogWhyDWHTakeForever.title",slug:"/why-do-data-warehouses-take-forever/",categoryKey:"blogHub.catInsights"},{titleKey:"blogDatafaktoryBusiness.title",slug:"/datafaktory-all-the-benefits-in-the-hands-of-business-users/",categoryKey:"blogHub.catProduct"},{titleKey:"blogDDMPerformance.title",slug:"/data-driven-management-measuring-performance-execution-and-quality-in-the-same-framework/",categoryKey:"blogHub.catStrategy"},{titleKey:"blogDDMFramework.title",slug:"/data-driven-management-framework-the-dfakto-way/",categoryKey:"blogHub.catStrategy"},{titleKey:"blogIntroducingDDM.title",slug:"/dfakto-introducing-data-driven-management/",categoryKey:"blogHub.catStrategy"},{titleKey:"blogMechanicsDataVault.title",slug:"/dfakto-the-mechanics-of-data-vault/",categoryKey:"blogHub.catTech"}],jR=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-24 lg:py-32",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogHub.backToResources")]}),r.jsxs("div",{className:"text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-6",children:e("blogHub.heroTitle")}),r.jsx("p",{className:"text-xl text-white/70 max-w-2xl mx-auto",children:e("blogHub.heroSubtitle")})]})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:kR.map(t=>r.jsxs(L,{to:t.slug,className:"group bg-card rounded-xl p-8 border border-border hover:border-accent/30 hover:shadow-card transition-all duration-300",children:[r.jsx("div",{className:"mb-4",children:r.jsx("span",{className:"text-xs font-medium text-accent bg-accent/10 px-3 py-1 rounded-full",children:e(t.categoryKey)})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-4 group-hover:text-accent transition-colors",children:e(t.titleKey)}),r.jsxs("div",{className:"flex items-center gap-2 text-accent font-medium group-hover:gap-3 transition-all",children:[e("blogHub.readArticle")," ",r.jsx(Ge,{className:"w-4 h-4"})]})]},t.slug))})})})]})},TR=["/crelans-acquisition-of-axa-banque-belgium-finalised-with-a-digital-plan-in-propilot/","/data-vault-master-data-management-consolidating-the-information-into-a-single-version/","/steering-all-the-transverse-transformation-programs-of-a-large-european-bank/","/solution-implemented-in-3-days-in-a-crisis-management-hospital/","/one-common-risk-management-platform-across-17-factoring-entities/","/covid-19-brusshelp-selects-dfakto-to-help-the-most-vulnerable/","/much-faster-reporting-thanks-to-a-unified-and-trusted-platform-using-much-fewer-resources/","/unified-and-automated-reporting-for-all-construction-and-maintenance-projects-around-the-world-4/"],NR=()=>{const{t:e}=Q(),t=TR.map((n,a)=>({title:e(`successStories.story${a+1}Title`),industry:e(`successStories.story${a+1}Industry`),slug:n}));return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-24 lg:py-32",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("successStories.backToResources")]}),r.jsxs("div",{className:"text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-6",children:e("successStories.heroTitle")}),r.jsx("p",{className:"text-xl text-white/70 max-w-2xl mx-auto",children:e("successStories.heroSubtitle")})]})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:t.map(n=>r.jsxs(L,{to:n.slug,className:"group bg-card rounded-xl p-8 border border-border hover:border-accent/30 hover:shadow-card transition-all duration-300",children:[r.jsxs("div",{className:"flex items-center gap-2 mb-4",children:[r.jsx(Tp,{className:"w-4 h-4 text-accent"}),r.jsx("span",{className:"text-sm font-medium text-accent",children:n.industry})]}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-4 group-hover:text-accent transition-colors",children:n.title}),r.jsxs("div",{className:"flex items-center gap-2 text-accent font-medium group-hover:gap-3 transition-all",children:[e("successStories.readCase")," ",r.jsx(Ge,{className:"w-4 h-4"})]})]},n.slug))})})})]})},DR=1,CR="be87a075-6433-4071-8017-9c00d013111e",SR="ff67d8dd-da92-4205-95db-5abb6a7db8b3",PR="/__l5e/assets-v1/be87a075-6433-4071-8017-9c00d013111e/group.jpg",ER="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/be87a075-6433-4071-8017-9c00d013111e/group.jpg",IR="group.jpg",AR=838456,RR="image/jpeg",_R="2026-08-06T08:23:13Z",OR={version:DR,asset_id:CR,project_id:SR,url:PR,r2_key:ER,original_filename:IR,size:AR,content_type:RR,created_at:_R},LR=1,zR="2418bf9b-b379-4a51-a3e6-1826f77d804c",MR="ff67d8dd-da92-4205-95db-5abb6a7db8b3",FR="/__l5e/assets-v1/2418bf9b-b379-4a51-a3e6-1826f77d804c/thibaut.webp",qR="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/2418bf9b-b379-4a51-a3e6-1826f77d804c/thibaut.webp",BR="thibaut.webp",VR=12914,$R="image/webp",HR="2026-08-06T08:19:09Z",WR={version:LR,asset_id:zR,project_id:MR,url:FR,r2_key:qR,original_filename:BR,size:VR,content_type:$R,created_at:HR},UR=1,KR="17567ca8-392e-4668-9d17-67e359592c84",GR="ff67d8dd-da92-4205-95db-5abb6a7db8b3",QR="/__l5e/assets-v1/17567ca8-392e-4668-9d17-67e359592c84/loic.jpg",YR="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/17567ca8-392e-4668-9d17-67e359592c84/loic.jpg",ZR="loic.jpg",XR=846243,JR="image/jpeg",e_="2026-08-06T08:19:13Z",t_={version:UR,asset_id:KR,project_id:GR,url:QR,r2_key:YR,original_filename:ZR,size:XR,content_type:JR,created_at:e_},n_=1,a_="c1db30f2-bd69-4d99-ad1a-65a701b96ecd",r_="ff67d8dd-da92-4205-95db-5abb6a7db8b3",o_="/__l5e/assets-v1/c1db30f2-bd69-4d99-ad1a-65a701b96ecd/adrien.jpg",s_="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/c1db30f2-bd69-4d99-ad1a-65a701b96ecd/adrien.jpg",i_="adrien.jpg",l_=743768,c_="image/jpeg",d_="2026-08-06T08:19:17Z",u_={version:n_,asset_id:a_,project_id:r_,url:o_,r2_key:s_,original_filename:i_,size:l_,content_type:c_,created_at:d_},p_=1,m_="4c63646e-19bb-4855-8598-10eea709c28e",h_="ff67d8dd-da92-4205-95db-5abb6a7db8b3",f_="/__l5e/assets-v1/4c63646e-19bb-4855-8598-10eea709c28e/marc.png",g_="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/4c63646e-19bb-4855-8598-10eea709c28e/marc.png",v_="marc.png",b_=2223576,x_="image/png",y_="2026-08-06T08:19:21Z",w_={version:p_,asset_id:m_,project_id:h_,url:f_,r2_key:g_,original_filename:v_,size:b_,content_type:x_,created_at:y_},k_=1,j_="b8637ae1-7d57-4ef9-b2e1-d670edd88a37",T_="ff67d8dd-da92-4205-95db-5abb6a7db8b3",N_="/__l5e/assets-v1/b8637ae1-7d57-4ef9-b2e1-d670edd88a37/arthur.jpg",D_="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/b8637ae1-7d57-4ef9-b2e1-d670edd88a37/arthur.jpg",C_="arthur.jpg",S_=823318,P_="image/jpeg",E_="2026-08-06T08:19:24Z",I_={version:k_,asset_id:j_,project_id:T_,url:N_,r2_key:D_,original_filename:C_,size:S_,content_type:P_,created_at:E_},A_=1,R_="6190c986-e15b-4e73-868f-ca92ef6401f2",__="ff67d8dd-da92-4205-95db-5abb6a7db8b3",O_="/__l5e/assets-v1/6190c986-e15b-4e73-868f-ca92ef6401f2/maximilien.jpg",L_="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/6190c986-e15b-4e73-868f-ca92ef6401f2/maximilien.jpg",z_="maximilien.jpg",M_
450=760818,F_="image/jpeg",q_="2026-08-06T08:19:28Z",B_={version:A_,asset_id:R_,project_id:__,url:O_,r2_key:L_,original_filename:z_,size:M_,content_type:F_,created_at:q_},V_=1,$_="5c11b521-73ba-45f1-b1ac-ea2f5447544e",H_="ff67d8dd-da92-4205-95db-5abb6a7db8b3",W_="/__l5e/assets-v1/5c11b521-73ba-45f1-b1ac-ea2f5447544e/philomene.jpeg",U_="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/5c11b521-73ba-45f1-b1ac-ea2f5447544e/philomene.jpeg",K_="philomene.jpeg",G_=40227,Q_="image/jpeg",Y_="2026-08-06T08:19:31Z",Z_={version:V_,asset_id:$_,project_id:H_,url:W_,r2_key:U_,original_filename:K_,size:G_,content_type:Q_,created_at:Y_},X_=[Nj,_j,js,jj],J_=[mj,js,Qb],eO=[Oo,jp,js,ij,gj,Dp],tO=[{name:"Thibaut De Vylder",video:null,photo:WR.url},{name:"Loïc",video:"TR88ta8BLl4",photo:t_.url},{name:"Adrien",video:"wF-3zCKec00",photo:u_.url},{name:"Marc",video:null,photo:w_.url},{name:"Arthur",video:"r_uVuwbnetI",photo:I_.url},{name:"Maximilien",video:"srazuqbifHs",photo:B_.url},{name:"Philomène",video:null,photo:Z_.url}],nO=()=>{const{t:e}=Q(),[t,n]=f.useState(null),a=X_.map((i,l)=>({icon:i,title:e(`consulting.svc${l+1}Title`),description:e(`consulting.svc${l+1}Desc`)})),o=J_.map((i,l)=>({icon:i,value:e(`consulting.stat${l+1}Value`),label:e(`consulting.stat${l+1}Label`)})),s=eO.map((i,l)=>({icon:i,title:e(`consulting.whyCard${l+1}Title`),description:e(`consulting.whyCard${l+1}Desc`)}));return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:"dFakto Consulting | Data Strategy & Governance Experts"}),r.jsx("meta",{name:"description",content:"25 years of expertise in Data Architecture, Governance, and Change Management. We don't just sell software, we transform organizations."}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/consulting"})]}),r.jsxs("section",{className:"relative gradient-hero overflow-hidden",children:[r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_right,_rgba(59,130,246,0.15),_transparent_50%)]"}),r.jsx("div",{className:"container mx-auto px-4 lg:px-8 py-24 lg:py-32 relative",children:r.jsxs("div",{className:"max-w-4xl",children:[r.jsxs("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-6 leading-tight animate-fade-up",children:[e("consulting.heroTitle1")," ",r.jsx("span",{className:"text-gradient",children:e("consulting.heroTitle2")})]}),r.jsx("p",{className:"text-lg md:text-xl text-white/70 mb-10 max-w-2xl leading-relaxed animate-fade-up delay-100",children:e("consulting.heroDesc")}),r.jsx("div",{className:"flex flex-col sm:flex-row gap-4 animate-fade-up delay-200",children:r.jsx(L,{to:"/contact",children:r.jsxs(te,{variant:"hero",size:"xl",children:[e("consulting.heroCta"),r.jsx(Ge,{className:"w-5 h-5"})]})})})]})}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-32 bg-gradient-to-t from-background to-transparent"})]}),r.jsx("section",{className:"py-12 bg-muted/30 border-y border-border",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:o.map((i,l)=>r.jsxs("div",{className:"flex items-center gap-4 justify-center",children:[r.jsx("div",{className:"w-12 h-12 rounded-lg bg-accent/10 flex items-center justify-center",children:r.jsx(i.icon,{className:"w-6 h-6 text-accent"})}),r.jsxs("div",{children:[r.jsx("div",{className:"text-xl font-bold text-foreground",children:i.value}),r.jsx("div",{className:"text-sm text-muted-foreground",children:i.label})]})]},l))})})}),r.jsx("section",{className:"py-16 lg:py-20",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"bg-navy rounded-2xl p-8 lg:p-12 flex flex-col lg:flex-row items-center justify-between gap-8",children:[r.jsxs("div",{className:"flex items-center gap-6",children:[r.jsx("div",{className:"w-16 h-16 rounded-xl bg-cta/20 flex items-center justify-center flex-shrink-0",children:r.jsx(Xr,{className:"w-8 h-8 text-cta"})}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-2xl font-semibold text-white mb-2",children:e("consulting.auditTitle")}),r.jsx("p",{className:"text-white/70",children:e("consulting.auditDesc")})]})]}),r.jsxs(jt,{variant:"hero",size:"lg",children:[e("consulting.auditCta"),r.jsx(Ge,{className:"w-5 h-5"})]})]})})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("consulting.servicesTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("consulting.servicesSubtitle")})]}),r.jsx("div",{className:"grid md:grid-cols-2 gap-8",children:a.map((i,l)=>r.jsxs("div",{className:"bg-card rounded-xl p-8 border border-border hover:border-accent/30 hover:shadow-card transition-all duration-300 animate-fade-up",style:{animationDelay:`${l*50}ms`}
450,children:[r.jsx("div",{className:"w-14 h-14 rounded-xl bg-accent/10 flex items-center justify-center mb-6",children:r.jsx(i.icon,{className:"w-7 h-7 text-accent"})}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-3",children:i.title}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:i.description})]},i.title))})]})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-12 text-center",children:e("consulting.whyTitle")}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:s.map((i,l)=>r.jsxs("div",{className:"bg-card rounded-xl p-6 border border-border hover:border-accent/30 hover:shadow-card transition-all duration-300",children:[r.jsx("div",{className:"w-12 h-12 rounded-lg bg-accent/10 flex items-center justify-center mb-4",children:r.jsx(i.icon,{className:"w-6 h-6 text-accent"})}),r.jsx("h3",{className:"text-lg font-semibold text-foreground mb-2",children:i.title}),r.jsx("p",{className:"text-muted-foreground leading-relaxed text-sm",children:i.description})]},l))})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center mb-12",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-4",children:e("consulting.teamTitle")}),r.jsx("p",{className:"text-lg text-muted-foreground max-w-2xl mx-auto",children:e("consulting.teamSubtitle")})]}),r.jsxs("figure",{className:"mb-12",children:[r.jsx("img",{src:OR.url,alt:e("consulting.teamGroupCaption"),loading:"lazy",className:"w-full rounded-2xl object-cover"}),r.jsx("figcaption",{className:"text-center text-sm text-muted-foreground mt-3",children:e("consulting.teamGroupCaption")})]}),r.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6",children:tO.map((i,l)=>r.jsxs("div",{className:"bg-card rounded-xl p-6 border border-border text-center",children:[r.jsx("img",{src:i.photo,alt:i.name,loading:"lazy",className:"w-24 h-24 mx-auto mb-4 rounded-full object-cover object-top"}),r.jsx("div",{className:"font-semibold text-foreground",children:i.name}),r.jsx("div",{className:"text-sm text-muted-foreground mt-1",children:e(`consulting.member${l+1}Role`)}),i.video&&r.jsxs("button",{onClick:()=>n(i.video),className:"mt-3 inline-flex items-center gap-1.5 text-sm font-medium text-accent hover:underline",children:[r.jsx(Aj,{className:"w-3.5 h-3.5"}),e("consulting.teamPortrait")]})]},i.name))})]})}),r.jsx(X0,{open:!!t,onOpenChange:i=>!i&&n(null),children:r.jsxs(nm,{className:"max-w-3xl p-0 overflow-hidden",children:[r.jsx(am,{className:"sr-only",children:e("consulting.teamPortrait")}),t&&r.jsx("div",{className:"aspect-video w-full",children:r.jsx("iframe",{className:"w-full h-full",src:`https://www.youtube.com/embed/${t}`,title:e("consulting.teamPortrait"),allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})})]})}),r.jsx("section",{className:"py-16 lg:py-24 bg-muted/30",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-foreground mb-12 text-center",children:e("consulting.casesTitle")}),r.jsx("div",{className:"grid md:grid-cols-2 gap-8 max-w-5xl mx-auto",children:[{tag:e("consulting.casesTag1"),title:e("consulting.casesCase1Title"),text:e("consulting.casesCase1Text"),href:"/how-dfakto-supported-the-transformation-programs-at-bnp-paribas/"},{tag:e("consulting.casesTag2"),title:e("consulting.casesCase2Title"),text:e("consulting.casesCase2Text"),href:"/solution-implemented-in-3-days-in-a-crisis-management-hospital/"}].map(i=>r.jsxs(L,{to:i.href,className:"bg-card rounded-xl p-8 border border-border hover:border-accent/30 hover:shadow-card transition-all duration-300 flex flex-col",children:[r.jsx("span",{className:"text-xs font-semibold tracking-wider text-accent uppercase mb-3",children:i.tag}),r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-3",children:i.title}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-6",children:i.text}),r.jsx("span",{className:"mt-auto text-accent font-medium",children:e("consulting.casesCta")})]},i.href))}),r.jsx("div",{className:"text-center mt-10",children:r.jsx(L,{to:"/category/success-case/",className:"text-accent font-medium hover:underline",children:e("consulting.casesAll")})})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"bg-navy rounded-2xl p-8 lg:p-12 text-center",children:[r.jsx("h3",{className:"text-2xl font-semibold text-white mb-4",children:e("consulting.joinTitle")}),r.jsx("p",{className:"text-white/70 mb-6 max-w-xl mx-auto",children:e("consulting.joinDesc")}
450),r.jsx("a",{href:"https://www.welcometothejungle.com/fr/companies/dfakto",target:"_blank",rel:"noopener noreferrer",children:r.jsxs(te,{variant:"hero",children:[e("consulting.joinCta"),r.jsx(Xb,{className:"w-4 h-4"})]})})]})})}),r.jsx(v0,{full:!0}),r.jsx("section",{className:"pb-16 lg:pb-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto rounded-2xl border border-accent/20 bg-[#e8f7f9] p-8 flex flex-col sm:flex-row items-start gap-6",children:[r.jsx("div",{className:"w-14 h-14 rounded-xl bg-white flex items-center justify-center flex-shrink-0",children:r.jsx(lj,{className:"w-7 h-7 text-accent"})}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-xl font-semibold text-navy mb-2",children:e("consulting.beerTitle")}),r.jsx("p",{className:"text-navy/70 leading-relaxed mb-4",children:e("consulting.beerText")}),r.jsx(L,{to:"/drink",className:"text-accent font-medium hover:underline",children:e("consulting.beerLink")})]})]})})}),r.jsx("section",{className:"py-16 lg:py-24 gradient-hero",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-white mb-6",children:e("consulting.ctaTitle")}),r.jsx("p",{className:"text-lg text-white/70 mb-8",children:e("consulting.ctaDesc")}),r.jsx(L,{to:"/contact",children:r.jsx(te,{variant:"hero",size:"xl",children:e("consulting.ctaCta")})})]})})})]})},aO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-24 lg:py-32",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-6",children:e("contactPage.title")}),r.jsx("p",{className:"text-xl text-white/70",children:e("contactPage.subtitle")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"grid lg:grid-cols-2 gap-16",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-6",children:e("contactPage.getInTouch")}),r.jsx("div",{className:"bg-card rounded-xl border border-border overflow-hidden",children:De.language==="fr"?r.jsx("iframe",{"aria-label":"Contactez nous",frameBorder:"0",style:{height:"600px",width:"99%",border:"none"},src:"https://forms.zohopublic.eu/dfakto/form/Contacteznous/formperma/oTZF-Ry4tDAGk9yJtjLGUhP7KquAAP2xqiT6vgjxETc",title:"Formulaire de contact"}):r.jsx("iframe",{"aria-label":"Contact us",frameBorder:"0",style:{height:"700px",width:"99%",border:"none"},src:"https://forms.zohopublic.eu/dfakto/form/Contactus2/formperma/qVjvgd2HinAAUPfaPeRvIb7HjMosGXThdoC5D0bhEOM",title:"Contact Form"})})]}),r.jsxs("div",{className:"space-y-8",children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-6",children:e("contactPage.ourOffices")}),r.jsxs("div",{className:"bg-card rounded-xl p-8 border border-border space-y-4",children:[r.jsxs("div",{className:"flex items-start gap-4",children:[r.jsx(ns,{className:"w-6 h-6 text-accent flex-shrink-0"}),r.jsxs("div",{children:[r.jsx("h3",{className:"font-semibold text-foreground",children:e("contactPage.brusselsOffice")}),r.jsx("p",{className:"text-muted-foreground",children:"Rue Saint Hubert 17, 1150 Woluwé-Saint-Pierre"})]})]}),r.jsxs("div",{className:"flex items-start gap-4",children:[r.jsx(tl,{className:"w-6 h-6 text-accent flex-shrink-0"}),r.jsx("div",{children:r.jsx("a",{href:"tel:+3222906390",className:"text-muted-foreground hover:text-accent transition-colors",children:"+32.2.290.63.90"})})]})]}),r.jsxs("div",{className:"bg-card rounded-xl p-8 border border-border space-y-4",children:[r.jsxs("div",{className:"flex items-start gap-4",children:[r.jsx(ns,{className:"w-6 h-6 text-accent flex-shrink-0"}),r.jsxs("div",{children:[r.jsx("h3",{className:"font-semibold text-foreground",children:e("contactPage.parisOffice")}),r.jsx("p",{className:"text-muted-foreground",children:"36 avenue Hoche, 75008 Paris"})]})]}),r.jsxs("div",{className:"flex items-start gap-4",children:[r.jsx(tl,{className:"w-6 h-6 text-accent flex-shrink-0"}),r.jsx("div",{children:r.jsx("a",{href:"tel:+33189164974",className:"text-muted-foreground hover:text-accent transition-colors",children:"+33.1.89.16.49.74"})})]})]}),r.jsx("div",{className:"bg-card rounded-xl p-8 border border-border",children:r.jsxs("div",{className:"flex items-start gap-4",children:[r.jsx(Cj,{className:"w-6 h-6 text-accent flex-shrink-0"}),r.jsxs("div",{children:[r.jsx("h3",{className:"font-semibold text-foreground",children:e("contactPage.email")}),r.jsx("a",{href:"mailto:[email protected]",className:"text-muted-foreground hover:text-accent transition-colors",children:"[email protected]"})]})]})})]})]})})})]})},rO=1,oO="eb6a29fd-4ab4-4fd9-863c-133a4366c5ef",sO="ff67d8dd-da92-4205-95db-5abb6a7db8b3",iO="/__l5e/assets-v1/eb6a29fd-4ab4-4fd9-863c-133a4366c5ef/witloof-logo.jpg",lO="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/eb6a29fd-4ab4-4fd9-863c-133a4366c5ef/witloof-logo.jpg",cO="witloof-logo.jpg",dO=54319,uO="image/jpeg",pO="2026-08-06T08:14:15Z",mO={version:rO,asset_id:oO,project_id:sO,url:iO,r2_key:lO,original_filename:cO,size:dO,content_type:uO,created_at:pO},hO=1,fO="06b6ac1d-97e6-4cde-ad98-a81e8ad3c3b5",gO="ff67d8dd-da92-4205-95db-5abb6a7db8b3",vO="/__l5e/assets-v1/06b6ac1d-97e6-4cde-ad98-a81e8ad3c3b5/dfakto-ipa.jpg",bO="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/06b6ac1d-97e6-4cde-ad98-a81e8ad3c3b5/dfakto-ipa.jpg",xO="dfakto-ipa.jpg",yO=190870,wO="image/jpeg",kO="2026-09-29T13:35:36Z",jO={version:hO,asset_id:fO,project_id:gO,url:vO,r2_key:bO,original_filename:xO,size:yO,content_type:wO,created_at:kO},TO=()=>{const{t:e}=Q(),t=(De.language||"en").slice(0,2),n=t==="fr"?"En savoir plus":t==="nl"?"Meer weten":"Want to know more",a=[{icon:Lj,title:e("drink.card1Title"),text:e("drink.card1Text")},{icon:ns,title:e("drink.card2Title"),text:e("drink.card2Text")},{icon:Ej,title:e("drink.card3Title"),text:e("drink.card3Text")}];return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:e("drink.metaTitle")}),r.jsx("meta",{name:"description",content:e("drink.metaDesc")}),r.jsx("meta",{name:"robots",content:"noindex"}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/drink"})]}),r.jsxs("section",{className:"relative overflow-hidden bg-[#1d2d35]",children:[r.jsx("div",{className:"absolute inset-0 bg-[radial-gradient(ellipse_at_top_left,_rgba(247,169,28,0.18),_transparent_55%)]"}),r.jsx("div",{className:"container mx-auto px-4 lg:px-8 py-20 lg:py-28 relative",children:r.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 items-center",children:[r.jsxs("div",{children:[r.jsx("span",{className:"inline-block text-xs font-semibold tracking-[0.2em] px-3 py-1.5 rounded-full bg-[#f7a91c] text-[#1d2d35] mb-6",children:e("drink.badge")}),r.jsx("h1",{className:"text-4xl md:text-5xl lg:text-6xl font-bold text-white mb-5 leading-tight",children:e("drink.heroTitle")}),r.jsx("p",{className:"text-xl text-[#f7a91c] mb-6",children:e("drink.heroSubtitle")}),r.jsx("p",{className:"text-white leading-relaxed max-w-xl",children:e("drink.heroDesc")})]}),r.jsx("div",{className:"aspect-[4/5] rounded-2xl overflow-hidden",children:r.jsx("img",{src:jO.url,alt:"dFakto IPA",className:"w-full h-full object-cover"})})]})})]}),r.jsx("section",{className:"bg-[#f8f8f8] py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 items-center",children:[r.jsxs("div",{children:[r.jsx("div",{className:"text-xs font-semibold tracking-[0.2em] text-[#f7a91c] mb-4",children:e("drink.partnerLabel")}),r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-[#1d2d35] mb-5",children:e("drink.partnerTitle")}),r.jsx("p",{className:"text-[#1d2d35] leading-relaxed mb-6",children:e("drink.partnerText")}),r.jsx("span",{className:"text-[#1392a4] font-medium cursor-default",children:e("drink.partnerLink")})]}),r.jsx("div",{className:"flex justify-center",children:r.jsx("div",{className:"w-64 h-64 roun
450ded-2xl bg-white border border-[#1392a4]/20 flex items-center justify-center p-6",children:r.jsx("img",{src:mO.url,alt:"Brasserie Witloof",className:"w-full h-full object-contain",loading:"lazy"})})})]})})}),r.jsx("section",{className:"bg-white py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs("div",{className:"text-center max-w-3xl mx-auto mb-14",children:[r.jsx("div",{className:"text-xs font-semibold tracking-[0.2em] text-[#f7a91c] mb-4",children:e("drink.recipeLabel")}),r.jsx("h2",{className:"text-3xl lg:text-4xl font-bold text-[#1d2d35] mb-5",children:e("drink.recipeTitle")}),r.jsx("p",{className:"text-[#1d2d35] leading-relaxed",children:e("drink.recipeSubtitle")})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:a.map(o=>r.jsxs("div",{className:"rounded-xl p-8 bg-white border border-[#1392a4]/25 hover:border-[#1392a4] transition-colors",children:[r.jsx("div",{className:"w-12 h-12 rounded-lg bg-[#1392a4]/10 flex items-center justify-center mb-5",children:r.jsx(o.icon,{className:"w-6 h-6 text-[#1392a4]"})}),r.jsx("h3",{className:"text-lg font-semibold text-[#1d2d35] mb-2",children:o.title}),r.jsx("p",{className:"text-[#1d2d35]/80 text-sm leading-relaxed",children:o.text})]},o.title))})]})}),r.jsx("section",{className:"bg-[#1d2d35] py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"text-center max-w-2xl mx-auto",children:r.jsx(L,{to:"/contact",className:"inline-flex items-center justify-center px-8 py-4 rounded-lg font-semibold bg-[#f7a91c] text-[#1d2d35] hover:bg-[#f7a91c]/90 transition-colors",children:n})})})})]})},NO=()=>{const{t:e}=Q();return r.jsx(Z,{children:r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-4",children:e("bookDemo.title")}),r.jsx("p",{className:"text-xl text-white/70 max-w-2xl mx-auto mb-8",children:e("bookDemo.subtitle")}),r.jsx("div",{className:"flex justify-center",children:r.jsx(jt,{variant:"hero",size:"xl",children:e("bookDemo.cta")})})]})})})},DO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-24 lg:py-32",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-6",children:e("privacy.title")}),r.jsx("p",{className:"text-xl text-white/70",children:e("privacy.subtitle")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsx("div",{className:"max-w-3xl mx-auto prose prose-lg",children:r.jsxs("div",{className:"bg-card rounded-xl p-8 border border-border space-y-8",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s1Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e("privacy.s1Text")})]}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s2Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:e("privacy.s2Text")}),r.jsxs("ul",{className:"list-disc list-inside text-muted-foreground space-y-2",children:[r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s2Li1Label")})," ",e("privacy.s2Li1")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s2Li2Label")})," ",e("privacy.s2Li2")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s2Li3Label")})," ",e("privacy.s2Li3")]})]})]}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s3Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:e("privacy.s3Text")}),r.jsxs("ul",{className:"list-disc list-inside text-muted-foreground space-y-2",children:[r.jsx("li",{children:e("privacy.s3Li1")}),r.jsx("li",{children:e("privacy.s3Li2")}),r.jsx("li",{children:e("privacy.s3Li3")}),r.jsx("li",{children:e("privacy.s3Li4")}),r.jsx("li",{children:e("privacy.s3Li5")}),r.jsx("li",{children:e("privacy.s3Li6")})]})]}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s4Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:e("privacy.s4Text")}),r.jsxs("ul",{className:"list-disc list-inside text-muted-foreground space-y-2",children:[r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s4Li1Label")})," ",e("privacy.s4Li1")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s4Li2Label")})," ",e("privacy.s4Li2")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s4Li3Label")})," ",e("privacy.s4Li3")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s4Li4Label")})," ",e("privacy.s4Li4")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s4Li5Label")})," ",e("privacy.s4Li5")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s4Li6Label")})," ",e("privacy.s4Li6")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s4Li7Label")})," ",e("privacy.s4Li7")]})]}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mt-4",children:[e("privacy.s4Contact")," ",r.jsx("a",{href:"mailto:[email protected]",className:"text-accent hover:underline",children:"[email protected]"}),"."]})]}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s5Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:e("privacy.s5Text")}),r.jsxs("ul",{className:"list-disc list-inside text-muted-foreground space-y-2",children:[r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s5Li1Label")})," ",e("privacy.s5Li1")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s5Li2Label")})," ",e("privacy.s5Li2")]}),r.jsxs("li",{children:[r.jsx("strong",{className:"text-foreground",children:e("privacy.s5Li3Label")})," ",e("privacy.s5Li3")]})]}),r.jsx("p",{className:"text-muted-foreground leading-relaxed mt-4",children:e("privacy.s5Manage")})]}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s6Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e("privacy.s6Text")})]}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s7Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e("privacy.s7Text")})]}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s8Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e("privacy.s8Text")})]}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s9Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e("privacy.s9Text")})]}),r.jsxs("div",{children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("privacy.s10Title")}),r.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e("privacy.s10Text")}),r.jsxs("div",{className:"text-foreground mt-4 bg-muted/30 rounded-lg p-4",children:[r.jsx("p",{children:r.jsx("strong",{children:e("privacy.s10Company")})}),r.jsx("p",{children:e("privacy.s10Role")}),r.jsx("p",{children:e("privacy.s10Address1")}),r.jsx("p",{children:e("privacy.s10Address2")}),r.jsxs("p",{children:["Email: ",r.jsx("a",{href:"mailto:[email protected]",className:"text-accent hover:underline",children:"[email protected]"})]}),r.jsx("p",{children:"Phone: +32.2.290.63.90"})]}),r.jsxs("p",{className:"text-muted-foreground leading-relaxed mt-4",children:[e("privacy.s10Complaint"),r.jsxs("a",{href:"https://www.dataprotectionauthority.be",target:"_blank",rel:"noopener noreferrer",className:"text-accent hover:underline",children:[" ",e("privacy.s10Authority")]}),"."]})]}),r.jsx("div",{className:"pt-8 border-t border-border",children:r.jsx("p",{className:"text-sm text-muted-foreground",children:e("privacy.lastUpdated")})})]})})})})]})},CO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-24 lg:py-32",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-white mb-6",children:e("legal.title")}),r.jsx("p",{className:"text-xl text-white/70",children:e("legal.subtitle")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("div",{className:"max-w-3xl mx-auto prose prose-lg",children:[r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("legal.companyInfoTitle")}),r.jsxs("div",{className:"bg-card rounded-xl p-6 border border-border mb-8",children:[r.jsxs("p",{className:"text-muted-foreground mb-2",children:[r.jsx("strong",{className:"text-foreground",children:e("legal.companyName")})," ",e("legal.companyNameValue")]}),r.jsxs("p",{className:"text-muted-foreground mb-2",children:[r.jsx("strong",{className:"text-foreground",children:e("legal.registeredOffice")})," ",e("legal.registeredOfficeValue")]}),r.jsxs("p",{className:"text-muted-foreground mb-2",children:[r.jsx("strong",{className:"text-foreground",children:e("legal.vatNumber")})," ",e("legal.vatNumberValue")]}),r.jsxs("p",{className:"text-muted-foreground mb-2",children:[r.jsx("strong",{className:"text-foreground",children:e("legal.email")})," [email protected]"]}),r.jsxs("p",{className:"text-muted-foreground mb-2",children:[r.jsx("strong",{className:"text-foreground",children:e("legal.ph
450one")})," +32.2.290.63.90"]})]}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("legal.pubDirectorTitle")}),r.jsxs("p",{className:"text-muted-foreground mb-8",children:[e("legal.pubDirectorText")," ",r.jsx("strong",{className:"text-foreground",children:e("legal.pubDirectorName")}),"."]}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("legal.hostingTitle")}),r.jsxs("div",{className:"bg-card rounded-xl p-6 border border-border mb-8",children:[r.jsx("p",{className:"text-muted-foreground mb-4",children:r.jsx("strong",{className:"text-foreground",children:e("legal.primaryHosting")})}),r.jsx("p",{className:"text-muted-foreground mb-2",children:"OVHcloud"}),r.jsx("p",{className:"text-muted-foreground mb-2",children:"2 rue Kellermann, 59100 Roubaix, France"}),r.jsx("p",{className:"text-muted-foreground mb-6",children:"Website: https://www.ovhcloud.com"}),r.jsx("p",{className:"text-muted-foreground mb-4",children:r.jsx("strong",{className:"text-foreground",children:e("legal.appHosting")})}),r.jsx("p",{className:"text-muted-foreground mb-2",children:"Lovable (GPT Engineer Inc.)"}),r.jsx("p",{className:"text-muted-foreground mb-2",children:"San Francisco, California, USA"}),r.jsx("p",{className:"text-muted-foreground mb-2",children:"Website: https://lovable.dev"})]}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("legal.ipTitle")}),r.jsx("p",{className:"text-muted-foreground mb-8",children:e("legal.ipText")}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("legal.tmTitle")}),r.jsx("p",{className:"text-muted-foreground mb-8",children:e("legal.tmText")}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("legal.liabilityTitle")}),r.jsx("p",{className:"text-muted-foreground mb-8",children:e("legal.liabilityText")}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("legal.linksTitle")}),r.jsx("p",{className:"text-muted-foreground mb-8",children:e("legal.linksText")}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("legal.lawTitle")}),r.jsx("p",{className:"text-muted-foreground mb-8",children:e("legal.lawText")}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mb-4",children:e("legal.contactTitle")}),r.jsxs("p",{className:"text-muted-foreground",children:[e("legal.contactText")," ",r.jsx("a",{href:"mailto:[email protected]",className:"text-accent hover:underline",children:"[email protected]"}),"."]})]})})})]})},SO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:"Odoo est lent ? Changez d'architecture | dFakto"}),r.jsx("meta",{name:"description",content:"La vraie question derrière les problèmes de performance Odoo. Découvrez pourquoi ajouter une couche data dédiée comme beVault est la solution architecturale."}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/odoo-performance-architecture"})]}),r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/category/blogpost/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogOdooPerf.backToBlog")]}),r.jsx("div",{className:"mb-4",children:r.jsx("span",{className:"text-sm font-medium text-accent bg-accent/20 px-3 py-1 rounded-full",children:e("blogOdooPerf.category")})}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogOdooPerf.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{className:"text-xl text-muted-foreground font-medium !mb-10",children:e("blogOdooPerf.subtitle")}),r.jsx("h2",{children:e("blogOdooPerf.h2_1")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogOdooPerf.p1")}}),r.jsx("h2",{children:e("blogOdooPerf.h2_2")}),r.jsx("p",{children:e("blogOdooPerf.p2")}),r.jsxs("ul",{children:[r.jsx("li",{children:e("blogOdooPerf.li2_1")}),r.jsx("li",{children:e("blogOdooPerf.li2_2")}),r.jsx("li",{children:e("blogOdooPerf.li2_3")})]}),r.jsx("p",{children:e("blogOdooPerf.p3")}),r.jsx("h2",{children:e("blogOdooPerf.h2_3")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogOdooPerf.p4")}}),r.jsx("p",{children:e("blogOdooPerf.p5")}),r.jsx("h2",{children:e("blogOdooPerf.h2_4")}),r.jsxs("ul",{children:[r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogOdooPerf.li4_1")}}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogOdooPerf.li4_2")}}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogOdooPerf.li4_3")}})]}),r.jsx("h2",{children:e("blogOdooPerf.h2_5")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogOdooPerf.p6")}})]})})})]})},PO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsx("title",{children:"Le mythe de l'ERP unique : Odoo vs Data Warehouse | dFakto"}),r.jsx("meta",{name:"description",content:"Pourquoi Odoo ne doit pas être votre Data Warehouse. Découvrez comment une architecture data cohérente avec beVault optimise votre SI."}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/odoo-vs-datawarehouse"})]}),r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/category/blogpost/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogOdooVsDW.backToBlog")]}),r.jsx("div",{className:"mb-4",children:r.jsx("span",{className:"text-sm font-medium text-accent bg-accent/20 px-3 py-1 rounded-full",children:e("blogOdooVsDW.category")})}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogOdooVsDW.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("h2",{children:e("blogOdooVsDW.h2_1")}),r.jsx("p",{children:e("blogOdooVsDW.p1")}),r.jsxs("ul",{children:[r.jsx("li",{children:e("blogOdooVsDW.li1_1")}),r.jsx("li",{children:e("blogOdooVsDW.li1_2")}),r.jsx("li",{children:e("blogOdooVsDW.li1_3")}),r.jsx("li",{children:e("blogOdooVsDW.li1_4")}),r.jsx("li",{children:e("blogOdooVsDW.li1_5")})]}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogOdooVsDW.p2")}}),r.jsx("h2",{children:e("blogOdooVsDW.h2_2")}),r.jsx("p",{children:e("blogOdooVsDW.p3")}),r.jsx("h2",{children:e("blogOdooVsDW.h2_3")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogOdooVsDW.p4")}}),r.jsx("p",{children:e("blogOdooVsDW.p5")}),r.jsxs("ul",{children:[r.jsx("li",{children:e("blogOdooVsDW.li3_1")}),r.jsx("li",{children:e("blogOdooVsDW.li3_2")}),r.jsx("li",{children:e("blogOdooVsDW.li3_3")}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogOdooVsDW.li3_4")}})]}),r.jsx("p",{children:e("blogOdooVsDW.p6")}),r.jsxs("ul",{children:[r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogOdooVsDW.li4_1")}}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogOdooVsDW.li4_2")}})]}),r.jsx("h2",{children:e("blogOdooVsDW.h2_4")}),r.jsxs("ul",{children:[r.jsx("li",{children:e("blogOdooVsDW.li5_1")}),r.jsx("li",{children:e("blogOdooVsDW.li5_2")}),r.jsx("li",{children:e("blogOdooVsDW.li5_3")}
450)]}),r.jsx("h2",{children:e("blogOdooVsDW.h2_5")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogOdooVsDW.p7")}})]})})})]})},EO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogCeo25Years.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogCeo25Years.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{className:"text-xl text-muted-foreground font-medium !mb-10",children:e("blogCeo25Years.welcome")}),r.jsx("p",{children:e("blogCeo25Years.p1")}),r.jsx("p",{children:e("blogCeo25Years.p2")}),r.jsx("p",{children:e("blogCeo25Years.p3")}),r.jsx("h2",{children:e("blogCeo25Years.h2_1")}),r.jsxs("ul",{children:[r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogCeo25Years.li1")}}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogCeo25Years.li2")}}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogCeo25Years.li3")}})]}),r.jsx("p",{children:e("blogCeo25Years.p4")}),r.jsx("p",{children:e("blogCeo25Years.p5")}),r.jsx("p",{children:e("blogCeo25Years.p6")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogCeo25Years.p7")}}),r.jsx("p",{className:"text-xl font-medium text-foreground",children:e("blogCeo25Years.goal")}),r.jsx("p",{children:e("blogCeo25Years.p8")}),r.jsx("p",{children:e("blogCeo25Years.p9")}),r.jsx("p",{children:e("blogCeo25Years.p10")}),r.jsxs("p",{className:"mt-10 text-foreground",children:[r.jsx("strong",{children:e("blogCeo25Years.signName")}),r.jsx("br",{}),r.jsx("span",{className:"text-muted-foreground",children:e("blogCeo25Years.signTitle")})]})]})})})]})},IO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogPcmaAI.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogPcmaAI.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("h2",{children:e("blogPcmaAI.h2_1")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogPcmaAI.p1")}}),r.jsx("p",{children:e("blogPcmaAI.p2")}),r.jsx("p",{children:e("blogPcmaAI.p3")}),r.jsxs("blockquote",{children:[r.jsxs("p",{children:['"',e("blogPcmaAI.quote1"),'"']}),r.jsx("footer",{className:"text-muted-foreground not-italic mt-2",children:e("blogPcmaAI.quote1Author")})]}),r.jsx("p",{children:e("blogPcmaAI.p4")}),r.jsxs("blockquote",{children:[r.jsxs("p",{children:['"',e("blogPcmaAI.quote2a"),'"']}
450),r.jsxs("p",{className:"mt-4",children:['"',e("blogPcmaAI.quote2b"),'"']}),r.jsx("footer",{className:"text-muted-foreground not-italic mt-2",children:e("blogPcmaAI.quote2Author")})]}),r.jsx("h3",{children:e("blogPcmaAI.h3_1")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogPcmaAI.contact")}}),r.jsx("h3",{children:e("blogPcmaAI.h3_2")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogPcmaAI.p5")}}),r.jsx("h3",{children:e("blogPcmaAI.h3_3")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogPcmaAI.p6")}})]})})})]})},AO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogScalefreePartnership.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogScalefreePartnership.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("h2",{children:e("blogScalefreePartnership.h2_1")}),r.jsx("p",{className:"text-muted-foreground",dangerouslySetInnerHTML:{__html:e("blogScalefreePartnership.date")}}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogScalefreePartnership.p1")}}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogScalefreePartnership.p2")}}),r.jsx("p",{children:e("blogScalefreePartnership.p3")}),r.jsx("p",{className:"bg-accent/10 border border-accent/20 rounded-lg p-4 text-center font-medium",children:e("blogScalefreePartnership.highlight")}),r.jsx("p",{children:e("blogScalefreePartnership.p4")}),r.jsx("p",{children:e("blogScalefreePartnership.p5")}),r.jsx("h3",{children:e("blogScalefreePartnership.h3_1")}),r.jsx("p",{children:e("blogScalefreePartnership.p6")}),r.jsx("h3",{children:e("blogScalefreePartnership.h3_2")}),r.jsx("p",{children:e("blogScalefreePartnership.p7")}),r.jsx("h3",{children:e("blogScalefreePartnership.h3_3")}),r.jsx("p",{children:e("blogScalefreePartnership.p8")})]})})})]})},RO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsxs("title",{children:[e("blogAIReadiness.title")," | dFakto"]}),r.jsx("meta",{name:"description",content:e("blogAIReadiness.subtitle")}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/ai-readiness-2026-bevault"})]}),r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/category/blogpost/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogAIReadiness.backToBlog")]}),r.jsx("div",{className:"mb-4",children:r.jsx("span",{className:"text-sm font-medium text-accent bg-accent/20 px-3 py-1 rounded-full",children:e("blogAIReadiness.category")})}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogAIReadiness.title")}),r.jsx("p",{className:"text-white/60 mt-4",children:e("blogAIReadiness.date")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{className:"text-xl text-muted-foreground font-medium !mb-10",children:e("blogAIReadiness.subtitle")}),r.jsx("h2",{children:e("blogAIReadiness.h2_intro")}),r.jsx("p",{children:e("blogAIReadiness.p_intro1")}),r.jsx("p",{children:e("blogAIReadiness.p_intro2")}),r.jsx("h2",{children:e("blogAIReadiness.h2_1")}),r.jsx("p",{children:e("blogAIReadiness.p1_1")}),r.jsx("p",{children:e("blogAIReadiness.p1_2")}),r.jsx("h2",{children:e("blogAIReadiness.h2_2")}),r.jsx("p",{children:e("blogAIReadiness.p2_1")}),r.jsx("p",{children:e("blogAIReadiness.p2_2")}),r.jsx("p",{children:e("blogAIReadiness.p2_3")}),r.jsx("h2",{children:e("blogAIReadiness.h2_3")}),r.jsx("p",{children:e("blogAIReadiness.p3_1")}),r.jsx("p",{children:e("blogAIReadiness.p3_2")}),r.jsx("h2",{children:e("blogAIReadiness.h2_bevault")}),r.jsx("p",{children:e("blogAIReadiness.p_bevault_intro")}),r.jsx("h3",{children:e("blogAIReadiness.h3_step1")}),r.jsx("p",{children:e("blogAIReadiness.p_step1")}),r.jsx("h3",{children:e("blogAIReadiness.h3_step2")}),r.jsx("p",{children:e("blogAIReadiness.p_step2_1")}),r.jsx("p",{children:e("blogAIReadiness.p_step2_2")}),r.jsx("h3",{children:e("blogAIReadiness.h3_step3")}),r.jsx("p",{children:e("blogAIReadiness.p_step3")}),r.jsxs("div",{className:"bg-accent/10 border border-accent/30 rounded-xl p-6 lg:p-8 my-10",children:[r.jsx("h3",{children:e("blogAIReadiness.h3_proofpoint")}),r.jsx("p",{children:e("blogAIReadiness.p_proofpoint1")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogAIReadiness.p_proofpoint2")}}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogAIReadiness.p_proofpoint_cta")}})]}),r.jsx("h2",{children:e("blogAIReadiness.h2_conclusion")}),r.jsx("p",{children:e("blogAIReadiness.p_conclusion1")}),r.jsx("p",{children:e("blogAIReadiness.p_conclusion2")}),r.jsx("p",{children:e("blogAIReadiness.p_conclusion3")})]})})})]})},_O=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogWhyDWHTakeForever.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogWhyDWHTakeForever.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("blogWhyDWHTakeForever.p1")}),r.jsx("p",{children:e("blogWhyDWHTakeForever.p2")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogWhyDWHTakeForever.p3")}}),r.jsx("h2",{children:e("blogWhyDWHTakeForever.h2_1")}),r.jsx("p",{children:e("blogWhyDWHTakeForever.p4")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogWhyDWHTakeForever.p5")}}),r.jsx("p",{children:e("blogWhyDWHTakeForever.p6")}),r.jsx("h2",{children:e("blogWhyDWHTakeForever.h2_2")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogWhyDWHTakeForever.p7")}}),r.jsx("p",{children:e("blogWhyDWHTakeForever.p8")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogWhyDWHTakeForever.p9")}})]})})})]})},OO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogDatafaktoryBusiness.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogDatafaktoryBusiness.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("blogDatafaktoryBusiness.p1")}),r.jsx("h3",{children:e("blogDatafaktoryBusiness.h3_1")}),r.jsx("p",{children:e("blogDatafaktoryBusiness.p2")}),r.jsx("h3",{children:e("blogDatafaktoryBusiness.h3_2")}),r.jsx("p",{children:e("blogDatafaktoryBusiness.p3")}),r.jsx("h3",{children:e("blogDatafaktoryBusiness.h3_3")}),r.jsx("p",{children:e("blogDatafaktoryBusiness.p4")}),r.jsx("h3",{children:e("blogDatafaktoryBusiness.h3_4")}),r.jsx("p",{children:e("blogDatafaktoryBusiness.p5")}),r.jsx("h3",{children:e("blogDatafaktoryBusiness.h3_5")}),r.jsx("p",{children:e("blogDatafaktoryBusiness.p6")}),r.jsx("h3",{children:e("blogDatafaktoryBusiness.h3_6")}),r.jsx("p",{children:e("blogDatafaktoryBusiness.p7")}),r.jsxs("div",{className:"mt-12 p-6 bg-accent/10 border border-accent/20 rounded-xl text-center",children:[r.jsx("p",{className:"text-lg font-medium text-foreground mb-4",children:e("blogDatafaktoryBusiness.ctaText")}),r.jsx(te,{asChild:!0,children:r.jsx(L,{to:"/contact",children:e("blogDatafaktoryBusiness.ctaButton")})})]})]})})})]})},LO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogDDMPerformance.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogDDMPerformance.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("blogDDMPerformance.p1")}),r.jsx("h2",{children:e("blogDDMPerformance.h2_1")}),r.jsx("p",{children:e("blogDDMPerformance.p2")}),r.jsx("h2",{children:e("blogDDMPerformance.h2_2")}),r.jsx("p",{children:e("blogDDMPerformance.p3")}),r.jsx("h2",{children:e("blogDDMPerformance.h2_3")}),r.jsx("p",{children:e("blogDDMPerformance.p4")}),r.jsx("h2",{children:e("blogDDMPerformance.h2_4")}),r.jsx("p",{children:e("blogDDMPerformance.p5")}),r.jsxs("ul",{children:[r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogDDMPerformance.li1")}}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogDDMPerformance.li2")}}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogDDMPerformance.li3")}})]}),r.jsx("p",{children:e("blogDDMPerformance.p6")})]})})})]})},zO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogDDMFramework.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogDDMFramework.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("blogDDMFramework.p1")}),r.jsx("h2",{children:e("blogDDMFramework.h2_1")}),r.jsx("p",{children:e("blogDDMFramework.p2")}),r.jsx("h2",{children:e("blogDDMFramework.h2_2")}),r.jsx("p",{children:e("blogDDMFramework.p3")}),r.jsx("h2",{children:e("blogDDMFramework.h2_3")}),r.jsx("p",{children:e("blogDDMFramework.p4")}),r.jsx("h2",{children:e("blogDDMFramework.h2_4")}),r.jsx("p",{children:e("blogDDMFramework.p5")}),r.jsxs("blockquote",{children:[r.jsxs("p",{children:['"',e("blogDDMFramework.quote1"),'"']}),r.jsx("footer",{className:"text-muted-foreground not-italic mt-2",children:e("blogDDMFramework.quote1Author")})]}),r.jsx("p",{children:e("blogDDMFramework.p6")})]})})})]})},MO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogIntroducingDDM.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogIntroducingDDM.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{className:"text-xl font-medium !mb-10",children:e("blogIntroducingDDM.intro")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogIntroducingDDM.p1")}}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogIntroducingDDM.p2")}}),r.jsxs("blockquote",{children:[r.jsxs("p",{children:['"',e("blogIntroducingDDM.quote1"),'"']}),r.jsx("footer",{className:"text-muted-foreground not-italic mt-2",children:e("blogIntroducingDDM.quote1Author")})]}),r.jsx("p",{children:e("blogIntroducingDDM.p3")}),r.jsxs("blockquote",{children:[r.jsxs("p",{children:['"',e("blogIntroducingDDM.quote2"),'"']}),r.jsx("footer",{className:"text-muted-foreground not-italic mt-2",children:e("blogIntroducingDDM.quote2Author")})]}),r.jsx("p",{children:e("blogIntroducingDDM.p4")}),r.jsx("p",{children:e("blogIntroducingDDM.p5")}),r.jsx("h2",{children:e("blogIntroducingDDM.h2_1")}),r.jsx("p",{children:e("blogIntroducingDDM.p6")}),r.jsx("p",{children:e("blogIntroducingDDM.p7")}),r.jsx("p",{children:e("blogIntroducingDDM.p8")}),r.jsx("p",{children:e("blogIntroducingDDM.p9")}),r.jsx("p",{children:e("blogIntroducingDDM.p10")})]})})})]})},FO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogMechanicsDataVault.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("blogMechanicsDataVault.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("h2",{children:e("blogMechanicsDataVault.h2_1")}),r.jsx("p",{children:e("blogMechanicsDataVault.p1")}),r.jsx("p",{children:e("blogMechanicsDataVault.p2")}),r.jsx("p",{children:e("blogMechanicsDataVault.p3")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogMechanicsDataVault.p4")}}),r.jsx("p",{children:e("blogMechanicsDataVault.p5")}),r.jsxs("ul",{children:[r.jsx("li",{children:e("blogMechanicsDataVault.li1")}),r.jsx("li",{children:e("blogMechanicsDataVault.li2")})]}),r.jsx("p",{children:e("blogMechanicsDataVault.p6")}),r.jsx("h2",{children:e("blogMechanicsDataVault.h2_2")}),r.jsx("p",{children:e("blogMechanicsDataVault.p7")}),r.jsx("p",{children:e("blogMechanicsDataVault.p8")}),r.jsx("p",{children:e("blogMechanicsDataVault.p9")}),r.jsx("p",{children:e("blogMechanicsDataVault.p10")}),r.jsx("p",{children:e("blogMechanicsDataVault.p11")}),r.jsx("p",{children:e("blogMechanicsDataVault.p12")}),r.jsx("h2",{children:e("blogMechanicsDataVault.h2_3")}),r.jsx("p",{children:e("blogMechanicsDataVault.p13")}),r.jsx("p",{children:e("blogMechanicsDataVault.p14")}),r.jsx("p",{children:e("blogMechanicsDataVault.p15")}),r.jsx("h3",{children:e("blogMechanicsDataVault.h3_1")}),r.jsx("p",{children:e("blogMechanicsDataVault.p16")}),r.jsx("h3",{children:e("blogMechanicsDataVault.h3_2")}),r.jsx("p",{children:e("blogMechanicsDataVault.p17")}),r.jsx("h3",{children:e("blogMechanicsDataVault.h3_3")}),r.jsx("p",{children:e("blogMechanicsDataVault.p18")}),r.jsx("h3",{children:e("blogMechanicsDataVault.h3_4")}),r.jsx("p",{children:e("blogMechanicsDataVault.p19")}),r.jsx("p",{children:e("blogMechanicsDataVault.p20")})]})})})]})},qO=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsxs("title",{children:[e("blogWebinarOdooAnalytics.title")," | dFakto"]}),r.jsx("meta",{name:"description",content:e("blogWebinarOdooAnalytics.metaDesc")}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/webinar-odoo-analytics-stack"})]}),r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/category/blogpost/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("blogWebinarOdooAnalytics.backToBlog")]}),r.jsx("div",{className:"mb-4",children:r.jsx("span",{className:"text-sm font-medium text-accent bg-accent/20 px-3 py-1 rounded-full",children:e("blogWebinarOdooAnalytics.category")})}
450),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl mb-6",children:e("blogWebinarOdooAnalytics.title")}),r.jsx("p",{className:"text-lg text-white/80 max-w-3xl",children:e("blogWebinarOdooAnalytics.heroSubtitle")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsx("div",{className:"max-w-4xl mx-auto mb-16",children:r.jsx("div",{className:"relative w-full overflow-hidden rounded-xl shadow-lg",style:{paddingBottom:"56.25%"},children:r.jsx("iframe",{className:"absolute inset-0 w-full h-full",src:"https://www.youtube.com/embed/UTnvdG_hR-w",title:"Webinar Replay - Odoo Analytics Stack",frameBorder:0,allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",allowFullScreen:!0})})}),r.jsxs("article",{className:"article-prose",children:[r.jsx("h2",{children:e("blogWebinarOdooAnalytics.problemTitle")}),r.jsx("p",{children:e("blogWebinarOdooAnalytics.problemIntro")}),r.jsxs("ul",{children:[r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogWebinarOdooAnalytics.problem1")}}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogWebinarOdooAnalytics.problem2")}}),r.jsx("li",{dangerouslySetInnerHTML:{__html:e("blogWebinarOdooAnalytics.problem3")}})]}),r.jsx("h2",{children:e("blogWebinarOdooAnalytics.solution1Title")}),r.jsx("p",{children:e("blogWebinarOdooAnalytics.solution1Text")}),r.jsx("h2",{children:e("blogWebinarOdooAnalytics.solution2Title")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("blogWebinarOdooAnalytics.solution2Text")}}),r.jsxs("div",{className:"bg-accent/10 border border-accent/30 rounded-xl p-6 lg:p-8 my-10 text-center not-prose",children:[r.jsx("h2",{className:"text-2xl md:text-3xl font-bold mb-4",children:e("blogWebinarOdooAnalytics.ctaTitle")}),e("blogWebinarOdooAnalytics.ctaText")&&r.jsx("p",{className:"text-muted-foreground mb-6 max-w-2xl mx-auto",children:e("blogWebinarOdooAnalytics.ctaText")}),r.jsx("a",{href:"https://bookings.cloud.microsoft/book/[email protected]/?ismsaljsauthenabled",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 bg-accent !text-white hover:!text-white focus:!text-white active:!text-white visited:!text-white font-semibold px-6 py-3 rounded-lg hover:bg-accent/90 transition-colors no-underline",children:e("blogWebinarOdooAnalytics.ctaButton")})]})]})]})})]})},BO=1,VO="c8710354-b66a-432c-ae37-85d35b7c53a9",$O="ff67d8dd-da92-4205-95db-5abb6a7db8b3",HO="/__l5e/assets-v1/c8710354-b66a-432c-ae37-85d35b7c53a9/press-dfakto-niboo.jpg",WO="a/v1/ff67d8dd-da92-4205-95db-5abb6a7db8b3/c8710354-b66a-432c-ae37-85d35b7c53a9/press-dfakto-niboo.jpg",UO="press-dfakto-niboo.jpg",KO=61939,GO="image/jpeg",QO="2026-09-11T07:46:44Z",YO={version:BO,asset_id:VO,project_id:$O,url:HO,r2_key:WO,original_filename:UO,size:KO,content_type:GO,created_at:QO},ri="https://www.dfakto.com/actualites/dfakto-niboo-odoo-data",ZO="/press/dfakto-niboo-article-trends-tendances.pdf",XO="https://trends.levif.be/partenaires/transformation-digitale/#Souverainet%C3%A9-europ%C3%A9enne-l'ERP",yo=({text:e,author:t})=>r.jsxs("figure",{className:"not-prose my-8 border-l-4 border-accent bg-accent/5 rounded-r-xl px-6 py-5 md:px-8",children:[r.jsxs("p",{className:"text-lg md:text-xl text-foreground italic leading-relaxed",children:["« ",e," »"]}),r.jsxs("figcaption",{className:"mt-3 text-sm font-medium text-muted-foreground",children:["— ",t]})]}),JO=()=>{const{t:e}=Q(),[t,n]=f.useState(!1),a=async()=>{try{await navigator.clipboard.writeText(ri),n(!0),setTimeout(()=>n(!1),2e3)}catch{}},o=`https://www.dfakto.com${YO.url}`;return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsxs("title",{children:[e("pressNibooOdoo.metaTitle")," | dFakto"]}),r.jsx("meta",{name:"description",content:e("pressNibooOdoo.metaDesc")}),r.jsx("link",{rel:"canonical",href:ri}),r.jsx("meta",{property:"og:type",content:"article"}),r.jsx("meta",{property:"og:title",content:e("pressNibooOdoo.metaTitle")}),r.jsx("meta",{property:"og:description",content:e("pressNibooOdoo.metaDesc")}),r.jsx("meta",{property:"og:url",content:ri}),r.jsx("meta",{property:"og:image",content:o}),r.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),r.jsx("meta",{name:"twitter:title",content:e("pressNibooOdoo.metaTitle")}),r.jsx("meta",{name:"twitter:description",content:e("pressNibooOdoo.metaDesc")}),r.jsx("meta",{name:"twitter:image",content:o})]}),r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/category/blogpost/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("pressNibooOdoo.backToBlog")]}),r.jsx("div",{className:"mb-4",children:r.jsx("span",{className:"text-sm font-medium text-accent bg-accent/20 px-3 py-1 rounded-full",children:e("pressNibooOdoo.category")})}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("pressNibooOdoo.title")}),r.jsx("p",{className:"text-lg text-white/80 max-w-3xl mt-6",children:e("pressNibooOdoo.subtitle")}),r.jsx("p",{className:"text-white/60 mt-4",children:e("pressNibooOdoo.date")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{dangerouslySetInnerHTML:{__html:e("pressNibooOdoo.intro")}}),r.jsx("h2",{children:e("pressNibooOdoo.h2_1")}),r.jsx("p",{children:e("pressNibooOdoo.p1_1")}
450),r.jsx(yo,{text:e("pressNibooOdoo.quote1"),author:e("pressNibooOdoo.quote1Author")}),r.jsx("p",{children:e("pressNibooOdoo.p1_2")}),r.jsx("h2",{children:e("pressNibooOdoo.h2_2")}),r.jsx("p",{children:e("pressNibooOdoo.p2_1")}),r.jsx(yo,{text:e("pressNibooOdoo.quote2"),author:e("pressNibooOdoo.quote2Author")}),r.jsx("p",{children:e("pressNibooOdoo.p2_2")}),r.jsx("h2",{children:e("pressNibooOdoo.h2_3")}),r.jsx("p",{children:e("pressNibooOdoo.p3_1")}),r.jsx(yo,{text:e("pressNibooOdoo.quote3"),author:e("pressNibooOdoo.quote3Author")}),r.jsx("h2",{children:e("pressNibooOdoo.h2_4")}),r.jsx("p",{children:e("pressNibooOdoo.p4_1")}),r.jsx("p",{children:e("pressNibooOdoo.p4_2")}),r.jsx(yo,{text:e("pressNibooOdoo.quote4"),author:e("pressNibooOdoo.quote4Author")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("pressNibooOdoo.p4_3")}}),r.jsx("h2",{children:e("pressNibooOdoo.h2_5")}),r.jsx("p",{children:e("pressNibooOdoo.p5_1")}),r.jsx(yo,{text:e("pressNibooOdoo.quote5"),author:e("pressNibooOdoo.quote5Author")}),r.jsx("h2",{children:e("pressNibooOdoo.h2_about1")}),r.jsx("p",{children:e("pressNibooOdoo.about1")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("pressNibooOdoo.contact1")}}),r.jsx("h2",{children:e("pressNibooOdoo.h2_about2")}),r.jsx("p",{children:e("pressNibooOdoo.about2_1")}),r.jsx("p",{children:e("pressNibooOdoo.about2_2")}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e("pressNibooOdoo.contact2")}}),r.jsxs("div",{className:"not-prose bg-card border border-border rounded-xl p-6 lg:p-8 my-10 flex flex-col sm:flex-row sm:items-center gap-6",children:[r.jsx("div",{className:"w-14 h-14 rounded-xl bg-accent/10 flex items-center justify-center shrink-0",children:r.jsx(el,{className:"w-7 h-7 text-accent"})}),r.jsxs("div",{className:"flex-1",children:[r.jsx("h3",{className:"text-xl font-semibold text-foreground mb-2",children:e("pressNibooOdoo.pressTitle")}),r.jsx("p",{className:"text-muted-foreground",children:e("pressNibooOdoo.pressDesc")})]}),r.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 shrink-0",children:[r.jsx(te,{asChild:!0,variant:"outline",children:r.jsx("a",{href:ZO,target:"_blank",rel:"noopener noreferrer",children:e("pressNibooOdoo.pressButton")})}),r.jsx(te,{asChild:!0,variant:"outline",children:r.jsx("a",{href:XO,target:"_blank",rel:"noopener noreferrer",children:e("pressNibooOdoo.pressButtonOnline")})})]})]}),r.jsxs("div",{className:"not-prose flex flex-wrap gap-3 my-10",children:[r.jsx(te,{asChild:!0,variant:"outline",children:r.jsxs("a",{href:`https://www.linkedin.com/sharing/share-offsite/?url=${encodeURIComponent(ri)}`,target:"_blank",rel:"noopener noreferrer",children:[r.jsx(nx,{className:"w-4 h-4"}),e("pressNibooOdoo.shareLinkedin")]})}),r.jsxs(te,{variant:"outline",onClick:a,children:[t?r.jsx(Yb,{className:"w-4 h-4"}):r.jsx(fj,{className:"w-4 h-4"}),e(t?"pressNibooOdoo.shareCopied":"pressNibooOdoo.shareCopy")]})]})]})})}),r.jsx("section",{className:"gradient-hero py-16 lg:py-20",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8 text-center",children:[r.jsx("h2",{className:"text-2xl md:text-3xl font-bold text-white mb-8 max-w-2xl mx-auto",children:e("pressNibooOdoo.ctaTitle")}),r.jsx(te,{asChild:!0,size:"lg",children:r.jsx(L,{to:"/contact",children:e("pressNibooOdoo.ctaButton")})})]})})]})},Ie="blogIso27001",e6=()=>{const{t:e}=Q(),t=n=>e(`${Ie}.${n}`,{returnObjects:!0})||[];return r.jsxs(Z,{children:[r.jsxs(ze,{children:[r.jsxs("title",{children:[e(`${Ie}.title`)," | dFakto"]}),r.jsx("meta",{name:"description",content:e(`${Ie}.intro`)}),r.jsx("link",{rel:"canonical",href:"https://www.dfakto.com/dfakto-iso-27001-certification"})]}),r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/category/blogpost/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e(`${Ie}.backToResources`)]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e(`${Ie}.title`)})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{className:"text-xl font-medium !mb-10",children:e(`${Ie}.intro`)}),r.jsx("p",{children:e(`${Ie}.p1`)}),r.jsx("p",{children:e(`${Ie}.p2`)}),r.jsx("h2",{children:e(`${Ie}.h2_1`)}),r.jsx("p",{children:e(`${Ie}.p3`)}),r.jsx("p",{children:e(`${Ie}.p4`)}),r.jsx("ul",{children:t("list1").map(n=>r.jsx("li",{children:n},n))}),r.jsx("p",{children:e(`${Ie}.p5`)}),r.jsx("h2",{children:e(`${Ie}.h2_2`)}),r.jsx("p",{children:e(`${Ie}.p6`)}),r.jsx("p",{children:e(`${Ie}.p7`)}),r.jsx("ul",{children:t("list2").map(n=>r.jsx("li",{children:n},n))}),r.jsx("p",{children:e(`${Ie}.p8`)}),r.jsx("h2",{children:e(`${Ie}.h2_3`)}),r.jsx("p",{children:e(`${Ie}.p9`)}),r.jsx("ul",{children:t("list3").map(n=>r.jsx("li",{children:n},n))}),r.jsx("p",{dangerouslySetInnerHTML:{__html:e(`${Ie}.certificate`)}})]})})})]})},t6=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("caseCrelanAxa.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("caseCrelanAxa.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{className:"text-xl font-medium",children:e("caseCrelanAxa.intro")}),r.jsx("p",{children:e("caseCrelanAxa.p1")}),r.jsx("p",{children:e("caseCrelanAxa.p2")}),r.jsx("p",{children:e("caseCrelanAxa.p3")}),r.jsxs("div",{className:"bg-muted/50 border border-border rounded-xl p-6 my-8",children:[r.jsx("h3",{className:"text-lg font-bold text-foreground mb-3",children:e("caseCrelanAxa.keyResults")}),r.jsxs("ul",{className:"space-y-2 mb-0",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"500+"})," ",e("caseCrelanAxa.kr1")]}),r.jsxs("li",{children:[r.jsx("strong",{children:"11"})," ",e("caseCrelanAxa.kr2")]}),r.jsxs("li",{children:[r.jsx("strong",{children:e("caseCrelanAxa.kr3Label")})," ",e("caseCrelanAxa.kr3")]}),r.jsxs("li",{children:[r.jsx("strong",{children:"€691M"})," ",e("caseCrelanAxa.kr4")]})]})]}),r.jsx("p",{children:e("caseCrelanAxa.p4")}),r.jsx("p",{children:e("caseCrelanAxa.p5")}),r.jsxs("blockquote",{className:"border-l-4 border-accent pl-6 italic my-10",children:[r.jsxs("p",{children:['"',e("caseCrelanAxa.quote"),'"']}),r.jsxs("footer",{className:"text-muted-foreground not-italic mt-2",children:["— ",e("caseCrelanAxa.quoteAuthor")]})]})]})})})]})},n6=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("caseConsolidating.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("caseConsolidating.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{className:"text-xl font-medium",children:e("caseConsolidating.intro")}),r.jsx("p",{children:e("caseConsolidating.p1")}),r.jsx("p",{children:e("caseConsolidating.p2")}),r.jsxs("div",{className:"bg-muted/50 border border-border rounded-xl p-6 my-8",children:[r.jsx("h3",{className:"text-lg font-bold text-foreground mb-3",children:e("caseConsolidating.solutionTitle")}),r.jsx("p",{className:"mb-0",children:e("caseConsolidating.solutionDesc")})]}),r.jsxs("div",{className:"bg-accent/10 border border-accent/20 rounded-xl p-6 my-8",children:[r.jsx("h3",{className:"text-lg font-bold text-foreground mb-3",children:e("caseConsolidating.keyResults")}),r.jsxs("ul",{className:"space-y-2 mb-0",children:[r.jsxs("li",{children:[r.jsx("strong",{children:"80+"})," ",e("caseConsolidating.kr1")]}),r.jsxs("li",{children:[r.jsx("strong",{children:e("caseConsolidating.kr2Label")})," ",e("caseConsolidating.kr2")]}),r.jsxs("li",{children:[r.jsx("strong",{children:e("caseConsolidating.kr3Label")})," ",e("caseConsolidating.kr3")]}),r.jsxs("li",{children:[r.jsx("strong",{children:e("caseConsolidating.kr4Label")})," ",e("caseConsolidating.kr4")]})]})]}),r.jsxs("blockquote",{className:"border-l-4 border-accent pl-6 italic my-10",children:[r.jsxs("p",{children:['"',e("caseConsolidating.quote"),'"']}),r.jsxs("footer",{className:"text-muted-foreground not-italic mt-2",children:["— ",e("caseConsolidating.quoteAuthor")]})]})]})})})]})},a6=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("caseSteering.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("caseSteering.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("caseSteering.p1")}),r.jsx("p",{children:e("caseSteering.p2")}),r.jsx("p",{children:e("caseSteering.p3")}),r.jsx("p",{children:e("caseSteering.p4")}),r.jsx("p",{children:e("caseSteering.p5")}),r.jsx("p",{children:e("caseSteering.p6")}),r.jsx("p",{children:e("caseSteering.p7")}),r.jsx("p",{children:e("caseSteering.p8")})]})})})]})},r6=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("caseCrisisHospital.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("caseCrisisHospital.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("caseCrisisHospital.p1")}),r.jsx("p",{children:e("caseCrisisHospital.p2")}),r.jsx("p",{children:e("caseCrisisHospital.p3")}),r.jsx("p",{children:e("caseCrisisHospital.p4")}),r.jsx("p",{children:e("caseCrisisHospital.p5")}),r.jsx("p",{children:e("caseCrisisHospital.p6")}),r.jsx("p",{children:e("caseCrisisHospital.p7")}),r.jsx("p",{children:e("caseCrisisHospital.p8")})]})})})]})},o6=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("caseRiskFactoring.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("caseRiskFactoring.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("caseRiskFactoring.p1")}),r.jsx("p",{children:e("caseRiskFactoring.p2")}),r.jsx("p",{children:e("caseRiskFactoring.p3")}),r.jsx("p",{children:e("caseRiskFactoring.p4")}),r.jsx("p",{children:e("caseRiskFactoring.p5")}),r.jsx("p",{children:e("caseRiskFactoring.p6")})]})})})]})},s6=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("caseBrussHelp.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("caseBrussHelp.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("caseBrussHelp.p1")}),r.jsx("p",{children:e("caseBrussHelp.p2")}),r.jsx("p",{children:e("caseBrussHelp.p3")}),r.jsx("p",{children:e("caseBrussHelp.p4")}
450),r.jsx("p",{children:e("caseBrussHelp.p5")}),r.jsx("p",{children:e("caseBrussHelp.p6")})]})})})]})},i6=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("caseFasterReporting.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("caseFasterReporting.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("caseFasterReporting.intro")}),r.jsx("p",{children:e("caseFasterReporting.subtitle")}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mt-10 mb-4",children:e("caseFasterReporting.challengesTitle")}),r.jsx("p",{children:e("caseFasterReporting.p1")}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mt-10 mb-4",children:e("caseFasterReporting.solutionTitle")}),r.jsx("p",{children:e("caseFasterReporting.p2")}),r.jsx("p",{children:e("caseFasterReporting.p3")}),r.jsx("p",{children:e("caseFasterReporting.p4")}),r.jsx("p",{children:e("caseFasterReporting.p5")}),r.jsx("h2",{className:"text-2xl font-bold text-foreground mt-10 mb-4",children:e("caseFasterReporting.benefitsTitle")}),r.jsx("p",{children:e("caseFasterReporting.p6")}),r.jsxs("ul",{children:[r.jsx("li",{children:e("caseFasterReporting.benefit1")}),r.jsx("li",{children:e("caseFasterReporting.benefit2")}),r.jsx("li",{children:e("caseFasterReporting.benefit3")}),r.jsx("li",{children:e("caseFasterReporting.benefit4")})]}),r.jsxs("blockquote",{className:"border-l-4 border-accent pl-6 italic my-10",children:[r.jsxs("p",{children:['"',e("caseFasterReporting.quote"),'"']}),r.jsxs("footer",{className:"text-muted-foreground not-italic mt-2",children:["— ",e("caseFasterReporting.quoteAuthor")]})]})]})})})]})},l6=()=>{const{t:e}=Q();return r.jsxs(Z,{children:[r.jsx("section",{className:"gradient-hero py-16 lg:py-24",children:r.jsxs("div",{className:"container mx-auto px-4 lg:px-8",children:[r.jsxs(L,{to:"/ressources-dfakto/",className:"inline-flex items-center gap-2 text-white/70 hover:text-white mb-6 transition-colors",children:[r.jsx(ue,{className:"w-4 h-4"}),e("caseUnifiedReporting.backToResources")]}),r.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white max-w-4xl",children:e("caseUnifiedReporting.title")})]})}),r.jsx("section",{className:"py-16 lg:py-24",children:r.jsx("div",{className:"container mx-auto px-4 lg:px-8",children:r.jsxs("article",{className:"article-prose",children:[r.jsx("p",{children:e("caseUnifiedReporting.p1")}),r.jsx("p",{children:e("caseUnifiedReporting.p2")}),r.jsx("p",{children:e("caseUnifiedReporting.p3")}),r.jsx("p",{children:e("caseUnifiedReporting.p4")}),r.jsx("p",{children:e("caseUnifiedReporting.p5")}),r.jsx("p",{children:e("caseUnifiedReporting.p6")}),r.jsx("blockquote",{className:"border-l-4 border-accent pl-6 italic my-10",children:r.jsxs("p",{children:['"',e("caseUnifiedReporting.quote"),'"']})})]})})})]})},c6=new c4,d6=()=>r.jsx(fy,{children:r.jsx(u4,{client:c6,children:r.jsxs(FN,{children:[r.jsx(y3,{}),r.jsx(X3,{}),r.jsxs(lD,{children:[r.jsx(qD,{}),r.jsxs(tD,{children:[r.jsx(q,{path:"/",element:r.jsx($S,{})}),r.jsx(q,{path:"/bevault-data-warehouse-automation",element:r.jsx(WS,{})}),r.jsx(q,{path:"/propilot-strategy-execution-management-software",element:r.jsx(US,{})}),r.jsx(q,{path:"/solution-propilot",element:r.jsx(Pe,{to:"/propilot-strategy-execution-management-software",replace:!0})}),r.jsx(q,{path:"/odoo",element:r.jsx(KS,{})}),r.jsx(q,{path:"/solutions/:slug",element:r.jsx(YS,{})}),r.jsx(q,{path:"/agentic-ai",element:r.jsx(XS,{})}),r.jsx(q,{path:"/partners",element:r.jsx(Pe,{to:"/partners/program",replace:!0})}),r.jsx(q,{path:"/partners/program",element:r.jsx(DA,{})}),r.jsx(q,{path:"/partners/ecosystem",element:r.jsx(QA,{})}),r.jsx(q,{path:"/partners/apply",element:r.jsx(YA,{})}),r.jsx(q,{path:"/ressources-dfakto",element:r.jsx(JA,{})}),r.jsx(q,{path:"/resources",element:r.jsx(Pe,{to:"/ressources-dfakto",replace:!0})}),r.jsx(q,{path:"/glossary",element:r.jsx(xR,{})}),r.jsx(q,{path:"/ressources/livres-blancs",element:r.jsx(wR,{})}),r.jsx(q,{path:"/ressources/livre-blanc-bevault-ia",element:r.jsx(Zc,{slug:"bevault-ia"})}),r.jsx(q,{path:"/ressources/livre-blanc-pilotage-action-publique",element:r.jsx(Zc,{slug:"pilotage-action-publique"})}
450),r.jsx(q,{path:"/ressources/cas-client-bnp-paribas",element:r.jsx(Zc,{slug:"cas-client-bnp-paribas"})}),r.jsx(q,{path:"/category/blogpost/",element:r.jsx(jR,{})}),r.jsx(q,{path:"/ai-readiness-2026-bevault",element:r.jsx(RO,{})}),r.jsx(q,{path:"/odoo-performance-architecture",element:r.jsx(SO,{})}),r.jsx(q,{path:"/odoo-vs-datawarehouse",element:r.jsx(PO,{})}),r.jsx(q,{path:"/25-years-of-data-innovation-a-message-from-our-ceo/",element:r.jsx(EO,{})}),r.jsx(q,{path:"/pcma-dfakto-ai-platform-business-events/",element:r.jsx(IO,{})}),r.jsx(q,{path:"/press-release-scalefree-and-dfakto-partner-datavault/",element:r.jsx(AO,{})}),r.jsx(q,{path:"/why-do-data-warehouses-take-forever/",element:r.jsx(_O,{})}),r.jsx(q,{path:"/datafaktory-all-the-benefits-in-the-hands-of-business-users/",element:r.jsx(OO,{})}),r.jsx(q,{path:"/data-driven-management-measuring-performance-execution-and-quality-in-the-same-framework/",element:r.jsx(LO,{})}),r.jsx(q,{path:"/data-driven-management-framework-the-dfakto-way/",element:r.jsx(zO,{})}),r.jsx(q,{path:"/dfakto-introducing-data-driven-management/",element:r.jsx(MO,{})}),r.jsx(q,{path:"/dfakto-the-mechanics-of-data-vault/",element:r.jsx(FO,{})}),r.jsx(q,{path:"/webinar-odoo-analytics-stack",element:r.jsx(qO,{})}),r.jsx(q,{path:"/actualites/dfakto-niboo-odoo-data",element:r.jsx(JO,{})}),r.jsx(q,{path:"/dfakto-iso-27001-certification",element:r.jsx(e6,{})}),r.jsx(q,{path:"/category/success-case/",element:r.jsx(NR,{})}),r.jsx(q,{path:"/crelans-acquisition-of-axa-banque-belgium-finalised-with-a-digital-plan-in-propilot/",element:r.jsx(t6,{})}),r.jsx(q,{path:"/data-vault-master-data-management-consolidating-the-information-into-a-single-version/",element:r.jsx(n6,{})}),r.jsx(q,{path:"/how-dfakto-supported-the-transformation-programs-at-bnp-paribas/",element:r.jsx(a6,{})}),r.jsx(q,{path:"/steering-all-the-transverse-transformation-programs-of-a-large-european-bank/",element:r.jsx(Pe,{to:"/how-dfakto-supported-the-transformation-programs-at-bnp-paribas/",replace:!0})}),r.jsx(q,{path:"/solution-implemented-in-3-days-in-a-crisis-management-hospital/",element:r.jsx(r6,{})}),r.jsx(q,{path:"/one-common-risk-management-platform-across-17-factoring-entities/",element:r.jsx(o6,{})}),r.jsx(q,{path:"/covid-19-brusshelp-selects-dfakto-to-help-the-most-vulnerable/",element:r.jsx(s6,{})}),r.jsx(q,{path:"/much-faster-reporting-thanks-to-a-unified-and-trusted-platform-using-much-fewer-resources/",element:r.jsx(i6,{})}),r.jsx(q,{path:"/unified-and-automated-reporting-for-all-construction-and-maintenance-projects-around-the-world-4/",element:r.jsx(l6,{})}),r.jsx(q,{path:"/consulting",element:r.jsx(nO,{})}),r.jsx(q,{path:"/contact",element:r.jsx(aO,{})}),r.jsx(q,{path:"/drink",element:r.jsx(TO,{})}),r.jsx(q,{path:"/book-demo",element:r.jsx(NO,{})}),r.jsx(q,{path:"/disclaimer/privacy-statement-eu",element:r.jsx(DO,{})}),r.jsx(q,{path:"/privacy-policy",element:r.jsx(Pe,{to:"/disclaimer/privacy-statement-eu",replace:!0})}),r.jsx(q,{path:"/legal-notice",element:r.jsx(CO,{})}),r.jsx(q,{path:"/disclaimer",element:r.jsx(Pe,{to:"/legal-notice",replace:!0})}),r.jsx(q,{path:"/home",element:r.jsx(Pe,{to:"/",replace:!0})}),r.jsx(q,{path:"/about-us",element:r.jsx(Pe,{to:"/consulting",replace:!0})}),r.jsx(q,{path:"/fr/a-propos",element:r.jsx(Pe,{to:"/consulting",replace:!0})}),r.jsx(q,{path:"/what-our-customers-love-about-dfaktory",element:r.jsx(Pe,{to:"/consulting",replace:!0})}),r.jsx(q,{path:"/fr/solution-datafactory",element:r.jsx(Pe,{to:"/bevault-data-warehouse-automation",replace:!0})}),r.jsx(q,{path:"/unlock-the-power-of-data-vault-with-datafaktory",element:r.jsx(Pe,{to:"/category/blogpost/",replace:!0})}),r.jsx(q,{path:"/category/whitepaper",element:r.jsx(Pe,{to:"/ressources-dfakto/",replace:!0})}),r.jsx(q,{path:"/category/webinar",element:r.jsx(Pe,{to:"/ressources-dfakto/",replace:!0})}),r.jsx(q,{path:"/ressources-dfakto/page/*",element:r.jsx(Pe,{to:"/ressources-dfakto/",replace:!0})}),r.jsx(q,{path:"/category/blogpost/page/*",element:r.jsx(Pe,{to:"/category/blogpost/",replace:!0})}),r.jsx(q,{path:"/job/ceo",element:r.jsx(Pe,{to:"/ressources-dfakto/",replace:!0})}),r.jsx(q,{path:"/job/sales",element:r.jsx(Pe,{to:"/ressources-dfakto/",replace:!0})}),r.jsx(q,{path:"/job/cto",element:r.jsx(Pe,{to:"/ressources-dfakto/",replace:!0})}),r.jsx(q,{path:"/job/marketing",element:r.jsx(Pe,{to:"/ressources-dfakto/",replace:!0})}),r.jsx(q,{path:"*",element:r.jsx(j2,{})})]})]})]})})});wb(document.getElementById("root")).render(r.jsx(d6,{}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.