/*! For license information please see main.a9beeb09.js.LICENSE.txt */
(()=>{var e={888:(e,t,n)=>{"use strict";var a=n(47);function i(){}function r(){}r.resetWarningCache=i,e.exports=function(){function e(e,t,n,i,r,o){if(o!==a){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:r,resetWarningCache:i};return n.PropTypes=n,n}},7:(e,t,n)=>{e.exports=n(888)()},47:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},896:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.canUseDOM=void 0,t.removeDocumentMeta=r,t.insertDocumentMeta=function(e){r(),(0,a.forEach)(e,o)};var a=n(703);t.canUseDOM=!("undefined"===typeof window||!window.document||!window.document.createElement);function i(e){e.parentNode.removeChild(e)}function r(){(0,a.forEach)(document.querySelectorAll("head [data-rdm]"),i)}function o(e){var t=e.tagName,n=function(e,t){var n={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n}(e,["tagName"]),a=document.createElement(t);for(var i in n)e.hasOwnProperty(i)&&a.setAttribute(i,e[i]);a.setAttribute("data-rdm",""),document.getElementsByTagName("head")[0].appendChild(a)}},461:(e,t,n)=>{"use strict";var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}}(),i=Object.assign||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};var r=n(791),o=d(r),s=d(n(7)),l=d(n(916)),c=n(703),u=n(896);function d(e){return e&&e.__esModule?e:{default:e}}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function f(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],a="link"===e?"href":"content";return Object.keys(t).forEach((function(i){var r=t[i];"string"!==typeof r?Object.keys(r).forEach((function(t){(Array.isArray(r[t])?r[t]:[r[t]]).forEach((function(r){var o;null!==r&&n.push((h(o={tagName:e},i,t),h(o,a,r),o))}))})):n.push(h({tagName:e},i,r))})),n}function p(e){return[].concat(f("meta",e.meta),f("link",e.link))}function m(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=0,n=[];function a(e){var n=e.tagName,a=function(e,t){var n={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n}(e,["tagName"]);return"meta"===n?o.default.createElement("meta",i({},a,{key:t++,"data-rdm":!0})):"link"===n?o.default.createElement("link",i({},a,{key:t++,"data-rdm":!0})):null}return e.title&&n.push(o.default.createElement("title",{key:t++},e.title)),p(e).reduce((function(e,t){return e.push(a(t)),e}),n)}var g=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==typeof t&&"function"!==typeof t?e:t}(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),a(t,[{key:"render",value:function(){var e=this.props.children,t=o.default.Children.count(e);return 1===t?o.default.Children.only(e):t?o.default.createElement("div",null,this.props.children):null}}]),t}(r.Component);g.propTypes={title:s.default.oneOfType([s.default.string,s.default.func]),description:s.default.oneOfType([s.default.string,s.default.func]),canonical:s.default.oneOfType([s.default.string,s.default.func]),base:s.default.string,meta:s.default.objectOf(s.default.oneOfType([s.default.string,s.default.objectOf(s.default.oneOfType([s.default.string,s.default.arrayOf(s.default.string)]))])),link:s.default.objectOf(s.default.objectOf(s.default.oneOfType([s.default.string,s.default.arrayOf(s.default.string)]))),auto:s.default.objectOf(s.default.bool)};var v=(0,l.default)((function(e){for(var t={},n={title:void 0,description:void 0,canonical:void 0},a=!0,i=function(){a=e[r].hasOwnProperty("extend");var i=e[r],o=(0,c.clone)(e[r]);["title","description","canonical"].forEach((function(e){i.hasOwnProperty(e)&&("function"===typeof i[e]?n[e]=i[e](n[e]):void 0===n[e]&&(n[e]=i[e]))})),(0,c.defaults)(t,o)},r=e.length-1;a&&r>=0;r--)i();return"string"===typeof n.title&&(t.title=n.title),"string"===typeof n.description&&(0,c.defaults)(t,{meta:{name:{description:n.description}}}),"string"===typeof n.canonical&&(0,c.defaults)(t,{link:{rel:{canonical:n.canonical}}}),t.auto&&t.auto.ograph&&function(e){e.meta||(e.meta={});e.meta.property||(e.meta.property={});var t=e.meta.property;t&&(e.title&&!t["og:title"]&&(t["og:title"]=e.title),e.hasOwnProperty("description")&&!t["og:description"]&&(t["og:description"]=e.description),e.hasOwnProperty("canonical")&&!t["og:url"]&&(t["og:url"]=e.canonical))}(t),t}),(function(e){u.canUseDOM&&("string"===typeof e.title&&(document.title=e.title),(0,u.insertDocumentMeta)(p(e)))}))(g);v.renderAsReact=function(){return m(v.rewind())},t.ZP=v},703:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};t.clone=function(e){var t=e.title,n=e.description,a=e.base,i=e.canonical,r=e.meta,o=e.link,s=e.auto;try{return JSON.parse(JSON.stringify({title:t,description:n,base:a,canonical:i,meta:r,link:o,auto:s}))}catch(l){return{}}},t.defaults=function e(t,a){return Object.keys(a).reduce((function(i,r){return t.hasOwnProperty(r)?"object"===n(t[r])&&!Array.isArray(t[r])&&t[r]&&e(t[r],a[r]):t[r]=a[r],t}),t)},t.forEach=function(e,t){e&&e.length&&Array.prototype.slice.call(e).forEach(t)}},916:(e,t,n)=>{"use strict";function a(e){return e&&"object"===typeof e&&"default"in e?e.default:e}var i=n(791),r=a(i),o=a(n(613));function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var l=!("undefined"===typeof window||!window.document||!window.document.createElement);e.exports=function(e,t,n){if("function"!==typeof e)throw new Error("Expected reducePropsToState to be a function.");if("function"!==typeof t)throw new Error("Expected handleStateChangeOnClient to be a function.");if("undefined"!==typeof n&&"function"!==typeof n)throw new Error("Expected mapStateOnServer to either be undefined or a function.");return function(a){if("function"!==typeof a)throw new Error("Expected WrappedComponent to be a React component.");var c,u=[];function d(){c=e(u.map((function(e){return e.props}))),h.canUseDOM?t(c):n&&(c=n(c))}var h=function(e){var t,n;function i(){return e.apply(this,arguments)||this}n=e,(t=i).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,i.peek=function(){return c},i.rewind=function(){if(i.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var e=c;return c=void 0,u=[],e};var s=i.prototype;return s.shouldComponentUpdate=function(e){return!o(e,this.props)},s.componentWillMount=function(){u.push(this),d()},s.componentDidUpdate=function(){d()},s.componentWillUnmount=function(){var e=u.indexOf(this);u.splice(e,1),d()},s.render=function(){return r.createElement(a,this.props)},i}(i.Component);return s(h,"displayName","SideEffect("+function(e){return e.displayName||e.name||"Component"}(a)+")"),s(h,"canUseDOM",l),h}}},463:(e,t,n)=>{"use strict";var a=n(791),i=n(296);function r(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 o=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)o.add(t[e])}var u=!("undefined"===typeof window||"undefined"===typeof window.document||"undefined"===typeof window.document.createElement),d=Object.prototype.hasOwnProperty,h=/^[: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]*$/,f={},p={};function m(e,t,n,a,i,r,o){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=a,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=r,this.removeEmptyString=o}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new m(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new m(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new m(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new m(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){g[e]=new m(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new m(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new m(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new m(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new m(e,5,!1,e.toLowerCase(),null,!1,!1)}));var v=/[\-:]([a-z])/g;function y(e){return e[1].toUpperCase()}function b(e,t,n,a){var i=g.hasOwnProperty(t)?g[t]:null;(null!==i?0!==i.type:a||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,a){if(null===t||"undefined"===typeof t||function(e,t,n,a){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!a&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,a))return!0;if(a)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,i,a)&&(n=null),a||null===i?function(e){return!!d.call(p,e)||!d.call(f,e)&&(h.test(e)?p[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):i.mustUseProperty?e[i.propertyName]=null===n?3!==i.type&&"":n:(t=i.attributeName,a=i.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(i=i.type)||4===i&&!0===n?"":""+n,a?e.setAttributeNS(a,t,n):e.setAttribute(t,n))))}"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(v,y);g[t]=new m(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(v,y);g[t]=new m(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(v,y);g[t]=new m(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new m(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,x=Symbol.for("react.element"),k=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),I=Symbol.for("react.strict_mode"),A=Symbol.for("react.profiler"),S=Symbol.for("react.provider"),T=Symbol.for("react.context"),C=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),E=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),M=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var L=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var B=Symbol.iterator;function R(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=B&&e[B]||e["@@iterator"])?e:null}var z,D=Object.assign;function O(e){if(void 0===z)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);z=t&&t[1]||""}return"\n"+z+e}var _=!1;function F(e,t){if(!e||_)return"";_=!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()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var a=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){a=c}e.call(t.prototype)}else{try{throw Error()}catch(c){a=c}e()}}catch(c){if(c&&a&&"string"===typeof c.stack){for(var i=c.stack.split("\n"),r=a.stack.split("\n"),o=i.length-1,s=r.length-1;1<=o&&0<=s&&i[o]!==r[s];)s--;for(;1<=o&&0<=s;o--,s--)if(i[o]!==r[s]){if(1!==o||1!==s)do{if(o--,0>--s||i[o]!==r[s]){var l="\n"+i[o].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=o&&0<=s);break}}}finally{_=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?O(e):""}function V(e){switch(e.tag){case 5:return O(e.type);case 16:return O("Lazy");case 13:return O("Suspense");case 19:return O("SuspenseList");case 0:case 2:case 15:return e=F(e.type,!1);case 11:return e=F(e.type.render,!1);case 1:return e=F(e.type,!0);default:return""}}function H(e){if(null==e)return null;if("function"===typeof e)return e.displayName||e.name||null;if("string"===typeof e)return e;switch(e){case j:return"Fragment";case k:return"Portal";case A:return"Profiler";case I:return"StrictMode";case N:return"Suspense";case E:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case S:return(e._context.displayName||"Context")+".Provider";case C:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:H(e.type)||"Memo";case M:t=e._payload,e=e._init;try{return H(e(t))}catch(n){}}return null}function q(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=(e=t.render).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 H(t);case 8:return t===I?"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("function"===typeof t)return t.displayName||t.name||null;if("string"===typeof t)return t}return null}function W(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function U(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function G(e){e._valueTracker||(e._valueTracker=function(e){var t=U(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),a=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var i=n.get,r=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){a=""+e,r.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return a},setValue:function(e){a=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function Q(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=U(e)?e.checked?"true":"false":e.value),(e=a)!==n&&(t.setValue(e),!0)}function Y(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return D({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function K(e,t){var n=null==t.defaultValue?"":t.defaultValue,a=null!=t.checked?t.checked:t.defaultChecked;n=W(null!=t.value?t.value:n),e._wrapperState={initialChecked:a,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function X(e,t){null!=(t=t.checked)&&b(e,"checked",t,!1)}function Z(e,t){X(e,t);var n=W(t.value),a=t.type;if(null!=n)"number"===a?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===a||"reset"===a)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,W(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function $(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var a=t.type;if(!("submit"!==a&&"reset"!==a||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&Y(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,a){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t["$"+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty("$"+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&a&&(e[n].defaultSelected=!0)}else{for(n=""+W(n),t=null,i=0;i<e.length;i++){if(e[i].value===n)return e[i].selected=!0,void(a&&(e[i].defaultSelected=!0));null!==t||e[i].disabled||(t=e[i])}null!==t&&(t.selected=!0)}}function ae(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(r(91));return D({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ie(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(r(92));if(te(n)){if(1<n.length)throw Error(r(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:W(n)}}function re(e,t){var n=W(t.value),a=W(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=a&&(e.defaultValue=""+a)}function oe(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(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 le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,a){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function he(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={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},pe=["Webkit","ms","Moz","O"];function me(e,t,n){return null==t||"boolean"===typeof t||""===t?"":n||"number"!==typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var a=0===n.indexOf("--"),i=me(n,t[n],a);"float"===n&&(n="cssFloat"),a?e.setProperty(n,i):e[n]=i}}Object.keys(fe).forEach((function(e){pe.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var ve=D({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 ye(e,t){if(t){if(ve[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(r(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(r(60));if("object"!==typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(r(61))}if(null!=t.style&&"object"!==typeof t.style)throw Error(r(62))}}function be(e,t){if(-1===e.indexOf("-"))return"string"===typeof t.is;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 we=null;function xe(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ke=null,je=null,Ie=null;function Ae(e){if(e=bi(e)){if("function"!==typeof ke)throw Error(r(280));var t=e.stateNode;t&&(t=xi(t),ke(e.stateNode,e.type,t))}}function Se(e){je?Ie?Ie.push(e):Ie=[e]:je=e}function Te(){if(je){var e=je,t=Ie;if(Ie=je=null,Ae(e),t)for(e=0;e<t.length;e++)Ae(t[e])}}function Ce(e,t){return e(t)}function Ne(){}var Ee=!1;function Pe(e,t,n){if(Ee)return e(t,n);Ee=!0;try{return Ce(e,t,n)}finally{Ee=!1,(null!==je||null!==Ie)&&(Ne(),Te())}}function Me(e,t){var n=e.stateNode;if(null===n)return null;var a=xi(n);if(null===a)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)||(a=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!a;break e;default:e=!1}if(e)return null;if(n&&"function"!==typeof n)throw Error(r(231,t,typeof n));return n}var Le=!1;if(u)try{var Be={};Object.defineProperty(Be,"passive",{get:function(){Le=!0}}),window.addEventListener("test",Be,Be),window.removeEventListener("test",Be,Be)}catch(ue){Le=!1}function Re(e,t,n,a,i,r,o,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var ze=!1,De=null,Oe=!1,_e=null,Fe={onError:function(e){ze=!0,De=e}};function Ve(e,t,n,a,i,r,o,s,l){ze=!1,De=null,Re.apply(Fe,arguments)}function He(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!==(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function We(e){if(He(e)!==e)throw Error(r(188))}function Ue(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=He(e)))throw Error(r(188));return t!==e?null:e}for(var n=e,a=t;;){var i=n.return;if(null===i)break;var o=i.alternate;if(null===o){if(null!==(a=i.return)){n=a;continue}break}if(i.child===o.child){for(o=i.child;o;){if(o===n)return We(i),e;if(o===a)return We(i),t;o=o.sibling}throw Error(r(188))}if(n.return!==a.return)n=i,a=o;else{for(var s=!1,l=i.child;l;){if(l===n){s=!0,n=i,a=o;break}if(l===a){s=!0,a=i,n=o;break}l=l.sibling}if(!s){for(l=o.child;l;){if(l===n){s=!0,n=o,a=i;break}if(l===a){s=!0,a=o,n=i;break}l=l.sibling}if(!s)throw Error(r(189))}}if(n.alternate!==a)throw Error(r(190))}if(3!==n.tag)throw Error(r(188));return n.stateNode.current===n?e:t}(e))?Ge(e):null}function Ge(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ge(e);if(null!==t)return t;e=e.sibling}return null}var Qe=i.unstable_scheduleCallback,Ye=i.unstable_cancelCallback,Je=i.unstable_shouldYield,Ke=i.unstable_requestPaint,Xe=i.unstable_now,Ze=i.unstable_getCurrentPriorityLevel,$e=i.unstable_ImmediatePriority,et=i.unstable_UserBlockingPriority,tt=i.unstable_NormalPriority,nt=i.unstable_LowPriority,at=i.unstable_IdlePriority,it=null,rt=null;var ot=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(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 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ht(e,t){var n=e.pendingLanes;if(0===n)return 0;var a=0,i=e.suspendedLanes,r=e.pingedLanes,o=268435455&n;if(0!==o){var s=o&~i;0!==s?a=dt(s):0!==(r&=o)&&(a=dt(r))}else 0!==(o=n&~i)?a=dt(o):0!==r&&(a=dt(r));if(0===a)return 0;if(0!==t&&t!==a&&0===(t&i)&&((i=a&-a)>=(r=t&-t)||16===i&&0!==(4194240&r)))return t;if(0!==(4&a)&&(a|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=a;0<t;)i=1<<(n=31-ot(t)),a|=e[n],t&=~i;return a}function ft(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;default:return-1}}function pt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function mt(){var e=ct;return 0===(4194240&(ct<<=1))&&(ct=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function vt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-ot(t)]=n}function yt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-ot(n),i=1<<a;i&t|e[a]&t&&(e[a]|=t),n&=~i}}var bt=0;function wt(e){return 1<(e&=-e)?4<e?0!==(268435455&e)?16:536870912:4:1}var xt,kt,jt,It,At,St=!1,Tt=[],Ct=null,Nt=null,Et=null,Pt=new Map,Mt=new Map,Lt=[],Bt="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 Rt(e,t){switch(e){case"focusin":case"focusout":Ct=null;break;case"dragenter":case"dragleave":Nt=null;break;case"mouseover":case"mouseout":Et=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Mt.delete(t.pointerId)}}function zt(e,t,n,a,i,r){return null===e||e.nativeEvent!==r?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:r,targetContainers:[i]},null!==t&&(null!==(t=bi(t))&&kt(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,null!==i&&-1===t.indexOf(i)&&t.push(i),e)}function Dt(e){var t=yi(e.target);if(null!==t){var n=He(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void At(e.priority,(function(){jt(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ot(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=bi(n))&&kt(t),e.blockedOn=n,!1;var a=new(n=e.nativeEvent).constructor(n.type,n);we=a,n.target.dispatchEvent(a),we=null,t.shift()}return!0}function _t(e,t,n){Ot(e)&&n.delete(t)}function Ft(){St=!1,null!==Ct&&Ot(Ct)&&(Ct=null),null!==Nt&&Ot(Nt)&&(Nt=null),null!==Et&&Ot(Et)&&(Et=null),Pt.forEach(_t),Mt.forEach(_t)}function Vt(e,t){e.blockedOn===t&&(e.blockedOn=null,St||(St=!0,i.unstable_scheduleCallback(i.unstable_NormalPriority,Ft)))}function Ht(e){function t(t){return Vt(t,e)}if(0<Tt.length){Vt(Tt[0],e);for(var n=1;n<Tt.length;n++){var a=Tt[n];a.blockedOn===e&&(a.blockedOn=null)}}for(null!==Ct&&Vt(Ct,e),null!==Nt&&Vt(Nt,e),null!==Et&&Vt(Et,e),Pt.forEach(t),Mt.forEach(t),n=0;n<Lt.length;n++)(a=Lt[n]).blockedOn===e&&(a.blockedOn=null);for(;0<Lt.length&&null===(n=Lt[0]).blockedOn;)Dt(n),null===n.blockedOn&&Lt.shift()}var qt=w.ReactCurrentBatchConfig,Wt=!0;function Ut(e,t,n,a){var i=bt,r=qt.transition;qt.transition=null;try{bt=1,Qt(e,t,n,a)}finally{bt=i,qt.transition=r}}function Gt(e,t,n,a){var i=bt,r=qt.transition;qt.transition=null;try{bt=4,Qt(e,t,n,a)}finally{bt=i,qt.transition=r}}function Qt(e,t,n,a){if(Wt){var i=Jt(e,t,n,a);if(null===i)Wa(e,t,a,Yt,n),Rt(e,a);else if(function(e,t,n,a,i){switch(t){case"focusin":return Ct=zt(Ct,e,t,n,a,i),!0;case"dragenter":return Nt=zt(Nt,e,t,n,a,i),!0;case"mouseover":return Et=zt(Et,e,t,n,a,i),!0;case"pointerover":var r=i.pointerId;return Pt.set(r,zt(Pt.get(r)||null,e,t,n,a,i)),!0;case"gotpointercapture":return r=i.pointerId,Mt.set(r,zt(Mt.get(r)||null,e,t,n,a,i)),!0}return!1}(i,e,t,n,a))a.stopPropagation();else if(Rt(e,a),4&t&&-1<Bt.indexOf(e)){for(;null!==i;){var r=bi(i);if(null!==r&&xt(r),null===(r=Jt(e,t,n,a))&&Wa(e,t,a,Yt,n),r===i)break;i=r}null!==i&&a.stopPropagation()}else Wa(e,t,a,null,n)}}var Yt=null;function Jt(e,t,n,a){if(Yt=null,null!==(e=yi(e=xe(a))))if(null===(t=He(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Yt=e,null}function Kt(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(Ze()){case $e:return 1;case et:return 4;case tt:case nt:return 16;case at:return 536870912;default:return 16}default:return 16}}var Xt=null,Zt=null,$t=null;function en(){if($t)return $t;var e,t,n=Zt,a=n.length,i="value"in Xt?Xt.value:Xt.textContent,r=i.length;for(e=0;e<a&&n[e]===i[e];e++);var o=a-e;for(t=1;t<=o&&n[a-t]===i[r-t];t++);return $t=i.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function an(){return!1}function rn(e){function t(t,n,a,i,r){for(var o in this._reactName=t,this._targetInst=a,this.type=n,this.nativeEvent=i,this.target=r,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(null!=i.defaultPrevented?i.defaultPrevented:!1===i.returnValue)?nn:an,this.isPropagationStopped=an,this}return D(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!==typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!==typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=rn(cn),dn=D({},cn,{view:0,detail:0}),hn=rn(dn),fn=D({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:An,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(on=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=on=0,ln=e),on)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),pn=rn(fn),mn=rn(D({},fn,{dataTransfer:0})),gn=rn(D({},dn,{relatedTarget:0})),vn=rn(D({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),yn=D({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),bn=rn(yn),wn=rn(D({},cn,{data:0})),xn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},kn={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"},jn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function In(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=jn[e])&&!!t[e]}function An(){return In}var Sn=D({},dn,{key:function(e){if(e.key){var t=xn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?kn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:An,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=rn(Sn),Cn=rn(D({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Nn=rn(D({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:An})),En=rn(D({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=D({},fn,{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}),Mn=rn(Pn),Ln=[9,13,27,32],Bn=u&&"CompositionEvent"in window,Rn=null;u&&"documentMode"in document&&(Rn=document.documentMode);var zn=u&&"TextEvent"in window&&!Rn,Dn=u&&(!Bn||Rn&&8<Rn&&11>=Rn),On=String.fromCharCode(32),_n=!1;function Fn(e,t){switch(e){case"keyup":return-1!==Ln.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Vn(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Hn=!1;var qn={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 Wn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Un(e,t,n,a){Se(a),0<(t=Ga(t,"onChange")).length&&(n=new un("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var Gn=null,Qn=null;function Yn(e){Oa(e,0)}function Jn(e){if(Q(wi(e)))return e}function Kn(e,t){if("change"===e)return t}var Xn=!1;if(u){var Zn;if(u){var $n="oninput"in document;if(!$n){var ea=document.createElement("div");ea.setAttribute("oninput","return;"),$n="function"===typeof ea.oninput}Zn=$n}else Zn=!1;Xn=Zn&&(!document.documentMode||9<document.documentMode)}function ta(){Gn&&(Gn.detachEvent("onpropertychange",na),Qn=Gn=null)}function na(e){if("value"===e.propertyName&&Jn(Qn)){var t=[];Un(t,Qn,e,xe(e)),Pe(Yn,t)}}function aa(e,t,n){"focusin"===e?(ta(),Qn=n,(Gn=t).attachEvent("onpropertychange",na)):"focusout"===e&&ta()}function ia(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Jn(Qn)}function ra(e,t){if("click"===e)return Jn(t)}function oa(e,t){if("input"===e||"change"===e)return Jn(t)}var sa="function"===typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e===1/t)||e!==e&&t!==t};function la(e,t){if(sa(e,t))return!0;if("object"!==typeof e||null===e||"object"!==typeof t||null===t)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 i=n[a];if(!d.call(t,i)||!sa(e[i],t[i]))return!1}return!0}function ca(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ua(e,t){var n,a=ca(e);for(e=0;a;){if(3===a.nodeType){if(n=e+a.textContent.length,e<=t&&n>=t)return{node:a,offset:t-e};e=n}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=ca(a)}}function da(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?da(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function ha(){for(var e=window,t=Y();t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(a){n=!1}if(!n)break;t=Y((e=t.contentWindow).document)}return t}function fa(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function pa(e){var t=ha(),n=e.focusedElem,a=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&da(n.ownerDocument.documentElement,n)){if(null!==a&&fa(n))if(t=a.start,void 0===(e=a.end)&&(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).getSelection){e=e.getSelection();var i=n.textContent.length,r=Math.min(a.start,i);a=void 0===a.end?r:Math.min(a.end,i),!e.extend&&r>a&&(i=a,a=r,r=i),i=ua(n,r);var o=ua(n,a);i&&o&&(1!==e.rangeCount||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&((t=t.createRange()).setStart(i.node,i.offset),e.removeAllRanges(),r>a?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var ma=u&&"documentMode"in document&&11>=document.documentMode,ga=null,va=null,ya=null,ba=!1;function wa(e,t,n){var a=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;ba||null==ga||ga!==Y(a)||("selectionStart"in(a=ga)&&fa(a)?a={start:a.selectionStart,end:a.selectionEnd}:a={anchorNode:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset},ya&&la(ya,a)||(ya=a,0<(a=Ga(va,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=ga)))}function xa(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var ka={animationend:xa("Animation","AnimationEnd"),animationiteration:xa("Animation","AnimationIteration"),animationstart:xa("Animation","AnimationStart"),transitionend:xa("Transition","TransitionEnd")},ja={},Ia={};function Aa(e){if(ja[e])return ja[e];if(!ka[e])return e;var t,n=ka[e];for(t in n)if(n.hasOwnProperty(t)&&t in Ia)return ja[e]=n[t];return e}u&&(Ia=document.createElement("div").style,"AnimationEvent"in window||(delete ka.animationend.animation,delete ka.animationiteration.animation,delete ka.animationstart.animation),"TransitionEvent"in window||delete ka.transitionend.transition);var Sa=Aa("animationend"),Ta=Aa("animationiteration"),Ca=Aa("animationstart"),Na=Aa("transitionend"),Ea=new Map,Pa="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 Ma(e,t){Ea.set(e,t),l(t,[e])}for(var La=0;La<Pa.length;La++){var Ba=Pa[La];Ma(Ba.toLowerCase(),"on"+(Ba[0].toUpperCase()+Ba.slice(1)))}Ma(Sa,"onAnimationEnd"),Ma(Ta,"onAnimationIteration"),Ma(Ca,"onAnimationStart"),Ma("dblclick","onDoubleClick"),Ma("focusin","onFocus"),Ma("focusout","onBlur"),Ma(Na,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ra="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(" "),za=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ra));function Da(e,t,n){var a=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,a,i,o,s,l,c){if(Ve.apply(this,arguments),ze){if(!ze)throw Error(r(198));var u=De;ze=!1,De=null,Oe||(Oe=!0,_e=u)}}(a,t,void 0,e),e.currentTarget=null}function Oa(e,t){t=0!==(4&t);for(var n=0;n<e.length;n++){var a=e[n],i=a.event;a=a.listeners;e:{var r=void 0;if(t)for(var o=a.length-1;0<=o;o--){var s=a[o],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==r&&i.isPropagationStopped())break e;Da(i,s,c),r=l}else for(o=0;o<a.length;o++){if(l=(s=a[o]).instance,c=s.currentTarget,s=s.listener,l!==r&&i.isPropagationStopped())break e;Da(i,s,c),r=l}}}if(Oe)throw e=_e,Oe=!1,_e=null,e}function _a(e,t){var n=t[mi];void 0===n&&(n=t[mi]=new Set);var a=e+"__bubble";n.has(a)||(qa(t,e,2,!1),n.add(a))}function Fa(e,t,n){var a=0;t&&(a|=4),qa(n,e,a,t)}var Va="_reactListening"+Math.random().toString(36).slice(2);function Ha(e){if(!e[Va]){e[Va]=!0,o.forEach((function(t){"selectionchange"!==t&&(za.has(t)||Fa(t,!1,e),Fa(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Va]||(t[Va]=!0,Fa("selectionchange",!1,t))}}function qa(e,t,n,a){switch(Kt(t)){case 1:var i=Ut;break;case 4:i=Gt;break;default:i=Qt}n=i.bind(null,t,n,e),i=void 0,!Le||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(i=!0),a?void 0!==i?e.addEventListener(t,n,{capture:!0,passive:i}):e.addEventListener(t,n,!0):void 0!==i?e.addEventListener(t,n,{passive:i}):e.addEventListener(t,n,!1)}function Wa(e,t,n,a,i){var r=a;if(0===(1&t)&&0===(2&t)&&null!==a)e:for(;;){if(null===a)return;var o=a.tag;if(3===o||4===o){var s=a.stateNode.containerInfo;if(s===i||8===s.nodeType&&s.parentNode===i)break;if(4===o)for(o=a.return;null!==o;){var l=o.tag;if((3===l||4===l)&&((l=o.stateNode.containerInfo)===i||8===l.nodeType&&l.parentNode===i))return;o=o.return}for(;null!==s;){if(null===(o=yi(s)))return;if(5===(l=o.tag)||6===l){a=r=o;continue e}s=s.parentNode}}a=a.return}Pe((function(){var a=r,i=xe(n),o=[];e:{var s=Ea.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Tn;break;case"focusin":c="focus",l=gn;break;case"focusout":c="blur",l=gn;break;case"beforeblur":case"afterblur":l=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=pn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=mn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Nn;break;case Sa:case Ta:case Ca:l=vn;break;case Na:l=En;break;case"scroll":l=hn;break;case"wheel":l=Mn;break;case"copy":case"cut":case"paste":l=bn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Cn}var u=0!==(4&t),d=!u&&"scroll"===e,h=u?null!==s?s+"Capture":null:s;u=[];for(var f,p=a;null!==p;){var m=(f=p).stateNode;if(5===f.tag&&null!==m&&(f=m,null!==h&&(null!=(m=Me(p,h))&&u.push(Ua(p,m,f)))),d)break;p=p.return}0<u.length&&(s=new l(s,c,null,n,i),o.push({event:s,listeners:u}))}}if(0===(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===we||!(c=n.relatedTarget||n.fromElement)||!yi(c)&&!c[pi])&&(l||s)&&(s=i.window===i?i:(s=i.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=a,null!==(c=(c=n.relatedTarget||n.toElement)?yi(c):null)&&(c!==(d=He(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=a),l!==c)){if(u=pn,m="onMouseLeave",h="onMouseEnter",p="mouse","pointerout"!==e&&"pointerover"!==e||(u=Cn,m="onPointerLeave",h="onPointerEnter",p="pointer"),d=null==l?s:wi(l),f=null==c?s:wi(c),(s=new u(m,p+"leave",l,n,i)).target=d,s.relatedTarget=f,m=null,yi(i)===a&&((u=new u(h,p+"enter",c,n,i)).target=f,u.relatedTarget=d,m=u),d=m,l&&c)e:{for(h=c,p=0,f=u=l;f;f=Qa(f))p++;for(f=0,m=h;m;m=Qa(m))f++;for(;0<p-f;)u=Qa(u),p--;for(;0<f-p;)h=Qa(h),f--;for(;p--;){if(u===h||null!==h&&u===h.alternate)break e;u=Qa(u),h=Qa(h)}u=null}else u=null;null!==l&&Ya(o,s,l,u,!1),null!==c&&null!==d&&Ya(o,d,c,u,!0)}if("select"===(l=(s=a?wi(a):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Kn;else if(Wn(s))if(Xn)g=oa;else{g=ia;var v=aa}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=ra);switch(g&&(g=g(e,a))?Un(o,g,n,i):(v&&v(e,s,a),"focusout"===e&&(v=s._wrapperState)&&v.controlled&&"number"===s.type&&ee(s,"number",s.value)),v=a?wi(a):window,e){case"focusin":(Wn(v)||"true"===v.contentEditable)&&(ga=v,va=a,ya=null);break;case"focusout":ya=va=ga=null;break;case"mousedown":ba=!0;break;case"contextmenu":case"mouseup":case"dragend":ba=!1,wa(o,n,i);break;case"selectionchange":if(ma)break;case"keydown":case"keyup":wa(o,n,i)}var y;if(Bn)e:{switch(e){case"compositionstart":var b="onCompositionStart";break e;case"compositionend":b="onCompositionEnd";break e;case"compositionupdate":b="onCompositionUpdate";break e}b=void 0}else Hn?Fn(e,n)&&(b="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(b="onCompositionStart");b&&(Dn&&"ko"!==n.locale&&(Hn||"onCompositionStart"!==b?"onCompositionEnd"===b&&Hn&&(y=en()):(Zt="value"in(Xt=i)?Xt.value:Xt.textContent,Hn=!0)),0<(v=Ga(a,b)).length&&(b=new wn(b,e,null,n,i),o.push({event:b,listeners:v}),y?b.data=y:null!==(y=Vn(n))&&(b.data=y))),(y=zn?function(e,t){switch(e){case"compositionend":return Vn(t);case"keypress":return 32!==t.which?null:(_n=!0,On);case"textInput":return(e=t.data)===On&&_n?null:e;default:return null}}(e,n):function(e,t){if(Hn)return"compositionend"===e||!Bn&&Fn(e,t)?(e=en(),$t=Zt=Xt=null,Hn=!1,e):null;switch(e){case"paste":default: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 Dn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(a=Ga(a,"onBeforeInput")).length&&(i=new wn("onBeforeInput","beforeinput",null,n,i),o.push({event:i,listeners:a}),i.data=y))}Oa(o,t)}))}function Ua(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Ga(e,t){for(var n=t+"Capture",a=[];null!==e;){var i=e,r=i.stateNode;5===i.tag&&null!==r&&(i=r,null!=(r=Me(e,n))&&a.unshift(Ua(e,r,i)),null!=(r=Me(e,t))&&a.push(Ua(e,r,i))),e=e.return}return a}function Qa(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Ya(e,t,n,a,i){for(var r=t._reactName,o=[];null!==n&&n!==a;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===a)break;5===s.tag&&null!==c&&(s=c,i?null!=(l=Me(n,r))&&o.unshift(Ua(n,l,s)):i||null!=(l=Me(n,r))&&o.push(Ua(n,l,s))),n=n.return}0!==o.length&&e.push({event:t,listeners:o})}var Ja=/\r\n?/g,Ka=/\u0000|\uFFFD/g;function Xa(e){return("string"===typeof e?e:""+e).replace(Ja,"\n").replace(Ka,"")}function Za(e,t,n){if(t=Xa(t),Xa(e)!==t&&n)throw Error(r(425))}function $a(){}var ei=null,ti=null;function ni(e,t){return"textarea"===e||"noscript"===e||"string"===typeof t.children||"number"===typeof t.children||"object"===typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ai="function"===typeof setTimeout?setTimeout:void 0,ii="function"===typeof clearTimeout?clearTimeout:void 0,ri="function"===typeof Promise?Promise:void 0,oi="function"===typeof queueMicrotask?queueMicrotask:"undefined"!==typeof ri?function(e){return ri.resolve(null).then(e).catch(si)}:ai;function si(e){setTimeout((function(){throw e}))}function li(e,t){var n=t,a=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&8===i.nodeType)if("/$"===(n=i.data)){if(0===a)return e.removeChild(i),void Ht(t);a--}else"$"!==n&&"$?"!==n&&"$!"!==n||a++;n=i}while(n);Ht(t)}function ci(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ui(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var di=Math.random().toString(36).slice(2),hi="__reactFiber$"+di,fi="__reactProps$"+di,pi="__reactContainer$"+di,mi="__reactEvents$"+di,gi="__reactListeners$"+di,vi="__reactHandles$"+di;function yi(e){var t=e[hi];if(t)return t;for(var n=e.parentNode;n;){if(t=n[pi]||n[hi]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ui(e);null!==e;){if(n=e[hi])return n;e=ui(e)}return t}n=(e=n).parentNode}return null}function bi(e){return!(e=e[hi]||e[pi])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wi(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(r(33))}function xi(e){return e[fi]||null}var ki=[],ji=-1;function Ii(e){return{current:e}}function Ai(e){0>ji||(e.current=ki[ji],ki[ji]=null,ji--)}function Si(e,t){ji++,ki[ji]=e.current,e.current=t}var Ti={},Ci=Ii(Ti),Ni=Ii(!1),Ei=Ti;function Pi(e,t){var n=e.type.contextTypes;if(!n)return Ti;var a=e.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===t)return a.__reactInternalMemoizedMaskedChildContext;var i,r={};for(i in n)r[i]=t[i];return a&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=r),r}function Mi(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Li(){Ai(Ni),Ai(Ci)}function Bi(e,t,n){if(Ci.current!==Ti)throw Error(r(168));Si(Ci,t),Si(Ni,n)}function Ri(e,t,n){var a=e.stateNode;if(t=t.childContextTypes,"function"!==typeof a.getChildContext)return n;for(var i in a=a.getChildContext())if(!(i in t))throw Error(r(108,q(e)||"Unknown",i));return D({},n,a)}function zi(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ti,Ei=Ci.current,Si(Ci,e),Si(Ni,Ni.current),!0}function Di(e,t,n){var a=e.stateNode;if(!a)throw Error(r(169));n?(e=Ri(e,t,Ei),a.__reactInternalMemoizedMergedChildContext=e,Ai(Ni),Ai(Ci),Si(Ci,e)):Ai(Ni),Si(Ni,n)}var Oi=null,_i=!1,Fi=!1;function Vi(e){null===Oi?Oi=[e]:Oi.push(e)}function Hi(){if(!Fi&&null!==Oi){Fi=!0;var e=0,t=bt;try{var n=Oi;for(bt=1;e<n.length;e++){var a=n[e];do{a=a(!0)}while(null!==a)}Oi=null,_i=!1}catch(i){throw null!==Oi&&(Oi=Oi.slice(e+1)),Qe($e,Hi),i}finally{bt=t,Fi=!1}}return null}var qi=[],Wi=0,Ui=null,Gi=0,Qi=[],Yi=0,Ji=null,Ki=1,Xi="";function Zi(e,t){qi[Wi++]=Gi,qi[Wi++]=Ui,Ui=e,Gi=t}function $i(e,t,n){Qi[Yi++]=Ki,Qi[Yi++]=Xi,Qi[Yi++]=Ji,Ji=e;var a=Ki;e=Xi;var i=32-ot(a)-1;a&=~(1<<i),n+=1;var r=32-ot(t)+i;if(30<r){var o=i-i%5;r=(a&(1<<o)-1).toString(32),a>>=o,i-=o,Ki=1<<32-ot(t)+i|n<<i|a,Xi=r+e}else Ki=1<<r|n<<i|a,Xi=e}function er(e){null!==e.return&&(Zi(e,1),$i(e,1,0))}function tr(e){for(;e===Ui;)Ui=qi[--Wi],qi[Wi]=null,Gi=qi[--Wi],qi[Wi]=null;for(;e===Ji;)Ji=Qi[--Yi],Qi[Yi]=null,Xi=Qi[--Yi],Qi[Yi]=null,Ki=Qi[--Yi],Qi[Yi]=null}var nr=null,ar=null,ir=!1,rr=null;function or(e,t){var n=Mc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function sr(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,nr=e,ar=ci(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,nr=e,ar=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ji?{id:Ki,overflow:Xi}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Mc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,nr=e,ar=null,!0);default:return!1}}function lr(e){return 0!==(1&e.mode)&&0===(128&e.flags)}function cr(e){if(ir){var t=ar;if(t){var n=t;if(!sr(e,t)){if(lr(e))throw Error(r(418));t=ci(n.nextSibling);var a=nr;t&&sr(e,t)?or(a,n):(e.flags=-4097&e.flags|2,ir=!1,nr=e)}}else{if(lr(e))throw Error(r(418));e.flags=-4097&e.flags|2,ir=!1,nr=e}}}function ur(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;nr=e}function dr(e){if(e!==nr)return!1;if(!ir)return ur(e),ir=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!ni(e.type,e.memoizedProps)),t&&(t=ar)){if(lr(e))throw hr(),Error(r(418));for(;t;)or(e,t),t=ci(t.nextSibling)}if(ur(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(r(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ar=ci(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ar=null}}else ar=nr?ci(e.stateNode.nextSibling):null;return!0}function hr(){for(var e=ar;e;)e=ci(e.nextSibling)}function fr(){ar=nr=null,ir=!1}function pr(e){null===rr?rr=[e]:rr.push(e)}var mr=w.ReactCurrentBatchConfig;function gr(e,t){if(e&&e.defaultProps){for(var n in t=D({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var vr=Ii(null),yr=null,br=null,wr=null;function xr(){wr=br=yr=null}function kr(e){var t=vr.current;Ai(vr),e._currentValue=t}function jr(e,t,n){for(;null!==e;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==a&&(a.childLanes|=t)):null!==a&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function Ir(e,t){yr=e,wr=br=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(ws=!0),e.firstContext=null)}function Ar(e){var t=e._currentValue;if(wr!==e)if(e={context:e,memoizedValue:t,next:null},null===br){if(null===yr)throw Error(r(308));br=e,yr.dependencies={lanes:0,firstContext:e}}else br=br.next=e;return t}var Sr=null;function Tr(e){null===Sr?Sr=[e]:Sr.push(e)}function Cr(e,t,n,a){var i=t.interleaved;return null===i?(n.next=n,Tr(t)):(n.next=i.next,i.next=n),t.interleaved=n,Nr(e,a)}function Nr(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Er=!1;function Pr(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Mr(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 Lr(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Br(e,t,n){var a=e.updateQueue;if(null===a)return null;if(a=a.shared,0!==(2&Nl)){var i=a.pending;return null===i?t.next=t:(t.next=i.next,i.next=t),a.pending=t,Nr(e,n)}return null===(i=a.interleaved)?(t.next=t,Tr(a)):(t.next=i.next,i.next=t),a.interleaved=t,Nr(e,n)}function Rr(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!==(4194240&n))){var a=t.lanes;n|=a&=e.pendingLanes,t.lanes=n,yt(e,n)}}function zr(e,t){var n=e.updateQueue,a=e.alternate;if(null!==a&&n===(a=a.updateQueue)){var i=null,r=null;if(null!==(n=n.firstBaseUpdate)){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===r?i=r=o:r=r.next=o,n=n.next}while(null!==n);null===r?i=r=t:r=r.next=t}else i=r=t;return n={baseState:a.baseState,firstBaseUpdate:i,lastBaseUpdate:r,shared:a.shared,effects:a.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Dr(e,t,n,a){var i=e.updateQueue;Er=!1;var r=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(null!==s){i.shared.pending=null;var l=s,c=l.next;l.next=null,null===o?r=c:o.next=c,o=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==o&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==r){var d=i.baseState;for(o=0,u=c=l=null,s=r;;){var h=s.lane,f=s.eventTime;if((a&h)===h){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var p=e,m=s;switch(h=t,f=n,m.tag){case 1:if("function"===typeof(p=m.payload)){d=p.call(f,d,h);break e}d=p;break e;case 3:p.flags=-65537&p.flags|128;case 0:if(null===(h="function"===typeof(p=m.payload)?p.call(f,d,h):p)||void 0===h)break e;d=D({},d,h);break e;case 2:Er=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(h=i.effects)?i.effects=[s]:h.push(s))}else f={eventTime:f,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,o|=h;if(null===(s=s.next)){if(null===(s=i.shared.pending))break;s=(h=s).next,h.next=null,i.lastBaseUpdate=h,i.shared.pending=null}}if(null===u&&(l=d),i.baseState=l,i.firstBaseUpdate=c,i.lastBaseUpdate=u,null!==(t=i.shared.interleaved)){i=t;do{o|=i.lane,i=i.next}while(i!==t)}else null===r&&(i.shared.lanes=0);Dl|=o,e.lanes=o,e.memoizedState=d}}function Or(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var a=e[t],i=a.callback;if(null!==i){if(a.callback=null,a=n,"function"!==typeof i)throw Error(r(191,i));i.call(a)}}}var _r=(new a.Component).refs;function Fr(e,t,n,a){n=null===(n=n(a,t=e.memoizedState))||void 0===n?t:D({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Vr={isMounted:function(e){return!!(e=e._reactInternals)&&He(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var a=tc(),i=nc(e),r=Lr(a,i);r.payload=t,void 0!==n&&null!==n&&(r.callback=n),null!==(t=Br(e,r,i))&&(ac(t,e,i,a),Rr(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=tc(),i=nc(e),r=Lr(a,i);r.tag=1,r.payload=t,void 0!==n&&null!==n&&(r.callback=n),null!==(t=Br(e,r,i))&&(ac(t,e,i,a),Rr(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),a=nc(e),i=Lr(n,a);i.tag=2,void 0!==t&&null!==t&&(i.callback=t),null!==(t=Br(e,i,a))&&(ac(t,e,a,n),Rr(t,e,a))}};function Hr(e,t,n,a,i,r,o){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(a,r,o):!t.prototype||!t.prototype.isPureReactComponent||(!la(n,a)||!la(i,r))}function qr(e,t,n){var a=!1,i=Ti,r=t.contextType;return"object"===typeof r&&null!==r?r=Ar(r):(i=Mi(t)?Ei:Ci.current,r=(a=null!==(a=t.contextTypes)&&void 0!==a)?Pi(e,i):Ti),t=new t(n,r),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Vr,e.stateNode=t,t._reactInternals=e,a&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=r),t}function Wr(e,t,n,a){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,a),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&Vr.enqueueReplaceState(t,t.state,null)}function Ur(e,t,n,a){var i=e.stateNode;i.props=n,i.state=e.memoizedState,i.refs=_r,Pr(e);var r=t.contextType;"object"===typeof r&&null!==r?i.context=Ar(r):(r=Mi(t)?Ei:Ci.current,i.context=Pi(e,r)),i.state=e.memoizedState,"function"===typeof(r=t.getDerivedStateFromProps)&&(Fr(e,t,r,n),i.state=e.memoizedState),"function"===typeof t.getDerivedStateFromProps||"function"===typeof i.getSnapshotBeforeUpdate||"function"!==typeof i.UNSAFE_componentWillMount&&"function"!==typeof i.componentWillMount||(t=i.state,"function"===typeof i.componentWillMount&&i.componentWillMount(),"function"===typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount(),t!==i.state&&Vr.enqueueReplaceState(i,i.state,null),Dr(e,n,i,a),i.state=e.memoizedState),"function"===typeof i.componentDidMount&&(e.flags|=4194308)}function Gr(e,t,n){if(null!==(e=n.ref)&&"function"!==typeof e&&"object"!==typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(r(309));var a=n.stateNode}if(!a)throw Error(r(147,e));var i=a,o=""+e;return null!==t&&null!==t.ref&&"function"===typeof t.ref&&t.ref._stringRef===o?t.ref:(t=function(e){var t=i.refs;t===_r&&(t=i.refs={}),null===e?delete t[o]:t[o]=e},t._stringRef=o,t)}if("string"!==typeof e)throw Error(r(284));if(!n._owner)throw Error(r(290,e))}return e}function Qr(e,t){throw e=Object.prototype.toString.call(t),Error(r(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Yr(e){return(0,e._init)(e._payload)}function Jr(e){function t(t,n){if(e){var a=t.deletions;null===a?(t.deletions=[n],t.flags|=16):a.push(n)}}function n(n,a){if(!e)return null;for(;null!==a;)t(n,a),a=a.sibling;return null}function a(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function i(e,t){return(e=Bc(e,t)).index=0,e.sibling=null,e}function o(t,n,a){return t.index=a,e?null!==(a=t.alternate)?(a=a.index)<n?(t.flags|=2,n):a:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,a){return null===t||6!==t.tag?((t=Oc(n,e.mode,a)).return=e,t):((t=i(t,n)).return=e,t)}function c(e,t,n,a){var r=n.type;return r===j?d(e,t,n.props.children,a,n.key):null!==t&&(t.elementType===r||"object"===typeof r&&null!==r&&r.$$typeof===M&&Yr(r)===t.type)?((a=i(t,n.props)).ref=Gr(e,t,n),a.return=e,a):((a=Rc(n.type,n.key,n.props,null,e.mode,a)).ref=Gr(e,t,n),a.return=e,a)}function u(e,t,n,a){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=_c(n,e.mode,a)).return=e,t):((t=i(t,n.children||[])).return=e,t)}function d(e,t,n,a,r){return null===t||7!==t.tag?((t=zc(n,e.mode,a,r)).return=e,t):((t=i(t,n)).return=e,t)}function h(e,t,n){if("string"===typeof t&&""!==t||"number"===typeof t)return(t=Oc(""+t,e.mode,n)).return=e,t;if("object"===typeof t&&null!==t){switch(t.$$typeof){case x:return(n=Rc(t.type,t.key,t.props,null,e.mode,n)).ref=Gr(e,null,t),n.return=e,n;case k:return(t=_c(t,e.mode,n)).return=e,t;case M:return h(e,(0,t._init)(t._payload),n)}if(te(t)||R(t))return(t=zc(t,e.mode,n,null)).return=e,t;Qr(e,t)}return null}function f(e,t,n,a){var i=null!==t?t.key:null;if("string"===typeof n&&""!==n||"number"===typeof n)return null!==i?null:l(e,t,""+n,a);if("object"===typeof n&&null!==n){switch(n.$$typeof){case x:return n.key===i?c(e,t,n,a):null;case k:return n.key===i?u(e,t,n,a):null;case M:return f(e,t,(i=n._init)(n._payload),a)}if(te(n)||R(n))return null!==i?null:d(e,t,n,a,null);Qr(e,n)}return null}function p(e,t,n,a,i){if("string"===typeof a&&""!==a||"number"===typeof a)return l(t,e=e.get(n)||null,""+a,i);if("object"===typeof a&&null!==a){switch(a.$$typeof){case x:return c(t,e=e.get(null===a.key?n:a.key)||null,a,i);case k:return u(t,e=e.get(null===a.key?n:a.key)||null,a,i);case M:return p(e,t,n,(0,a._init)(a._payload),i)}if(te(a)||R(a))return d(t,e=e.get(n)||null,a,i,null);Qr(t,a)}return null}function m(i,r,s,l){for(var c=null,u=null,d=r,m=r=0,g=null;null!==d&&m<s.length;m++){d.index>m?(g=d,d=null):g=d.sibling;var v=f(i,d,s[m],l);if(null===v){null===d&&(d=g);break}e&&d&&null===v.alternate&&t(i,d),r=o(v,r,m),null===u?c=v:u.sibling=v,u=v,d=g}if(m===s.length)return n(i,d),ir&&Zi(i,m),c;if(null===d){for(;m<s.length;m++)null!==(d=h(i,s[m],l))&&(r=o(d,r,m),null===u?c=d:u.sibling=d,u=d);return ir&&Zi(i,m),c}for(d=a(i,d);m<s.length;m++)null!==(g=p(d,i,m,s[m],l))&&(e&&null!==g.alternate&&d.delete(null===g.key?m:g.key),r=o(g,r,m),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(i,e)})),ir&&Zi(i,m),c}function g(i,s,l,c){var u=R(l);if("function"!==typeof u)throw Error(r(150));if(null==(l=u.call(l)))throw Error(r(151));for(var d=u=null,m=s,g=s=0,v=null,y=l.next();null!==m&&!y.done;g++,y=l.next()){m.index>g?(v=m,m=null):v=m.sibling;var b=f(i,m,y.value,c);if(null===b){null===m&&(m=v);break}e&&m&&null===b.alternate&&t(i,m),s=o(b,s,g),null===d?u=b:d.sibling=b,d=b,m=v}if(y.done)return n(i,m),ir&&Zi(i,g),u;if(null===m){for(;!y.done;g++,y=l.next())null!==(y=h(i,y.value,c))&&(s=o(y,s,g),null===d?u=y:d.sibling=y,d=y);return ir&&Zi(i,g),u}for(m=a(i,m);!y.done;g++,y=l.next())null!==(y=p(m,i,g,y.value,c))&&(e&&null!==y.alternate&&m.delete(null===y.key?g:y.key),s=o(y,s,g),null===d?u=y:d.sibling=y,d=y);return e&&m.forEach((function(e){return t(i,e)})),ir&&Zi(i,g),u}return function e(a,r,o,l){if("object"===typeof o&&null!==o&&o.type===j&&null===o.key&&(o=o.props.children),"object"===typeof o&&null!==o){switch(o.$$typeof){case x:e:{for(var c=o.key,u=r;null!==u;){if(u.key===c){if((c=o.type)===j){if(7===u.tag){n(a,u.sibling),(r=i(u,o.props.children)).return=a,a=r;break e}}else if(u.elementType===c||"object"===typeof c&&null!==c&&c.$$typeof===M&&Yr(c)===u.type){n(a,u.sibling),(r=i(u,o.props)).ref=Gr(a,u,o),r.return=a,a=r;break e}n(a,u);break}t(a,u),u=u.sibling}o.type===j?((r=zc(o.props.children,a.mode,l,o.key)).return=a,a=r):((l=Rc(o.type,o.key,o.props,null,a.mode,l)).ref=Gr(a,r,o),l.return=a,a=l)}return s(a);case k:e:{for(u=o.key;null!==r;){if(r.key===u){if(4===r.tag&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(a,r.sibling),(r=i(r,o.children||[])).return=a,a=r;break e}n(a,r);break}t(a,r),r=r.sibling}(r=_c(o,a.mode,l)).return=a,a=r}return s(a);case M:return e(a,r,(u=o._init)(o._payload),l)}if(te(o))return m(a,r,o,l);if(R(o))return g(a,r,o,l);Qr(a,o)}return"string"===typeof o&&""!==o||"number"===typeof o?(o=""+o,null!==r&&6===r.tag?(n(a,r.sibling),(r=i(r,o)).return=a,a=r):(n(a,r),(r=Oc(o,a.mode,l)).return=a,a=r),s(a)):n(a,r)}}var Kr=Jr(!0),Xr=Jr(!1),Zr={},$r=Ii(Zr),eo=Ii(Zr),to=Ii(Zr);function no(e){if(e===Zr)throw Error(r(174));return e}function ao(e,t){switch(Si(to,t),Si(eo,e),Si($r,Zr),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}Ai($r),Si($r,t)}function io(){Ai($r),Ai(eo),Ai(to)}function ro(e){no(to.current);var t=no($r.current),n=le(t,e.type);t!==n&&(Si(eo,e),Si($r,n))}function oo(e){eo.current===e&&(Ai($r),Ai(eo))}var so=Ii(0);function lo(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var co=[];function uo(){for(var e=0;e<co.length;e++)co[e]._workInProgressVersionPrimary=null;co.length=0}var ho=w.ReactCurrentDispatcher,fo=w.ReactCurrentBatchConfig,po=0,mo=null,go=null,vo=null,yo=!1,bo=!1,wo=0,xo=0;function ko(){throw Error(r(321))}function jo(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sa(e[n],t[n]))return!1;return!0}function Io(e,t,n,a,i,o){if(po=o,mo=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ho.current=null===e||null===e.memoizedState?ss:ls,e=n(a,i),bo){o=0;do{if(bo=!1,wo=0,25<=o)throw Error(r(301));o+=1,vo=go=null,t.updateQueue=null,ho.current=cs,e=n(a,i)}while(bo)}if(ho.current=os,t=null!==go&&null!==go.next,po=0,vo=go=mo=null,yo=!1,t)throw Error(r(300));return e}function Ao(){var e=0!==wo;return wo=0,e}function So(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===vo?mo.memoizedState=vo=e:vo=vo.next=e,vo}function To(){if(null===go){var e=mo.alternate;e=null!==e?e.memoizedState:null}else e=go.next;var t=null===vo?mo.memoizedState:vo.next;if(null!==t)vo=t,go=e;else{if(null===e)throw Error(r(310));e={memoizedState:(go=e).memoizedState,baseState:go.baseState,baseQueue:go.baseQueue,queue:go.queue,next:null},null===vo?mo.memoizedState=vo=e:vo=vo.next=e}return vo}function Co(e,t){return"function"===typeof t?t(e):t}function No(e){var t=To(),n=t.queue;if(null===n)throw Error(r(311));n.lastRenderedReducer=e;var a=go,i=a.baseQueue,o=n.pending;if(null!==o){if(null!==i){var s=i.next;i.next=o.next,o.next=s}a.baseQueue=i=o,n.pending=null}if(null!==i){o=i.next,a=a.baseState;var l=s=null,c=null,u=o;do{var d=u.lane;if((po&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),a=u.hasEagerState?u.eagerState:e(a,u.action);else{var h={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=h,s=a):c=c.next=h,mo.lanes|=d,Dl|=d}u=u.next}while(null!==u&&u!==o);null===c?s=a:c.next=l,sa(a,t.memoizedState)||(ws=!0),t.memoizedState=a,t.baseState=s,t.baseQueue=c,n.lastRenderedState=a}if(null!==(e=n.interleaved)){i=e;do{o=i.lane,mo.lanes|=o,Dl|=o,i=i.next}while(i!==e)}else null===i&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Eo(e){var t=To(),n=t.queue;if(null===n)throw Error(r(311));n.lastRenderedReducer=e;var a=n.dispatch,i=n.pending,o=t.memoizedState;if(null!==i){n.pending=null;var s=i=i.next;do{o=e(o,s.action),s=s.next}while(s!==i);sa(o,t.memoizedState)||(ws=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,a]}function Po(){}function Mo(e,t){var n=mo,a=To(),i=t(),o=!sa(a.memoizedState,i);if(o&&(a.memoizedState=i,ws=!0),a=a.queue,Wo(Ro.bind(null,n,a,e),[e]),a.getSnapshot!==t||o||null!==vo&&1&vo.memoizedState.tag){if(n.flags|=2048,_o(9,Bo.bind(null,n,a,i,t),void 0,null),null===El)throw Error(r(349));0!==(30&po)||Lo(n,t,i)}return i}function Lo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=mo.updateQueue)?(t={lastEffect:null,stores:null},mo.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Bo(e,t,n,a){t.value=n,t.getSnapshot=a,zo(t)&&Do(e)}function Ro(e,t,n){return n((function(){zo(t)&&Do(e)}))}function zo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sa(e,n)}catch(a){return!0}}function Do(e){var t=Nr(e,1);null!==t&&ac(t,e,1,-1)}function Oo(e){var t=So();return"function"===typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Co,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,mo,e),[t.memoizedState,e]}function _o(e,t,n,a){return e={tag:e,create:t,destroy:n,deps:a,next:null},null===(t=mo.updateQueue)?(t={lastEffect:null,stores:null},mo.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e),e}function Fo(){return To().memoizedState}function Vo(e,t,n,a){var i=So();mo.flags|=e,i.memoizedState=_o(1|t,n,void 0,void 0===a?null:a)}function Ho(e,t,n,a){var i=To();a=void 0===a?null:a;var r=void 0;if(null!==go){var o=go.memoizedState;if(r=o.destroy,null!==a&&jo(a,o.deps))return void(i.memoizedState=_o(t,n,r,a))}mo.flags|=e,i.memoizedState=_o(1|t,n,r,a)}function qo(e,t){return Vo(8390656,8,e,t)}function Wo(e,t){return Ho(2048,8,e,t)}function Uo(e,t){return Ho(4,2,e,t)}function Go(e,t){return Ho(4,4,e,t)}function Qo(e,t){return"function"===typeof t?(e=e(),t(e),function(){t(null)}):null!==t&&void 0!==t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Yo(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Ho(4,4,Qo.bind(null,t,e),n)}function Jo(){}function Ko(e,t){var n=To();t=void 0===t?null:t;var a=n.memoizedState;return null!==a&&null!==t&&jo(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function Xo(e,t){var n=To();t=void 0===t?null:t;var a=n.memoizedState;return null!==a&&null!==t&&jo(t,a[1])?a[0]:(e=e(),n.memoizedState=[e,t],e)}function Zo(e,t,n){return 0===(21&po)?(e.baseState&&(e.baseState=!1,ws=!0),e.memoizedState=n):(sa(n,t)||(n=mt(),mo.lanes|=n,Dl|=n,e.baseState=!0),t)}function $o(e,t){var n=bt;bt=0!==n&&4>n?n:4,e(!0);var a=fo.transition;fo.transition={};try{e(!1),t()}finally{bt=n,fo.transition=a}}function es(){return To().memoizedState}function ts(e,t,n){var a=nc(e);if(n={lane:a,action:n,hasEagerState:!1,eagerState:null,next:null},as(e))is(t,n);else if(null!==(n=Cr(e,t,n,a))){ac(n,e,a,tc()),rs(n,t,a)}}function ns(e,t,n){var a=nc(e),i={lane:a,action:n,hasEagerState:!1,eagerState:null,next:null};if(as(e))is(t,i);else{var r=e.alternate;if(0===e.lanes&&(null===r||0===r.lanes)&&null!==(r=t.lastRenderedReducer))try{var o=t.lastRenderedState,s=r(o,n);if(i.hasEagerState=!0,i.eagerState=s,sa(s,o)){var l=t.interleaved;return null===l?(i.next=i,Tr(t)):(i.next=l.next,l.next=i),void(t.interleaved=i)}}catch(c){}null!==(n=Cr(e,t,i,a))&&(ac(n,e,a,i=tc()),rs(n,t,a))}}function as(e){var t=e.alternate;return e===mo||null!==t&&t===mo}function is(e,t){bo=yo=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function rs(e,t,n){if(0!==(4194240&n)){var a=t.lanes;n|=a&=e.pendingLanes,t.lanes=n,yt(e,n)}}var os={readContext:Ar,useCallback:ko,useContext:ko,useEffect:ko,useImperativeHandle:ko,useInsertionEffect:ko,useLayoutEffect:ko,useMemo:ko,useReducer:ko,useRef:ko,useState:ko,useDebugValue:ko,useDeferredValue:ko,useTransition:ko,useMutableSource:ko,useSyncExternalStore:ko,useId:ko,unstable_isNewReconciler:!1},ss={readContext:Ar,useCallback:function(e,t){return So().memoizedState=[e,void 0===t?null:t],e},useContext:Ar,useEffect:qo,useImperativeHandle:function(e,t,n){return n=null!==n&&void 0!==n?n.concat([e]):null,Vo(4194308,4,Qo.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Vo(4194308,4,e,t)},useInsertionEffect:function(e,t){return Vo(4,2,e,t)},useMemo:function(e,t){var n=So();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var a=So();return t=void 0!==n?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=ts.bind(null,mo,e),[a.memoizedState,e]},useRef:function(e){return e={current:e},So().memoizedState=e},useState:Oo,useDebugValue:Jo,useDeferredValue:function(e){return So().memoizedState=e},useTransition:function(){var e=Oo(!1),t=e[0];return e=$o.bind(null,e[1]),So().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var a=mo,i=So();if(ir){if(void 0===n)throw Error(r(407));n=n()}else{if(n=t(),null===El)throw Error(r(349));0!==(30&po)||Lo(a,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,qo(Ro.bind(null,a,o,e),[e]),a.flags|=2048,_o(9,Bo.bind(null,a,o,n,t),void 0,null),n},useId:function(){var e=So(),t=El.identifierPrefix;if(ir){var n=Xi;t=":"+t+"R"+(n=(Ki&~(1<<32-ot(Ki)-1)).toString(32)+n),0<(n=wo++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=xo++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:Ar,useCallback:Ko,useContext:Ar,useEffect:Wo,useImperativeHandle:Yo,useInsertionEffect:Uo,useLayoutEffect:Go,useMemo:Xo,useReducer:No,useRef:Fo,useState:function(){return No(Co)},useDebugValue:Jo,useDeferredValue:function(e){return Zo(To(),go.memoizedState,e)},useTransition:function(){return[No(Co)[0],To().memoizedState]},useMutableSource:Po,useSyncExternalStore:Mo,useId:es,unstable_isNewReconciler:!1},cs={readContext:Ar,useCallback:Ko,useContext:Ar,useEffect:Wo,useImperativeHandle:Yo,useInsertionEffect:Uo,useLayoutEffect:Go,useMemo:Xo,useReducer:Eo,useRef:Fo,useState:function(){return Eo(Co)},useDebugValue:Jo,useDeferredValue:function(e){var t=To();return null===go?t.memoizedState=e:Zo(t,go.memoizedState,e)},useTransition:function(){return[Eo(Co)[0],To().memoizedState]},useMutableSource:Po,useSyncExternalStore:Mo,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",a=t;do{n+=V(a),a=a.return}while(a);var i=n}catch(r){i="\nError generating stack: "+r.message+"\n"+r.stack}return{value:e,source:t,stack:i,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function hs(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var fs="function"===typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=Lr(-1,n)).tag=3,n.payload={element:null};var a=t.value;return n.callback=function(){Ul||(Ul=!0,Gl=a),hs(0,t)},n}function ms(e,t,n){(n=Lr(-1,n)).tag=3;var a=e.type.getDerivedStateFromError;if("function"===typeof a){var i=t.value;n.payload=function(){return a(i)},n.callback=function(){hs(0,t)}}var r=e.stateNode;return null!==r&&"function"===typeof r.componentDidCatch&&(n.callback=function(){hs(0,t),"function"!==typeof a&&(null===Ql?Ql=new Set([this]):Ql.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gs(e,t,n){var a=e.pingCache;if(null===a){a=e.pingCache=new fs;var i=new Set;a.set(t,i)}else void 0===(i=a.get(t))&&(i=new Set,a.set(t,i));i.has(n)||(i.add(n),e=Sc.bind(null,e,t,n),t.then(e,e))}function vs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function ys(e,t,n,a,i){return 0===(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Lr(-1,1)).tag=2,Br(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=i,e)}var bs=w.ReactCurrentOwner,ws=!1;function xs(e,t,n,a){t.child=null===e?Xr(t,null,n,a):Kr(t,e.child,n,a)}function ks(e,t,n,a,i){n=n.render;var r=t.ref;return Ir(t,i),a=Io(e,t,n,a,r,i),n=Ao(),null===e||ws?(ir&&n&&er(t),t.flags|=1,xs(e,t,a,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Us(e,t,i))}function js(e,t,n,a,i){if(null===e){var r=n.type;return"function"!==typeof r||Lc(r)||void 0!==r.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Rc(n.type,null,a,t,t.mode,i)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=r,Is(e,t,r,a,i))}if(r=e.child,0===(e.lanes&i)){var o=r.memoizedProps;if((n=null!==(n=n.compare)?n:la)(o,a)&&e.ref===t.ref)return Us(e,t,i)}return t.flags|=1,(e=Bc(r,a)).ref=t.ref,e.return=t,t.child=e}function Is(e,t,n,a,i){if(null!==e){var r=e.memoizedProps;if(la(r,a)&&e.ref===t.ref){if(ws=!1,t.pendingProps=a=r,0===(e.lanes&i))return t.lanes=e.lanes,Us(e,t,i);0!==(131072&e.flags)&&(ws=!0)}}return Ts(e,t,n,a,i)}function As(e,t,n){var a=t.pendingProps,i=a.children,r=null!==e?e.memoizedState:null;if("hidden"===a.mode)if(0===(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Si(Bl,Ll),Ll|=n;else{if(0===(1073741824&n))return e=null!==r?r.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Si(Bl,Ll),Ll|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},a=null!==r?r.baseLanes:n,Si(Bl,Ll),Ll|=a}else null!==r?(a=r.baseLanes|n,t.memoizedState=null):a=n,Si(Bl,Ll),Ll|=a;return xs(e,t,i,n),t.child}function Ss(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ts(e,t,n,a,i){var r=Mi(n)?Ei:Ci.current;return r=Pi(t,r),Ir(t,i),n=Io(e,t,n,a,r,i),a=Ao(),null===e||ws?(ir&&a&&er(t),t.flags|=1,xs(e,t,n,i),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,Us(e,t,i))}function Cs(e,t,n,a,i){if(Mi(n)){var r=!0;zi(t)}else r=!1;if(Ir(t,i),null===t.stateNode)Ws(e,t),qr(t,n,a),Ur(t,n,a,i),a=!0;else if(null===e){var o=t.stateNode,s=t.memoizedProps;o.props=s;var l=o.context,c=n.contextType;"object"===typeof c&&null!==c?c=Ar(c):c=Pi(t,c=Mi(n)?Ei:Ci.current);var u=n.getDerivedStateFromProps,d="function"===typeof u||"function"===typeof o.getSnapshotBeforeUpdate;d||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(s!==a||l!==c)&&Wr(t,o,a,c),Er=!1;var h=t.memoizedState;o.state=h,Dr(t,a,o,i),l=t.memoizedState,s!==a||h!==l||Ni.current||Er?("function"===typeof u&&(Fr(t,n,u,a),l=t.memoizedState),(s=Er||Hr(t,n,s,a,h,l,c))?(d||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(t.flags|=4194308)):("function"===typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=l),o.props=a,o.state=l,o.context=c,a=s):("function"===typeof o.componentDidMount&&(t.flags|=4194308),a=!1)}else{o=t.stateNode,Mr(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:gr(t.type,s),o.props=c,d=t.pendingProps,h=o.context,"object"===typeof(l=n.contextType)&&null!==l?l=Ar(l):l=Pi(t,l=Mi(n)?Ei:Ci.current);var f=n.getDerivedStateFromProps;(u="function"===typeof f||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(s!==d||h!==l)&&Wr(t,o,a,l),Er=!1,h=t.memoizedState,o.state=h,Dr(t,a,o,i);var p=t.memoizedState;s!==d||h!==p||Ni.current||Er?("function"===typeof f&&(Fr(t,n,f,a),p=t.memoizedState),(c=Er||Hr(t,n,c,a,h,p,l)||!1)?(u||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(a,p,l),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(a,p,l)),"function"===typeof o.componentDidUpdate&&(t.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!==typeof o.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=p),o.props=a,o.state=p,o.context=l,a=c):("function"!==typeof o.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),a=!1)}return Ns(e,t,n,a,r,i)}function Ns(e,t,n,a,i,r){Ss(e,t);var o=0!==(128&t.flags);if(!a&&!o)return i&&Di(t,n,!1),Us(e,t,r);a=t.stateNode,bs.current=t;var s=o&&"function"!==typeof n.getDerivedStateFromError?null:a.render();return t.flags|=1,null!==e&&o?(t.child=Kr(t,e.child,null,r),t.child=Kr(t,null,s,r)):xs(e,t,s,r),t.memoizedState=a.state,i&&Di(t,n,!0),t.child}function Es(e){var t=e.stateNode;t.pendingContext?Bi(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Bi(0,t.context,!1),ao(e,t.containerInfo)}function Ps(e,t,n,a,i){return fr(),pr(i),t.flags|=256,xs(e,t,n,a),t.child}var Ms,Ls,Bs,Rs,zs={dehydrated:null,treeContext:null,retryLane:0};function Ds(e){return{baseLanes:e,cachePool:null,transitions:null}}function Os(e,t,n){var a,i=t.pendingProps,o=so.current,s=!1,l=0!==(128&t.flags);if((a=l)||(a=(null===e||null!==e.memoizedState)&&0!==(2&o)),a?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(o|=1),Si(so,1&o),null===e)return cr(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=i.children,e=i.fallback,s?(i=t.mode,s=t.child,l={mode:"hidden",children:l},0===(1&i)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Dc(l,i,0,null),e=zc(e,i,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ds(n),t.memoizedState=zs,e):_s(t,l));if(null!==(o=e.memoizedState)&&null!==(a=o.dehydrated))return function(e,t,n,a,i,o,s){if(n)return 256&t.flags?(t.flags&=-257,Fs(e,t,s,a=ds(Error(r(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(o=a.fallback,i=t.mode,a=Dc({mode:"visible",children:a.children},i,0,null),(o=zc(o,i,s,null)).flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,0!==(1&t.mode)&&Kr(t,e.child,null,s),t.child.memoizedState=Ds(s),t.memoizedState=zs,o);if(0===(1&t.mode))return Fs(e,t,s,null);if("$!"===i.data){if(a=i.nextSibling&&i.nextSibling.dataset)var l=a.dgst;return a=l,Fs(e,t,s,a=ds(o=Error(r(419)),a,void 0))}if(l=0!==(s&e.childLanes),ws||l){if(null!==(a=El)){switch(s&-s){case 4:i=2;break;case 16:i=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:i=32;break;case 536870912:i=268435456;break;default:i=0}0!==(i=0!==(i&(a.suspendedLanes|s))?0:i)&&i!==o.retryLane&&(o.retryLane=i,Nr(e,i),ac(a,e,i,-1))}return gc(),Fs(e,t,s,a=ds(Error(r(421))))}return"$?"===i.data?(t.flags|=128,t.child=e.child,t=Cc.bind(null,e),i._reactRetry=t,null):(e=o.treeContext,ar=ci(i.nextSibling),nr=t,ir=!0,rr=null,null!==e&&(Qi[Yi++]=Ki,Qi[Yi++]=Xi,Qi[Yi++]=Ji,Ki=e.id,Xi=e.overflow,Ji=t),t=_s(t,a.children),t.flags|=4096,t)}(e,t,l,i,a,o,n);if(s){s=i.fallback,l=t.mode,a=(o=e.child).sibling;var c={mode:"hidden",children:i.children};return 0===(1&l)&&t.child!==o?((i=t.child).childLanes=0,i.pendingProps=c,t.deletions=null):(i=Bc(o,c)).subtreeFlags=14680064&o.subtreeFlags,null!==a?s=Bc(a,s):(s=zc(s,l,n,null)).flags|=2,s.return=t,i.return=t,i.sibling=s,t.child=i,i=s,s=t.child,l=null===(l=e.child.memoizedState)?Ds(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=zs,i}return e=(s=e.child).sibling,i=Bc(s,{mode:"visible",children:i.children}),0===(1&t.mode)&&(i.lanes=n),i.return=t,i.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=i,t.memoizedState=null,i}function _s(e,t){return(t=Dc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Fs(e,t,n,a){return null!==a&&pr(a),Kr(t,e.child,null,n),(e=_s(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Vs(e,t,n){e.lanes|=t;var a=e.alternate;null!==a&&(a.lanes|=t),jr(e.return,t,n)}function Hs(e,t,n,a,i){var r=e.memoizedState;null===r?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:i}:(r.isBackwards=t,r.rendering=null,r.renderingStartTime=0,r.last=a,r.tail=n,r.tailMode=i)}function qs(e,t,n){var a=t.pendingProps,i=a.revealOrder,r=a.tail;if(xs(e,t,a.children,n),0!==(2&(a=so.current)))a=1&a|2,t.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Vs(e,n,t);else if(19===e.tag)Vs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}a&=1}if(Si(so,a),0===(1&t.mode))t.memoizedState=null;else switch(i){case"forwards":for(n=t.child,i=null;null!==n;)null!==(e=n.alternate)&&null===lo(e)&&(i=n),n=n.sibling;null===(n=i)?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),Hs(t,!1,i,n,r);break;case"backwards":for(n=null,i=t.child,t.child=null;null!==i;){if(null!==(e=i.alternate)&&null===lo(e)){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}Hs(t,!0,n,null,r);break;case"together":Hs(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Ws(e,t){0===(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Us(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Dl|=t.lanes,0===(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(r(153));if(null!==t.child){for(n=Bc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Bc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gs(e,t){if(!ir)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;null!==n;)null!==n.alternate&&(a=n),n=n.sibling;null===a?t||null===e.tail?e.tail=null:e.tail.sibling=null:a.sibling=null}}function Qs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,a=0;if(t)for(var i=e.child;null!==i;)n|=i.lanes|i.childLanes,a|=14680064&i.subtreeFlags,a|=14680064&i.flags,i.return=e,i=i.sibling;else for(i=e.child;null!==i;)n|=i.lanes|i.childLanes,a|=i.subtreeFlags,a|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function Ys(e,t,n){var a=t.pendingProps;switch(tr(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Qs(t),null;case 1:case 17:return Mi(t.type)&&Li(),Qs(t),null;case 3:return a=t.stateNode,io(),Ai(Ni),Ai(Ci),uo(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),null!==e&&null!==e.child||(dr(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&t.flags)||(t.flags|=1024,null!==rr&&(sc(rr),rr=null))),Ls(e,t),Qs(t),null;case 5:oo(t);var i=no(to.current);if(n=t.type,null!==e&&null!=t.stateNode)Bs(e,t,n,a,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!a){if(null===t.stateNode)throw Error(r(166));return Qs(t),null}if(e=no($r.current),dr(t)){a=t.stateNode,n=t.type;var o=t.memoizedProps;switch(a[hi]=t,a[fi]=o,e=0!==(1&t.mode),n){case"dialog":_a("cancel",a),_a("close",a);break;case"iframe":case"object":case"embed":_a("load",a);break;case"video":case"audio":for(i=0;i<Ra.length;i++)_a(Ra[i],a);break;case"source":_a("error",a);break;case"img":case"image":case"link":_a("error",a),_a("load",a);break;case"details":_a("toggle",a);break;case"input":K(a,o),_a("invalid",a);break;case"select":a._wrapperState={wasMultiple:!!o.multiple},_a("invalid",a);break;case"textarea":ie(a,o),_a("invalid",a)}for(var l in ye(n,o),i=null,o)if(o.hasOwnProperty(l)){var c=o[l];"children"===l?"string"===typeof c?a.textContent!==c&&(!0!==o.suppressHydrationWarning&&Za(a.textContent,c,e),i=["children",c]):"number"===typeof c&&a.textContent!==""+c&&(!0!==o.suppressHydrationWarning&&Za(a.textContent,c,e),i=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&_a("scroll",a)}switch(n){case"input":G(a),$(a,o,!0);break;case"textarea":G(a),oe(a);break;case"select":case"option":break;default:"function"===typeof o.onClick&&(a.onclick=$a)}a=i,t.updateQueue=a,null!==a&&(t.flags|=4)}else{l=9===i.nodeType?i:i.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"===typeof a.is?e=l.createElement(n,{is:a.is}):(e=l.createElement(n),"select"===n&&(l=e,a.multiple?l.multiple=!0:a.size&&(l.size=a.size))):e=l.createElementNS(e,n),e[hi]=t,e[fi]=a,Ms(e,t,!1,!1),t.stateNode=e;e:{switch(l=be(n,a),n){case"dialog":_a("cancel",e),_a("close",e),i=a;break;case"iframe":case"object":case"embed":_a("load",e),i=a;break;case"video":case"audio":for(i=0;i<Ra.length;i++)_a(Ra[i],e);i=a;break;case"source":_a("error",e),i=a;break;case"img":case"image":case"link":_a("error",e),_a("load",e),i=a;break;case"details":_a("toggle",e),i=a;break;case"input":K(e,a),i=J(e,a),_a("invalid",e);break;case"option":default:i=a;break;case"select":e._wrapperState={wasMultiple:!!a.multiple},i=D({},a,{value:void 0}),_a("invalid",e);break;case"textarea":ie(e,a),i=ae(e,a),_a("invalid",e)}for(o in ye(n,i),c=i)if(c.hasOwnProperty(o)){var u=c[o];"style"===o?ge(e,u):"dangerouslySetInnerHTML"===o?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===o?"string"===typeof u?("textarea"!==n||""!==u)&&he(e,u):"number"===typeof u&&he(e,""+u):"suppressContentEditableWarning"!==o&&"suppressHydrationWarning"!==o&&"autoFocus"!==o&&(s.hasOwnProperty(o)?null!=u&&"onScroll"===o&&_a("scroll",e):null!=u&&b(e,o,u,l))}switch(n){case"input":G(e),$(e,a,!1);break;case"textarea":G(e),oe(e);break;case"option":null!=a.value&&e.setAttribute("value",""+W(a.value));break;case"select":e.multiple=!!a.multiple,null!=(o=a.value)?ne(e,!!a.multiple,o,!1):null!=a.defaultValue&&ne(e,!!a.multiple,a.defaultValue,!0);break;default:"function"===typeof i.onClick&&(e.onclick=$a)}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)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Qs(t),null;case 6:if(e&&null!=t.stateNode)Rs(e,t,e.memoizedProps,a);else{if("string"!==typeof a&&null===t.stateNode)throw Error(r(166));if(n=no(to.current),no($r.current),dr(t)){if(a=t.stateNode,n=t.memoizedProps,a[hi]=t,(o=a.nodeValue!==n)&&null!==(e=nr))switch(e.tag){case 3:Za(a.nodeValue,n,0!==(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Za(a.nodeValue,n,0!==(1&e.mode))}o&&(t.flags|=4)}else(a=(9===n.nodeType?n:n.ownerDocument).createTextNode(a))[hi]=t,t.stateNode=a}return Qs(t),null;case 13:if(Ai(so),a=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ir&&null!==ar&&0!==(1&t.mode)&&0===(128&t.flags))hr(),fr(),t.flags|=98560,o=!1;else if(o=dr(t),null!==a&&null!==a.dehydrated){if(null===e){if(!o)throw Error(r(318));if(!(o=null!==(o=t.memoizedState)?o.dehydrated:null))throw Error(r(317));o[hi]=t}else fr(),0===(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Qs(t),o=!1}else null!==rr&&(sc(rr),rr=null),o=!0;if(!o)return 65536&t.flags?t:null}return 0!==(128&t.flags)?(t.lanes=n,t):((a=null!==a)!==(null!==e&&null!==e.memoizedState)&&a&&(t.child.flags|=8192,0!==(1&t.mode)&&(null===e||0!==(1&so.current)?0===Rl&&(Rl=3):gc())),null!==t.updateQueue&&(t.flags|=4),Qs(t),null);case 4:return io(),Ls(e,t),null===e&&Ha(t.stateNode.containerInfo),Qs(t),null;case 10:return kr(t.type._context),Qs(t),null;case 19:if(Ai(so),null===(o=t.memoizedState))return Qs(t),null;if(a=0!==(128&t.flags),null===(l=o.rendering))if(a)Gs(o,!1);else{if(0!==Rl||null!==e&&0!==(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=lo(e))){for(t.flags|=128,Gs(o,!1),null!==(a=l.updateQueue)&&(t.updateQueue=a,t.flags|=4),t.subtreeFlags=0,a=n,n=t.child;null!==n;)e=a,(o=n).flags&=14680066,null===(l=o.alternate)?(o.childLanes=0,o.lanes=e,o.child=null,o.subtreeFlags=0,o.memoizedProps=null,o.memoizedState=null,o.updateQueue=null,o.dependencies=null,o.stateNode=null):(o.childLanes=l.childLanes,o.lanes=l.lanes,o.child=l.child,o.subtreeFlags=0,o.deletions=null,o.memoizedProps=l.memoizedProps,o.memoizedState=l.memoizedState,o.updateQueue=l.updateQueue,o.type=l.type,e=l.dependencies,o.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Si(so,1&so.current|2),t.child}e=e.sibling}null!==o.tail&&Xe()>ql&&(t.flags|=128,a=!0,Gs(o,!1),t.lanes=4194304)}else{if(!a)if(null!==(e=lo(l))){if(t.flags|=128,a=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gs(o,!0),null===o.tail&&"hidden"===o.tailMode&&!l.alternate&&!ir)return Qs(t),null}else 2*Xe()-o.renderingStartTime>ql&&1073741824!==n&&(t.flags|=128,a=!0,Gs(o,!1),t.lanes=4194304);o.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=o.last)?n.sibling=l:t.child=l,o.last=l)}return null!==o.tail?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=Xe(),t.sibling=null,n=so.current,Si(so,a?1&n|2:1&n),t):(Qs(t),null);case 22:case 23:return hc(),a=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==a&&(t.flags|=8192),a&&0!==(1&t.mode)?0!==(1073741824&Ll)&&(Qs(t),6&t.subtreeFlags&&(t.flags|=8192)):Qs(t),null;case 24:case 25:return null}throw Error(r(156,t.tag))}function Js(e,t){switch(tr(t),t.tag){case 1:return Mi(t.type)&&Li(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return io(),Ai(Ni),Ai(Ci),uo(),0!==(65536&(e=t.flags))&&0===(128&e)?(t.flags=-65537&e|128,t):null;case 5:return oo(t),null;case 13:if(Ai(so),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(r(340));fr()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Ai(so),null;case 4:return io(),null;case 10:return kr(t.type._context),null;case 22:case 23:return hc(),null;default:return null}}Ms=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ls=function(){},Bs=function(e,t,n,a){var i=e.memoizedProps;if(i!==a){e=t.stateNode,no($r.current);var r,o=null;switch(n){case"input":i=J(e,i),a=J(e,a),o=[];break;case"select":i=D({},i,{value:void 0}),a=D({},a,{value:void 0}),o=[];break;case"textarea":i=ae(e,i),a=ae(e,a),o=[];break;default:"function"!==typeof i.onClick&&"function"===typeof a.onClick&&(e.onclick=$a)}for(u in ye(n,a),n=null,i)if(!a.hasOwnProperty(u)&&i.hasOwnProperty(u)&&null!=i[u])if("style"===u){var l=i[u];for(r in l)l.hasOwnProperty(r)&&(n||(n={}),n[r]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?o||(o=[]):(o=o||[]).push(u,null));for(u in a){var c=a[u];if(l=null!=i?i[u]:void 0,a.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(r in l)!l.hasOwnProperty(r)||c&&c.hasOwnProperty(r)||(n||(n={}),n[r]="");for(r in c)c.hasOwnProperty(r)&&l[r]!==c[r]&&(n||(n={}),n[r]=c[r])}else n||(o||(o=[]),o.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(o=o||[]).push(u,c)):"children"===u?"string"!==typeof c&&"number"!==typeof c||(o=o||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&_a("scroll",e),o||l===c||(o=[])):(o=o||[]).push(u,c))}n&&(o=o||[]).push("style",n);var u=o;(t.updateQueue=u)&&(t.flags|=4)}},Rs=function(e,t,n,a){n!==a&&(t.flags|=4)};var Ks=!1,Xs=!1,Zs="function"===typeof WeakSet?WeakSet:Set,$s=null;function el(e,t){var n=e.ref;if(null!==n)if("function"===typeof n)try{n(null)}catch(a){Ac(e,t,a)}else n.current=null}function tl(e,t,n){try{n()}catch(a){Ac(e,t,a)}}var nl=!1;function al(e,t,n){var a=t.updateQueue;if(null!==(a=null!==a?a.lastEffect:null)){var i=a=a.next;do{if((i.tag&e)===e){var r=i.destroy;i.destroy=void 0,void 0!==r&&tl(t,n,r)}i=i.next}while(i!==a)}}function il(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect: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 rl(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"===typeof t?t(e):t.current=e}}function ol(e){var t=e.alternate;null!==t&&(e.alternate=null,ol(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[hi],delete t[fi],delete t[mi],delete t[gi],delete t[vi])),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 sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var a=e.tag;if(5===a||6===a)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!==(n=n._reactRootContainer)&&void 0!==n||null!==t.onclick||(t.onclick=$a));else if(4!==a&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}function ul(e,t,n){var a=e.tag;if(5===a||6===a)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==a&&null!==(e=e.child))for(ul(e,t,n),e=e.sibling;null!==e;)ul(e,t,n),e=e.sibling}var dl=null,hl=!1;function fl(e,t,n){for(n=n.child;null!==n;)pl(e,t,n),n=n.sibling}function pl(e,t,n){if(rt&&"function"===typeof rt.onCommitFiberUnmount)try{rt.onCommitFiberUnmount(it,n)}catch(s){}switch(n.tag){case 5:Xs||el(n,t);case 6:var a=dl,i=hl;dl=null,fl(e,t,n),hl=i,null!==(dl=a)&&(hl?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(hl?(e=dl,n=n.stateNode,8===e.nodeType?li(e.parentNode,n):1===e.nodeType&&li(e,n),Ht(e)):li(dl,n.stateNode));break;case 4:a=dl,i=hl,dl=n.stateNode.containerInfo,hl=!0,fl(e,t,n),dl=a,hl=i;break;case 0:case 11:case 14:case 15:if(!Xs&&(null!==(a=n.updateQueue)&&null!==(a=a.lastEffect))){i=a=a.next;do{var r=i,o=r.destroy;r=r.tag,void 0!==o&&(0!==(2&r)||0!==(4&r))&&tl(n,t,o),i=i.next}while(i!==a)}fl(e,t,n);break;case 1:if(!Xs&&(el(n,t),"function"===typeof(a=n.stateNode).componentWillUnmount))try{a.props=n.memoizedProps,a.state=n.memoizedState,a.componentWillUnmount()}catch(s){Ac(n,t,s)}fl(e,t,n);break;case 21:fl(e,t,n);break;case 22:1&n.mode?(Xs=(a=Xs)||null!==n.memoizedState,fl(e,t,n),Xs=a):fl(e,t,n);break;default:fl(e,t,n)}}function ml(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Zs),t.forEach((function(t){var a=Nc.bind(null,e,t);n.has(t)||(n.add(t),t.then(a,a))}))}}function gl(e,t){var n=t.deletions;if(null!==n)for(var a=0;a<n.length;a++){var i=n[a];try{var o=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:dl=l.stateNode,hl=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,hl=!0;break e}l=l.return}if(null===dl)throw Error(r(160));pl(o,s,i),dl=null,hl=!1;var c=i.alternate;null!==c&&(c.return=null),i.return=null}catch(u){Ac(i,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)vl(t,e),t=t.sibling}function vl(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gl(t,e),yl(e),4&a){try{al(3,e,e.return),il(3,e)}catch(g){Ac(e,e.return,g)}try{al(5,e,e.return)}catch(g){Ac(e,e.return,g)}}break;case 1:gl(t,e),yl(e),512&a&&null!==n&&el(n,n.return);break;case 5:if(gl(t,e),yl(e),512&a&&null!==n&&el(n,n.return),32&e.flags){var i=e.stateNode;try{he(i,"")}catch(g){Ac(e,e.return,g)}}if(4&a&&null!=(i=e.stateNode)){var o=e.memoizedProps,s=null!==n?n.memoizedProps:o,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===o.type&&null!=o.name&&X(i,o),be(l,s);var u=be(l,o);for(s=0;s<c.length;s+=2){var d=c[s],h=c[s+1];"style"===d?ge(i,h):"dangerouslySetInnerHTML"===d?de(i,h):"children"===d?he(i,h):b(i,d,h,u)}switch(l){case"input":Z(i,o);break;case"textarea":re(i,o);break;case"select":var f=i._wrapperState.wasMultiple;i._wrapperState.wasMultiple=!!o.multiple;var p=o.value;null!=p?ne(i,!!o.multiple,p,!1):f!==!!o.multiple&&(null!=o.defaultValue?ne(i,!!o.multiple,o.defaultValue,!0):ne(i,!!o.multiple,o.multiple?[]:"",!1))}i[fi]=o}catch(g){Ac(e,e.return,g)}}break;case 6:if(gl(t,e),yl(e),4&a){if(null===e.stateNode)throw Error(r(162));i=e.stateNode,o=e.memoizedProps;try{i.nodeValue=o}catch(g){Ac(e,e.return,g)}}break;case 3:if(gl(t,e),yl(e),4&a&&null!==n&&n.memoizedState.isDehydrated)try{Ht(t.containerInfo)}catch(g){Ac(e,e.return,g)}break;case 4:default:gl(t,e),yl(e);break;case 13:gl(t,e),yl(e),8192&(i=e.child).flags&&(o=null!==i.memoizedState,i.stateNode.isHidden=o,!o||null!==i.alternate&&null!==i.alternate.memoizedState||(Hl=Xe())),4&a&&ml(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Xs=(u=Xs)||d,gl(t,e),Xs=u):gl(t,e),yl(e),8192&a){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!==(1&e.mode))for($s=e,d=e.child;null!==d;){for(h=$s=d;null!==$s;){switch(p=(f=$s).child,f.tag){case 0:case 11:case 14:case 15:al(4,f,f.return);break;case 1:el(f,f.return);var m=f.stateNode;if("function"===typeof m.componentWillUnmount){a=f,n=f.return;try{t=a,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount()}catch(g){Ac(a,n,g)}}break;case 5:el(f,f.return);break;case 22:if(null!==f.memoizedState){kl(h);continue}}null!==p?(p.return=f,$s=p):kl(h)}d=d.sibling}e:for(d=null,h=e;;){if(5===h.tag){if(null===d){d=h;try{i=h.stateNode,u?"function"===typeof(o=i.style).setProperty?o.setProperty("display","none","important"):o.display="none":(l=h.stateNode,s=void 0!==(c=h.memoizedProps.style)&&null!==c&&c.hasOwnProperty("display")?c.display:null,l.style.display=me("display",s))}catch(g){Ac(e,e.return,g)}}}else if(6===h.tag){if(null===d)try{h.stateNode.nodeValue=u?"":h.memoizedProps}catch(g){Ac(e,e.return,g)}}else if((22!==h.tag&&23!==h.tag||null===h.memoizedState||h===e)&&null!==h.child){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;null===h.sibling;){if(null===h.return||h.return===e)break e;d===h&&(d=null),h=h.return}d===h&&(d=null),h.sibling.return=h.return,h=h.sibling}}break;case 19:gl(t,e),yl(e),4&a&&ml(e);case 21:}}function yl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(sl(n)){var a=n;break e}n=n.return}throw Error(r(160))}switch(a.tag){case 5:var i=a.stateNode;32&a.flags&&(he(i,""),a.flags&=-33),ul(e,ll(e),i);break;case 3:case 4:var o=a.stateNode.containerInfo;cl(e,ll(e),o);break;default:throw Error(r(161))}}catch(s){Ac(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function bl(e,t,n){$s=e,wl(e,t,n)}function wl(e,t,n){for(var a=0!==(1&e.mode);null!==$s;){var i=$s,r=i.child;if(22===i.tag&&a){var o=null!==i.memoizedState||Ks;if(!o){var s=i.alternate,l=null!==s&&null!==s.memoizedState||Xs;s=Ks;var c=Xs;if(Ks=o,(Xs=l)&&!c)for($s=i;null!==$s;)l=(o=$s).child,22===o.tag&&null!==o.memoizedState?jl(i):null!==l?(l.return=o,$s=l):jl(i);for(;null!==r;)$s=r,wl(r,t,n),r=r.sibling;$s=i,Ks=s,Xs=c}xl(e)}else 0!==(8772&i.subtreeFlags)&&null!==r?(r.return=i,$s=r):xl(e)}}function xl(e){for(;null!==$s;){var t=$s;if(0!==(8772&t.flags)){var n=t.alternate;try{if(0!==(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Xs||il(5,t);break;case 1:var a=t.stateNode;if(4&t.flags&&!Xs)if(null===n)a.componentDidMount();else{var i=t.elementType===t.type?n.memoizedProps:gr(t.type,n.memoizedProps);a.componentDidUpdate(i,n.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}var o=t.updateQueue;null!==o&&Or(t,o,a);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Or(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){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:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var h=d.dehydrated;null!==h&&Ht(h)}}}break;default:throw Error(r(163))}Xs||512&t.flags&&rl(t)}catch(f){Ac(t,t.return,f)}}if(t===e){$s=null;break}if(null!==(n=t.sibling)){n.return=t.return,$s=n;break}$s=t.return}}function kl(e){for(;null!==$s;){var t=$s;if(t===e){$s=null;break}var n=t.sibling;if(null!==n){n.return=t.return,$s=n;break}$s=t.return}}function jl(e){for(;null!==$s;){var t=$s;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{il(4,t)}catch(l){Ac(t,n,l)}break;case 1:var a=t.stateNode;if("function"===typeof a.componentDidMount){var i=t.return;try{a.componentDidMount()}catch(l){Ac(t,i,l)}}var r=t.return;try{rl(t)}catch(l){Ac(t,r,l)}break;case 5:var o=t.return;try{rl(t)}catch(l){Ac(t,o,l)}}}catch(l){Ac(t,t.return,l)}if(t===e){$s=null;break}var s=t.sibling;if(null!==s){s.return=t.return,$s=s;break}$s=t.return}}var Il,Al=Math.ceil,Sl=w.ReactCurrentDispatcher,Tl=w.ReactCurrentOwner,Cl=w.ReactCurrentBatchConfig,Nl=0,El=null,Pl=null,Ml=0,Ll=0,Bl=Ii(0),Rl=0,zl=null,Dl=0,Ol=0,_l=0,Fl=null,Vl=null,Hl=0,ql=1/0,Wl=null,Ul=!1,Gl=null,Ql=null,Yl=!1,Jl=null,Kl=0,Xl=0,Zl=null,$l=-1,ec=0;function tc(){return 0!==(6&Nl)?Xe():-1!==$l?$l:$l=Xe()}function nc(e){return 0===(1&e.mode)?1:0!==(2&Nl)&&0!==Ml?Ml&-Ml:null!==mr.transition?(0===ec&&(ec=mt()),ec):0!==(e=bt)?e:e=void 0===(e=window.event)?16:Kt(e.type)}function ac(e,t,n,a){if(50<Xl)throw Xl=0,Zl=null,Error(r(185));vt(e,n,a),0!==(2&Nl)&&e===El||(e===El&&(0===(2&Nl)&&(Ol|=n),4===Rl&&lc(e,Ml)),ic(e,a),1===n&&0===Nl&&0===(1&t.mode)&&(ql=Xe()+500,_i&&Hi()))}function ic(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,i=e.expirationTimes,r=e.pendingLanes;0<r;){var o=31-ot(r),s=1<<o,l=i[o];-1===l?0!==(s&n)&&0===(s&a)||(i[o]=ft(s,t)):l<=t&&(e.expiredLanes|=s),r&=~s}}(e,t);var a=ht(e,e===El?Ml:0);if(0===a)null!==n&&Ye(n),e.callbackNode=null,e.callbackPriority=0;else if(t=a&-a,e.callbackPriority!==t){if(null!=n&&Ye(n),1===t)0===e.tag?function(e){_i=!0,Vi(e)}(cc.bind(null,e)):Vi(cc.bind(null,e)),oi((function(){0===(6&Nl)&&Hi()})),n=null;else{switch(wt(a)){case 1:n=$e;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=at}n=Ec(n,rc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function rc(e,t){if($l=-1,ec=0,0!==(6&Nl))throw Error(r(327));var n=e.callbackNode;if(jc()&&e.callbackNode!==n)return null;var a=ht(e,e===El?Ml:0);if(0===a)return null;if(0!==(30&a)||0!==(a&e.expiredLanes)||t)t=vc(e,a);else{t=a;var i=Nl;Nl|=2;var o=mc();for(El===e&&Ml===t||(Wl=null,ql=Xe()+500,fc(e,t));;)try{bc();break}catch(l){pc(e,l)}xr(),Sl.current=o,Nl=i,null!==Pl?t=0:(El=null,Ml=0,t=Rl)}if(0!==t){if(2===t&&(0!==(i=pt(e))&&(a=i,t=oc(e,i))),1===t)throw n=zl,fc(e,0),lc(e,a),ic(e,Xe()),n;if(6===t)lc(e,a);else{if(i=e.current.alternate,0===(30&a)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var a=0;a<n.length;a++){var i=n[a],r=i.getSnapshot;i=i.value;try{if(!sa(r(),i))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(i)&&(2===(t=vc(e,a))&&(0!==(o=pt(e))&&(a=o,t=oc(e,o))),1===t))throw n=zl,fc(e,0),lc(e,a),ic(e,Xe()),n;switch(e.finishedWork=i,e.finishedLanes=a,t){case 0:case 1:throw Error(r(345));case 2:case 5:kc(e,Vl,Wl);break;case 3:if(lc(e,a),(130023424&a)===a&&10<(t=Hl+500-Xe())){if(0!==ht(e,0))break;if(((i=e.suspendedLanes)&a)!==a){tc(),e.pingedLanes|=e.suspendedLanes&i;break}e.timeoutHandle=ai(kc.bind(null,e,Vl,Wl),t);break}kc(e,Vl,Wl);break;case 4:if(lc(e,a),(4194240&a)===a)break;for(t=e.eventTimes,i=-1;0<a;){var s=31-ot(a);o=1<<s,(s=t[s])>i&&(i=s),a&=~o}if(a=i,10<(a=(120>(a=Xe()-a)?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*Al(a/1960))-a)){e.timeoutHandle=ai(kc.bind(null,e,Vl,Wl),a);break}kc(e,Vl,Wl);break;default:throw Error(r(329))}}}return ic(e,Xe()),e.callbackNode===n?rc.bind(null,e):null}function oc(e,t){var n=Fl;return e.current.memoizedState.isDehydrated&&(fc(e,t).flags|=256),2!==(e=vc(e,t))&&(t=Vl,Vl=n,null!==t&&sc(t)),e}function sc(e){null===Vl?Vl=e:Vl.push.apply(Vl,e)}function lc(e,t){for(t&=~_l,t&=~Ol,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-ot(t),a=1<<n;e[n]=-1,t&=~a}}function cc(e){if(0!==(6&Nl))throw Error(r(327));jc();var t=ht(e,0);if(0===(1&t))return ic(e,Xe()),null;var n=vc(e,t);if(0!==e.tag&&2===n){var a=pt(e);0!==a&&(t=a,n=oc(e,a))}if(1===n)throw n=zl,fc(e,0),lc(e,t),ic(e,Xe()),n;if(6===n)throw Error(r(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,kc(e,Vl,Wl),ic(e,Xe()),null}function uc(e,t){var n=Nl;Nl|=1;try{return e(t)}finally{0===(Nl=n)&&(ql=Xe()+500,_i&&Hi())}}function dc(e){null!==Jl&&0===Jl.tag&&0===(6&Nl)&&jc();var t=Nl;Nl|=1;var n=Cl.transition,a=bt;try{if(Cl.transition=null,bt=1,e)return e()}finally{bt=a,Cl.transition=n,0===(6&(Nl=t))&&Hi()}}function hc(){Ll=Bl.current,Ai(Bl)}function fc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,ii(n)),null!==Pl)for(n=Pl.return;null!==n;){var a=n;switch(tr(a),a.tag){case 1:null!==(a=a.type.childContextTypes)&&void 0!==a&&Li();break;case 3:io(),Ai(Ni),Ai(Ci),uo();break;case 5:oo(a);break;case 4:io();break;case 13:case 19:Ai(so);break;case 10:kr(a.type._context);break;case 22:case 23:hc()}n=n.return}if(El=e,Pl=e=Bc(e.current,null),Ml=Ll=t,Rl=0,zl=null,_l=Ol=Dl=0,Vl=Fl=null,null!==Sr){for(t=0;t<Sr.length;t++)if(null!==(a=(n=Sr[t]).interleaved)){n.interleaved=null;var i=a.next,r=n.pending;if(null!==r){var o=r.next;r.next=i,a.next=o}n.pending=a}Sr=null}return e}function pc(e,t){for(;;){var n=Pl;try{if(xr(),ho.current=os,yo){for(var a=mo.memoizedState;null!==a;){var i=a.queue;null!==i&&(i.pending=null),a=a.next}yo=!1}if(po=0,vo=go=mo=null,bo=!1,wo=0,Tl.current=null,null===n||null===n.return){Rl=1,zl=t,Pl=null;break}e:{var o=e,s=n.return,l=n,c=t;if(t=Ml,l.flags|=32768,null!==c&&"object"===typeof c&&"function"===typeof c.then){var u=c,d=l,h=d.tag;if(0===(1&d.mode)&&(0===h||11===h||15===h)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var p=vs(s);if(null!==p){p.flags&=-257,ys(p,s,l,0,t),1&p.mode&&gs(o,u,t),c=u;var m=(t=p).updateQueue;if(null===m){var g=new Set;g.add(c),t.updateQueue=g}else m.add(c);break e}if(0===(1&t)){gs(o,u,t),gc();break e}c=Error(r(426))}else if(ir&&1&l.mode){var v=vs(s);if(null!==v){0===(65536&v.flags)&&(v.flags|=256),ys(v,s,l,0,t),pr(us(c,l));break e}}o=c=us(c,l),4!==Rl&&(Rl=2),null===Fl?Fl=[o]:Fl.push(o),o=s;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t,zr(o,ps(0,c,t));break e;case 1:l=c;var y=o.type,b=o.stateNode;if(0===(128&o.flags)&&("function"===typeof y.getDerivedStateFromError||null!==b&&"function"===typeof b.componentDidCatch&&(null===Ql||!Ql.has(b)))){o.flags|=65536,t&=-t,o.lanes|=t,zr(o,ms(o,l,t));break e}}o=o.return}while(null!==o)}xc(n)}catch(w){t=w,Pl===n&&null!==n&&(Pl=n=n.return);continue}break}}function mc(){var e=Sl.current;return Sl.current=os,null===e?os:e}function gc(){0!==Rl&&3!==Rl&&2!==Rl||(Rl=4),null===El||0===(268435455&Dl)&&0===(268435455&Ol)||lc(El,Ml)}function vc(e,t){var n=Nl;Nl|=2;var a=mc();for(El===e&&Ml===t||(Wl=null,fc(e,t));;)try{yc();break}catch(i){pc(e,i)}if(xr(),Nl=n,Sl.current=a,null!==Pl)throw Error(r(261));return El=null,Ml=0,Rl}function yc(){for(;null!==Pl;)wc(Pl)}function bc(){for(;null!==Pl&&!Je();)wc(Pl)}function wc(e){var t=Il(e.alternate,e,Ll);e.memoizedProps=e.pendingProps,null===t?xc(e):Pl=t,Tl.current=null}function xc(e){var t=e;do{var n=t.alternate;if(e=t.return,0===(32768&t.flags)){if(null!==(n=Ys(n,t,Ll)))return void(Pl=n)}else{if(null!==(n=Js(n,t)))return n.flags&=32767,void(Pl=n);if(null===e)return Rl=6,void(Pl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Pl=t);Pl=t=e}while(null!==t);0===Rl&&(Rl=5)}function kc(e,t,n){var a=bt,i=Cl.transition;try{Cl.transition=null,bt=1,function(e,t,n,a){do{jc()}while(null!==Jl);if(0!==(6&Nl))throw Error(r(327));n=e.finishedWork;var i=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(r(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if(function(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 i=31-ot(n),r=1<<i;t[i]=0,a[i]=-1,e[i]=-1,n&=~r}}(e,o),e===El&&(Pl=El=null,Ml=0),0===(2064&n.subtreeFlags)&&0===(2064&n.flags)||Yl||(Yl=!0,Ec(tt,(function(){return jc(),null}))),o=0!==(15990&n.flags),0!==(15990&n.subtreeFlags)||o){o=Cl.transition,Cl.transition=null;var s=bt;bt=1;var l=Nl;Nl|=4,Tl.current=null,function(e,t){if(ei=Wt,fa(e=ha())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var a=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(a&&0!==a.rangeCount){n=a.anchorNode;var i=a.anchorOffset,o=a.focusNode;a=a.focusOffset;try{n.nodeType,o.nodeType}catch(x){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,h=e,f=null;t:for(;;){for(var p;h!==n||0!==i&&3!==h.nodeType||(l=s+i),h!==o||0!==a&&3!==h.nodeType||(c=s+a),3===h.nodeType&&(s+=h.nodeValue.length),null!==(p=h.firstChild);)f=h,h=p;for(;;){if(h===e)break t;if(f===n&&++u===i&&(l=s),f===o&&++d===a&&(c=s),null!==(p=h.nextSibling))break;f=(h=f).parentNode}h=p}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ti={focusedElem:e,selectionRange:n},Wt=!1,$s=t;null!==$s;)if(e=(t=$s).child,0!==(1028&t.subtreeFlags)&&null!==e)e.return=t,$s=e;else for(;null!==$s;){t=$s;try{var m=t.alternate;if(0!==(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==m){var g=m.memoizedProps,v=m.memoizedState,y=t.stateNode,b=y.getSnapshotBeforeUpdate(t.elementType===t.type?g:gr(t.type,g),v);y.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(r(163))}}catch(x){Ac(t,t.return,x)}if(null!==(e=t.sibling)){e.return=t.return,$s=e;break}$s=t.return}m=nl,nl=!1}(e,n),vl(n,e),pa(ti),Wt=!!ei,ti=ei=null,e.current=n,bl(n,e,i),Ke(),Nl=l,bt=s,Cl.transition=o}else e.current=n;if(Yl&&(Yl=!1,Jl=e,Kl=i),o=e.pendingLanes,0===o&&(Ql=null),function(e){if(rt&&"function"===typeof rt.onCommitFiberRoot)try{rt.onCommitFiberRoot(it,e,void 0,128===(128&e.current.flags))}catch(t){}}(n.stateNode),ic(e,Xe()),null!==t)for(a=e.onRecoverableError,n=0;n<t.length;n++)i=t[n],a(i.value,{componentStack:i.stack,digest:i.digest});if(Ul)throw Ul=!1,e=Gl,Gl=null,e;0!==(1&Kl)&&0!==e.tag&&jc(),o=e.pendingLanes,0!==(1&o)?e===Zl?Xl++:(Xl=0,Zl=e):Xl=0,Hi()}(e,t,n,a)}finally{Cl.transition=i,bt=a}return null}function jc(){if(null!==Jl){var e=wt(Kl),t=Cl.transition,n=bt;try{if(Cl.transition=null,bt=16>e?16:e,null===Jl)var a=!1;else{if(e=Jl,Jl=null,Kl=0,0!==(6&Nl))throw Error(r(331));var i=Nl;for(Nl|=4,$s=e.current;null!==$s;){var o=$s,s=o.child;if(0!==(16&$s.flags)){var l=o.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for($s=u;null!==$s;){var d=$s;switch(d.tag){case 0:case 11:case 15:al(8,d,o)}var h=d.child;if(null!==h)h.return=d,$s=h;else for(;null!==$s;){var f=(d=$s).sibling,p=d.return;if(ol(d),d===u){$s=null;break}if(null!==f){f.return=p,$s=f;break}$s=p}}}var m=o.alternate;if(null!==m){var g=m.child;if(null!==g){m.child=null;do{var v=g.sibling;g.sibling=null,g=v}while(null!==g)}}$s=o}}if(0!==(2064&o.subtreeFlags)&&null!==s)s.return=o,$s=s;else e:for(;null!==$s;){if(0!==(2048&(o=$s).flags))switch(o.tag){case 0:case 11:case 15:al(9,o,o.return)}var y=o.sibling;if(null!==y){y.return=o.return,$s=y;break e}$s=o.return}}var b=e.current;for($s=b;null!==$s;){var w=(s=$s).child;if(0!==(2064&s.subtreeFlags)&&null!==w)w.return=s,$s=w;else e:for(s=b;null!==$s;){if(0!==(2048&(l=$s).flags))try{switch(l.tag){case 0:case 11:case 15:il(9,l)}}catch(k){Ac(l,l.return,k)}if(l===s){$s=null;break e}var x=l.sibling;if(null!==x){x.return=l.return,$s=x;break e}$s=l.return}}if(Nl=i,Hi(),rt&&"function"===typeof rt.onPostCommitFiberRoot)try{rt.onPostCommitFiberRoot(it,e)}catch(k){}a=!0}return a}finally{bt=n,Cl.transition=t}}return!1}function Ic(e,t,n){e=Br(e,t=ps(0,t=us(n,t),1),1),t=tc(),null!==e&&(vt(e,1,t),ic(e,t))}function Ac(e,t,n){if(3===e.tag)Ic(e,e,n);else for(;null!==t;){if(3===t.tag){Ic(t,e,n);break}if(1===t.tag){var a=t.stateNode;if("function"===typeof t.type.getDerivedStateFromError||"function"===typeof a.componentDidCatch&&(null===Ql||!Ql.has(a))){t=Br(t,e=ms(t,e=us(n,e),1),1),e=tc(),null!==t&&(vt(t,1,e),ic(t,e));break}}t=t.return}}function Sc(e,t,n){var a=e.pingCache;null!==a&&a.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,El===e&&(Ml&n)===n&&(4===Rl||3===Rl&&(130023424&Ml)===Ml&&500>Xe()-Hl?fc(e,0):_l|=n),ic(e,t)}function Tc(e,t){0===t&&(0===(1&e.mode)?t=1:(t=ut,0===(130023424&(ut<<=1))&&(ut=4194304)));var n=tc();null!==(e=Nr(e,t))&&(vt(e,t,n),ic(e,n))}function Cc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function Nc(e,t){var n=0;switch(e.tag){case 13:var a=e.stateNode,i=e.memoizedState;null!==i&&(n=i.retryLane);break;case 19:a=e.stateNode;break;default:throw Error(r(314))}null!==a&&a.delete(t),Tc(e,n)}function Ec(e,t){return Qe(e,t)}function Pc(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=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 Mc(e,t,n,a){return new Pc(e,t,n,a)}function Lc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Bc(e,t){var n=e.alternate;return null===n?((n=Mc(e.tag,t,e.key,e.mode)).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=14680064&e.flags,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=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Rc(e,t,n,a,i,o){var s=2;if(a=e,"function"===typeof e)Lc(e)&&(s=1);else if("string"===typeof e)s=5;else e:switch(e){case j:return zc(n.children,i,o,t);case I:s=8,i|=8;break;case A:return(e=Mc(12,n,t,2|i)).elementType=A,e.lanes=o,e;case N:return(e=Mc(13,n,t,i)).elementType=N,e.lanes=o,e;case E:return(e=Mc(19,n,t,i)).elementType=E,e.lanes=o,e;case L:return Dc(n,i,o,t);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case S:s=10;break e;case T:s=9;break e;case C:s=11;break e;case P:s=14;break e;case M:s=16,a=null;break e}throw Error(r(130,null==e?e:typeof e,""))}return(t=Mc(s,n,t,i)).elementType=e,t.type=a,t.lanes=o,t}function zc(e,t,n,a){return(e=Mc(7,e,a,t)).lanes=n,e}function Dc(e,t,n,a){return(e=Mc(22,e,a,t)).elementType=L,e.lanes=n,e.stateNode={isHidden:!1},e}function Oc(e,t,n){return(e=Mc(6,e,null,t)).lanes=n,e}function _c(e,t,n){return(t=Mc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Fc(e,t,n,a,i){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=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=a,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function Vc(e,t,n,a,i,r,o,s,l){return e=new Fc(e,t,n,s,l),1===t?(t=1,!0===r&&(t|=8)):t=0,r=Mc(3,null,null,t),e.current=r,r.stateNode=e,r.memoizedState={element:a,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Pr(r),e}function Hc(e){if(!e)return Ti;e:{if(He(e=e._reactInternals)!==e||1!==e.tag)throw Error(r(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Mi(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(r(171))}if(1===e.tag){var n=e.type;if(Mi(n))return Ri(e,n,t)}return t}function qc(e,t,n,a,i,r,o,s,l){return(e=Vc(n,a,!0,e,0,r,0,s,l)).context=Hc(null),n=e.current,(r=Lr(a=tc(),i=nc(n))).callback=void 0!==t&&null!==t?t:null,Br(n,r,i),e.current.lanes=i,vt(e,i,a),ic(e,a),e}function Wc(e,t,n,a){var i=t.current,r=tc(),o=nc(i);return n=Hc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Lr(r,o)).payload={element:e},null!==(a=void 0===a?null:a)&&(t.callback=a),null!==(e=Br(i,t,o))&&(ac(e,i,o,r),Rr(e,i,o)),o}function Uc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Qc(e,t){Gc(e,t),(e=e.alternate)&&Gc(e,t)}Il=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Ni.current)ws=!0;else{if(0===(e.lanes&n)&&0===(128&t.flags))return ws=!1,function(e,t,n){switch(t.tag){case 3:Es(t),fr();break;case 5:ro(t);break;case 1:Mi(t.type)&&zi(t);break;case 4:ao(t,t.stateNode.containerInfo);break;case 10:var a=t.type._context,i=t.memoizedProps.value;Si(vr,a._currentValue),a._currentValue=i;break;case 13:if(null!==(a=t.memoizedState))return null!==a.dehydrated?(Si(so,1&so.current),t.flags|=128,null):0!==(n&t.child.childLanes)?Os(e,t,n):(Si(so,1&so.current),null!==(e=Us(e,t,n))?e.sibling:null);Si(so,1&so.current);break;case 19:if(a=0!==(n&t.childLanes),0!==(128&e.flags)){if(a)return qs(e,t,n);t.flags|=128}if(null!==(i=t.memoizedState)&&(i.rendering=null,i.tail=null,i.lastEffect=null),Si(so,so.current),a)break;return null;case 22:case 23:return t.lanes=0,As(e,t,n)}return Us(e,t,n)}(e,t,n);ws=0!==(131072&e.flags)}else ws=!1,ir&&0!==(1048576&t.flags)&&$i(t,Gi,t.index);switch(t.lanes=0,t.tag){case 2:var a=t.type;Ws(e,t),e=t.pendingProps;var i=Pi(t,Ci.current);Ir(t,n),i=Io(null,t,a,e,i,n);var o=Ao();return t.flags|=1,"object"===typeof i&&null!==i&&"function"===typeof i.render&&void 0===i.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Mi(a)?(o=!0,zi(t)):o=!1,t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,Pr(t),i.updater=Vr,t.stateNode=i,i._reactInternals=t,Ur(t,a,e,n),t=Ns(null,t,a,!0,o,n)):(t.tag=0,ir&&o&&er(t),xs(null,t,i,n),t=t.child),t;case 16:a=t.elementType;e:{switch(Ws(e,t),e=t.pendingProps,a=(i=a._init)(a._payload),t.type=a,i=t.tag=function(e){if("function"===typeof e)return Lc(e)?1:0;if(void 0!==e&&null!==e){if((e=e.$$typeof)===C)return 11;if(e===P)return 14}return 2}(a),e=gr(a,e),i){case 0:t=Ts(null,t,a,e,n);break e;case 1:t=Cs(null,t,a,e,n);break e;case 11:t=ks(null,t,a,e,n);break e;case 14:t=js(null,t,a,gr(a.type,e),n);break e}throw Error(r(306,a,""))}return t;case 0:return a=t.type,i=t.pendingProps,Ts(e,t,a,i=t.elementType===a?i:gr(a,i),n);case 1:return a=t.type,i=t.pendingProps,Cs(e,t,a,i=t.elementType===a?i:gr(a,i),n);case 3:e:{if(Es(t),null===e)throw Error(r(387));a=t.pendingProps,i=(o=t.memoizedState).element,Mr(e,t),Dr(t,a,null,n);var s=t.memoizedState;if(a=s.element,o.isDehydrated){if(o={element:a,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=Ps(e,t,a,n,i=us(Error(r(423)),t));break e}if(a!==i){t=Ps(e,t,a,n,i=us(Error(r(424)),t));break e}for(ar=ci(t.stateNode.containerInfo.firstChild),nr=t,ir=!0,rr=null,n=Xr(t,null,a,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(fr(),a===i){t=Us(e,t,n);break e}xs(e,t,a,n)}t=t.child}return t;case 5:return ro(t),null===e&&cr(t),a=t.type,i=t.pendingProps,o=null!==e?e.memoizedProps:null,s=i.children,ni(a,i)?s=null:null!==o&&ni(a,o)&&(t.flags|=32),Ss(e,t),xs(e,t,s,n),t.child;case 6:return null===e&&cr(t),null;case 13:return Os(e,t,n);case 4:return ao(t,t.stateNode.containerInfo),a=t.pendingProps,null===e?t.child=Kr(t,null,a,n):xs(e,t,a,n),t.child;case 11:return a=t.type,i=t.pendingProps,ks(e,t,a,i=t.elementType===a?i:gr(a,i),n);case 7:return xs(e,t,t.pendingProps,n),t.child;case 8:case 12:return xs(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(a=t.type._context,i=t.pendingProps,o=t.memoizedProps,s=i.value,Si(vr,a._currentValue),a._currentValue=s,null!==o)if(sa(o.value,s)){if(o.children===i.children&&!Ni.current){t=Us(e,t,n);break e}}else for(null!==(o=t.child)&&(o.return=t);null!==o;){var l=o.dependencies;if(null!==l){s=o.child;for(var c=l.firstContext;null!==c;){if(c.context===a){if(1===o.tag){(c=Lr(-1,n&-n)).tag=2;var u=o.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}o.lanes|=n,null!==(c=o.alternate)&&(c.lanes|=n),jr(o.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===o.tag)s=o.type===t.type?null:o.child;else if(18===o.tag){if(null===(s=o.return))throw Error(r(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),jr(s,n,t),s=o.sibling}else s=o.child;if(null!==s)s.return=o;else for(s=o;null!==s;){if(s===t){s=null;break}if(null!==(o=s.sibling)){o.return=s.return,s=o;break}s=s.return}o=s}xs(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,a=t.pendingProps.children,Ir(t,n),a=a(i=Ar(i)),t.flags|=1,xs(e,t,a,n),t.child;case 14:return i=gr(a=t.type,t.pendingProps),js(e,t,a,i=gr(a.type,i),n);case 15:return Is(e,t,t.type,t.pendingProps,n);case 17:return a=t.type,i=t.pendingProps,i=t.elementType===a?i:gr(a,i),Ws(e,t),t.tag=1,Mi(a)?(e=!0,zi(t)):e=!1,Ir(t,n),qr(t,a,i),Ur(t,a,i,n),Ns(null,t,a,!0,e,n);case 19:return qs(e,t,n);case 22:return As(e,t,n)}throw Error(r(156,t.tag))};var Yc="function"===typeof reportError?reportError:function(e){console.error(e)};function Jc(e){this._internalRoot=e}function Kc(e){this._internalRoot=e}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Zc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function $c(){}function eu(e,t,n,a,i){var r=n._reactRootContainer;if(r){var o=r;if("function"===typeof i){var s=i;i=function(){var e=Uc(o);s.call(e)}}Wc(t,o,e,i)}else o=function(e,t,n,a,i){if(i){if("function"===typeof a){var r=a;a=function(){var e=Uc(o);r.call(e)}}var o=qc(t,a,e,0,null,!1,0,"",$c);return e._reactRootContainer=o,e[pi]=o.current,Ha(8===e.nodeType?e.parentNode:e),dc(),o}for(;i=e.lastChild;)e.removeChild(i);if("function"===typeof a){var s=a;a=function(){var e=Uc(l);s.call(e)}}var l=Vc(e,0,!1,null,0,!1,0,"",$c);return e._reactRootContainer=l,e[pi]=l.current,Ha(8===e.nodeType?e.parentNode:e),dc((function(){Wc(t,l,n,a)})),l}(n,t,e,i,a);return Uc(o)}Kc.prototype.render=Jc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(r(409));Wc(e,t,null,null)},Kc.prototype.unmount=Jc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dc((function(){Wc(null,e,null,null)})),t[pi]=null}},Kc.prototype.unstable_scheduleHydration=function(e){if(e){var t=It();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Lt.length&&0!==t&&t<Lt[n].priority;n++);Lt.splice(n,0,e),0===n&&Dt(e)}},xt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(yt(t,1|n),ic(t,Xe()),0===(6&Nl)&&(ql=Xe()+500,Hi()))}break;case 13:dc((function(){var t=Nr(e,1);if(null!==t){var n=tc();ac(t,e,1,n)}})),Qc(e,1)}},kt=function(e){if(13===e.tag){var t=Nr(e,134217728);if(null!==t)ac(t,e,134217728,tc());Qc(e,134217728)}},jt=function(e){if(13===e.tag){var t=nc(e),n=Nr(e,t);if(null!==n)ac(n,e,t,tc());Qc(e,t)}},It=function(){return bt},At=function(e,t){var n=bt;try{return bt=e,t()}finally{bt=n}},ke=function(e,t,n){switch(t){case"input":if(Z(e,n),t=n.name,"radio"===n.type&&null!=t){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 i=xi(a);if(!i)throw Error(r(90));Q(a),Z(a,i)}}}break;case"textarea":re(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Ce=uc,Ne=dc;var tu={usingClientEntryPoint:!1,Events:[bi,wi,xi,Se,Te,uc]},nu={findFiberByHostInstance:yi,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},au={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ue(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var iu=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!iu.isDisabled&&iu.supportsFiber)try{it=iu.inject(au),rt=iu}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Xc(t))throw Error(r(200));return function(e,t,n){var a=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:k,key:null==a?null:""+a,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Xc(e))throw Error(r(299));var n=!1,a="",i=Yc;return null!==t&&void 0!==t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(a=t.identifierPrefix),void 0!==t.onRecoverableError&&(i=t.onRecoverableError)),t=Vc(e,1,!1,null,0,n,0,a,i),e[pi]=t.current,Ha(8===e.nodeType?e.parentNode:e),new Jc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"===typeof e.render)throw Error(r(188));throw e=Object.keys(e).join(","),Error(r(268,e))}return e=null===(e=Ue(t))?null:e.stateNode},t.flushSync=function(e){return dc(e)},t.hydrate=function(e,t,n){if(!Zc(t))throw Error(r(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Xc(e))throw Error(r(405));var a=null!=n&&n.hydratedSources||null,i=!1,o="",s=Yc;if(null!==n&&void 0!==n&&(!0===n.unstable_strictMode&&(i=!0),void 0!==n.identifierPrefix&&(o=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=qc(t,null,e,1,null!=n?n:null,i,0,o,s),e[pi]=t.current,Ha(e),a)for(e=0;e<a.length;e++)i=(i=(n=a[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,i]:t.mutableSourceEagerHydrationData.push(n,i);return new Kc(t)},t.render=function(e,t,n){if(!Zc(t))throw Error(r(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Zc(e))throw Error(r(40));return!!e._reactRootContainer&&(dc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[pi]=null}))})),!0)},t.unstable_batchedUpdates=uc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,a){if(!Zc(n))throw Error(r(200));if(null==e||void 0===e._reactInternals)throw Error(r(38));return eu(e,t,n,!1,a)},t.version="18.2.0-next-9e3b772b8-20220608"},250:(e,t,n)=>{"use strict";var a=n(164);t.createRoot=a.createRoot,t.hydrateRoot=a.hydrateRoot},164:(e,t,n)=>{"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(463)},374:(e,t,n)=>{"use strict";var a=n(791),i=Symbol.for("react.element"),r=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,s=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var a,r={},c=null,u=null;for(a in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)o.call(t,a)&&!l.hasOwnProperty(a)&&(r[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps)void 0===r[a]&&(r[a]=t[a]);return{$$typeof:i,type:e,key:c,ref:u,props:r,_owner:s.current}}t.Fragment=r,t.jsx=c,t.jsxs=c},117:(e,t)=>{"use strict";var n=Symbol.for("react.element"),a=Symbol.for("react.portal"),i=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),f=Symbol.iterator;var p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function v(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||p}function y(){}function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||p}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if("object"!==typeof e&&"function"!==typeof e&&null!=e)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")},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},y.prototype=v.prototype;var w=b.prototype=new y;w.constructor=b,m(w,v.prototype),w.isPureReactComponent=!0;var x=Array.isArray,k=Object.prototype.hasOwnProperty,j={current:null},I={key:!0,ref:!0,__self:!0,__source:!0};function A(e,t,a){var i,r={},o=null,s=null;if(null!=t)for(i in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(o=""+t.key),t)k.call(t,i)&&!I.hasOwnProperty(i)&&(r[i]=t[i]);var l=arguments.length-2;if(1===l)r.children=a;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];r.children=c}if(e&&e.defaultProps)for(i in l=e.defaultProps)void 0===r[i]&&(r[i]=l[i]);return{$$typeof:n,type:e,key:o,ref:s,props:r,_owner:j.current}}function S(e){return"object"===typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function C(e,t){return"object"===typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function N(e,t,i,r,o){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case a:l=!0}}if(l)return o=o(l=e),e=""===r?"."+C(l,0):r,x(o)?(i="",null!=e&&(i=e.replace(T,"$&/")+"/"),N(o,t,i,"",(function(e){return e}))):null!=o&&(S(o)&&(o=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(o,i+(!o.key||l&&l.key===o.key?"":(""+o.key).replace(T,"$&/")+"/")+e)),t.push(o)),1;if(l=0,r=""===r?".":r+":",x(e))for(var c=0;c<e.length;c++){var u=r+C(s=e[c],c);l+=N(s,t,i,u,o)}else if(u=function(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"===typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=N(s=s.value,t,i,u=r+C(s,c++),o);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function E(e,t,n){if(null==e)return e;var a=[],i=0;return N(e,a,"","",(function(e){return t.call(n,e,i++)})),a}function P(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var M={current:null},L={transition:null},B={ReactCurrentDispatcher:M,ReactCurrentBatchConfig:L,ReactCurrentOwner:j};t.Children={map:E,forEach:function(e,t,n){E(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return E(e,(function(){t++})),t},toArray:function(e){return E(e,(function(e){return e}))||[]},only:function(e){if(!S(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=v,t.Fragment=i,t.Profiler=o,t.PureComponent=b,t.StrictMode=r,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=B,t.cloneElement=function(e,t,a){if(null===e||void 0===e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var i=m({},e.props),r=e.key,o=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(o=t.ref,s=j.current),void 0!==t.key&&(r=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)k.call(t,c)&&!I.hasOwnProperty(c)&&(i[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)i.children=a;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];i.children=l}return{$$typeof:n,type:e.type,key:r,ref:o,props:i,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=A,t.createFactory=function(e){var t=A.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=S,t.lazy=function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=L.transition;L.transition={};try{e()}finally{L.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return M.current.useCallback(e,t)},t.useContext=function(e){return M.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return M.current.useDeferredValue(e)},t.useEffect=function(e,t){return M.current.useEffect(e,t)},t.useId=function(){return M.current.useId()},t.useImperativeHandle=function(e,t,n){return M.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return M.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return M.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return M.current.useMemo(e,t)},t.useReducer=function(e,t,n){return M.current.useReducer(e,t,n)},t.useRef=function(e){return M.current.useRef(e)},t.useState=function(e){return M.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return M.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return M.current.useTransition()},t.version="18.2.0"},791:(e,t,n)=>{"use strict";e.exports=n(117)},184:(e,t,n)=>{"use strict";e.exports=n(374)},813:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var a=n-1>>>1,i=e[a];if(!(0<r(i,t)))break e;e[a]=t,e[n]=i,n=a}}function a(e){return 0===e.length?null:e[0]}function i(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var a=0,i=e.length,o=i>>>1;a<o;){var s=2*(a+1)-1,l=e[s],c=s+1,u=e[c];if(0>r(l,n))c<i&&0>r(u,l)?(e[a]=u,e[c]=n,a=c):(e[a]=l,e[s]=n,a=s);else{if(!(c<i&&0>r(u,n)))break e;e[a]=u,e[c]=n,a=c}}}return t}function r(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"===typeof performance&&"function"===typeof performance.now){var o=performance;t.unstable_now=function(){return o.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,h=null,f=3,p=!1,m=!1,g=!1,v="function"===typeof setTimeout?setTimeout:null,y="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;function w(e){for(var t=a(u);null!==t;){if(null===t.callback)i(u);else{if(!(t.startTime<=e))break;i(u),t.sortIndex=t.expirationTime,n(c,t)}t=a(u)}}function x(e){if(g=!1,w(e),!m)if(null!==a(c))m=!0,L(k);else{var t=a(u);null!==t&&B(x,t.startTime-e)}}function k(e,n){m=!1,g&&(g=!1,y(S),S=-1),p=!0;var r=f;try{for(w(n),h=a(c);null!==h&&(!(h.expirationTime>n)||e&&!N());){var o=h.callback;if("function"===typeof o){h.callback=null,f=h.priorityLevel;var s=o(h.expirationTime<=n);n=t.unstable_now(),"function"===typeof s?h.callback=s:h===a(c)&&i(c),w(n)}else i(c);h=a(c)}if(null!==h)var l=!0;else{var d=a(u);null!==d&&B(x,d.startTime-n),l=!1}return l}finally{h=null,f=r,p=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var j,I=!1,A=null,S=-1,T=5,C=-1;function N(){return!(t.unstable_now()-C<T)}function E(){if(null!==A){var e=t.unstable_now();C=e;var n=!0;try{n=A(!0,e)}finally{n?j():(I=!1,A=null)}}else I=!1}if("function"===typeof b)j=function(){b(E)};else if("undefined"!==typeof MessageChannel){var P=new MessageChannel,M=P.port2;P.port1.onmessage=E,j=function(){M.postMessage(null)}}else j=function(){v(E,0)};function L(e){A=e,I||(I=!0,j())}function B(e,n){S=v((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){m||p||(m=!0,L(k))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return a(c)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,i,r){var o=t.unstable_now();switch("object"===typeof r&&null!==r?r="number"===typeof(r=r.delay)&&0<r?o+r:o:r=o,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:i,priorityLevel:e,startTime:r,expirationTime:s=r+s,sortIndex:-1},r>o?(e.sortIndex=r,n(u,e),null===a(c)&&e===a(u)&&(g?(y(S),S=-1):g=!0,B(x,r-o))):(e.sortIndex=s,n(c,e),m||p||(m=!0,L(k))),e},t.unstable_shouldYield=N,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},296:(e,t,n)=>{"use strict";e.exports=n(813)},613:e=>{e.exports=function(e,t,n,a){var i=n?n.call(a,e,t):void 0;if(void 0!==i)return!!i;if(e===t)return!0;if("object"!==typeof e||!e||"object"!==typeof t||!t)return!1;var r=Object.keys(e),o=Object.keys(t);if(r.length!==o.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<r.length;l++){var c=r[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(i=n?n.call(a,u,d,c):void 0)||void 0===i&&u!==d)return!1}return!0}}},t={};function n(a){var i=t[a];if(void 0!==i)return i.exports;var r=t[a]={exports:{}};return e[a](r,r.exports,n),r.exports}n.m=e,(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;n.t=function(a,i){if(1&i&&(a=this(a)),8&i)return a;if("object"===typeof a&&a){if(4&i&&a.__esModule)return a;if(16&i&&"function"===typeof a.then)return a}var r=Object.create(null);n.r(r);var o={};e=e||[null,t({}),t([]),t(t)];for(var s=2&i&&a;"object"==typeof s&&!~e.indexOf(s);s=t(s))Object.getOwnPropertyNames(s).forEach((e=>o[e]=()=>a[e]));return o.default=()=>a,n.d(r,o),r}})(),n.d=(e,t)=>{for(var a in t)n.o(t,a)&&!n.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},n.f={},n.e=e=>Promise.all(Object.keys(n.f).reduce(((t,a)=>(n.f[a](e,t),t)),[])),n.u=e=>"static/js/"+e+".3c7dd3d1.chunk.js",n.miniCssF=e=>{},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="verifai-web:";n.l=(a,i,r,o)=>{if(e[a])e[a].push(i);else{var s,l;if(void 0!==r)for(var c=document.getElementsByTagName("script"),u=0;u<c.length;u++){var d=c[u];if(d.getAttribute("src")==a||d.getAttribute("data-webpack")==t+r){s=d;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,n.nc&&s.setAttribute("nonce",n.nc),s.setAttribute("data-webpack",t+r),s.src=a),e[a]=[i];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(f);var i=e[a];if(delete e[a],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},f=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),l&&document.head.appendChild(s)}}})(),n.r=e=>{"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.p="/",(()=>{var e={179:0};n.f.j=(t,a)=>{var i=n.o(e,t)?e[t]:void 0;if(0!==i)if(i)a.push(i[2]);else{var r=new Promise(((n,a)=>i=e[t]=[n,a]));a.push(i[2]=r);var o=n.p+n.u(t),s=new Error;n.l(o,(a=>{if(n.o(e,t)&&(0!==(i=e[t])&&(e[t]=void 0),i)){var r=a&&("load"===a.type?"missing":a.type),o=a&&a.target&&a.target.src;s.message="Loading chunk "+t+" failed.\n("+r+": "+o+")",s.name="ChunkLoadError",s.type=r,s.request=o,i[1](s)}}),"chunk-"+t,t)}};var t=(t,a)=>{var i,r,o=a[0],s=a[1],l=a[2],c=0;if(o.some((t=>0!==e[t]))){for(i in s)n.o(s,i)&&(n.m[i]=s[i]);if(l)l(n)}for(t&&t(a);c<o.length;c++)r=o[c],n.o(e,r)&&e[r]&&e[r][0](),e[r]=0},a=self.webpackChunkverifai_web=self.webpackChunkverifai_web||[];a.forEach(t.bind(null,0)),a.push=t.bind(null,a.push.bind(a))})(),(()=>{"use strict";var e=n(791),t=n.t(e,2),a=n(250);n.p;var i,r=n(164),o=n.t(r,2);function s(){return s=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},s.apply(this,arguments)}!function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(i||(i={}));const l="popstate";function c(e,t){if(!1===e||null===e||"undefined"===typeof e)throw new Error(t)}function u(e,t){if(!e){"undefined"!==typeof console&&console.warn(t);try{throw new Error(t)}catch(n){}}}function d(e,t){return{usr:e.state,key:e.key,idx:t}}function h(e,t,n,a){return void 0===n&&(n=null),s({pathname:"string"===typeof e?e:e.pathname,search:"",hash:""},"string"===typeof t?p(t):t,{state:n,key:t&&t.key||a||Math.random().toString(36).substr(2,8)})}function f(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 p(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 m(e,t,n,a){void 0===a&&(a={});let{window:r=document.defaultView,v5Compat:o=!1}=a,u=r.history,p=i.Pop,m=null,g=v();function v(){return(u.state||{idx:null}).idx}function y(){p=i.Pop;let e=v(),t=null==e?null:e-g;g=e,m&&m({action:p,location:w.location,delta:t})}function b(e){let t="null"!==r.location.origin?r.location.origin:r.location.href,n="string"===typeof e?e:f(e);return n=n.replace(/ $/,"%20"),c(t,"No window.location.(origin|href) available to create URL for href: "+n),new URL(n,t)}null==g&&(g=0,u.replaceState(s({},u.state,{idx:g}),""));let w={get action(){return p},get location(){return e(r,u)},listen(e){if(m)throw new Error("A history only accepts one active listener");return r.addEventListener(l,y),m=e,()=>{r.removeEventListener(l,y),m=null}},createHref:e=>t(r,e),createURL:b,encodeLocation(e){let t=b(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){p=i.Push;let a=h(w.location,e,t);n&&n(a,e),g=v()+1;let s=d(a,g),l=w.createHref(a);try{u.pushState(s,"",l)}catch(c){if(c instanceof DOMException&&"DataCloneError"===c.name)throw c;r.location.assign(l)}o&&m&&m({action:p,location:w.location,delta:1})},replace:function(e,t){p=i.Replace;let a=h(w.location,e,t);n&&n(a,e),g=v();let r=d(a,g),s=w.createHref(a);u.replaceState(r,"",s),o&&m&&m({action:p,location:w.location,delta:0})},go:e=>u.go(e)};return w}var g;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(g||(g={}));new Set(["lazy","caseSensitive","path","id","index","children"]);function v(e,t,n){return void 0===n&&(n="/"),y(e,t,n,!1)}function y(e,t,n,a){let i=M(("string"===typeof t?p(t):t).pathname||"/",n);if(null==i)return null;let r=b(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){let n=e.length===t.length&&e.slice(0,-1).every(((e,n)=>e===t[n]));return n?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(r);let o=null;for(let s=0;null==o&&s<r.length;++s){let e=P(i);o=N(r[s],e,a)}return o}function b(e,t,n,a){void 0===t&&(t=[]),void 0===n&&(n=[]),void 0===a&&(a="");let i=(e,i,r)=>{let o={relativePath:void 0===r?e.path||"":r,caseSensitive:!0===e.caseSensitive,childrenIndex:i,route:e};o.relativePath.startsWith("/")&&(c(o.relativePath.startsWith(a),'Absolute route path "'+o.relativePath+'" nested under path "'+a+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),o.relativePath=o.relativePath.slice(a.length));let s=D([a,o.relativePath]),l=n.concat(o);e.children&&e.children.length>0&&(c(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+s+'".'),b(e.children,t,l,s)),(null!=e.path||e.index)&&t.push({path:s,score:C(s,e.index),routesMeta:l})};return e.forEach(((e,t)=>{var n;if(""!==e.path&&null!=(n=e.path)&&n.includes("?"))for(let a of w(e.path))i(e,t,a);else i(e,t)})),t}function w(e){let t=e.split("/");if(0===t.length)return[];let[n,...a]=t,i=n.endsWith("?"),r=n.replace(/\?$/,"");if(0===a.length)return i?[r,""]:[r];let o=w(a.join("/")),s=[];return s.push(...o.map((e=>""===e?r:[r,e].join("/")))),i&&s.push(...o),s.map((t=>e.startsWith("/")&&""===t?"/":t))}const x=/^:[\w-]+$/,k=3,j=2,I=1,A=10,S=-2,T=e=>"*"===e;function C(e,t){let n=e.split("/"),a=n.length;return n.some(T)&&(a+=S),t&&(a+=j),n.filter((e=>!T(e))).reduce(((e,t)=>e+(x.test(t)?k:""===t?I:A)),a)}function N(e,t,n){void 0===n&&(n=!1);let{routesMeta:a}=e,i={},r="/",o=[];for(let s=0;s<a.length;++s){let e=a[s],l=s===a.length-1,c="/"===r?t:t.slice(r.length)||"/",u=E({path:e.relativePath,caseSensitive:e.caseSensitive,end:l},c),d=e.route;if(!u&&l&&n&&!a[a.length-1].route.index&&(u=E({path:e.relativePath,caseSensitive:e.caseSensitive,end:!1},c)),!u)return null;Object.assign(i,u.params),o.push({params:i,pathname:D([r,u.pathname]),pathnameBase:O(D([r,u.pathnameBase])),route:d}),"/"!==u.pathnameBase&&(r=D([r,u.pathnameBase]))}return o}function E(e,t){"string"===typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[n,a]=function(e,t,n){void 0===t&&(t=!1);void 0===n&&(n=!0);u("*"===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=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,((e,t,n)=>(a.push({paramName:t,isOptional:null!=n}),n?"/?([^\\/]+)?":"/([^\\/]+)")));e.endsWith("*")?(a.push({paramName:"*"}),i+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":""!==e&&"/"!==e&&(i+="(?:(?=\\/|$))");let r=new RegExp(i,t?void 0:"i");return[r,a]}(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let r=i[0],o=r.replace(/(.)\/+$/,"$1"),s=i.slice(1);return{params:a.reduce(((e,t,n)=>{let{paramName:a,isOptional:i}=t;if("*"===a){let e=s[n]||"";o=r.slice(0,r.length-e.length).replace(/(.)\/+$/,"$1")}const l=s[n];return e[a]=i&&!l?void 0:(l||"").replace(/%2F/g,"/"),e}),{}),pathname:r,pathnameBase:o,pattern:e}}function P(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return u(!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 M(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 L(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 B(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function R(e,t){let n=B(e);return t?n.map(((e,t)=>t===n.length-1?e.pathname:e.pathnameBase)):n.map((e=>e.pathnameBase))}function z(e,t,n,a){let i;void 0===a&&(a=!1),"string"===typeof e?i=p(e):(i=s({},e),c(!i.pathname||!i.pathname.includes("?"),L("?","pathname","search",i)),c(!i.pathname||!i.pathname.includes("#"),L("#","pathname","hash",i)),c(!i.search||!i.search.includes("#"),L("#","search","hash",i)));let r,o=""===e||""===i.pathname,l=o?"/":i.pathname;if(null==l)r=n;else{let e=t.length-1;if(!a&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;i.pathname=t.join("/")}r=e>=0?t[e]:"/"}let u=function(e,t){void 0===t&&(t="/");let{pathname:n,search:a="",hash:i=""}="string"===typeof e?p(e):e,r=n?n.startsWith("/")?n:function(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?n.length>1&&n.pop():"."!==e&&n.push(e)})),n.length>1?n.join("/"):"/"}(n,t):t;return{pathname:r,search:_(a),hash:F(i)}}(i,r),d=l&&"/"!==l&&l.endsWith("/"),h=(o||"."===l)&&n.endsWith("/");return u.pathname.endsWith("/")||!d&&!h||(u.pathname+="/"),u}const D=e=>e.join("/").replace(/\/\/+/g,"/"),O=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),_=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",F=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"";Error;function V(e){return null!=e&&"number"===typeof e.status&&"string"===typeof e.statusText&&"boolean"===typeof e.internal&&"data"in e}const H=["post","put","patch","delete"],q=(new Set(H),["get",...H]);new Set(q),new Set([301,302,303,307,308]),new Set([307,308]);Symbol("deferred");function W(){return W=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},W.apply(this,arguments)}const U=e.createContext(null);const G=e.createContext(null);const Q=e.createContext(null);const Y=e.createContext(null);const J=e.createContext({outlet:null,matches:[],isDataRoute:!1});const K=e.createContext(null);function X(){return null!=e.useContext(Y)}function Z(){return X()||c(!1),e.useContext(Y).location}function $(t){e.useContext(Q).static||e.useLayoutEffect(t)}function ee(){let{isDataRoute:t}=e.useContext(J);return t?function(){let{router:t}=ue(le.UseNavigateStable),n=he(ce.UseNavigateStable),a=e.useRef(!1);return $((()=>{a.current=!0})),e.useCallback((function(e,i){void 0===i&&(i={}),a.current&&("number"===typeof e?t.navigate(e):t.navigate(e,W({fromRouteId:n},i)))}),[t,n])}():function(){X()||c(!1);let t=e.useContext(U),{basename:n,future:a,navigator:i}=e.useContext(Q),{matches:r}=e.useContext(J),{pathname:o}=Z(),s=JSON.stringify(R(r,a.v7_relativeSplatPath)),l=e.useRef(!1);return $((()=>{l.current=!0})),e.useCallback((function(e,a){if(void 0===a&&(a={}),!l.current)return;if("number"===typeof e)return void i.go(e);let r=z(e,JSON.parse(s),o,"path"===a.relative);null==t&&"/"!==n&&(r.pathname="/"===r.pathname?n:D([n,r.pathname])),(a.replace?i.replace:i.push)(r,a.state,a)}),[n,i,s,o,t])}()}function te(t,n){let{relative:a}=void 0===n?{}:n,{future:i}=e.useContext(Q),{matches:r}=e.useContext(J),{pathname:o}=Z(),s=JSON.stringify(R(r,i.v7_relativeSplatPath));return e.useMemo((()=>z(t,JSON.parse(s),o,"path"===a)),[t,s,o,a])}function ne(t,n,a,r){X()||c(!1);let{navigator:o}=e.useContext(Q),{matches:s}=e.useContext(J),l=s[s.length-1],u=l?l.params:{},d=(l&&l.pathname,l?l.pathnameBase:"/");l&&l.route;let h,f=Z();if(n){var m;let e="string"===typeof n?p(n):n;"/"===d||(null==(m=e.pathname)?void 0:m.startsWith(d))||c(!1),h=e}else h=f;let g=h.pathname||"/",y=g;if("/"!==d){let e=d.replace(/^\//,"").split("/");y="/"+g.replace(/^\//,"").split("/").slice(e.length).join("/")}let b=v(t,{pathname:y});let w=se(b&&b.map((e=>Object.assign({},e,{params:Object.assign({},u,e.params),pathname:D([d,o.encodeLocation?o.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?d:D([d,o.encodeLocation?o.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),s,a,r);return n&&w?e.createElement(Y.Provider,{value:{location:W({pathname:"/",search:"",hash:"",state:null,key:"default"},h),navigationType:i.Pop}},w):w}function ae(){let t=function(){var t;let n=e.useContext(K),a=de(ce.UseRouteError),i=he(ce.UseRouteError);if(void 0!==n)return n;return null==(t=a.errors)?void 0:t[i]}(),n=V(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),a=t instanceof Error?t.stack:null,i="rgba(200,200,200, 0.5)",r={padding:"0.5rem",backgroundColor:i};return e.createElement(e.Fragment,null,e.createElement("h2",null,"Unexpected Application Error!"),e.createElement("h3",{style:{fontStyle:"italic"}},n),a?e.createElement("pre",{style:r},a):null,null)}const ie=e.createElement(ae,null);class re extends e.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?e.createElement(J.Provider,{value:this.props.routeContext},e.createElement(K.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function oe(t){let{routeContext:n,match:a,children:i}=t,r=e.useContext(U);return r&&r.static&&r.staticContext&&(a.route.errorElement||a.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=a.route.id),e.createElement(J.Provider,{value:n},i)}function se(t,n,a,i){var r;if(void 0===n&&(n=[]),void 0===a&&(a=null),void 0===i&&(i=null),null==t){var o;if(!a)return null;if(a.errors)t=a.matches;else{if(!(null!=(o=i)&&o.v7_partialHydration&&0===n.length&&!a.initialized&&a.matches.length>0))return null;t=a.matches}}let s=t,l=null==(r=a)?void 0:r.errors;if(null!=l){let e=s.findIndex((e=>e.route.id&&void 0!==(null==l?void 0:l[e.route.id])));e>=0||c(!1),s=s.slice(0,Math.min(s.length,e+1))}let u=!1,d=-1;if(a&&i&&i.v7_partialHydration)for(let e=0;e<s.length;e++){let t=s[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(d=e),t.route.id){let{loaderData:e,errors:n}=a,i=t.route.loader&&void 0===e[t.route.id]&&(!n||void 0===n[t.route.id]);if(t.route.lazy||i){u=!0,s=d>=0?s.slice(0,d+1):[s[0]];break}}}return s.reduceRight(((t,i,r)=>{let o,c=!1,h=null,f=null;var p;a&&(o=l&&i.route.id?l[i.route.id]:void 0,h=i.route.errorElement||ie,u&&(d<0&&0===r?(p="route-fallback",!1||fe[p]||(fe[p]=!0),c=!0,f=null):d===r&&(c=!0,f=i.route.hydrateFallbackElement||null)));let m=n.concat(s.slice(0,r+1)),g=()=>{let n;return n=o?h:c?f:i.route.Component?e.createElement(i.route.Component,null):i.route.element?i.route.element:t,e.createElement(oe,{match:i,routeContext:{outlet:t,matches:m,isDataRoute:null!=a},children:n})};return a&&(i.route.ErrorBoundary||i.route.errorElement||0===r)?e.createElement(re,{location:a.location,revalidation:a.revalidation,component:h,error:o,children:g(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):g()}),null)}var le=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(le||{}),ce=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}(ce||{});function ue(t){let n=e.useContext(U);return n||c(!1),n}function de(t){let n=e.useContext(G);return n||c(!1),n}function he(t){let n=function(t){let n=e.useContext(J);return n||c(!1),n}(),a=n.matches[n.matches.length-1];return a.route.id||c(!1),a.route.id}const fe={};t.startTransition;function pe(e){c(!1)}function me(t){let{basename:n="/",children:a=null,location:r,navigationType:o=i.Pop,navigator:s,static:l=!1,future:u}=t;X()&&c(!1);let d=n.replace(/^\/*/,"/"),h=e.useMemo((()=>({basename:d,navigator:s,static:l,future:W({v7_relativeSplatPath:!1},u)})),[d,u,s,l]);"string"===typeof r&&(r=p(r));let{pathname:f="/",search:m="",hash:g="",state:v=null,key:y="default"}=r,b=e.useMemo((()=>{let e=M(f,d);return null==e?null:{location:{pathname:e,search:m,hash:g,state:v,key:y},navigationType:o}}),[d,f,m,g,v,y,o]);return null==b?null:e.createElement(Q.Provider,{value:h},e.createElement(Y.Provider,{children:a,value:b}))}function ge(e){let{children:t,location:n}=e;return ne(ve(t),n)}new Promise((()=>{}));e.Component;function ve(t,n){void 0===n&&(n=[]);let a=[];return e.Children.forEach(t,((t,i)=>{if(!e.isValidElement(t))return;let r=[...n,i];if(t.type===e.Fragment)return void a.push.apply(a,ve(t.props.children,r));t.type!==pe&&c(!1),t.props.index&&t.props.children&&c(!1);let o={id:t.props.id||r.join("-"),caseSensitive:t.props.caseSensitive,element:t.props.element,Component:t.props.Component,index:t.props.index,path:t.props.path,loader:t.props.loader,action:t.props.action,errorElement:t.props.errorElement,ErrorBoundary:t.props.ErrorBoundary,hasErrorBoundary:null!=t.props.ErrorBoundary||null!=t.props.errorElement,shouldRevalidate:t.props.shouldRevalidate,handle:t.props.handle,lazy:t.props.lazy};t.props.children&&(o.children=ve(t.props.children,r)),a.push(o)})),a}function ye(){return ye=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},ye.apply(this,arguments)}function be(e,t){if(null==e)return{};var n,a,i={},r=Object.keys(e);for(a=0;a<r.length;a++)n=r[a],t.indexOf(n)>=0||(i[n]=e[n]);return i}new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);const we=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"];try{window.__reactRouterVersion="6"}catch(Mt){}new Map;const xe=t.startTransition;o.flushSync,t.useId;function ke(t){let{basename:n,children:a,future:i,window:r}=t,o=e.useRef();var s;null==o.current&&(o.current=(void 0===(s={window:r,v5Compat:!0})&&(s={}),m((function(e,t){let{pathname:n,search:a,hash:i}=e.location;return h("",{pathname:n,search:a,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"===typeof t?t:f(t)}),null,s)));let l=o.current,[c,u]=e.useState({action:l.action,location:l.location}),{v7_startTransition:d}=i||{},p=e.useCallback((e=>{d&&xe?xe((()=>u(e))):u(e)}),[u,d]);return e.useLayoutEffect((()=>l.listen(p)),[l,p]),e.createElement(me,{basename:n,children:a,location:c.location,navigationType:c.action,navigator:l,future:i})}const je="undefined"!==typeof window&&"undefined"!==typeof window.document&&"undefined"!==typeof window.document.createElement,Ie=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Ae=e.forwardRef((function(t,n){let a,{onClick:i,relative:r,reloadDocument:o,replace:s,state:l,target:u,to:d,preventScrollReset:h,unstable_viewTransition:p}=t,m=be(t,we),{basename:g}=e.useContext(Q),v=!1;if("string"===typeof d&&Ie.test(d)&&(a=d,je))try{let e=new URL(window.location.href),t=d.startsWith("//")?new URL(e.protocol+d):new URL(d),n=M(t.pathname,g);t.origin===e.origin&&null!=n?d=n+t.search+t.hash:v=!0}catch(Mt){}let y=function(t,n){let{relative:a}=void 0===n?{}:n;X()||c(!1);let{basename:i,navigator:r}=e.useContext(Q),{hash:o,pathname:s,search:l}=te(t,{relative:a}),u=s;return"/"!==i&&(u="/"===s?i:D([i,s])),r.createHref({pathname:u,search:l,hash:o})}(d,{relative:r}),b=function(t,n){let{target:a,replace:i,state:r,preventScrollReset:o,relative:s,unstable_viewTransition:l}=void 0===n?{}:n,c=ee(),u=Z(),d=te(t,{relative:s});return e.useCallback((e=>{if(function(e,t){return 0===e.button&&(!t||"_self"===t)&&!function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)}(e,a)){e.preventDefault();let n=void 0!==i?i:f(u)===f(d);c(t,{replace:n,state:r,preventScrollReset:o,relative:s,unstable_viewTransition:l})}}),[u,c,d,i,r,a,t,o,s,l])}(d,{replace:s,state:l,target:u,preventScrollReset:h,relative:r,unstable_viewTransition:p});return e.createElement("a",ye({},m,{href:a||y,onClick:v||o?i:function(e){i&&i(e),e.defaultPrevented||b(e)},ref:n,target:u}))}));var Se,Te;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Se||(Se={})),function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(Te||(Te={}));const Ce=n.p+"static/media/eu.e0962fd228431b105f7c.png",Ne=n.p+"static/media/NGI_Search-logo.3c0d5e815402a2f3095b.png";var Ee=n(184);const Pe=function(){return(0,Ee.jsx)("div",{className:"FooterContainer",children:(0,Ee.jsx)("div",{className:"FooterContent",children:(0,Ee.jsxs)("div",{className:"FooterTextContainer",children:[(0,Ee.jsx)("p",{children:"Funded by the European Union. Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or European Commission. Neither the European Union nor the granting authority can be held responsible for them. Funded within the framework of the NGI Search project under grant agreement No 101069364"}),(0,Ee.jsxs)("div",{className:"ImagesContainer",children:[(0,Ee.jsx)(Ae,{className:"imgLink",to:"https://www.ngi.eu/ngi-projects/ngi-search/",target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("img",{className:"NgiImage",src:Ne})}),(0,Ee.jsx)("img",{className:"EuImage",src:Ce})]})]})})})},Me=n.p+"static/media/header_image.b1548b7a184b5888b9ac.png";const Le=n.p+"static/media/burger.2b0dcdac6f55010a8926058fe2218004.svg";function Be(e){return window.location.pathname===e}const Re=function(){const t=(0,e.useRef)(null),n=(0,e.useRef)(null),a=(0,e.useRef)(null),i=(0,e.useRef)(null),r=(0,e.useRef)(null),[o,s]=(0,e.useState)(0),[l,c]=(0,e.useState)(!1),[u,d]=(0,e.useState)(0);return(0,e.useEffect)((()=>{t.current&&n.current&&i.current&&s(t.current.offsetHeight-n.current.offsetHeight-i.current.offsetHeight),t.current&&a.current&&i.current&&s(t.current.offsetHeight-a.current.offsetHeight-i.current.offsetHeight);const e=()=>{const e=document.getElementById("fixedMenubar"),t=document.getElementById("fixedBurgerBar"),n=document.getElementById("fixedBurgerMenu");e&&(window.scrollY>o?(e.classList.add("fixed-menubar"),n&&(n.classList.remove("BurgerMenuBar"),n.classList.add("fixed-burgermenu"))):(e.classList.remove("fixed-menubar"),n&&(n.classList.remove("fixed-burgermenu"),n.classList.add("BurgerMenuBar")))),t&&(window.scrollY>o?t.classList.add("fixed-burgerbar"):t.classList.remove("fixed-burgerbar"))};return window.addEventListener("scroll",e),()=>{window.removeEventListener("scroll",e)}}),[o]),(0,Ee.jsx)("div",{children:(0,Ee.jsxs)("div",{className:"MenuBarContainer",ref:t,children:[(0,Ee.jsx)("div",{className:"HeaderContainer",children:(0,Ee.jsx)("img",{className:"HeaderImage",src:Me})}),(0,Ee.jsx)(Ae,{className:"DivLink",to:"https://app.verifai-project.com/registration",target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("div",{className:"carousel",children:(0,Ee.jsxs)("div",{className:"TryAppContainer",ref:i,children:[(0,Ee.jsx)("h1",{className:"tryAppMessage",children:"TRY VerifAI APP NOW"}),(0,Ee.jsx)("h1",{className:"tryAppMessage",children:"TRY VerifAI APP NOW"}),(0,Ee.jsx)("h1",{className:"tryAppMessage",children:"TRY VerifAI APP NOW"}),(0,Ee.jsx)("h1",{className:"tryAppMessage",children:"TRY VerifAI APP NOW"}),(0,Ee.jsx)("h1",{className:"tryAppMessage",children:"TRY VerifAI APP NOW"}),(0,Ee.jsx)("h1",{className:"tryAppMessage",children:"TRY VerifAI APP NOW"}),(0,Ee.jsx)("h1",{className:"tryAppMessage",children:"TRY VerifAI APP NOW"})]})})}),(0,Ee.jsxs)("div",{className:"MenuBar",id:"fixedMenubar",ref:n,children:[(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/")?"focused":""),children:"Home"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/about",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/about")?"focused":""),children:"About"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"https://app.verifai-project.com/login",target:"_blank",rel:"noopener noreferrer",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/sign_in")?"focused":""),children:"Sign in"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/publications",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/publications")?"focused":""),children:"Publications"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/team",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/team")?"focused":""),children:"Team"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/blog",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/blog")||Be("/post")?"focused":""),children:"Blog"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/q&a",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/q&a")?"focused":""),children:"Q&A"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/contact",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/contact")?"focused":""),children:"Contact"})]})]}),(0,Ee.jsx)("div",{className:"BurgerBar",ref:a,id:"fixedBurgerBar",children:(0,Ee.jsx)("img",{className:"burgerButton",src:Le,onClick:()=>{c((e=>!e))}})}),l&&(0,Ee.jsxs)("div",{id:"fixedBurgerMenu",className:`BurgerMenuBar ${l||"fade-out"}`,ref:r,children:[(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/")?"focused":""),children:"Home"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/about",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/about")?"focused":""),children:"About"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"https://app.verifai-project.com/login",target:"_blank",rel:"noopener noreferrer",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/sign_in")?"focused":""),children:"Sign in"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/publications",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/publications")?"focused":""),children:"Publications"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/team",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/team")?"focused":""),children:"Team"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/blog",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/blog")||Be("/post")?"focused":""),children:"Blog"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/q&a",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/faq")?"focused":""),children:"Q&A"})]}),(0,Ee.jsxs)(Ae,{className:"ButtonLink",to:"/contact",children:[" ",(0,Ee.jsx)("button",{className:"MenuButton "+(Be("/contact")?"focused":""),children:"Contact"})]})]})]})})};var ze=n(461);const De=function(){return(0,e.useEffect)((()=>{document.title="Verif.ai - About"}),[]),(0,Ee.jsxs)("div",{className:"PageBackground",children:[(0,Ee.jsx)(ze.ZP,{title:"Verif.ai About",description:"About Verif.ai project",canonical:"https://verifai-project.com/about",meta:{charset:"utf-8",name:{keywords:"react,meta,document,html,tags"}}}),(0,Ee.jsxs)("div",{className:"AboutPageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsx)("div",{className:"ContentContainer",children:(0,Ee.jsxs)("div",{className:"TextContainer",children:[(0,Ee.jsx)("h1",{className:"PageHeading",children:"About"}),(0,Ee.jsx)("p",{children:"VerifAI is an open-source biomedical generative question-answering engine. However, on top of being able to answer biomedical questions based on indexed scientific publication, it will also reference relevant documents, and verify answers whether claims made in them are fully based on the referenced documents and detect any hallucinations produced by underlaying large language model (our method is based on fine-tuned Mistral 7B)."}),(0,Ee.jsx)("p",{children:"VerifAI is an AI system designed to verify and document the correctness of AI-generated texts. In the core of the engine is generative search engine, powered by open technologies. However, generative models may halucinate, and therefore Verif.ai is developing a second model that would check the sources of generative model and flag any misinformation or misinterpretations of source documents. Therefore, make the answer created by generative search engine completly verifiable. The best part is, that we are making it open source, so anyone can use it!"}),(0,Ee.jsx)("h1",{className:"PageHeading",children:"Funding"}),(0,Ee.jsx)("p",{children:"VerifAI is NGI Search project funded by NGI Search scheme of the European Union under grant agreement No 101069364."}),(0,Ee.jsx)("h1",{className:"PageHeading",children:"Commercial use and consulting"}),(0,Ee.jsxs)("p",{children:["VerifAI: In case, you would like us to consult on deploying solution based on Verif.ai or would like to use the developed solution under different licensing terms then provided by default, please get in touch at ",(0,Ee.jsxs)("targe",{children:[(0,Ee.jsx)("span",{style:{color:"#005d97",cursor:"pointer"},children:"verif.ai.project@gmail.com"}),"."]})]})]})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})]})},Oe=n.p+"static/media/verifAI_App_cr.bf6be9e7b62b46e33807.png",_e=n.p+"static/media/registration_screen.edc552dc9ae36f3c901c.jpeg",Fe=n.p+"static/media/anim3.72c268eabc4710c47662.jpg",Ve=n.p+"static/media/anim14.b73456e32f246e4804bb.jpg",He=n.p+"static/media/anim13.f11eb609ad7cc1f5bad3.jpg",qe=n.p+"static/media/verif.66b14d87d30ee3180e04.jpg";const We=function(){(0,e.useEffect)((()=>{document.title="Verif.ai - Home"}),[]);const t=[{id:0,num:"Step One",desc:"Create a profile"},{id:1,num:"Step Two",desc:"Set up configuration"},{id:2,num:"Step Three",desc:"Ask a question"},{id:3,num:"Step Four",desc:"Wait for an answer"},{id:4,num:"Step Five",desc:"Wait for verification of the answer"}],n=[{id:0,image:_e},{id:1,image:Fe},{id:2,image:Ve},{id:3,image:He},{id:5,image:qe}],[a,i]=(0,e.useState)(0),[r,o]=(0,e.useState)(!1);return(0,e.useEffect)((()=>{const e=setInterval((()=>{o(!0),setTimeout((()=>{i((e=>(e+1)%n.length)),o(!1)}),250)}),5e3);return()=>clearInterval(e)}),[n.length]),(0,Ee.jsxs)("div",{className:"PageBackground",children:[(0,Ee.jsx)(ze.ZP,{title:"Verif.ai Home",description:"Verif.ai project Home",canonical:"https://verifai-project.com/home",meta:{charset:"utf-8",name:{keywords:"react,meta,document,html,tags"}}}),(0,Ee.jsxs)("div",{className:"HomePageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsxs)("div",{className:"ContentContainer",children:[(0,Ee.jsx)("div",{className:"logoContainer",children:(0,Ee.jsx)("img",{src:Oe})}),(0,Ee.jsxs)("div",{className:"TextContainer",children:["   ",(0,Ee.jsx)("p",{children:"VerifAI is a biomedical generative question-answering system with referenced and verified answers."}),(0,Ee.jsx)("p",{children:"The aim of the project is to provide open question-answering platform in life sciences addressing hallucination and trust in large language models. The developed tool provides several features for easier verification and validation of LLM answers."})]})]}),(0,Ee.jsx)("div",{className:"HomeSlideShow",children:(0,Ee.jsxs)("div",{className:"HomeSlideShowDiv",children:[(0,Ee.jsxs)("div",{className:"StepsContainer",children:[(0,Ee.jsxs)("h1",{children:[t[a].num," "]}),(0,Ee.jsx)("h2",{children:t[a].desc})]}),(0,Ee.jsx)("div",{className:"HomeImageContainer",children:(0,Ee.jsx)("img",{src:n[a].image,className:r?"fade":"show"})})]})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})]})};const Ue=function(){const[t,n]=(0,e.useState)(""),[a,i]=(0,e.useState)("");return ee(),(0,Ee.jsxs)("div",{className:"SignInPageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsx)("div",{className:"SignInContent",children:(0,Ee.jsxs)("div",{className:"login-form",children:[(0,Ee.jsx)("h1",{children:"Sign in"}),(0,Ee.jsxs)("form",{className:"formClass",children:[(0,Ee.jsx)("input",{className:"formInput",type:"text",placeholder:"Username"}),(0,Ee.jsx)("input",{className:"formInput",type:"password",placeholder:"Password"}),(0,Ee.jsx)("button",{class:"center-button",children:"Log In"})]})]})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})};const Ge=n.p+"static/media/pencil.e72e7d4ab6da54da9e26d234b1e8ccbf.svg";const Qe=function(){return(0,Ee.jsx)("div",{className:"PageBackground",children:(0,Ee.jsxs)("div",{className:"PublicationsPageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsx)("div",{className:"PublicationsContainer",children:(0,Ee.jsxs)("div",{className:"PublicationsList",children:[(0,Ee.jsxs)("div",{className:"PublicationItem",children:[(0,Ee.jsx)("img",{src:Ge}),(0,Ee.jsx)("p",{children:(0,Ee.jsx)("a",{href:"https://arxiv.org/pdf/2407.11485",children:"Adela Ljaji\u0107, Milo\u0161 Ko\u0161prdi\u0107, Bojana Ba\u0161aragin, Darija Medvecki, Lorenzo Cassano, Nikola Milo\u0161evi\u0107, \u201cScientific QA System with Verifiable Answers\u201d, The 6th International Open Search Symposium 2024"})})]}),(0,Ee.jsxs)("div",{className:"PublicationItem",children:[(0,Ee.jsx)("img",{src:Ge}),(0,Ee.jsx)("p",{children:(0,Ee.jsx)("a",{href:"https://arxiv.org/pdf/2402.18589",children:'Ko\u0161prdi\u0107, M., Ljaji\u0107, A., Ba\u0161aragin, B., Medvecki, D., & Milo\u0161evi\u0107, N. "Verif. ai: Towards an Open-Source Scientific Generative Question-Answering System with Referenced and Verifiable Answers." The Sixteenth International Conference on Evolving Internet INTERNET 2024 (2024).'})})]}),(0,Ee.jsxs)("div",{className:"PublicationItem",children:[(0,Ee.jsx)("img",{src:Ge}),(0,Ee.jsx)("p",{children:(0,Ee.jsx)("a",{href:"https://aclanthology.org/2024.bionlp-1.44/",children:'Bojana Ba\u0161aragin, Adela Ljaji\u0107, Darija Medvecki, Lorenzo Cassano, Milo\u0161 Ko\u0161prdi\u0107, Nikola Milo\u0161evi\u0107 "How do you know that? Teaching Generative Language Models to Reference Answers to Biomedical Questions", Accepted at BioNLP 2024, Colocated with ACL 2024'})})]}),(0,Ee.jsxs)("div",{className:"PublicationItem",children:[(0,Ee.jsx)("img",{src:Ge}),(0,Ee.jsx)("p",{children:(0,Ee.jsx)("a",{href:"https://belbi.bg.ac.rs/abstract/enhancing-biomedical-information-retrieval-with-semantic-search-a-comparative-analysis-using-pubmed-data/",children:'Adela Ljaji\u0107, Lorenzo Cassano, Milo\u0161 Ko\u0161prdi\u0107, Bojana Ba\u0161aragin, Darija Medvecki, Nikola Milo\u0161evi\u0107 "Enhancing Biomedical Information Retrieval with Semantic Search: A Comparative Analysis Using PubMed Data", Belgrade Bioinformatics Conference 2024, BelBi2024'})})]})]})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})})},Ye=n.p+"static/media/Nikola-Milosevic.149e3c0e487c890c77b1.png",Je=n.p+"static/media/adelaljajic2.00ed47445a450a616140.jpg",Ke=n.p+"static/media/MK_sajt.1b4ed88890ac2c655b35.jpg",Xe=n.p+"static/media/petarstevanovic.80bf8fae64b799f380cd.JPG",Ze=n.p+"static/media/angelapupovac.9b4d457ebfc668d1b206.jpg",$e=n.p+"static/media/bojanabasaragin3.30c69449e7a4dcc68a01.jpg",et="data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA8AAD/4QOOaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA3LjEtYzAwMCA3OS5kYWJhY2JiLCAyMDIxLzA0LzE0LTAwOjM5OjQ0ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjc3MmRlM2Y2LTY2NDQtOTY0YS1hMGE4LTVhZDEzM2Y0ZTcwNCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQjJCODgzN0JGMTkxMUVDOTJEQUQ1OUY2ODE2MDIwMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDQjJCODgzNkJGMTkxMUVDOTJEQUQ1OUY2ODE2MDIwMSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpjNGZlZjJjYy1hODY4LWNmNDQtOTJhNS1lODcxNzBkNGQ2OTEiIHN0UmVmOmRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDplNjg0OTE5YS01MDNmLWI5NGUtOTgxMi01NDFkM2ZmMjQyODkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAGBAQEBQQGBQUGCQYFBgkLCAYGCAsMCgoLCgoMEAwMDAwMDBAMDg8QDw4MExMUFBMTHBsbGxwfHx8fHx8fHx8fAQcHBw0MDRgQEBgaFREVGh8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx//wAARCACiAKIDAREAAhEBAxEB/8QAlQAAAQQDAQAAAAAAAAAAAAAAAgABBQcDBAYIAQEBAQEBAQAAAAAAAAAAAAAAAQIDBAUQAAEDAwEDCAUJBwIHAAAAAAEAAgMRBAUSITEGQVFhcYEiEweRobEjCMEyQnKCojMUFfDRUmKScyTxs7LSU4MWNjcRAQADAAIDAQACAwAAAAAAAAABEQIhAzFBEgRRMnETFP/aAAwDAQACEQMRAD8Av3QF43YbGqjJpQOGqKXhq0ln0Gm5WgJYeZIU+gqhaCiGLCiBISVDpWaC0pQEtQCQgEtQAWoWAtVAlqgEhA2lFSYZsRBhqAw1VBhqocNQLSgWgopaUQqIFp6KpI0573HRO0y3UMbhva6RoPoJUWmlFxLwzJJ4UeUtXPrSnitG3oJKfUFSkw1paHNILHCrXDaD1FVAlgShjLCpQHSUAlqAC0IALdqihLUDUQSwatIeiBwEBgIHCBwAqpqmtEQqKCNz3EGNwlk68vpNEbdw5XHkaBykqTNLmJmVJ8aeb+ZvwYLF5sLR5IZHE6ksn1pB66UXGeyZejPXEKzfPdzXJlmc5z3mpeTqHaeVc5dG3FeTNNGkDT85o7tR7FFp1nDnE2excjH468fbu2HwXHVbydD4zVorztSOyYYnriVy8HccWfEMToJmCzy0I9/aE1DqfSjPKF6cdn08+8U6QhbYAQgEhSgJagxuagEhANEEuAtJZ6KKeiBwEDhqoLSgYs2oQxXEzIYy48iDz55mcV/quWfWR35K1cYoI27S552HSOUu9i8vZq5evqxUOW/QJciGPmAgY3a1g7z+0rj909UdLJHwU+1JmtpjTe6B21j/APlPSFJ7Gv8AnY/0ajw5g7o7zSRtHOD8qfTlOKSNrYGEsJFI37AOYlZ+kpPwCe1dDkrVxju7JwIeN5ZXaPsqxr2xMXwufCZaLK4yG8bQOeKSsH0XjeF78a+ot4tZqabpC0yAhUCQgAhSkCQpTVhoglqUWkOAgflQOAgINQFRAMh0iqDiuO826zxFy9rtJDSG9Z2LG5qGsRcqBbAbnJMdJ3mwDXt/6kor6m0C8cvp9cOtsIGlo2di5S9MJaOza5o5FKW2o/Hshu6aQRKajm1AKSxuPZOsoXMfDTuOFW9Ff3LLjLNj2B7AyTbrBY/r3Fbhy06by0vHRy3OMeagVLPrM2esL0/m16cP0R7d9pp0L1vKaioYhAJCBiEA0QShCJZ2op0BNaULHyIlkg17xxbGT0IWqPzQunPsWwA08eUM7DsPqXHunh26Y5VpjLm21ySzSsjdNI5zWucASAaClepeecy+hiYh1NjJEA0tcHNO5wII9S5zD0RKWjumMZR5DQNtSabFFR+SzmGY1wdexCVlHANcHEEdDaq/EszuGUXtvK2OaJ4cx4Dx0g7/AGrnUuEyxRT+HKWjeXAnb1g/8K1DnKXwFybPicSDY10jXHqeACunVNacuznK1yvoPGEoBRLIooSgaiCTKMnagIICG5Wg6UFWitDSyT9MJ9SUWpbzNe7TbO/he81+yvP3eno6PaobnINszFDFYxXE1wDI64uQfDaKVDdVD1ALOM37eidTHoeAnvodF+yybYAyNa+JhIa9jqVOkkAb9mxTcQ11zNu44ruGzWkVs238YuaHPYTQEaagbN5PMvPny9evDkX57M4W4t4bCygdHI0EiMULCSQWvq0UNBXft516IxEx5ead6iapPYzMXF/jxPLC6CRjyHRuaWENd0FcNxUrCVF5S4tzvEtGk85I1e1pWYhnTodrb2KXcXMZ11GxWeJYjwty2lEtrDJ/Expr1hfRh4JGTVECgSBkWzIJGqqCaUoPsVQ7TyKgkDINLKV8A9ChCmfMdtbSvKwuI7QuHd6ejp8uKxFmyewtw9ocQwEV5F5p4fS6s3DPcYpn5qC3FAH96nMB+2xSNNzjlJX8fhXjGzN9zIxocRt0U3FYl1pujCWx96wh7eWnQpcr8Q1MlYRRwl8TdIcCxw9bUhz7ccW0sbbSXL7Wm5koHoqflVy8u3YTx+9i5tJH9Lk055WVgnl+ItSf4APRsX0MeIeHUct4rTIUDFA1UDVQSAW0HWgQOECrtQPVKCJVoauRP+M4nmUkVFxjGLiGZlKktNOvUAvN3y9HS4PBPe1kcWkl0dWkdIJXn0+l06YcnksPPkBHc3bbeaItLHVIe2m2vUrnM06zH1KRtRw6ZjcPv45rivz3ytAc0bqAGlOhZnMuvzMJS3y1iLnTbTslMmx8THB1Dz7FzmKLZ7pofbydAqOzaozrlvYnGx21qwj5/jN9B/1Wnh3LcvdrmH649P8AokueVgcOOrh4Oio9a9/X/WHj7PKTJXRgytKFKQxSVJQb4JCrIqgqhVIIQMTtQOCqFVEaWVdSzeegoKpzhLzJTfpNOvafkXj7/L19Lg7u5bjM9G93dguQ17TyCQbCPtCi4RzD141UtXK4aPIXzp2HQ8POh4Fe6dunkNNq3ndPX1755i4Z7LhaOZjo73Q9hcHCTQPEFORrnE0B5aBNdr0fcR4inTWGMtbSJkNuxsUMRDgAAO9zlcJ1blrVtXiLLQWdi/b7yWjGt5yTRSI5c9TUOsja0BzRuDoXD1D5FqfLxAux808zneggpLMO54WcThoweRzgPSvf0/1ePt8pZdqczIGRTKFklFt5aQ43IhVRScdyiGqgVVRGZ+cMsX1PIUFX3z9ZJ5dW7sXi7/L2dMcOC43ti7E+IGkyRhzdm/YdntXDLvLT4eytxa21s+6Dnse0ASkV20oQ5anl3xNQ6hmbs3NGlpJ5gCsTl2+2Oa7yV04R2kRYCd53rCXaM4ixT4LAvleZbqRwBeeTobzK5nlnXhYeOHiW7JD9KCN9OkGqs+XlkN64aa13GiQy7bhN7HYhobtLXuqV7+jw8nb5TK7y5GKgZAxVoJQbyqEgSAHFBzXHHmHwzwVizkM1cFuoltvaxgOmmePoxt9pOwLUZstS03xYZK6u229jgbe1ZLIGxzXM75C1pNO81oYK9tFZxUEJK780OJsiBBJ4LnPNPdNcGDqJJqvHrul3z1Q3o5y+J0j94ovLqbl6cxTneMGTHC3jIXaJ3hojd/C54pXsUxNadJi4avCuLH6E2ydV5t2tDXO3kc561dTc265iop12NxUAjFWioWVS1vYwxtJDe9zrNNuc4lg1ujaRvdWnUpmGdS6PFnRZxg8kQb6Ft5ZnlHZS8ayIFxpqcSepBP8AljnBOZ7N7vxKSRc37UXq/Pqpp5+/PtYBXrecyBkDFAyDeqqyYlFCXUREfmstb4zHT31w8MhgY6SR53BrAS4+gJEDw1xxxlk+L+I7nM38hLC4ttISe7FCD3GNHQNrucrvEI57WQ6o312dapa5/LiyvZsRFc3ZfWUl0etzidA2V722nMvmfoq+Hs6vDvJGv8JkcYoCaudyADlPavJL05hFZYOuZI4ACYi7VI/nDRs9tUh2jKW4etmi8l7tIjE1o62k/vRqko5zbZ1ARvoOlCEl48DIhqI1U2jpWVcpnrmOfIsbHtaxpqenoWoc9JmC5DLKM76MNewK04T5Vt5i8Wx42JsXiaZXEBuwuHOa0Xbp6p0xvdOGxfnHxPh8k25x0kRZE6rGyRktI5iK1oete3H54j/Ly77Jlb3C3xWYedscPE2Klsn7A69sz48ded0TtLx2Fy6ThztbvDnHHCHErA7B5a2vnluswMfpna3l1Qv0yCn1VmYoTVVAiUDVS1bdVpkxcgBzkFL/ABL8XNxvCjcRE+lzln+EWjeIWd6QnrOlvat5hHlLxDRwrsGz966InOEMXa32Si/NPaYddDCKmR/8oaOdc+zVQ3mF4zZvDYPHi5yMgtbZjaRQiniSFoo1rGD6IXg+J1PD1fURA8JlsrnsZBlPyoscZeF/5Jju9LJFE7R4jjuaC6ukDkXLu6viXp/Pr6TLLcNMRcK0dQ1/mBC4vSkGOZC33YGrnVGuyOSSYOJ1Or2BKG1Lbx0Gtxc87GMG0k9DRvT5T6c/lGRWEr5rghsoBLm1+aN+3pWox6effZYP1URYxk0ho0RB7wTuqK+1b+OXGdKC414iOYybnaaNhe8VJ2GpX0enr+YeTe7lz1dq7UwJtexVLb2Iy9/iMpa5PHzOt76zkbNbytNCHNNfQdxHMlLb3pw/mY81gcbmImGOPI20VyIzvb4rA4t7CaLzzCpBQJQZta6IYvRLYpZQxjnnc0VRHjPz34nfm+PL+jtVvjC2zhHJVlXSEfbJHYuuY4FdbuutT2rQ3MRkrvGXrL21dplZsBoDs7VnWbhYmnUcLYjN+YnGNpjZpHva4+Jez7fdWzTV56Cfmt6SsRmMw19W9Z/+IWEmOhsY627LRgjtDGNkbWgAN08raALh29cbdurtnE8Ia84Jz0bHeC2O6H0TG8NdUHYdL9K8k/m09kfryUHCnEMgq6wcCRuc9gAJ5+8s/wCjX8Nf9OP5b0HBWVHeupYrVuwaWnxHnoAbQetdM/n17Y1+rPpLHA29nbmKzFb2RtH3DgHSUPIDub2LvHVERw82+2deXm7jzi+yfnDYRztdbxzaLmXUC06HUdtHO/1K56mddiN4t4pMvClbZ2kXNYxz0a4V+VXHXyzrXCrSS47TUnaSvW42Wwbt6FnFQiHaaOqhD3V5ZXMdx5dcNTRijXY23AHSxgYfW1cNRy06aqlBVUBFy2yEvogieJ8mywwt1dvcGshjfI4nmY0uPsVgeDby6lvLiW4mdqluZXTSOO8ucS8+tdqGICpVB0oN3YpI9YeRnlzNwxw0L28jDMzlg2a6BHejjpWKH7INXdJ6Fy1LcQtOOG6Dd7dvQsq2ra2LAXyOqSgaa6p3YzQcp5UGo6QatW8jcorhPOTjgcIcD3l5DJpy2RrZY3b3hJI065B/bZV3XRaiCZeMC4nlO3lO8rrTnbNNfXUtvHbveXQxmrGnkJUothB2OPMqhNO4oCLqjZ6UC3IPYfw75b8/5WY+Jxq/HTT2bhzBr/EZ92ULnuOVhZawp6oBL1aZA56qKv8AiCzRseAbyJr9L7vRbtHKdbqu+40rWY5HkeM1eB0H5F0VlFAqLG8iuBxxVxoyS4bqx2HaLu4BFQ6WtIIzX+Yaj1LGpWHrSKG5j2Nlr0OaPkouTbMJb4bnM9B/elAXuvn7HSinMAhYRBJ9KRAYY0ctetB4989ePRxZxrKy1k1YjEarOxoate4H30o+u8UHQAumYZmVcLTJ6IGOxjlQwoeoICCgcHbVB6S+FHJl2M4hxjjsimt7pg/uNdG7/bCxtV9Bywtnqgw+IVWAueg82fErxRHdZG0wkLq/lg64uKbqvGmNvoqe1dMwKNgNZwOcO9i0rIXVKD1V8L+FZZ8CXGTc2k+Uu5Ha6bfDgpEwf1By56WFwSNFahZVjKKY1QN4Ur9xoOcqCvvPPi5vCXAdw6CY/q2VJsseBsLdY99KPqR+shXMFvHBpsA5Ny6sWEqgqbEAybInH9t6AGfNHPyoDqoCCC7PhYvhFxjlbMmn5rH6wOcwzMPseVNeB6cBXIFVBrFyqNe7m8O3kfyhpp1qkvFnmPlJMlxpl7l5r/kyQtHM2L3bR91dYIctEaXDPteworMNhQeyfJCkPlngGNFK2+s9b3ucfasSrvi+qytm1IHaQlDKHbhy8yg8ffEFxsOJuPZ7e2k14zCA2NoQatdI01uJB9aTu9TQumYSVY0WkKm1AuRUY5j7o9Y9qkhmbq+hAQ3KAm0qgsLyJy78b5n4Yg9y9kdZS9LZ2ED7+kpPgexQVyD1QahciOS8y+JBgOFL++B95FE4xjne7uxj+twWoHjK5lfJK+R7i573FznHeSTUldFYIz/kR9vsUGc/OoqPYHkrNXy5wPRbAehxCwT5WEx1RVSgY2hKWy1UQtxXm1xyOEuCb2/ieBkbgflccK7fGlBGv7Dau7EiCHi5znEkkkk7STvJ5SuiGqgVVQkGKYkxkc5ACzJBDkHMqCBQEKqDu/JG0/M+aPDzd4iuHTu/7UT3+1qT4HsgOXJB6kGm5BU3xE/+kz/O/Ft9278Qb+hbyPLsm9blWOL8dnWfYVPYz/SCo9ceSX/zjC7/AMF3+45ZJ8rHi/DCgzx7igB/Kg88/FNu4f8AxfnXG/8AB3N+/wDIrkUAFoMgSB0GKX6P1lJCCoLmQEFBZvw8f/Ucfu/Aut/9l27pUnwS9ahc0Eg//9k=",tt=n.p+"static/media/natasaradmilovic.04e6ac4d6a9eeaa3e28f.jpg";const nt=n.p+"static/media/linkedin3.22cf005e5fa6f75f979468829d53ee6f.svg",at=[{id:"nikola-milosevic",linkedin:"https://www.linkedin.com/in/nikolamilosevic1986/",name:"Nikola Milo\u0161evi\u0107",status:"Team lead",desc:"The initiator and a team lead in the VerifAI project, currently employed at Bayer A.G; Senior computational scientist with deep expertise in natural language processing and machine learning...",image:Ye,longDesc:"Nikola Milosevic is a senior computational scientist with deep expertise in natural language processing and machine learning. He holds a PhD in Computer Science from the University of Manchester, where he focused on information extraction and mining from tables in biomedical and clinical scientific literature. With extensive experience in both academia and industry, Milosevic has worked on various projects involving web crawling, machine learning, and advanced NLP techniques, such as information extraction, text classification, text summarization, and lately is very involved in generative AI. He is also interested in NLP for low-resourced languages such as Serbian, or applying NLP techniques in other fields, such as biomedicine, or malware analysis. Nikola Milosevic is currently employed at Bayer A.G., as a computational scientist. He is the initiator and a team lead in the VerifAI project. Nikola has a long history of open-source involvement, dating back to 2012, when he became involved with the Open Web Application Security Project, but he also open-sourced the ority of his scientific research. "},{id:"bojana-basaragin",linkedin:"https://www.linkedin.com/in/bojana-basaragin/",name:"Bojana Ba\u0161aragin",status:"Team member",desc:"Senior Researcher in the Human-Computer Interaction research group at The Institute for Artificial Intelligence of Serbia; Leverages language technologies in healthcare and industry, with a particular focus on language models...",image:$e,longDesc:"Bojana Ba\u0161aragin earned her Ph.D. in Computational Linguistics from the Faculty of Philology in Belgrade, specializing in syntax and natural language processing. Her significant contributions in this field include the creation and enhancement of language resources for Serbian, encompassing WordNet, a dictionary of synonyms, parallel corpora, rule-based parsers, and formal grammars. At the Institute, she serves as a Senior Researcher in the Human-Computer Interaction research group. In her projects, she leverages language technologies in healthcare and industry, with a particular focus on language models. Driven by a belief in the transformative power of AI, she is passionate about applying natural language processing techniques in healthcare to improve lives and advance biomedical research."},{id:"darija-medvecki",linkedin:"https://www.linkedin.com/in/darija-medvecki-b27468ab/",name:"Darija Medvecki",status:"Team member",desc:"Research assistant at the Human-Computer Interaction research group at The Institute for Artificial Intelligence of Serbia; Specializing in the field of natural language processing and a marketing specialist...",image:et,longDesc:"Darija Medvecki is a young researcher specializing in the field of natural language processing and a marketing specialist. She is currently pursuing a Ph.D. in artificial intelligence at the Faculty of Technical Sciences in Novi Sad. As a research assistant at the Human-Computer Interaction research group at the Institute, she contributes to multiple projects across diverse fields, including the biomedical domain, customer service, and social media. Her work encompasses sentiment analysis, topic modeling, and named entity recognition, as well as contributing to the development of Serbian language resources. Her primary focus is on data collection, preparation, and leveraging large language models."},{id:"adela-ljajic",linkedin:"https://www.linkedin.com/in/adelacrnisanin/?originalSubdomain=rs",name:"Adela Ljaji\u0107",status:"Team member",desc:"Research Associate at The Institute for Artificial Intelligence Research and Development of Serbia \u2013 Human Computer Interaction group; Focusing on transformer-based architecture like BERT and GPT...",image:Je,longDesc:"Adela Ljaji\u0107 is a data scientist with natural language processing and machine learning expertise. She earned her Ph.D. in Electrical Engineering and Computer Science in the research domain of Artificial Intelligence, where she developed negation detection and sentiment analysis methods for the low-resourced Serbian language. Previously, she has held roles as a teaching assistant and research assistant in academia, worked as a freelancer on Upwork and collaborated with NPL group of the Allen AI Institute in a research study. Currently, she is Research Associate at The Institute for Artificial Intelligence Research and Development of Serbia \u2013 Human Computer Interaction group, where she focuses on transformer-based architecture like BERT and GPT, applying them to named entity recognition, topic modeling, sentiment analysis and semantic search. For the VerifAI project, she serves as the coordinator from the Institute's side and is also responsible for semantic indexing in information retrieval components."},{id:"milos-kosprdic",linkedin:"https://www.linkedin.com/in/milo%C5%A1-ko%C5%A1prdi%C4%87/",name:"Milo\u0161 Ko\u0161prdi\u0107",status:"Team member",desc:"Researcher at The Institute for Artificial Intelligence of Serbia; Senior Associate at Linguistics Department at Petnica Science Center...",image:Ke,longDesc:"Milo\u0161 Ko\u0161prdi\u0107 is a linguist and mathematician currently pursuing a Ph.D. in Artificial Intelligence at the University of Belgrade. His research focuses on natural language processing and large language models, including sentiment analysis, topic modeling, information extraction, semantic search, and reducing hallucinations in generative language models. Milo\u0161 has led linguistics seminars and served as a lecturer and educator at the Petnica Science Center for many years. He advocates for an interdisciplinary approach in science and values heuristic methods and the zone of proximal development in education. Currently, Milo\u0161 is a young researcher at the Institute for Artificial Intelligence Research and Development of Serbia, within the Human-Computer Interaction group. He focuses on transformer-based architectures such as BERT and Llama, applying them primarily to named entity recognition and semantic search. For the VerifAI project, he is responsible for developing the verification module and is also involved in lexical and semantic search for the information retrieval component."},{id:"angela-pupovac",linkedin:"https://www.linkedin.com/in/angela-pupovac-20a751226/",name:"Angela Pupovac",status:"Team member",desc:"Community Manager for the VerifAI project; a graduating Philosophy student at the Faculty of Philosophy, University of Belgrade...",image:Ze,longDesc:"Angela has a keen interest in the philosophical exploration of artificial intelligence as part of her academic and professional pursuits. Her primary focus in philosophy lies in the areas of ethics, philosophy of science, and philosophy of mind. In her AI research, Angela is particularly interested in AI alignment and AI-based cognition. She aims to contribute to the responsible development and deeper understanding of intelligent systems through an interdisciplinary approach. At VerifAI, Angela is responsible for building and nurturing the project\u2019s community."},{id:"petar-stevanovic",linkedin:"https://www.linkedin.com/in/petar-stevanovi%C4%87-1b25852b0/",name:"Petar Stevanovi\u0107",status:"Team member",desc:"Intern at The Institute for Artificial Intelligence of Serbia, currently pursuing a master's degree in philosophy at the University of Belgrade; Interested in graphic design and visual marketing...",image:Xe,longDesc:"Petar Stevanovi\u0107 is a young philosopher with a passion for graphic design and visual marketing. He is currently pursuing a master\u2019s degree in philosophy at the University of Belgrade. His primary academic interests include normative and applied ethics, political philosophy, and the philosophy of science. Regarding artificial intelligence, Petar is particularly focused on the relationship between AI and neuroscience within applied ethics. On the VeriAI project, he is responsible for establishing the project\u2019s visual identity and redesigning the VeriAI website and application. "},{id:"natasa-radmilovic",linkedin:"https://www.linkedin.com/in/nata%C5%A1a-radmilovi%C4%87-ab88582b7/",name:"Nata\u0161a Radmilovi\u0107",status:"Team member",desc:"Intern at The Institute for Artificial Intelligence of Serbia; Currently a fourth-year student of Computing and Automation at the Faculty of Technical Sciences, Novi Sad, with an interest in web development...",image:tt,longDesc:"Nata\u0161a Radmilovi\u0107 is an intern at the Institute of Artificial Intelligence of Serbia, where she works on the frontend development of the VerifAI web application and website. She is currently pursuing a bachelor's degree at the Faculty of Technical Sciences, Novi Sad. Although her work focuses on web development, she has a strong interest in both artificial intelligence and informational systems."}];const it=function(){const[t,n]=(0,e.useState)({}),a=(0,e.useRef)({});return(0,Ee.jsx)("div",{className:"PageBackground",children:(0,Ee.jsxs)("div",{className:"TeamPageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsx)("div",{className:"TeamContainer2",children:(0,Ee.jsxs)("div",{className:"TeamContainer",children:[(0,Ee.jsx)("h1",{children:"Team"}),(0,Ee.jsx)("p",{children:"Our team is composed of NLP experts from Bayer Pharma R&D Data Sciences and AI department, and NLP group members from the Institute for AI Research and Development of Serbia. Current team setup is:"}),(0,Ee.jsx)("div",{className:"GalleryContainer",children:(0,Ee.jsx)("div",{className:"TeamGallery",children:at.map((e=>(0,Ee.jsxs)("div",{className:"imageContainer",onClick:()=>{return t=e.id,void n((e=>({...e,[t]:"fade-in"===e[t]?"fade-out":"fade-in"})));var t},children:[(0,Ee.jsx)("img",{src:e.image}),(0,Ee.jsx)("div",{className:"overlay"}),(0,Ee.jsxs)("div",{className:"imageText",children:[(0,Ee.jsx)("h1",{className:"image-h1",children:e.name}),(0,Ee.jsx)("h2",{className:"image-h2",children:e.status})]}),t[e.id]&&(0,Ee.jsxs)("div",{className:`description ${t[e.id]||"fade-out"}`,ref:t=>a.current[e.id]=t,children:[(0,Ee.jsxs)("div",{className:"memberLinkedIn",children:[(0,Ee.jsx)("h1",{className:"image-h1",children:e.name}),(0,Ee.jsx)(Ae,{to:e.linkedin,target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("button",{className:"LinkedInButton shrunk",children:(0,Ee.jsx)("img",{src:nt})})})]}),(0,Ee.jsx)("h2",{className:"image-h2",children:e.status}),(0,Ee.jsxs)("div",{className:"description-container",children:["   ",(0,Ee.jsx)("div",{className:"description-text",children:(0,Ee.jsxs)("p",{children:[e.desc," ",(0,Ee.jsx)("a",{href:"/member?id="+e.id,className:"viewMore",children:"View more"})]})})]})]})]},e.id)))})})]})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})})},rt=n.p+"static/media/decMaking.a8eb4cfc17c5e411d89a.jpeg",ot=n.p+"static/media/sciAI.727587f8bf535a60889f.jpg",st=n.p+"static/media/AGIPic.388cf8c7c4b9472ed573.jpg",lt=n.p+"static/media/scepticRobot.afaf8d02f924f041c332.jpeg",ct=n.p+"static/media/generating_answer.d21a391d048900b99418.jpg",ut=n.p+"static/media/generating_answer_verif.b132c110bc5d711bc47a.jpeg",dt=n.p+"static/media/verifai_logo.46a63a2c88b7242723e3.png",ht=[{id:"what-does-the-NEW-verifAI-APP-Offer",Title:"What Does the NEW VerifAI APP Offer and How Can I Use It Effectively?",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"In the world of biomedicine, accuracy and reliability of information are of utmost importance. The VerifAI system, an advanced AI tool for natural language processing with a focus on biomedical data, promises to revolutionize the way researchers, doctors, and students access and utilize expert information. What makes VerifAI ideal for use in this critical field is that it is designed not to hallucinate and to provide referenced answers. In this blog, we explore how you can use VerifAI. Follow the steps outlined and take full advantage of everything VerifAI offers to enhance your research and work!"}),(0,Ee.jsx)("img",{src:Oe,alt:"VerifAI app",className:"blog"}),(0,Ee.jsx)("h3",{children:"Step 1: Registration and Account Creation"}),(0,Ee.jsx)("p",{children:"The first step in using VerifAI is to sign up on our platform. On the VerifAI homepage, you will see the button \u2018Join VerifAI Now!\u2019 which is a shortcut to the VerifAI application. Visit it and quickly and easily create your account. You will need to enter basic information such as your full name, username, email address, and password. If you have entered all the data correctly, you will see a notification that your account has been successfully created. Click \u2018OK\u2019, log in, and you can start using the application!"}),(0,Ee.jsx)("img",{src:_e,alt:"Registration screen of VerifAI app",className:"blog"}),(0,Ee.jsx)("h3",{children:"Step 2: Getting Familiar with the Interface"}),(0,Ee.jsx)("p",{children:"After logging in, explore VerifAI's minimalist and practical user interface. At the top of the screen, you will find your username and navigation tabs for quick access to various application functions that you may need."}),(0,Ee.jsx)("h3",{children:"Step 3: Submitting Inputes and Generating Answers"}),(0,Ee.jsx)("p",{children:"VerifAI allows you to submit specific queries related to biomedical topics. For example, if you want to learn more about the latest research in the field of immunotherapy, simply enter the query in the search bar. Or, for instance, you can investigate the effects of a new drug on breast cancer treatment. By submitting a query in VerifAI, you receive answers that include the latest research, clinical studies, and meta-analyses. This way, you not only save time but also ensure that the information you use is accurate and evidence-based. After submitting a query, VerifAI will analyze the available data in the next few seconds and work on providing accurate and referenced answers from reliable sources."}),(0,Ee.jsx)("img",{src:ct,alt:"Generating answer",className:"blog"}),(0,Ee.jsx)("h3",{children:"Step 4: Interpreting VerifAI Output"}),(0,Ee.jsx)("p",{children:"As part of the VerifAI output, you will receive not only an answer but also lists of scientific sources from the PubMed database that VerifAI used to prepare a verifiable and precise answer for you! If you click on any of them, VerifAI will take you to the specific PubMed article where it found the statement related to your question. Then follows the specific answer with references. You will notice that most statements are written in green, with references in the form of links on their right side. When you hover over a statement, an automatic explanation will appear above, indicating that the green color means confirmation that the statement is in the article to which the reference points (thanks to the double verification method that VerifAI uses!). Additionally, you will be provided with a quote, i.e., the original paragraph/part of the paragraph from which the statement was derived. This allows users to confirm the accuracy of the data on the spot before including it in their work!"}),(0,Ee.jsx)("img",{src:ut,alt:"Generating answer",className:"blog"}),(0,Ee.jsx)("p",{children:"Other statements may be written in orange. In the same way as before, you will determine the meaning of the color. Orange means that it is likely that the statement is in the document to which the reference points. However, this time VerifAI was not able to display part of the given PubMed article in the form of a quote. It may happen that the abstract provided by VerifAI at the bottom of the page is written in gray. There is a possibility that the statements it contains are accurate, but since VerifAI did not find adequate evidence, it advises you in this way to additionally verify their accuracy independently."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"We believe that VerifAI represents a decent step forward in the use of artificial intelligence for processing and analyzing biomedical data. Its ability to provide referenced answers without hallucinations makes it an ideal tool for professionals in the field of biomedicine. However, if you are a layperson in this field, it does not mean that VerifAI is not for you! On the contrary, VerifAI is a reliable system that we warmly recommend as a consultant when you want to quickly find an explanation for a health-related question or concern you have."}),(0,Ee.jsx)("p",{children:(0,Ee.jsx)("strong",{children:"Try VerifAI today and experience the power of accurate and referenced biomedical information!"})})]}),Date:"23.07.2024",Author:"Angela Pupovac",CoverImage:ct,CoverText:(0,Ee.jsx)("p",{children:"In the world of biomedicine, accuracy and reliability of information are of utmost importance. The VerifAI system, an advanced AI tool for natural language processing with a focus on biomedical data, promises to revolutionize the way researchers, doctors, and students access and utilize expert information. What makes VerifAI ideal for use in this critical field is that it is designed not to hallucinate and to provide referenced answers. In this blog, we explore how you can use VerifAI. Follow the steps outlined and take full advantage of everything VerifAI offers to enhance your research and work!"}),ImageList:[_e,ct,ut]},{id:"VerifAI-project-Open-source-biomedical-question-answering-with-verified-answers",Title:"VerifAI project: Open source biomedical question answering with verified answers",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("h3",{children:"Experiences from building LLM-based (Mistral 7B) biomedical question-answering system on top of Qdrant and OpenSearch indices with hallucination detection method"}),(0,Ee.jsxs)("p",{children:["Last September (2023), we embarked on the development of the ",(0,Ee.jsx)("a",{href:"https://verifai-project.com",target:"_blank",children:"VerifAI project"}),", after receiving funding from the ",(0,Ee.jsx)("a",{href:"https://www.ngisearch.eu",target:"_blank",children:"NGI Search"})," funding scheme of Horizon Europe."]}),(0,Ee.jsxs)("p",{children:["The idea of the project was to create a generative search engine for the biomedical domain, based on vetted documents (therefore we used a repository of biomedical journal publications called ",(0,Ee.jsx)("a",{href:"https://pubmed.ncbi.nlm.nih.gov",target:"_blank",children:"PubMed"}),"), with an additional model that would verify the generated answer, by comparing the referenced article and generated claim."]}),(0,Ee.jsx)("p",{children:"While there are projects and products, such as Elicit or Perplexity that do partially RAG (Retrieval-Augmented Generation) and can answer and reference documents for biomedical questions, there are a few factors that differentiate our project. Firstly, we focus at the moment on the biomedical documents. Secondly, as this is a funded project by the EU, we commit to open-source everything that we have created, from source code, models, model adapters, datasets, everything. Thirdly, no other product, that is available at the moment, does a posteriori verification of the generated answer, but they usually just rely on fairly simple RAG, which reduces hallucinations but does not remove them completely. One of the main aims of the project is to address the issue of so-called hallucinations. Hallucinations in Large Language Models (LLMs) refer to instances where the model generates text that is plausible-sounding but factually incorrect, misleading, or nonsensical. In this regard, the project adds to the live system's unique value."}),(0,Ee.jsxs)("p",{children:["The project has been shared under the ",(0,Ee.jsx)("a",{href:"https://www.gnu.org/licenses/agpl-3.0.en.html",target:"_blank",children:"AGPLv3 license"}),"."]}),(0,Ee.jsx)("h3",{children:"Overall method"}),(0,Ee.jsx)("p",{children:"The overall methodology that we have applied can be seen in the following figure"}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*1g3ejM65p5dXc2wmdMvG9w.png"}),(0,Ee.jsxs)("p",{children:["When a user asks a question, the user query is transformed into a query, and the information retrieval engine is asked for the most relevant biomedical abstracts, indexed in PubMed, for the given question. In order to obtain the most relevant documents, we have created both a lexical index, based on ",(0,Ee.jsx)("a",{href:"https://opensearch.org/",target:"_blank",children:"OpenSearch"}),", and a vector/semantic search based on ",(0,Ee.jsx)("a",{href:"https://qdrant.tech/",target:"_blank",children:"Qdrant"}),". Namely, lexical search is great at retrieving relevant documents containing exact terms as the query, while semantic search helps us to search semantic space and retrieve documents that mean the same things, but may phrase it differently. The retrieved scores are normalized and a combination of documents from these two indices are retrieved (hybrid search). The top documents from the hybrid search, with questions, are passed into the context of a model for answer generation. In our case, we have fine-tuned the Mistral 7B-instruct model, using QLoRA, because this allowed us to host a fairly small well-performing model on a fairly cheap cloud instance (containing NVidia Tesla T4 GPU with 16GB of GPU RAM). After the answer is generated, the answer is parsed into sentences and references that support these sentences and passed to the separate model that checks whether the generated claim is supported by the content of the referenced abstract. This model classifies claims into supported, no-evidence, and contradicting classes. Finally, the answer, with highlighted claims that may not be fully supported by the abstracts is presented to the used."]}),(0,Ee.jsx)("p",{children:"Therefore, a system has 3 components&hairsp;\u2014&hairsp;information retrieval, answer generation, and answer verification. In the following sections, we will describe in more detail, each of these sections.\xa0"}),(0,Ee.jsx)("h3",{children:"Information retrieval"}),(0,Ee.jsx)("p",{children:"From the start of the project, we aimed at building a hybrid search, combining semantic and lexical search. The initial idea was to create it using a single software, however, that turned out not so easy, especially for the index of the PubMed size. PubMed contains about 35 million documents, however, not all contain full abstracts. There are old documents, from the 1940s and 1950s that may not have abstracts, but as well some guide documents and similar that have only titles. We have indexed only the documents containing full abstracts and ended up with about 25 million documents. PubMed unpacked is about 120GB in size.\xa0"}),(0,Ee.jsxs)("p",{children:["It is not problematic to create a well-performing index for lexical search in OpenSearch. This worked pretty much out of the box. We have indexed titles, and abstract texts, and added some metadata for filtering, like year of publication, authors, and journal. OpenSearch supports ",(0,Ee.jsx)("a",{href:"https://engineering.fb.com/2017/03/29/data-infrastructure/faiss-a-library-for-efficient-similarity-search/",target:"_blank",children:"FAISS"})," as a vector store. So we tried to index our data with FAISS, but this was not possible, as the index was too large and we were running out of memory (we had a 64GB cloud instance for index). The indexing was done using MSMarco fine-tuned model based on DistilBERT (",(0,Ee.jsx)("a",{href:"https://huggingface.co/sentence-transformers/msmarco-distilbert-base-tas-b",target:"_blank",children:"sentence-transformers/msmarco-distilbert-base-tas-b"}),"). Since we learned that FAISS only supported the in-memory index, we needed to find another solution that would be able to store a part of the index on the hard drive. The solution was found in the Qdrant database, as it supports in-memory",(0,Ee.jsx)("a",{href:"https://qdrant.tech/documentation/concepts/storage/#configuring-memmap-storage",target:"_blank",children:" mapping and on-disk storage of part of the index"}),".\xa0"]}),(0,Ee.jsx)("p",{children:"Another issue that appeared while creating the index was that once we did memory mapping and created the whole PubMed index, the query would be executed for a long time (almost 30 seconds). The problem was that calculations of dot products in 32-bit precision were taking a while for the index having 25 million documents (and potentially loading parts of the index from HDD). Therefore, we have made a search using only 8-bit precision, and we have reduced the time needed from about 30 seconds to less than a half second.\xa0"}),(0,Ee.jsx)("p",{children:"The lexical index contained whole abstracts, however, for the semantic index, documents needed to be split, because the transformer model we used for building the semantic index could swallow 512 tokens. Therefore the documents were split on full stop before the 512th token, and the same happened on every next 512 tokens.\xa0"}),(0,Ee.jsxs)("p",{children:["In order to create a combination of semantic and lexical search, we have normalized the outputs of the queries, by dividing all scores returned either from Qdrant or OpenSearch by the top score returned for the given document store. In that way, we have obtained two numbers, one for semantic and the other for lexical search, in the range between 0\u20131. Then we tested the precision of retrieved most relevant documents in the top retrieved documents using the ",(0,Ee.jsx)("a",{href:"https://link.springer.com/content/pdf/10.1186/s12859-015-0564-6.pdf",target:"_blank",children:"BioASQ dataset"}),". The results can be seen in the table below.\xa0"]}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*uTaFRuCgJ4NX_jxvO5WaPQ.png"}),(0,Ee.jsx)("p",{"data-testid":"editorParagraphText",name:"8868",class:"graf graf--p graf-after--figure",children:"We have done some re-ranking experiments using full precision, so you can see more details in the paper. But this has not been used in the application at the end. The overall conclusion was that lexical search does a pretty good job, and there is some contribution of semantic search, with the best performance obtained at weights of 0.7 for lexical search, and 0.3 for semantic."}),(0,Ee.jsx)("p",{children:"Finally, we have built a query processing, where for lexical querying stopwords were excluded from the query, and search was performed in the lexical index, and similarity was calculated for the semantic index. Values for documents from both semantic and lexical indexes were normalized and summed up, and the top 10 documents were retrieved.\xa0"}),(0,Ee.jsx)("h3",{children:"Referenced answer generation"}),(0,Ee.jsx)("p",{children:"Once, the top 10 documents were retrieved, we could pass these documents to a generative model for referenced answer generation. We have tested several models. This can be done well with GPT4-Turbo models, and most of commercially available platforms would use GPT4 or Claude models. However, we wanted to create an open-source variant, where we do not depend on commercial models, having smaller and more efficient models while having also performance close to the performance of commercial models. Therefore, we have tested things with Mistral 7B instruct in both zero-shot regime and fine-tuned using 4bit QLora."}),(0,Ee.jsxs)("p",{children:["In order to fine-tune Mistral, we needed to create a dataset for referenced question answering using PubMed. We created a dataset by randomly selecting questions from the PubMedQA dataset, then retrieved the top 10 relevant documents and used GPT-4 Turbo for referenced answer generation. We have called this dataset the ",(0,Ee.jsx)("a",{href:"https://huggingface.co/datasets/BojanaBas/PQAref",target:"_blank",children:"PQAref dataset and published it on HuggingFace"}),". Each sample in this dataset contains a question, a set of 10 documents, and a generated answer with referenced documents (based on 10 passed in context).\xa0"]}),(0,Ee.jsxs)("p",{children:["Using this dataset, we have created a QLoRA adapter for Mistral-7B-instruct. This was trained on the ",(0,Ee.jsx)("a",{href:"https://www.ai.gov.rs/",target:"_blank",children:"Serbian National AI platform"})," in the National Data Center of Serbia, using Nvidia A100 GPU. The training lasted around 32 hours.\xa0"]}),(0,Ee.jsx)("p",{children:"We have performed an evaluation comparing Mistral 7B instruct v1, and Mistral 7B instruct v2, with and without QLoRA fine-tuning (so without is zero-shot, based only on instruction, while with QLoRA we could save some tokens as instruction was not necessary for the prompt, as fine-tuning would make model do what is needed), and we compared it with GPT-4 Turbo (with prompt: \u201cAnswer the question using relevant abstracts provided, up to 300 words. Reference the statements with the provided abstract_id in brackets next to the statement.\u201d). Several evaluations about the number of referenced documents and whether the referenced documents are relevant have been done. These results can be seen in the tables below."}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*1G_jbg96VYHHX3RbEJC0Fw.png"}),(0,Ee.jsx)("p",{children:"From this table, it can be concluded that Mistral, especially the first version in zero-shot (0-M1), does not really often reference context documents, even though it was requested in the prompt. On the other hand, the second version showed much better performance, but it was far from GPT4-Turbo or fine-tuned Mistrals 7B. Fine-tuned mistrals tended to cite more documents, even if the answer could be found in one of the documents, and added some additional information compared to GPT4-Turbo."}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*3fmPqNtEt37NyyIdXCIqMQ.png"}),(0,Ee.jsx)("p",{children:"As can be seen from the second table, GPT4-Turbo missed relevant references only once in the whole test set, while Mistral 7B-instruct v2 with fine-tuning missed a bit more, but showed still comparable performance, given much smaller model size.\xa0"}),(0,Ee.jsx)("p",{children:"We have also looked at several answers manually, to make sure the answers make sense. At the end, in the app, we are using Mistral 7B instruct v2 with a fine-tuned QLoRA adapter.\xa0"}),(0,Ee.jsx)("h3",{children:"Answer verification"}),(0,Ee.jsxs)("p",{children:["The final part of the system is answer verification. For answer verification, we have developed several features, however, the main one is a system that verifies whether the generated claim is based on the abstract that was referenced. We have fine-tuned several models on the ",(0,Ee.jsx)("a",{href:"https://allenai.org/data/scifact",target:"_blank",children:"SciFact dataset "}),"from the Allen Institute for AI with several BERT and Roberta-based models.\xa0"]}),(0,Ee.jsx)("p",{children:"In order to model input, we have parsed the answer to find sentences and related references. We have found that the first and last sentence in our system are often introduction or conclusion sentences, and may not be referenced. All other sentences should have a reference. If a sentence contained a reference, it was based on that PubMed document. If the sentence does not contain a reference, but the sentence before and after are referenced, we calculate the dot product of the embeddings of that sentence and sentences in 2 abstracts. Whichever abstract contains the sentence with the highest dot product is treated as the abstract that the sentence was based on.\xa0"}),(0,Ee.jsx)("p",{children:"Once the answer is parsed and we have found all the abstracts the claims are based on, we pass it to the fine-tuned model. The input to the model was engineered in the following way"}),(0,Ee.jsx)("p",{children:"For deBERT-a models:"}),(0,Ee.jsx)("blockquote",{children:"[CLS]claim[SEP]evidence[SEP]"}),(0,Ee.jsx)("p",{children:"For Roberta-based models:"}),(0,Ee.jsx)("blockquote",{children:"<s>claim</s></s>evidence</s>"}),(0,Ee.jsx)("p",{"data-testid":"editorParagraphText",name:"96f4",class:"graf graf--p graf-after--blockquote",children:"Where claim is generated claim from the generative component, and evidence is the text of concatenated title and abstract from referenced PubMed document.\xa0"}),(0,Ee.jsx)("p",{children:"We have evaluated the performance of our fine-tuned models and obtained the following results:\xa0"}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*eeAdmTh0lj7BjO4dCx98VA.png"}),(0,Ee.jsxs)("p",{"data-testid":"editorParagraphText",name:"937d",class:"graf graf--p graf-after--figure",children:["Often, when the models are fine-tuned on the same dataset as they are tested, the results are good. Therefore, we wanted to test it also on out-of-domain data. So we have selected the ",(0,Ee.jsx)("a",{href:"https://github.com/sarrouti/HealthVer",target:"_blank",children:"HealthVer dataset"}),", which is also in the healthcare domain used for claim verification. The results were the following:\xa0"]}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*_N9MbQ77tH1ewS65JjxmVw.png"}),(0,Ee.jsx)("p",{"data-testid":"editorParagraphText",name:"3366",class:"graf graf--p graf-after--figure",children:"We also evaluated the SciFact label prediction task using the GPT-4 model (with a prompt \u201cCritically asses whether the statement is supported, contradicted or there is no evidence for the statement in the given abstract. Output SUPPORT if the statement is supported by the abstract. Output CONTRADICT if the statement is in contradiction with the abstract and output NO EVIDENCE if there is no evidence for the statement in the abstract.\u201d ), resulting in a precision of 0.81, a recall of 0.80, and an F-1 score of 0.79. Therefore, our model has better performance and due to the much lower number of parameters was more efficient.\xa0"}),(0,Ee.jsx)("p",{children:"On top of the verification using this model, we have also calculated the closest sentence from the abstract using dot product similarity (using the same MSMarco model we use for semantic search). We visualize the closest sentence to the generated one on the user interface by hovering over a sentence.\xa0"}),(0,Ee.jsx)("h3",{children:"User interface"}),(0,Ee.jsx)("p",{children:"We have developed a user interface, to which users can register, log in, and ask questions, where they will get referenced answers, links to PubMed, and verification by described posterior model. Here are a few screenshots of the user interface:"}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*WzueioyBwfYlagnhnehGIg.png"}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*FwzI9FAKO-Mojuk4rLuD2Q.png"}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/0*Xh3CEZQ5FzYXS77C"}),(0,Ee.jsx)("p",{children:"We are here to present our experience from building the VerifAI project, which is the biomedical generative question-answering engine with verifiable answers. We are open-sourcing whole code and models and we are opening the application, at least temporarily (depends on the budget for how long, and how and whether we can find a sustainable solution for hosting). In the next section, you can find the links to the application, website, code, and models.\xa0"}),(0,Ee.jsx)("p",{children:"The application is a result of the work of multiple people (see under Team section) and almost a year of research and development. We are happy and proud to present it now to a wider public and hope that people will enjoy it, and as well contribute to it, to make it more sustainable and better in the future.\xa0"}),(0,Ee.jsx)("h3",{children:"Cite our\xa0papers"}),(0,Ee.jsx)("p",{children:"If you use any of the methodology, models, datasets, or are mentioning this project in your paper\u2019s background section, please cite some of the following papers:"}),(0,Ee.jsxs)("ul",{class:"postList",children:[(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://arxiv.org/pdf/2402.18589",target:"_blank",children:"Ko\u0161prdi\u0107, M., Ljaji\u0107, A., Ba\u0161aragin, B., Medvecki, D., & Milo\u0161evi\u0107, N. \u201cVerif. ai: Towards an Open-Source Scientific Generative Question-Answering System with Referenced and Verifiable Answers.\u201d The Sixteenth International Conference on Evolving Internet INTERNET 2024 (2024)."})}),(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://arxiv.org/abs/2407.05015",target:"_blank",children:"Bojana Ba\u0161aragin, Adela Ljaji\u0107, Darija Medvecki, Lorenzo Cassano, Milo\u0161 Ko\u0161prdi\u0107, Nikola Milo\u0161evi\u0107 \u201cHow do you know that? Teaching Generative Language Models to Reference Answers to Biomedical Questions\u201d, The 23rd BioNLP Workshop 2024, Colocated with ACL 2024"})})]}),(0,Ee.jsx)("h3",{children:"Availability"}),(0,Ee.jsxs)("p",{children:["The application can be accessed and tried at ",(0,Ee.jsx)("a",{href:"https://verifai-project.com/",target:"_blank",children:"https://verifai-project.com/"})," or ",(0,Ee.jsx)("a",{href:"https://app.verifai-project.com/",target:"_blank",children:"https://app.verifai-project.com/"}),". Users can here register, and ask questions to try our platform."]}),(0,Ee.jsxs)("p",{children:["The code of the project is available at GitHub at ",(0,Ee.jsx)("a",{href:"https://github.com/nikolamilosevic86/verifAI",target:"_blank",children:"https://github.com/nikolamilosevic86/verif.ai"}),". The QLoRA adapters for Mistra 7B instruct can be found on HuggingFace at ",(0,Ee.jsx)("a",{href:"https://huggingface.co/BojanaBas/Mistral-7B-Instruct-v0.2-pqa-10",target:"_blank",children:"https://huggingface.co/BojanaBas/Mistral-7B-Instruct-v0.2-pqa-10"})," and ",(0,Ee.jsx)("a",{href:"https://huggingface.co/BojanaBas/Mistral-7B-Instruct-v0.1-pqa-10",target:"_blank",children:"https://huggingface.co/BojanaBas/Mistral-7B-Instruct-v0.1-pqa-10"}),". A generated dataset for fine-tuning the generative component can be found also on HuggingFace at ",(0,Ee.jsx)("a",{href:"https://huggingface.co/datasets/BojanaBas/PQAref",target:"_blank",children:"https://huggingface.co/datasets/BojanaBas/PQAref"}),". A model for answer verification can be found at ",(0,Ee.jsx)("a",{href:"https://huggingface.co/MilosKosRad/TextualEntailment_DeBERTa_preprocessedSciFACT",target:"_blank",children:"https://huggingface.co/MilosKosRad/TextualEntailment_DeBERTa_preprocessedSciFACT"}),"."]}),(0,Ee.jsx)("h3",{children:"Team"}),(0,Ee.jsxs)("p",{children:["The VerifAI project was developed as a collaborative project between Bayer Pharma R&D and the Institute for Artificial Intelligence Research and Development of Serbia, funded by the NGI Search project under grant agreement No 101069364. The people involved are ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/nikolamilosevic1986/",target:"_blank",children:"Nikola Milosevic"}),", ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/lorenzo-cassano-360b631b1/",target:"_blank",children:"Lorenzo Cassano"}),", ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/bojana-basaragin/",target:"_blank",children:"Bojana Ba\u0161aragin"}),", ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/milo%C5%A1-ko%C5%A1prdi%C4%87/",target:"_blank",children:"Milo\u0161 Ko\u0161prdi\u0107"}),", ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/adelacrnisanin/",target:"_blank",children:"Adela Ljaji\u0107"})," and ",(0,Ee.jsx)("a",{href:" https://www.linkedin.com/in/darija-medvecki-b27468ab/",target:"_blank",children:"Darija Medvecki"}),"."]}),(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*UqR82MmSorm4C2nwuV-tkg.jpeg"})]}),Date:"16.07.2024",Author:"Nikola Milosevic",CoverImage:"https://cdn-images-1.medium.com/max/1600/1*eeAdmTh0lj7BjO4dCx98VA.png",CoverText:(0,Ee.jsxs)("p",{children:["Last September (2023), we embarked on the development of the ",(0,Ee.jsx)("a",{href:"https://verifai-project.com",target:"_blank",children:"VerifAI project"}),", after receiving funding from the ",(0,Ee.jsx)("a",{href:"https://www.ngisearch.eu",target:"_blank",children:"NGI Search"})," funding scheme of Horizon Europe."]}),ImageList:["https://cdn-images-1.medium.com/max/1600/1*1g3ejM65p5dXc2wmdMvG9w.png","https://cdn-images-1.medium.com/max/1600/1*eeAdmTh0lj7BjO4dCx98VA.png","https://cdn-images-1.medium.com/max/1600/1*FwzI9FAKO-Mojuk4rLuD2Q.png"]},{id:"the-european-union-must-keep-funding-free-software",Title:"The European Union must keep funding free software",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"Since 2020, Next Generation Internet (NGI) programmes, part of European Commission's Horizon programme, fund free software in Europe using a cascade funding mechanism (see for example NLnet's calls). This year, according to the Horizon Europe working draft detailing funding programmes for 2025, we notice that Next Generation Internet is not mentioned any more as part of Cluster 4."}),(0,Ee.jsx)("p",{children:"NGI programmes have shown their strength and importance to support the European software infrastructure, as a generic funding instrument to fund digital commons and ensure their long-term sustainability. We find this transformation incomprehensible, moreover when NGI has proven efficient and ecomomical to support free software as a whole, from the smallest to the most established initiatives. This ecosystem diversity backs the strength of European technological innovation, and maintaining the NGI initiative to provide structural support to software projects at the heart of worldwide innovation is key to enforce the sovereignty of a European infrastructure."}),(0,Ee.jsx)("p",{children:"Contrary to common perception, technical innovations often originate from European rather than North American programming communities, and are mostly initiated by small-scaled organizations."}),(0,Ee.jsx)("p",{children:"Previous Cluster 4 allocated 27 millions euros to:"}),(0,Ee.jsxs)("ul",{children:[(0,Ee.jsx)("li",{children:'"Human centric Internet aligned with values and principles commonly shared in Europe" ;'}),(0,Ee.jsx)("li",{children:'"A flourishing internet, based on common building blocks created within NGI, that enables better control of our digital life" ;'}),(0,Ee.jsx)("li",{children:'"A structured eco-system of talented contributors driving the creation of new internet commons and the evolution of existing internet commons" .'})]}),(0,Ee.jsx)("p",{children:"In the name of these challenges, more than 500 projects received NGI funding in the first 5 years, backed by 18 organisations managing these European funding consortia."}),(0,Ee.jsx)("p",{children:"NGI contributes to a vast ecosystem, as most of its budget is allocated to fund third parties by the means of open calls, to structure commons that cover the whole Internet scope - from hardware to application, operating systems, digital identities or data traffic supervision. This third-party funding is not renewed in the current program, leaving many projects short on resources for research and innovation in Europe."}),(0,Ee.jsx)("p",{children:'Moreover, NGI allows exchanges and collaborations across all the Euro zone countries as well as "widening countries"\xb9, currently both a success and and an ongoing progress, likewise the Erasmus programme before us. NGI also contributes to opening and supporting longer relationships than strict project funding does. It encourages to implement projects funded as pilots, backing collaboration, identification and reuse of common elements across projects, interoperability in identification systems and beyond, and setting up development models that mix diverse scales and types of European funding schemes.'}),(0,Ee.jsx)("p",{children:"While the USA, China or Russia deploy huge public and private resources to develop software and infrastructure that massively capture private consumer data, the EU can't afford this renunciation."}),(0,Ee.jsx)("p",{children:"Free and open source software, as supported by NGI since 2020, is by design the opposite of potential vectors for foreign interference. It lets us keep our data local and favors a community-wide economy and know-how, while allowing an international collaboration."}),(0,Ee.jsx)("p",{children:"This is all the more essential in the current geopolitical context: the challenge of technological sovereignty is central, and free software allows to address it while acting for peace and sovereignty in the digital world as a whole."})]}),Date:"16.07.2024",Author:"Nikola Milosevic",CoverImage:dt,CoverText:(0,Ee.jsx)("p",{children:"Since 2020, Next Generation Internet (NGI) programmes, part of European Commission's Horizon programme, fund free software in Europe using a cascade funding mechanism (see for example NLnet's calls). This year, according to the Horizon Europe working draft detailing funding programmes for 2025, we notice that Next Generation Internet is not mentioned any more as part of Cluster 4."}),ImageList:[]},{id:"ailiteracy-debunking-misconceptions",Title:"AI Literacy: Debunking Pre- and Misconceptions",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"Within society, we still encounter surprisingly large gaps in knowledge regarding AI, owing to insufficient information or misinformation. Some false conceptions may not have significant consequences and will be debunked along the way through more frequent interaction between people and AI, while others are eventually doubly harmful in the sense that they are so far removed from true state of affairs that they can instill genuine fear and anxiety in individuals, which over time can lead to undesirable effects on even the AI industry itself, resulting in its stagnation due to needlessly hindering the acceptance and utilization of its advancements."}),(0,Ee.jsx)("p",{children:"In the meantime, while such background inaccurate notions spread, AI is developing to be best aligned with us and our needs - and it's worth reexamining acquired concerns and making a real effort to understand it properly. Thus, the aim of this essay is to portray a realistic picture of what AI is and what its 'intentions' are, by uncovering the accompanying 'human nature' factors that, alongside inadequate knowledge, contribute to the emergence of the 'loudest' myths about it, and providing fact-based explanations as to why they really have no place in actuality."}),(0,Ee.jsx)("img",{src:lt,alt:"Image of scientist and AI",className:"blog"}),(0,Ee.jsx)("h3",{children:"Conceptions Based on Distrust/Fear"}),(0,Ee.jsx)("h4",{children:"'AI will render human expertise obsolete.'"}),(0,Ee.jsx)("p",{children:"Taking into consideration the extent to which this concern has grown, perhaps above all else, we should address it. The first thing that is important to emphasize is that the goal of engaging AI in various business spheres, and indeed the goal of technological advancement, has never been to 'replace' humans in any way. Yes, this may seem easily achievable when we consider the benefits that employers can derive from such a thing, and that AI is becoming increasingly proficient in many aspects. And yes, we are beginning to encounter some examples of individuals who have lost half or all their working hours. However, despite all this, you can rest assured that there is not much reason for panic."}),(0,Ee.jsx)("p",{children:"What history remembers are the three industrial revolutions that brought about major changes regarding professions. Currently, the fourth is underway, in which AI plays a significant role. A chronological overview of these significant events suggests that what happened during previous rapid increases in technology usage was not the disappearance of jobs as such, but rather the elimination of old positions and the emergence of new, updated ones after the market stabilizes. Machines took over physical efforts (and mostly everything we least like to do), leaving people with more comfortable responsibilities. The only consequence of these changes is better overall results, both in terms of quantity and quality. Guided by this insight, it is reasonable to assume that the same will happen again this time, and we should start preparing ourselves, not for our work to become redundant, but for it to be aligned with the work that this new intelligent business partner will perform alongside us."}),(0,Ee.jsx)("h4",{children:"'AI is necessarily biased.'"}),(0,Ee.jsx)("p",{children:"This is as equally untrue as considering AI to be completely objective. The key to understanding this aspect of the topic is that existing AI systems are objective only to the extent that the data they are trained on, the algorithms they use, and the ways in which they are used in practice allow them to be. Every recorded biased moment in AI stems from the fact that all AI systems perpetuate and amplify existing biases in the data they are trained on - because that is the only way they can function. (Bewersdorff et al. 2023: 9) The solution lies in selecting and using high-quality, verified tools that, when used together, are capable of producing the desired output."}),(0,Ee.jsx)("p",{children:"Furthermore, upon deeper reflection, it may not always be desirable for AI results to possess the quality of complete objectivity. While the task is certainly to make AI less prone to unwarranted exclusion or elevation of certain groups of people, beliefs, etc., it remains to be seen to what extent it will be possible to deprive AI of the ability to individualize while still maintaining the element of personalized service (an experience that users definitely enjoy). What seems like a reasonable compromise is for personal use systems to contain additional components that enable them to recognize differences in personal preferences and needs (e.g., a smart OS personal assistant), while others would ideally be devoid of this and perceive circumstances in a more generalized manner (e.g., a bank's chatbot)."}),(0,Ee.jsx)("h4",{children:"'AI represents a mysterious problem space.'"}),(0,Ee.jsx)("p",{children:"This conclusion might be easy to draw due to the significant complexity of AI at first glance and its rapidly growing capabilities, but it is just a sign of a deep misunderstanding of it. (Bewersdorff et al. 2023: 7) When we start learning about segments and processes within AI systems (as is the case with any other completely new subject), everything slowly ceases to be enigmatic once and for all. In the process, we will also realize that, while it is true that those systems have their own mechanisms (and that's precisely what enables them to surpass us and thus strengthen us in certain fields of operation), it is inevitable that humans, as their creators, have exerted a crucial influence on them, which from the outset ensures a good level of our understanding of how they operate, and thus the ability to control them."}),(0,Ee.jsx)("p",{children:"If we are convinced that we're dealing with something that, for whatever reason, we can't fully understand, at the very least we'll be skeptical and persistently avoid it. In that case, when it comes to AI, we may miss out on utilizing various useful tools that are offered. However, it can also lead us to automatically characterize it as unpredictable and potentially dangerous, believing that we are unable to have a clear insight and sufficient control over its goals and powers. Such an understanding is particularly problematic because it implies a sense of fear that is not directed towards any concrete (real) risk but rather is perceived as a constant invisible threat, so we can start feeling unease frequently hearing about all the new AI inventions, and also because it leaves too much room for projecting various 'possible' ending scenarios, thus prolonging and strengthening false alarm."}),(0,Ee.jsx)("p",{children:"It's important to know that these apprehensions are unfounded because AI is very far from breaking away from human authority in any sense, or any kind of independence and autonomy (if it ever could even reach it at all)."}),(0,Ee.jsx)("h3",{children:"Conceptions Based on Underestimation"}),(0,Ee.jsx)("h4",{children:"'AI is superfluous to me.'"}),(0,Ee.jsx)("p",{children:"Besides the fact that it's already complicated to bypass AI technologies at this moment, given that we are already interacting with them without even noticing (e.g., every suggested word on Google search engine is thanks to AI), the future will make their use inevitable for everyone. It's likely that AI will relatively soon become responsible for all payments, entering one's office, etc., thanks to its 'magical' ability to make everything more efficient and simpler. Thus, someone's further rejection of these innovations implies frequent difficulties in performing their routine activities."}),(0,Ee.jsx)("p",{children:"The reasons behind someone's stance that they don't want to have anything to do with AI are usually related to the impression that its use is actually a kind of hindrance. This can mean that they personally don't feel the need to change their existing habits, or that they are uncomfortable relying on AI insights due to doubts about its competence, or perhaps that they feel a sense of guilt when using AI tools, considering it unjustifiably leveraging others' abilities for their own projects. It is true that AI is rapidly changing the way we operate, and we are expected to keep up with it. Also, AI fallibility is a real problem that must be addressed, as trust is not given for free. It can be difficult, as well, to strike the right balance, and sometimes it is necessary to limit AI use to ensure the authenticity of our results. However, it is still highly advisable to keep in mind that one of the main purposes of AI development is and will be to facilitate our daily and professional tasks, so, in the long run, it is much more beneficial than harmful for us to gradually become familiar with it so that we can stay abreast of the improvements it brings and know how to enjoy them in the best possible way for us."}),(0,Ee.jsx)("h4",{children:"'AI is only a weak competitor to humans.'"}),(0,Ee.jsx)("p",{children:"In the given context, creativity is usually the first target. (Bewersdorff et al. 2023: 7) If we hold this conception, we see AI mainly as a tool for automating repetitive tasks and believe it should not have the right to participate in art because it lacks the necessary capacity to contribute on an equal footing with humans. There are numerous arguments against attributing this trait to AI, and our advocacy for it may have a point, but not necessarily in every way - this debate can rightfully be lengthy and still end without a uniform conclusion. Whatever the case may be, in that position, we certainly miss seeing and understanding the important role that it currently has in shaping our cultural landscape."}),(0,Ee.jsx)("p",{children:"This critique can also apply to general AI capabilities, where it is argued that AI is automatically inferior to humans simply because it has little in common with (our) unique natural type of intelligence. (Bewersdorff et al. 2023: 7) It is not disputed that AI systems have quite distinct strategies from human brain, but this is not a legitimate reason to negatively compare them to us - rather, it is about acknowledging that we are clever in different ways. It should be recognized that in some areas, AI can solve problems and make decisions better than humans. Similarly, it is okay that it still has its own limitations regarding tasks that are easy for us, such as understanding context and recognizing emotions."}),(0,Ee.jsx)("p",{children:"Building on this, the lack of emotions is another target if we consider that absence of them means something cannot express empathy, give good advice, or just be morally upright. (Bewersdorff et al. 2023: 7) Once again, today\u2019s AI is not a self-regulating mechanism; it only adopts the values and habits that we humans instill in it. Therefore, it logically follows that proper training will lead to benevolent AI in this regard."}),(0,Ee.jsx)("h4",{children:"'AI is (that) one thing.'"}),(0,Ee.jsx)("p",{children:"Limited understanding of the various types of AI may be the naivest falsehood regarding it. This viewpoint can be formed when we lack acquaintance with a broader range of AI resources and rather rely on just one."}),(0,Ee.jsx)("p",{children:"However, it is fundamentally flawed to perceive AI as a singular entity. AI manifests in numerous forms and serves diverse purposes.AI is not confined to physical embodiments like robots or VR equipment; many AI technologies exist purely in software. (Bewersdorff et al. 2023: 6) Also, it is not restricted to content generation; among other tasks. AI can aid in discovering new compounds."}),(0,Ee.jsx)("p",{children:"Understanding the spectrum of AI, besides its good for opening new possibilities for our own use, is a key component for correctly comprehending its ability to drive changes in society. This is important not only so we can see how it will contribute to us but also to recognize probable challenges that may arise with it in the future, and to timely contemplate their solutions."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"We have observed that the prevailing pre- and misconceptions surrounding AI stem from an inconvenient combination of a lack of adequate knowledge and the typical feelings we tend to experience when facing something predominantly unfamiliar. Nevertheless, regardless of anyone's previous resistance, by opening a bit more to this new reality, seeking answers to their questions, and experimenting with innovations, there is a great chance that they will, at some point, catch themselves being much more enthusiastic, realizing that they are actually very privileged to be living in this exact era."}),(0,Ee.jsx)("h3",{children:"References"}),(0,Ee.jsx)("p",{children:"Bewersdorff, Arne, Yhai, Xiaoming, Roberts, Jessica & Claudia Nerdel (2023). \u201eMyths, mis- and preconceptions of artificial intelligence: A review of the literature\u201c, Computers and Education: Artificial Intelligence: 1-9."})]}),Date:"09.04.2024",Author:"Angela Pupovac",CoverImage:lt,CoverText:(0,Ee.jsx)("p",{children:"Within society, we still encounter surprisingly large gaps in knowledge regarding AI, owing to insufficient information or misinformation. Some false conceptions may not have significant consequences and will be debunked along the way through more frequent interaction between people and AI, while others are eventually doubly harmful in the sense that they are so far removed from true state of affairs that they can instill genuine fear and anxiety in individuals, which over time can lead to undesirable effects on even the AI industry itself, resulting in its stagnation due to needlessly hindering the acceptance and utilization of its advancements."}),ImageList:[]},{id:"presentation-internet2024",Title:"Verif.ai presented at The Sixteenth International Conference on Evolving Internet (INTERNET 2024)",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"Dear Verif.ai Community,"}),(0,Ee.jsx)("p",{children:"We presented the progress and current stage of the Verif.ai project at the sixteenth International Conference on the Evolving Internet 2024."}),(0,Ee.jsx)("p",{children:'The paper titled "Verif.ai: Towards an Open-Source Scientific Generative Question-Answering System with Referenced and Verifiable Answers" has been published in the conference proceedings.'}),(0,Ee.jsx)("p",{children:"It is our pleasure to provide you with the materials used at the conference. Explore them and learn about the mechanisms behind the innovative VerifAI system!"}),(0,Ee.jsx)("p",{children:"Links:"}),(0,Ee.jsxs)("ul",{children:[(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://www.iaria.org/conferences2024/INTERNET24.html",target:"_blank",children:"The Sixteenth International Conference on Evolving Internet (INTERNET 2024)"})}),(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://www.slideshare.net/slideshows/verifai-project-presentation-internet2024-conference/266753001",target:"_blank",children:"Verif_ai Project Presentation - INTERNET2024 Conference | PPT (slideshare.net)"})}),(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://arxiv.org/pdf/2402.18589.pdf",target:"_blank",children:"Verif-ai paper"})})]}),(0,Ee.jsx)("p",{children:"Stay tuned for more updates on our progress!"})]}),Date:"15.03.2024",Author:"Angela Pupovac",CoverImage:dt,CoverText:(0,Ee.jsx)("p",{children:"We presented the progress and current stage of the Verif.ai project at the sixteenth International Conference on the Evolving Internet 2024."}),ImageList:[]},{id:"evolution-ai",Title:"Genesis and Evolution of AI'",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"If we wish to understand how and when AI began, we will uncover a long and highly interesting process. When did the belief in constructing functional mechanical entities resembling humans emerge? What inspired the development of many intelligent technologies we use today? The initial ideas can be traced back to various ancient philosophical discussions that explored the possibility of artificial humans. There was no shortage of imagination, and quality arguments were formed, but there wasn't much knowledge about where to start in practice. Fortunately, certain innovators appeared. For example, Leonardo da Vinci decided to put some of the speculations into action and successfully constructed a robot dressed in armor, called Leonardo's mechanical knight, capable of making several human-like motions, and it was declared fully functional. These and similar initial discoveries instilled new hope in creating an 'electronic brain' and empowered certain scientists for the first serious attempts. But, did everything go smoothly, or were there any issues? Researching the past reveals that the development of AI has had significant ups and downs. Therefore, the purpose of this essay is to acquaint the curious with the moments and figures that marked the beginning of the non-theoretical history of AI."}),(0,Ee.jsx)("img",{src:ot,alt:"Image of scientist and AI",className:"blog"}),(0,Ee.jsx)("h3",{children:"Father of AI"}),(0,Ee.jsx)("p",{children:"The British logician, mathematician, and cryptographer, Alan M. Turing, is often popularly referred to as the father of AI and theoretical and modern computer science."}),(0,Ee.jsx)("p",{children:"During World War II, Turing managed to crack the 'Nazi Enigma Code', thus ensured the Allied victory. By 1950, shortly after the emergence of the first computer, Turing was already motivated by the possibility that machines could think like humans. Therefore, in one of his works, he proposed conducting testing of machine intelligence, initially known as the 'imitation game', and today known as the 'Turing Test'. At that time, doubts about Turing's idea were significant. However, today we have what we call AI with all its benefits."}),(0,Ee.jsx)("h3",{children:"Birthplace of AI"}),(0,Ee.jsx)("p",{children:"In the early 1950s, AI systems had various names (cybernetics, automata theory, complex information processing), depending on the conceptual orientation. This changed in 1955, when John McCarthy, a newly appointed assistant professor of mathematics at Dartmouth College, decided to bring together a group of colleagues to delve into the realm of thinking machines. Finally, he gives their field of research a neutral name 'artificial intelligence'."}),(0,Ee.jsx)("p",{children:"In the same year, McCarthy approached the Rockefeller Foundation to request funding for a two-month workshop at Dartmouth, and soon after, the project was formally proposed by McCarthy, Marvin Minsky, Nathaniel Rochester, and Claude Shannon. The undertaking in question is 'Dartmouth Summer Research Project on Artificial Intelligence', now widely regarded as a foundational event in the field of AI."}),(0,Ee.jsx)("p",{children:"The Foundation provided only half the money they requested, and an additional complication was that it was planned for eleven mathematicians and cognitive scientists to participate, but some of them did not come, while around ten others came for short periods. Despite everything, the event was held and lasted a full nine weeks during the summer of 1956. All of it took place on the top floor of Dartmouth College, which housed the Math Department."}),(0,Ee.jsx)("p",{children:"It is important to emphasize that even though they failed in what was initially planned, namely making an intelligent algorithm per se, they achieved something greater through their participation. Most of them remain remembered as pioneers who formalized the concept of AI as a branch of science, inspiring many people to pursue AI goals in their own way."}),(0,Ee.jsx)("h3",{children:"AI Winter"}),(0,Ee.jsx)("p",{children:"Although AI summer predominates from the mid-twentieth century, bringing a significant surge of influential ideas and discoveries, some setbacks winters will also be remembered."}),(0,Ee.jsx)("p",{children:"The term 'AI winter' refers to a period of significantly reduced interest in artificial intelligence research. In this field, there have been several hype cycles, typically accompanied by difficulties such as dissatisfaction within the community, public criticism, lack of funding, and hopes for progress. Nonetheless, after each 'cooling off' period, there would be a recovery within a few years, or in the worst case, decades later."}),(0,Ee.jsx)("p",{children:"Two longer periods of winter have been recorded: the first from 1974-1980, and the next from 1987-2012. The term itself was coined in 1984 and was the subject of public debate at the annual meeting of AAAI, or the American Association for Artificial Intelligence. Experienced and highly significant researchers Roger Schank and Marvin Minsky personally faced the first period and were able to predict the next based on the preceding overly enthusiastic years. They pointed out a chain reaction, known as the 'nuclear winter'. Indeed, three years later, the second collapse occurred."}),(0,Ee.jsx)("p",{children:"Since 2012, the field of AI has been regaining strength. Now, in 2024, AI is experiencing its most glorious era, which we rightfully can call a 'boom phase' - and this time, there are hardly any signs indicating impending storms."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"The journey through the evolution of AI, from visionary insights and its inception, through the consistent efforts of researchers invested in development and overcoming occasional downturns, paints a rich picture of human and scientific curiosity, ingenuity, and resilience. The current era stands as evidence of our true commitment to the task of collectively transforming something that was once purely speculative into reality. With optimism, we welcome it and continue to look ahead, envisioning humanity's potential to finally evolve into its best self with such support."})]}),Date:"10.03.2024",Author:"Angela Pupovac",CoverImage:ot,CoverText:(0,Ee.jsx)("p",{children:"Although AI summer predominates from the mid-twentieth century, bringing a significant surge of influential ideas and discoveries, some setbacks winters will also be remembered."}),ImageList:[]},{id:"advanced-forms-ai",Title:"Advanced Forms of AI: AGI and ASI",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"As AI rapidly advances, it has reached and even surpassed human capabilities in some domains. We're adjusting to the societal changes stemming from this progress and striving to find compromises to harness its benefits. However, the future holds much more radical innovations than, for example, AI voice assistant or self-driving cars. Indeed, AI has the great potential to fully cover a broad spectrum of applications, initially mirroring human capabilities, and eventually cover all of them, surpassing humans by far. This essay diverges from artificial narrow intelligence (ANI) and delves into key unintended consequences that could arise when futuristic forms emerge, offering brief guidelines for potential solutions."}),(0,Ee.jsx)("img",{src:st,alt:"Image of thinking and decision making",className:"blog"}),(0,Ee.jsx)("h3",{children:"Artificial General Intelligence (AGI)"}),(0,Ee.jsx)("p",{children:"AGI will be intelligence that mimics, or to some extent surpasses, human cognitive performance in many areas of interest. Thus, AGI cannot be, for example, a chess program like \u2018Stockfish\u2019, since it is intelligent only within that specific domain. By wide agreement, AGI entails the ability to perform various tasks aligned with ultimate goals across different contexts and environments. This standard will be attainable if it effectively generalizes acquired knowledge. (Goertzel 2014: 3)"}),(0,Ee.jsx)("p",{children:"However, currently, limitations lie in the fact that for every real-world AI system, although it may be highly successful in solving certain tasks, there are some learning tasks on which it is unacceptably slow, so it is expected that even the application of extended AI will be somewhat limited to certain types of problems that it excels at. (Goertzel 2014: 2, 3)"}),(0,Ee.jsx)("h3",{children:"AGI Hazards"}),(0,Ee.jsx)("p",{children:"There are no unambiguous predictions about when AGI will be achieved. However, there are a couple of obvious challenges that we need to address upon its emergence, so it would be responsible of us as societies to start preparing soon through information and education. The first one is already gaining strength. It concerns the potential loss of jobs for humans. There are claims that within the next 20 years, computers and robots will demonstrate their ability to competitively compete with human intelligence. When that happens, the issue of job displacement could be significant. This trouble is often justified by studies from the University of Oxford, the Organization for Economic Co-operation and Development (OECD), and PwC (formerly Price Waterhouse Coopers), who predict that employment will drop by between 9 and 38 percent from current levels. (Okechukwu Ekwueme et al. 2023: 8) If society were to pay closer attention to such warnings promptly and take them seriously, we would have enough time to adapt employee skills, ensuring that new versions of professions fit into the upcoming technological landscape. The next one concerns preserving mental health. If everything can be readily obtained without investing too much effort, enjoyment and sense of purpose may start to disappear. This is undoubtedly concerning; however, the solution can be simple. Again, we need to learn to live with the new tools. If we use them moderately, only when necessary, life can actually become easier and more joyful. As always, part of the responsibility lies with us, and we are free to determine how to use the resources available to us."}),(0,Ee.jsx)("h3",{children:"Superintelligence (ASI)"}),(0,Ee.jsx)("p",{children:"According to a rough definition, superintelligent systems are those that will exhibit a form of general intelligence far beyond human capacity. The capability to learn fast, deal with uncertainty and probabilistic information, as well as infer concepts from sensory input and internal states for the purpose of logical reasoning, should be integral features of the blueprint for AI systems aiming to achieve superintelligence \u2013 whether sentient or not."}),(0,Ee.jsx)("p",{children:"It's possible to identify several (5) technological pathways to the emergence of Super AI: artificial intelligence, whole brain emulation, biological insight, human-machine interfaces, and networks and organizations. (Bostrom 2014: 51) It has been shown that the progress of AI is the most likely and fastest pathway because it does not necessarily require a massive advancement in technologies like the others. It is believed that it will still take a lot of time and significant effort, but theoretically, there is nothing preventing someone from understanding how to do it, sitting down, and writing the code for seed ASI on a conventional computer today. (Bostrom 2014: 71)"}),(0,Ee.jsx)("h3",{children:"ASI Hazards"}),(0,Ee.jsx)("p",{children:"One day, in the relatively distant future, we might encounter this entity. Approximately, it's a sci-fi supercomputer - except it doesn't have to be a computer or a robot at all; it could exist in its VR or some entirely different form. It is required to employ imagination and acknowledge the possibility that some kind of poorly designed ASI, for instance, could engage in war with humans (like in the movie Terminator). Alternatively, as some sort of sage, which, fundamentally, would be in relation to us, it might choose a type of meditation and tranquility as it finds no purpose in interacting with humans to contemplate undisturbed within itself undisturbed. Or we could face a situation where it has created and prioritized independent desires and ambitions and decided to pursue them, ignoring the needs of its creators. This is a depiction of just a few undesirable consequences of launching a faulty version of SAI. In any case, since it would be too powerful, there's no certainty that there's suitable weaponry for warfare against it, so it's best that such a war never occurs. Protection should consist of prevention, i.e., careful, ethical shaping of the system in the preceding, early stages."}),(0,Ee.jsx)("h3",{children:"How Are We Doing?"}),(0,Ee.jsx)("p",{children:"At this juncture, such demands may appear daunting to the average reader \u2013 as it is not easily conceivable how capabilities such as speculation, functional senses, and emotions, inherently belonging to the living world, could be implemented into a machine system. However, the rise of AI could lead to an intelligence explosion. (Okechukwu Ekwueme et al. 2023: 5) Upon examining the breakthroughs launched in the past few years, we will notice that we have rapidly progressed towards realizing these scenarios. It seems that scientists have found alternative ways to meet criteria and compensate for certain conscious (and unconscious) mechanisms inherent to humans."}),(0,Ee.jsx)("p",{children:"For instance, regarding the ability of prediction, the vivid empirical experience of 'familiarity' with the nature of something (surprisingly successful) replaces the tactic of gathering, sorting, and amalgamating a greater amount of information about subjects based on their (voluntary) recorded actions, employed by companies such as Google, Facebook, etc., which is aimed precisely at predicting their likely future states or future interests and needs. Moreover, among the latest discoveries, we will encounter robots that, instead of possessing a sense of smell like humans, are trained to distinguish substances by the odor they emit in a different way \u2013 along with the accompanying advanced recognition ability to discern which of them are dangerous and which are not. Then, there are autonomous trucks and other types of vehicles that, instead of using the sense of sight, successfully perform long journeys without a driver using special sensors \u2013 and that without the possibility of making mistakes that occur to human beings due to fatigue, shifting attention focus, etc. In place of emotional intelligence that enables human beings with empathic ability, LLM\u2019s possess algorithmic intelligence at a high-level resembling cognitive and are capable of technical 'empathy' based on recognizing written content and responding appropriately to certain patterns."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"Achieving describes milestone has always been the 'Holy Grail' of AI research. (Schlicht 2022: 5) Therefore, it is expected that it offers more and more opportunities. However, if we want to avail ourselves of these and have AI take on some of the problems that burden us, we must also ensure its integration into our world. With our vigilance and adaptability, as well as ensuring its quality construction, we can look forward to the desired outcome."}),(0,Ee.jsx)("h4",{children:"References"}),(0,Ee.jsx)("p",{children:"Goertzel, Ben (2014). \u201eArtificial General Intelligence: Concept, State of the Art, and Future Prospects\u201c, Journal of Artificial General Intelligence 5(1):1-46."}),(0,Ee.jsx)("p",{children:"Bostrom, N. (2014). Superintelligence: Paths, dangers, strategies (Oxford: Oxford University Press)."}),(0,Ee.jsx)("p",{children:"Okechukwu Ekwueme, Francis, Areji C. Anthony, Ugwu, Anayochukwu. (2023). \u201eBeyond the Fear of Artificial Intelligence and Loss of Job: a Case for Productivity and Efficiency\u201c, Qeios 10.32388: 1-11."}),(0,Ee.jsx)("p",{children:"Schlicht, Tobias (2022). \u201eMinds, Brains, and Deep Learning: The Development of Cognitive Science Through the Lens of Kant\u2019s Approach to Cognition\u201c, in Hyeongjoo Kim & Dieter Sch\xf6necker (ed.), Kant and Artificial Intelligence (Berlin: De Gruyter): 3-38."})]}),Date:"19.02.2024",Author:"Angela Pupovac",CoverImage:st,CoverText:(0,Ee.jsx)("p",{children:"According to a rough definition, superintelligent systems are those that will exhibit a form of general intelligence far beyond human capacity. The capability to learn fast, deal with uncertainty and probabilistic information, as well as infer concepts from sensory input and internal states for the purpose of logical reasoning, should be integral features of the blueprint for AI systems aiming to achieve superintelligence \u2013 whether sentient or not."}),ImageList:[]},{id:"genai-decision-making",Title:"Generative AI: Ally in Decision-Making",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"People (rightfully) tend to be anxious about making decisions on a rational basis. The question we ask ourselves is, 'Have I thought this over long enough?' or in other words, 'Have I taken enough data into consideration?'. Indeed, it's very difficult to be completely sure - there can always be more. That's why it often happens that we just keep reconsidering until we run out of time, and at the moment of decision-making, we resort to snap judgments. This doesn't sound like the best method, right?"}),(0,Ee.jsx)("img",{src:rt,alt:"Image of thinking and decision making",className:"blog"}),(0,Ee.jsx)("p",{children:"Now, imagine that you're not alone in this and that you have a skilled, amicable assistant at hand for every dilemma. AI wants to become that 'when it grows up'. Not too long ago, this would have sounded too good to be true. Until today, we've realized that there is no concrete reason to claim that such a future cannot become a reality. However, there are many indicators that this process of advancement will not be easy at all and we will have to make a concerted effort to ensure success. This essay explores some of the main conditions that must be met in order to achieve this goal."}),(0,Ee.jsx)("h3",{children:"Explainable AI (XAI)"}),(0,Ee.jsx)("p",{children:"In various domains, it is fair for decision-makers to be able to justify the reasons for their decisions to others, so they can rightfully remain in their positions. Thus, if a decision is made (at least partially) based on the conclusions of an AI system, it is essential for building a trustworthy relationship between humans and AI to provide explanations of how it operates and arrives at its results. (Ferreira & Monteiro 2021: 1) This applies whether we are collaborators in this process or observers. If we are the ones who will bear responsibility for a decision, it will be important for us to know the basis on which it is made. And if the decision is made by someone else, we will have a need to understand and evaluate it if it concerns us or the society in which we live."}),(0,Ee.jsx)("p",{children:"Only AI accompanied by the attributes of transparency and interpretability is worthy of being an (super) advisor. Aside from the availability of clear and suitable technical explanations, for most decision-makers, it's also crucial to ensure that the way AI addresses ethical challenges is in line with the greatest human welfare."}),(0,Ee.jsx)("h3",{children:"Tech - Snapshot"}),(0,Ee.jsx)("p",{children:"The first of the key criteria for establishing AI as a competent decision-making ally is that we know it is consistently precise and has been trained on accurate, verifiable data. - yet we still cannot truly say that this has been ensured."}),(0,Ee.jsx)("p",{children:"So far, we've had the opportunity to enjoy the assistance of certain tools. We often hear 'Ask Google,' and more recently, 'Ask ChatGPT' has become common. However, it's difficult to gauge the extent to which these sources can provide support. While websites are repositories of arbitrary information claimed by various authors, the unreliability of AI generative language models manifests in occasional partially correct or even contradictory information, i.e., hallucinations. If we rely entirely on it, the chance of making a mistake is still non-negligible."}),(0,Ee.jsx)("p",{children:"LLM's (Large Language Models) are capable of producing several convincingsounding sentences in a row and stringing them together, but they also exhibit strange patterns, habits, and limitations. If we had a partial understanding of the question we posed previously, we will recognize irregularities, but the problem lies in the fact that someone who knows nothing about the subject can be easily deceived because AI sounds confident in providing all of its answers. All of this is happening because AI can't understand what it's saying, so it's definitely not self-checking. It doesn't form sentences like humans do; rather, it generates a new sentence by taking our input and then creating output based on related words that are most likely to occur together. Additionally, another major problem lies in the fact that the 'literature' that generative models rely on is not necessarily of the best quality."}),(0,Ee.jsx)("p",{children:"It's clear that if we need an answer and then need to double-check it through further research, we don't have an efficient assistant. However, basically, everything AI currently does requires a human final touch."}),(0,Ee.jsx)("h3",{children:"AI Moral Codex"}),(0,Ee.jsx)("p",{children:"Besides technical challenges, the next big challenge on the horizon is ethical concerns, which currently mainly revolve around privacy and bias. It's not enough for AI conclusions to appear morally correct at first glance; it's essential that they actually are, in a broader sense. Once more, explainability is key. We want to know and understand moral framework of AI."}),(0,Ee.jsx)("p",{children:"The problem of AI alignment concerns ensuring that AI systems align with a diverse set of human values, encompassing moral, social, justice-oriented, and other relevant principles (Mougan & Brand 2023: 2). The aim is to structure AI in a way that successfully covers what is fundamentally common to all well-intentioned goals, namely aligning well with the widely accepted (according to the Universal Declaration of Human Rights) concepts of inalienable human rights. (Mougan & Brand 2023: 1, 5)"}),(0,Ee.jsx)("p",{children:"Designers/developers of AI systems are responsible for ensuring this. Moreover, they must always be aware of all those who may be affected by their choices. The impact of AI on society must always be a top priority and concern for those who influence theits operation. (Ferreira & Monteiro 2021: 1)"}),(0,Ee.jsx)("p",{children:"Philosophy serves as a project engineer who should be consulted for such purposes. Instead of attempting to embed a myriad of newly emerging individual instructions with narrow applications into AI and thus naively overlook a large number of exceptions that would lead to undesired consequences, a safer solution is to choose a previously established and coherent value system as a 'moral database' that AI will use, and we are left to explore which ethical set of prescribed values promises most to fulfill our requirements and expectations. Utilitarianism is gaining popularity as an approach in the fairness metrics of artificial intelligence. However, there are also other high-quality ethical theories, such as Kantian ethics, whose compatibility in this field, despite the importance of deontology, remains insufficiently explored (Mougan & Brand 2023: 1)."}),(0,Ee.jsx)("h3",{children:"Verif.ai Contribution to XAI"}),(0,Ee.jsx)("p",{children:"As indicated, the first challenge to overcome in order to finally provide satisfactory explanations is the fallibility of generative models. That's why we embarked on the quest for AI system designed to verify and document the correctness of facts in AI-generated texts."}),(0,Ee.jsx)("p",{children:"Humans and humanity face both minor and major decisions. Typically, we rank their importance based on the consequences that may arise from them. Undoubtedly, everyday life decisions could be easier to make with the right advice. However, where professional assistance is particularly welcome is where every consequence is of paramount importance - in science. AI can be used in almost any field, including healthcare, manufacturing, education, finance, and more. The Verif.ai project has decided to start by addressing one of the most crucial scientific domains: biomedicine. After all, health itself is something whose proper functioning enables the proper functioning of everything else. When hallucinations are successfully overcome in this field (through additional verification and the provision of generated answers based on a relevant database), expansion into other areas follow. Step by step, we are on the right path towards making the privileges that were described commonplace for everyone."}),(0,Ee.jsx)("h3",{children:"Promising Future"}),(0,Ee.jsx)("p",{children:"The help of AI should not have a negative impact on our confidence in our abilities because ultimately, we remain the ones making the final decision. (Ferreira & Monteiro 2021: 7) What a well-functioning XAI would provide us with is a solid foundation to start from."}),(0,Ee.jsx)("p",{children:"Mutual complementarity could work well for the simple reason that AI and humans have different strengths and resources at their disposal. Creating and analyzing should not be attempted simultaneously; they are entirely different processes. When performed independently, calculating can consume too much valuable time, and without a practical way to ascertain that the decision we've made is correct, mistakes are common. Therefore, the contribution of an assistant that would take over that part of the work would be significant. On one hand, critical thinking and innovation are still attributes exclusive to humans; on the other hand, AI has a compelling quantitative advantage when it comes to handling vast amounts of data, rapid action, and multitasking. It should play the role of an assistant adept at statistics, comparison, summarization, and data sorting. The benefits of that are noteworthy. People could finish their tasks tranquilly, without dwelling on skeptical deliberation and also learn faster. If it diligently performed its part, we could forge a strong alliance."}),(0,Ee.jsx)("p",{children:"Often, it is the human inability to foresee consequences that hinders our decisionmaking process. AI has a way of alleviating this fear of uncertainty, prediction is it\u2019s superpower. Being able to rapidly process a larger amount of information than humans ever could, it is capable of presenting the most likely outcome of a process. We wouldn't have to engage in painstaking guesswork, but rather further assess the situation based on its calculations and decide whether such an outcome is desired or not. There is a spectrum of benefits: we rid ourselves of procrastination and overthinking because we have clarity, and instead of insufficiently considered decisions when we lack time, we have quick and readily available assistance. Using AI in this way finally frees up enough space for us to progress at the pace and manner we ideally desire."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"The integration of AI into decision-making processes carries great potential but also challenges. It is crucial to establish a harmonious relationship between humans and AI, where AI serves as a reliable partner in achieving the decision maker's goals. Transparency, interpretability, and ethical alignment are key factors for a successful alliance. Initiatives like Verif.ai represent steps forward in overcoming technical challenges and ensuring the reliability of decisions guided by AI. There is good reason to believe that, with the right strategies and patience, AI can evolve into a support without second-guessing."}),(0,Ee.jsx)("h4",{children:"References"}),(0,Ee.jsx)("p",{children:"Mougan, Carlos, & Brand, Joshua (2023). \u201eKantian Deontology Meets AI Alignment: Towards Morally Robust Fairness Metrics\u201c, arXiv:2311.05227v1 [cs.AI]: 1-9."}),(0,Ee.jsx)("p",{children:"Juliana Jansen Ferreira, and Mateus Monteiro (2021). \u201eWith great AI power comes great responsibility: AI explanation to support people on justifying their decisions\u201c, in Transparency and Explanations in Smart Systems (TExSS) workshop, held in conjunction with ACM Intelligent User Interfaces (IUI), April 13-17, 2021, virtual event: 1-9."})]}),Date:"12.02.2024",Author:"Angela Pupovac",CoverImage:rt,CoverText:(0,Ee.jsx)("p",{children:"People (rightfully) tend to be anxious about making decisions on a rational basis. The question we ask ourselves is, 'Have I thought this over long enough?' or in other words, 'Have I taken enough data into consideration?'. Indeed, it's very difficult to be completely sure - there can always be more. That's why it often happens that we just keep reconsidering until we run out of time, and at the moment of decision-making, we resort to snap judgments. This doesn't sound like the best method, right?"}),ImageList:[]},{id:"public-trust",Title:"Public Trust in AI",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"This essay aims to highlight the (new) hope in the possibility of relying on AI as our main assistant, both in everyday advice and scientific purposes. This will be achieved through a brief overview of the prerequisites for trustworthy AI and LLMs, followed by how they can be met. As an example of a system that meets these criteria, the carefully equipped open generative system Verif.ai is proposed. Renowned philosopher Ren\xe9 Descartes once reasonably asserted, 'It is prudent never to trust those who have deceived us, even if only once', however, LLMs are about to undergo a fundamental change that seems to deserve attention and consideration to truly become trustworthy."}),(0,Ee.jsx)("h3",{children:"Trust and Condition for Trust in AI"}),(0,Ee.jsx)("p",{children:"It is convenient to begin with the very definition of the concept of 'trust' and a brief interpretation related to it. For example, according to Google's English Dictionary, trust entails a firm belief in the reliability, truth, or ability of someone or something. Moreover, this concept is commonly used in the context of human interpersonal relations. In today's society, the situation can be outlined through three fundamental statements regarding trust, with which most of us would likely agree. The first observation is that there has been a significant decline in the levels of trust (in various individuals, organizations, institutions, etc.). The second represents the goal of having more trust. The third is the task of renewing it. This process can pose a significant challenge for the entire system, as it is difficult to avoid subjectivity and a variety of opinions regarding the correct strategy to be undertaken in order to achieve better individuals and better organization. However, the challenge concerning trust in AI technologies, while undoubtedly substantial, is more linear and bypasses many moral dilemmas, uncertainties and unpredictable circumstances associated with (purely) social dealings."}),(0,Ee.jsx)("p",{children:"What sets a condition for trust and enables AI to participate equally in favorable transactions is the transparency of AI models. This transparency involves our ability to understand how they operate and/or ability to effectively communicate with them, depending on our needs. The foundation of these capabilities lies in the shared possession of certain knowledge (of certain information). Hence, we can apply the traditional definition as a criterion for its validity. It posits that knowledge, in a strict sense, should be understood as true, justified belief. Although the prerequisite that the knowledge we share rests on such a qualitatively sound foundation is stringent, once successfully met, trust in AI is established and is difficult to be undermined."}),(0,Ee.jsx)("h3",{children:"Main (Trust) Issue with Current LLMs"}),(0,Ee.jsx)("p",{children:"Generative Large Language Models (LLMs) are currently gaining popularity as a valuable AI tool in everyday life. However, what tarnishes their reputation are specific shortcomings in their current functioning and, consequently, the results they produce. One of the key and most obvious issues is the phenomenon known as hallucinations. This problem has not yet received a satisfactory solution, and thus, the possibility of generated responses based on input text being incorrect remains unresolved."}),(0,Ee.jsx)("p",{children:"When it comes to scientific truths, accuracy and reliability are of paramount importance, and the possibility of hallucinations is an unacceptable failing that prevents the acceptance of using LLMs within the scientific community. Consequently, they are subject to suspicions from all users when complete reliance on them is necessary, and are often not the first choice when making decisive moves and decisions. A comprehensive solution is required to ensure the utilization of the benefits of these models without compromising the integrity of scientific knowledge."}),(0,Ee.jsx)("p",{children:"Public trust, in the context of LLMs, can only be justified if final corrections are made, ensuring that when using these models for any purpose, users are provided with wellsupported, official, and accurate information. This expectation can largely be fulfilled by LLMs that, for this purpose, focus on a specific high-quality database. Such a database must be built on previously documented, original, scientific, and academic literature. The second part concerns reliable, detailed content verification that it disseminates. The second requirement pertains to thorough verification of the content it disseminates. Now, how to achieve this?"}),(0,Ee.jsx)("h3",{children:"Verification Mission of the Verif.ai System"}),(0,Ee.jsx)("p",{children:"Verif.ai is an open scientific generative question-answering system with referenced and verifiable answers - and it promises a solution to the problem. Since it possesses the necessary components, it is capable of searching for information by combining semantic and lexical search techniques in scientific papers. Subsequently, it selects the most appropriate claims related to the output and generates responses with references to the papers from which they were derived. Furthermore, it ensures additional verification to identify any presence of hallucinations in the generation process."}),(0,Ee.jsx)("p",{children:"This system is currently designed for use in the biomedical domain, providing answers based on scientific articles indexed in PubMed, and aims to accelerate progress in many important fields of medical and biomedical sciences. However, Verif.ai has the great potential to easily expand to other document formats and become the foundation for a personal, organizational, or corporate generative search engine with reliable answers. In the future, this may include additional sources, contributing to everyone's trust and safety on the next generation internet."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"In the days ahead, the influence of AI on people's ways of life is expected to continuously grow, and one might fear that, given the black box nature of their mechanisms, the risk of trust in it will also grow. (Choung et. al. 2022: 23) However, as there is a push for fundamental structural changes, it seems that future LLMs, improved in the described manner, deserve an entirely new, untarnished chance to become our support. The significance of this trust then takes on a positive connotation."}),(0,Ee.jsx)("h4",{children:"References"}),(0,Ee.jsx)("p",{children:"Choung, Hyesun, David, Prabu, & Ross Arun (2022). 'Trust in AI and its role in the acceptance of AI technologies'. International Journal of Human\u2013Computer Interaction: 1\u201325."})]}),Date:"1.02.2024",Author:"Angela Pupovac",CoverImage:dt,CoverText:(0,Ee.jsx)("p",{children:"It is convenient to begin with the very definition of the concept of 'trust' and a brief interpretation related to it. For example, according to Google's English Dictionary, trust entails a firm belief in the reliability, truth, or ability of someone or something. Moreover, this concept is commonly used in the context of human interpersonal relations. In today's society, the situation can be outlined through three fundamental statements regarding trust, with which most of us would likely agree. The first observation is that there has been a significant decline in the levels of trust (in various individuals, organizations, institutions, etc.). The second represents the goal of having more trust. The third is the task of renewing it. This process can pose a significant challenge for the entire system, as it is difficult to avoid subjectivity and a variety of opinions regarding the correct strategy to be undertaken in order to achieve better individuals and better organization. However, the challenge concerning trust in AI technologies, while undoubtedly substantial, is more linear and bypasses many moral dilemmas, uncertainties and unpredictable circumstances associated with (purely) social dealings."})},{id:"hiring",Title:"We are hiring an intern!",Body:(0,Ee.jsxs)("p",{children:["Verif.ai project is looking for an intern to help us fight hallucinations in large language models and help find verifiable answers for hot questions in life sciences. If you are a student enrolled at the master program in the European University, large language models inspire you and you would like to use them, and learn more about them, consider applying at ",(0,Ee.jsx)("a",{href:"https://jobs.bayer.com/job/Berlin-Intern-Machine-Learning-%28fmd%29-Berl/985837601/",target:"_blank",rel:"noreferrer",children:"https://jobs.bayer.com/job/Berlin-Intern-Machine-Learning-%28fmd%29-Berl/985837601/"}),(0,Ee.jsx)("br",{})," You will be working in an international team of top NLP scientist from Bayer and Institute for Artificial Intelligence Research and Development in Serbia on developing verifiable generative search engine for life sciences."]}),Date:"27.09.2023",Author:"Nikola Milosevic",CoverImage:dt,CoverText:(0,Ee.jsxs)("p",{children:["Verif.ai project is looking for an intern to help us fight hallucinations in large language models and help find verifiable answers for hot questions in life sciences. If you are a student enrolled at the master program in the European University, large language models inspire you and you would like to use them, and learn more about them, consider applying at ",(0,Ee.jsx)("a",{href:"https://jobs.bayer.com/job/Berlin-Intern-Machine-Learning-%28fmd%29-Berl/985837601/",target:"_blank",rel:"noreferrer",children:"https://jobs.bayer.com/job/Berlin-Intern-Machine-Learning-%28fmd%29-Berl/985837601/"}),(0,Ee.jsx)("br",{})," You will be working in an international team of top NLP scientist from Bayer and Institute for Artificial Intelligence Research and Development in Serbia on developing verifiable generative search engine for life sciences."]}),ImageList:[]}],ft={title:"Verif.ai Blog",description:"A Blog of Verif.ai project",canonical:"https://verifai-project.com/blog",og:{title:"Verif.ai Blog",description:"A Blog of Verif.ai project",url:"https://verifai-project.com/blog"},meta:{charset:"utf-8",name:{keywords:"react,meta,document,html,tags"}}};const pt=function(){const[t,n]=(0,e.useState)(0),[a,i]=(0,e.useState)(!1);return(0,e.useEffect)((()=>{const e=setInterval((()=>{i(!0),setTimeout((()=>{n((e=>(e+1)%3)),i(!1)}),270)}),3e3);return()=>clearInterval(e)}),[3]),(0,e.useEffect)((()=>{document.title="Verif.ai - Blog"}),[]),(0,Ee.jsxs)("div",{className:"PageBackground",children:[(0,Ee.jsx)(ze.ZP,{...ft}),(0,Ee.jsxs)("div",{className:"BlogPageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsx)("div",{className:"BlogContainer",children:(0,Ee.jsx)("div",{className:"PostList",children:ht.map(((e,n)=>(0,Ee.jsx)("a",{className:"TitleLink",href:"/post?id="+e.id,children:(0,Ee.jsx)("div",{className:"PostContainer",children:(0,Ee.jsx)("div",{className:"PostContent",children:n%2===0?(0,Ee.jsxs)(Ee.Fragment,{children:[e.ImageList&&e.ImageList.length<=1?(0,Ee.jsxs)(Ee.Fragment,{children:[" ",(0,Ee.jsxs)("div",{className:"PostImageContainer",children:[" ",(0,Ee.jsx)("img",{src:e.CoverImage})]})," "]}):e.ImageList&&3===e.ImageList.length?(0,Ee.jsxs)(Ee.Fragment,{children:[" ",(0,Ee.jsxs)("div",{className:"PostImageContainer",children:[" ",(0,Ee.jsx)("img",{src:e.ImageList[t],className:a?"fade":"show"})]})," "]}):(0,Ee.jsx)(Ee.Fragment,{children:(0,Ee.jsxs)("div",{className:"PostImageContainer",children:[" ",(0,Ee.jsx)("img",{src:e.CoverImage})]})}),(0,Ee.jsxs)("div",{className:"PostTextContent",children:[(0,Ee.jsx)("a",{className:"TitleLink",href:"/post?id="+e.id,children:(0,Ee.jsx)("h1",{children:e.Title})}),(0,Ee.jsx)("p",{children:e.CoverText}),(0,Ee.jsxs)("div",{className:"PostFooter",children:[(0,Ee.jsx)("h2",{children:e.Author}),(0,Ee.jsx)("h2",{children:e.Date})]})]})]}):(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsxs)("div",{className:"PostTextContent",children:[(0,Ee.jsx)("a",{className:"TitleLink",href:"/post?id="+e.id,children:(0,Ee.jsx)("h1",{children:e.Title})}),(0,Ee.jsx)("p",{children:e.CoverText}),(0,Ee.jsxs)("div",{className:"PostFooter",children:[(0,Ee.jsx)("h2",{children:e.Author}),(0,Ee.jsx)("h2",{children:e.Date})]})]}),e.ImageList&&e.ImageList.length<=1?(0,Ee.jsxs)(Ee.Fragment,{children:[" ",(0,Ee.jsxs)("div",{className:"PostImageContainer",children:[" ",(0,Ee.jsx)("img",{src:e.CoverImage})]})," "]}):e.ImageList&&3===e.ImageList.length?(0,Ee.jsxs)(Ee.Fragment,{children:[" ",(0,Ee.jsxs)("div",{className:"PostImageContainer",children:[" ",(0,Ee.jsx)("img",{src:e.ImageList[t],className:a?"fade":"show"})]})," "]}):(0,Ee.jsx)(Ee.Fragment,{children:(0,Ee.jsxs)("div",{className:"PostImageContainer",children:[" ",(0,Ee.jsx)("img",{src:e.CoverImage})]})})]})})},e.id)})))})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})]})};const mt=n.p+"static/media/arrow.378554d83dec3321a6bf2ecf75180ed6.svg";const gt=n.p+"static/media/minus.440bac1489a761ff9b61b5e53b3c5d36.svg";const vt=n.p+"static/media/plus.e8630946ced5456859b717f5d1817620.svg",yt=[{id:0,text:"What is VerifAI?",answer:"VerifAI is a question-answering system that uses artificial intelligence to provide referenced and verified answers to biomedical questions. As a knowledge based, VerifAI uses biomedical scientific literature, or more specifically abstracts of biomedical publications indexed in PubMed (https://pubmed.ncbi.nlm.nih.gov/) database. Using the combination of advanced search, information retrieval and fine-tuned large language models, VerifAI does the best attempt to provide answer to users\u2019 question with references and verification that answer does not contain any hallucinations. ",categoryId:0},{id:1,text:"How does VerifAI detect hallucinations?",answer:"VerifAI uses artificial intelligence to both answer the question and verify that the answer is not hallucinated. However, in order to do this, it uses two different models, that use different paradigm and different training methodology, ensuring independence between approaches. The model that verifies the answer, would highlight in green sentences that do not contain any hallucinations, in orange sentences that are not fully supported, gray would be sentences that do not have reference, and in red sentences that contradict the claim from the referenced abstract (this is extremely rare). ",categoryId:0},{id:2,text:"What technology does the VerifAI Project use?",answer:"The project utilizes a large language model (Mistral 7B) along with Qdrant and OpenSearch indices to deliver accurate and verifiable answers to biomedical questions. The frontend is written in React.js, while backend is based on Python and FastAPI. ",categoryId:0},{id:3,text:"Who is behind VerifAI?",answer:"VerifAI is a system build in collaboration between Bayer Pharma R&D and Institute for Artificial Intelligence Research and Development of Serbia. The project is funded by Horizon Europe\u2019s Next Generation Internet Search initiative. The team that worked on the project is multidisciplinary and talented managing to achieve the system you are looking at.",categoryId:0},{id:4,text:"How can I access the VerifAI application?",answer:"You can access the VerifAI application by visiting app.verifai-project.com. Users can register and start asking questions to utilize the platform.",categoryId:1},{id:5,text:"Is the code for the VerifAI Project available?",answer:"Yes, the entire codebase for the VerifAI Project is open-sourced and available on GitHub. You can find it at GitHub Repository.",categoryId:1},{id:6,text:"How can I contribute to the VerifAI Project?",answer:"Users are encouraged to contribute by providing feedback, suggesting improvements, or helping with development efforts. The project aims for sustainability and welcomes community involvement.",categoryId:1},{id:7,text:"Are there any costs associated with using VerifAI?",answer:"Currently, the application is available for free, but its long-term availability may depend on future funding and sustainable hosting solutions. It costs us about 1600 USD/month to keep system running, and therefore we would welcome offers for sponsorships. ",categoryId:2}],bt=[{id:0,text:"Questions about the app:"},{id:1,text:"Questions about access:"},{id:2,text:"Questions about pricing:"}];const wt=function(){const[t,n]=(0,e.useState)(yt.reduce(((e,t)=>(e[t.id]="fade-in",e)),{})),[a,i]=(0,e.useState)(bt.reduce(((e,t)=>(e[t.id]="fade-in",e)),{})),[r,o]=(0,e.useState)(bt.reduce(((e,t)=>(e[t.id]=!0,e)),{})),[s,l]=(0,e.useState)(yt.reduce(((e,t)=>(e[t.id]="fade-in",e)),{}));return(0,e.useEffect)((()=>{document.title="Verif.ai - Q&A"}),[]),(0,Ee.jsxs)("div",{className:"PageBackground",children:[(0,Ee.jsx)(ze.ZP,{title:"Verif.ai Q&A",description:"Verif.ai project Q&A",canonical:"https://verifai-project.com/q&a",meta:{charset:"utf-8",name:{keywords:"react,meta,document,html,tags"}}}),(0,Ee.jsxs)("div",{className:"FaqPageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsx)("div",{className:"FaqPageContent",children:(0,Ee.jsx)("div",{className:"QuestionCategories",children:bt.map((e=>(0,Ee.jsxs)("div",{className:"QuestionCategory",children:[(0,Ee.jsx)("button",{className:"CategoryBtn",onClick:()=>{return t=e.id,void("fade-in"===a[t]?i((e=>({...e,[t]:"fade-out"}))):(o((e=>({...e,[t]:!0}))),i((e=>({...e,[t]:"fade-in"})))));var t},children:(0,Ee.jsx)("div",{className:"AlignButton",children:(0,Ee.jsxs)("div",{className:"CategoryBtnContainer",children:[(0,Ee.jsx)("p",{children:e.text}),(0,Ee.jsx)("img",{className:"arrow",src:mt})]})})}),a[e.id]&&(0,Ee.jsx)("div",{style:{display:r[e.id]?"flex":"none"},className:`QuestionsList ${a[e.id]||"fade-out"}`,onAnimationEnd:()=>{return t=e.id,void("fade-out"===a[t]&&o((e=>({...e,[t]:!1}))));var t},children:(0,Ee.jsx)("div",{className:"Container",children:yt.filter((t=>t.categoryId===e.id)).map((e=>(0,Ee.jsxs)("div",{className:"QuestionAnswerContainer",children:[(0,Ee.jsxs)("div",{className:"QuestionContainer",onClick:()=>{return a=e.id,void("fade-in"===t[a]?n((e=>({...e,[a]:"fade-out"}))):(l((e=>({...e,[a]:!0}))),n((e=>({...e,[a]:"fade-in"})))));var a},children:[(0,Ee.jsx)("img",{src:"fade-in"===t[e.id]?gt:vt}),(0,Ee.jsx)("p",{children:e.text})]}),t[e.id]&&(0,Ee.jsx)("div",{style:{display:s[e.id]?"flex":"none"},className:`AnswerContainer ${t[e.id]||"fade-out"}`,onAnimationEnd:()=>{return n=e.id,void("fade-out"===t[n]&&l((e=>({...e,[n]:!1}))));var n},children:(0,Ee.jsx)("p",{children:e.answer})})]},e.id)))})})]},e.id)))})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})]})};const xt=n.p+"static/media/facebook.b7792bf7dbe95100bf45e1b14f8a93c0.svg";const kt=n.p+"static/media/instagram2.5f38a60adbab2189568250cd75afe463.svg";const jt=n.p+"static/media/twitter.4118bf5349061d388df32ab80124f1c2.svg";const It=n.p+"static/media/github2.728ec9d7515a189c4b5cf44cc99957aa.svg";const At=function(){const[t,n]=(0,e.useState)(""),[a,i]=(0,e.useState)(""),[r,o]=(0,e.useState)("");return(0,e.useEffect)((()=>{document.title="Verif.ai - Contact us!"}),[]),(0,Ee.jsxs)("div",{className:"PageBackground",children:[(0,Ee.jsx)(ze.ZP,{title:"Verif.ai Contact",description:"Contact Verif.ai project",canonical:"https://verifai-project.com/contact",meta:{charset:"utf-8",name:{keywords:"react,meta,document,html,tags"}}}),(0,Ee.jsxs)("div",{className:"ContactPageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsx)("div",{className:"ContactContainer2",children:(0,Ee.jsx)("div",{className:"ContactContainer",children:(0,Ee.jsxs)("div",{className:"ContactContent",children:[(0,Ee.jsxs)("div",{className:"ContactDiv",children:[(0,Ee.jsx)("h1",{children:"Contact"}),(0,Ee.jsxs)("p",{children:["In case of any questions and queries, you can contact us via email at ",(0,Ee.jsx)("targe",{children:(0,Ee.jsx)("span",{style:{color:"#005d97",cursor:"pointer"},children:"verif.ai.project@gmail.com "})}),"."]}),(0,Ee.jsx)("p",{children:"VerifAI: In case, you would like us to consult on deploying solution based on Verif.ai or would like to use the developed solution under different licensing terms then provided by default, please get in touch with us."})]}),(0,Ee.jsxs)("div",{className:"SubscribeSocial",children:[(0,Ee.jsxs)("div",{className:"SubscribeDiv",children:[(0,Ee.jsx)("h2",{children:"Subscribe to our Newsletter"}),(0,Ee.jsx)("form",{className:"SubscribeForm",action:"https://gmail.us13.list-manage.com/subscribe/post?u=34c8308d0ab65e7b96e0dc5dc&id=330c16a5c6&f_id=00a105e5f0",method:"post",id:"mc-embedded-subscribe-form",name:"mc-embedded-subscribe-form",className:"validate",children:(0,Ee.jsxs)("div",{id:"mc_embed_signup_scroll",children:[(0,Ee.jsxs)("div",{className:"fieldGroup",children:[(0,Ee.jsxs)("div",{className:"indicates-required",children:[(0,Ee.jsx)("span",{className:"asterisk",children:"*"})," indicates required"]}),(0,Ee.jsx)("div",{className:"mc-field-group",children:(0,Ee.jsx)("input",{type:"email",name:"EMAIL",id:"emailInput",className:"formInput",id:"mce-EMAIL",required:!0,defaultValue:"",placeholder:"E-mail *"})}),(0,Ee.jsx)("div",{className:"mc-field-group",children:(0,Ee.jsx)("input",{type:"text",name:"FNAME",className:"formInput",id:"mce-FNAME",defaultValue:"",placeholder:"First name"})}),(0,Ee.jsx)("div",{className:"mc-field-group",children:(0,Ee.jsx)("input",{type:"text",name:"LNAME",className:"formInput",id:"mce-LNAME",defaultValue:"",placeholder:"Last name"})}),(0,Ee.jsx)("input",{type:"submit",name:"subscribe",id:"mc-embedded-subscribe",className:"formButton",defaultValue:"Subscribe"})]}),(0,Ee.jsxs)("div",{id:"mce-responses",className:"clear foot",children:[(0,Ee.jsx)("div",{className:"response",id:"mce-error-response",style:{display:"none"}}),(0,Ee.jsx)("div",{className:"response",id:"mce-success-response",style:{display:"none"}})]}),(0,Ee.jsxs)("div",{"aria-hidden":"true",style:{position:"absolute",left:"-5000px"},children:["/* real people should not fill this in and expect good things - do not remove this or risk form bot signups */",(0,Ee.jsx)("input",{type:"text",name:"b_34c8308d0ab65e7b96e0dc5dc_330c16a5c6",tabIndex:-1,defaultValue:!0})]}),(0,Ee.jsx)("div",{className:"optionalParent",children:(0,Ee.jsx)("div",{className:"clear foot"})})]})}),(0,Ee.jsx)(Ae,{to:"https://mailchimp.com/solutions/email-marketing-platform/?utm_source=freemium_newsletter&utm_medium=email&utm_campaign=referral_marketing&aid=34c8308d0ab65e7b96e0dc5dc&afl=1",target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("img",{className:"mailChimpImg",src:"https://digitalasset.intuit.com/render/content/dam/intuit/mc-fe/en_us/images/intuit-mc-rewards-text-dark.svg"})})]}),(0,Ee.jsxs)("div",{className:"SocialMediaDiv",children:[(0,Ee.jsx)("h2",{children:"Social media"}),(0,Ee.jsx)("p",{children:"You can follow us on social media: "}),(0,Ee.jsxs)("div",{className:"socials",children:[(0,Ee.jsx)(Ae,{to:"https://www.facebook.com/VerifAIsystem/",target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("button",{className:"socialButton",children:(0,Ee.jsx)("div",{className:"buttonContent",children:(0,Ee.jsx)("img",{src:xt})})})}),(0,Ee.jsx)(Ae,{to:"https://www.instagram.com/verifai_system/",target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("button",{className:"socialButton",children:(0,Ee.jsx)("div",{className:"buttonContent",children:(0,Ee.jsx)("img",{src:kt})})})}),(0,Ee.jsx)(Ae,{to:"https://x.com/verifai_system",target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("button",{className:"socialButton",children:(0,Ee.jsx)("div",{className:"buttonContent",children:(0,Ee.jsx)("img",{src:jt})})})}),(0,Ee.jsx)(Ae,{to:"https://www.linkedin.com/company/verif-ai-project/posts/?feedView=all",target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("button",{className:"socialButton",children:(0,Ee.jsx)("div",{className:"buttonContent",children:(0,Ee.jsx)("img",{src:nt})})})}),(0,Ee.jsx)(Ae,{to:"https://github.com/nikolamilosevic86/verifAI",target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("button",{className:"socialButton",children:(0,Ee.jsx)("div",{className:"buttonContent",children:(0,Ee.jsx)("img",{src:It})})})})]})]})]})]})})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})]})},St=[{id:"what-does-the-NEW-verifAI-APP-Offer",Title:"What Does the NEW VerifAI APP Offer and How Can I Use It Effectively?",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"In the world of biomedicine, accuracy and reliability of information are of utmost importance. The VerifAI system, an advanced AI tool for natural language processing with a focus on biomedical data, promises to revolutionize the way researchers, doctors, and students access and utilize expert information. What makes VerifAI ideal for use in this critical field is that it is designed not to hallucinate and to provide referenced answers. In this blog, we explore how you can use VerifAI. Follow the steps outlined and take full advantage of everything VerifAI offers to enhance your research and work!"}),(0,Ee.jsx)("div",{className:"BodyImageDiv",id:"verifailogo",children:(0,Ee.jsx)("img",{id:"verifailogo",src:Oe,alt:"VerifAI app",className:"blog"})}),(0,Ee.jsx)("h3",{children:"Step 1: Registration and Account Creation"}),(0,Ee.jsx)("p",{children:"The first step in using VerifAI is to sign up on our platform. On the VerifAI homepage, you will see the button \u2018Join VerifAI Now!\u2019 which is a shortcut to the VerifAI application. Visit it and quickly and easily create your account. You will need to enter basic information such as your full name, username, email address, and password. If you have entered all the data correctly, you will see a notification that your account has been successfully created. Click \u2018OK\u2019, log in, and you can start using the application!"}),(0,Ee.jsxs)("div",{className:"BodyImageDiv",children:[" ",(0,Ee.jsx)("img",{src:_e,alt:"Registration screen of VerifAI app",className:"blog"})]}),(0,Ee.jsx)("h3",{children:"Step 2: Getting Familiar with the Interface"}),(0,Ee.jsx)("p",{children:"After logging in, explore VerifAI's minimalist and practical user interface. At the top of the screen, you will find your username and navigation tabs for quick access to various application functions that you may need."}),(0,Ee.jsx)("h3",{children:"Step 3: Submitting Inputes and Generating Answers"}),(0,Ee.jsx)("p",{children:"VerifAI allows you to submit specific queries related to biomedical topics. For example, if you want to learn more about the latest research in the field of immunotherapy, simply enter the query in the search bar. Or, for instance, you can investigate the effects of a new drug on breast cancer treatment. By submitting a query in VerifAI, you receive answers that include the latest research, clinical studies, and meta-analyses. This way, you not only save time but also ensure that the information you use is accurate and evidence-based. After submitting a query, VerifAI will analyze the available data in the next few seconds and work on providing accurate and referenced answers from reliable sources."}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{src:ct,alt:"Generating answer",className:"blog"})}),(0,Ee.jsx)("h3",{children:"Step 4: Interpreting VerifAI Output"}),(0,Ee.jsx)("p",{children:"As part of the VerifAI output, you will receive not only an answer but also lists of scientific sources from the PubMed database that VerifAI used to prepare a verifiable and precise answer for you! If you click on any of them, VerifAI will take you to the specific PubMed article where it found the statement related to your question. Then follows the specific answer with references. You will notice that most statements are written in green, with references in the form of links on their right side. When you hover over a statement, an automatic explanation will appear above, indicating that the green color means confirmation that the statement is in the article to which the reference points (thanks to the double verification method that VerifAI uses!). Additionally, you will be provided with a quote, i.e., the original paragraph/part of the paragraph from which the statement was derived. This allows users to confirm the accuracy of the data on the spot before including it in their work!"}),(0,Ee.jsxs)("div",{className:"BodyImageDiv",children:[" ",(0,Ee.jsx)("img",{src:ut,alt:"Generating answer",className:"blog"})]}),(0,Ee.jsx)("p",{children:"Other statements may be written in orange. In the same way as before, you will determine the meaning of the color. Orange means that it is likely that the statement is in the document to which the reference points. However, this time VerifAI was not able to display part of the given PubMed article in the form of a quote. It may happen that the abstract provided by VerifAI at the bottom of the page is written in gray. There is a possibility that the statements it contains are accurate, but since VerifAI did not find adequate evidence, it advises you in this way to additionally verify their accuracy independently."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"We believe that VerifAI represents a decent step forward in the use of artificial intelligence for processing and analyzing biomedical data. Its ability to provide referenced answers without hallucinations makes it an ideal tool for professionals in the field of biomedicine. However, if you are a layperson in this field, it does not mean that VerifAI is not for you! On the contrary, VerifAI is a reliable system that we warmly recommend as a consultant when you want to quickly find an explanation for a health-related question or concern you have."}),(0,Ee.jsx)("p",{children:(0,Ee.jsx)("strong",{children:"Try VerifAI today and experience the power of accurate and referenced biomedical information!"})})]}),Date:"23.07.2024",Author:"Angela Pupovac",CoverImage:ct,CoverText:(0,Ee.jsx)("p",{children:"In the world of biomedicine, accuracy and reliability of information are of utmost importance. The VerifAI system, an advanced AI tool for natural language processing with a focus on biomedical data, promises to revolutionize the way researchers, doctors, and students access and utilize expert information. What makes VerifAI ideal for use in this critical field is that it is designed not to hallucinate and to provide referenced answers. In this blog, we explore how you can use VerifAI. Follow the steps outlined and take full advantage of everything VerifAI offers to enhance your research and work!"})},{id:"VerifAI-project-Open-source-biomedical-question-answering-with-verified-answers",Title:"VerifAI project: Open source biomedical question answering with verified answers",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("h3",{children:"Experiences from building LLM-based (Mistral 7B) biomedical question-answering system on top of Qdrant and OpenSearch indices with hallucination detection method"}),(0,Ee.jsxs)("p",{children:["Last September (2023), we embarked on the development of the ",(0,Ee.jsx)("a",{href:"https://verifai-project.com",target:"_blank",children:"VerifAI project"}),", after receiving funding from the ",(0,Ee.jsx)("a",{href:"https://www.ngisearch.eu",target:"_blank",children:"NGI Search"})," funding scheme of Horizon Europe."]}),(0,Ee.jsxs)("p",{children:["The idea of the project was to create a generative search engine for the biomedical domain, based on vetted documents (therefore we used a repository of biomedical journal publications called ",(0,Ee.jsx)("a",{href:"https://pubmed.ncbi.nlm.nih.gov",target:"_blank",children:"PubMed"}),"), with an additional model that would verify the generated answer, by comparing the referenced article and generated claim."]}),(0,Ee.jsx)("p",{children:"While there are projects and products, such as Elicit or Perplexity that do partially RAG (Retrieval-Augmented Generation) and can answer and reference documents for biomedical questions, there are a few factors that differentiate our project. Firstly, we focus at the moment on the biomedical documents. Secondly, as this is a funded project by the EU, we commit to open-source everything that we have created, from source code, models, model adapters, datasets, everything. Thirdly, no other product, that is available at the moment, does a posteriori verification of the generated answer, but they usually just rely on fairly simple RAG, which reduces hallucinations but does not remove them completely. One of the main aims of the project is to address the issue of so-called hallucinations. Hallucinations in Large Language Models (LLMs) refer to instances where the model generates text that is plausible-sounding but factually incorrect, misleading, or nonsensical. In this regard, the project adds to the live system's unique value."}),(0,Ee.jsxs)("p",{children:["The project has been shared under the ",(0,Ee.jsx)("a",{href:"https://www.gnu.org/licenses/agpl-3.0.en.html",target:"_blank",children:"AGPLv3 license"}),"."]}),(0,Ee.jsx)("h3",{children:"Overall method"}),(0,Ee.jsx)("p",{children:"The overall methodology that we have applied can be seen in the following figure"}),(0,Ee.jsxs)("div",{className:"BodyImageDiv",children:[" ",(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*1g3ejM65p5dXc2wmdMvG9w.png"})]}),(0,Ee.jsxs)("p",{children:["When a user asks a question, the user query is transformed into a query, and the information retrieval engine is asked for the most relevant biomedical abstracts, indexed in PubMed, for the given question. In order to obtain the most relevant documents, we have created both a lexical index, based on ",(0,Ee.jsx)("a",{href:"https://opensearch.org/",target:"_blank",children:"OpenSearch"}),", and a vector/semantic search based on ",(0,Ee.jsx)("a",{href:"https://qdrant.tech/",target:"_blank",children:"Qdrant"}),". Namely, lexical search is great at retrieving relevant documents containing exact terms as the query, while semantic search helps us to search semantic space and retrieve documents that mean the same things, but may phrase it differently. The retrieved scores are normalized and a combination of documents from these two indices are retrieved (hybrid search). The top documents from the hybrid search, with questions, are passed into the context of a model for answer generation. In our case, we have fine-tuned the Mistral 7B-instruct model, using QLoRA, because this allowed us to host a fairly small well-performing model on a fairly cheap cloud instance (containing NVidia Tesla T4 GPU with 16GB of GPU RAM). After the answer is generated, the answer is parsed into sentences and references that support these sentences and passed to the separate model that checks whether the generated claim is supported by the content of the referenced abstract. This model classifies claims into supported, no-evidence, and contradicting classes. Finally, the answer, with highlighted claims that may not be fully supported by the abstracts is presented to the used."]}),(0,Ee.jsx)("p",{children:"Therefore, a system has 3 components&hairsp;\u2014&hairsp;information retrieval, answer generation, and answer verification. In the following sections, we will describe in more detail, each of these sections.\xa0"}),(0,Ee.jsx)("h3",{children:"Information retrieval"}),(0,Ee.jsx)("p",{children:"From the start of the project, we aimed at building a hybrid search, combining semantic and lexical search. The initial idea was to create it using a single software, however, that turned out not so easy, especially for the index of the PubMed size. PubMed contains about 35 million documents, however, not all contain full abstracts. There are old documents, from the 1940s and 1950s that may not have abstracts, but as well some guide documents and similar that have only titles. We have indexed only the documents containing full abstracts and ended up with about 25 million documents. PubMed unpacked is about 120GB in size.\xa0"}),(0,Ee.jsxs)("p",{children:["It is not problematic to create a well-performing index for lexical search in OpenSearch. This worked pretty much out of the box. We have indexed titles, and abstract texts, and added some metadata for filtering, like year of publication, authors, and journal. OpenSearch supports ",(0,Ee.jsx)("a",{href:"https://engineering.fb.com/2017/03/29/data-infrastructure/faiss-a-library-for-efficient-similarity-search/",target:"_blank",children:"FAISS"})," as a vector store. So we tried to index our data with FAISS, but this was not possible, as the index was too large and we were running out of memory (we had a 64GB cloud instance for index). The indexing was done using MSMarco fine-tuned model based on DistilBERT (",(0,Ee.jsx)("a",{href:"https://huggingface.co/sentence-transformers/msmarco-distilbert-base-tas-b",target:"_blank",children:"sentence-transformers/msmarco-distilbert-base-tas-b"}),"). Since we learned that FAISS only supported the in-memory index, we needed to find another solution that would be able to store a part of the index on the hard drive. The solution was found in the Qdrant database, as it supports in-memory",(0,Ee.jsx)("a",{href:"https://qdrant.tech/documentation/concepts/storage/#configuring-memmap-storage",target:"_blank",children:" mapping and on-disk storage of part of the index"}),".\xa0"]}),(0,Ee.jsx)("p",{children:"Another issue that appeared while creating the index was that once we did memory mapping and created the whole PubMed index, the query would be executed for a long time (almost 30 seconds). The problem was that calculations of dot products in 32-bit precision were taking a while for the index having 25 million documents (and potentially loading parts of the index from HDD). Therefore, we have made a search using only 8-bit precision, and we have reduced the time needed from about 30 seconds to less than a half second.\xa0"}),(0,Ee.jsx)("p",{children:"The lexical index contained whole abstracts, however, for the semantic index, documents needed to be split, because the transformer model we used for building the semantic index could swallow 512 tokens. Therefore the documents were split on full stop before the 512th token, and the same happened on every next 512 tokens.\xa0"}),(0,Ee.jsxs)("p",{children:["In order to create a combination of semantic and lexical search, we have normalized the outputs of the queries, by dividing all scores returned either from Qdrant or OpenSearch by the top score returned for the given document store. In that way, we have obtained two numbers, one for semantic and the other for lexical search, in the range between 0\u20131. Then we tested the precision of retrieved most relevant documents in the top retrieved documents using the ",(0,Ee.jsx)("a",{href:"https://link.springer.com/content/pdf/10.1186/s12859-015-0564-6.pdf",target:"_blank",children:"BioASQ dataset"}),". The results can be seen in the table below.\xa0"]}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*uTaFRuCgJ4NX_jxvO5WaPQ.png"})}),(0,Ee.jsx)("p",{"data-testid":"editorParagraphText",name:"8868",class:"graf graf--p graf-after--figure",children:"We have done some re-ranking experiments using full precision, so you can see more details in the paper. But this has not been used in the application at the end. The overall conclusion was that lexical search does a pretty good job, and there is some contribution of semantic search, with the best performance obtained at weights of 0.7 for lexical search, and 0.3 for semantic."}),(0,Ee.jsx)("p",{children:"Finally, we have built a query processing, where for lexical querying stopwords were excluded from the query, and search was performed in the lexical index, and similarity was calculated for the semantic index. Values for documents from both semantic and lexical indexes were normalized and summed up, and the top 10 documents were retrieved.\xa0"}),(0,Ee.jsx)("h3",{children:"Referenced answer generation"}),(0,Ee.jsx)("p",{children:"Once, the top 10 documents were retrieved, we could pass these documents to a generative model for referenced answer generation. We have tested several models. This can be done well with GPT4-Turbo models, and most of commercially available platforms would use GPT4 or Claude models. However, we wanted to create an open-source variant, where we do not depend on commercial models, having smaller and more efficient models while having also performance close to the performance of commercial models. Therefore, we have tested things with Mistral 7B instruct in both zero-shot regime and fine-tuned using 4bit QLora."}),(0,Ee.jsxs)("p",{children:["In order to fine-tune Mistral, we needed to create a dataset for referenced question answering using PubMed. We created a dataset by randomly selecting questions from the PubMedQA dataset, then retrieved the top 10 relevant documents and used GPT-4 Turbo for referenced answer generation. We have called this dataset the ",(0,Ee.jsx)("a",{href:"https://huggingface.co/datasets/BojanaBas/PQAref",target:"_blank",children:"PQAref dataset and published it on HuggingFace"}),". Each sample in this dataset contains a question, a set of 10 documents, and a generated answer with referenced documents (based on 10 passed in context).\xa0"]}),(0,Ee.jsxs)("p",{children:["Using this dataset, we have created a QLoRA adapter for Mistral-7B-instruct. This was trained on the ",(0,Ee.jsx)("a",{href:"https://www.ai.gov.rs/",target:"_blank",children:"Serbian National AI platform"})," in the National Data Center of Serbia, using Nvidia A100 GPU. The training lasted around 32 hours.\xa0"]}),(0,Ee.jsx)("p",{children:"We have performed an evaluation comparing Mistral 7B instruct v1, and Mistral 7B instruct v2, with and without QLoRA fine-tuning (so without is zero-shot, based only on instruction, while with QLoRA we could save some tokens as instruction was not necessary for the prompt, as fine-tuning would make model do what is needed), and we compared it with GPT-4 Turbo (with prompt: \u201cAnswer the question using relevant abstracts provided, up to 300 words. Reference the statements with the provided abstract_id in brackets next to the statement.\u201d). Several evaluations about the number of referenced documents and whether the referenced documents are relevant have been done. These results can be seen in the tables below."}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*1G_jbg96VYHHX3RbEJC0Fw.png"})}),(0,Ee.jsx)("p",{children:"From this table, it can be concluded that Mistral, especially the first version in zero-shot (0-M1), does not really often reference context documents, even though it was requested in the prompt. On the other hand, the second version showed much better performance, but it was far from GPT4-Turbo or fine-tuned Mistrals 7B. Fine-tuned mistrals tended to cite more documents, even if the answer could be found in one of the documents, and added some additional information compared to GPT4-Turbo."}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*3fmPqNtEt37NyyIdXCIqMQ.png"})}),(0,Ee.jsx)("p",{children:"As can be seen from the second table, GPT4-Turbo missed relevant references only once in the whole test set, while Mistral 7B-instruct v2 with fine-tuning missed a bit more, but showed still comparable performance, given much smaller model size.\xa0"}),(0,Ee.jsx)("p",{children:"We have also looked at several answers manually, to make sure the answers make sense. At the end, in the app, we are using Mistral 7B instruct v2 with a fine-tuned QLoRA adapter.\xa0"}),(0,Ee.jsx)("h3",{children:"Answer verification"}),(0,Ee.jsxs)("p",{children:["The final part of the system is answer verification. For answer verification, we have developed several features, however, the main one is a system that verifies whether the generated claim is based on the abstract that was referenced. We have fine-tuned several models on the ",(0,Ee.jsx)("a",{href:"https://allenai.org/data/scifact",target:"_blank",children:"SciFact dataset "}),"from the Allen Institute for AI with several BERT and Roberta-based models.\xa0"]}),(0,Ee.jsx)("p",{children:"In order to model input, we have parsed the answer to find sentences and related references. We have found that the first and last sentence in our system are often introduction or conclusion sentences, and may not be referenced. All other sentences should have a reference. If a sentence contained a reference, it was based on that PubMed document. If the sentence does not contain a reference, but the sentence before and after are referenced, we calculate the dot product of the embeddings of that sentence and sentences in 2 abstracts. Whichever abstract contains the sentence with the highest dot product is treated as the abstract that the sentence was based on.\xa0"}),(0,Ee.jsx)("p",{children:"Once the answer is parsed and we have found all the abstracts the claims are based on, we pass it to the fine-tuned model. The input to the model was engineered in the following way"}),(0,Ee.jsx)("p",{children:"For deBERT-a models:"}),(0,Ee.jsx)("blockquote",{children:"[CLS]claim[SEP]evidence[SEP]"}),(0,Ee.jsx)("p",{children:"For Roberta-based models:"}),(0,Ee.jsx)("blockquote",{children:"<s>claim</s></s>evidence</s>"}),(0,Ee.jsx)("p",{"data-testid":"editorParagraphText",name:"96f4",class:"graf graf--p graf-after--blockquote",children:"Where claim is generated claim from the generative component, and evidence is the text of concatenated title and abstract from referenced PubMed document.\xa0"}),(0,Ee.jsx)("p",{children:"We have evaluated the performance of our fine-tuned models and obtained the following results:\xa0"}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*eeAdmTh0lj7BjO4dCx98VA.png"})}),(0,Ee.jsxs)("p",{"data-testid":"editorParagraphText",name:"937d",class:"graf graf--p graf-after--figure",children:["Often, when the models are fine-tuned on the same dataset as they are tested, the results are good. Therefore, we wanted to test it also on out-of-domain data. So we have selected the ",(0,Ee.jsx)("a",{href:"https://github.com/sarrouti/HealthVer",target:"_blank",children:"HealthVer dataset"}),", which is also in the healthcare domain used for claim verification. The results were the following:\xa0"]}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*_N9MbQ77tH1ewS65JjxmVw.png"})}),(0,Ee.jsx)("p",{"data-testid":"editorParagraphText",name:"3366",class:"graf graf--p graf-after--figure",children:"We also evaluated the SciFact label prediction task using the GPT-4 model (with a prompt \u201cCritically asses whether the statement is supported, contradicted or there is no evidence for the statement in the given abstract. Output SUPPORT if the statement is supported by the abstract. Output CONTRADICT if the statement is in contradiction with the abstract and output NO EVIDENCE if there is no evidence for the statement in the abstract.\u201d ), resulting in a precision of 0.81, a recall of 0.80, and an F-1 score of 0.79. Therefore, our model has better performance and due to the much lower number of parameters was more efficient.\xa0"}),(0,Ee.jsx)("p",{children:"On top of the verification using this model, we have also calculated the closest sentence from the abstract using dot product similarity (using the same MSMarco model we use for semantic search). We visualize the closest sentence to the generated one on the user interface by hovering over a sentence.\xa0"}),(0,Ee.jsx)("h3",{children:"User interface"}),(0,Ee.jsx)("p",{children:"We have developed a user interface, to which users can register, log in, and ask questions, where they will get referenced answers, links to PubMed, and verification by described posterior model. Here are a few screenshots of the user interface:"}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*WzueioyBwfYlagnhnehGIg.png"})}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*FwzI9FAKO-Mojuk4rLuD2Q.png"})}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsxs)("div",{className:"BodyImageDiv",children:[" ",(0,Ee.jsx)("img",{id:"verifailogo",className:"blog",src:"https://cdn-images-1.medium.com/max/1600/0*Xh3CEZQ5FzYXS77C"})]}),(0,Ee.jsx)("p",{children:"We are here to present our experience from building the VerifAI project, which is the biomedical generative question-answering engine with verifiable answers. We are open-sourcing whole code and models and we are opening the application, at least temporarily (depends on the budget for how long, and how and whether we can find a sustainable solution for hosting). In the next section, you can find the links to the application, website, code, and models.\xa0"}),(0,Ee.jsx)("p",{children:"The application is a result of the work of multiple people (see under Team section) and almost a year of research and development. We are happy and proud to present it now to a wider public and hope that people will enjoy it, and as well contribute to it, to make it more sustainable and better in the future.\xa0"}),(0,Ee.jsx)("h3",{children:"Cite our\xa0papers"}),(0,Ee.jsx)("p",{children:"If you use any of the methodology, models, datasets, or are mentioning this project in your paper\u2019s background section, please cite some of the following papers:"}),(0,Ee.jsxs)("ul",{class:"postList",children:[(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://arxiv.org/pdf/2402.18589",target:"_blank",children:"Ko\u0161prdi\u0107, M., Ljaji\u0107, A., Ba\u0161aragin, B., Medvecki, D., & Milo\u0161evi\u0107, N. \u201cVerif. ai: Towards an Open-Source Scientific Generative Question-Answering System with Referenced and Verifiable Answers.\u201d The Sixteenth International Conference on Evolving Internet INTERNET 2024 (2024)."})}),(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://arxiv.org/abs/2407.05015",target:"_blank",children:"Bojana Ba\u0161aragin, Adela Ljaji\u0107, Darija Medvecki, Lorenzo Cassano, Milo\u0161 Ko\u0161prdi\u0107, Nikola Milo\u0161evi\u0107 \u201cHow do you know that? Teaching Generative Language Models to Reference Answers to Biomedical Questions\u201d, The 23rd BioNLP Workshop 2024, Colocated with ACL 2024"})})]}),(0,Ee.jsx)("h3",{children:"Availability"}),(0,Ee.jsxs)("p",{children:["The application can be accessed and tried at ",(0,Ee.jsx)("a",{href:"https://verifai-project.com/",target:"_blank",children:"https://verifai-project.com/"})," or ",(0,Ee.jsx)("a",{href:"https://app.verifai-project.com/",target:"_blank",children:"https://app.verifai-project.com/"}),". Users can here register, and ask questions to try our platform."]}),(0,Ee.jsxs)("p",{children:["The code of the project is available at GitHub at ",(0,Ee.jsx)("a",{href:"https://github.com/nikolamilosevic86/verifAI",target:"_blank",children:"https://github.com/nikolamilosevic86/verif.ai"}),". The QLoRA adapters for Mistra 7B instruct can be found on HuggingFace at ",(0,Ee.jsx)("a",{href:"https://huggingface.co/BojanaBas/Mistral-7B-Instruct-v0.2-pqa-10",target:"_blank",children:"https://huggingface.co/BojanaBas/Mistral-7B-Instruct-v0.2-pqa-10"})," and ",(0,Ee.jsx)("a",{href:"https://huggingface.co/BojanaBas/Mistral-7B-Instruct-v0.1-pqa-10",target:"_blank",children:"https://huggingface.co/BojanaBas/Mistral-7B-Instruct-v0.1-pqa-10"}),". A generated dataset for fine-tuning the generative component can be found also on HuggingFace at ",(0,Ee.jsx)("a",{href:"https://huggingface.co/datasets/BojanaBas/PQAref",target:"_blank",children:"https://huggingface.co/datasets/BojanaBas/PQAref"}),". A model for answer verification can be found at ",(0,Ee.jsx)("a",{href:"https://huggingface.co/MilosKosRad/TextualEntailment_DeBERTa_preprocessedSciFACT",target:"_blank",children:"https://huggingface.co/MilosKosRad/TextualEntailment_DeBERTa_preprocessedSciFACT"}),"."]}),(0,Ee.jsx)("h3",{children:"Team"}),(0,Ee.jsxs)("p",{children:["The VerifAI project was developed as a collaborative project between Bayer Pharma R&D and the Institute for Artificial Intelligence Research and Development of Serbia, funded by the NGI Search project under grant agreement No 101069364. The people involved are ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/nikolamilosevic1986/",target:"_blank",children:"Nikola Milosevic"}),", ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/lorenzo-cassano-360b631b1/",target:"_blank",children:"Lorenzo Cassano"}),", ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/bojana-basaragin/",target:"_blank",children:"Bojana Ba\u0161aragin"}),", ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/milo%C5%A1-ko%C5%A1prdi%C4%87/",target:"_blank",children:"Milo\u0161 Ko\u0161prdi\u0107"}),", ",(0,Ee.jsx)("a",{href:"https://www.linkedin.com/in/adelacrnisanin/",target:"_blank",children:"Adela Ljaji\u0107"})," and ",(0,Ee.jsx)("a",{href:" https://www.linkedin.com/in/darija-medvecki-b27468ab/",target:"_blank",children:"Darija Medvecki"}),"."]}),(0,Ee.jsxs)("div",{className:"BodyImageDiv",children:[" ",(0,Ee.jsx)("img",{className:"blog",src:"https://cdn-images-1.medium.com/max/1600/1*UqR82MmSorm4C2nwuV-tkg.jpeg"})]})]}),Date:"16.07.2024",Author:"Nikola Milosevic",CoverImage:"https://cdn-images-1.medium.com/max/1600/1*eeAdmTh0lj7BjO4dCx98VA.png",CoverText:(0,Ee.jsxs)("p",{children:["Last September (2023), we embarked on the development of the ",(0,Ee.jsx)("a",{href:"https://verifai-project.com",target:"_blank",children:"VerifAI project"}),", after receiving funding from the ",(0,Ee.jsx)("a",{href:"https://www.ngisearch.eu",target:"_blank",children:"NGI Search"})," funding scheme of Horizon Europe."]})},{id:"the-european-union-must-keep-funding-free-software",Title:"The European Union must keep funding free software",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"Since 2020, Next Generation Internet (NGI) programmes, part of European Commission's Horizon programme, fund free software in Europe using a cascade funding mechanism (see for example NLnet's calls). This year, according to the Horizon Europe working draft detailing funding programmes for 2025, we notice that Next Generation Internet is not mentioned any more as part of Cluster 4."}),(0,Ee.jsx)("p",{children:"NGI programmes have shown their strength and importance to support the European software infrastructure, as a generic funding instrument to fund digital commons and ensure their long-term sustainability. We find this transformation incomprehensible, moreover when NGI has proven efficient and ecomomical to support free software as a whole, from the smallest to the most established initiatives. This ecosystem diversity backs the strength of European technological innovation, and maintaining the NGI initiative to provide structural support to software projects at the heart of worldwide innovation is key to enforce the sovereignty of a European infrastructure."}),(0,Ee.jsx)("p",{children:"Contrary to common perception, technical innovations often originate from European rather than North American programming communities, and are mostly initiated by small-scaled organizations."}),(0,Ee.jsx)("p",{children:"Previous Cluster 4 allocated 27 millions euros to:"}),(0,Ee.jsxs)("ul",{children:[(0,Ee.jsx)("li",{children:'"Human centric Internet aligned with values and principles commonly shared in Europe" ;'}),(0,Ee.jsx)("li",{children:'"A flourishing internet, based on common building blocks created within NGI, that enables better control of our digital life" ;'}),(0,Ee.jsx)("li",{children:'"A structured eco-system of talented contributors driving the creation of new internet commons and the evolution of existing internet commons" .'})]}),(0,Ee.jsx)("p",{children:"In the name of these challenges, more than 500 projects received NGI funding in the first 5 years, backed by 18 organisations managing these European funding consortia."}),(0,Ee.jsx)("p",{children:"NGI contributes to a vast ecosystem, as most of its budget is allocated to fund third parties by the means of open calls, to structure commons that cover the whole Internet scope - from hardware to application, operating systems, digital identities or data traffic supervision. This third-party funding is not renewed in the current program, leaving many projects short on resources for research and innovation in Europe."}),(0,Ee.jsx)("p",{children:'Moreover, NGI allows exchanges and collaborations across all the Euro zone countries as well as "widening countries"\xb9, currently both a success and and an ongoing progress, likewise the Erasmus programme before us. NGI also contributes to opening and supporting longer relationships than strict project funding does. It encourages to implement projects funded as pilots, backing collaboration, identification and reuse of common elements across projects, interoperability in identification systems and beyond, and setting up development models that mix diverse scales and types of European funding schemes.'}),(0,Ee.jsx)("p",{children:"While the USA, China or Russia deploy huge public and private resources to develop software and infrastructure that massively capture private consumer data, the EU can't afford this renunciation."}),(0,Ee.jsx)("p",{children:"Free and open source software, as supported by NGI since 2020, is by design the opposite of potential vectors for foreign interference. It lets us keep our data local and favors a community-wide economy and know-how, while allowing an international collaboration."}),(0,Ee.jsx)("p",{children:"This is all the more essential in the current geopolitical context: the challenge of technological sovereignty is central, and free software allows to address it while acting for peace and sovereignty in the digital world as a whole."})]}),Date:"16.07.2024",Author:"Nikola Milosevic",CoverImage:dt,CoverText:(0,Ee.jsx)("p",{children:"Since 2020, Next Generation Internet (NGI) programmes, part of European Commission's Horizon programme, fund free software in Europe using a cascade funding mechanism (see for example NLnet's calls). This year, according to the Horizon Europe working draft detailing funding programmes for 2025, we notice that Next Generation Internet is not mentioned any more as part of Cluster 4."})},{id:"ailiteracy-debunking-misconceptions",Title:"AI Literacy: Debunking Pre- and Misconceptions",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"Within society, we still encounter surprisingly large gaps in knowledge regarding AI, owing to insufficient information or misinformation. Some false conceptions may not have significant consequences and will be debunked along the way through more frequent interaction between people and AI, while others are eventually doubly harmful in the sense that they are so far removed from true state of affairs that they can instill genuine fear and anxiety in individuals, which over time can lead to undesirable effects on even the AI industry itself, resulting in its stagnation due to needlessly hindering the acceptance and utilization of its advancements."}),(0,Ee.jsx)("p",{children:"In the meantime, while such background inaccurate notions spread, AI is developing to be best aligned with us and our needs - and it's worth reexamining acquired concerns and making a real effort to understand it properly. Thus, the aim of this essay is to portray a realistic picture of what AI is and what its 'intentions' are, by uncovering the accompanying 'human nature' factors that, alongside inadequate knowledge, contribute to the emergence of the 'loudest' myths about it, and providing fact-based explanations as to why they really have no place in actuality."}),(0,Ee.jsxs)("div",{className:"BodyImageDiv",children:[" ",(0,Ee.jsx)("img",{src:lt,alt:"Image of scientist and AI",className:"blog"})]}),(0,Ee.jsx)("h3",{children:"Conceptions Based on Distrust/Fear"}),(0,Ee.jsx)("h4",{children:"'AI will render human expertise obsolete.'"}),(0,Ee.jsx)("p",{children:"Taking into consideration the extent to which this concern has grown, perhaps above all else, we should address it. The first thing that is important to emphasize is that the goal of engaging AI in various business spheres, and indeed the goal of technological advancement, has never been to 'replace' humans in any way. Yes, this may seem easily achievable when we consider the benefits that employers can derive from such a thing, and that AI is becoming increasingly proficient in many aspects. And yes, we are beginning to encounter some examples of individuals who have lost half or all their working hours. However, despite all this, you can rest assured that there is not much reason for panic."}),(0,Ee.jsx)("p",{children:"What history remembers are the three industrial revolutions that brought about major changes regarding professions. Currently, the fourth is underway, in which AI plays a significant role. A chronological overview of these significant events suggests that what happened during previous rapid increases in technology usage was not the disappearance of jobs as such, but rather the elimination of old positions and the emergence of new, updated ones after the market stabilizes. Machines took over physical efforts (and mostly everything we least like to do), leaving people with more comfortable responsibilities. The only consequence of these changes is better overall results, both in terms of quantity and quality. Guided by this insight, it is reasonable to assume that the same will happen again this time, and we should start preparing ourselves, not for our work to become redundant, but for it to be aligned with the work that this new intelligent business partner will perform alongside us."}),(0,Ee.jsx)("h4",{children:"'AI is necessarily biased.'"}),(0,Ee.jsx)("p",{children:"This is as equally untrue as considering AI to be completely objective. The key to understanding this aspect of the topic is that existing AI systems are objective only to the extent that the data they are trained on, the algorithms they use, and the ways in which they are used in practice allow them to be. Every recorded biased moment in AI stems from the fact that all AI systems perpetuate and amplify existing biases in the data they are trained on - because that is the only way they can function. (Bewersdorff et al. 2023: 9) The solution lies in selecting and using high-quality, verified tools that, when used together, are capable of producing the desired output."}),(0,Ee.jsx)("p",{children:"Furthermore, upon deeper reflection, it may not always be desirable for AI results to possess the quality of complete objectivity. While the task is certainly to make AI less prone to unwarranted exclusion or elevation of certain groups of people, beliefs, etc., it remains to be seen to what extent it will be possible to deprive AI of the ability to individualize while still maintaining the element of personalized service (an experience that users definitely enjoy). What seems like a reasonable compromise is for personal use systems to contain additional components that enable them to recognize differences in personal preferences and needs (e.g., a smart OS personal assistant), while others would ideally be devoid of this and perceive circumstances in a more generalized manner (e.g., a bank's chatbot)."}),(0,Ee.jsx)("h4",{children:"'AI represents a mysterious problem space.'"}),(0,Ee.jsx)("p",{children:"This conclusion might be easy to draw due to the significant complexity of AI at first glance and its rapidly growing capabilities, but it is just a sign of a deep misunderstanding of it. (Bewersdorff et al. 2023: 7) When we start learning about segments and processes within AI systems (as is the case with any other completely new subject), everything slowly ceases to be enigmatic once and for all. In the process, we will also realize that, while it is true that those systems have their own mechanisms (and that's precisely what enables them to surpass us and thus strengthen us in certain fields of operation), it is inevitable that humans, as their creators, have exerted a crucial influence on them, which from the outset ensures a good level of our understanding of how they operate, and thus the ability to control them."}),(0,Ee.jsx)("p",{children:"If we are convinced that we're dealing with something that, for whatever reason, we can't fully understand, at the very least we'll be skeptical and persistently avoid it. In that case, when it comes to AI, we may miss out on utilizing various useful tools that are offered. However, it can also lead us to automatically characterize it as unpredictable and potentially dangerous, believing that we are unable to have a clear insight and sufficient control over its goals and powers. Such an understanding is particularly problematic because it implies a sense of fear that is not directed towards any concrete (real) risk but rather is perceived as a constant invisible threat, so we can start feeling unease frequently hearing about all the new AI inventions, and also because it leaves too much room for projecting various 'possible' ending scenarios, thus prolonging and strengthening false alarm."}),(0,Ee.jsx)("p",{children:"It's important to know that these apprehensions are unfounded because AI is very far from breaking away from human authority in any sense, or any kind of independence and autonomy (if it ever could even reach it at all)."}),(0,Ee.jsx)("h3",{children:"Conceptions Based on Underestimation"}),(0,Ee.jsx)("h4",{children:"'AI is superfluous to me.'"}),(0,Ee.jsx)("p",{children:"Besides the fact that it's already complicated to bypass AI technologies at this moment, given that we are already interacting with them without even noticing (e.g., every suggested word on Google search engine is thanks to AI), the future will make their use inevitable for everyone. It's likely that AI will relatively soon become responsible for all payments, entering one's office, etc., thanks to its 'magical' ability to make everything more efficient and simpler. Thus, someone's further rejection of these innovations implies frequent difficulties in performing their routine activities."}),(0,Ee.jsx)("p",{children:"The reasons behind someone's stance that they don't want to have anything to do with AI are usually related to the impression that its use is actually a kind of hindrance. This can mean that they personally don't feel the need to change their existing habits, or that they are uncomfortable relying on AI insights due to doubts about its competence, or perhaps that they feel a sense of guilt when using AI tools, considering it unjustifiably leveraging others' abilities for their own projects. It is true that AI is rapidly changing the way we operate, and we are expected to keep up with it. Also, AI fallibility is a real problem that must be addressed, as trust is not given for free. It can be difficult, as well, to strike the right balance, and sometimes it is necessary to limit AI use to ensure the authenticity of our results. However, it is still highly advisable to keep in mind that one of the main purposes of AI development is and will be to facilitate our daily and professional tasks, so, in the long run, it is much more beneficial than harmful for us to gradually become familiar with it so that we can stay abreast of the improvements it brings and know how to enjoy them in the best possible way for us."}),(0,Ee.jsx)("h4",{children:"'AI is only a weak competitor to humans.'"}),(0,Ee.jsx)("p",{children:"In the given context, creativity is usually the first target. (Bewersdorff et al. 2023: 7) If we hold this conception, we see AI mainly as a tool for automating repetitive tasks and believe it should not have the right to participate in art because it lacks the necessary capacity to contribute on an equal footing with humans. There are numerous arguments against attributing this trait to AI, and our advocacy for it may have a point, but not necessarily in every way - this debate can rightfully be lengthy and still end without a uniform conclusion. Whatever the case may be, in that position, we certainly miss seeing and understanding the important role that it currently has in shaping our cultural landscape."}),(0,Ee.jsx)("p",{children:"This critique can also apply to general AI capabilities, where it is argued that AI is automatically inferior to humans simply because it has little in common with (our) unique natural type of intelligence. (Bewersdorff et al. 2023: 7) It is not disputed that AI systems have quite distinct strategies from human brain, but this is not a legitimate reason to negatively compare them to us - rather, it is about acknowledging that we are clever in different ways. It should be recognized that in some areas, AI can solve problems and make decisions better than humans. Similarly, it is okay that it still has its own limitations regarding tasks that are easy for us, such as understanding context and recognizing emotions."}),(0,Ee.jsx)("p",{children:"Building on this, the lack of emotions is another target if we consider that absence of them means something cannot express empathy, give good advice, or just be morally upright. (Bewersdorff et al. 2023: 7) Once again, today\u2019s AI is not a self-regulating mechanism; it only adopts the values and habits that we humans instill in it. Therefore, it logically follows that proper training will lead to benevolent AI in this regard."}),(0,Ee.jsx)("h4",{children:"'AI is (that) one thing.'"}),(0,Ee.jsx)("p",{children:"Limited understanding of the various types of AI may be the naivest falsehood regarding it. This viewpoint can be formed when we lack acquaintance with a broader range of AI resources and rather rely on just one."}),(0,Ee.jsx)("p",{children:"However, it is fundamentally flawed to perceive AI as a singular entity. AI manifests in numerous forms and serves diverse purposes.AI is not confined to physical embodiments like robots or VR equipment; many AI technologies exist purely in software. (Bewersdorff et al. 2023: 6) Also, it is not restricted to content generation; among other tasks. AI can aid in discovering new compounds."}),(0,Ee.jsx)("p",{children:"Understanding the spectrum of AI, besides its good for opening new possibilities for our own use, is a key component for correctly comprehending its ability to drive changes in society. This is important not only so we can see how it will contribute to us but also to recognize probable challenges that may arise with it in the future, and to timely contemplate their solutions."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"We have observed that the prevailing pre- and misconceptions surrounding AI stem from an inconvenient combination of a lack of adequate knowledge and the typical feelings we tend to experience when facing something predominantly unfamiliar. Nevertheless, regardless of anyone's previous resistance, by opening a bit more to this new reality, seeking answers to their questions, and experimenting with innovations, there is a great chance that they will, at some point, catch themselves being much more enthusiastic, realizing that they are actually very privileged to be living in this exact era."}),(0,Ee.jsx)("h3",{children:"References"}),(0,Ee.jsx)("p",{children:"Bewersdorff, Arne, Yhai, Xiaoming, Roberts, Jessica & Claudia Nerdel (2023). \u201eMyths, mis- and preconceptions of artificial intelligence: A review of the literature\u201c, Computers and Education: Artificial Intelligence: 1-9."})]}),Date:"09.04.2024",Author:"Angela Pupovac",CoverImage:lt,CoverText:(0,Ee.jsx)("p",{children:"Within society, we still encounter surprisingly large gaps in knowledge regarding AI, owing to insufficient information or misinformation. Some false conceptions may not have significant consequences and will be debunked along the way through more frequent interaction between people and AI, while others are eventually doubly harmful in the sense that they are so far removed from true state of affairs that they can instill genuine fear and anxiety in individuals, which over time can lead to undesirable effects on even the AI industry itself, resulting in its stagnation due to needlessly hindering the acceptance and utilization of its advancements."})},{id:"presentation-internet2024",Title:"Verif.ai presented at The Sixteenth International Conference on Evolving Internet (INTERNET 2024)",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"Dear Verif.ai Community,"}),(0,Ee.jsx)("p",{children:"We presented the progress and current stage of the Verif.ai project at the sixteenth International Conference on the Evolving Internet 2024."}),(0,Ee.jsx)("p",{children:'The paper titled "Verif.ai: Towards an Open-Source Scientific Generative Question-Answering System with Referenced and Verifiable Answers" has been published in the conference proceedings.'}),(0,Ee.jsx)("p",{children:"It is our pleasure to provide you with the materials used at the conference. Explore them and learn about the mechanisms behind the innovative VerifAI system!"}),(0,Ee.jsx)("p",{children:"Links:"}),(0,Ee.jsxs)("ul",{children:[(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://www.iaria.org/conferences2024/INTERNET24.html",target:"_blank",children:"The Sixteenth International Conference on Evolving Internet (INTERNET 2024)"})}),(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://www.slideshare.net/slideshows/verifai-project-presentation-internet2024-conference/266753001",target:"_blank",children:"Verif_ai Project Presentation - INTERNET2024 Conference | PPT (slideshare.net)"})}),(0,Ee.jsx)("li",{children:(0,Ee.jsx)("a",{href:"https://arxiv.org/pdf/2402.18589.pdf",target:"_blank",children:"Verif-ai paper"})})]}),(0,Ee.jsx)("p",{children:"Stay tuned for more updates on our progress!"})]}),Date:"15.03.2024",Author:"Angela Pupovac",CoverImage:dt,CoverText:(0,Ee.jsx)("p",{children:"We presented the progress and current stage of the Verif.ai project at the sixteenth International Conference on the Evolving Internet 2024."})},{id:"evolution-ai",Title:"Genesis and Evolution of AI'",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"If we wish to understand how and when AI began, we will uncover a long and highly interesting process. When did the belief in constructing functional mechanical entities resembling humans emerge? What inspired the development of many intelligent technologies we use today? The initial ideas can be traced back to various ancient philosophical discussions that explored the possibility of artificial humans. There was no shortage of imagination, and quality arguments were formed, but there wasn't much knowledge about where to start in practice. Fortunately, certain innovators appeared. For example, Leonardo da Vinci decided to put some of the speculations into action and successfully constructed a robot dressed in armor, called Leonardo's mechanical knight, capable of making several human-like motions, and it was declared fully functional. These and similar initial discoveries instilled new hope in creating an 'electronic brain' and empowered certain scientists for the first serious attempts. But, did everything go smoothly, or were there any issues? Researching the past reveals that the development of AI has had significant ups and downs. Therefore, the purpose of this essay is to acquaint the curious with the moments and figures that marked the beginning of the non-theoretical history of AI."}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{src:ot,alt:"Image of scientist and AI",className:"blog"})}),(0,Ee.jsx)("h3",{children:"Father of AI"}),(0,Ee.jsx)("p",{children:"The British logician, mathematician, and cryptographer, Alan M. Turing, is often popularly referred to as the father of AI and theoretical and modern computer science."}),(0,Ee.jsx)("p",{children:"During World War II, Turing managed to crack the 'Nazi Enigma Code', thus ensured the Allied victory. By 1950, shortly after the emergence of the first computer, Turing was already motivated by the possibility that machines could think like humans. Therefore, in one of his works, he proposed conducting testing of machine intelligence, initially known as the 'imitation game', and today known as the 'Turing Test'. At that time, doubts about Turing's idea were significant. However, today we have what we call AI with all its benefits."}),(0,Ee.jsx)("h3",{children:"Birthplace of AI"}),(0,Ee.jsx)("p",{children:"In the early 1950s, AI systems had various names (cybernetics, automata theory, complex information processing), depending on the conceptual orientation. This changed in 1955, when John McCarthy, a newly appointed assistant professor of mathematics at Dartmouth College, decided to bring together a group of colleagues to delve into the realm of thinking machines. Finally, he gives their field of research a neutral name 'artificial intelligence'."}),(0,Ee.jsx)("p",{children:"In the same year, McCarthy approached the Rockefeller Foundation to request funding for a two-month workshop at Dartmouth, and soon after, the project was formally proposed by McCarthy, Marvin Minsky, Nathaniel Rochester, and Claude Shannon. The undertaking in question is 'Dartmouth Summer Research Project on Artificial Intelligence', now widely regarded as a foundational event in the field of AI."}),(0,Ee.jsx)("p",{children:"The Foundation provided only half the money they requested, and an additional complication was that it was planned for eleven mathematicians and cognitive scientists to participate, but some of them did not come, while around ten others came for short periods. Despite everything, the event was held and lasted a full nine weeks during the summer of 1956. All of it took place on the top floor of Dartmouth College, which housed the Math Department."}),(0,Ee.jsx)("p",{children:"It is important to emphasize that even though they failed in what was initially planned, namely making an intelligent algorithm per se, they achieved something greater through their participation. Most of them remain remembered as pioneers who formalized the concept of AI as a branch of science, inspiring many people to pursue AI goals in their own way."}),(0,Ee.jsx)("h3",{children:"AI Winter"}),(0,Ee.jsx)("p",{children:"Although AI summer predominates from the mid-twentieth century, bringing a significant surge of influential ideas and discoveries, some setbacks winters will also be remembered."}),(0,Ee.jsx)("p",{children:"The term 'AI winter' refers to a period of significantly reduced interest in artificial intelligence research. In this field, there have been several hype cycles, typically accompanied by difficulties such as dissatisfaction within the community, public criticism, lack of funding, and hopes for progress. Nonetheless, after each 'cooling off' period, there would be a recovery within a few years, or in the worst case, decades later."}),(0,Ee.jsx)("p",{children:"Two longer periods of winter have been recorded: the first from 1974-1980, and the next from 1987-2012. The term itself was coined in 1984 and was the subject of public debate at the annual meeting of AAAI, or the American Association for Artificial Intelligence. Experienced and highly significant researchers Roger Schank and Marvin Minsky personally faced the first period and were able to predict the next based on the preceding overly enthusiastic years. They pointed out a chain reaction, known as the 'nuclear winter'. Indeed, three years later, the second collapse occurred."}),(0,Ee.jsx)("p",{children:"Since 2012, the field of AI has been regaining strength. Now, in 2024, AI is experiencing its most glorious era, which we rightfully can call a 'boom phase' - and this time, there are hardly any signs indicating impending storms."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"The journey through the evolution of AI, from visionary insights and its inception, through the consistent efforts of researchers invested in development and overcoming occasional downturns, paints a rich picture of human and scientific curiosity, ingenuity, and resilience. The current era stands as evidence of our true commitment to the task of collectively transforming something that was once purely speculative into reality. With optimism, we welcome it and continue to look ahead, envisioning humanity's potential to finally evolve into its best self with such support."})]}),Date:"10.03.2024",Author:"Angela Pupovac",CoverImage:ot,CoverText:(0,Ee.jsx)("p",{children:"Although AI summer predominates from the mid-twentieth century, bringing a significant surge of influential ideas and discoveries, some setbacks winters will also be remembered."})},{id:"advanced-forms-ai",Title:"Advanced Forms of AI: AGI and ASI",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"As AI rapidly advances, it has reached and even surpassed human capabilities in some domains. We're adjusting to the societal changes stemming from this progress and striving to find compromises to harness its benefits. However, the future holds much more radical innovations than, for example, AI voice assistant or self-driving cars. Indeed, AI has the great potential to fully cover a broad spectrum of applications, initially mirroring human capabilities, and eventually cover all of them, surpassing humans by far. This essay diverges from artificial narrow intelligence (ANI) and delves into key unintended consequences that could arise when futuristic forms emerge, offering brief guidelines for potential solutions."}),(0,Ee.jsx)("div",{className:"BodyImageDiv",children:(0,Ee.jsx)("img",{src:st,alt:"Image of thinking and decision making",className:"blog"})}),(0,Ee.jsx)("h3",{children:"Artificial General Intelligence (AGI)"}),(0,Ee.jsx)("p",{children:"AGI will be intelligence that mimics, or to some extent surpasses, human cognitive performance in many areas of interest. Thus, AGI cannot be, for example, a chess program like \u2018Stockfish\u2019, since it is intelligent only within that specific domain. By wide agreement, AGI entails the ability to perform various tasks aligned with ultimate goals across different contexts and environments. This standard will be attainable if it effectively generalizes acquired knowledge. (Goertzel 2014: 3)"}),(0,Ee.jsx)("p",{children:"However, currently, limitations lie in the fact that for every real-world AI system, although it may be highly successful in solving certain tasks, there are some learning tasks on which it is unacceptably slow, so it is expected that even the application of extended AI will be somewhat limited to certain types of problems that it excels at. (Goertzel 2014: 2, 3)"}),(0,Ee.jsx)("h3",{children:"AGI Hazards"}),(0,Ee.jsx)("p",{children:"There are no unambiguous predictions about when AGI will be achieved. However, there are a couple of obvious challenges that we need to address upon its emergence, so it would be responsible of us as societies to start preparing soon through information and education. The first one is already gaining strength. It concerns the potential loss of jobs for humans. There are claims that within the next 20 years, computers and robots will demonstrate their ability to competitively compete with human intelligence. When that happens, the issue of job displacement could be significant. This trouble is often justified by studies from the University of Oxford, the Organization for Economic Co-operation and Development (OECD), and PwC (formerly Price Waterhouse Coopers), who predict that employment will drop by between 9 and 38 percent from current levels. (Okechukwu Ekwueme et al. 2023: 8) If society were to pay closer attention to such warnings promptly and take them seriously, we would have enough time to adapt employee skills, ensuring that new versions of professions fit into the upcoming technological landscape. The next one concerns preserving mental health. If everything can be readily obtained without investing too much effort, enjoyment and sense of purpose may start to disappear. This is undoubtedly concerning; however, the solution can be simple. Again, we need to learn to live with the new tools. If we use them moderately, only when necessary, life can actually become easier and more joyful. As always, part of the responsibility lies with us, and we are free to determine how to use the resources available to us."}),(0,Ee.jsx)("h3",{children:"Superintelligence (ASI)"}),(0,Ee.jsx)("p",{children:"According to a rough definition, superintelligent systems are those that will exhibit a form of general intelligence far beyond human capacity. The capability to learn fast, deal with uncertainty and probabilistic information, as well as infer concepts from sensory input and internal states for the purpose of logical reasoning, should be integral features of the blueprint for AI systems aiming to achieve superintelligence \u2013 whether sentient or not."}),(0,Ee.jsx)("p",{children:"It's possible to identify several (5) technological pathways to the emergence of Super AI: artificial intelligence, whole brain emulation, biological insight, human-machine interfaces, and networks and organizations. (Bostrom 2014: 51) It has been shown that the progress of AI is the most likely and fastest pathway because it does not necessarily require a massive advancement in technologies like the others. It is believed that it will still take a lot of time and significant effort, but theoretically, there is nothing preventing someone from understanding how to do it, sitting down, and writing the code for seed ASI on a conventional computer today. (Bostrom 2014: 71)"}),(0,Ee.jsx)("h3",{children:"ASI Hazards"}),(0,Ee.jsx)("p",{children:"One day, in the relatively distant future, we might encounter this entity. Approximately, it's a sci-fi supercomputer - except it doesn't have to be a computer or a robot at all; it could exist in its VR or some entirely different form. It is required to employ imagination and acknowledge the possibility that some kind of poorly designed ASI, for instance, could engage in war with humans (like in the movie Terminator). Alternatively, as some sort of sage, which, fundamentally, would be in relation to us, it might choose a type of meditation and tranquility as it finds no purpose in interacting with humans to contemplate undisturbed within itself undisturbed. Or we could face a situation where it has created and prioritized independent desires and ambitions and decided to pursue them, ignoring the needs of its creators. This is a depiction of just a few undesirable consequences of launching a faulty version of SAI. In any case, since it would be too powerful, there's no certainty that there's suitable weaponry for warfare against it, so it's best that such a war never occurs. Protection should consist of prevention, i.e., careful, ethical shaping of the system in the preceding, early stages."}),(0,Ee.jsx)("h3",{children:"How Are We Doing?"}),(0,Ee.jsx)("p",{children:"At this juncture, such demands may appear daunting to the average reader \u2013 as it is not easily conceivable how capabilities such as speculation, functional senses, and emotions, inherently belonging to the living world, could be implemented into a machine system. However, the rise of AI could lead to an intelligence explosion. (Okechukwu Ekwueme et al. 2023: 5) Upon examining the breakthroughs launched in the past few years, we will notice that we have rapidly progressed towards realizing these scenarios. It seems that scientists have found alternative ways to meet criteria and compensate for certain conscious (and unconscious) mechanisms inherent to humans."}),(0,Ee.jsx)("p",{children:"For instance, regarding the ability of prediction, the vivid empirical experience of 'familiarity' with the nature of something (surprisingly successful) replaces the tactic of gathering, sorting, and amalgamating a greater amount of information about subjects based on their (voluntary) recorded actions, employed by companies such as Google, Facebook, etc., which is aimed precisely at predicting their likely future states or future interests and needs. Moreover, among the latest discoveries, we will encounter robots that, instead of possessing a sense of smell like humans, are trained to distinguish substances by the odor they emit in a different way \u2013 along with the accompanying advanced recognition ability to discern which of them are dangerous and which are not. Then, there are autonomous trucks and other types of vehicles that, instead of using the sense of sight, successfully perform long journeys without a driver using special sensors \u2013 and that without the possibility of making mistakes that occur to human beings due to fatigue, shifting attention focus, etc. In place of emotional intelligence that enables human beings with empathic ability, LLM\u2019s possess algorithmic intelligence at a high-level resembling cognitive and are capable of technical 'empathy' based on recognizing written content and responding appropriately to certain patterns."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"Achieving describes milestone has always been the 'Holy Grail' of AI research. (Schlicht 2022: 5) Therefore, it is expected that it offers more and more opportunities. However, if we want to avail ourselves of these and have AI take on some of the problems that burden us, we must also ensure its integration into our world. With our vigilance and adaptability, as well as ensuring its quality construction, we can look forward to the desired outcome."}),(0,Ee.jsx)("h4",{children:"References"}),(0,Ee.jsx)("p",{children:"Goertzel, Ben (2014). \u201eArtificial General Intelligence: Concept, State of the Art, and Future Prospects\u201c, Journal of Artificial General Intelligence 5(1):1-46."}),(0,Ee.jsx)("p",{children:"Bostrom, N. (2014). Superintelligence: Paths, dangers, strategies (Oxford: Oxford University Press)."}),(0,Ee.jsx)("p",{children:"Okechukwu Ekwueme, Francis, Areji C. Anthony, Ugwu, Anayochukwu. (2023). \u201eBeyond the Fear of Artificial Intelligence and Loss of Job: a Case for Productivity and Efficiency\u201c, Qeios 10.32388: 1-11."}),(0,Ee.jsx)("p",{children:"Schlicht, Tobias (2022). \u201eMinds, Brains, and Deep Learning: The Development of Cognitive Science Through the Lens of Kant\u2019s Approach to Cognition\u201c, in Hyeongjoo Kim & Dieter Sch\xf6necker (ed.), Kant and Artificial Intelligence (Berlin: De Gruyter): 3-38."})]}),Date:"19.02.2024",Author:"Angela Pupovac",CoverImage:st,CoverText:(0,Ee.jsx)("p",{children:"According to a rough definition, superintelligent systems are those that will exhibit a form of general intelligence far beyond human capacity. The capability to learn fast, deal with uncertainty and probabilistic information, as well as infer concepts from sensory input and internal states for the purpose of logical reasoning, should be integral features of the blueprint for AI systems aiming to achieve superintelligence \u2013 whether sentient or not."})},{id:"genai-decision-making",Title:"Generative AI: Ally in Decision-Making",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"People (rightfully) tend to be anxious about making decisions on a rational basis. The question we ask ourselves is, 'Have I thought this over long enough?' or in other words, 'Have I taken enough data into consideration?'. Indeed, it's very difficult to be completely sure - there can always be more. That's why it often happens that we just keep reconsidering until we run out of time, and at the moment of decision-making, we resort to snap judgments. This doesn't sound like the best method, right?"}),(0,Ee.jsxs)("div",{className:"BodyImageDiv",children:[" ",(0,Ee.jsx)("img",{src:rt,alt:"Image of thinking and decision making",className:"blog"})]}),(0,Ee.jsx)("p",{children:"Now, imagine that you're not alone in this and that you have a skilled, amicable assistant at hand for every dilemma. AI wants to become that 'when it grows up'. Not too long ago, this would have sounded too good to be true. Until today, we've realized that there is no concrete reason to claim that such a future cannot become a reality. However, there are many indicators that this process of advancement will not be easy at all and we will have to make a concerted effort to ensure success. This essay explores some of the main conditions that must be met in order to achieve this goal."}),(0,Ee.jsx)("h3",{children:"Explainable AI (XAI)"}),(0,Ee.jsx)("p",{children:"In various domains, it is fair for decision-makers to be able to justify the reasons for their decisions to others, so they can rightfully remain in their positions. Thus, if a decision is made (at least partially) based on the conclusions of an AI system, it is essential for building a trustworthy relationship between humans and AI to provide explanations of how it operates and arrives at its results. (Ferreira & Monteiro 2021: 1) This applies whether we are collaborators in this process or observers. If we are the ones who will bear responsibility for a decision, it will be important for us to know the basis on which it is made. And if the decision is made by someone else, we will have a need to understand and evaluate it if it concerns us or the society in which we live."}),(0,Ee.jsx)("p",{children:"Only AI accompanied by the attributes of transparency and interpretability is worthy of being an (super) advisor. Aside from the availability of clear and suitable technical explanations, for most decision-makers, it's also crucial to ensure that the way AI addresses ethical challenges is in line with the greatest human welfare."}),(0,Ee.jsx)("h3",{children:"Tech - Snapshot"}),(0,Ee.jsx)("p",{children:"The first of the key criteria for establishing AI as a competent decision-making ally is that we know it is consistently precise and has been trained on accurate, verifiable data. - yet we still cannot truly say that this has been ensured."}),(0,Ee.jsx)("p",{children:"So far, we've had the opportunity to enjoy the assistance of certain tools. We often hear 'Ask Google,' and more recently, 'Ask ChatGPT' has become common. However, it's difficult to gauge the extent to which these sources can provide support. While websites are repositories of arbitrary information claimed by various authors, the unreliability of AI generative language models manifests in occasional partially correct or even contradictory information, i.e., hallucinations. If we rely entirely on it, the chance of making a mistake is still non-negligible."}),(0,Ee.jsx)("p",{children:"LLM's (Large Language Models) are capable of producing several convincingsounding sentences in a row and stringing them together, but they also exhibit strange patterns, habits, and limitations. If we had a partial understanding of the question we posed previously, we will recognize irregularities, but the problem lies in the fact that someone who knows nothing about the subject can be easily deceived because AI sounds confident in providing all of its answers. All of this is happening because AI can't understand what it's saying, so it's definitely not self-checking. It doesn't form sentences like humans do; rather, it generates a new sentence by taking our input and then creating output based on related words that are most likely to occur together. Additionally, another major problem lies in the fact that the 'literature' that generative models rely on is not necessarily of the best quality."}),(0,Ee.jsx)("p",{children:"It's clear that if we need an answer and then need to double-check it through further research, we don't have an efficient assistant. However, basically, everything AI currently does requires a human final touch."}),(0,Ee.jsx)("h3",{children:"AI Moral Codex"}),(0,Ee.jsx)("p",{children:"Besides technical challenges, the next big challenge on the horizon is ethical concerns, which currently mainly revolve around privacy and bias. It's not enough for AI conclusions to appear morally correct at first glance; it's essential that they actually are, in a broader sense. Once more, explainability is key. We want to know and understand moral framework of AI."}),(0,Ee.jsx)("p",{children:"The problem of AI alignment concerns ensuring that AI systems align with a diverse set of human values, encompassing moral, social, justice-oriented, and other relevant principles (Mougan & Brand 2023: 2). The aim is to structure AI in a way that successfully covers what is fundamentally common to all well-intentioned goals, namely aligning well with the widely accepted (according to the Universal Declaration of Human Rights) concepts of inalienable human rights. (Mougan & Brand 2023: 1, 5)"}),(0,Ee.jsx)("p",{children:"Designers/developers of AI systems are responsible for ensuring this. Moreover, they must always be aware of all those who may be affected by their choices. The impact of AI on society must always be a top priority and concern for those who influence theits operation. (Ferreira & Monteiro 2021: 1)"}),(0,Ee.jsx)("p",{children:"Philosophy serves as a project engineer who should be consulted for such purposes. Instead of attempting to embed a myriad of newly emerging individual instructions with narrow applications into AI and thus naively overlook a large number of exceptions that would lead to undesired consequences, a safer solution is to choose a previously established and coherent value system as a 'moral database' that AI will use, and we are left to explore which ethical set of prescribed values promises most to fulfill our requirements and expectations. Utilitarianism is gaining popularity as an approach in the fairness metrics of artificial intelligence. However, there are also other high-quality ethical theories, such as Kantian ethics, whose compatibility in this field, despite the importance of deontology, remains insufficiently explored (Mougan & Brand 2023: 1)."}),(0,Ee.jsx)("h3",{children:"Verif.ai Contribution to XAI"}),(0,Ee.jsx)("p",{children:"As indicated, the first challenge to overcome in order to finally provide satisfactory explanations is the fallibility of generative models. That's why we embarked on the quest for AI system designed to verify and document the correctness of facts in AI-generated texts."}),(0,Ee.jsx)("p",{children:"Humans and humanity face both minor and major decisions. Typically, we rank their importance based on the consequences that may arise from them. Undoubtedly, everyday life decisions could be easier to make with the right advice. However, where professional assistance is particularly welcome is where every consequence is of paramount importance - in science. AI can be used in almost any field, including healthcare, manufacturing, education, finance, and more. The Verif.ai project has decided to start by addressing one of the most crucial scientific domains: biomedicine. After all, health itself is something whose proper functioning enables the proper functioning of everything else. When hallucinations are successfully overcome in this field (through additional verification and the provision of generated answers based on a relevant database), expansion into other areas follow. Step by step, we are on the right path towards making the privileges that were described commonplace for everyone."}),(0,Ee.jsx)("h3",{children:"Promising Future"}),(0,Ee.jsx)("p",{children:"The help of AI should not have a negative impact on our confidence in our abilities because ultimately, we remain the ones making the final decision. (Ferreira & Monteiro 2021: 7) What a well-functioning XAI would provide us with is a solid foundation to start from."}),(0,Ee.jsx)("p",{children:"Mutual complementarity could work well for the simple reason that AI and humans have different strengths and resources at their disposal. Creating and analyzing should not be attempted simultaneously; they are entirely different processes. When performed independently, calculating can consume too much valuable time, and without a practical way to ascertain that the decision we've made is correct, mistakes are common. Therefore, the contribution of an assistant that would take over that part of the work would be significant. On one hand, critical thinking and innovation are still attributes exclusive to humans; on the other hand, AI has a compelling quantitative advantage when it comes to handling vast amounts of data, rapid action, and multitasking. It should play the role of an assistant adept at statistics, comparison, summarization, and data sorting. The benefits of that are noteworthy. People could finish their tasks tranquilly, without dwelling on skeptical deliberation and also learn faster. If it diligently performed its part, we could forge a strong alliance."}),(0,Ee.jsx)("p",{children:"Often, it is the human inability to foresee consequences that hinders our decisionmaking process. AI has a way of alleviating this fear of uncertainty, prediction is it\u2019s superpower. Being able to rapidly process a larger amount of information than humans ever could, it is capable of presenting the most likely outcome of a process. We wouldn't have to engage in painstaking guesswork, but rather further assess the situation based on its calculations and decide whether such an outcome is desired or not. There is a spectrum of benefits: we rid ourselves of procrastination and overthinking because we have clarity, and instead of insufficiently considered decisions when we lack time, we have quick and readily available assistance. Using AI in this way finally frees up enough space for us to progress at the pace and manner we ideally desire."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"The integration of AI into decision-making processes carries great potential but also challenges. It is crucial to establish a harmonious relationship between humans and AI, where AI serves as a reliable partner in achieving the decision maker's goals. Transparency, interpretability, and ethical alignment are key factors for a successful alliance. Initiatives like Verif.ai represent steps forward in overcoming technical challenges and ensuring the reliability of decisions guided by AI. There is good reason to believe that, with the right strategies and patience, AI can evolve into a support without second-guessing."}),(0,Ee.jsx)("h4",{children:"References"}),(0,Ee.jsx)("p",{children:"Mougan, Carlos, & Brand, Joshua (2023). \u201eKantian Deontology Meets AI Alignment: Towards Morally Robust Fairness Metrics\u201c, arXiv:2311.05227v1 [cs.AI]: 1-9."}),(0,Ee.jsx)("p",{children:"Juliana Jansen Ferreira, and Mateus Monteiro (2021). \u201eWith great AI power comes great responsibility: AI explanation to support people on justifying their decisions\u201c, in Transparency and Explanations in Smart Systems (TExSS) workshop, held in conjunction with ACM Intelligent User Interfaces (IUI), April 13-17, 2021, virtual event: 1-9."})]}),Date:"12.02.2024",Author:"Angela Pupovac",CoverImage:rt,CoverText:(0,Ee.jsx)("p",{children:"People (rightfully) tend to be anxious about making decisions on a rational basis. The question we ask ourselves is, 'Have I thought this over long enough?' or in other words, 'Have I taken enough data into consideration?'. Indeed, it's very difficult to be completely sure - there can always be more. That's why it often happens that we just keep reconsidering until we run out of time, and at the moment of decision-making, we resort to snap judgments. This doesn't sound like the best method, right?"})},{id:"public-trust",Title:"Public Trust in AI",Body:(0,Ee.jsxs)("div",{children:[(0,Ee.jsx)("p",{children:"This essay aims to highlight the (new) hope in the possibility of relying on AI as our main assistant, both in everyday advice and scientific purposes. This will be achieved through a brief overview of the prerequisites for trustworthy AI and LLMs, followed by how they can be met. As an example of a system that meets these criteria, the carefully equipped open generative system Verif.ai is proposed. Renowned philosopher Ren\xe9 Descartes once reasonably asserted, 'It is prudent never to trust those who have deceived us, even if only once', however, LLMs are about to undergo a fundamental change that seems to deserve attention and consideration to truly become trustworthy."}),(0,Ee.jsx)("h3",{children:"Trust and Condition for Trust in AI"}),(0,Ee.jsx)("p",{children:"It is convenient to begin with the very definition of the concept of 'trust' and a brief interpretation related to it. For example, according to Google's English Dictionary, trust entails a firm belief in the reliability, truth, or ability of someone or something. Moreover, this concept is commonly used in the context of human interpersonal relations. In today's society, the situation can be outlined through three fundamental statements regarding trust, with which most of us would likely agree. The first observation is that there has been a significant decline in the levels of trust (in various individuals, organizations, institutions, etc.). The second represents the goal of having more trust. The third is the task of renewing it. This process can pose a significant challenge for the entire system, as it is difficult to avoid subjectivity and a variety of opinions regarding the correct strategy to be undertaken in order to achieve better individuals and better organization. However, the challenge concerning trust in AI technologies, while undoubtedly substantial, is more linear and bypasses many moral dilemmas, uncertainties and unpredictable circumstances associated with (purely) social dealings."}),(0,Ee.jsx)("p",{children:"What sets a condition for trust and enables AI to participate equally in favorable transactions is the transparency of AI models. This transparency involves our ability to understand how they operate and/or ability to effectively communicate with them, depending on our needs. The foundation of these capabilities lies in the shared possession of certain knowledge (of certain information). Hence, we can apply the traditional definition as a criterion for its validity. It posits that knowledge, in a strict sense, should be understood as true, justified belief. Although the prerequisite that the knowledge we share rests on such a qualitatively sound foundation is stringent, once successfully met, trust in AI is established and is difficult to be undermined."}),(0,Ee.jsx)("h3",{children:"Main (Trust) Issue with Current LLMs"}),(0,Ee.jsx)("p",{children:"Generative Large Language Models (LLMs) are currently gaining popularity as a valuable AI tool in everyday life. However, what tarnishes their reputation are specific shortcomings in their current functioning and, consequently, the results they produce. One of the key and most obvious issues is the phenomenon known as hallucinations. This problem has not yet received a satisfactory solution, and thus, the possibility of generated responses based on input text being incorrect remains unresolved."}),(0,Ee.jsx)("p",{children:"When it comes to scientific truths, accuracy and reliability are of paramount importance, and the possibility of hallucinations is an unacceptable failing that prevents the acceptance of using LLMs within the scientific community. Consequently, they are subject to suspicions from all users when complete reliance on them is necessary, and are often not the first choice when making decisive moves and decisions. A comprehensive solution is required to ensure the utilization of the benefits of these models without compromising the integrity of scientific knowledge."}),(0,Ee.jsx)("p",{children:"Public trust, in the context of LLMs, can only be justified if final corrections are made, ensuring that when using these models for any purpose, users are provided with wellsupported, official, and accurate information. This expectation can largely be fulfilled by LLMs that, for this purpose, focus on a specific high-quality database. Such a database must be built on previously documented, original, scientific, and academic literature. The second part concerns reliable, detailed content verification that it disseminates. The second requirement pertains to thorough verification of the content it disseminates. Now, how to achieve this?"}),(0,Ee.jsx)("h3",{children:"Verification Mission of the Verif.ai System"}),(0,Ee.jsx)("p",{children:"Verif.ai is an open scientific generative question-answering system with referenced and verifiable answers - and it promises a solution to the problem. Since it possesses the necessary components, it is capable of searching for information by combining semantic and lexical search techniques in scientific papers. Subsequently, it selects the most appropriate claims related to the output and generates responses with references to the papers from which they were derived. Furthermore, it ensures additional verification to identify any presence of hallucinations in the generation process."}),(0,Ee.jsx)("p",{children:"This system is currently designed for use in the biomedical domain, providing answers based on scientific articles indexed in PubMed, and aims to accelerate progress in many important fields of medical and biomedical sciences. However, Verif.ai has the great potential to easily expand to other document formats and become the foundation for a personal, organizational, or corporate generative search engine with reliable answers. In the future, this may include additional sources, contributing to everyone's trust and safety on the next generation internet."}),(0,Ee.jsx)("h3",{children:"Conclusion"}),(0,Ee.jsx)("p",{children:"In the days ahead, the influence of AI on people's ways of life is expected to continuously grow, and one might fear that, given the black box nature of their mechanisms, the risk of trust in it will also grow. (Choung et. al. 2022: 23) However, as there is a push for fundamental structural changes, it seems that future LLMs, improved in the described manner, deserve an entirely new, untarnished chance to become our support. The significance of this trust then takes on a positive connotation."}),(0,Ee.jsx)("h4",{children:"References"}),(0,Ee.jsx)("p",{children:"Choung, Hyesun, David, Prabu, & Ross Arun (2022). 'Trust in AI and its role in the acceptance of AI technologies'. International Journal of Human\u2013Computer Interaction: 1\u201325."})]}),Date:"1.02.2024",Author:"Angela Pupovac",CoverImage:dt,CoverText:(0,Ee.jsx)("p",{children:"It is convenient to begin with the very definition of the concept of 'trust' and a brief interpretation related to it. For example, according to Google's English Dictionary, trust entails a firm belief in the reliability, truth, or ability of someone or something. Moreover, this concept is commonly used in the context of human interpersonal relations. In today's society, the situation can be outlined through three fundamental statements regarding trust, with which most of us would likely agree. The first observation is that there has been a significant decline in the levels of trust (in various individuals, organizations, institutions, etc.). The second represents the goal of having more trust. The third is the task of renewing it. This process can pose a significant challenge for the entire system, as it is difficult to avoid subjectivity and a variety of opinions regarding the correct strategy to be undertaken in order to achieve better individuals and better organization. However, the challenge concerning trust in AI technologies, while undoubtedly substantial, is more linear and bypasses many moral dilemmas, uncertainties and unpredictable circumstances associated with (purely) social dealings."})},{id:"hiring",Title:"We are hiring an intern!",Body:(0,Ee.jsxs)("p",{children:["Verif.ai project is looking for an intern to help us fight hallucinations in large language models and help find verifiable answers for hot questions in life sciences. If you are a student enrolled at the master program in the European University, large language models inspire you and you would like to use them, and learn more about them, consider applying at ",(0,Ee.jsx)("a",{href:"https://jobs.bayer.com/job/Berlin-Intern-Machine-Learning-%28fmd%29-Berl/985837601/",target:"_blank",rel:"noreferrer",children:"https://jobs.bayer.com/job/Berlin-Intern-Machine-Learning-%28fmd%29-Berl/985837601/"}),(0,Ee.jsx)("br",{})," You will be working in an international team of top NLP scientist from Bayer and Institute for Artificial Intelligence Research and Development in Serbia on developing verifiable generative search engine for life sciences."]}),Date:"27.09.2023",Author:"Nikola Milosevic",CoverImage:dt,CoverText:(0,Ee.jsxs)("p",{children:["Verif.ai project is looking for an intern to help us fight hallucinations in large language models and help find verifiable answers for hot questions in life sciences. If you are a student enrolled at the master program in the European University, large language models inspire you and you would like to use them, and learn more about them, consider applying at ",(0,Ee.jsx)("a",{href:"https://jobs.bayer.com/job/Berlin-Intern-Machine-Learning-%28fmd%29-Berl/985837601/",target:"_blank",rel:"noreferrer",children:"https://jobs.bayer.com/job/Berlin-Intern-Machine-Learning-%28fmd%29-Berl/985837601/"}),(0,Ee.jsx)("br",{})," You will be working in an international team of top NLP scientist from Bayer and Institute for Artificial Intelligence Research and Development in Serbia on developing verifiable generative search engine for life sciences."]})}];const Tt=function(){const t=window.location.search,n=new URLSearchParams(t).get("id");var a=St.find((e=>e.id===n));(0,e.useEffect)((()=>{document.title=a.Title}),[]);const i={title:a.Title,description:a.Body,canonical:t,meta:{charset:"utf-8",name:{keywords:"react,meta,document,html,tags"}}};return(0,Ee.jsxs)("div",{className:"PageBackground",children:[(0,Ee.jsx)(ze.ZP,{...i}),(0,Ee.jsxs)("div",{className:"PostPageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsx)("div",{className:"SinglePostContent",children:(0,Ee.jsxs)("div",{className:"SinglePostText",children:[(0,Ee.jsxs)("div",{className:"SinglePostHeader",children:[(0,Ee.jsxs)("div",{className:"GoBackDiv",children:[" ",(0,Ee.jsx)("h1",{children:a.Title})," ",(0,Ee.jsx)(Ae,{to:"/blog",className:"GoBackLink",children:(0,Ee.jsx)("h1",{children:"Blog page"})})]}),(0,Ee.jsxs)("div",{className:"SinglePostInfo",children:[(0,Ee.jsx)("h2",{children:a.Author}),(0,Ee.jsx)("h2",{children:a.Date})]})]}),(0,Ee.jsx)("p",{className:"PostBody",children:a.Body})]})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})]})},Ct=[{id:"nikola-milosevic",linkedin:"https://www.linkedin.com/in/nikolamilosevic1986/",name:"Nikola Milo\u0161evi\u0107",status:"Team lead",desc:"The initiator and a team lead in the VerifAI project, currently employed at Bayer A.G; Senior computational scientist with deep expertise in natural language processing and machine learning...",image:Ye,longDesc:"Nikola Milosevic is a senior computational scientist with deep expertise in natural language processing and machine learning. He holds a PhD in Computer Science from the University of Manchester, where he focused on information extraction and mining from tables in biomedical and clinical scientific literature. With extensive experience in both academia and industry, Milosevic has worked on various projects involving web crawling, machine learning, and advanced NLP techniques, such as information extraction, text classification, text summarization, and lately is very involved in generative AI. He is also interested in NLP for low-resourced languages such as Serbian, or applying NLP techniques in other fields, such as biomedicine, or malware analysis. Nikola Milosevic is currently employed at Bayer A.G., as a computational scientist. He is the initiator and a team lead in the VerifAI project. Nikola has a long history of open-source involvement, dating back to 2012, when he became involved with the Open Web Application Security Project, but he also open-sourced the ority of his scientific research. "},{id:"bojana-basaragin",linkedin:"https://www.linkedin.com/in/bojana-basaragin/",name:"Bojana Ba\u0161aragin",status:"Team member",desc:"Senior Researcher in the Human-Computer Interaction research group at The Institute for Artificial Intelligence of Serbia; Leverages language technologies in healthcare and industry, with a particular focus on language models...",image:$e,longDesc:"Bojana Ba\u0161aragin earned her Ph.D. in Computational Linguistics from the Faculty of Philology in Belgrade, specializing in syntax and natural language processing. Her significant contributions in this field include the creation and enhancement of language resources for Serbian, encompassing WordNet, a dictionary of synonyms, parallel corpora, rule-based parsers, and formal grammars. At the Institute, she serves as a Senior Researcher in the Human-Computer Interaction research group. In her projects, she leverages language technologies in healthcare and industry, with a particular focus on language models. Driven by a belief in the transformative power of AI, she is passionate about applying natural language processing techniques in healthcare to improve lives and advance biomedical research."},{id:"darija-medvecki",linkedin:"https://www.linkedin.com/in/darija-medvecki-b27468ab/",name:"Darija Medvecki",status:"Team member",desc:"Research assistant at the Human-Computer Interaction research group at The Institute for Artificial Intelligence of Serbia; Specializing in the field of natural language processing and a marketing specialist...",image:et,longDesc:"Darija Medvecki is a young researcher specializing in the field of natural language processing and a marketing specialist. She is currently pursuing a Ph.D. in artificial intelligence at the Faculty of Technical Sciences in Novi Sad. As a research assistant at the Human-Computer Interaction research group at the Institute, she contributes to multiple projects across diverse fields, including the biomedical domain, customer service, and social media. Her work encompasses sentiment analysis, topic modeling, and named entity recognition, as well as contributing to the development of Serbian language resources. Her primary focus is on data collection, preparation, and leveraging large language models."},{id:"adela-ljajic",linkedin:"https://www.linkedin.com/in/adelacrnisanin/?originalSubdomain=rs",name:"Adela Ljaji\u0107",status:"Team member",desc:"Research Associate at The Institute for Artificial Intelligence Research and Development of Serbia \u2013 Human Computer Interaction group; Focusing on transformer-based architecture like BERT and GPT...",image:Je,longDesc:"Adela Ljaji\u0107 is a data scientist with natural language processing and machine learning expertise. She earned her Ph.D. in Electrical Engineering and Computer Science in the research domain of Artificial Intelligence, where she developed negation detection and sentiment analysis methods for the low-resourced Serbian language. Previously, she has held roles as a teaching assistant and research assistant in academia, worked as a freelancer on Upwork and collaborated with NPL group of the Allen AI Institute in a research study. Currently, she is Research Associate at The Institute for Artificial Intelligence Research and Development of Serbia \u2013 Human Computer Interaction group, where she focuses on transformer-based architecture like BERT and GPT, applying them to named entity recognition, topic modeling, sentiment analysis and semantic search. For the VerifAI project, she serves as the coordinator from the Institute's side and is also responsible for semantic indexing in information retrieval components."},{id:"milos-kosprdic",linkedin:"https://www.linkedin.com/in/milo%C5%A1-ko%C5%A1prdi%C4%87/",name:"Milo\u0161 Ko\u0161prdi\u0107",status:"Team member",desc:"Researcher at The Institute for Artificial Intelligence of Serbia; Senior Associate at Linguistics Department at Petnica Science Center...",image:Ke,longDesc:"Milo\u0161 Ko\u0161prdi\u0107 is a linguist and mathematician currently pursuing a Ph.D. in Artificial Intelligence at the University of Belgrade. His research focuses on natural language processing and large language models, including sentiment analysis, topic modeling, information extraction, semantic search, and reducing hallucinations in generative language models. Milo\u0161 has led linguistics seminars and served as a lecturer and educator at the Petnica Science Center for many years. He advocates for an interdisciplinary approach in science and values heuristic methods and the zone of proximal development in education. Currently, Milo\u0161 is a young researcher at the Institute for Artificial Intelligence Research and Development of Serbia, within the Human-Computer Interaction group. He focuses on transformer-based architectures such as BERT and Llama, applying them primarily to named entity recognition and semantic search. For the VerifAI project, he is responsible for developing the verification module and is also involved in lexical and semantic search for the information retrieval component."},{id:"angela-pupovac",linkedin:"https://www.linkedin.com/in/angela-pupovac-20a751226/",name:"Angela Pupovac",status:"Team member",desc:"Community Manager for the VerifAI project; a graduating Philosophy student at the Faculty of Philosophy, University of Belgrade...",image:Ze,longDesc:"Angela has a keen interest in the philosophical exploration of artificial intelligence as part of her academic and professional pursuits. Her primary focus in philosophy lies in the areas of ethics, philosophy of science, and philosophy of mind. In her AI research, Angela is particularly interested in AI alignment and AI-based cognition. She aims to contribute to the responsible development and deeper understanding of intelligent systems through an interdisciplinary approach. At VerifAI, Angela is responsible for building and nurturing the project\u2019s community."},{id:"petar-stevanovic",linkedin:"https://www.linkedin.com/in/petar-stevanovi%C4%87-1b25852b0/",name:"Petar Stevanovi\u0107",status:"Team member",desc:"Intern at The Institute for Artificial Intelligence of Serbia, currently pursuing a master's degree in philosophy at the University of Belgrade; Interested in graphic design and visual marketing...",image:Xe,longDesc:"Petar Stevanovi\u0107 is a young philosopher with a passion for graphic design and visual marketing. He is currently pursuing a master\u2019s degree in philosophy at the University of Belgrade. His primary academic interests include normative and applied ethics, political philosophy, and the philosophy of science. Regarding artificial intelligence, Petar is particularly focused on the relationship between AI and neuroscience within applied ethics. On the VeriAI project, he is responsible for establishing the project\u2019s visual identity and redesigning the VeriAI website and application. "},{id:"natasa-radmilovic",linkedin:"https://www.linkedin.com/in/nata%C5%A1a-radmilovi%C4%87-ab88582b7/",name:"Nata\u0161a Radmilovi\u0107",status:"Team member",desc:"Intern at The Institute for Artificial Intelligence of Serbia; Currently a fourth-year student of Computing and Automation at the Faculty of Technical Sciences, Novi Sad, with an interest in web development...",image:tt,longDesc:"Nata\u0161a Radmilovi\u0107 is an intern at the Institute of Artificial Intelligence of Serbia, where she works on the frontend development of the VerifAI web application and website. She is currently pursuing a bachelor's degree at the Faculty of Technical Sciences, Novi Sad. Although her work focuses on web development, she has a strong interest in both artificial intelligence and informational systems."}];const Nt=function(){const e=window.location.search,t=new URLSearchParams(e).get("id");var n=Ct.find((e=>e.id===t));return(0,Ee.jsx)("div",{className:"PageBackground",children:(0,Ee.jsxs)("div",{className:"MemberPageContainer",children:[(0,Ee.jsx)("div",{className:"MenuBarDiv",children:(0,Ee.jsx)(Re,{})}),(0,Ee.jsx)("div",{className:"MemberPageContent",children:(0,Ee.jsxs)("div",{className:"MemberPageDiv",children:[(0,Ee.jsxs)("div",{className:"GoBackDiv",children:[(0,Ee.jsxs)("div",{className:"memberLinkedIn",children:[(0,Ee.jsx)("h1",{children:n.name}),(0,Ee.jsx)(Ae,{to:n.linkedin,target:"_blank",rel:"noopener noreferrer",children:(0,Ee.jsx)("button",{className:"LinkedInButton",children:(0,Ee.jsx)("img",{src:nt})})})]}),(0,Ee.jsx)(Ae,{to:"/team",className:"GoBackLink",children:(0,Ee.jsx)("h1",{children:"Team page"})})]}),(0,Ee.jsx)("h2",{children:n.status}),(0,Ee.jsxs)("div",{className:"MemberLayout",children:[(0,Ee.jsx)("p",{children:n.longDesc}),(0,Ee.jsx)("img",{src:n.image})]})]})}),(0,Ee.jsx)("div",{className:"FooterDiv",children:(0,Ee.jsx)(Pe,{})})]})})};const Et=function(){return(0,Ee.jsx)("div",{className:"App",children:(0,Ee.jsx)(ke,{children:(0,Ee.jsxs)(ge,{children:[(0,Ee.jsx)(pe,{path:"/",element:(0,Ee.jsx)(We,{})}),(0,Ee.jsx)(pe,{path:"/home",element:(0,Ee.jsx)(We,{})}),(0,Ee.jsx)(pe,{path:"/about",element:(0,Ee.jsx)(De,{})}),(0,Ee.jsx)(pe,{path:"/sign_in",element:(0,Ee.jsx)(Ue,{})}),(0,Ee.jsx)(pe,{path:"/publications",element:(0,Ee.jsx)(Qe,{})}),(0,Ee.jsx)(pe,{path:"/team",element:(0,Ee.jsx)(it,{})}),(0,Ee.jsx)(pe,{path:"/blog",element:(0,Ee.jsx)(pt,{})}),(0,Ee.jsx)(pe,{path:"/q&a",element:(0,Ee.jsx)(wt,{})}),(0,Ee.jsx)(pe,{path:"/contact",element:(0,Ee.jsx)(At,{})}),(0,Ee.jsx)(pe,{path:"/post",element:(0,Ee.jsx)(Tt,{})}),(0,Ee.jsx)(pe,{path:"/member",element:(0,Ee.jsx)(Nt,{})})]})})})},Pt=e=>{e&&e instanceof Function&&n.e(787).then(n.bind(n,787)).then((t=>{let{getCLS:n,getFID:a,getFCP:i,getLCP:r,getTTFB:o}=t;n(e),a(e),i(e),r(e),o(e)}))};a.createRoot(document.getElementById("root")).render((0,Ee.jsx)(e.StrictMode,{children:(0,Ee.jsx)(Et,{})})),Pt()})()})();
//# sourceMappingURL=main.a9beeb09.js.map