CINXE.COM
Just a moment...
<!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;max-width:60rem;padding-left:1.5rem}@media (width <= 720px){.main-content{margin-top:4rem}}.h2{font-size:1.5rem;font-weight:500;line-height:2.25rem}@media (width <= 720px){.h2{font-size:1.25rem;line-height:1.5rem}}#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="390"></head><body class="no-js"><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: "dl.acm.org",cType: 'managed',cRay: '913a54f7ac2e3dde',cH: 'y7rX5J9YnjhGis6mVaoprOZtFSrsp1F9giM6QB4yCPM-1739843065-1.2.1.1-8V7oXTwdwupK3JQza5eXu2pPNlwZX_n1aGDNYIqobt8pKxhxOrLYyjTIVk6HEnXH',cUPMDTk: "\/doi\/10.1145\/291469.291476?__cf_chl_tk=KmY0O2MM.I3pHKNqXdG0C5AeikPOB1m4ZYsX.waNky0-1739843065-1.0.1.1-xbquyu6dE6ghjUbXyWzq0.K1Efdritbl4ZjZc82KoIg",cFPWv: 'g',cITimeS: '1739843065',cTTimeMs: '1000',cMTimeMs: '390000',cTplC: 0,cTplV: 5,cTplB: 'cf',cK: "",fa: "\/doi\/10.1145\/291469.291476?__cf_chl_f_tk=KmY0O2MM.I3pHKNqXdG0C5AeikPOB1m4ZYsX.waNky0-1739843065-1.0.1.1-xbquyu6dE6ghjUbXyWzq0.K1Efdritbl4ZjZc82KoIg",md: ".8bxtff.myXMzAIjgxgByJDlbfNkfOZ9qdiUrGp2qo4-1739843065-1.2.1.1-GF1HjrCK0FhLWfFIrDh2sjoGsKaE1Yis0eKXvCsHlJJfHB_R8l.fxCirB_z6DYGPjn_1vJVdsRPy23fVsUXAkF5xLQs6gLu9rWQPXiYmoIJDDYA3mJxbrHRlfOPe3nogNQztz47vO65ZgZas6xwm8LESBBqlhi88LGwvxBLwwQlpCl37UAMW9MqDcXiEkoDOY4NCIipji3Nvxd.kscMNw3jlDMPzKyxJ4lGPpTd3caYhH5oXPc6y2bVTLpXV8b904CYRs4_ICOHfyGzslgd5H4NI3DeiTtUwvsd_x5KhsAGaMZQE6Z4.d1iVTlUODXjIZpHZBjIXOvjMIAEhkd_lcSSOwgsbCx.JEBPOVSERhVAgHtlE4Wup7OpR4Wu_Jz9zmkFHtWbz5QBUQhSmjy0rncUvhKuczwz1CzAE91iwBXokwNKHtupDAHw0z38QaNUNe2NnCvAKCQZS_Xog5XjFVPGb7OgTsDEvhGWRm5we7dL1BH0nRS40pZlD2UDjyOC2IlbrznYhp2inCSv6Jk8YrEm3VKqNEZwLTDWYDWNJtlBDhqhZjbguqHVtE0IXVHeXY_ZwntNZVLaqN7zXAegIrHU31JDLLMJj0XEkvDl3540yRkVnK8fv_wvTBM4lx3WQx_HGH7BYkfaocj6KOh3RM1c2EkJy25y4STNgliKk7wE3idnIZNrhQ4dHh4YlMis_RDP.pFLYMscOt2uMFidSPrpd5sLlLCG1oU7hY6TOdId9ohiTKY6_HPhiGSppGL1bBBU_2h2ETjwyPVQbRxU.dPRxN0FUmI1cq.F0Xuco1X8GIC5sE0qdvS8T2mWmhAX7sVGJNV4CMtmUTXbo9drPea_GKPdEiGfJxWQpnaVj9yYl0CDWMWT3klzN1_J1dyjF720RalRXNm_PgQvZrkaCCfhxBmuDcOsD0nFploJCg0hmnW.upJCcQPmnF4Sjl7.NRecRbNaiRB.BVxsBpRwBKEj_rq3DJoUhNfcyLcBQTtd66kwJyOqTbhstXUje_ZDHZajs9koRamRMf8VD84tboLTKv6Pzi8h8apadAClu6fWVATM2.QVqTzMgouq7lcVJthAzkXG0PLl753v2LjURIye8594WbnEuM10xeiglQ2g4QV0I0WceTsMGqnaearBdJdsCvTLqfoi1MmOWhEgqRFCKUpfaqwva_S6ib8MX0JT8bCje6sYR9M432Oh_QtYbUN4zYN97q49BmgCYo1nqU3dbHjnoYRqEXuEpgrPtVLCaS06xwJ_JIaL2VW7crUv.AddhqrtuCbICxxPWFHjMkrAJcSud5adj56FQd.Odmsh2Aa8eL01cMeaIinZF1r_yry1WM8axXn0BQG_HIAB_NsMPPsqxuVK.7pa1qVas9moNNVrSCYW1IWEGgGfZnbaCslMzwiC.gvhr6UqgNd_YCPPCPCV0hLAztLdXF59EQVYLG1U4HvpiQ2XWIjpgigGzhjrColY0abcBznWFAxKmC6j3KNTGNgRNNKo2ngURNcScfqO4ZcW_kyd6CorLu3rYXE9oZ03yZxKsYmrzAtaxJawuaFOcVoqrOxJVmU2LoW8CPM62wzsbRGPmhpvfT6hM5IOmKypC2JgcGYJNNlTqADn46wwGuCGn_fMKWJF1gPXeBesCt_nZu6kDrZ.YXHH_Tw5w9ca9n9bZls31ifJknyhH4eU7hmCNEicrQR_YRNCdy.qVv5LFCTEme7E.9vb_IsZ4GdXSrvl6EoYEiVyQDkPCVRu7LxRftSxhLXDzU0c31QKguZ89bFzuPXXSG6QyF58.mlrk93pXll.txbg8JnGdbparENlTfx5q6uw3pz47KXxhbQynrZB30ywZjItf96YBLVulLMqMtY5HgapYKaJa7nhejNcsHfpTY7LeBlW_BBlxJQMzFgscXf5t79ywwANSbUHlI57ASDfMfbJ1Dp0IoXj9XGL9F_4sqmAabyMrcvRe317eZtmsqPVvwBtCiD9UuH8dzuF4MlzqdeaVEwh5.3ncX1JdUOsFzV.6a_Sdfkdd7XWUuLrBiKtG4C6i8lqS08Hh4KZI0GaAwAZxKXUmyLD3IBozpLIfXtRdqfpVb.LQuNdgPHAjrHEjPglFo9JpJANsp4wc_0p4.wCnYKSs.vxK7MQdDUevUULqorHTVIEwhRMmBkcoVh0rZaBIOGBFKEKPto2UQ0f8yWEvxHHJodd5ztLstF2MEwy_Wuz3oTCWCdCZwd8Lc62.4mTndWGfvEkRT56TBz3OH0cEBJZ3SZQh2DN.59sRC9ljksB0ngMgGLXXeKpTrPMcm0AgMQ8SN1eCS4UC_pdeiOHYQSkDMo4BPU5Bdf08UdXWCU3tq41gCt6KDXe9pfxkEHbabwCcI09z7FVnrfwKu0Q4B4lbP1hceriA7rTbr72JZyNcu3xXpT9aYWtmIDIUD1_jLP7ki_GRj3acbX.nWh2PXKdGv.9y3Fywooytr08Kn9v0fu074faeJvG2.iSyFopeo3RcFRkg8gDCXOhlR9uC_YOOF5Dt3.WUkZ37LpPmmzqlehngMa8U1dCHZ9xxGDd.nvVE4kUvr8axNu74mWlPdxx1f2KKvLZ44YyjkvH.wEk",mdrd: "l9Dp3x5tFCHRD77DmSslaL9d4zfgz33_4Gw7A9cVWWo-1739843065-1.2.1.1-MmkKi28ICZ5VZuzymc0KM3xhOQPryRSwO6INI2oUjUlJFpX1n3zow.pMLOdzi5y5NObwKKXxXb5f.7P9UQKAWbq4QY7_e3SpXzUOyPoINZ8KBEtNcbiAhSwI0NMjaqU4El1GbmoSmszYJo1hhRi03N5467t69273zyaGhxPR97jg.Rx1etL2HBazHzTTIcq1Q1K.GLPzqFpJZG5UpsEBK2mLZwyTPdEMavjPFr80x0s2vviPuHp1bd2FiXnyDGvZaGG62Seus3cNEeXvsOfu5E9oCg8OEtjwAZta3ulvqEKJTWyn0qfVFNbWN0T5fypYP5VFmnZXFZIppLI1gtWx7VMEnnCNUN.RGEBZ7RqKlIHoMS3Wus.4vh2DnnEmALG7NEog_zpru1BJdRUtdyKLDpmD2zymzQI_nkOnftwK77YWW4A166A6czhuFrcxjY9BX25IuyB4Y5YWZ07cP7RFPaEmuw3LQJAq_fycL63A_0734Oiot13DMiyHE3Tl1RHa9t.Nx1icQPSMD2hp.jwHJYLJhVCDZ9G2F4ZfsHsUw3u_6Zn_YrGlm4lO7RIaeWJWJU5Sv3mCDMj84AwbZ1EL221GqofPrXdWVdp1DGDHysITAGwqAYSKacc2F2dWoL5LtvF9fDA3fpJLkSv8p4FIJqfJPoMdVWxETvKIVmLStv_0HnkXFS.Ii3w_cXkxduKMT6p0qINGc2IAo6.9JMuUVRwO2XY8AlUMXgNtBQUpQ7czseDV90YrPANoaRbqaA9lFdiS_Wr91pUoLFEbaJv8tomIpRoB.r8giIS7L5C6fQl4mzf0EZJX2UTD9A9tk4HcMppPzRw5gRvh9voMWyi_lwbhCF8cvquSmVvnoLoKLqU2fVB57v3cT5_35Tlmr_ITJVT0v2bng4eH4SSLOCWV82StdexBgozwTl3TvXxkGqD6z.C0RWJxCpTLOsc1kiQGUlhcg8JX0gKxft1E_rnROE22MZkK3yzwrAUgSWyX9ljkzLhQU8XDqQnEgShMdyUOiTqqWbZa2l9gTRnBdf_n7r8HNkLG1Gc8_2yfeuPKJH1RN5zikwj5x734eUwgeexGS92CDcFpwi8tAxJKT8iSQpgjpnyOIKkhXT_VGvdrlTD1lv4rzdJmBiQK68a.FAfnxz3sHOyHgyNYFzBjgEpsDnmGzVQmblu4CzecQqpPHMagDIFksmzOrpe1o8w6y0iCLqiyc5DMx5vpSCeK6Nm4RQ61k8b84eypZJEITTGsL.BiQyv8WcbIAmPXRFfmN9OicnZRQoqXJfrXCQKhnePRy0X__VyODIHyrh6AhS_OvhaocQ_NFp5qEUvCXaTImrZwQiLRVJrD9.9SGeaZT_XERjrYjJwmoG7c5iINxICicKrQgEPeDWtu8CFCf99xd.D1BQ3aFxGFs2QTFAM4NUU1QXIb.OPDWu4n8WhwlAsSv_ksLgIUcEWimWuidRKoFxPYxbEd9V_iVCQkVNr5RAUK4640seAvLXW4rrP3J56xAFbJzhCuGMgA_kWPtLg0UZpw7arP2HEvC4BkO2i4lQs6IxdarV4qN3.1JpY3DYyKuWbMuLTawR1iAEYDWgY983dKnBaTL8azuIOECKUT5qW8nnJpI1A0g1tC_Bmx9lnyh2di2rvb3IRUuJL16eNBWFLbG5OHp7AErCjvezcnbWVlkAvOVrQdkPHHi0N0OLkY60_xWgRUNZ4ZrgoDanChJ_J3UYci2QKIU5dfqNpp9BAlCoOOo8vx5d9mes4sOhTvdg5TxfRGXpFqCxMbkWVTXFzO73.ijxVdGqPJu9QSm7UUnC6PTTH.tByGSrQoqrTfBCEu3tDJ5pozxZ1dyq_CH.jAx4mZgXsff81MNk5sCIbYwsshMBHZvt_vFqP3WUjyv23DVcvxkAep1.JJYUs0Y1O8054DIRAA5OS8Yx4BqZJWerqSASQRcvloVW632nE3Iy4"};var cpo = document.createElement('script');cpo.src = '/cdn-cgi/challenge-platform/h/g/orchestrate/chl_page/v1?ray=913a54f7ac2e3dde';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, "\/doi\/10.1145\/291469.291476?__cf_chl_rt_tk=KmY0O2MM.I3pHKNqXdG0C5AeikPOB1m4ZYsX.waNky0-1739843065-1.0.1.1-xbquyu6dE6ghjUbXyWzq0.K1Efdritbl4ZjZc82KoIg" + window._cf_chl_opt.cOgUHash);cpo.onload = function() {history.replaceState(null, null, ogU);}}document.getElementsByTagName('head')[0].appendChild(cpo);}());</script></body></html>