1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[230],{13846:(e,t,r)=>{Promise.resolve().then(r.bind(r,26617))},15963:(e,t,r)=>{"use strict";var n=r(9123);r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},23073:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return u},formatWithValidation:function(){return l},urlObjectKeys:function(){return a}});let n=r(51964)._(r(26847)),o=/https?|ftp|gopher|file/;function u(e){let{auth:t,hostname:r}=e,u=e.protocol||"",a=e.pathname||"",l=e.hash||"",s=e.query||"",c=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?c=t+e.host:r&&(c=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(c+=":"+e.port)),s&&"object"==typeof s&&(s=String(n.urlQueryToSearchParams(s)));let i=e.search||s&&"?"+s||"";return u&&!u.endsWith(":")&&(u+=":"),e.slashes||(!u||o.test(u))&&!1!==c?(c="//"+(c||""),a&&"/"!==a[0]&&(a="/"+a)):c||(c=""),l&&"#"!==l[0]&&(l="#"+l),i&&"?"!==i[0]&&(i="?"+i),""+u+c+(a=a.replace(/[?#]/g,encodeURIComponent))+(i=i.replace("#","%23"))+l}let a=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function l(e){return u(e)}},26617:(e,t,r)=>{"use strict";r.d(t,{SearchClient:()=>c});var n=r(909),o=r(87193),u=r(34198),a=r.n(u),l=r(15963);function s(e,t){if(!t)return e;try{let r=RegExp("(".concat(t.replace(/[.*+?^${}()|[\\]\\\\]/g,"\\$&"),")"),"ig");return e.split(r).map((e,t)=>r.test(e)?(0,n.jsx)("mark",{children:e},t):(0,n.jsx)("span",{children:e},t))}catch(t){return e}}function c(e){let{locale:t,modules:r,i18n:u,initialQuery:c=""}=e,[i,f]=(0,o.useState)(c),[d,p]=(0,o.useTransition)(),m=(0,l.useRouter)(),h=(0,l.usePathname)(),g=(0,l.useSearchParams)(),y=(0,o.useMemo)(()=>{let e=[];return r.forEach(r=>{var n,o;let a="/".concat(t,"#module-").concat(r.number);e.push({href:a,title:"".concat(u.module," ").concat(r.number,": ").concat(r.title),description:null!==(n=r.description)&&void 0!==n?n:"",searchable:"".concat(r.title," ").concat(null!==(o=r.description)&&void 0!==o?o:"").toLowerCase()}),Array.isArray(r.topics)&&r.topics.forEach((n,o)=>{var a,l,s;let c=null!==(a=null==n?void 0:n.title)&&void 0!==a?a:String(n),i=(s=null!==(l=null==n?void 0:n.content)&&void 0!==l?l:"")?s.replace(/<[^>]*>/g," ").replace(/\s+/g," ").trim():"";e.push({href:"/".concat(t,"#module-").concat(r.number,"-topic-").concat(o),title:"".concat(u.module," ").concat(r.number,": ").concat(r.title," â ").concat(u.topic,": ").concat(c),description:i.slice(0,220),searchable:"".concat(c," ").concat(i).toLowerCase()})})}),e},[r,t,u.module,u.topic]),b=(0,o.useMemo)(()=>{let e=i.trim().toLowerCase();return e?y.filter(t=>t.searchable.includes(e)):[]},[i,y]);return(0,o.useEffect)(()=>{i!==((null==g?void 0:g.get("q"))||"").toString()&&p(()=>{let e=new URLSearchParams(null==g?void 0:g.toString());i?e.set("q",i):e.delete("q"),m.replace("".concat(h,"?").concat(e.toString()))})},[i]),(0,n.jsxs)("main",{className:"container mx-auto px-4 py-10 md:py-16",children:[(0,n.jsxs)("header",{className:"mb-6 md:mb-8",children:[(0,n.jsxs)("h1",{className:"text-2xl md:text-3xl font-semibold",children:[u.title,i?(0,n.jsxs)(n.Fragment,{children:[" ",u.subtitle," â",i,"â"]}):null]}),(0,n.jsx)("div",{className:"mt-4",children:(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)("input",{type:"search",name:"q",value:i,onChange:e=>f(e.target.value),placeholder:u.placeholder,className:"w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary","aria-label":u.placeholder}),(0,n.jsx)("button",{type:"button",onClick:()=>{var e;let t=document.querySelector("ol[role='list']");null==t||null===(e=t.focus)||void 0===e||e.call(t)},className:"rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground hover:opacity-90",children:u.ctaSearch})]})}),(0,n.jsx)("div",{className:"mt-3 text-sm text-muted-foreground",children:(0,n.jsxs)(a(),{href:"/".concat(t),className:"hover:underline",children:["â ",u.backToCourse]})})]}),i?0===b.length?(0,n.jsx)("p",{className:"text-muted-foreground",children:u.noResults}):(0,n.jsx)("ol",{className:"space-y-4",role:"list","aria-live":"polite",children:b.map((e,t)=>(0,n.jsxs)("li",{className:"border rounded-md p-4 hover:border-primary/50 transition-colors",children:[(0,n.jsx)(a(),{href:e.href,className:"text-base md:text-lg font-medium hover:underline",children:s(e.title,i)}),e.description?(0,n.jsx)("p",{className:"mt-1 text-sm text-muted-foreground line-clamp-3",children:s(e.description,i)}):null]},t))}):(0,n.jsx)("p",{className:"text-muted-foreground",children:u.noQuery})]})}},26847:(e,t)=>{"use strict";function r(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function n(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function o(e){let t=new URLSearchParams;for(let[r,o]of Object.entries(e))if(Array.isArray(o))for(let e of o)t.append(r,n(e));else t.set(r,n(o));return t}function u(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];for(let t of r){for(let r of t.keys())e.delete(r);for(let[r,n]of t.entries())e.append(r,n)}return e}
1Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{assign:function(){return u},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return o}})},34198:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return m}});let n=r(97535),o=r(909),u=n._(r(87193)),a=r(23073),l=r(85399),s=r(32446),c=r(82634),i=r(86683),f=r(35573);r(66042);let d=r(31894);function p(e){return"string"==typeof e?e:(0,a.formatUrl)(e)}let m=u.default.forwardRef(function(e,t){let r,n,{href:a,as:m,children:h,prefetch:g=null,passHref:y,replace:b,shallow:x,scroll:v,onClick:P,onMouseEnter:j,onTouchStart:E,legacyBehavior:N=!1,...S}=e;r=h,N&&("string"==typeof r||"number"==typeof r)&&(r=(0,o.jsx)("a",{children:r}));let _=u.default.useContext(l.AppRouterContext),C=!1!==g,O=null===g?s.PrefetchKind.AUTO:s.PrefetchKind.FULL,{href:R,as:T}=u.default.useMemo(()=>{let e=p(a);return{href:e,as:m?p(m):e}},[a,m]);N&&(n=u.default.Children.only(r));let k=N?n&&"object"==typeof n&&n.ref:t,w=u.default.useCallback(e=>(C&&null!==_&&(0,d.mountLinkInstance)(e,R,_,O),()=>{(0,d.unmountLinkInstance)(e)}),[C,R,_,O]),M={ref:(0,c.useMergedRef)(w,k),onClick(e){N||"function"!=typeof P||P(e),N&&n.props&&"function"==typeof n.props.onClick&&n.props.onClick(e),_&&(e.defaultPrevented||function(e,t,r,n,o,a,l){let{nodeName:s}=e.currentTarget;!("A"===s.toUpperCase()&&function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e))&&(e.preventDefault(),u.default.startTransition(()=>{let e=null==l||l;"beforePopState"in t?t[o?"replace":"push"](r,n,{shallow:a,scroll:e}):t[o?"replace":"push"](n||r,{scroll:e})}))}(e,_,R,T,b,x,v))},onMouseEnter(e){N||"function"!=typeof j||j(e),N&&n.props&&"function"==typeof n.props.onMouseEnter&&n.props.onMouseEnter(e),_&&C&&(0,d.onNavigationIntent)(e.currentTarget)},onTouchStart:function(e){N||"function"!=typeof E||E(e),N&&n.props&&"function"==typeof n.props.onTouchStart&&n.props.onTouchStart(e),_&&C&&(0,d.onNavigationIntent)(e.currentTarget)}};return(0,i.isAbsoluteUrl)(T)?M.href=T:N&&!y&&("a"!==n.type||"href"in n.props)||(M.href=(0,f.addBasePath)(T)),N?u.default.cloneElement(n,M):(0,o.jsx)("a",{...S,...M,children:r})});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},82634:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=r(87193);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},86683:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return m},MiddlewareNotFoundError:function(){return b},MissingStaticPage:function(){return y},NormalizeError:function(){return h},PageNotFoundError:function(){return g},SP:function(){return d},ST:function(){return p},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return s},getLocationOrigin:function(){return a},getURL:function(){return l},isAbsoluteUrl:function(){return u},isResSent:function(){return c},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return i},stringifyError:function(){return x}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,o=Array(n),u=0;u<n;u++)o[u]=arguments[u];return r||(r=!0,t=e(...o)),t}}let o=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,u=e=>o.test(e);function a(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function l(){let{href:e}=window.location,t=a();return e.substring(t.length)}function s(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function c(e){return e.finished||e.headersSent}function i(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&c(r))return n;if(!n)throw Object.defineProperty(Error('"'+s(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.'),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,
1configurable:!0});return n}let d="undefined"!=typeof performance,p=d&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class m extends Error{}class h extends Error{}class g extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class y extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class b extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function x(e){return JSON.stringify({message:e.message,stack:e.stack})}}},e=>{var t=t=>e(e.s=t);e.O(0,[416,558,358],()=>t(13846)),_N_E=e.O()}]);
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.