<!DOCTYPE html><html lang="en-US"><head><title>Just a moment...</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=Edge"><meta name="robots" content="noindex,nofollow"><meta name="viewport" content="width=device-width,initial-scale=1"><style>*{box-sizing:border-box;margin:0;padding:0}html{line-height:1.15;-webkit-text-size-adjust:100%;color:#313131;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}body{display:flex;flex-direction:column;height:100vh;min-height:100vh}.main-content{margin:8rem auto;padding-left:1.5rem;max-width:60rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{line-height:2.25rem;font-size:1.5rem;font-weight:500}@media (width <= 720px){.h2{line-height:1.5rem;font-size:1.25rem}}#challenge-error-text{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI0IyMEYwMyIgZD0iTTE2IDNhMTMgMTMgMCAxIDAgMTMgMTNBMTMuMDE1IDEzLjAxNSAwIDAgMCAxNiAzbTAgMjRhMTEgMTEgMCAxIDEgMTEtMTEgMTEuMDEgMTEuMDEgMCAwIDEtMTEgMTEiLz48cGF0aCBmaWxsPSIjQjIwRjAzIiBkPSJNMTcuMDM4IDE4LjYxNUgxNC44N0wxNC41NjMgOS41aDIuNzgzem0tMS4wODQgMS40MjdxLjY2IDAgMS4wNTcuMzg4LjQwNy4zODkuNDA3Ljk5NCAwIC41OTYtLjQwNy45ODQtLjM5Ny4zOS0xLjA1Ny4zODktLjY1IDAtMS4wNTYtLjM4OS0uMzk4LS4zODktLjM5OC0uOTg0IDAtLjU5Ny4zOTgtLjk4NS40MDYtLjM5NyAxLjA1Ni0uMzk3Ii8+PC9zdmc+");background-repeat:no-repeat;background-size:contain;padding-left:34px}@media (prefers-color-scheme: dark){body{background-color:#222;color:#d9d9d9}}</style><meta http-equiv="refresh" content="360"></head><body><div class="main-wrapper" role="main"><div class="main-content"><noscript><div class="h2"><span id="challenge-error-text">Enable JavaScript and cookies to continue</span></div></noscript></div></div><script>(function(){window._cf_chl_opt = {cvId: '3',cZone: 'sourceforge.net',cType: 'managed',cRay: '95e0ad1b57a239c3',cH: 'ZsW52CKUPkS1pt_tM1J92bDpMPPwpegvG.QwW.pEPGM-1752324730-1.2.1.1-FUH_mJYSPoxX1mQRQdkP4LAXX7vxd4dPRmB41OemV9pWKQRC2uH4osw0dd2GEQ91',cUPMDTk:"\/p\/xsb\/src\/2263\/tree\/\/trunk\/XSB\/docs\/userman\/hooks.tex?__cf_chl_tk=lJyO5zOGdY6F8OIRa1Z4kY04cDCsY44y.jbkb7GlqhM-1752324730-1.0.1.1-7WiXGI5e.vhUhl4FLNuj_AabyQ6pTE8vBJQdeoQo0fU",cFPWv: 'g',cITimeS: '1752324730',cTplC:0,cTplV:5,cTplB: 'cf',fa:"\/p\/xsb\/src\/2263\/tree\/\/trunk\/XSB\/docs\/userman\/hooks.tex?__cf_chl_f_tk=lJyO5zOGdY6F8OIRa1Z4kY04cDCsY44y.jbkb7GlqhM-1752324730-1.0.1.1-7WiXGI5e.vhUhl4FLNuj_AabyQ6pTE8vBJQdeoQo0fU",md: 'LfDVDi8j.GY3wX5SUIwSU1yM6fL7OztAlwZWim0kapc-1752324730-1.2.1.1-d1nkgVvapULLh_30sKKh7iOfQfOKRfJ1f0jZ1UFTMR1VeG9UCUMETSO5XfkNWJs0KVvGUoDWvHaw.iP3kePC2e3C9oF_mRqNWauB7rBibvr4GQwYXg4gr.XKQb6n06DewpqpWfmIaI90mXBSQYlkUWiCfpB9IvEe0UjP0XSg8igBdO_wtLnyqeOs71STNMHx5inBooiwPGSHzZ0JrvXUhylMl9bONhudFRw1ZCapQ1HGY30bq8sjNH2fi_W4xAXqhQVdB4ELd2iQoRY1iLLprUkwJVFZizQwc9BNes63Lj9Kb_iI0e4MKIGgF_3FS3PmairFVkLiGWoJAPCjGt1WAM1mnjs3AO.Jfayum9HF.3lHkKxKGmM7Ym8xAM_G9gthX5nKJUyJ3lFUi4oeKii8KDdM4W8LFVjwddA7ysmLjPzcQu9Me81AHHng_kO5CrRs2ORyMDXweKi.xG9NSsjFfnov7DyUEO_PEgYaWO2JQRNcJmh53OaHsemb2U4R90nqrVOgVtvMFEg1bg6_vRGaqBkOluntGLjgmZfzADaBbycYBVOnnshNE6ZtpGZ8NUXC.t38oZjmKM2a6DsDxvIwIY3.Bd9Wp.F1zSTiMuOceLosYrPcU97HuDDRj84l01EjGMRm3CB9xTqTq5EgqcUr0Rey095qIqcpL2fVhdsJ0uZWalo7htXSEw_0gLxnyrh7YgF7AkS3DJ5NkJScMH9D9aijsK8amaF7IlnRD8bFukO8o_Ut.6wc9Y0Be86nGlBJ42VDxE8nFTezpTDuQ0YVMy8fZYw177vmWmZ9l4qGe0.Fqa7wk8NqXTqjjKyQkyz2RE92ei1zO4j578bhcPv7G1iHo26FDHjgD6STLCwznOk.HC6uu1uesRGxAXTtuMKM2nKRgwgRqZOiXbZZ47Z5OaETAuavEgGtZFw2vgNX0rQO.R0x0.0K8r3T4gCuh_cS.HGeZjKWWSTCZOVLREejCc0oVTeH.OQ7vnCO0AZVwC8',mdrd: '2mz9C8J6gkalTKNzCCYE5uEhgzY0NL53D_B.kcTW7fI-1752324730-1.2.1.1-A9khoHBDZdNTMr9F2jNaw3M8hMpaZuuoioqX3GgIj.kG6dzu2Owwf2aJUT5WtIpHgQQPK5HnPYgmTyU9u3a_V8oGitsBNRdaG_VeOy8GMgafmfVLjMKwGyD5sRgErqHPwCT0PZ..8DkYsrw6kUUrUJyXI4q9iZh4ZNjQkCqpop_.GDg6OP9crxjosfXvzFzBpJJjm3Gh51aZV7tfyV_hXiZZRwVU6JaM.caGm1EEeGpnV5k8cau.iQISjCq52KNmTuOkbS76KymUTir5fiRfcM7F8.jD_v5j5c0AZP.f9tdwtXOX4wCqaoOViUENIo.3Z8OCYSMJs9LgytgbXgBcUTLKspOG0B758ZgpR5hiE1Ry5tWCo9po.Kb5uCiZIhnzCmCK7dt6NkhPtYVLyAhzXjCSyJE3YHzbE9kvYiIMjfYCNaZZ0OCGNaNRg0G1w4pp3w.ia4wKb5zFMnpoV9v.M_v9lN8QaMpoMmk4m0Q5A1JIT83HY2cHpCYF1j63qw7cQQYZ3AgdIb9CFzKO1.b4X1taRyskfIN_Mj_rHLNQNiub4aqOlCOVT0Ft4U4wboiQ3t.DThsr.R3P8s424XGbZhvOGQVRfubtqgRVcCxH6kRQRfn4LilyJzzx4xDrs4I.S1AXay2CXqQpImK0v3MyZrOkhmCdPuvfAMq8rsF3X4RIw8OCNU8zbiteYRL_4qIIAIGZyv8BYHMWFjA8gy1DMJfvMSe84h4nfKaamq8k4Zsd8WWsqiIKey3RSpVGGRwfYEsLOHNaoQuMasL5v0o0G8D0DsAb.Hrs6xXEhJlrIKUOoDYGT7uk7sQrQb2yLRcHcunIj4AEoABzJs.fBmAFrHzCT_45e1FGKoyiWxI9PSQZNXKCwFctjTrTdSPBCx0LO5dxudelRiSuVV06j21y5xR.W.UIfHeHlbhy2qxtG0_GjUDA7PF1_ocBF9Q74W0yekZKIqsSyYN48iNLR.aT7IiSF2S1g9xYzmV0Z7CG5Lg.WxTzx5whW0cezKlH76xpj91rYp7_JZtl_0FgPQRycdCgXKnv.PKCpTo9.SWksRIWQBa8DrCTEoc5xL6Hl2uZPRQoxmHBaX8S75sQyHowqP0EnXiexTAMyPKKMHkL8KrCBilcUaAMvUNMAeM2EbC.lBXjYJ_YSwnLOgbQRn5l6gOA_weRhQjSg0FUZ96cUWZYTNxx7vgrgiX.HQvSdEFMVaKi.J0c1pe7UnQbYChMFWiC_L16.R3ZLAQmyGTxr1a9nhESTwBaWNB7VXQFO4aOlRBeB4.JMYxuNa0x15F6qSVunSlOnFjcf37oLUBzjbsa54.YUnmQwMopwFJWp6zCNJ3RY7Ilzgp308CpQtjxW3lyQX7z_f3OO2oX2Ex504hrO0zcLZDCk9Un_jX6nxqo5CsF2byXFH2wtlztE7AJv71wQfddXR5zoqwhk362eslsxHnkQqhrOjxie4e9GUcj7ylm6221BWekZBeI1htmfYuuYL934oeggkYgsI97YppRrN47h7EzEkfrb4bBAgtC1cTbj2t_uFfYhDhTz49HIkXyqg5_EIYUdJwZDpriyspqmSUrMTAfV838bu8fsf8zqMh4ipfknx6fbViNDTAgzOFo9B2UlWQefAkBhNDTE7gvZjrmKSza9EXQUCeOLUVmXdLiQpEJz0J2NiDkWYquKFwYeZMverVRVY_Bj07s9e8rr4A_dzZGMZiKZlc8Am1jlVd1Bj79kDGFe2KDuahnlJpi3N7yx.K8UAXV.JnLmRgsjd6PeZI.VJEglb3GKmI0sr9kvbzYm_Gco.aKjW3NEV_r7GuJ3bEcVJ17jpkk.Nr84Nc7NybtfzgNmegwfyiFZ70Dli2KXw0lkZEj7CBq4r__vwRNP2qmxNSXMKaLmJzUiIglv5KBIGQl86YH8QfAb5a4fHmpRXjQJHAnlddaE6NLPvHHIOTtFJpo0XU7hNHOb0DETxk.2q2S9rsKfHXnhbwt9z6QyRNH.Kbi0JtmflLVoonVhIPQ74WMQgc8QPLTYSsFG.73py5U0TlWvxI469pjJya9fjLMp_3qwmjuH5WDrrJNifT4a4_ju.WMz.4k7X31KiLvf_BDTY4DGwtbsjY1tNFxXTxUFPW1QNcDPtLoot4SJhaWAW9VVJd0B9Drq2fGwJJ.b7Lfzy5RcQ8kq85uKGeFPkNDLlQhGmnfMweYdcB5DV6zpwl9BDOIpbq1rC_rkSccXAWBY5UDnZtzD6gatYC65jMrYBOgyXA9Nx09v0joFy7tE5Wfruj05suUj.r_rR7aeyK0a9FxaPj0SIQm1Di41hBo0E5DepQr5M235KtbKGNrKyOGtGRwWsg6NG.p.GA2AIUfrLsKiGxj9v1WhLfS_cZGGh5sJixVjpmJJyjQTdcjFy3BHAXFgDS6XU_3aWscBioAD8khSCnRunhCoswruW9cU_K1PtwH.CQ4Tizf1vb1LMphHJXVYtUI4Yn4RBiNUnI8zASwgwGc.KbkeXXeoptF.dBk0RpxiuycHOPpARL79CC._9_uP.2XsooqADjvmeeWk_wFO8tKskOlVjr.pctJtPaHdqiGB3bFZ6EnsEgq1MTtoYcfqsMvSCJN0OezKgnB..CEPQIK.auCvqvaku54cRoPPrvOSA',};var a = document.createElement('script');a.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=95e0ad1b57a239c3';window._cf_chl_opt.cOgUHash = location.hash === '' && location.href.indexOf('#') !== -1 ? '#' : location.hash;window._cf_chl_opt.cOgUQuery = location.search === '' && location.href.slice(0, location.href.length - window._cf_chl_opt.cOgUHash.length).indexOf('?') !== -1 ? '?' : location.search;if (window.history && window.history.replaceState) {var ogU = location.pathname + window._cf_chl_opt.cOgUQuery + window._cf_chl_opt.cOgUHash;history.replaceState(null, null,"\/p\/xsb\/src\/2263\/tree\/\/trunk\/XSB\/docs\/userman\/hooks.tex?__cf_chl_rt_tk=lJyO5zOGdY6F8OIRa1Z4kY04cDCsY44y.jbkb7GlqhM-1752324730-1.0.1.1-7WiXGI5e.vhUhl4FLNuj_AabyQ6pTE8vBJQdeoQo0fU"+ window._cf_chl_opt.cOgUHash);a.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(a);}());</script></body></html>