1<!DOCTYPE html> 2<html ng-app="web.Kotobee" lang="en"> 3<head> 4 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"594491975",accountID:"2714385",trustKey:"2714385",xpid:"VgEGVVVbDRAFV1FVAgAGVVU=",licenseKey:"NRJS-99a8dc9967559d8d1b3",applicationID:"530751131",browserID:"594491975"};;/*! For license information please see nr-loader-spa-1.323.0.min.js.LICENSE.txt */ 6(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.323.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
6e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
6const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
6if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
6o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
6(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
6;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.323.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.323.0.PROD:";r.l=(n,i,s,a)=>
6{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-ORjtmy+nQMgxbu0os8+oTRa5sPzbinyuWSvpZrrstVLIaHofRRlfODdH+oUmkIgeQpM+vPf3vG/4RzvCsFVh1A==",249:"sha512-o7+K6xC0z3TqynjVxpd+jgiSgqy8rrPeRcUSqt5J0Rqg5Su5CycLMYfpwiM3WBCHiNDrG5aZoXJQ6HRc335XYQ==",212:"sha512-kRvBt1IYQDBnClTEWNaE8sDFqbXXM3Vdyf972Uf4MFbJxl7u3KmdO+jdB1H4achPEoT9YtNXHswaESey6sCH0A==",238:"sha512-U5EGmyYbFVR2UMNAuZJ7fTgVVtPa5b8RPMySDwXo7z3frRdkUJ2x1VAQTLQCeBab8VlGVGRV8FiSHIn/pwN72A=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.323.0.PROD"]=self["webpackChunk:NRBA-1.323.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
6ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
6{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
6null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
6dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
6imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
6return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s,a=(0,ye.ZF)(),o=(0,ye.el)(),c=Date.now();this.agentRef.runtime?.timeKeeper?.ready&&(s=Math.floor(this.agentRef.runtime.timeKeeper.correctAbsoluteTimestamp(c)));var d={spanId:a,traceId:o,timestamp:c,timestampCorrected:s};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,o),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,s??c,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,o,s??c,r,n,i)),d}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
6!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
6if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
6);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
6class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
6h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
6 7 <meta name="viewport" content="initial-scale=1, maximum-scale=6, width=device-width"> 8 <meta name="keywords" content="interactive ebooks, create ebooks, ebooks, ebook creator, ebook editor, epub software, epub creator, epub reader"/> 9 <meta name="description" content="Kotobee is an interactive ebook creation software and digital publishing platform. Create and publish ebooks for Android, iPad, iPhone, HTML5, desktop, SCORM, LTI, and more!"/> 10 <meta name="copyright" content="Vijua 2026"/> 11 <meta name="abstract" content="Kotobee is an interactive ebook creation software and digital publishing platform. Create and publish ebooks for Android, iPad, iPhone, HTML5, desktop, SCORM, LTI, and more!"/> 12 13 <meta property="og:title" content="Kotobee - Interactive Ebook Creation Software & Digital Publishing Platform"/> 14 <meta property="og:description" content="Kotobee is a platform providing interactive ebook creators and solutions suiting any individual or organizational needs"/> 15 <meta property="og:url" content="https://www.kotobee.com"/> 16 <meta property="og:site_name" content="Kotobee"/> 17 <meta property="og:type" content="product"/> 18 <meta property="og:image" content="https://www.kotobee.com/img/web/logo/logo230.jpg"/> 19 <meta property="og:image:type" content="image/jpeg"> 20 21 <link rel="image_src" type="image/jpeg" href="/img/web/logo/logo230.jpg"/> 22 23 <link rel="alternate" href="https://www.kotobee.com" hreflang="en" /> 24 <link rel="alternate" href="https://www.kotobee.com/ar" hreflang="ar" /> 25 <link rel="alternate" href="https://www.kotobee.com/fr" hreflang="fr" /> 26 <link rel="alternate" href="https://www.kotobee.com/es" hreflang="es" /> 27 28 <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/img/web/logo/favicon.ico"> 29 <link rel="shortcut icon" type="image/x-icon" href="/img/web/logo/favicon.ico"/> 30 31 <meta name="google-signin-client_id" content="775376548114-56u9enncf5eau6d84l1qkr4onunuhp03.apps.googleusercontent.com"> 32 33
33<script type="application/ld+json"> 34 { 35 "@context": "https://schema.org", 36 "@type": "Organization", 37 "name": "Kotobee", 38 "url": "https://www.kotobee.com/", 39 "logo": "https://www.kotobee.com/img/web/logo/normal.png", 40 "description": "Kotobee is an interactive ebook creation software and digital publishing platform. It offers robust tools for creating, managing, and distributing multimedia-rich ebooks, making reading an engaging and interactive experience.", 41 "address": { 42 "@type": "PostalAddress", 43 "streetAddress": "Building 213 Str 10", 44 "addressLocality": "5th District October City", 45 "addressRegion": "Cairo", 46 "addressCountry": "EG" 47 }, 48 "contactPoint": { 49 "@type": "ContactPoint", 50 "email": "[email protected]" 51 }, 52 "sameAs": [ 53 "https://www.facebook.com/kotobee", 54 "https://x.com/Kotobee", 55 "https://www.youtube.com/c/kotobee", 56 "https://www.linkedin.com/company/kotobee" 57 ] 58 } 59 </script>
59 60 61 <title>Kotobee - Interactive Ebook Creation Software & Digital Publishing Platform</title> 62 63 64 <link rel="stylesheet" href="/css/home.min.css?c=6731" /> 65 66 67 <!-- Global site tag (gtag.js) --> 68 69 <meta name="facebook-domain-verification" content="y9a352wvc2s9l0ls7e0xv8nortsfz0" /> 70</head> 71 72<body ng-controller="GlobalCtrl" ng-init="init()" ng-cloak class="en"> 73 74<div id="home" ng-controller="HomeCtrl" ng-init="init()"> 75 76 <div class="fold5 v2"> 77 <div id="banner"> 78 79 80 81 82 83 84 85<div class="menu"> 86 <div class="inner "> 87 <a href="/en" class="logo"> 88 <img src="/img/web/logo/inverse-tm.png" alt="logo"> 89 </a> 90 <div class="items hidden-md hidden-sm hidden-xs"> 91 <div ng-include="'templates/menu'"></div> 92 </div> 93 <a href="#" class="menuBtn visible-md-block visible-sm-block visible-xs-block" ng-click="site.showMobileMenu=!site.showMobileMenu" aria-label="Menu"> 94 <span class="icon icon-menu"></span> 95 </a> 96 <div class="langSubMenu mobile visible-md-block visible-sm-block visible-xs-block" ng-include="'templates/languages'"></div> 97 </div> 98 <div class="mobileMenu visible-md-block visible-sm-block visible-xs-block" ng-if="site.showMobileMenu"> 99 <div ng-include="'templates/mobileMenu'"></div> 100 </div> 101 102</div> 103 104<div class="overlayMenu" ng-class="site.showOverlayMobileMenu?'expanded':''"> 105 <div class="inner"> 106 <a href="/en" class="logo"> 107 <img src="/img/web/logo/normal.png" alt="logo"> 108 </a> 109 <div class="items hidden-md hidden-sm hidden-xs"> 110 <div ng-include="'templates/menu'"></div> 111 </div> 112 <a href="#" class="menuBtn visible-md-block visible-sm-block visible-xs-block" ng-click="site.showOverlayMobileMenu=!site.showOverlayMobileMenu" aria-label="Menu"> 113 <span class="icon icon-menu"></span> 114 </a> 115 <div class="langSubMenu mobile visible-md-block visible-sm-block visible-xs-block" ng-include="'templates/languages'"></div> 116 </div> 117 <div class="mobileMenu visible-md-block visible-sm-block visible-xs-block" ng-if="site.showOverlayMobileMenu"> 118 <div ng-include="'templates/mobileMenu'"></div> 119 </div> 120</div> 121
122<script type="text/ng-template" id="templates/menu"> 123 <div> 124 <div class="productsSubMenu"> 125 <a class="item" href="#" ng-click="toggleSubMenu($event)">Products <span class="caret"></span></a> 126 <div class="expanded"> 127 <div class="col-xs-6"> 128 <div class="row"> 129 <a href="/en/products/author"> 130 <img src="/img/web/logo/author/icon.png" class="floatLeft" alt=""> 131 <div> 132 <p>Kotobee Author <span class="popular">Popular</span></p> 133 <span>Create beautiful EPUB-based interactive ebooks that run across all devices and platforms. Choose the plan that fits your needs. Start for free, upgrade anytime.</span> 134 </div> 135 </a> 136 <a href="/en/products/reader"> 137 <img src="/img/web/logo/reader/icon.png" class="floatLeft" alt=""> 138 <div> 139 <p>Kotobee Reader</p> 140 <span>Download Kotobee Reader, a free ebook reader for PC & Mac. Enjoy interactive EPUBs, offline reading, and customizable settings for a personalized reading experience.</span> 141 </div> 142 </a> 143 <a href="/en/miniapps"> 144 <img src="/img/web/logo/mini-apps/icon.png" class="floatLeft" alt=""> 145 <div> 146 <p>Kotobee Mini-apps</p> 147 <span>Add additional functionality to your ebooks through creative apps and widgets.</span> 148 </div> 149 </a> 150 <a href="/en/products/narrator"> 151 <img src="/img/web/logo/narrator/icon.png" class="floatLeft" style="width:34px" alt=""> 152 <div> 153 <p>Kotobee Narrator <span class="popular">New</span></p> 154 <span>Create professional-quality audiobooks by compiling MP3 chapters and customizing metadata.</span> 155 </div> 156 </a> 157 </div> 158 </div> 159 <div class="col-xs-6"> 160 <div class="row"> 161 <a href="/en/products/library"> 162 <img src="/img/web/logo/library/icon.png" class="floatLeft" alt=""> 163 <div> 164 <p>Kotobee Library <span class="popular">Popular</span></p> 165 <span>Create secure digital bookshelves with full user access control and powerful management tools.</span> 166 </div> 167 </a> 168 <a href="/en/products/cloud"> 169 <img src="/img/web/logo/cloud/icon.png" class="floatLeft" alt=""> 170 <div> 171 <p>Kotobee Cloud</p> 172 <span>Host your ebooks securely online with advanced access control and high-security DRM for controlled distribution.</span> 173 </div> 174 </a> 175 <a href="https://books.kotobee.com/"> 176 <img src="/img/web/logo/kbooks/icon.png" class="floatLeft" alt="Kotobee books"> 177 <div> 178 <p>Kotobee Books</p> 179 <span>Publish and sell your ebooks directly through our online ebook store, reaching readers worldwide.</span> 180 </div> 181 </a> 182 </div> 183 </div> 184 </div> 185 </div> 186 <div class="servicesSubMenu"> 187 <a class="item" href="#" ng-click="toggleSubMenu($event)">Services <span class="caret"></span></a> 188 <div class="expanded"> 189 <div class="col-xs-6"> 190 <div class="row"> 191 <a href="/en/services"> 192 <div> 193 <p>Overview</p>
194 <span>Learn about the various services provided by Kotobee.</span> 195 </div> 196 </a> 197 <a href="/en/services/consultation"> 198 <div> 199 <p>Ebook consultation</p> 200 <span>Consult with our experts on your ebook project.</span> 201 </div> 202 </a> 203 <a href="/en/services/conversion"> 204 <div> 205 <p>Ebook conversion</p> 206 <span>Convert your manuscript into any ebook format.</span> 207 </div> 208 </a> 209 <a href="/en/services/marketing"> 210 <div> 211 <p>Ebook marketing</p> 212 <span>Boost your ebook's visibility and captivate your audience.</span> 213 </div> 214 </a> 215 </div> 216 </div> 217 <div class="col-xs-6"> 218 <div class="row"> 219 <a href="/en/services/design"> 220 <div> 221 <p>Ebook design</p> 222 <span>Transform your ebook into beautiful layouts.</span> 223 </div> 224 </a> 225 <a href="/en/services/scripting"> 226 <div> 227 <p>Ebook scripting</p> 228 <span>Create custom interactive content for your ebook.</span> 229 </div> 230 </a> 231 <a href="/en/services/publishing"> 232 <div> 233 <p>Ebook publishing</p> 234 <span>Publish your ebook on major publishing platforms.</span> 235 </div> 236 </a> 237 </div> 238 </div> 239 </div> 240 </div> 241 <div class="solutionsSubMenu"> 242 <a class="item" href="#" ng-click="toggleSubMenu($event)">Solutions <span class="caret"></span></a> 243 <div class="expanded"> 244 <div class="col-xs-6"> 245 <div class="row"> 246 <a href="/en/solutions/k12"> 247 <div> 248 <p>K12</p> 249 <span>Enrich your K12 students' learning experience.</span> 250 </div> 251 </a> 252 <a href="/en/solutions/higher-education"> 253 <div> 254 <p>Higher Education</p> 255 <span>Enhance students' learning with interactive textbooks.</span> 256 </div> 257 </a> 258 </div> 259 </div> 260 <div class="col-xs-6"> 261 <div class="row"> 262 <a href="/en/solutions/corporate-training"> 263 <div> 264 <p>Corporate Training</p> 265 <span>Create interactive training courses for your employees.</span> 266 </div> 267 </a> 268 <a href="/en/solutions/digital-publishing"> 269 <div> 270 <p>Digital Publishing</p> 271 <span>Turn your documents into interactive digital publications.</span> 272 </div> 273 </a> 274 </div> 275 </div> 276 </div> 277 </div> 278 <a class="item" href="/en/pricing">Pricing</a> 279 280 <a class="item boxed scheduleDemoBtn" href="/en/livedemo">Schedule Demo</a> 281 282 <div class="resourcesSubMenu"> 283 <a class="item" href="#" ng-click="toggleSubMenu($event)">Resources <span class="caret"></span></a> 284 <div class="expanded"> 285 <div class="col-xs-6"> 286 <div class="row"> 287 <a href="/en/case-studies"> 288 <div> 289 <p>Case Studies</p>
290 <span>Discover how institutions successfully use Kotobee for education and publishing.</span> 291 </div> 292 </a> 293 <a href="/academy"> 294 <div> 295 <p>Kotobee Academy</p> 296 <span>Access courses and tutorials to master Kotobee's ebook creation and publishing tools.</span> 297 </div> 298 </a> 299 <a href="/files/docs/education-whitepaper.pdf"> 300 <div> 301 <p>White Paper</p> 302 <span>Get the complete overview of Kotobee products and their features in one PDF.</span> 303 </div> 304 </a> 305 <a href="/en/research-and-publications"> 306 <div> 307 <p>Research & Publications</p> 308 <span>Explore the studies and publications that recognize Kotobee's contribution to digital learning.</span> 309 </div> 310 </a> 311 </div> 312 </div> 313 <div class="col-xs-6"> 314 <div class="row"> 315 <a href="https://blog.kotobee.com/"> 316 <div> 317 <p>Blog</p> 318 <span>Stay updated with trends, insights, and tips in ebook creation, elearning, and digital publishing.</span> 319 </div> 320 </a> 321 <a href="https://support.kotobee.com"> 322 <div> 323 <p>Help Center</p> 324 <span>Find answers and support to get the most out of Kotobee.</span> 325 </div> 326 </a> 327 <a href="/en/samples"> 328 <div> 329 <p>Sample Ebooks</p> 330 <span>Explore interactive ebook examples created with Kotobee.</span> 331 </div> 332 </a> 333 <a href="/en/templates"> 334 <div> 335 <p>Ebook Templates</p> 336 <span>Browse 80+ professionally designed templates for education, business, and creative publishing.</span> 337 </div> 338 </a> 339 </div> 340 </div> 341 </div> 342 </div> 343 <a class="item" href="/en/contact">Contact</a> 344 <div class="langSubMenu" ng-include="'templates/languages'"></div> 345 <a class="item" href="/login">Login</a> 346 </div> 347 </script>
347 348 349
350<script type="text/ng-template" id="templates/mobileMenu"> 351 <div> 352 <a class="item" href="/login">User Login</a> 353 <div class="productsSubMenu"> 354 <a class="item" href="#" ng-click="toggleSubMenu($event)">Products <span class="caret"></span></a> 355 <div class="expanded"> 356 <a href="/en/products/author"><img src="/img/web/logo/author/icon.png" alt=""> Kotobee Author</a> 357 <a href="/en/products/reader"><img src="/img/web/logo/reader/icon.png" alt=""> Kotobee Reader</a> 358 <a href="/en/products/cloud"><img src="/img/web/logo/cloud/icon.png" alt=""> Kotobee Cloud</a> 359 <a href="/en/products/library"><img src="/img/web/logo/library/icon.png" alt=""> Kotobee Library</a> 360 <a href="/en/miniapps"><img src="/img/web/logo/mini-apps/icon.png" alt=""> Kotobee Mini-apps</a> 361 <a href="https://books.kotobee.com/"><img src="/img/web/logo/kbooks/icon.png" alt=""> Kotobee Books</a> 362 <a href="/en/products/narrator"><img src="/img/web/logo/narrator/icon.png" style="width:34px" alt=""> Kotobee Narrator</a> 363 </div> 364 </div> 365 <div class="servicesSubMenu"> 366 <a class="item" href="#" ng-click="toggleSubMenu($event)">Services <span class="caret"></span></a> 367 <div class="expanded"> 368 <a href="/en/services">Overview</a> 369 <a href="/en/services/consultation">Ebook consultation</a> 370 <a href="/en/services/conversion">Ebook conversion</a> 371 <a href="/en/services/design">Ebook design</a> 372 <a href="/en/services/scripting">Ebook scripting</a> 373 <a href="/en/services/publishing">Ebook publishing</a> 374 <a href="/en/services/marketing">Ebook marketing</a> 375 </div> 376 </div> 377 <div class="solutionsSubMenu"> 378 <a class="item" href="#" ng-click="toggleSubMenu($event)">Solutions <span class="caret"></span></a> 379 <div class="expanded"> 380 <a href="/en/solutions/k12">K12</a> 381 <a href="/en/solutions/higher-education">Higher Education</a> 382 <a href="/en/solutions/corporate-training">Corporate Training</a> 383 <a href="/en/solutions/digital-publishing">Digital Publishing</a> 384 </div> 385 </div> 386 <a class="item" href="/en/pricing">Pricing</a> 387 388 <a class="item boxed scheduleDemoBtn" href="/en/livedemo">Schedule Demo</a> 389 390 <div class="resourcesSubMenu"> 391 <a class="item" href="#" ng-click="toggleSubMenu($event)">Resources <span class="caret"></span></a> 392 <div class="expanded"> 393 <a href="/en/case-studies">Case Studies</a> 394 <a href="/academy">Kotobee Academy</a> 395 <a href="https://blog.kotobee.com/">Blog</a> 396 <a href="https://support.kotobee.com">Help Center</a> 397 <a href="/files/docs/education-whitepaper.pdf"> 398 White Paper 399 </a> 400 <a href="/en/samples">Sample Ebooks</a> 401 <a href="/en/research-and-publications">Research & Publications</a> 402 <a href="/en/templates">Ebook Templates</a> 403 </div> 404 </div> 405 406 <a class="item" href="/en/contact">Contact</a> 407 <div class="langSubMenu" ng-include="'templates/languages'"></div> 408 </div> 409 </script>
409 410 411 412
412<script type="text/ng-template" id="templates/languages"> 413 <a class="item" href="#" ng-click="toggleSubMenu($event)" aria-label="Language"> 414 <span class="flag-icon flag-icon-gb"></span> <span class="caret"></span> 415 </a> 416 417 418 <div class="expanded flip"> 419 <a href="/en" ng-class="('en'=='en')?'current':''"><span class="flag-icon flag-icon-gb"></span> English</a> 420 <a href="/fr" ng-class="('fr'=='en')?'current':''"><span class="flag-icon flag-icon-fr"></span> Français</a> 421 <a href="/es" ng-class="('es'=='en')?'current':''"><span class="flag-icon flag-icon-es"></span> Español</a> 422 <a href="/ar" ng-class="('ar'=='en')?'current':''"><span class="flag-icon flag-icon-sa"></span> Ø§ÙØ¹Ø±Ø¨ÙØ©</a> 423 </div> 424 </script>
424 425 426<div id="livedemoPopup" xclass="popup"> 427 <div class="inner"> 428 <div class="customInfo"> 429 <div class="langSelection"> 430 <div class="forDemo selectLabel">I'd like a demo in</div> 431 <div class="forMeeting selectLabel">I'd like a meeting in</div> 432 433 <select id="inputLang" class="langs"> 434 <option value="en" selected="selected">English</option> 435 <option value="es">Español</option> 436 <option value="ar">Ø§ÙØ¹Ø±Ø¨ÙØ©</option> 437 </select> 438 </div> 439 <div class="agentSelection"> 440 <div id="agentBtnContainer"> 441 <div class="btn-group" role="group"> 442 <button type="button" data-agent="ziad" class="_en _ar ziad active agentBtn btn btn-default"> 443 <img src="/img/web/livedemo/agentMale.png" alt="Muhammad"> 444 <div class="agentLabel">Agent</div> 445 <div class="agentName"> 446 <span class="arLabel">Ø²ÙØ§Ø¯ ٠جدÙ</span> 447 <span>Ziad Magdy</span> 448 </div> 449 <div class="agentDesc">Different timings available</div> 450 </button> 451 <button type="button" data-agent="nadeen" class="_en _ar _es nadeen agentBtn btn btn-default"> 452 <img src="/img/web/livedemo/agentFemale.png" alt="Nadeen Amr"> 453 <div class="agentLabel">Agent</div> 454 <div class="agentName"> 455 <span class="arLabel">ÙØ§Ø¯Ù٠ع٠رÙ</span> 456 <span>Nadeen Amr</span> 457 </div> 458 <div class="agentDesc">Different timings available</div> 459 </button> 460 <a href="/en/livedemo" class="_en _ar _es customTimingBtn btn btn-default"> 461 <p class="dontSuitYou">Agent timings don't suit you?</p> 462 <span class="sendPreferredTiming">Send your preferred timing!</span> 463 </a> 464 </div> 465 </div> 466 </div> 467 </div> 468 <div id="liveDemoFrame"> 469 <span class="loading"> 470 <span class="icon icon-spinner icon-spin vAlignCenter"></span> 471 <div class="hSpace2"></div> 472 Loading available times 473 </span> 474 <iframe width="100%" height="100%" scrolling="no" frameborder="0"></iframe> 475 </div> 476 <a href="#" class="popupCloseBtn">Close</a> 477 </div> 478</div> <div class="fullContainer"> 479 <div class="container"> 480 <div class="kbInner"> 481 <h1 class="mainTitle">Create interactive ebooks in <strong>any</strong> format</h1> 482 <h2 class="secondaryTitle">Kotobee allows you to create interactive ebooks, export them in multiple formats, and deliver them securely to your users.</h2> 483 484 <div class="ebookSample"> 485 <div class="trailerPlayBtn"> 486 <span class="icon icon-play"></span> 487 </div> 488 <img class="training" src="/img/web/home/kotobeeSample.jpg" alt="Kotobee ebook Sample"> 489 490 </div> 491 492 <form method="post" action="/en/register" class="form neutral" xid="signup-form"> 493 <input class="emailTxt" type="email" ng-readonly="registering" name="email" placeholder="Email" v-on:keyup.enter="register('signup-form',$event)"> 494 <input class="phoneTxt" type="text" name="phone" placeholder="Phone"> 495 <input type="hidden" name="action" value="newRedirect"> 496 <input type="hidden" name="subscribe" value="true"> 497 <input type="hidden" name="ref" class="ref" value=""> 498 <input type="hidden" name="aff" class="aff" value=""> 499 <input type="hidden" name="lang" value="en"> 500 <input type="hidden" name="ssoprovider" class="ssoprovider" value=""> 501 <input type="hidden" name="ssotoken" class="ssotoken" value=""> 502 <input type="hidden" name="name" class="name" value=""> 503 <input type="hidden" name="source" value="From landing page (fold)"> 504 <button ng-disabled="registering" class="btn btn-danger kb registerBtn" v-on:click="register('signup-form',$event)">
505 <span ng-if="!registering" class="icon icon-circle-arrow-down availableIcon"></span> 506 <span ng-if="registering" class="icon icon-spinner icon-spin busyIcon"></span> 507 Get your free license 508 </button> 509 510 511<div class="ssoWrapper compact light"> 512 <p class="ssoWrapper__or">or</p> 513 <button type="button" class="ssoWrapper--googleBtn" aria-label="Google"> 514 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M113.47 309.408L95.648 375.94l-65.139 1.378C11.042 341.211 0 299.9 0 256c0-42.451 10.324-82.483 28.624-117.732h.014L86.63 148.9l25.404 57.644c-5.317 15.501-8.215 32.141-8.215 49.456.002 18.792 3.406 36.797 9.651 53.408z" fill="#fbbb00"/><path d="M507.527 208.176C510.467 223.662 512 239.655 512 256c0 18.328-1.927 36.206-5.598 53.451-12.462 58.683-45.025 109.925-90.134 146.187l-.014-.014-73.044-3.727-10.338-64.535c29.932-17.554 53.324-45.025 65.646-77.911h-136.89V208.176h138.887 107.012 0z" fill="#518ef8"/><path d="M416.253 455.624l.014.014C372.396 490.901 316.666 512 256 512c-97.491 0-182.252-54.491-225.491-134.681l82.961-67.91c21.619 57.698 77.278 98.771 142.53 98.771 28.047 0 54.323-7.582 76.87-20.818l83.383 68.262z" fill="#28b446"/><path d="M419.404 58.936l-82.933 67.896C313.136 112.246 285.552 103.82 256 103.82c-66.729 0-123.429 42.957-143.965 102.724l-83.397-68.276h-.014C71.23 56.123 157.06 0 256 0c62.115 0 119.068 22.126 163.404 58.936z" fill="#f14336"/></svg> 515 <span>Continue with Google</span> 516 </button> 517 <div class="clear"></div> 518 <p class="ssoWrapper__status"></p> 519</div> 520 521 <div class="formFooter"> 522 <strong>Risk free</strong> - No credit card required. 523 </div> 524 525 526 </form> 527 528 529 530 <div class="cloud"> 531 <h3>Provide your ebooks in a <strong>branded library app</strong>.<!--br/--> 532 Control user access over your ebooks 533 </h3> 534 <a href="/en/livedemo" class="scheduleDemoBtn btn btn-primary kb"> 535 <span class="icon icon-calendar"></span> Book your live demo 536 </a> 537 </div> 538 539 <div class="bgAnim"> 540 <div class="curve curve1"> 541 </div> 542 <div class="curve curve2"> 543 </div> 544 <div class="overlay"> 545 </div> 546 </div> 547 </div> 548 549 </div> 550 </div> 551 552<div class="kb section socialProof"> 553 <div class="kbInner zeroPadding largeScreen"> 554 <div class="col-lg-5 col-xs-6 xcol-xs-6 logos left zeroPaddingL zeroPaddingR"> 555 <!--div><img data-src="/img/web/home/clients/fold/nfl.gif" alt="NFL"/></div--> 556 <div><img data-src="/img/web/home/clients/fold/nissan.gif" width="59" height="50" alt="Nissan"/></div> 557 <div><img data-src="/img/web/home/clients/fold/cisco.gif" width="65" height="34" alt="Cisco"/></div> 558 <div><img data-src="/img/web/home/clients/fold/oracle.gif" width="132" height="18" alt="Oracle"/></div> 559 <div><img data-src="/img/web/home/clients/fold/undp.gif" width="86" height="42" alt="UNDP"/></div> 560 <div><img data-src="/img/web/home/clients/fold/grameen.gif" width="53" height="47" alt="Grameen Foundation"/></div> 561 </div> 562 <p class="col-lg-2 visible-lg zeroPaddingL zeroPaddingR"> 563 <a href="/en/customers" title="Join our growing list of customers">Trusted by <strong>over 300,000 customers</strong> across the globe</a> 564 </p> 565 <div class="col-lg-5 col-xs-6 logos right xzeroPaddingL zeroPaddingR"> 566 <div><img data-src="/img/web/home/clients/fold/pearson.gif" width="130" height="46" alt="Pearson"/></div> 567 <div><img data-src="/img/web/home/clients/fold/harvard.gif" width="152" height="41" alt="Harvard University"/></div> 568 <div><img data-src="/img/web/home/clients/fold/yale.gif" width="55" height="55" alt="Yale University"/></div> 569 <div><img data-src="/img/web/home/clients/fold/minnesota.gif" width="72" height="42" alt="University of Minnesota"/></div> 570 <div><img data-src="/img/web/home/clients/fold/missouri.gif" width="43" height="49" alt="University of Missouri"/></div> 571 </div> 572 </div> 573 <div class="kbInner zeroPadding smallScreen"> 574 <div class="col-xs-12 logos"> 575 <div><img data-src="/img/web/home/clients/fold/harvard.gif" width="137" height="37" alt="Harvard University"/></div> 576 <div><img data-src="/img/web/home/clients/fold/nissan.gif" width="53" height="45" alt="Nissan"/></div> 577 <!--div><img data-src="/img/web/home/clients/fold/nfl.gif" alt="NFL"/></div--> 578 <div><img data-src="/img/web/home/clients/fold/cisco.gif" width="58" height="30" alt="Cisco"/></div> 579 <div><img data-src="/img/web/home/clients/fold/oracle.gif" width="119" height="16" alt="Oracle"/></div> 580 <div><img data-src="/img/web/home/clients/fold/pearson.gif" width="117" height="41" alt="Pearson"/></div> 581 <div><img data-src="/img/web/home/clients/fold/yale.gif" width="49" height="49" alt="Yale University"/></div> 582 <div><img data-src="/img/web/home/clients/fold/minnesota.gif" width="72" height="38" alt="University of Minnesota"/></div> 583 <div><img data-src="/img/web/home/clients/fold/missouri.gif" width="39" height="44" alt="University of Missouri"/></div> 584 </div> 585 </div> 586</div> </div> 587 588 </div> 589<div class="clear"></div> 590 <div id="body" class="clear clearfix"> 591 592 <div class="kb section spread wide author product" itemscope itemtype="https://schema.org/SoftwareApplication"> 593 <meta itemprop="name" content="Kotobee Author" /> 594 <meta itemprop="applicationCategory" content="productivity,education" /> 595 <meta itemprop="applicationSubCategory" content="authoring,ebooks" /> 596 <meta itemprop="applicationSuite" content="Kotobee" /> 597 <meta itemprop="operatingSystem" content="Windows, Mac" /> 598 <meta itemprop="downloadUrl" content="/download/author/win64" /> 599 <meta itemprop="featureList" content="/en/products/author/features" /> 600 <meta itemprop="releaseNotes" content="https://support.kotobee.com/en/support/solutions/folders/8000087304" /> 601 <meta itemprop="screenshot" content="/img/web/products/author/screens/customize.png" /> 602 <meta itemprop="softwareHelp" content="https://support.kotobee.com" /> 603 <meta itemprop="author" content="Vijua" /> 604 <meta itemprop="thumbnailUrl" content="/img/web/logo/author/large.png" /> 605 606 <div class="kbInner"> 607 <div> 608 <div class="productLogo"> 609 <a href="/en/products/author"> 610 <img data-src="/img/web/logo/author/large.png" alt="Kotobee Author"> 611 </a> 612 </div> 613 <h3 itemprop="about">Create and edit remarkable interactive ebooks with Kotobee's award-winning interactive ebook software and EPUB creator. </h3> 614 <div class="alignCenter"> 615 <a id="download"></a> 616 <a href="/download/author/win64" class="lazyLoad win dlBtn" onclick="kTrack('downloadAuthorWin')"></a> 617 <a href="/download/author/mac" class="lazyLoad mac dlBtn" onclick="kTrack('downloadAuthorMac')"></a> 618 <a href="/download/author/deb" class="lazyLoad deb dlBtn" onclick="kTrack('downloadAuthorDeb')"></a> 619 </div> 620 <div class="vSpace10"></div> 621 <div class="screenshot"> 622 <div class="screenshotInner" id="authorAnimation"> 623 <img class="dontResize cursor noResize" src="/img/web/home/products/author/cursor.png" alt="Kotobee Author"/> 624 <img class="dontResize bar" src="/img/web/home/products/author/bar.png" alt="Kotobee Author"/> 625 <div class="mask"> 626 <img class="dontResize content" src="/img/web/home/products/author/content.jpg" alt="Kotobee Author"/> 627 </div> 628 <img class="dontResize editScreen noResize" src="/img/web/home/products/author/editScreen.gif" alt="Kotobee Author"/> 629 <img class="dontResize customizeScreen" src="/img/web/home/products/author/customizeScreen.gif" alt="Kotobee Author"/> 630 <img class="dontResize exportScreen1" src="/img/web/home/products/author/exportScreen1.gif" alt="Kotobee Author"/> 631 <img class="dontResize exportScreen2" src="/img/web/home/products/author/exportScreen2.gif" alt="Kotobee Author"/> 632 </div> 633 </div> 634 <div class="clear"></div> 635 <div class="endMenu"> 636 <ul> 637 <li><a href="/en/products/author">Overview</a></li> 638 <li><a href="/en/products/author/features">Features</a></li> 639 <li><a href="/en/products/author/export">Export Formats</a></li> 640 <li><a href="/en/pricing">Pricing</a></li> 641 <li><a href="https://www.kotobee.com/blog/ibooks-author-vs-kotobee-author/">Compare with iBooks Author</a></li> 642 </ul> 643 </div> 644 </div> 645 646 <div class="info"> 647 648 649<div class="footerActionBtns midpage"> 650 651 <div class="actionBtns row"> 652 <div class="col-xs-12"> 653 <form method="post" action="/en/register" class="form neutral" xid="home-mid-signup-form" v-bind:class="[registering?'registering':'']">
654 <input class="emailTxt" type="email" v-bind:readonly="registering" name="email" placeholder="Email" v-on:keyup.enter="register('home-mid-signup-form',$event)"> 655 <input class="phoneTxt" type="text" name="phone" placeholder="Phone"> 656 <input type="hidden" name="action" value="newRedirect"> 657 <input type="hidden" name="subscribe" value="true"> 658 <input type="hidden" class="ref" name="ref" value=""> 659 <input type="hidden" class="aff" name="aff" value=""> 660 <input type="hidden" name="lang" value="en"> 661 <input type="hidden" name="ssoprovider" class="ssoprovider" value=""> 662 <input type="hidden" name="ssotoken" class="ssotoken" value=""> 663 <input type="hidden" name="name" class="name" value=""> 664 <input type="hidden" name="source" value="From home midpage author. Path: /"> 665 <div class="inlineBlock alignLeft vAlignCenter"> 666 <button v-bind:disabled="registering" class="btn btn-danger kb registerBtn" v-on:click="register('home-mid-signup-form',$event)"> 667 <span v-if="!registering" class="fa fa-arrow-circle-down availableIcon"></span> 668 <span v-if="registering" class="fa fa-circle-o-notch fa-spin busyIcon"></span> 669 Get your free license 670 </button> 671 </div> 672 <input type="submit" value="submit" class="hide" /> 673 674 675<div class="ssoWrapper simple dark"> 676 <p class="ssoWrapper__or">or</p> 677 <button type="button" class="ssoWrapper--googleBtn" aria-label="Google"> 678 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M113.47 309.408L95.648 375.94l-65.139 1.378C11.042 341.211 0 299.9 0 256c0-42.451 10.324-82.483 28.624-117.732h.014L86.63 148.9l25.404 57.644c-5.317 15.501-8.215 32.141-8.215 49.456.002 18.792 3.406 36.797 9.651 53.408z" fill="#fbbb00"/><path d="M507.527 208.176C510.467 223.662 512 239.655 512 256c0 18.328-1.927 36.206-5.598 53.451-12.462 58.683-45.025 109.925-90.134 146.187l-.014-.014-73.044-3.727-10.338-64.535c29.932-17.554 53.324-45.025 65.646-77.911h-136.89V208.176h138.887 107.012 0z" fill="#518ef8"/><path d="M416.253 455.624l.014.014C372.396 490.901 316.666 512 256 512c-97.491 0-182.252-54.491-225.491-134.681l82.961-67.91c21.619 57.698 77.278 98.771 142.53 98.771 28.047 0 54.323-7.582 76.87-20.818l83.383 68.262z" fill="#28b446"/><path d="M419.404 58.936l-82.933 67.896C313.136 112.246 285.552 103.82 256 103.82c-66.729 0-123.429 42.957-143.965 102.724l-83.397-68.276h-.014C71.23 56.123 157.06 0 256 0c62.115 0 119.068 22.126 163.404 58.936z" fill="#f14336"/></svg> 679 <span>Sign up with Google account</span> 680 </button> 681 <div class="clear"></div> 682 <p class="ssoWrapper__status"></p> 683</div> 684 685 <div class="formFooter"> 686 687 <div class="communicate"> 688 <button onclick="openChat(); return false;" class="inlineBlock"> 689 <span class="icon icon-chat"></span> Chat with a live agent 690 </button> 691 <button class="scheduleDemoBtn inlineBlock"> 692 <span class="icon icon-meeting"></span> Schedule a meeting 693 </button> 694 </div> 695 </div> 696 697 </form> 698 699 700 </div> 701 </div> 702</div> 703 </div> 704 <div class="clear"></div> 705 706 </div> 707 </div> 708 709 710 <div class="kb section spread wide reader product reverse" itemscope itemtype="https://schema.org/SoftwareApplication"> 711 <meta itemprop="name" content="Kotobee Reader" /> 712 <meta itemprop="applicationCategory" content="utility,education,reader" /> 713 <meta itemprop="applicationSubCategory" content="epub reader,ebook reader" /> 714 <meta itemprop="applicationSuite" content="Kotobee" /> 715 <meta itemprop="operatingSystem" content="Windows, Mac, Android, iOS" /> 716 <meta itemprop="downloadUrl" content="/download/reader/win" /> 717 <meta itemprop="featureList" content="/en/products/reader" /> 718 <meta itemprop="screenshot" content="/img/web/products/reader/ui.jpg" /> 719 <meta itemprop="softwareHelp" content="https://support.kotobee.com" /> 720 <meta itemprop="author" content="Vijua" /> 721 <meta itemprop="thumbnailUrl" content="/img/web/logo/reader/large.png" /> 722 723 <div class="kbInner"> 724 <div class="alignCenter"> 725 <div class="productLogo"> 726 <a href="/en/products/reader"> 727 <img data-src="/img/web/logo/reader/large.png" alt="author_reader"> 728 </a> 729 </div> 730 <h3 itemprop="about">Provide your users with interactive reading tools, through a standalone or embedded reader. </h3> 731 <img data-src="/img/web/home/readerMock.png" alt="author_reader"/> 732 <div class="clear"></div> 733 </div> 734 <div class="info"> 735 736 <div style="text-align:center"> 737 <a href="/download/reader/win" class="lazyLoad win dlBtn"></a> 738 <a href="/download/reader/mac" class="lazyLoad mac dlBtn"></a> 739 <br> 740 <a href="https://play.google.com/store/apps/details?id=com.kotobee.readerapp&hl=en" class="lazyLoad andr dlBtn" target="_blank"></a> 741 <a href="https://itunes.apple.com/us/app/kotobee-reader/id1109764395?mt=8" class="lazyLoad ios dlBtn" target="_blank"></a> 742 </div> 743 744 </div> 745 <div class="clear"></div> 746 </div> 747 </div> 748 749 <div class="kb section spread wide cloud product" itemscope itemtype="https://schema.org/SoftwareApplication"> 750 <meta itemprop="name" content="Kotobee Cloud" /> 751 <meta itemprop="applicationCategory" content="utility,education" /> 752 <meta itemprop="applicationSuite" content="Kotobee" /> 753 <meta itemprop="operatingSystem" content="Windows, Mac" /> 754 <meta itemprop="featureList" content="/en/products/cloud" /> 755 <meta itemprop="screenshot" content="/img/web/products/cloud/cloudEbook.png" /> 756 <meta itemprop="softwareHelp" content="https://support.kotobee.com" /> 757 <meta itemprop="author" content="Vijua" /> 758 <meta itemprop="thumbnailUrl" content="/img/web/logo/cloud/large.png" /> 759 760 <div class="kbInner"> 761 <div class="desc"> 762 <div class="col-xs-12 col-sm-5 col-md-5"> 763 <div class="basic visible-sm"> 764 <div class="vSpace80"></div> 765 </div> 766 <div class="basic visible-md"> 767 <div class="vSpace80"></div> 768 <div class="vSpace40"></div> 769 </div> 770 <div class="basic visible-lg"> 771 <div class="vSpace80"></div> 772 <div class="vSpace40"></div> 773 </div> 774 775 <div class="productLogo"> 776 <a href="/en/products/cloud"> 777 <img data-src="/img/web/logo/cloud/large.png" alt="Kotobee Cloud"> 778 </a> 779 </div> 780 <h3 itemprop="about">Connect your ebook to the cloud and control user access. Integrate with external systems. </h3> 781 <div class="endMenu"> 782 <ul> 783 <li><a href="/en/products/cloud">Overview</a></li> 784 <li><a href="/en/pricing/cloud">Pricing</a></li> 785 </ul> 786 </div> 787 </div> 788 <div class="col-xs-12 col-sm-7 col-md-7 alignCenter"> 789 <img data-src="/img/web/home/mobSample.png" alt="Kotobee Cloud"/> 790 </div> 791 <div class="clear"></div> 792 </div> 793 <div class="info"> 794 795 </div> 796 <div class="clear"></div> 797 </div> 798 </div> 799 <div class="kb section spread cloudBlue"> 800 <div class="kbInner"> 801 802<div class="footerActionBtns trial"> 803 804 <div class="actionBtns row"> 805 <div class="col-xs-12"> 806 <form method="post" action="/en/register" class="form neutral" xid="signup-form" v-bind:class="[registering?'registering':'']">
807 <input class="emailTxt" type="email" v-bind:readonly="registering" name="email" placeholder="Email" v-on:keyup.enter="register('signup-form',$event)"> 808 <input class="phoneTxt" type="text" name="phone" placeholder="Phone"> 809 <input type="hidden" name="action" value="newRedirect"> 810 <input type="hidden" name="subscribe" value="true"> 811 <input type="hidden" class="ref" name="ref" value=""> 812 <input type="hidden" class="aff" name="aff" value=""> 813 <input type="hidden" name="lang" value="en"> 814 <input type="hidden" name="ssoprovider" class="ssoprovider" value=""> 815 <input type="hidden" name="ssotoken" class="ssotoken" value=""> 816 <input type="hidden" name="name" class="name" value=""> 817 <input type="hidden" name="source" value="From home midpage cloud. Path: /"> 818 <div class="inlineBlock alignLeft vAlignCenter"> 819 <button v-bind:disabled="registering" class="btn btn-danger kb registerBtn" v-on:click="register('signup-form',$event)"> 820 <span v-if="!registering" class="fa fa-arrow-circle-down availableIcon"></span> 821 <span v-if="registering" class="fa fa-circle-o-notch fa-spin busyIcon"></span> 822 Start your free trial 823 </button> 824 </div> 825 <input type="submit" value="submit" class="hide" /> 826 827 828<div class="ssoWrapper simple light"> 829 <p class="ssoWrapper__or">or</p> 830 <button type="button" class="ssoWrapper--googleBtn" aria-label="Google"> 831 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M113.47 309.408L95.648 375.94l-65.139 1.378C11.042 341.211 0 299.9 0 256c0-42.451 10.324-82.483 28.624-117.732h.014L86.63 148.9l25.404 57.644c-5.317 15.501-8.215 32.141-8.215 49.456.002 18.792 3.406 36.797 9.651 53.408z" fill="#fbbb00"/><path d="M507.527 208.176C510.467 223.662 512 239.655 512 256c0 18.328-1.927 36.206-5.598 53.451-12.462 58.683-45.025 109.925-90.134 146.187l-.014-.014-73.044-3.727-10.338-64.535c29.932-17.554 53.324-45.025 65.646-77.911h-136.89V208.176h138.887 107.012 0z" fill="#518ef8"/><path d="M416.253 455.624l.014.014C372.396 490.901 316.666 512 256 512c-97.491 0-182.252-54.491-225.491-134.681l82.961-67.91c21.619 57.698 77.278 98.771 142.53 98.771 28.047 0 54.323-7.582 76.87-20.818l83.383 68.262z" fill="#28b446"/><path d="M419.404 58.936l-82.933 67.896C313.136 112.246 285.552 103.82 256 103.82c-66.729 0-123.429 42.957-143.965 102.724l-83.397-68.276h-.014C71.23 56.123 157.06 0 256 0c62.115 0 119.068 22.126 163.404 58.936z" fill="#f14336"/></svg> 832 <span>Sign up with Google account</span> 833 </button> 834 <div class="clear"></div> 835 <p class="ssoWrapper__status"></p> 836</div> 837 838 <div class="formFooter"> 839 30 day free trial - No credit card required 840 <div class="communicate"> 841 <button onclick="openChat(); return false;" class="inlineBlock"> 842 <span class="icon icon-chat"></span> Chat with a live agent 843 </button> 844 <button class="scheduleDemoBtn inlineBlock"> 845 <span class="icon icon-meeting"></span> Schedule a meeting 846 </button> 847 </div> 848 </div> 849 850 </form> 851 852 853 </div> 854 </div> 855</div> </div> 856 </div> 857 858 <div class="kb section spread wide library product reverse" itemscope itemtype="https://schema.org/SoftwareApplication"> 859 <meta itemprop="name" content="Kotobee Library" /> 860 <meta itemprop="applicationCategory" content="utility,education" /> 861 <meta itemprop="applicationSuite" content="Kotobee" /> 862 <meta itemprop="operatingSystem" content="Windows, Mac" /> 863 <meta itemprop="featureList" content="/en/products/library" /> 864 <meta itemprop="screenshot" content="/img/web/products/library/features/branding/branding.jpg" /> 865 <meta itemprop="softwareHelp" content="https://support.kotobee.com" /> 866 <meta itemprop="author" content="Vijua" /> 867 <meta itemprop="thumbnailUrl" content="/img/web/logo/library/large.png" /> 868 <div class="kbInner"> 869 <div> 870 <div class="productLogo"> 871 <a href="/en/products/library"> 872 <img data-src="/img/web/logo/library/large.png" alt="author_library"> 873 </a> 874 </div> 875 <h3 itemprop="about">Create secure digital bookshelves with full user access control and powerful management tools. </h3> 876 <div class="screenshot"> 877 <div class="screenshotInner" id="libraryAnimation"> 878 <img class="mobile" data-src="/img/web/home/products/library/mobile.png" alt="author_library"/> 879 <div class="mask"> 880 <div class="lazyLoad content"></div> 881 </div> 882 <img class="desktop dontResize" data-src="/img/web/home/products/library/desktop.png" alt="author_library"/> 883 </div> 884 </div> 885 <div class="clear"></div> 886 <div class="endMenu"> 887 <ul> 888 <li><a href="/en/products/library">Overview</a></li> 889 <li><a href="/en/pricing/library">Pricing</a></li> 890 <li><a href="/en/livedemo" class="scheduleDemoBtn">
890Book your live demo</a></li> 891 </ul> 892 </div> 893 </div> 894 <div class="clear"></div> 895 </div> 896 </div> 897 898 <div class="kb section spread libraryPurple"> 899 <div class="kbInner"> 900 901<div class="footerActionBtns trial"> 902 903 <div class="actionBtns row"> 904 <div class="col-xs-12"> 905 <form method="post" action="/en/register" class="form neutral" xid="signup-form" v-bind:class="[registering?'registering':'']"> 906 <input class="emailTxt" type="email" v-bind:readonly="registering" name="email" placeholder="Email" v-on:keyup.enter="register('signup-form',$event)"> 907 <input class="phoneTxt" type="text" name="phone" placeholder="Phone"> 908 <input type="hidden" name="action" value="newRedirect"> 909 <input type="hidden" name="subscribe" value="true"> 910 <input type="hidden" class="ref" name="ref" value=""> 911 <input type="hidden" class="aff" name="aff" value=""> 912 <input type="hidden" name="lang" value="en"> 913 <input type="hidden" name="ssoprovider" class="ssoprovider" value=""> 914 <input type="hidden" name="ssotoken" class="ssotoken" value=""> 915 <input type="hidden" name="name" class="name" value=""> 916 <input type="hidden" name="source" value="From home midpage cloud. Path: /"> 917 <div class="inlineBlock alignLeft vAlignCenter"> 918 <button v-bind:disabled="registering" class="btn btn-danger kb registerBtn" v-on:click="register('signup-form',$event)"> 919 <span v-if="!registering" class="fa fa-arrow-circle-down availableIcon"></span> 920 <span v-if="registering" class="fa fa-circle-o-notch fa-spin busyIcon"></span> 921 Start your free trial 922 </button> 923 </div> 924 <input type="submit" value="submit" class="hide" /> 925 926 927<div class="ssoWrapper simple light"> 928 <p class="ssoWrapper__or">or</p> 929 <button type="button" class="ssoWrapper--googleBtn" aria-label="Google"> 930 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M113.47 309.408L95.648 375.94l-65.139 1.378C11.042 341.211 0 299.9 0 256c0-42.451 10.324-82.483 28.624-117.732h.014L86.63 148.9l25.404 57.644c-5.317 15.501-8.215 32.141-8.215 49.456.002 18.792 3.406 36.797 9.651 53.408z" fill="#fbbb00"/><path d="M507.527 208.176C510.467 223.662 512 239.655 512 256c0 18.328-1.927 36.206-5.598 53.451-12.462 58.683-45.025 109.925-90.134 146.187l-.014-.014-73.044-3.727-10.338-64.535c29.932-17.554 53.324-45.025 65.646-77.911h-136.89V208.176h138.887 107.012 0z" fill="#518ef8"/><path d="M416.253 455.624l.014.014C372.396 490.901 316.666 512 256 512c-97.491 0-182.252-54.491-225.491-134.681l82.961-67.91c21.619 57.698 77.278 98.771 142.53 98.771 28.047 0 54.323-7.582 76.87-20.818l83.383 68.262z" fill="#28b446"/><path d="M419.404 58.936l-82.933 67.896C313.136 112.246 285.552 103.82 256 103.82c-66.729 0-123.429 42.957-143.965 102.724l-83.397-68.276h-.014C71.23 56.123 157.06 0 256 0c62.115 0 119.068 22.126 163.404 58.936z" fill="#f14336"/></svg> 931 <span>Sign up with Google account</span> 932 </button> 933 <div class="clear"></div> 934 <p class="ssoWrapper__status"></p> 935</div> 936 937 <div class="formFooter"> 938 30 day free trial - No credit card required 939 <div class="communicate"> 940 <button onclick="openChat(); return false;" class="inlineBlock"> 941 <span class="icon icon-chat"></span> Chat with a live agent 942 </button> 943 <button class="scheduleDemoBtn inlineBlock">
944 <span class="icon icon-meeting"></span> Schedule a meeting 945 </button> 946 </div> 947 </div> 948 949 </form> 950 951 952 </div> 953 </div> 954</div> </div> 955 </div> 956 957 958 <div class="kb section spread wide narrator product reverse" itemscope itemtype="https://schema.org/SoftwareApplication"> 959 <meta itemprop="name" content="Kotobee Narrator" /> 960 <meta itemprop="applicationCategory" content="utility,audio,narrator" /> 961 <meta itemprop="applicationSubCategory" content="epub narrator,audio book" /> 962 <meta itemprop="applicationSuite" content="Kotobee" /> 963 <meta itemprop="operatingSystem" content="Windows, Mac" /> 964 <meta itemprop="downloadUrl" content="/download/narrator/win" /> 965 <meta itemprop="featureList" content="/en/products/narrator" /> 966 <meta itemprop="softwareHelp" content="https://support.kotobee.com" /> 967 <meta itemprop="author" content="Vijua" /> 968 <meta itemprop="thumbnailUrl" content="/img/web/logo/narrator/normal.png" /> 969 970 <div class="kbInner"> 971 972 <div class="alignCenter"> 973 <div class="productLogo"> 974 <a href="/en/products/narrator"> 975 <img data-src="/img/web/logo/narrator/normal.png" alt="Kotobee Narrator"> 976 </a> 977 </div> 978 <h3 itemprop="about">Create and distribute structured audiobooks from your MP3 files. </h3> 979 <img data-src="/img/web/home/products/narrator/audiobookMockup.png" alt="Kotobee Narrator"/> 980 <div class="clear"></div> 981 </div> 982 <div class="info"> 983 984 <div style="text-align:center"> 985 <a href="/download/narrator/win" class="lazyLoad win dlBtn"> 986 <img src="/img/web/products/reader/btnWindows.png"/> 987 </a> 988 <a href="/download/narrator/mac" class="lazyLoad mac dlBtn"> 989 <img src="/img/web/products/reader/btnMac.png"/> 990 </a> 991 </div> 992 993 </div> 994 <div class="clear"></div> 995 </div> 996 </div> 997 998 999 <div class="kb section fixed"> 1000 <div class="kbInner"> 1001 <div class="solutions"> 1002 <div class="row"> 1003 <h3 class="kb largeTitle">Solutions for every sector</h3> 1004 <div class="col-md-3"> 1005 <a href="#" class="solution s1" ng-click="solutionClicked('s1',$event)" ng-class="currentSolutionID=='s1'?'active':''"> 1006 <img width="67" height="68" data-src="/img/web/home/k12Education.png" alt="K12 Education"> 1007 <p class="kb sectionTitle">K12 Education</p> 1008 </a> 1009 <div class="hidden-md hidden-lg mobMore s1" ng-if="currentSolutionID=='s1'" ng-class="(currentSolutionID=='s1')?'active':''" ng-include="'templates/solutions1desc'"></div> 1010 </div> 1011 <div class="col-md-3"> 1012 <a href="#" class="solution s2" ng-click="solutionClicked('s2',$event)" ng-class="currentSolutionID=='s2'?'active':''"> 1013 <img width="67" height="68" data-src="/img/web/home/higherEducation.png" alt="Higher Education"> 1014 <p class="kb sectionTitle">Higher Education</p> 1015 </a> 1016 <div class="hidden-md hidden-lg mobMore s2" ng-if="currentSolutionID=='s2'" ng-class="(currentSolutionID=='s2')?'active':''" ng-include="'templates/solutions2desc'"></div> 1017 </div> 1018 <div class="col-md-3"> 1019 <a href="#" class="solution s3" ng-click="solutionClicked('s3',$event)" ng-class="currentSolutionID=='s3'?'active':''"> 1020 <img width="67" height="68" data-src="/img/web/home/corporateTraining.png" alt="Corporate Training"> 1021 <p class="kb sectionTitle">Corporate Training</p> 1022 </a> 1023 <div class="hidden-md hidden-lg mobMore s3" ng-if="currentSolutionID=='s3'" ng-class="(currentSolutionID=='s3')?'active':''" ng-include="'templates/solutions3desc'"></div> 1024 </div> 1025 <div class="col-md-3"> 1026 <a href="#" class="solution s4" ng-click="solutionClicked('s4',$event)" ng-class="currentSolutionID=='s4'?'active':''"> 1027 <img width="67" height="68" data-src="/img/web/home/bookPublishing.png" alt="Digital Publishing"> 1028 <p class="kb sectionTitle">Digital Publishing</p> 1029 </a> 1030 <div class="hidden-md hidden-lg mobMore s4" ng-if="currentSolutionID=='s4'" ng-class="(currentSolutionID=='s4')?'active':''" ng-include="'templates/solutions4desc'"></div> 1031 </div> 1032 </div> 1033 <div class="more hidden-sm hidden-xs kb text" ng-class="currentSolutionID?currentSolutionID+' active':''" > 1034 <div class="_s1" ng-if="currentSolutionID=='s1'" ng-include="'templates/solutions1desc'"></div> 1035 <div class="_s2" ng-if="currentSolutionID=='s2'" ng-include="'templates/solutions2desc'"></div> 1036 <div class="_s3" ng-if="currentSolutionID=='s3'" ng-include="'templates/solutions3desc'"></div> 1037 <div class="_s4" ng-if="currentSolutionID=='s4'" ng-include="'templates/solutions4desc'"></div> 1038 </div> 1039 </div> 1040 </div> 1041 </div> 1042 <div class="kb section bookSamples"> 1043 <div class="kbInner"> 1044 <div class="row"> 1045 <h3 class="kb largeTitle">Created using Kotobee</h3> 1046 1047 1048 1049 1050<div class="infiniteSliderWrapper"> 1051 <div class="infiniteLoopSlider" id="samplesSliderContainer"> 1052 <div class="books track"> 1053 <a href="/en/samples/plant-anatomy" class="bookItem"> 1054 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/plantanatomy.png" 1055 alt="View sample ebook"> 1056 </a> 1057 <a href="/en/samples/photography-basics" class="bookItem"> 1058 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/photography.png" 1059 alt="View sample ebook"> 1060 </a> 1061 <a href="/en/samples/design-styles" class="bookItem"> 1062 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/design.jpg" 1063 alt="View sample ebook"> 1064 </a> 1065 <a href="/en/samples/egyptian-monuments" class="bookItem"> 1066 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/egypt.png" 1067 alt="View sample ebook"> 1068 </a> 1069 <a href="/en/samples/robotics-ai" class="bookItem"> 1070 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/robotics.png" 1071 alt="View sample ebook"> 1072 </a> 1073 <a href="/en/samples/holistic-aromatherapy" class="bookItem"> 1074 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/aromatherapy.png" 1075 alt="View sample ebook"> 1076 </a> 1077 <a href="/en/samples/great-marshmallow-chase-audiobook" class="bookItem"> 1078 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/marshmallo.png" 1079 alt="View sample ebook"> 1080 </a> 1081 <a href="/en/samples/el-leon-raton-spanish" class="bookItem"> 1082 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/leonyraton.png" 1083 alt="View sample ebook"> 1084 </a> 1085 <a href="/en/samples/body-language-arabic" class="bookItem"> 1086 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/bodylang.png" 1087 alt="View sample ebook"> 1088 </a> 1089 <a href="/en/samples/human-anatomy-physiology" class="bookItem"> 1090 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/anatomy.png" 1091 alt="View sample ebook"> 1092 </a> 1093 <a href="/en/samples/space-journey" class="bookItem"> 1094 <img class="dontResize" width="160" height="220" data-src="/img/web/home/covers/space.png" 1095 alt="View sample ebook"> 1096 </a> 1097 </div> 1098 </div> 1099 <button class="navArrow left icon-arrow-left" aria-label="Previous"></button> 1100 <button class="navArrow right icon-arrow-right" aria-label="Next"></button> 1101 </div> 1102 1103<div class="alignCenter"> 1104 <a href="/en/samples" class="btn viewBtn btn-danger button"> 1105 View all samples 1106 </a> 1107</div> </div> 1108 </div> 1109 </div> 1110 1111 <div class="kb section awards"> 1112 <div class="kbInner"> 1113 <h3 class="kb largeTitle">Don't take our word for it. <br/>Take it from them.</h3> 1114 <div class="logos"> 1115 <a href="/en/awards"> 1116 <img data-src="/img/web/home/awards/bronze.png" width="142" height="100" alt="Brandon Hall"> 1117 </a> 1118 <a href="/en/awards"> 1119 <img data-src="/img/web/home/awards/witsa.png" width="122" height="100" alt="WITSA"> 1120 </a> 1121 <a href="/en/awards"> 1122 <img data-src="/img/web/home/awards/academic21.png" width="100" height="100" alt="Academic Choice Awards 21"> 1123 </a> 1124 <a href="/en/awards"> 1125 <img data-src="/img/web/home/awards/academic16.png" width="100" height="100" alt="Academic Choice Awards 16"> 1126 </a> 1127 <a href="/en/awards"> 1128 <img data-src="/img/web/home/awards/edTech25.png" width="104" height="100" alt="EdTech 2025"> 1129 </a> 1130 </div> 1131 <div class="logos row2"> 1132 <a href="/en/awards"> 1133 <img data-src="/img/web/home/awards/edTech23.png" width="104" height="100" alt="EdTech"> 1134 </a> 1135 <a href="/en/awards"> 1136 <img data-src="/img/web/home/awards/edtech.png" width="73" height="100" alt="EdTech"> 1137 </a> 1138 <a href="/en/awards"> 1139 <img data-src="/img/web/home/awards/bestSupport.png" width="100" height="100" alt="Software Suggest"> 1140 </a> 1141 <a href="/en/awards"> 1142 <img data-src="/img/web/home/awards/trending.png" width="100" height="100" alt="Software Suggest"> 1143 </a> 1144 <a href="/en/awards"> 1145 <img data-src="/img/web/home/awards/editorschoice23.png" width="92" height="100" alt="Software Informer"> 1146 </a> 1147 <a href="/en/awards"> 1148 <img data-src="/img/web/home/awards/userPick23.png" width="7
11487" height="100" alt="Software Informer"> 1149 </a> 1150 </div> 1151 <div class="alignCenter"> 1152 <div class="vSpace40"></div> 1153 <a href="https://www.capterra.com/p/160177/Kotobee-Author/" class="btn btn-sm btn-danger button" target="_blank">Read user reviews on Capterra</a> 1154 </div> 1155 </div> 1156 </div> 1157 1158 <div class="kb section spread newTestimonial"> 1159 <div class="kbInner"> 1160 <h3 class="kb largeTitle">What our customers say</h3> 1161 <div class="row personContainer"> 1162 <div class="allPersons" id="allPersons"> 1163 <div class="person"> 1164 <div class="col-sm-4 hidden-xs"> 1165 <div class="author"> 1166 <img data-src="/img/web/home/prad.png" alt="Prad"> 1167 </div> 1168 </div> 1169 <div class="col-sm-8"> 1170 <div class="text"> 1171 <div class="quote"> 1172 <p>âKotobee is an easy to use platform for users of any skill levels. Using Kotobee we were able to deliver content on both online and offline modes while retaining the interactive elements, thus allowing learning to take place anytime and anywhere.</p> 1173 <p>Kotobee is rich with elements that can transform traditional learning into blended learning; this platform is dedicated in taking your educational experience to the next level.â</p> 1174 </div> 1175 <div class="name">Prad Duraisamy</div> 1176 <div class="title">Educational Technology Manager</div> 1177 <div class="org"><img width="148" height="39" data-src="/img/web/home/unsw.png" alt="UNSW"/></div> 1178 </div> 1179 </div> 1180 </div> 1181 <div class="person"> 1182 <div class="col-sm-4 hidden-xs"> 1183 <div class="author"> 1184 <img data-src="/img/web/home/markKroeze.png" alt="Mark"> 1185 </div> 1186 </div> 1187 <div class="col-sm-8"> 1188 <div class="text"> 1189 <div class="quote"> 1190 <p>âModern Day Miracle Workers- Thatâs what happens when you combine the brilliance and the fanatical support that Kotobee offers. I came across this website in late 2015 with an idea for a new way of creating childrenâs books. I knew what I wanted the book to look like, but I had no idea how to create the programming for it. I had a major issue with Apple iBooks and Kotobee figured it out and we had the book to market in February 2016. I couldnât recommend them highly enough and they have a customer for life in me. I just hope more people work with them so they stay in business for as long as I am alive!â</p> 1191 </div> 1192 <div class="name">Mark Kroeze</div> 1193 <div class="title">Author - San Antonio, Texas</div> 1194 <div class="org"> </div> 1195 </div> 1196 </div> 1197 </div> 1198 <div class="person"> 1199 <div class="col-sm-4 hidden-xs"> 1200 <div class="author"> 1201 <img data-src="/img/web/home/omarFisher.png" alt="Dr Omar Fisher"> 1202 </div> 1203 </div> 1204 <div class="col-sm-8"> 1205 <div class="text"> 1206 <div class="quote"> 1207 <p>âAfter searching far and wide many months for an editor/publisher for ebooks to assist me in self-publishing a hard copy print book (2005) that is updated, modified and adjusted to run smoothly on a fully digital format, I discovered Kotobee in Sept 2015. Over the past 5 months, we have collaborated closely to generate a stunning, highly interactive and fun ebook to teach Youth about money and healthy habits of money management. I commend Kotobee for its professionalism and reliable efforts in support of iwealth.orgâs pioneering program for teaching Financial Intelligence and Literacy to Youth ages 11-18.â</p> 1208 </div> 1209 <div class="name">Dr. Omar Fisher</div> 1210 <div class="title">Author, Presenter, Director</div> 1211 <div class="org">iWealth</div> 1212 </div> 1213 </div> 1214 </div> 1215 <div class="person"> 1216 <div class="col-sm-2 hidden-xs"> 1217 </div> 1218 <div class="col-sm-10"> 1219 <div class="text"> 1220 <div class="quote"> 1221 <p>âAfter searching the market for a professional and simple to use eBook software that will integrate with our LMS we ended up using Kotobee Author. Generating the eBook itself is effortless and the final product integrates smoothly with our LMS. Users have commented on the usability and the tools available within the book such as highlighting and notes taking which has significantly improved their learning experience.â</p> 1222 </div> 1223 <div class="name">Alexander Pearce</div> 1224 <div class="title">Product Manager</div> 1225 <div class="org"> 1226 <a href="http://www.pti-global.co.uk/" target="_blank">Pharmaceutical Training International</a> 1227 </div> 1228 </div> 1229 </div> 1230 </div> 1231 <div class="person"> 1232 <div class="col-sm-2 hidden-xs"> 1233 </div> 1234 <div class="col-sm-10"> 1235 <div class="text"> 1236 <div class="quote"> 1237 <p>âI have been working with the Kotobee crew for some time now, specifically with their Kotobee Author software. I find it to be intuitive, easy to use, and generally a pleasure to work with. The developers have been incredibly responsive as well and really stand behind their product. Using their software I have been able to create engaging, fun, and highly educational eBooks that have been instrumental in my students learning and education.â</p> 1238 </div> 1239 <div class="name">Ridge King</div> 1240 <div class="title">Founder</div> 1241 <div class="org"> 1242 <a href="http://www.nextdim.net/" target="_blank">Next Dimension Training</a> 1243 </div> 1244 </div> 1245 </div> 1246 </div> 1247 </div> 1248 </div> 1249 <div class="navBtns"> 1250 <div class="navBtn prev"> 1251 <a href="#" ng-click="prevTestimonialNew()" aria-label="Previous">
1252 <span class="icon icon-chevron-left"></span> 1253 </a> 1254 </div> 1255 <div class="navBtn next"> 1256 <a href="#" ng-click="nextTestimonialNew()" aria-label="Next"> 1257 <span class="icon icon-chevron-right"></span> 1258 </a> 1259 </div> 1260 </div> 1261 </div> 1262 </div> 1263 1264 <div class="vSpace2"></div> 1265 1266 1267 <div class="kb section spread darkGray"> 1268 <div class="kbInner"> 1269 1270<div class="footerActionBtns midpage"> 1271 1272 <div class="actionBtns row"> 1273 <div class="col-xs-12"> 1274 <h4 class="kb sectionTitle">Get started with Kotobee</h4> 1275 <form method="post" action="/en/register" class="form neutral" xid="footer-signup-form" v-bind:class="[registering?'registering':'']"> 1276 <input class="emailTxt" type="email" v-bind:readonly="registering" name="email" placeholder="Email" v-on:keyup.enter="register('footer-signup-form',$event)"> 1277 <input class="phoneTxt" type="text" name="phone" placeholder="Phone"> 1278 <input type="hidden" name="action" value="newRedirect"> 1279 <input type="hidden" name="subscribe" value="true"> 1280 <input type="hidden" class="ref" name="ref" value=""> 1281 <input type="hidden" class="aff" name="aff" value=""> 1282 <input type="hidden" name="lang" value="en"> 1283 <input type="hidden" name="ssoprovider" class="ssoprovider" value=""> 1284 <input type="hidden" name="ssotoken" class="ssotoken" value=""> 1285 <input type="hidden" name="name" class="name" value=""> 1286 <input type="hidden" name="source" value="From footer. Path: /"> 1287 <div class="inlineBlock alignLeft vAlignCenter"> 1288 <button v-bind:disabled="registering" class="btn btn-danger kb registerBtn" v-on:click="register('footer-signup-form',$event)"> 1289 <span v-if="!registering" class="fa fa-arrow-circle-down availableIcon"></span> 1290 <span v-if="registering" class="fa fa-circle-o-notch fa-spin busyIcon"></span> 1291 Get your free license 1292 </button> 1293 </div> 1294 <input type="submit" value="submit" class="hide" /> 1295 1296 1297<div class="ssoWrapper simple light"> 1298 <p class="ssoWrapper__or">or</p> 1299 <button type="button" class="ssoWrapper--googleBtn" aria-label="Google"> 1300 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path d="M113.47 309.408L95.648 375.94l-65.139 1.378C11.042 341.211 0 299.9 0 256c0-42.451 10.324-82.483 28.624-117.732h.014L86.63 148.9l25.404 57.644c-5.317 15.501-8.215 32.141-8.215 49.456.002 18.792 3.406 36.797 9.651 53.408z" fill="#fbbb00"/><path d="M507.527 208.176C510.467 223.662 512 239.655 512 256c0 18.328-1.927 36.206-5.598 53.451-12.462 58.683-45.025 109.925-90.134 146.187l-.014-.014-73.044-3.727-10.338-64.535c29.932-17.554 53.324-45.025 65.646-77.911h-136.89V208.176h138.887 107.012 0z" fill="#518ef8"/><path d="M416.253 455.624l.014.014C372.396 490.901 316.666 512 256 512c-97.491 0-182.252-54.491-225.491-134.681l82.961-67.91c21.619 57.698 77.278 98.771 142.53 98.771 28.047 0 54.323-7.582 76.87-20.818l83.383 68.262z" fill="#28b446"/><path d="M419.404 58.936l-82.933 67.896C313.136 112.246 285.552 103.82 256 103.82c-66.729 0-123.429 42.957-143.965 102.724l-83.397-68.276h-.014C71.23 56.123 157.06 0 256 0c62.115 0 119.068 22.126 163.404 58.936z" fill="#f14336"/></svg> 1301 <span>Sign up with Google account</span> 1302 </button> 1303 <div class="clear"></div> 1304 <p class="ssoWrapper__status"></p> 1305</div> 1306 1307 <div class="formFooter"> 1308 <strong>Risk free</strong> - No credit card required. 1309 <div class="communicate"> 1310 <button onclick="openChat(); return false;" class="inlineBlock">
1311 <span class="icon icon-chat"></span> Chat with a live agent 1312 </button> 1313 <button class="scheduleDemoBtn inlineBlock"> 1314 <span class="icon icon-meeting"></span> Schedule a meeting 1315 </button> 1316 </div> 1317 </div> 1318 1319 </form> 1320 1321 1322 <div class="getQuote"> 1323 <p>For quotations on customized solutions</p> 1324 <div class="hSpace5"></div> 1325 <a href="/en/contact" class="btn btn-sm btn-primary kb">Get a quote </a> 1326 </div> 1327 <div class="vSpace20"></div> 1328 </div> 1329 </div> 1330</div> </div> 1331</div> 1332 1333<div class="kb section spread lightGray halfWide"> 1334 <div class="kbInner"> 1335 <div class="row"> 1336 </div> 1337 <a id="newsletter"></a> 1338 <div class="footerMenu row"> 1339 <div class='links-wrapper'> 1340 <div class="link-col col-one"> 1341 <h4>Resources</h4> 1342 <a href="https://blog.kotobee.com/how-create-interactive-ebook-guide/">How to Create an Interactive Ebook</a> 1343 <a href="https://blog.kotobee.com/edit-epub-books-manually/">How to Edit EPUB Books Manually</a> 1344 <a href="https://blog.kotobee.com/ebook-drm-security-what-how/">Ebook DRM & Security</a> 1345 <a href="https://blog.kotobee.com/5-steps-pdf-to-interactive-ebook/">Convert Your PDF to an Interactive Ebook</a> 1346 <a href="https://blog.kotobee.com/ebook-apps/">Turn Your Book into an Ebook App</a> 1347 <a href="https://blog.kotobee.com/ebook-formats/">Ebook Formats Explained for Beginners</a> 1348 <a href="https://blog.kotobee.com/best-ebook-layout-reflowable-fixed/">Best Ebook Layout Format: Reflowable or Fixed?</a> 1349 1350 <h4>Solutions</h4> 1351 <a href="/en/solutions/k12">K12 Education</a> 1352 <a href="/en/solutions/higher-education">Higher Education</a> 1353 <a href="/en/solutions/digital-publishing">Digital Publishing</a> 1354 <a href="/en/solutions/corporate-training">Corporate Training</a> 1355 1356 </div> 1357 <div class="link-col col-two"> 1358 <h4>Use Cases</h4> 1359 <a href="/en/products/author">Interactive Ebook Creator</a> 1360 <a href="/interactive-quiz-maker">Quiz Maker Software</a> 1361 <a href="/book-app-maker">Book App Maker</a> 1362 <a href="/blended-learning-software">
1362Blended Learning Software</a> 1363 <a href="/interactive-training-software">Interactive Training Software</a> 1364 <a href="/interactive-pdf-creator">Interactive PDF Creator</a> 1365 <a href="/scorm-authoring-tool">SCORM Authoring Tool</a> 1366 <a href="/course-creator-software">Course Creator Software</a> 1367 <a href="/digital-magazine-software">Digital Magazine Software</a> 1368 <a href="/digital-brochure-software">Digital Brochure Software</a> 1369 <a href="/digital-catalog-software">Digital Catalog Software</a> 1370 <a href="/ebook-library-software">Ebook Library Software</a> 1371 </div> 1372 <div class="link-col two-three"> 1373 <h4>Company</h4> 1374 <a href="https://www.vijua.com/about">About Us</a> 1375 <a href="https://www.kotobee.com/awards">Awards</a> 1376 <a href="https://www.kotobee.com/privacy">Privacy Policy</a> 1377 <a href="https://www.kotobee.com/terms">Terms of Service</a> 1378 <a href="https://kotobee.statuspage.io/">System Status</a> 1379 <a href="https://www.kotobee.com/advertise">Advertise with Us</a> 1380 1381 1382 <h4>Programs</h4> 1383 <a href="/en/affiliates">Kotobee affiliate program</a> 1384 <a href="/en/invite">Invite Friends to Kotobee</a> 1385 <a href="/en/ebook-publishing-basics-course">Ebook Courses</a> 1386 1387 1388 <h4>Free Tools</h4> 1389 <a href="https://www.kotobee.com/convert">PDF to URL Converter</a> 1390 </div> 1391 <div class="link-col cole-four"> 1392 <h4>Quick Links</h4> 1393 <a href="https://blog.kotobee.com/">Blog</a> 1394 <a href="/en/case-studies">Case Studies</a> 1395 <a href="https://www.kotobee.com/mediakit">Press Kit</a> 1396 <a href="/en/customers">Customers</a> 1397 <a href="/en/pricing">Pricing</a> 1398 <a href="/files/docs/education-whitepaper.pdf"> 1399 White Paper (PDF) 1400 </a> 1401 <a href="/en/templates"> 1402 Ebook Templates 1403 </a> 1404 1405 1406 <h4>Support</h4> 1407 <a href="https://support.kotobee.com/en/support/solutions/articles/8000027851-quick-guide">Getting Started with Kotobee</a> 1408 <a href="/en/livedemo">Request a demo</a> 1409 <a href="/academy">Kotobee Academy</a> 1410 <a href="/en/contact">Contact Us</a> 1411 <a href="/en/livedemo">Request a Demo</a> 1412 <a href="https://support.kotobee.com">Help Center</a> 1413 </div> 1414 </div> 1415 <div class="clear"></div> 1416 <hr/> 1417 <div class="bottomFooterContainer"> 1418 1419<div class="col-sm-5 newsletterContainer"> 1420 <h4>Subscribe for news and updates</h4> 1421 <form class="newsletterForm" data-list="5815013"> 1422 <div class="form-group ml-field-email ml-validate-required ml-validate-email"> 1423 <input type="email" name="fields[email]" class="emailInput form-control" placeholder="Email*"> 1424 </div> 1425 <button type="submit" class="submitBtn primary"> 1426 <img width="19" height="14" src="/img/web/footer/messge.png" alt="Send"/> 1427 </button> 1428 </form> 1429 <div class="subscribeError"> 1430 <h3>Error</h3> 1431 <p>Please check your email and try again or <a href="https://support.kotobee.com">contact support</a>.</p> 1432 </div> 1433 <div class="subscribeSuccess"> 1434 <h3>Thank you for subscribing!</h3> 1435 <p>You should start receiving emails instantly.</p> 1436 </div> 1437 <p> 1438 Get weekly product updates, ebook publishing tips, and useful resources delivered to your inbox. Unsubscribe anytime. 1439 </p> 1440</div> 1441 1442 <div class="col-sm-5 footerSocial text-center"> 1443 <h3>Follow us</h3> 1444 <a href="https://www.facebook.com/kotobee" target="_blank" aria-label="Facebook"> 1445 <img data-src="/img/web/footer/facebook.png" width="24" height="24" alt="Facebook"/> 1446 </a> 1447 <a href="https://twitter.com/kotobee" target="_blank" aria-label="Twitter"> 1448 <img data-src="/img/web/footer/twitter.png" width="24" height="24" alt="Twitter"/> 1449 </a> 1450 <a href="https://www.linkedin.com/company/kotobee/" target="_blank" aria-label="LinkedIn"> 1451 <img data-src="/img/web/footer/linkedIn.png" width="24" height="24" alt="LinkedIn"/> 1452 </a> 1453 <a href="https://www.youtube.com/c/Kotobee" target="_blank" aria-label="YouTube"> 1454 <img data-src="/img/web/footer/youtube.png" width="24" height="24" alt="YouTube"/> 1455 </a> 1456 <p> 1457 <a href="/cdn-cgi/l/email-protection#a0c9cec6cfe0d6c9cad5c18ec3cfcd">
1458 <span class="__cf_email__" data-cfemail="97fef9f1f8d7e1fefde2f6b9f4f8fa">[email protected]</span> 1459 </a> 1460 </p> 1461 </div> 1462 <div class="col-sm-5 footerAwards text-center"> 1463 <a href='/en/awards' aria-label="Awards"> 1464 <img data-src="/img/web/footer/brandon.png" width="100" height="70" alt="Brandon Hall"/> 1465 <img data-src="/img/web/footer/academicChoice.png" width="79" height="77" alt="Academics Choice Award"/> 1466 <img data-src="/img/web/footer/witsa.png" width="108" height="75" alt="WITSA"/> 1467 <img data-src="/img/web/footer/iela.png" width="63" height="78" alt="IELA"/> 1468 </a> 1469 </div> 1470 </div> 1471 <div class="copyrights text-center"> 1472 <p>Copyright © 2026 <a href="https://vijua.com/" target="_blank">Vijua</a></p> 1473 </div> 1474 1475 1476 1477 1478 1479 1480 1481 </div> 1482 </div> 1483 1484 <!-- FreshChat Code -->
vendor: 109 bytes, lines 1484-1485
1484 1485<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1485<script> 1486 function initFreshChat() { 1487 window.fcWidget.init({ 1488 token: "7692d0ce-eba9-45ca-97a5-2d21c0d07124", 1489 host: "https://wchat.freshchat.com" 1490 }); 1491 } 1492 function initialize(i,t){var e;i.getElementById(t)?initFreshChat():((e=i.createElement("script")).id=t,e.async=!0,e.src="https://wchat.freshchat.com/js/widget.js",e.onload=initFreshChat,i.head.appendChild(e))}function initiateCall(){initialize(document,"freshchat-js-sdk")}; 1493</script>
1493 </div> 1494</div> 1495 1496
1496<script type="text/ng-template" id="templates/solutions1desc"> 1497 <div class="row s1" ng-if="currentSolutionID=='s1'"> 1498 <div class="col-md-6"> 1499 <img data-src="/img/web/home/k12Education.jpg" alt="Use videos, interactive images, and widgets to engage students"/> 1500 </div> 1501 <div class="col-md-6"> 1502 <ul> 1503 <li><span class="icon icon-checkbox"></span> Use videos, interactive images, and widgets to engage students</li> 1504 <li><span class="icon icon-checkbox"></span> Display ebooks on web, desktop, or tablets</li> 1505 <li><span class="icon icon-checkbox"></span> Distribute ebooks individually or collectively through an internal library app</li> 1506 <li><span class="icon icon-checkbox"></span> Collect reports for students' activities using Tin-Can API</li> 1507 <li><span class="icon icon-checkbox"></span> Encourage students to learn to create interactive ebooks at an early age (bulk licenses available)</li> 1508 </ul> 1509 <div class="text-center"> 1510 <a href="/files/docs/education-whitepaper.pdf" class="btn btn-default button"> 1511 <span class="fa fa-file-pdf-o" style="color:#921d1d"></span> 1512 <span class="hSpace5" style="width:2px"></span> 1513 Download whitepaper</a> 1514 </div> 1515 </div> 1516 </div> 1517 </script>
1517 1518 1519
1519<script type="text/ng-template" id="templates/solutions2desc"> 1520 <div class="row s2" ng-if="currentSolutionID=='s2'"> 1521 <div class="col-md-6"> 1522 <img data-src="/img/web/home/higherEducation.jpg" alt="Enhance the learning experience with interactive textbooks"/> 1523 </div> 1524 <div class="col-md-6"> 1525 <ul> 1526 <li><span class="icon icon-checkbox"></span> Enhance the learning experience with interactive textbooks</li> 1527 <li><span class="icon icon-checkbox"></span> Distribute ebooks individually or collectively through an educational library app</li> 1528 <li><span class="icon icon-checkbox"></span> Integrate with your existing LMS (e.g. Moodle) and other educational content</li> 1529 <li><span class="icon icon-checkbox"></span> Collect reports for students' activities using Tin-Can API</li> 1530 <li><span class="icon icon-checkbox"></span> Inspire teachers to distribute course materials as ebooks (bulk licenses available)</li> 1531 </ul> 1532 <div class="text-center"> 1533 <a href="/files/docs/education-whitepaper.pdf" class="btn btn-default button"> 1534 <span class="fa fa-file-pdf-o" style="color:#921d1d"></span> 1535 <span class="hSpace5" style="width:2px"></span> 1536 Download whitepaper</a> 1537 </div> 1538 </div> 1539 </div> 1540 </script>
1540 1541 1542
1542<script type="text/ng-template" id="templates/solutions3desc"> 1543 <div class="row s3" ng-if="currentSolutionID=='s3'"> 1544 <div class="col-md-6"> 1545 <img data-src="/img/web/home/corporateTraining.jpg" alt="Create ebooks rich with video and audio for each training course"/> 1546 </div> 1547 <div class="col-md-6"> 1548 <ul> 1549 <li><span class="icon icon-checkbox"></span> Create ebooks rich with video and audio for each training course</li> 1550 <li><span class="icon icon-checkbox"></span> Organize your course ebooks into a custom library app</li> 1551 <li><span class="icon icon-checkbox"></span> Monetize by selling course library access to your customers</li> 1552 <li><span class="icon icon-checkbox"></span> Brand your ebook apps or library app using your corporate identity</li> 1553 <li><span class="icon icon-checkbox"></span> Design responsive tests and examinations for your trainees</li> 1554 </ul> 1555 <div class="text-center"> 1556 <a href="/files/docs/education-whitepaper.pdf" class="btn btn-default button"> 1557 <span class="fa fa-file-pdf-o" style="color:#921d1d"></span> 1558 <span class="hSpace5" style="width:2px"></span> 1559 Download whitepaper</a> 1560 </div> 1561 </div> 1562 </div> 1563 </script>
1563 1564 1565
1565<script type="text/ng-template" id="templates/solutions4desc"> 1566 <div class="row s4" ng-if="currentSolutionID=='s4'"> 1567 <div class="col-md-6"> 1568 <img data-src="/img/web/home/bookPublishing.jpg" alt="Create elegant interactive ebooks easily from your PDF or Word documents"/> 1569 </div> 1570 <div class="col-md-6"> 1571 <ul> 1572 <li><span class="icon icon-checkbox"></span> Create elegant interactive ebooks easily from your PDF or Word documents</li> 1573 <li><span class="icon icon-checkbox"></span> Host your book online instantly, or export it as a desktop or mobile app</li> 1574 <li><span class="icon icon-checkbox"></span> Export to EPUB and Kindle format, for wider exposure</li> 1575 <li><span class="icon icon-checkbox"></span> Monetize by selling online access to your ebooks</li> 1576 </ul> 1577 <div class="text-center"> 1578 <a href="/files/docs/education-whitepaper.pdf" class="btn btn-default button"> 1579 <span class="fa fa-file-pdf-o" style="color:#921d1d"></span> 1580 <span class="hSpace5" style="width:2px"></span> 1581 Download whitepaper</a> 1582 </div> 1583 </div> 1584 </div> 1585 </script>
1585 1586 1587
1587<script defer src="/js/home.min.js?c=6731"></script>
1587 1588 1589 1590 <!-- Facebook Pixel Code --> 1591 1592 <noscript><img height="1" width="1" style="display:none" 1593 src="https://www.facebook.com/tr?id=597011190465103&ev=PageView&noscript=1" 1594 /></noscript> 1595 <!-- End Facebook Pixel Code --> 1596 1597 <!-- For gmail sign in --> 1598
1599<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-99a8dc9967559d8d1b3","applicationID":"530751131","transactionName":"blxSbUtSX0BTVUYPXFcWZUtQHFBDQhhCDkM=","queueTime":0,"applicationTime":12,"atts":"QhtRGwNITE4=","errorBeacon":"bam.nr-data.net","agent":""}</script>
1599<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"5fa0844b0b584b1b9dceeacc424be5eb","spa":2}' crossorigin="anonymous"></script>
1599 1600</body> 1601</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.