squiggle.c

Self-contained Monte Carlo estimation in C99
Log | Files | Refs | README

how-does-xorshift32-works (185284B)


      1 <!DOCTYPE html>
      2 
      3 
      4     <html itemscope itemtype="https://schema.org/QAPage" class="html__responsive " lang="en">
      5 
      6     <head>
      7 
      8         <title>c - How does XorShift32 works? - Stack Overflow</title>
      9         <link rel="shortcut icon" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/favicon.ico?v=ec617d715196">
     10         <link rel="apple-touch-icon" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a">
     11         <link rel="image_src" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a"> 
     12         <link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml">
     13         <link rel="canonical" href="https://stackoverflow.com/questions/53886131/how-does-xorshift32-works" />
     14     <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0">
     15         <meta property="og:type" content= "website" />
     16         <meta property="og:url" content="https://stackoverflow.com/questions/53886131/how-does-xorshift32-works"/>
     17         <meta property="og:site_name" content="Stack Overflow" />
     18         <meta property="og:image" itemprop="image primaryImageOfPage" content="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon@2.png?v=73d79a89bded" />
     19         <meta name="twitter:card" content="summary"/>
     20         <meta name="twitter:domain" content="stackoverflow.com"/>
     21         <meta name="twitter:title" property="og:title" itemprop="name" content="How does XorShift32 works?" />
     22         <meta name="twitter:description" property="og:description" itemprop="description" content="I have this homework where i need to implement xorshift32(i can t use anything else) so i can generate some numbers but i don t understand how the algorithm works or how to implement it. &#xA;&#xA;I am try..." />
     23     <script id="webpack-public-path" type="text/uri-list">https://cdn.sstatic.net/</script>
     24     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
     25     <script defer src="https://cdn.sstatic.net/Js/third-party/npm/@stackoverflow/stacks/dist/js/stacks.min.js?v=d5f780ae3281"></script>
     26     <script src="https://cdn.sstatic.net/Js/stub.en.js?v=fa8bcab580cd"></script>
     27 
     28     <link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Shared/stacks.css?v=5d83236da4e2">
     29     <link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Sites/stackoverflow/primary.css?v=89d00f6d5eec">
     30 
     31 
     32     
     33             <link rel="alternate" type="application/atom+xml" title="Feed for question &#x27;How does XorShift32 works?&#x27;" href="/feeds/question/53886131">
     34         <script>
     35             StackExchange.ready(function () {
     36 
     37                     StackExchange.using("snippets", function () {
     38                         StackExchange.snippets.initSnippetRenderer();
     39                     });
     40                     
     41                 StackExchange.using("postValidation", function () {
     42                     StackExchange.postValidation.initOnBlurAndSubmit($('#post-form'), 2, 'answer');
     43                 });
     44 
     45 
     46                 StackExchange.question.init({showAnswerHelp:true,showTrendingSortLaunchPopover:false,showTrendingSortPostLaunchPopover:false,totalCommentCount:4,shownCommentCount:4,enableTables:true,questionId:53886131});
     47 
     48                 styleCode();
     49 
     50                     StackExchange.realtime.subscribeToQuestion('1', '53886131');
     51                     StackExchange.using("gps", function () { StackExchange.gps.trackOutboundClicks('#content', '.js-post-body'); });
     52 
     53 
     54             });
     55         </script>
     56 
     57         
     58         
     59         
     60         <link rel="stylesheet" type="text/css" href="https://cdn.sstatic.net/Shared/Channels/channels.css?v=64256d36becc">
     61 
     62         
     63         
     64 
     65 
     66     <script type="application/json" data-role="module-args" data-module-name="Shared/options.mod">{"options":{"locale":"en","serverTime":1701628339,"routeName":"Questions/Show","stackAuthUrl":"https://stackauth.com","networkMetaHostname":"meta.stackexchange.com","site":{"name":"Stack Overflow","description":"Q\u0026A for professional and enthusiast programmers","isNoticesTabEnabled":true,"enableNewTagCreationWarning":true,"insertSpaceAfterNameTabCompletion":false,"id":1,"cookieDomain":".stackoverflow.com","childUrl":"https://meta.stackoverflow.com","negativeVoteScoreFloor":null,"enableSocialMediaInSharePopup":true,"protocol":"https"},"user":{"fkey":"d8a1f9f0d8241e1b245c6f93920897c7b1457a3e09f1f846dafb3a27efbe14a3","tid":"8a770d33-a55e-48cc-a9f4-463e18d8e6eb","rep":0,"isAnonymous":true,"isAnonymousNetworkWide":true,"ab":{"job_search_status":{"v":"ai_policy_banner_v1","g":1}}},"events":{"postType":{"question":1},"postEditionSection":{"title":1,"body":2,"tags":3}}}}</script>
     67 <script type="application/json" data-role="module-args" data-module-name="Shared/settings.mod">{"settings":{"userMessaging":{"showNewFeatureNotice":true},"tags":{},"subscriptions":{"defaultBasicMaxTrueUpSeats":250,"defaultFreemiumMaxTrueUpSeats":50,"defaultMaxTrueUpSeats":1000},"snippets":{"renderDomain":"stacksnippets.net","snippetsEnabled":true},"site":{"allowImageUploads":true,"enableImgurHttps":true,"enableUserHovercards":true,"forceHttpsImages":true,"stacksEditorPreviewEnabled":true,"styleCode":true},"search":{},"questions":{"enableQuestionTitleLengthLiveWarning":true,"enableSavesFeature":true,"maxTitleSize":150,"questionTitleLengthStartLiveWarningChars":50},"intercom":{"appId":"inf0secd","enableJavascriptImplementationFor":true,"hostBaseUrl":"https://stacksnippets.net"},"paths":{"jQueryUICSSPath":"https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/themes/smoothness/jquery-ui.css","jQueryUIJSPath":"https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js"},"mentions":{"maxNumUsersInDropdown":50},"markdown":{"enableTables":true},"legal":{"oneTrustConfigId":"c3d9f1e3-55f3-4eba-b268-46cee4c6789c"},"flags":{"allowRetractingCommentFlags":true,"allowRetractingFlags":true},"elections":{"opaVoteResultsBaseUrl":"https://www.opavote.com/results/"},"comments":{},"accounts":{"currentPasswordRequiredForChangingStackIdPassword":true}}}</script>
     68 <script>StackExchange.init();</script>
     69 
     70     <script>
     71         StackExchange.using.setCacheBreakers({"Js/adops.en.js":"6da43f5e0a84","Js/ask.en.js":"","Js/begin-edit-event.en.js":"20edbaccceae","Js/copy-transpiled.en.js":"d31dc7eba3bc","Js/events.en.js":"","Js/explore-qlist.en.js":"2b1f34938b8b","Js/full-anon.en.js":"192ecaea0c9d","Js/full.en.js":"efb11489a333","Js/highlightjs-loader.en.js":"510e2f94c2bf","Js/inline-tag-editing.en.js":"3e8cc64ee9d6","Js/keyboard-shortcuts.en.js":"107c2ac31497","Js/markdown-it-loader.en.js":"5818ef89ff9d","Js/mentions-transpiled.en.js":"36b8cabd2c12","Js/moderator.en.js":"bd04c908e875","Js/postCollections-transpiled.en.js":"ea1228154a76","Js/post-validation.en.js":"8fd6c83cea6c","Js/question-editor.en.js":"","Js/review-v2-transpiled.en.js":"7b6b513b5808","Js/revisions.en.js":"47b4d5ac24c9","Js/stacks-editor.en.js":"45ddc00eb16e","Js/tageditor.en.js":"dc13482a67f8","Js/tageditornew.en.js":"b11be3ff22c6","Js/tagsuggestions.en.js":"bd6ec908f2a7","Js/unlimited-transpiled.en.js":"f26a1d5f3365","Js/wmd.en.js":"033a0412fcae","Js/snippet-javascript-codemirror.en.js":"ae1dcf38deb7"});
     72         StackExchange.using("gps", function() {
     73              StackExchange.gps.init(false);
     74         });
     75     </script>
     76     <noscript id="noscript-css"><style>body,.s-topbar{margin-top:1.9em}</style></noscript>
     77     </head>
     78     <body class="question-page unified-theme">
     79     <div id="notify-container"></div>
     80     <div id="custom-header"></div>
     81         
     82 
     83 <header class="s-topbar ps-fixed t0 l0 js-top-bar">
     84 	<div class="s-topbar--container">
     85 			<a href="#" class="s-topbar--menu-btn js-left-sidebar-toggle" role="menuitem" aria-haspopup="true" aria-controls="left-sidebar" aria-expanded="false"><span></span></a>
     86 			<div class="topbar-dialog leftnav-dialog js-leftnav-dialog dno">
     87 				<div class="left-sidebar js-unpinned-left-sidebar" data-can-be="left-sidebar" data-is-here-when="sm"></div>
     88 			</div>
     89 				<a href="https://stackoverflow.com" class="s-topbar--logo js-gps-track"
     90 		   data-gps-track="top_nav.click({is_current:false, location:2, destination:8})">
     91 					<span class="-img _glyph">Stack Overflow</span>
     92 				</a>
     93 
     94 
     95 
     96 			<ol class="s-navigation" role="presentation">
     97 
     98 					<li class="md:d-none">
     99 						<a href="https://stackoverflow.co/" class="s-navigation--item js-gps-track"
    100 				   data-gps-track="top_nav.products.click({location:2, destination:7})"
    101 				   data-ga="[&quot;top navigation&quot;,&quot;about menu click&quot;,null,null,null]">About</a>
    102 					</li>
    103 
    104 				<li>
    105 					<a href="#"
    106 				   class="s-navigation--item js-gps-track js-products-menu"
    107 				   aria-controls="products-popover"
    108 				   data-controller="s-popover"
    109 				   data-action="s-popover#toggle"
    110 				   data-s-popover-placement="bottom"
    111 				   data-s-popover-toggle-class="is-selected"
    112 				   data-gps-track="top_nav.products.click({location:2, destination:1})"
    113 				   data-ga="[&quot;top navigation&quot;,&quot;products menu click&quot;,null,null,null]">
    114 						Products
    115 					</a>
    116 				</li>
    117 
    118 					<li class="md:d-none">
    119 						<a href="https://stackoverflow.co/teams/" class="s-navigation--item js-gps-track"
    120 				   data-gps-track="top_nav.products.click({location:2, destination:7})"
    121 				   data-ga="[&quot;top navigation&quot;,&quot;learn more - teams&quot;,null,null,null]">For Teams</a>
    122 					</li>
    123 			</ol>
    124 			<div class="s-popover ws2 mtn2 p0"
    125 			 id="products-popover"
    126 			 role="menu"
    127 			 aria-hidden="true">
    128 				<div class="s-popover--arrow"></div>
    129 				<ol class="list-reset s-anchors s-anchors__inherit">
    130 					<li class="m6">
    131 						<a href="/questions" class="bar-sm p6 d-block h:bg-black-225 js-gps-track"
    132 					   data-gps-track="top_nav.products.click({location:2, destination:2})"
    133 					   data-ga="[&quot;top navigation&quot;,&quot;public qa submenu click&quot;,null,null,null]">
    134 							<span class="fs-body1 d-block">Stack Overflow</span>
    135 							<span class="fs-caption d-block fc-black-400">Public questions &amp; answers</span>
    136 						</a>
    137 					</li>
    138 					<li class="m6">
    139 						<a href="https://stackoverflow.co/teams/" class="bar-sm p6 d-block h:bg-black-225 js-gps-track"
    140 					   data-gps-track="top_nav.products.click({location:2, destination:3})"
    141 					   data-ga="[&quot;top navigation&quot;,&quot;teams submenu click&quot;,null,null,null]">
    142 							<span class="fs-body1 d-block">Stack Overflow for Teams</span>
    143 							<span class="fs-caption d-block fc-black-400">Where developers &amp; technologists share private knowledge with coworkers</span>
    144 						</a>
    145 					</li>
    146 					<li class="m6">
    147 						<a href="https://stackoverflow.co/talent/" class="bar-sm p6 d-block h:bg-black-225 js-gps-track"
    148 					   data-gps-track="top_nav.products.click({location:2, destination:5})"
    149 					   data-ga="[&quot;top navigation&quot;,&quot;talent submenu click&quot;,null,null,null]">
    150 							<span class="fs-body1 d-block">Talent</span>
    151 							<span class="fs-caption d-block fc-black-400">
    152 								Build your employer brand
    153 							</span>
    154 						</a>
    155 					</li>
    156 					<li class="m6">
    157 						<a href="https://stackoverflow.co/advertising/" class="bar-sm p6 d-block h:bg-black-225 js-gps-track"
    158 					   data-gps-track="top_nav.products.click({location:2, destination:6})"
    159 					   data-ga="[&quot;top navigation&quot;,&quot;advertising submenu click&quot;,null,null,null]">
    160 							<span class="fs-body1 d-block">Advertising</span>
    161 							<span class="fs-caption d-block fc-black-400">Reach developers &amp; technologists worldwide</span>
    162 						</a>
    163 					</li>
    164 					<li class="bt bc-black-200 py6 px6 bbr-md">
    165 						<a href="https://stackoverflow.co/labs/" class="bar-sm p6 d-block h:bg-black-225 js-gps-track"
    166 					   data-gps-track="top_nav.products.click({location:2, destination:7})"
    167 					   data-ga="[&quot;top navigation&quot;,&quot;labs submenu click&quot;,null,null,null]">
    168 						 	<span class="fs-body1 d-block">Labs</span>
    169 							<span class="fs-caption d-block fc-black-400">The future of collective knowledge sharing</span>
    170 						 </a>
    171 					</li>
    172 					<li class="bg-black-100 bt bc-black-200 py6 px6 bbr-md">
    173 						<a href="https://stackoverflow.co/" class="fc-black-400 d-block py6 px6 h:fc-black-600 js-gps-track"
    174 					   data-gps-track="top_nav.products.click({location:2, destination:7})"
    175 					   data-ga="[&quot;top navigation&quot;,&quot;about submenu click&quot;,null,null,null]">About the company</a>
    176 					</li>
    177 				</ol>
    178 			</div>
    179 
    180 
    181 		        <form id="search" role="search" action=/search class="s-topbar--searchbar js-searchbar " autocomplete="off">
    182                         <div class="s-topbar--searchbar--input-group">
    183                             <input name="q"
    184                                    type="text"
    185                                    role="combobox"
    186                                    placeholder="Search&#x2026;"
    187                                    value=""
    188                                    autocomplete="off"
    189                                    maxlength="240"
    190                                    class="s-input s-input__search js-search-field "
    191                                    aria-label="Search"
    192                                    aria-controls="top-search" 
    193                                    data-controller="s-popover"
    194                                    data-action="focus->s-popover#show"
    195                                    data-s-popover-placement="bottom-start" />
    196                             <svg aria-hidden="true" class="s-input-icon s-input-icon__search svg-icon iconSearch" width="18" height="18"  viewBox="0 0 18 18"><path  d="m18 16.5-5.14-5.18h-.35a7 7 0 1 0-1.19 1.19v.35L16.5 18l1.5-1.5ZM12 7A5 5 0 1 1 2 7a5 5 0 0 1 10 0Z"/></svg>
    197                             <div class="s-popover p0 wmx100 wmn4 sm:wmn-initial js-top-search-popover" id="top-search" role="menu">
    198     <div class="s-popover--arrow"></div>
    199     <div class="js-spinner p24 d-flex ai-center jc-center d-none">
    200         <div class="s-spinner s-spinner__sm fc-orange-400">
    201             <div class="v-visible-sr">Loading&#x2026;</div>
    202         </div>
    203     </div>
    204 
    205     <span class="v-visible-sr js-screen-reader-info"></span>
    206     <div class="js-ac-results overflow-y-auto hmx3 d-none"></div>
    207 
    208     <div class="js-search-hints" aria-describedby="Tips for searching"></div>
    209 </div>
    210                         </div>
    211                 </form>
    212 		
    213 <nav class="h100 ml-auto overflow-x-auto pr12">
    214     <ol class="s-topbar--content" role="menubar">
    215     
    216     
    217     
    218         <li class="js-topbar-dialog-corral" role="presentation">
    219                 
    220 
    221     <div class="topbar-dialog siteSwitcher-dialog dno" role="menu">
    222         <div class="header fw-wrap">
    223             <h3 class="flex--item">
    224                 <a href="https://stackoverflow.com">current community</a>
    225             </h3>
    226             <div class="flex--item fl1">
    227                 <div class="ai-center d-flex jc-end">
    228                     <button
    229                         class="js-close-button s-btn s-btn__muted p0 ml8 d-none sm:d-block"
    230                         type="button"
    231                         aria-label="Close"
    232                     >
    233                         <svg aria-hidden="true" class="svg-icon iconClear" width="18" height="18"  viewBox="0 0 18 18"><path  d="M15 4.41 13.59 3 9 7.59 4.41 3 3 4.41 7.59 9 3 13.59 4.41 15 9 10.41 13.59 15 15 13.59 10.41 9 15 4.41Z"/></svg>
    234                     </button>
    235                 </div>
    236             </div>
    237         </div>
    238         <div class="modal-content bg-blue-200 current-site-container">
    239             <ul class="current-site ">
    240                     <li class="d-flex">
    241                             <div class="fl1">
    242                 <a href="https://stackoverflow.com"
    243        class="current-site-link site-link js-gps-track d-flex gs8 gsx"
    244        data-id="1"
    245        data-gps-track="site_switcher.click({ item_type:3 })">
    246         <div class="favicon favicon-stackoverflow site-icon flex--item" title="Stack Overflow"></div>
    247         <span class="flex--item fl1">
    248             Stack Overflow
    249         </span>
    250     </a>
    251 
    252     </div>
    253     <div class="related-links">
    254             <a href="https://stackoverflow.com/help" class="js-gps-track" data-gps-track="site_switcher.click({ item_type:14 })">help</a>
    255             <a href="https://chat.stackoverflow.com/?tab=site&amp;host=stackoverflow.com" class="js-gps-track" data-gps-track="site_switcher.click({ item_type:6 })">chat</a>
    256     </div>
    257 
    258                     </li>
    259                     <li class="related-site d-flex">
    260                             <div class="L-shaped-icon-container">
    261         <span class="L-shaped-icon"></span>
    262     </div>
    263 
    264                             <a href="https://meta.stackoverflow.com"
    265        class=" site-link js-gps-track d-flex gs8 gsx"
    266        data-id="552"
    267        data-gps-track="site.switch({ target_site:552, item_type:3 }),site_switcher.click({ item_type:4 })">
    268         <div class="favicon favicon-stackoverflowmeta site-icon flex--item" title="Meta Stack Overflow"></div>
    269         <span class="flex--item fl1">
    270             Meta Stack Overflow
    271         </span>
    272     </a>
    273 
    274                     </li>
    275             </ul>
    276         </div>
    277 
    278         <div class="header" id="your-communities-header">
    279             <h3>
    280 your communities            </h3>
    281 
    282         </div>
    283         <div class="modal-content" id="your-communities-section">
    284 
    285                 <div class="call-to-login">
    286 <a href="https://stackoverflow.com/users/signup?ssrc=site_switcher&amp;returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f53886131%2fhow-does-xorshift32-works" class="login-link js-gps-track" data-gps-track="site_switcher.click({ item_type:10 })">Sign up</a> or <a href="https://stackoverflow.com/users/login?ssrc=site_switcher&amp;returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f53886131%2fhow-does-xorshift32-works" class="login-link js-gps-track" data-gps-track="site_switcher.click({ item_type:11 })">log in</a> to customize your list.                </div>
    287         </div>
    288 
    289         <div class="header">
    290             <h3><a href="https://stackexchange.com/sites">more stack exchange communities</a>
    291             </h3>
    292             <a href="https://stackoverflow.blog" class="float-right">company blog</a>
    293         </div>
    294         <div class="modal-content">
    295                 <div class="child-content"></div>
    296         </div>        
    297     </div>
    298 
    299         </li>
    300     
    301             <li role="none"><button class="s-topbar--item s-btn s-btn__icon s-btn__muted d-none sm:d-inline-flex js-searchbar-trigger" role="menuitem" aria-label="Search" aria-haspopup="true" aria-controls="search" title="Click to show search"><svg aria-hidden="true" class="svg-icon iconSearch" width="18" height="18"  viewBox="0 0 18 18"><path  d="m18 16.5-5.14-5.18h-.35a7 7 0 1 0-1.19 1.19v.35L16.5 18l1.5-1.5ZM12 7A5 5 0 1 1 2 7a5 5 0 0 1 10 0Z"/></svg></button></li>
    302                         <li role="none">
    303                             <a href="https://stackoverflow.com/users/login?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f53886131%2fhow-does-xorshift32-works" class="s-topbar--item s-topbar--item__unset s-btn s-btn__outlined ws-nowrap js-gps-track" role="menuitem" rel="nofollow"
    304                data-gps-track="login.click" data-ga="[&quot;top navigation&quot;,&quot;login button click&quot;,null,null,null]">Log in</a>
    305                         </li>
    306                         <li role="none"><a href="https://stackoverflow.com/users/signup?ssrc=head&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f53886131%2fhow-does-xorshift32-works" class="s-topbar--item s-topbar--item__unset ml4 s-btn s-btn__filled ws-nowrap" role="menuitem" rel="nofollow" data-ga="[&quot;sign up&quot;,&quot;Sign Up Navigation&quot;,&quot;Header&quot;,null,null]">Sign up</a></li>
    307     </ol>
    308 </nav>
    309 
    310 
    311 	</div>
    312 </header>
    313 
    314 	<script>
    315 		StackExchange.ready(function () { StackExchange.topbar.init(); });
    316 		StackExchange.scrollPadding.setPaddingTop(50, 10); 
    317 	</script>
    318 
    319 
    320 
    321 
    322 
    323     <div class="container">
    324                 
    325 
    326 <div id="left-sidebar" data-is-here-when="md lg" class="left-sidebar js-pinned-left-sidebar ps-relative">
    327     <div class="left-sidebar--sticky-container js-sticky-leftnav">
    328         <nav role="navigation">
    329             <ol class="nav-links">
    330                 <li>
    331                     <ol class="nav-links">
    332                         
    333 
    334 <li class="ps-relative"  aria-current="false">
    335 
    336 
    337     <a
    338        href="/"
    339        class="pl8 js-gps-track nav-links--link -link__with-icon"
    340        
    341        data-gps-track="top_nav.click({is_current: false, location:2, destination:8,  has_activity_notification:False})"
    342        aria-controls="" data-controller="" data-s-popover-placement="right"
    343        aria-current="false"
    344        data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never"
    345     >
    346 <svg aria-hidden="true" class="svg-icon iconHome" width="18" height="18"  viewBox="0 0 18 18"><path  d="M15 10v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5H0l9-9 9 9h-3Zm-8 1v6h4v-6H7Z"/></svg>            <span class="-link--channel-name pl6">Home</span>
    347     </a>
    348 </li>
    349 
    350 
    351                         
    352 
    353 <li class="ps-relative  youarehere"  aria-current="true">
    354 
    355 
    356     <a id="nav-questions"
    357        href="/questions"
    358        class="pl8 js-gps-track nav-links--link -link__with-icon"
    359        
    360        data-gps-track="top_nav.click({is_current: true, location:2, destination:1,  has_activity_notification:False})"
    361        aria-controls="" data-controller="" data-s-popover-placement="right"
    362        aria-current="false"
    363        data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never"
    364     >
    365 <svg aria-hidden="true" class="svg-icon iconQuestion" width="18" height="18"  viewBox="0 0 18 18"><path  d="m4 15-3 3V4c0-1.1.9-2 2-2h12c1.09 0 2 .91 2 2v9c0 1.09-.91 2-2 2H4Zm7.75-3.97c.72-.83.98-1.86.98-2.94 0-1.65-.7-3.22-2.3-3.83a4.41 4.41 0 0 0-3.02 0 3.8 3.8 0 0 0-2.32 3.83c0 1.29.35 2.29 1.03 3a3.8 3.8 0 0 0 2.85 1.07c.62 0 1.2-.11 1.71-.34.65.44 1 .68 1.06.7.23.13.46.23.7.3l.59-1.13a5.2 5.2 0 0 1-1.28-.66Zm-1.27-.9a5.4 5.4 0 0 0-1.5-.8l-.45.9c.33.12.66.29.98.5-.2.07-.42.11-.65.11-.61 0-1.12-.23-1.52-.68-.86-1-.86-3.12 0-4.11.8-.9 2.35-.9 3.15 0 .9 1.01.86 3.03-.01 4.08Z"/></svg>            <span class="-link--channel-name pl6">Questions</span>
    366     </a>
    367 </li>
    368 
    369 
    370 
    371 
    372                         
    373 
    374 <li class="ps-relative"  aria-current="false">
    375 
    376 
    377     <a
    378        href="/tags"
    379        class="pl8 js-gps-track nav-links--link -link__with-icon"
    380        
    381        data-gps-track="top_nav.click({is_current: false, location:2, destination:2,  has_activity_notification:False})"
    382        aria-controls="" data-controller="" data-s-popover-placement="right"
    383        aria-current="false"
    384        data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never"
    385     >
    386 <svg aria-hidden="true" class="svg-icon iconTags" width="18" height="18"  viewBox="0 0 18 18"><path  d="M9.24 1a3 3 0 0 0-2.12.88l-5.7 5.7a2 2 0 0 0-.38 2.31 3 3 0 0 1 .67-1.01l6-6A3 3 0 0 1 9.83 2H14a3 3 0 0 1 .79.1A2 2 0 0 0 13 1H9.24Z" opacity=".4"/><path  d="M9.83 3a2 2 0 0 0-1.42.59l-6 6a2 2 0 0 0 0 2.82L6.6 16.6a2 2 0 0 0 2.82 0l6-6A2 2 0 0 0 16 9.17V5a2 2 0 0 0-2-2H9.83ZM12 9a2 2 0 1 1 0-4 2 2 0 0 1 0 4Z"/></svg>            <span class="-link--channel-name pl6">Tags</span>
    387     </a>
    388 </li>
    389 
    390                         
    391                         <li class="pb24"></li>
    392 
    393 
    394                         
    395 
    396 <li class="ps-relative"  aria-current="false">
    397 
    398 
    399     <a id="nav-users"
    400        href="/users"
    401        class="pl8 js-gps-track nav-links--link -link__with-icon"
    402        
    403        data-gps-track="top_nav.click({is_current: false, location:2, destination:3,  has_activity_notification:False})"
    404        aria-controls="" data-controller="" data-s-popover-placement="right"
    405        aria-current="false"
    406        data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never"
    407     >
    408 <svg aria-hidden="true" class="svg-icon iconPeople" width="18" height="18"  viewBox="0 0 18 18"><path  d="M17 14c0 .44-.45 1-1 1H9a1 1 0 0 1-1-1H2c-.54 0-1-.56-1-1 0-2.63 3-4 3-4s.23-.4 0-1c-.84-.62-1.06-.59-1-3 .06-2.42 1.37-3 2.5-3s2.44.58 2.5 3c.06 2.41-.16 2.38-1 3-.23.59 0 1 0 1s1.55.71 2.42 2.09c.78-.72 1.58-1.1 1.58-1.1s.23-.4 0-1c-.84-.61-1.06-.58-1-3 .06-2.41 1.37-3 2.5-3s2.44.59 2.5 3c.05 2.42-.16 2.39-1 3-.23.6 0 1 0 1s3 1.38 3 4Z"/></svg>            <span class="-link--channel-name pl6">Users</span>
    409     </a>
    410 </li>
    411 
    412 
    413                             
    414 
    415 <li class="ps-relative"  aria-current="false">
    416 
    417 
    418     <a id="nav-companies"
    419        href="https://stackoverflow.com/jobs/companies?so_medium=stackoverflow&amp;so_source=SiteNav"
    420        class="pl8 js-gps-track nav-links--link -link__with-icon"
    421        
    422        data-gps-track="top_nav.click({is_current: false, location:2, destination:12,  has_activity_notification:False})"
    423        aria-controls="" data-controller="" data-s-popover-placement="right"
    424        aria-current="false"
    425        data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never"
    426     >
    427 <svg aria-hidden="true" class="svg-icon iconBriefcase" width="18" height="18"  viewBox="0 0 18 18"><path  d="M5 4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v1h1a2 2 0 0 1 2 2v6a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7c0-1.1.9-2 2-2h1V4Zm7 0H6v1h6V4Z"/></svg>            <span class="-link--channel-name pl6">Companies</span>
    428     </a>
    429 </li>
    430 
    431 
    432 
    433                             <li class="ml8 mt32 mb8">
    434                                 <div class="d-flex jc-space-between ai-center">
    435                                     <a
    436                                         class="s-link d-flex fl-grow1 fc-black-400 h:fc-black-600 fs-fine js-collectives-navcta-toggle"
    437                                         href="javascript:void(0)"
    438                                         role="button"
    439                                         aria-controls="popover-discover-collectives"
    440                                         data-controller="s-popover"
    441                                         data-action="s-popover#toggle"
    442                                         data-s-popover-placement="top"
    443                                         data-s-popover-toggle-class="is-selected"
    444                                         data-gps-track="top_nav.click({is_current:false, location:2, destination:17})"
    445                                     >
    446                                         <div class="flex--item fl-grow1 tt-uppercase fc-black-600 fw-bold">Collectives</div>
    447                                         <div class="flex--item px12">
    448 <svg aria-hidden="true" class="svg-icon iconPlusSm" width="14" height="14"  viewBox="0 0 14 14"><path  d="M8 2H6v4H2v2h4v4h2V8h4V6H8V2Z"/></svg>                                        </div>
    449                                     </a>
    450 
    451                                 </div>
    452 
    453                             </li>
    454                                 
    455 
    456 <li class="ps-relative"  aria-current="false">
    457 
    458 
    459     <a id="nav-collective-discover"
    460        href="/collectives"
    461        class="pl8 ai-center js-collectives-navcta-toggle js-gps-track nav-links--link -link__with-icon"
    462        
    463        data-gps-track="top_nav.click({is_current: false, location:2, destination:18,  has_activity_notification:False})"
    464        aria-controls="" data-controller="" data-s-popover-placement="right"
    465        aria-current="false"
    466        data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never"
    467     >
    468 <svg aria-hidden="true" class="mt-auto fc-orange-400 svg-icon iconStarVerified" width="18" height="18"  viewBox="0 0 18 18"><path  d="M9.86.89a1.14 1.14 0 0 0-1.72 0l-.5.58c-.3.35-.79.48-1.23.33l-.72-.25a1.14 1.14 0 0 0-1.49.85l-.14.76c-.1.45-.45.8-.9.9l-.76.14c-.67.14-1.08.83-.85 1.49l.25.72c.15.44.02.92-.33 1.23l-.58.5a1.14 1.14 0 0 0 0 1.72l.58.5c.35.3.48.79.33 1.23l-.25.72c-.23.66.18 1.35.85 1.49l.76.14c.45.1.8.45.9.9l.14.76c.14.67.83 1.08 1.49.85l.72-.25c.44-.15.92-.02 1.23.33l.5.58c.46.52 1.26.52 1.72 0l.5-.58c.3-.35.79-.48 1.23-.33l.72.25c.66.23 1.35-.18 1.49-.85l.14-.76c.1-.45.45-.8.9-.9l.76-.14c.67-.14 1.08-.83.85-1.49l-.25-.72c-.15-.44-.02-.92.33-1.23l.58-.5c.52-.46.52-1.26 0-1.72l-.58-.5c-.35-.3-.48-.79-.33-1.23l.25-.72a1.14 1.14 0 0 0-.85-1.49l-.76-.14c-.45-.1-.8-.45-.9-.9l-.14-.76a1.14 1.14 0 0 0-1.49-.85l-.72.25c-.44.15-.92.02-1.23-.33l-.5-.58Zm-.49 2.67L10.6 6.6c.05.15.19.24.34.25l3.26.22c.36.03.5.48.23.71l-2.5 2.1a.4.4 0 0 0-.14.4l.8 3.16a.4.4 0 0 1-.6.44L9.2 12.13a.4.4 0 0 0-.42 0l-2.77 1.74a.4.4 0 0 1-.6-.44l.8-3.16a.4.4 0 0 0-.13-.4l-2.5-2.1a.4.4 0 0 1 .22-.7l3.26-.23a.4.4 0 0 0 .34-.25l1.22-3.03a.4.4 0 0 1 .74 0Z"/></svg>            <span class="-link--channel-name pl6">Explore Collectives</span>
    469     </a>
    470 </li>
    471 
    472 
    473                             <li class="ml8 mt32 mb8">
    474                                 <a href="javascript:void(0)"
    475                                     class="s-link s-link d-flex fl-grow1 fc-black-400 h:fc-black-600 fs-fine"
    476                                     role="button"
    477                                     aria-controls="popover-labs-left-nav"
    478                                     data-controller="s-popover"
    479                                     data-action="s-popover#toggle"
    480                                     data-s-popover-placement="top"
    481                                     data-s-popover-toggle-class="is-selected"
    482                                 >
    483                                     <div class="flex--item fl-grow1 tt-uppercase fc-black-600 fw-bold">Labs</div>
    484                                     <div class="flex--item px12">
    485                                         <svg aria-hidden="true" class="svg-icon iconInfoSm" width="14" height="14"  viewBox="0 0 14 14"><path  d="M7 1a6 6 0 1 1 0 12A6 6 0 0 1 7 1Zm1 10V6H6v5h2Zm0-6V3H6v2h2Z"/></svg>
    486                                     </div>
    487                                 </a>
    488                             </li>
    489                                 
    490 
    491 <li class="ps-relative"  aria-current="false">
    492 
    493 
    494     <a id="nav-labs-discussions"
    495        href="/collectives/beta/discussions"
    496        class="pl8 ai-center js-gps-track nav-links--link -link__with-icon"
    497        
    498        data-gps-track="top_nav.click({is_current: false, location:2, destination:24,  has_activity_notification:False})"
    499        aria-controls="" data-controller="" data-s-popover-placement="right"
    500        aria-current="false"
    501        data-s-popover-auto-show="true" data-s-popover-hide-on-outside-click="never"
    502     >
    503 <svg aria-hidden="true" class="fc-black-400 w16 svg-icon iconSpeechBubble" width="18" height="18"  viewBox="0 0 18 18"><path  d="m4 15-3 3V4c0-1.1.9-2 2-2h12a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4Z"/></svg>            <span class="-link--channel-name pl6">Discussions</span>
    504     </a>
    505 </li>
    506 
    507                     </ol>
    508                 </li>
    509                 
    510                 
    511 
    512         
    513 
    514 <li class="js-freemium-cta ps-relative">
    515 
    516     <div class="fs-fine tt-uppercase fc-black-600 fw-bold ml8 mt16 mb8">Teams</div>
    517 
    518     <div class="bt bl bb bc-black-200 p12 pb6 fc-black-500 blr-sm overflow-hidden">
    519         <strong class="fc-black-600 mb6">Stack Overflow for Teams</strong>
    520         – Start collaborating and sharing organizational knowledge.
    521         
    522         <img class="wmx100 mx-auto my8 h-auto d-block" width="139" height="114" src="https://cdn.sstatic.net/Img/teams/teams-illo-free-sidebar-promo.svg?v=47faa659a05e" alt="">
    523 
    524         <a href="https://try.stackoverflow.co/why-teams/?utm_source=so-owned&amp;utm_medium=side-bar&amp;utm_campaign=campaign-38&amp;utm_content=cta" 
    525            class="w100 s-btn s-btn__filled s-btn__xs bg-orange-400 js-gps-track"
    526            data-gps-track="teams.create.left-sidenav.click({ Action: 6 })"
    527            data-ga="[&quot;teams left navigation - anonymous&quot;,&quot;left nav free cta&quot;,&quot;stackoverflow.com/teams/create/free&quot;,null,null]">Create a free Team</a>
    528         <a href="https://stackoverflow.co/teams/" 
    529            class="w100 s-btn s-btn__muted s-btn__xs js-gps-track"
    530            data-gps-track="teams.create.left-sidenav.click({ Action: 5 })"
    531            data-ga="[&quot;teams left navigation - anonymous&quot;,&quot;left nav free cta&quot;,&quot;stackoverflow.com/teams&quot;,null,null]">Why Teams?</a>
    532 
    533     </div>
    534 </li>
    535 
    536 
    537     <li class="d-flex ai-center jc-space-between ml8 mt32 mb8 js-create-team-cta d-none">
    538         <a href="javascript:void(0)"
    539             class="s-link d-flex fl-grow1 fc-black-400 h:fc-black-600 fs-fine js-gps-track"
    540             role="button"
    541             aria-controls="popover-teams-create-cta"
    542             data-controller="s-popover"
    543             data-action="s-popover#toggle"
    544             data-s-popover-placement="bottom-start"
    545             data-s-popover-toggle-class="is-selected"
    546             data-gps-track="teams.create.left-sidenav.click({ Action: ShowInfo })"
    547             data-ga="[&quot;teams left navigation - anonymous&quot;,&quot;left nav show teams info&quot;,null,null,null]"
    548         >
    549             <div class="flex--item fl-grow1 fc-black-600 fw-bold tt-uppercase">Teams</div>
    550             <div class="flex--item px12">
    551                 <svg aria-hidden="true" class="svg-icon iconPlusSm" width="14" height="14"  viewBox="0 0 14 14"><path  d="M8 2H6v4H2v2h4v4h2V8h4V6H8V2Z"/></svg>
    552             </div>
    553         </a>
    554     </li>
    555     <li class="ps-relative js-create-team-cta d-none">
    556         <a href="https://stackoverflowteams.com/teams/create/free/?utm_source=so-owned&amp;utm_medium=side-bar&amp;utm_campaign=campaign-38&amp;utm_content=cta"
    557         class="pl8 js-gps-track nav-links--link"
    558         title="Stack Overflow for Teams is a private, secure spot for your organization's questions and answers."
    559         data-gps-track="teams.create.left-sidenav.click({ Action: FreemiumTeamsCreateClick })"
    560         data-ga="[&quot;teams left navigation - anonymous&quot;,&quot;left nav team click&quot;,&quot;stackoverflow.com/teams/create/free&quot;,null,null]">
    561             <div class="d-flex ai-center">
    562                 <div class="flex--item s-avatar va-middle bg-orange-400">
    563                     <div class="s-avatar--letter mtn1">
    564                         <svg aria-hidden="true" class="svg-icon iconBriefcaseSm" width="14" height="14"  viewBox="0 0 14 14"><path  d="M4 3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v1h.5c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5h-7A1.5 1.5 0 0 1 2 10.5v-5C2 4.67 2.67 4 3.5 4H4V3Zm5 1V3H5v1h4Z"/></svg>
    565                     </div>
    566                     <svg aria-hidden="true" class="native s-avatar--badge svg-icon iconShieldXSm" width="9" height="10"  viewBox="0 0 9 10"><path fill="var(--white)" d="M0 1.84 4.5 0 9 1.84v3.17C9 7.53 6.3 10 4.5 10 2.7 10 0 7.53 0 5.01V1.84Z"/><path fill="var(--black-400)" d="M1 2.5 4.5 1 8 2.5v2.51C8 7.34 5.34 9 4.5 9 3.65 9 1 7.34 1 5.01V2.5Zm2.98 3.02L3.2 7h2.6l-.78-1.48a.4.4 0 0 1 .15-.38c.34-.24.73-.7.73-1.14 0-.71-.5-1.23-1.41-1.23-.92 0-1.39.52-1.39 1.23 0 .44.4.9.73 1.14.12.08.18.23.15.38Z"/></svg>
    567                 </div>
    568                 <div class="flex--item pl6">
    569                     Create free Team
    570                 </div>
    571             </div>
    572         </a>
    573     </li>
    574 
    575             </ol>
    576         </nav>
    577     </div>
    578 
    579 
    580         <div class="s-popover ws2" id="popover-discover-collectives" role="menu">
    581             <div class="s-popover--arrow"></div>
    582             <div>
    583                 <svg aria-hidden="true" class="fc-orange-400 float-right ml24 svg-spot spotCollective" width="48" height="48"  viewBox="0 0 48 48"><path  d="M25.5 7a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM14 18.25c0-.69.56-1.25 1.25-1.25h22.5c.69 0 1.25.56 1.25 1.25V37.5a1 1 0 0 1-1.6.8l-4.07-3.05a1.25 1.25 0 0 0-.75-.25H15.25c-.69 0-1.25-.56-1.25-1.25v-15.5ZM7 24.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0ZM25.5 48a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5ZM48 24.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0Z" opacity=".2"/><path  d="M21 3.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0ZM24.5 2a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3ZM0 23.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0ZM3.5 22a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3ZM21 44.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 0 1-7 0Zm3.5-1.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3Zm20-23a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7ZM43 23.5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm-23.23-3.14a1 1 0 0 1-.13 1.4l-2.08 1.74 2.08 1.73a1 1 0 1 1-1.28 1.54l-2.42-2.02a1.63 1.63 0 0 1 0-2.5l2.42-2.02a1 1 0 0 1 1.4.13Zm7.59 1.41a1 1 0 1 1 1.28-1.54l2.42 2.02c.78.65.78 1.85 0 2.5l-2.42 2.02a1 1 0 1 1-1.28-1.54l2.08-1.73-2.08-1.73ZM24.12 18a1 1 0 0 1 .87 1.12l-1 8a1 1 0 1 1-1.98-.24l1-8a1 1 0 0 1 1.11-.87Zm-11.87-5C11.01 13 10 14 10 15.25v15.5c0 1.24 1 2.25 2.25 2.25h17.33c.06 0 .11.02.15.05l4.07 3.05a2 2 0 0 0 3.2-1.6V15.25c0-1.24-1-2.25-2.25-2.25h-22.5ZM12 15.25c0-.14.11-.25.25-.25h22.5c.14 0 .25.11.25.25V34.5l-4.07-3.05a2.2 2.2 0 0 0-1.35-.45H12.25a.25.25 0 0 1-.25-.25v-15.5Zm7.24-10.68a1 1 0 1 0-.48-1.94A22.04 22.04 0 0 0 2.91 17.7a1 1 0 1 0 1.92.58 20.04 20.04 0 0 1 14.4-13.72Zm11.05-1.66a1 1 0 0 0-.58 1.92c6.45 1.92 11.54 7 13.46 13.46a1 1 0 1 0 1.92-.58 22.05 22.05 0 0 0-14.8-14.8ZM4.57 28.76a1 1 0 0 0-1.94.48 22.03 22.03 0 0 0 16.13 16.13 1 1 0 1 0 .48-1.94A20.03 20.03 0 0 1 4.57 28.76Zm40.8.48a1 1 0 1 0-1.94-.48 20.04 20.04 0 0 1-13.72 14.41 1 1 0 0 0 .58 1.92 22.04 22.04 0 0 0 15.08-15.85Z"/></svg>
    584                 <h5 class="pt4 fw-bold">Collectives™ on Stack Overflow</h5>
    585                 <p class="my16 fs-caption fc-black-500">Find centralized, trusted content and collaborate around the technologies you use most.</p>
    586                 <a href="/collectives"
    587             class="js-gps-track s-btn s-btn__filled s-btn__xs"
    588             data-gps-track="top_nav.click({is_current:false, location:2, destination:18})">
    589                     Learn more about Collectives
    590                 </a>
    591             </div>
    592         </div>
    593 
    594         <div class="s-popover ws2"
    595         id="popover-teams-create-cta"
    596         role="menu"
    597         aria-hidden="true">
    598             <div class="s-popover--arrow"></div>
    599 
    600             <div class="ps-relative overflow-hidden">
    601                 <p class="mb2"><strong>Teams</strong></p>
    602                 <p class="mb12 fs-caption fc-black-400">Q&amp;A for work</p>
    603                 <p class="mb12 fs-caption fc-black-500">Connect and share knowledge within a single location that is structured and easy to search.</p>
    604                 <a href="https://stackoverflow.co/teams/"
    605             class="js-gps-track s-btn s-btn__filled s-btn__xs"
    606             data-gps-track="teams.create.left-sidenav.click({ Action: CtaClick })"
    607             data-ga="[&quot;teams left navigation - anonymous&quot;,&quot;left nav cta&quot;,&quot;stackoverflow.com/teams&quot;,null,null]">
    608                     Learn more about Teams
    609                 </a>
    610             </div>
    611 
    612             <div class="ps-absolute t8 r8">
    613                 <svg aria-hidden="true" class="fc-orange-400 svg-spot spotPeople" width="48" height="48"  viewBox="0 0 48 48"><path  d="M13.5 28a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9ZM7 30a1 1 0 0 1 1-1h11a1 1 0 0 1 1 1v5h11v-5a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v10a2 2 0 0 1-2 2H33v5a1 1 0 0 1-1 1H20a1 1 0 0 1-1-1v-5H8a1 1 0 0 1-1-1V30Zm25-6.5a4.5 4.5 0 1 0 9 0 4.5 4.5 0 0 0-9 0ZM24.5 34a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9Z" opacity=".2"/><path  d="M16.4 26.08A6 6 0 1 0 7.53 26C5.64 26.06 4 27.52 4 29.45V40a1 1 0 0 0 1 1h9a1 1 0 1 0 0-2h-4v-7a1 1 0 1 0-2 0v7H6v-9.55c0-.73.67-1.45 1.64-1.45H16a1 1 0 0 0 .4-1.92ZM12 18a4 4 0 1 1 0 8 4 4 0 0 1 0-8Zm16.47 14a6 6 0 1 0-8.94 0A3.6 3.6 0 0 0 16 35.5V46a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1V35.5c0-1.94-1.64-3.42-3.53-3.5ZM20 28a4 4 0 1 1 8 0 4 4 0 0 1-8 0Zm-.3 6h8.6c1 0 1.7.75 1.7 1.5V45h-2v-7a1 1 0 1 0-2 0v7h-4v-7a1 1 0 1 0-2 0v7h-2v-9.5c0-.75.7-1.5 1.7-1.5ZM42 22c0 1.54-.58 2.94-1.53 4A3.5 3.5 0 0 1 44 29.45V40a1 1 0 0 1-1 1h-9a1 1 0 1 1 0-2h4v-7a1 1 0 1 1 2 0v7h2v-9.55A1.5 1.5 0 0 0 40.48 28H32a1 1 0 0 1-.4-1.92A6 6 0 1 1 42 22Zm-2 0a4 4 0 1 0-8 0 4 4 0 0 0 8 0Z"/><g  opacity=".35"><path d="M17 10a1 1 0 011-1h12a1 1 0 110 2H18a1 1 0 01-1-1Zm1-5a1 1 0 100 2h12a1 1 0 100-2H18ZM14 1a1 1 0 00-1 1v12a1 1 0 001 1h5.09l4.2 4.2a1 1 0 001.46-.04l3.7-4.16H34a1 1 0 001-1V2a1 1 0 00-1-1H14Zm1 12V3h18v10h-5a1 1 0 00-.75.34l-3.3 3.7-3.74-3.75a1 1 0 00-.71-.29H15Z"/></g></svg>
    614             </div>
    615         </div>
    616 
    617         <div class="s-popover ws2"
    618              id="popover-labs-left-nav"
    619              role="menu"
    620              aria-hidden="true">
    621             <div class="s-popover--arrow"></div>
    622             <svg aria-hidden="true" class="fc-black-600 mb8 svg-icon iconLabs" width="42" height="18"><path d="M11.5 13.624a.374.374 0 0 1-.37.376H5.361a.374.374 0 0 1-.37-.376V4.376c0-.207.165-.376.37-.376H6.62c.204 0 .37.169.37.376v7.611h4.138c.205 0 .371.169.371.377v1.26zm9.432.215c-.07.1-.185.161-.308.161H19.13a.376.376 0 0 1-.356-.254l-.55-1.7h-3.111l-.55 1.7a.377.377 0 0 1-.355.254h-1.494a.376.376 0 0 1-.353-.506l3.39-9.247A.376.376 0 0 1 16.103 4h1.13c.158 0 .299.099.353.247l3.39 9.247a.376.376 0 0 1-.045.345zm-4.157-7.386l-1.219 3.531h2.266l-1.047-3.53zm13.335 5.71a.37.37 0 0 0-.003.524c.956.971 2.047 1.313 3.486 1.313 1.014 0 1.92-.265 2.582-.788.67-.53 1.063-1.306 1.063-2.255 0-.855-.268-1.622-.867-2.145-.456-.41-1.008-.633-1.89-.767l-1.037-.153c-.377-.057-.672-.19-.832-.332-.146-.132-.221-.315-.221-.568 0-.309.11-.56.306-.737.199-.179.518-.312.986-.312.708 0 1.254.151 1.726.601a.37.37 0 0 0 .516-.004l.883-.87a.37.37 0 0 0-.008-.534C35.942 4.334 35.004 4 33.721 4c-1.016 0-1.872.292-2.479.836-.61.548-.935 1.32-.935 2.207 0 .82.243 1.502.781 2.01h.001c.468.437 1.135.716 1.93.826l1.072.153c.508.073.647.147.795.286l.008.007c.14.125.234.34.234.67 0 .332-.124.567-.344.73-.235.174-.617.293-1.165.293-.867 0-1.49-.185-2.066-.76a.37.37 0 0 0-.522-.003l-.92.908zM22.37 14a.374.374 0 0 1-.37-.376V4.376c0-.207.166-.376.37-.376h3.543c.913 0 1.697.264 2.257.78.564.519.863 1.259.863 2.129 0 .845-.377 1.524-.87 1.947.57.433 1.01 1.145 1.01 2.157 0 .941-.317 1.702-.894 2.224-.57.517-1.354.763-2.225.763H22.37zm3.543-1.977c.96 0 .959-1.01.959-1.01s0-1.013-.959-1.013H24v2.023h1.913zm-.115-4.063c1.074 0 1.074-1.015 1.074-1.015s0-1.016-1.074-1.016H24V7.96h1.798z" fill="var(--black-600)"/><path d="M0 4v10a4 4 0 0 0 4 4h34a4 4 0 0 0 4-4V4a4 4 0 0 0-4-4H4a4 4 0 0 0-4 4zm4-2h34a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2z" fill="var(--black-600)"/></svg>
    623             <p class="fs-caption">Get early access and see previews of new features.</p>
    624             <a class="s-btn s-btn__filled s-btn__xs s-btn__icon fs-fine" href="https://stackoverflow.co/labs/"><svg aria-hidden="true" class="svg-icon iconShareSm" width="14" height="14"  viewBox="0 0 14 14"><path  d="M5 1H3a2 2 0 0 0-2 2v8c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V9h-2v2H3V3h2V1Zm2 0h6v6h-2V4.5L6.5 9 5 7.5 9.5 3H7V1Z"/></svg> Learn more about Labs</a>
    625         </div>
    626 
    627 
    628 </div>
    629 
    630 
    631 
    632         <div id="content" class="snippet-hidden">
    633 
    634             
    635 
    636 <div itemprop="mainEntity" itemscope itemtype="https://schema.org/Question">
    637     <link itemprop="image" href="https://cdn.sstatic.net/Sites/stackoverflow/Img/apple-touch-icon.png?v=c78bd457575a">
    638 
    639     <div class="inner-content clearfix">
    640 
    641         
    642 
    643             <div id="question-header" class="d-flex sm:fd-column">
    644                         <h1 itemprop="name" class="fs-headline1 ow-break-word mb8 flex--item fl1"><a href="/questions/53886131/how-does-xorshift32-works" class="question-hyperlink">How does XorShift32 works?</a></h1>
    645                 <div class="ml12 aside-cta flex--item print:d-none sm:ml0 sm:mb12 sm:order-first sm:as-end">
    646                         <a href="/questions/ask" class="ws-nowrap s-btn s-btn__filled">
    647         Ask Question
    648     </a>
    649 
    650                 </div>
    651             </div>
    652             <div class="d-flex fw-wrap pb8 mb16 bb bc-black-200">
    653                     <div class="flex--item ws-nowrap mr16 mb8" title="2018-12-21 14:06:10Z">
    654                         <span class="fc-black-400 mr2">Asked</span>
    655                         <time itemprop="dateCreated" datetime="2018-12-21T14:06:10">4 years, 11 months ago</time>
    656                     </div>
    657                     <div class="flex--item ws-nowrap mr16 mb8">
    658                         <span class="fc-black-400 mr2">Modified</span>
    659                         <a href="?lastactivity" class="s-link s-link__inherit" title="2018-12-23 01:02:09Z">4 years, 11 months ago</a>
    660                     </div>
    661                     <div class="flex--item ws-nowrap mb8" title="Viewed 6,038 times">
    662                         <span class="fc-black-400 mr2">Viewed</span>
    663                         6k times
    664                     </div>
    665             </div>
    666             <div id="mainbar" role="main" aria-label="question and answers">
    667 
    668                 
    669 <div class="question js-question" data-questionid="53886131" data-position-on-page="0" data-score="1"  id="question">
    670     <style>
    671     </style>
    672 <div class="js-zone-container zone-container-main">
    673     <div id="dfp-tlb" class="everyonelovesstackoverflow everyoneloves__top-leaderboard everyoneloves__leaderboard"></div>
    674 		<div class="js-report-ad-button-container " style="width: 728px"></div>
    675 </div>
    676 
    677     <div class="post-layout ">
    678         <div class="votecell post-layout--left">
    679             <div class="js-voting-container d-flex jc-center fd-column ai-stretch gs4 fc-black-300" data-post-id="53886131" data-referrer="None">
    680         <button class="js-vote-up-btn flex--item s-btn ba bar-pill c-pointer as-center bc-black-225 fc-black-500 h:bg-theme-primary-200"
    681                 data-controller="s-tooltip"
    682                 data-s-tooltip-placement="right"
    683                 title="This question shows research effort; it is useful and clear"
    684                 aria-pressed="false"
    685                 aria-label="Up vote"
    686                 data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100"
    687                 data-unselected-classes="bc-black-225 fc-black-500 h:bg-theme-primary-200">
    688             <svg aria-hidden="true" class="svg-icon iconArrowUp" width="18" height="18"  viewBox="0 0 18 18"><path  d="M1 12h16L9 4l-8 8Z"/></svg>
    689         </button>
    690         <div class="js-vote-count flex--item d-flex fd-column ai-center fc-theme-body-font fw-bold fs-subheading py4"
    691              itemprop="upvoteCount"
    692              data-value="1">
    693             1
    694         </div>
    695         <button class="js-vote-down-btn flex--item mb8 s-btn ba bar-pill c-pointer as-center bc-black-225 fc-black-500 h:bg-theme-primary-200"
    696                 data-controller="s-tooltip"
    697                 data-s-tooltip-placement="right"
    698                 title="This question does not show any research effort; it is unclear or not useful"
    699                 aria-pressed="false"
    700                 aria-label="Down vote"
    701                 data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100"
    702                 data-unselected-classes="bc-black-225 fc-black-500 h:bg-theme-primary-200">
    703             <svg aria-hidden="true" class="svg-icon iconArrowDown" width="18" height="18"  viewBox="0 0 18 18"><path  d="M1 6h16l-8 8-8-8Z"/></svg>
    704         </button>
    705 
    706 
    707         
    708 <button class="js-saves-btn s-btn s-btn__unset c-pointer py4"
    709         type="button"
    710         id="saves-btn-53886131"
    711         data-controller="s-tooltip"
    712         data-s-tooltip-placement="right"
    713         data-s-popover-placement=""
    714         title="Save this question."
    715         aria-pressed="false"
    716         data-post-id="53886131"
    717         data-post-type-id="1"
    718         data-user-privilege-for-post-click="0"
    719         aria-controls=""
    720         data-s-popover-auto-show="false"
    721 >
    722     <svg aria-hidden="true" class="fc-theme-primary-400 js-saves-btn-selected d-none svg-icon iconBookmark" width="18" height="18"  viewBox="0 0 18 18"><path  d="M3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"/></svg>
    723     <svg aria-hidden="true" class="js-saves-btn-unselected svg-icon iconBookmarkAlt" width="18" height="18"  viewBox="0 0 18 18"><path  d="m9 10.6 4 2.66V3H5v10.26l4-2.66ZM3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"/></svg>
    724 </button>
    725 
    726 
    727 
    728 
    729 
    730 
    731 
    732 
    733     
    734     <a class="js-post-issue flex--item s-btn s-btn__unset c-pointer py6 mx-auto" href="/posts/53886131/timeline" data-shortcut="T" data-ks-title="timeline" data-controller="s-tooltip" data-s-tooltip-placement="right" title="Show activity on this post." aria-label="Timeline"><svg aria-hidden="true" class="mln2 mr0 svg-icon iconHistory" width="19" height="18"  viewBox="0 0 19 18"><path  d="M3 9a8 8 0 1 1 3.73 6.77L8.2 14.3A6 6 0 1 0 5 9l3.01-.01-4 4-4-4h3L3 9Zm7-4h1.01L11 9.36l3.22 2.1-.6.93L10 10V5Z"/></svg></a>
    735 
    736 </div>
    737 
    738         </div>
    739 
    740         
    741 
    742 <div class="postcell post-layout--right">
    743     
    744     <div class="s-prose js-post-body" itemprop="text">
    745                 
    746 <p>I have this homework where i need to implement xorshift32(i can t use anything else) so i can generate some numbers but i don t understand how the algorithm works or how to implement it. </p>
    747 
    748 <p>I am trying to print the generated number but i don t know how to call the xorshift32 function because of the state[static 1] argument.</p>
    749 
    750 <pre><code>uint32_t xorshift32(uint32_t state[static 1])
    751 {
    752     uint32_t x = state[0];
    753     x ^= x &lt;&lt; 13;
    754     x ^= x &gt;&gt; 17;
    755     x ^= x &lt;&lt; 5;
    756     state[0] = x;
    757     return x;
    758 }
    759 </code></pre>
    760 
    761 <p>I do not have much information on xorshft32 other that what is on wikipedia(en.wikipedia.org/wiki/Xorshift).</p>
    762     </div>
    763 
    764         <div class="mt24 mb12">
    765             <div class="post-taglist d-flex gs4 gsy fd-column">
    766                 <div class="d-flex ps-relative fw-wrap">
    767                     
    768                     <ul class='ml0 list-ls-none js-post-tag-list-wrapper d-inline'><li class='d-inline mr4 js-post-tag-list-item'><a href="/questions/tagged/c" class="post-tag" title="show questions tagged &#39;c&#39;" aria-label="show questions tagged &#39;c&#39;" rel="tag" aria-labelledby="tag-c-tooltip-container">c</a></li><li class='d-inline mr4 js-post-tag-list-item'><a href="/questions/tagged/static" class="post-tag" title="show questions tagged &#39;static&#39;" aria-label="show questions tagged &#39;static&#39;" rel="tag" aria-labelledby="tag-static-tooltip-container">static</a></li></ul>
    769                 </div>
    770             </div>
    771         </div>
    772 
    773     <div class="mb0 ">
    774         <div class="mt16 d-flex gs8 gsy fw-wrap jc-end ai-start pt4 mb16">
    775             <div class="flex--item mr16 fl1 w96">
    776                 
    777 
    778 
    779 <div class="js-post-menu pt2" data-post-id="53886131" data-post-type-id="1">
    780 
    781     <div class="d-flex gs8 s-anchors s-anchors__muted fw-wrap">
    782 
    783         <div class="flex--item">
    784             <a href="/q/53886131"
    785                rel="nofollow"
    786                itemprop="url"
    787                class="js-share-link js-gps-track"
    788                title="Short permalink to this question"
    789                data-gps-track="post.click({ item: 2, priv: 0, post_type: 1 })"
    790                data-controller="se-share-sheet"
    791                data-se-share-sheet-title="Share a link to this question"
    792                data-se-share-sheet-subtitle=""
    793                data-se-share-sheet-post-type="question"
    794                data-se-share-sheet-social="facebook twitter devto"
    795                data-se-share-sheet-location="1"
    796                data-se-share-sheet-license-url="https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f4.0%2f"
    797                data-se-share-sheet-license-name="CC BY-SA 4.0"
    798                data-s-popover-placement="bottom-start">Share</a>
    799         </div>
    800 
    801 
    802 
    803                 <div class="flex--item">
    804                     <button type="button"
    805                             id="btnFollowPost-53886131" class="s-btn s-btn__link js-follow-post js-follow-question js-gps-track"
    806                             data-gps-track="post.click({ item: 14, priv: 0, post_type: 1 })"
    807                             data-controller="s-tooltip " data-s-tooltip-placement="bottom"
    808                             data-s-popover-placement="bottom" aria-controls=""
    809                             title="Follow this question to receive notifications">
    810                         Follow
    811                     </button>
    812                 </div>
    813 
    814 
    815 
    816 
    817 
    818 
    819     </div>
    820     <div class="js-menu-popup-container"></div>
    821 </div>
    822             </div>
    823 
    824                 <div class="post-signature flex--item">
    825 <div class="user-info ">
    826     <div class="user-action-time">
    827         <a href="/posts/53886131/revisions" title="show all edits to this post"
    828                          class="js-gps-track"
    829                          data-gps-track="post.click({ item: 4, priv: 0, post_type: 1 })">edited <span title='2018-12-21 14:34:30Z' class='relativetime'>Dec 21, 2018 at 14:34</span></a>
    830     </div>
    831     <div class="user-gravatar32">
    832         
    833     </div>
    834     <div class="user-details" itemprop="author" itemscope itemtype="http://schema.org/Person">
    835         <span class="d-none" itemprop="name">Predescu Eduard</span>
    836         <div class="-flair">
    837             
    838         </div>
    839     </div>
    840 </div>
    841                 </div>
    842             <div class="post-signature owner flex--item">
    843                 <div class="user-info ">
    844     <div class="user-action-time">
    845         asked <span title='2018-12-21 14:06:10Z' class='relativetime'>Dec 21, 2018 at 14:06</span>
    846     </div>
    847     <div class="user-gravatar32">
    848         <a href="/users/10774990/predescu-eduard"><div class="gravatar-wrapper-32"><img src="https://www.gravatar.com/avatar/ba8527c5bc13c3ea52e3f87ed1c75660?s=64&amp;d=identicon&amp;r=PG&amp;f=y&amp;so-version=2" alt="Predescu Eduard&#39;s user avatar" width="32" height="32" class="bar-sm"></div></a>
    849     </div>
    850     <div class="user-details" itemprop="author" itemscope itemtype="http://schema.org/Person">
    851         <a href="/users/10774990/predescu-eduard">Predescu Eduard</a><span class="d-none" itemprop="name">Predescu Eduard</span>
    852         <div class="-flair">
    853             <span class="reputation-score" title="reputation score " dir="ltr">13</span><span title="1 silver badge" aria-hidden="true"><span class="badge2"></span><span class="badgecount">1</span></span><span class="v-visible-sr">1 silver badge</span><span title="7 bronze badges" aria-hidden="true"><span class="badge3"></span><span class="badgecount">7</span></span><span class="v-visible-sr">7 bronze badges</span>
    854         </div>
    855     </div>
    856 </div>
    857 
    858 
    859             </div>
    860         </div>
    861     </div>
    862     
    863 </div>
    864 
    865 
    866 
    867 
    868             <span class="d-none" itemprop="commentCount">4</span> 
    869     <div class="post-layout--right js-post-comments-component">
    870         <div id="comments-53886131" class="comments js-comments-container bt bc-black-200 mt12 " data-post-id="53886131" data-min-length="15">
    871             <ul class="comments-list js-comments-list"
    872                     data-remaining-comments-count="0"
    873                     data-canpost="false"
    874                     data-cansee="true"
    875                     data-comments-unavailable="false"
    876                     data-addlink-disabled="true">
    877 
    878                         <li id="comment-94618978" class="comment js-comment " data-comment-id="94618978" data-comment-owner-id="2402272" data-comment-score="1">
    879         <div class="js-comment-actions comment-actions">
    880             <div class="comment-score js-comment-score js-comment-edit-hide">
    881                     <span title="number of &#x27;useful comment&#x27; votes received"
    882                             class="cool">1</span>
    883             </div>
    884         </div>
    885         <div class="comment-text  js-comment-text-and-form">
    886             <div class="comment-body js-comment-edit-hide">
    887                 
    888                 <span class="comment-copy">Can you even <i>compile</i> that function?  It does not conform to standard C (with respect to the function parameter), so if your compiler accepts it then some language extension is in play.  You&#39;ll need to check your implementation&#39;s documentation (or maybe your class notes) to find out what it means.  On the other hand, maybe there&#39;s simply a typo there.  It would make more sense if the <code>static</code> keyword were removed, or perhaps moved to the beginning of the function declaration.</span>
    889                 
    890                 <div class="d-inline-flex ai-center">
    891 &ndash;&nbsp;<a href="/users/2402272/john-bollinger"
    892                                 title="163,152 reputation"
    893                                 class="comment-user">John Bollinger</a>
    894                 </div>
    895                 <span class="comment-date" dir="ltr"><span title='2018-12-21 14:16:36Z, License: CC BY-SA 4.0' class='relativetime-clean'>Dec 21, 2018 at 14:16</span></span>
    896             </div>
    897         </div>
    898     </li>
    899     <li id="comment-94619133" class="comment js-comment " data-comment-id="94619133" data-comment-owner-id="898348" data-comment-score="0">
    900         <div class="js-comment-actions comment-actions">
    901             <div class="comment-score js-comment-score js-comment-edit-hide">
    902             </div>
    903         </div>
    904         <div class="comment-text  js-comment-text-and-form">
    905             <div class="comment-body js-comment-edit-hide">
    906                 
    907                 <span class="comment-copy">You need to tell us what the <code>xorshift32</code> is supposed to do.</span>
    908                 
    909                 <div class="d-inline-flex ai-center">
    910 &ndash;&nbsp;<a href="/users/898348/jabberwocky"
    911                                 title="48,830 reputation"
    912                                 class="comment-user">Jabberwocky</a>
    913                 </div>
    914                 <span class="comment-date" dir="ltr"><span title='2018-12-21 14:21:56Z, License: CC BY-SA 4.0' class='relativetime-clean'>Dec 21, 2018 at 14:21</span></span>
    915             </div>
    916         </div>
    917     </li>
    918     <li id="comment-94619390" class="comment js-comment " data-comment-id="94619390" data-comment-owner-id="10774990" data-comment-score="0">
    919         <div class="js-comment-actions comment-actions">
    920             <div class="comment-score js-comment-score js-comment-edit-hide">
    921             </div>
    922         </div>
    923         <div class="comment-text  js-comment-text-and-form">
    924             <div class="comment-body js-comment-edit-hide">
    925                 
    926                 <span class="comment-copy">@Jabberwocky here is the wikipeda: <a href="https://en.wikipedia.org/wiki/Xorshift" rel="nofollow noreferrer">en.wikipedia.org/wiki/Xorshift</a> . I don t even know to explain it to you. It s a number generator using xor and shift made  by a guy. The teacher didn t tell us much either</span>
    927                 
    928                 <div class="d-inline-flex ai-center">
    929 &ndash;&nbsp;<a href="/users/10774990/predescu-eduard"
    930                                 title="13 reputation"
    931                                 class="comment-user owner">Predescu Eduard</a>
    932                 </div>
    933                 <span class="comment-date" dir="ltr"><span title='2018-12-21 14:30:37Z, License: CC BY-SA 4.0' class='relativetime-clean'>Dec 21, 2018 at 14:30</span></span>
    934             </div>
    935         </div>
    936     </li>
    937     <li id="comment-94619420" class="comment js-comment " data-comment-id="94619420" data-comment-owner-id="898348" data-comment-score="0">
    938         <div class="js-comment-actions comment-actions">
    939             <div class="comment-score js-comment-score js-comment-edit-hide">
    940             </div>
    941         </div>
    942         <div class="comment-text  js-comment-text-and-form">
    943             <div class="comment-body js-comment-edit-hide">
    944                 
    945                 <span class="comment-copy">@PredescuEduard that information belongs <i>into</i> the question. You can <a href="https://stackoverflow.com/posts/53886131/edit">edit</a>  your question.</span>
    946                 
    947                 <div class="d-inline-flex ai-center">
    948 &ndash;&nbsp;<a href="/users/898348/jabberwocky"
    949                                 title="48,830 reputation"
    950                                 class="comment-user">Jabberwocky</a>
    951                 </div>
    952                 <span class="comment-date" dir="ltr"><span title='2018-12-21 14:31:42Z, License: CC BY-SA 4.0' class='relativetime-clean'>Dec 21, 2018 at 14:31</span></span>
    953             </div>
    954         </div>
    955     </li>
    956 
    957             </ul>
    958 	    </div>
    959 
    960         <div id="comments-link-53886131" data-rep=50 data-anon=true>
    961                     <a class="js-add-link comments-link disabled-link" title="Use comments to ask for more information or suggest improvements. Avoid answering questions in comments."  href="#" role="button">Add a comment</a>
    962                 <span class="js-link-separator dno">&nbsp;|&nbsp;</span>
    963             <a class="js-show-link comments-link dno" title="Expand to show all comments on this post" href=# onclick="" role="button"></a>
    964         </div>         
    965     </div>
    966     </div>
    967 
    968 </div>
    969 
    970 
    971 <div class="js-zone-container zone-container-responsive">
    972     <div id="dfp-isb" class="everyonelovesstackoverflow everyoneloves__inline-sidebar mx-auto"></div>
    973 		<div class="js-report-ad-button-container mx-auto" style="width: 300px"></div>
    974 </div>
    975 
    976                 
    977                 
    978                 <div id="answers">
    979                     <a name="tab-top"></a>
    980                     <div id="answers-header">
    981                         <div class="answers-subheader d-flex ai-center mb8">
    982                             <div class="flex--item fl1">
    983                                 <h2 class="mb0" data-answercount="2">
    984                                         2 Answers
    985                                     <span style="display:none;" itemprop="answerCount">2</span>
    986                                 </h2>
    987                             </div>
    988                             <div class="flex--item">
    989                                 
    990 
    991 <div class="d-flex g4 gsx ai-center sm:fd-column sm:ai-start">
    992     <div class="d-flex fd-column ai-end sm:ai-start">
    993         <label class="flex--item fs-caption" for="answer-sort-dropdown-select-menu">
    994             Sorted by:
    995         </label>
    996         <a 
    997             class="js-sort-preference-change s-link flex--item fs-fine d-none"
    998             data-value="ScoreDesc"
    999             href="/questions/53886131/how-does-xorshift32-works?answertab=scoredesc#tab-top"
   1000         >
   1001             Reset to default
   1002         </a>
   1003     </div>
   1004     <div class="flex--item s-select">
   1005         <select id="answer-sort-dropdown-select-menu">
   1006                     <option
   1007                         value=scoredesc
   1008                         selected=selected
   1009                     >
   1010                         Highest score (default)
   1011                     </option>
   1012                     <option
   1013                         value=trending
   1014                     >
   1015                         Trending (recent votes count more)
   1016                     </option>
   1017                     <option
   1018                         value=modifieddesc
   1019                     >
   1020                         Date modified (newest first)
   1021                     </option>
   1022                     <option
   1023                         value=createdasc
   1024                     >
   1025                         Date created (oldest first)
   1026                     </option>
   1027         </select>
   1028     </div>
   1029 </div>
   1030 
   1031 
   1032                             </div>
   1033                         </div>
   1034                             
   1035                     </div>
   1036 
   1037 
   1038                                     
   1039 <a name="53900430"></a>
   1040 <div id="answer-53900430" class="answer js-answer" data-answerid="53900430" data-parentid="53886131" data-score="3" data-position-on-page="1" data-highest-scored="1" data-question-has-accepted-highest-score="0"  itemprop="acceptedAnswer" itemscope itemtype="https://schema.org/Answer">
   1041     <div class="post-layout">
   1042         <div class="votecell post-layout--left">
   1043             <div class="js-voting-container d-flex jc-center fd-column ai-stretch gs4 fc-black-300" data-post-id="53900430" data-referrer="None">
   1044         <button class="js-vote-up-btn flex--item s-btn ba bar-pill c-pointer as-center bc-black-225 fc-black-500 h:bg-theme-primary-200"
   1045                 data-controller="s-tooltip"
   1046                 data-s-tooltip-placement="right"
   1047                 title="This answer is useful"
   1048                 aria-pressed="false"
   1049                 aria-label="Up vote"
   1050                 data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100"
   1051                 data-unselected-classes="bc-black-225 fc-black-500 h:bg-theme-primary-200">
   1052             <svg aria-hidden="true" class="svg-icon iconArrowUp" width="18" height="18"  viewBox="0 0 18 18"><path  d="M1 12h16L9 4l-8 8Z"/></svg>
   1053         </button>
   1054         <div class="js-vote-count flex--item d-flex fd-column ai-center fc-theme-body-font fw-bold fs-subheading py4"
   1055              itemprop="upvoteCount"
   1056              data-value="3">
   1057             3
   1058         </div>
   1059         <button class="js-vote-down-btn flex--item mb8 s-btn ba bar-pill c-pointer as-center bc-black-225 fc-black-500 h:bg-theme-primary-200"
   1060                 data-controller="s-tooltip"
   1061                 data-s-tooltip-placement="right"
   1062                 title="This answer is not useful"
   1063                 aria-pressed="false"
   1064                 aria-label="Down vote"
   1065                 data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100"
   1066                 data-unselected-classes="bc-black-225 fc-black-500 h:bg-theme-primary-200">
   1067             <svg aria-hidden="true" class="svg-icon iconArrowDown" width="18" height="18"  viewBox="0 0 18 18"><path  d="M1 6h16l-8 8-8-8Z"/></svg>
   1068         </button>
   1069 
   1070 
   1071         
   1072 <button class="js-saves-btn s-btn s-btn__unset c-pointer py4"
   1073         type="button"
   1074         id="saves-btn-53900430"
   1075         data-controller="s-tooltip"
   1076         data-s-tooltip-placement="right"
   1077         data-s-popover-placement=""
   1078         title="Save this answer."
   1079         aria-pressed="false"
   1080         data-post-id="53900430"
   1081         data-post-type-id="2"
   1082         data-user-privilege-for-post-click="0"
   1083         aria-controls=""
   1084         data-s-popover-auto-show="false"
   1085 >
   1086     <svg aria-hidden="true" class="fc-theme-primary-400 js-saves-btn-selected d-none svg-icon iconBookmark" width="18" height="18"  viewBox="0 0 18 18"><path  d="M3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"/></svg>
   1087     <svg aria-hidden="true" class="js-saves-btn-unselected svg-icon iconBookmarkAlt" width="18" height="18"  viewBox="0 0 18 18"><path  d="m9 10.6 4 2.66V3H5v10.26l4-2.66ZM3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"/></svg>
   1088 </button>
   1089 
   1090 
   1091 
   1092 
   1093 
   1094 
   1095 
   1096             <div class="js-accepted-answer-indicator flex--item fc-green-400 py6 mtn8 d-none" data-s-tooltip-placement="right" title="Loading when this answer was accepted&#x2026;" tabindex="0" role="note" aria-label="Accepted">
   1097                 <div class="ta-center">
   1098                     <svg aria-hidden="true" class="svg-icon iconCheckmarkLg" width="36" height="36"  viewBox="0 0 36 36"><path  d="m6 14 8 8L30 6v8L14 30l-8-8v-8Z"/></svg>
   1099                 </div>
   1100             </div>
   1101 
   1102     
   1103     <a class="js-post-issue flex--item s-btn s-btn__unset c-pointer py6 mx-auto" href="/posts/53900430/timeline" data-shortcut="T" data-ks-title="timeline" data-controller="s-tooltip" data-s-tooltip-placement="right" title="Show activity on this post." aria-label="Timeline"><svg aria-hidden="true" class="mln2 mr0 svg-icon iconHistory" width="19" height="18"  viewBox="0 0 19 18"><path  d="M3 9a8 8 0 1 1 3.73 6.77L8.2 14.3A6 6 0 1 0 5 9l3.01-.01-4 4-4-4h3L3 9Zm7-4h1.01L11 9.36l3.22 2.1-.6.93L10 10V5Z"/></svg></a>
   1104 
   1105 </div>
   1106 
   1107         </div>
   1108 
   1109         
   1110 
   1111 <div class="answercell post-layout--right">
   1112     
   1113     <div class="s-prose js-post-body" itemprop="text">
   1114 <p>This is an extended comment to the good <a href="https://stackoverflow.com/a/53886716/1475978">answer by Jabberwocky</a>.</p>
   1115 
   1116 <p>The Xorshift variants, <code>rand()</code>, and basically all random number generator functions, are actually <a href="https://en.wikipedia.org/wiki/Pseudorandom_number_generator" rel="nofollow noreferrer">pseudorandom number generators</a>. They are not "real random", because the sequence of numbers they generate depends on their internal state; but they are <a href="https://en.wikipedia.org/wiki/Pseudorandomness" rel="nofollow noreferrer">"pseudorandom"</a>, because if you do not know the generator internal state, the sequence of numbers they generate is random in the statistical sense.</p>
   1117 
   1118 <p><a href="https://en.wikipedia.org/wiki/George_Marsaglia" rel="nofollow noreferrer">George Marsaglia</a>, the author of the Xorshift family of pseudorandom number generators, also developed a set of statistical tools called <a href="https://en.wikipedia.org/wiki/Diehard_tests" rel="nofollow noreferrer">Diehard tests</a> that can be used to analyse the "randomness" of the sequences generated.  Currently, the <a href="https://en.wikipedia.org/wiki/TestU01" rel="nofollow noreferrer">TestU01</a> tests are probably the most widely used and trusted; in particular, the 160-test BigCrush set.</p>
   1119 
   1120 <p>The sequence generated by ordinary pseudorandom number generators often allows one to determine the internal state of the generator.  This means that observing a long enough generated sequence, allows one to fairly reliably predict the future sequence. <a href="https://en.wikipedia.org/wiki/Cryptographically_secure_pseudorandom_number_generator" rel="nofollow noreferrer">Cryptographically secure pseudorandom number generators</a> avoid that, usually by applying a cryptographically secure hash function to the output; one would need a catalog of the entire sequence to be able to follow it. When the periods are longer than 2<sup>256</sup> or so, there is not enough baryonic matter in the entire observable universe to store the sequence.</p>
   1121 
   1122 <p>My own favourite PRNG is Xorshift64*, which has a period of 2<sup>64</sup>-1, and passes all but the MatrixRank test in BigCrush. In C99 and later, you can implement it using</p>
   1123 
   1124 <pre><code>#include &lt;inttypes.h&gt;
   1125 
   1126 typedef struct {
   1127     uint64_t  state;
   1128 } prng_state;
   1129 
   1130 static inline uint64_t prng_u64(prng_state *const p)
   1131 {
   1132     uint64_t  state = p-&gt;state;
   1133     state ^= state &gt;&gt; 12;
   1134     state ^= state &lt;&lt; 25;
   1135     state ^= state &gt;&gt; 27;
   1136     p-&gt;state = state;
   1137     return state * UINT64_C(2685821657736338717);
   1138 }
   1139 </code></pre>
   1140 
   1141 <p>The state can be initialized to any nonzero <code>uint64_t</code>. (A zero state will lead the generator to generate all zeros till infinity. The period is 2<sup>64</sup>-1, because the generator will have each 64-bit state (excluding zero) exactly once during each period.)</p>
   1142 
   1143 <p>It is good enough for most use cases, and extremely fast.  It belongs to the class of <a href="https://en.wikipedia.org/wiki/Linear-feedback_shift_register" rel="nofollow noreferrer">linear-feedback shift register</a> pseudorandom number generators.</p>
   1144 
   1145 <p>Note that the variant which returns an uniform distribution between 0 and 1,</p>
   1146 
   1147 <pre><code>static inline double prng_one(prng_state *p)
   1148 {
   1149     return prng_u64(p) / 18446744073709551616.0;
   1150 }
   1151 </code></pre>
   1152 
   1153 <p>uses the high bits; the high 32 bits of the sequence does pass all BigCrunch tests in TestU01 suite, so this is a surprisingly good (randomness and efficiency) generator for double-precision uniform random numbers -- my typical use case.</p>
   1154 
   1155 <p>The format above allows multiple independent generators in a single process, by specifying the generator state as a parameter. If the basic generator is implemented in a header file (thus the <code>static inline</code>; it is a preprocessor macro-like function), you can switch between generators by switching between header files, and recompiling the binary.</p>
   1156 
   1157 <p>(You are usually better off by using a single generator, unless you use multiple threads in a pseudorandom number heavy simulator, in which case using a separate generator for each thread will help a lot; avoids cacheline ping-pong between threads competing for the generator state, in particular.)</p>
   1158 
   1159 <p>The <code>rand()</code> function in most C standard library implementations is a <a href="https://en.wikipedia.org/wiki/Linear_congruential_generator" rel="nofollow noreferrer">linear-congruential generator</a>.  They often suffer from poor choices of the coefficients, and nowadays, also from the relative slowness of the modulo operator (when the modulus is not a power of two).</p>
   1160 
   1161 <p>The most widely used pseudorandom number generator is the <a href="https://en.wikipedia.org/wiki/Mersenne_Twister" rel="nofollow noreferrer">Mersenne Twister</a>, by Makoto Matsumoto (松本 眞) and Takuji Nishimura (西村 拓士). It is a twisted generalized linear feedback shift register, and has quite a large state (about 2500 bytes) and very long period (2<sup>19937</sup>-1).</p>
   1162 
   1163 <hr>
   1164 
   1165 <p>When we talk of <em>true</em> random number generators, we usually mean a combination of a pseudorandom number generator (usually a cryptographically secure one), and a source of <a href="https://en.wikipedia.org/wiki/Entropy_(computing)" rel="nofollow noreferrer">entropy</a>; random bits with at least some degree of true physical randomness.</p>
   1166 
   1167 <p>In Linux, Mac OS, and BSDs at least, the operating system kernel exposes a source of pseudorandom numbers (<a href="http://man7.org/linux/man-pages/man2/getrandom.2.html" rel="nofollow noreferrer"><code>getentropy()</code></a> in Linux and OpenBSD, <a href="http://man7.org/linux/man-pages/man2/getrandom.2.html" rel="nofollow noreferrer"><code>getrandom()</code></a> in Linux, <code>/dev/urandom</code>, <code>/dev/arandom</code>, <code>/dev/random</code> in many Unixes, and so on).  Entropy is gathered from physical electronic sources, like internal processor latencies, physical interrupt line timings, (spinning disk) hard drive timings, possibly even keyboard and mice.  Many motherboards and some processors even have <a href="https://en.wikipedia.org/wiki/Hardware_random_number_generator" rel="nofollow noreferrer">hardware random number sources</a> that can be used as sources for entropy (or even directly as "trusted randomness sources").</p>
   1168 
   1169 <p>The <a href="https://en.wikipedia.org/wiki/Exclusive-or" rel="nofollow noreferrer">exclusive-or operation</a> (<code>^</code> in C) is used to mix in randomness to the generator state.  This works, because exclusive-or between a known bit and a random bit results in a random bit; XOR preserves randomness. When mixing entropy pools (with some degree of randomness in the bit states) using XOR, the result will have at least as much entropy as the sources had.</p>
   1170 
   1171 <p>Note that that does <em>not</em> mean that you get "better" random numbers by mixing the output of two or more generators.  The statistics of true randomness is hard for humans to grok (just look at how poor the common early <code>rand()</code> implementations were! HORRIBLE!).  It is better to pick a generator (or a set of generators to switch between at compile time, or at run time) that passes the BigCrunch tests, and ensure it has a good random initial state on every run.  That way you leverage the work of many mathematicians and others who have worked on these things for decades, and can concentrate on the other stuff, what you yourself are good at.</p>
   1172     </div>
   1173     <div class="mt24">
   1174         <div class="d-flex fw-wrap ai-start jc-end gs8 gsy">
   1175             <time itemprop="dateCreated" datetime="2018-12-23T00:56:34"></time>
   1176             <div class="flex--item mr16" style="flex: 1 1 100px;">
   1177                 
   1178 
   1179 
   1180 <div class="js-post-menu pt2" data-post-id="53900430" data-post-type-id="2">
   1181 
   1182     <div class="d-flex gs8 s-anchors s-anchors__muted fw-wrap">
   1183 
   1184         <div class="flex--item">
   1185             <a href="/a/53900430"
   1186                rel="nofollow"
   1187                itemprop="url"
   1188                class="js-share-link js-gps-track"
   1189                title="Short permalink to this answer"
   1190                data-gps-track="post.click({ item: 2, priv: 0, post_type: 2 })"
   1191                data-controller="se-share-sheet"
   1192                data-se-share-sheet-title="Share a link to this answer"
   1193                data-se-share-sheet-subtitle=""
   1194                data-se-share-sheet-post-type="answer"
   1195                data-se-share-sheet-social="facebook twitter devto"
   1196                data-se-share-sheet-location="2"
   1197                data-se-share-sheet-license-url="https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f4.0%2f"
   1198                data-se-share-sheet-license-name="CC BY-SA 4.0"
   1199                data-s-popover-placement="bottom-start">Share</a>
   1200         </div>
   1201 
   1202 
   1203 
   1204                 <div class="flex--item">
   1205                     <button type="button"
   1206                             id="btnFollowPost-53900430" class="s-btn s-btn__link js-follow-post js-follow-answer js-gps-track"
   1207                             data-gps-track="post.click({ item: 14, priv: 0, post_type: 2 })"
   1208                             data-controller="s-tooltip " data-s-tooltip-placement="bottom"
   1209                             data-s-popover-placement="bottom" aria-controls=""
   1210                             title="Follow this answer to receive notifications">
   1211                         Follow
   1212                     </button>
   1213                 </div>
   1214 
   1215 
   1216 
   1217 
   1218 
   1219 
   1220     </div>
   1221     <div class="js-menu-popup-container"></div>
   1222 </div>
   1223             </div>
   1224             <div class="post-signature flex--item fl0">
   1225 <div class="user-info ">
   1226     <div class="user-action-time">
   1227         <a href="/posts/53900430/revisions" title="show all edits to this post"
   1228                          class="js-gps-track"
   1229                          data-gps-track="post.click({ item: 4, priv: 0, post_type: 2 })">edited <span title='2018-12-23 01:02:09Z' class='relativetime'>Dec 23, 2018 at 1:02</span></a>
   1230     </div>
   1231     <div class="user-gravatar32">
   1232         
   1233     </div>
   1234     <div class="user-details">
   1235         
   1236         <div class="-flair">
   1237             
   1238         </div>
   1239     </div>
   1240 </div>
   1241             </div>
   1242 
   1243 
   1244             <div class="post-signature flex--item fl0">
   1245                 <div class="user-info user-hover">
   1246     <div class="user-action-time">
   1247         answered <span title='2018-12-23 00:56:34Z' class='relativetime'>Dec 23, 2018 at 0:56</span>
   1248     </div>
   1249     <div class="user-gravatar32">
   1250         <a href="/users/1475978/nominal-animal"><div class="gravatar-wrapper-32"><img src="https://i.stack.imgur.com/CUdQt.png?s=64&amp;g=1" alt="Nominal Animal&#39;s user avatar" width="32" height="32" class="bar-sm"></div></a>
   1251     </div>
   1252     <div class="user-details" itemprop="author" itemscope itemtype="http://schema.org/Person">
   1253         <a href="/users/1475978/nominal-animal">Nominal Animal</a><span class="d-none" itemprop="name">Nominal Animal</span>
   1254         <div class="-flair">
   1255             <span class="reputation-score" title="reputation score 38,566" dir="ltr">38.6k</span><span title="5 gold badges" aria-hidden="true"><span class="badge1"></span><span class="badgecount">5</span></span><span class="v-visible-sr">5 gold badges</span><span title="60 silver badges" aria-hidden="true"><span class="badge2"></span><span class="badgecount">60</span></span><span class="v-visible-sr">60 silver badges</span><span title="89 bronze badges" aria-hidden="true"><span class="badge3"></span><span class="badgecount">89</span></span><span class="v-visible-sr">89 bronze badges</span>
   1256         </div>
   1257     </div>
   1258 </div>
   1259 
   1260 
   1261             </div>
   1262         </div>
   1263         
   1264     
   1265     </div>
   1266     
   1267 </div>
   1268 
   1269 
   1270 
   1271 
   1272             <span class="d-none" itemprop="commentCount"></span> 
   1273     <div class="post-layout--right js-post-comments-component">
   1274         <div id="comments-53900430" class="comments js-comments-container bt bc-black-200 mt12  dno" data-post-id="53900430" data-min-length="15">
   1275             <ul class="comments-list js-comments-list"
   1276                     data-remaining-comments-count="0"
   1277                     data-canpost="false"
   1278                     data-cansee="true"
   1279                     data-comments-unavailable="false"
   1280                     data-addlink-disabled="true">
   1281 
   1282             </ul>
   1283 	    </div>
   1284 
   1285         <div id="comments-link-53900430" data-rep=50 data-anon=true>
   1286                     <a class="js-add-link comments-link disabled-link" title="Use comments to ask for more information or suggest improvements. Avoid comments like &#x201C;&#x2B;1&#x201D; or &#x201C;thanks&#x201D;."  href="#" role="button">Add a comment</a>
   1287                 <span class="js-link-separator dno">&nbsp;|&nbsp;</span>
   1288             <a class="js-show-link comments-link dno" title="Expand to show all comments on this post" href=# onclick="" role="button"></a>
   1289         </div>         
   1290     </div>
   1291     </div>
   1292 </div>
   1293 
   1294 <div class="js-zone-container zone-container-main">
   1295     <div id="dfp-mlb" class="everyonelovesstackoverflow everyoneloves__mid-leaderboard everyoneloves__leaderboard"></div>
   1296 		<div class="js-report-ad-button-container " style="width: 728px"></div>
   1297 </div>
   1298                                     
   1299 <a name="53886716"></a>
   1300 <div id="answer-53886716" class="answer js-answer accepted-answer js-accepted-answer" data-answerid="53886716" data-parentid="53886131" data-score="2" data-position-on-page="2" data-highest-scored="0" data-question-has-accepted-highest-score="0"  itemprop="suggestedAnswer" itemscope itemtype="https://schema.org/Answer">
   1301     <div class="post-layout">
   1302         <div class="votecell post-layout--left">
   1303             <div class="js-voting-container d-flex jc-center fd-column ai-stretch gs4 fc-black-300" data-post-id="53886716" data-referrer="None">
   1304         <button class="js-vote-up-btn flex--item s-btn ba bar-pill c-pointer as-center bc-black-225 fc-black-500 h:bg-theme-primary-200"
   1305                 data-controller="s-tooltip"
   1306                 data-s-tooltip-placement="right"
   1307                 title="This answer is useful"
   1308                 aria-pressed="false"
   1309                 aria-label="Up vote"
   1310                 data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100"
   1311                 data-unselected-classes="bc-black-225 fc-black-500 h:bg-theme-primary-200">
   1312             <svg aria-hidden="true" class="svg-icon iconArrowUp" width="18" height="18"  viewBox="0 0 18 18"><path  d="M1 12h16L9 4l-8 8Z"/></svg>
   1313         </button>
   1314         <div class="js-vote-count flex--item d-flex fd-column ai-center fc-theme-body-font fw-bold fs-subheading py4"
   1315              itemprop="upvoteCount"
   1316              data-value="2">
   1317             2
   1318         </div>
   1319         <button class="js-vote-down-btn flex--item mb8 s-btn ba bar-pill c-pointer as-center bc-black-225 fc-black-500 h:bg-theme-primary-200"
   1320                 data-controller="s-tooltip"
   1321                 data-s-tooltip-placement="right"
   1322                 title="This answer is not useful"
   1323                 aria-pressed="false"
   1324                 aria-label="Down vote"
   1325                 data-selected-classes="fc-theme-primary bc-theme-primary bg-theme-primary-100"
   1326                 data-unselected-classes="bc-black-225 fc-black-500 h:bg-theme-primary-200">
   1327             <svg aria-hidden="true" class="svg-icon iconArrowDown" width="18" height="18"  viewBox="0 0 18 18"><path  d="M1 6h16l-8 8-8-8Z"/></svg>
   1328         </button>
   1329 
   1330 
   1331         
   1332 <button class="js-saves-btn s-btn s-btn__unset c-pointer py4"
   1333         type="button"
   1334         id="saves-btn-53886716"
   1335         data-controller="s-tooltip"
   1336         data-s-tooltip-placement="right"
   1337         data-s-popover-placement=""
   1338         title="Save this answer."
   1339         aria-pressed="false"
   1340         data-post-id="53886716"
   1341         data-post-type-id="2"
   1342         data-user-privilege-for-post-click="0"
   1343         aria-controls=""
   1344         data-s-popover-auto-show="false"
   1345 >
   1346     <svg aria-hidden="true" class="fc-theme-primary-400 js-saves-btn-selected d-none svg-icon iconBookmark" width="18" height="18"  viewBox="0 0 18 18"><path  d="M3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"/></svg>
   1347     <svg aria-hidden="true" class="js-saves-btn-unselected svg-icon iconBookmarkAlt" width="18" height="18"  viewBox="0 0 18 18"><path  d="m9 10.6 4 2.66V3H5v10.26l4-2.66ZM3 17V3c0-1.1.9-2 2-2h8a2 2 0 0 1 2 2v14l-6-4-6 4Z"/></svg>
   1348 </button>
   1349 
   1350 
   1351 
   1352 
   1353 
   1354 
   1355 
   1356             <div class="js-accepted-answer-indicator flex--item fc-green-400 py6 mtn8" data-s-tooltip-placement="right" title="Loading when this answer was accepted&#x2026;" tabindex="0" role="note" aria-label="Accepted">
   1357                 <div class="ta-center">
   1358                     <svg aria-hidden="true" class="svg-icon iconCheckmarkLg" width="36" height="36"  viewBox="0 0 36 36"><path  d="m6 14 8 8L30 6v8L14 30l-8-8v-8Z"/></svg>
   1359                 </div>
   1360             </div>
   1361 
   1362     
   1363     <a class="js-post-issue flex--item s-btn s-btn__unset c-pointer py6 mx-auto" href="/posts/53886716/timeline" data-shortcut="T" data-ks-title="timeline" data-controller="s-tooltip" data-s-tooltip-placement="right" title="Show activity on this post." aria-label="Timeline"><svg aria-hidden="true" class="mln2 mr0 svg-icon iconHistory" width="19" height="18"  viewBox="0 0 19 18"><path  d="M3 9a8 8 0 1 1 3.73 6.77L8.2 14.3A6 6 0 1 0 5 9l3.01-.01-4 4-4-4h3L3 9Zm7-4h1.01L11 9.36l3.22 2.1-.6.93L10 10V5Z"/></svg></a>
   1364 
   1365 </div>
   1366 
   1367         </div>
   1368 
   1369         
   1370 
   1371 <div class="answercell post-layout--right">
   1372     
   1373     <div class="s-prose js-post-body" itemprop="text">
   1374 <p>The C code in the wikipedia article is somewhat misleading:</p>
   1375 
   1376 <p>Here is a working example that uses both the 32 bit and the 64 bit versions:</p>
   1377 
   1378 <pre><code>#include &lt;stdio.h&gt;
   1379 #include &lt;stdint.h&gt;
   1380 
   1381 /* The state word must be initialized to non-zero */
   1382 uint32_t xorshift32(uint32_t state[])
   1383 {
   1384   /* Algorithm "xor" from p. 4 of Marsaglia, "Xorshift RNGs" */
   1385   uint32_t x = state[0];
   1386   x ^= x &lt;&lt; 13;
   1387   x ^= x &gt;&gt; 17;
   1388   x ^= x &lt;&lt; 5;
   1389   state[0] = x;
   1390   return x;
   1391 }
   1392 
   1393 uint64_t xorshift64(uint64_t state[])
   1394 {
   1395   uint64_t x = state[0];
   1396   x ^= x &lt;&lt; 13;
   1397   x ^= x &gt;&gt; 7;
   1398   x ^= x &lt;&lt; 17;
   1399   state[0] = x;
   1400   return x;
   1401 }
   1402 
   1403 int main()
   1404 {
   1405   uint32_t state[1] = {1234};  // "seed" (can be anthing but 0)
   1406 
   1407   for (int i = 0; i &lt; 50; i++)
   1408   {
   1409     printf("%u\n", xorshift32(state));
   1410   }
   1411 
   1412   uint64_t state64[1] = { 1234 };  // "seed" (can be anthing but 0)
   1413 
   1414   for (int i = 0; i &lt; 50; i++)
   1415   {
   1416     printf("%llu\n", xorshift64(state64));
   1417   }
   1418 }
   1419 </code></pre>
   1420 
   1421 <p>The mathematical aspects are explained in the wikipedia article and in it's footnotes.</p>
   1422 
   1423 <p>The rest is basic C language knowledge,  <code>^</code> is the C bitwise XOR operator.</p>
   1424     </div>
   1425     <div class="mt24">
   1426         <div class="d-flex fw-wrap ai-start jc-end gs8 gsy">
   1427             <time itemprop="dateCreated" datetime="2018-12-21T14:48:07"></time>
   1428             <div class="flex--item mr16" style="flex: 1 1 100px;">
   1429                 
   1430 
   1431 
   1432 <div class="js-post-menu pt2" data-post-id="53886716" data-post-type-id="2">
   1433 
   1434     <div class="d-flex gs8 s-anchors s-anchors__muted fw-wrap">
   1435 
   1436         <div class="flex--item">
   1437             <a href="/a/53886716"
   1438                rel="nofollow"
   1439                itemprop="url"
   1440                class="js-share-link js-gps-track"
   1441                title="Short permalink to this answer"
   1442                data-gps-track="post.click({ item: 2, priv: 0, post_type: 2 })"
   1443                data-controller="se-share-sheet"
   1444                data-se-share-sheet-title="Share a link to this answer"
   1445                data-se-share-sheet-subtitle=""
   1446                data-se-share-sheet-post-type="answer"
   1447                data-se-share-sheet-social="facebook twitter devto"
   1448                data-se-share-sheet-location="2"
   1449                data-se-share-sheet-license-url="https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f4.0%2f"
   1450                data-se-share-sheet-license-name="CC BY-SA 4.0"
   1451                data-s-popover-placement="bottom-start">Share</a>
   1452         </div>
   1453 
   1454 
   1455 
   1456                 <div class="flex--item">
   1457                     <button type="button"
   1458                             id="btnFollowPost-53886716" class="s-btn s-btn__link js-follow-post js-follow-answer js-gps-track"
   1459                             data-gps-track="post.click({ item: 14, priv: 0, post_type: 2 })"
   1460                             data-controller="s-tooltip " data-s-tooltip-placement="bottom"
   1461                             data-s-popover-placement="bottom" aria-controls=""
   1462                             title="Follow this answer to receive notifications">
   1463                         Follow
   1464                     </button>
   1465                 </div>
   1466 
   1467 
   1468 
   1469 
   1470 
   1471 
   1472     </div>
   1473     <div class="js-menu-popup-container"></div>
   1474 </div>
   1475             </div>
   1476 
   1477 
   1478             <div class="post-signature flex--item fl0">
   1479                 <div class="user-info ">
   1480     <div class="user-action-time">
   1481         answered <span title='2018-12-21 14:48:07Z' class='relativetime'>Dec 21, 2018 at 14:48</span>
   1482     </div>
   1483     <div class="user-gravatar32">
   1484         <a href="/users/898348/jabberwocky"><div class="gravatar-wrapper-32"><img src="https://www.gravatar.com/avatar/13b3f2c44ba8449bd60764d07f4538dc?s=64&amp;d=identicon&amp;r=PG" alt="Jabberwocky&#39;s user avatar" width="32" height="32" class="bar-sm"></div></a>
   1485     </div>
   1486     <div class="user-details" itemprop="author" itemscope itemtype="http://schema.org/Person">
   1487         <a href="/users/898348/jabberwocky">Jabberwocky</a><span class="d-none" itemprop="name">Jabberwocky</span>
   1488         <div class="-flair">
   1489             <span class="reputation-score" title="reputation score 48,830" dir="ltr">48.8k</span><span title="18 gold badges" aria-hidden="true"><span class="badge1"></span><span class="badgecount">18</span></span><span class="v-visible-sr">18 gold badges</span><span title="65 silver badges" aria-hidden="true"><span class="badge2"></span><span class="badgecount">65</span></span><span class="v-visible-sr">65 silver badges</span><span title="116 bronze badges" aria-hidden="true"><span class="badge3"></span><span class="badgecount">116</span></span><span class="v-visible-sr">116 bronze badges</span>
   1490         </div>
   1491     </div>
   1492 </div>
   1493 
   1494 
   1495             </div>
   1496         </div>
   1497         
   1498     
   1499     </div>
   1500     
   1501 </div>
   1502 
   1503 
   1504 
   1505 
   1506             <span class="d-none" itemprop="commentCount"></span> 
   1507     <div class="post-layout--right js-post-comments-component">
   1508         <div id="comments-53886716" class="comments js-comments-container bt bc-black-200 mt12  dno" data-post-id="53886716" data-min-length="15">
   1509             <ul class="comments-list js-comments-list"
   1510                     data-remaining-comments-count="0"
   1511                     data-canpost="false"
   1512                     data-cansee="true"
   1513                     data-comments-unavailable="false"
   1514                     data-addlink-disabled="true">
   1515 
   1516             </ul>
   1517 	    </div>
   1518 
   1519         <div id="comments-link-53886716" data-rep=50 data-anon=true>
   1520                     <a class="js-add-link comments-link disabled-link" title="Use comments to ask for more information or suggest improvements. Avoid comments like &#x201C;&#x2B;1&#x201D; or &#x201C;thanks&#x201D;."  href="#" role="button">Add a comment</a>
   1521                 <span class="js-link-separator dno">&nbsp;|&nbsp;</span>
   1522             <a class="js-show-link comments-link dno" title="Expand to show all comments on this post" href=# onclick="" role="button"></a>
   1523         </div>         
   1524     </div>
   1525     </div>
   1526 </div>
   1527 
   1528 
   1529                         <a name='new-answer'></a>
   1530                             <form id="post-form" action="/questions/53886131/answer/submit" method="post" class="js-add-answer-component post-form">
   1531                                 <input type="hidden" id="post-id" value="53886131" />
   1532                                 <input type="hidden" id="qualityBanWarningShown" name="qualityBanWarningShown" value="false" />
   1533                                 <input type="hidden" name="referrer" value="" />
   1534                                 <h2 class="space" id="your-answer-header">
   1535                                     Your Answer
   1536                                 </h2>
   1537                                     
   1538 
   1539     <script>
   1540         StackExchange.ifUsing("editor", function () {
   1541             StackExchange.using("externalEditor", function () {
   1542                 StackExchange.using("snippets", function () {
   1543                     StackExchange.snippets.init();
   1544                 });
   1545             });
   1546         }, "code-snippets");
   1547     </script>
   1548 
   1549 
   1550 <script>
   1551     StackExchange.ready(function() {
   1552         var channelOptions = {
   1553             tags: "".split(" "),
   1554             id: "1"
   1555         };
   1556         initTagRenderer("".split(" "), "".split(" "), channelOptions);
   1557 
   1558         StackExchange.using("externalEditor", function() {
   1559             // Have to fire editor after snippets, if snippets enabled
   1560             if (StackExchange.settings.snippets.snippetsEnabled) {
   1561                 StackExchange.using("snippets", function() {
   1562                     createEditor();
   1563                 });
   1564             }
   1565             else {
   1566                 createEditor();
   1567             }
   1568         });
   1569 
   1570         function createEditor() {
   1571             StackExchange.prepareEditor({
   1572                 useStacksEditor: false,
   1573                 heartbeatType: 'answer',
   1574                 autoActivateHeartbeat: false,
   1575                 convertImagesToLinks: true,
   1576                 noModals: true,
   1577                 showLowRepImageUploadWarning: true,
   1578                 reputationToPostImages: 10,
   1579                 bindNavPrevention: true,
   1580                 postfix: "",
   1581                 imageUploader: {
   1582                     brandingHtml: "Powered by \u003ca href=\"https://imgur.com/\"\u003e\u003csvg class=\"svg-icon\" width=\"50\" height=\"18\" viewBox=\"0 0 50 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\u003e\u003ctitle\u003eImgur Logo\u003c/title\u003e\u003cpath d=\"M46.1709 9.17788C46.1709 8.26454 46.2665 7.94324 47.1084 7.58816C47.4091 7.46349 47.7169 7.36433 48.0099 7.26993C48.9099 6.97997 49.672 6.73443 49.672 5.93063C49.672 5.22043 48.9832 4.61182 48.1414 4.61182C47.4335 4.61182 46.7256 4.91628 46.0943 5.50789C45.7307 4.9328 45.2525 4.66231 44.6595 4.66231C43.6264 4.66231 43.1481 5.28821 43.1481 6.59048V11.9512C43.1481 13.2535 43.6264 13.8962 44.6595 13.8962C45.6924 13.8962 46.1709 13.2535 46.1709 11.9512V9.17788Z\"/\u003e\u003cpath d=\"M32.492 10.1419C32.492 12.6954 34.1182 14.0484 37.0451 14.0484C39.9723 14.0484 41.5985 12.6954 41.5985 10.1419V6.59049C41.5985 5.28821 41.1394 4.66232 40.1061 4.66232C39.0732 4.66232 38.5948 5.28821 38.5948 6.59049V9.60062C38.5948 10.8521 38.2696 11.5455 37.0451 11.5455C35.8209 11.5455 35.4954 10.8521 35.4954 9.60062V6.59049C35.4954 5.28821 35.0173 4.66232 34.0034 4.66232C32.9703 4.66232 32.492 5.28821 32.492 6.59049V10.1419Z\" /\u003e\u003cpath fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M25.6622 17.6335C27.8049 17.6335 29.3739 16.9402 30.2537 15.6379C30.8468 14.7755 30.9615 13.5579 30.9615 11.9512V6.59049C30.9615 5.28821 30.4833 4.66231 29.4502 4.66231C28.9913 4.66231 28.4555 4.94978 28.1109 5.50789C27.499 4.86533 26.7335 4.56087 25.7005 4.56087C23.1369 4.56087 21.0134 6.57349 21.0134 9.27932C21.0134 11.9852 23.003 13.913 25.3754 13.913C26.5612 13.913 27.4607 13.4902 28.1109 12.6616C28.1109 12.7229 28.1161 12.7799 28.121 12.8346C28.1256 12.8854 28.1301 12.9342 28.1301 12.983C28.1301 14.4373 27.2502 15.2321 25.777 15.2321C24.8349 15.2321 24.1352 14.9821 23.5661 14.7787C23.176 14.6393 22.8472 14.5218 22.5437 14.5218C21.7977 14.5218 21.2429 15.0123 21.2429 15.6887C21.2429 16.7375 22.9072 17.6335 25.6622 17.6335ZM24.1317 9.27932C24.1317 7.94324 24.9928 7.09766 26.1024 7.09766C27.2119 7.09766 28.0918 7.94324 28.0918 9.27932C28.0918 10.6321 27.2311 11.5116 26.1024 11.5116C24.9737 11.5116 24.1317 10.6491 24.1317 9.27932Z\"/\u003e\u003cpath d=\"M16.8045 11.9512C16.8045 13.2535 17.2637 13.8962 18.2965 13.8962C19.3298 13.8962 19.8079 13.2535 19.8079 11.9512V8.12928C19.8079 5.82936 18.4879 4.62866 16.4027 4.62866C15.1594 4.62866 14.279 4.98375 13.3609 5.88013C12.653 5.05154 11.6581 4.62866 10.3573 4.62866C9.34336 4.62866 8.57809 4.89931 7.9466 5.5079C7.58314 4.9328 7.10506 4.66232 6.51203 4.66232C5.47873 4.66232 5.00066 5.28821 5.00066 6.59049V11.9512C5.00066 13.2535 5.47873 13.8962 6.51203 13.8962C7.54479 13.8962 8.0232 13.2535 8.0232 11.9512V8.90741C8.0232 7.58817 8.44431 6.91179 9.53458 6.91179C10.5104 6.91179 10.893 7.58817 10.893 8.94108V11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.9157 13.2535 13.9157 11.9512V8.90741C13.9157 7.58817 14.3365 6.91179 15.4269 6.91179C16.4027 6.91179 16.8045 7.58817 16.8045 8.94108V11.9512Z\"/\u003e\u003cpath d=\"M3.31675 6.59049C3.31675 5.28821 2.83866 4.66232 1.82471 4.66232C0.791758 4.66232 0.313354 5.28821 0.313354 6.59049V11.9512C0.313354 13.2535 0.791758 13.8962 1.82471 13.8962C2.85798 13.8962 3.31675 13.2535 3.31675 11.9512V6.59049Z\" /\u003e\u003cpath d=\"M1.87209 0.400291C0.843612 0.400291 0 1.1159 0 1.98861C0 2.87869 0.822846 3.57676 1.87209 3.57676C2.90056 3.57676 3.7234 2.87869 3.7234 1.98861C3.7234 1.1159 2.90056 0.400291 1.87209 0.400291Z\" fill=\"#1BB76E\"/\u003e\u003c/svg\u003e\u003c/a\u003e",
   1583                     contentPolicyHtml: "User contributions licensed under \u003ca href=\"https://stackoverflow.com/help/licensing\"\u003eCC BY-SA\u003c/a\u003e \u003ca href=\"https://stackoverflow.com/legal/acceptable-use-policy\"\u003e(content policy)\u003c/a\u003e",
   1584                     allowUrls: true
   1585                 },
   1586                 onDemand: true,
   1587                 discardSelector: ".discard-answer",
   1588                 enableTables: true,
   1589                 isStacksEditorPreviewEnabled: false
   1590                 ,immediatelyShowMarkdownHelp:true,enableTables:true,enableSnippets:true
   1591             });
   1592                     }
   1593     });
   1594 </script>
   1595 <div id="post-editor" class="post-editor js-post-editor">
   1596 
   1597 
   1598         <div class="ps-relative">
   1599             <div class="wmd-container mb8">
   1600                 <div id="wmd-button-bar" class="wmd-button-bar btr-sm"></div>
   1601                 <div class="js-stacks-validation">
   1602                     <div class="ps-relative">
   1603                         <textarea id="wmd-input"
   1604                                   name="post-text"
   1605                                   class="wmd-input s-input bar0 js-post-body-field"
   1606                                   data-editor-type="wmd"
   1607                                   data-post-type-id="2"
   1608                                   cols="92" rows="15"
   1609                                   aria-labelledby="your-answer-header"
   1610                                   tabindex="101"
   1611                                   data-min-length=""></textarea>
   1612                     </div>
   1613                     <div class="s-input-message mt4 d-none js-stacks-validation-message"></div>
   1614                 </div>
   1615             </div>
   1616         </div>
   1617 
   1618     <aside class="d-flex ai-start jc-space-between js-answer-help s-notice s-notice__warning pb0 pr4 pt4 mb8 d-none" role="status" aria-hidden="true">
   1619     <div class="flex--item pt8">
   1620         <p>Thanks for contributing an answer to Stack Overflow!</p><ul><li>Please be sure to <em>answer the question</em>. Provide details and share your research!</li></ul><p>But <em>avoid</em> …</p><ul><li>Asking for help, clarification, or responding to other answers.</li><li>Making statements based on opinion; back them up with references or personal experience.</li></ul><p>To learn more, see our <a href="/help/how-to-answer">tips on writing great answers</a>.</p>
   1621     </div>
   1622     <button class="flex--item js-answer-help-close-btn s-btn s-btn__muted fc-black-600">
   1623         <svg aria-hidden="true" class="svg-icon iconClear" width="18" height="18"  viewBox="0 0 18 18"><path  d="M15 4.41 13.59 3 9 7.59 4.41 3 3 4.41 7.59 9 3 13.59 4.41 15 9 10.41 13.59 15 15 13.59 10.41 9 15 4.41Z"/></svg>
   1624     </button>
   1625 </aside>
   1626 
   1627 
   1628 
   1629     <div>
   1630         <div id="draft-saved" class="fc-success h24" style="display:none;">Draft saved</div>
   1631         <div id="draft-discarded" class="fc-error h24" style="display:none;">Draft discarded</div>
   1632     </div>
   1633 
   1634 
   1635             <div id="wmd-preview" class="s-prose mb16 wmd-preview js-wmd-preview"></div>
   1636             <div></div>
   1637 
   1638         <div class="edit-block">
   1639             <input id="fkey" name="fkey" type="hidden" value="d8a1f9f0d8241e1b245c6f93920897c7b1457a3e09f1f846dafb3a27efbe14a3">
   1640             <input id="author" name="author" type="text">
   1641         </div>
   1642 
   1643 </div>
   1644 
   1645 
   1646                                 <div class="ps-relative">
   1647                                                 <div class="form-item dno new-post-login p0 my16">
   1648                 <div class="d-flex gs16 md:fd-column new-login-form">
   1649                     <div class="d-flex fd-column w50 md:w-auto gsy gs8 jc-space-between new-login-left">
   1650                         <h3 class="flex--item fs-title">Sign up or <a id="login-link" href="/users/login?ssrc=question_page&returnurl=https%3a%2f%2fstackoverflow.com%2fquestions%2f53886131%2fhow-does-xorshift32-works%23new-answer">log in</a></h3>
   1651                         <script>
   1652                             StackExchange.ready(function () {
   1653                                 StackExchange.helpers.onClickDraftSave('#login-link');
   1654                             });
   1655                         </script>
   1656                         <div class="flex--item s-btn s-btn__muted s-btn__outlined s-btn__icon google-login" data-ga="[&quot;sign up&quot;,&quot;Sign Up Started - Google&quot;,&quot;New Post&quot;,null,null]">
   1657                             <svg aria-hidden="true" class="native svg-icon iconGoogle" width="18" height="18"  viewBox="0 0 18 18"><path fill="#4285F4" d="M16.51 8H8.98v3h4.3c-.18 1-.74 1.48-1.6 2.04v2.01h2.6a7.8 7.8 0 0 0 2.38-5.88c0-.57-.05-.66-.15-1.18Z"/><path fill="#34A853" d="M8.98 17c2.16 0 3.97-.72 5.3-1.94l-2.6-2a4.8 4.8 0 0 1-7.18-2.54H1.83v2.07A8 8 0 0 0 8.98 17Z"/><path fill="#FBBC05" d="M4.5 10.52a4.8 4.8 0 0 1 0-3.04V5.41H1.83a8 8 0 0 0 0 7.18l2.67-2.07Z"/><path fill="#EA4335" d="M8.98 4.18c1.17 0 2.23.4 3.06 1.2l2.3-2.3A8 8 0 0 0 1.83 5.4L4.5 7.49a4.77 4.77 0 0 1 4.48-3.3Z"/></svg> Sign up using Google
   1658                         </div>
   1659                         <div class="flex--item s-btn s-btn__muted s-btn__icon facebook-login" data-ga="[&quot;sign up&quot;,&quot;Sign Up Started - Facebook&quot;,&quot;New Post&quot;,null,null]">
   1660                             <svg aria-hidden="true" class="svg-icon iconFacebook" width="18" height="18"  viewBox="0 0 18 18"><path fill="#4167B2" d="M3 1a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H3Zm6.55 16v-6.2H7.46V8.4h2.09V6.61c0-2.07 1.26-3.2 3.1-3.2.88 0 1.64.07 1.87.1v2.16h-1.29c-1 0-1.19.48-1.19 1.18V8.4h2.39l-.31 2.42h-2.08V17h-2.5Z"/></svg> Sign up using Facebook
   1661                         </div>
   1662                         <div class="flex--item s-btn s-btn__muted s-btn__outlined s-btn__icon stackexchange-login" data-ga="[&quot;sign up&quot;,&quot;Sign Up Navigation&quot;,&quot;New Post&quot;,null,null]">
   1663                             <svg aria-hidden="true" class="native svg-icon iconLogoGlyphXSm" width="18" height="18" viewBox="0 0 18 18"><path d="M14 16v-5h2v7H2v-7h2v5h10Z" fill="#BCBBBB"/><path d="m12.09.72-1.21.9 4.5 6.07 1.22-.9L12.09.71ZM5 15h8v-2H5v2Zm9.15-5.87L8.35 4.3l.96-1.16 5.8 4.83-.96 1.16Zm-7.7-1.47 6.85 3.19.63-1.37-6.85-3.2-.63 1.38Zm6.53 5L5.4 11.39l.38-1.67 7.42 1.48-.22 1.46Z" fill="#F48024"/></svg> Sign up using Email and Password
   1664                         </div>
   1665                     </div>
   1666                     <input type="hidden" name="use-facebook" class="use-facebook" value="false" />
   1667                     <input type="hidden" name="use-google" class="use-google" value="false" />
   1668                     <button type="button" class="d-none js-submit-openid">Submit</button>
   1669                     <div class="d-flex gsy gs8 fd-column w50 md:w-auto new-login-right form-item p0">
   1670                                 <h3 class="flex--item fs-title">Post as a guest</h3>
   1671             <div class="flex--item">
   1672                 <div class="d-flex gs4 gsy fd-column">
   1673                     <label class="s-label" for="display-name">Name</label>
   1674                     <div class="d-flex ps-relative">
   1675                         <input class="s-input" id="display-name" name="display-name" maxlength="30" type="text" value="" tabindex="105" placeholder="" />
   1676                     </div>
   1677                 </div>
   1678             </div>
   1679             <div class="flex--item">
   1680                 <div class="d-flex gs4 gsy fd-column">
   1681                     <div class="flex--item">
   1682                         <div class="d-flex gs2 gsy fd-column">
   1683                             <label class="flex--item s-label" for="m-address">Email</label>
   1684                             <p class="flex--item s-description">Required, but never shown</p>
   1685                         </div>
   1686                     </div>
   1687                     <div class="d-flex ps-relative">
   1688                         <input class="s-input js-post-email-field" id="m-address" name="m-address" type="text" value="" size="40" tabindex="106" placeholder="" />
   1689                     </div>
   1690                 </div>
   1691             </div>
   1692 
   1693                     </div>
   1694                 </div>
   1695             </div>
   1696             <script>
   1697                 StackExchange.ready(
   1698                     function () {
   1699                         StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53886131%2fhow-does-xorshift32-works%23new-answer', 'question_page');
   1700                     }
   1701                 );
   1702             </script>
   1703             <noscript>
   1704                         <h3 class="flex--item fs-title">Post as a guest</h3>
   1705             <div class="flex--item">
   1706                 <div class="d-flex gs4 gsy fd-column">
   1707                     <label class="s-label" for="display-name">Name</label>
   1708                     <div class="d-flex ps-relative">
   1709                         <input class="s-input" id="display-name" name="display-name" maxlength="30" type="text" value="" tabindex="105" placeholder="" />
   1710                     </div>
   1711                 </div>
   1712             </div>
   1713             <div class="flex--item">
   1714                 <div class="d-flex gs4 gsy fd-column">
   1715                     <div class="flex--item">
   1716                         <div class="d-flex gs2 gsy fd-column">
   1717                             <label class="flex--item s-label" for="m-address">Email</label>
   1718                             <p class="flex--item s-description">Required, but never shown</p>
   1719                         </div>
   1720                     </div>
   1721                     <div class="d-flex ps-relative">
   1722                         <input class="s-input js-post-email-field" id="m-address" name="m-address" type="text" value="" size="40" tabindex="106" placeholder="" />
   1723                     </div>
   1724                 </div>
   1725             </div>
   1726 
   1727             </noscript>
   1728 
   1729                                 </div>
   1730 
   1731                                     <div class="form-submit clear-both d-flex gsx gs4">
   1732                                         <button id="submit-button" class="flex--item s-btn s-btn__filled s-btn__icon" type="submit" tabindex="120" autocomplete="off">
   1733                                             Post Your Answer
   1734                                         </button>
   1735                                         <button class="flex--item s-btn s-btn__danger discard-answer dno">
   1736                                             Discard
   1737                                         </button>
   1738                                             <p class="privacy-policy-agreement">
   1739                                                 By clicking “Post Your Answer”, you agree to our <a href='https://stackoverflow.com/legal/terms-of-service/public' name='tos' target='_blank' class='-link'>terms of service</a> and acknowledge that you have read and understand our <a href='https://stackoverflow.com/legal/privacy-policy' name='privacy' target='_blank' class='-link'>privacy policy</a> and <a href='/conduct' name='conduct' target='_blank' class='-link'>code of conduct</a>.<input type="hidden" name="legalLinksShown" value="1" />
   1740                                             </p>
   1741                                     </div>
   1742                                     <div class="js-general-error general-error clear-both d-none" aria-live="polite"></div>
   1743                             </form>
   1744 
   1745 
   1746                             <h2 class="bottom-notice" data-loc="1">
   1747                                 <div>
   1748 Not the answer you&#x27;re looking for? Browse other questions tagged <ul class='ml0 list-ls-none js-post-tag-list-wrapper d-inline'><li class='d-inline mr4 js-post-tag-list-item'><a href="/questions/tagged/c" class="post-tag" title="show questions tagged &#39;c&#39;" aria-label="show questions tagged &#39;c&#39;" rel="tag" aria-labelledby="tag-c-tooltip-container">c</a></li><li class='d-inline mr4 js-post-tag-list-item'><a href="/questions/tagged/static" class="post-tag" title="show questions tagged &#39;static&#39;" aria-label="show questions tagged &#39;static&#39;" rel="tag" aria-labelledby="tag-static-tooltip-container">static</a></li></ul> or <a href="/questions/ask">ask your own question</a>.                                </div>
   1749                             </h2>
   1750                 </div>
   1751             </div>
   1752 
   1753             
   1754 <div id="sidebar" class="show-votes" role="complementary" aria-label="sidebar">
   1755         
   1756 
   1757     
   1758     <div class="s-sidebarwidget s-sidebarwidget__yellow s-anchors s-anchors__grayscale mb16" data-tracker="cb=1">
   1759         <ul class="d-block p0 m0">
   1760                         <li class="s-sidebarwidget--header s-sidebarwidget__small-bold-text d-flex fc-black-500 d:fc-black-600 bb bbw1">
   1761                             The Overflow Blog
   1762                         </li>
   1763         <li class="s-sidebarwidget--item d-flex px16">
   1764             <div class="flex--item1 fl-shrink0">
   1765 <svg aria-hidden="true" class="va-text-top svg-icon iconPencilSm" width="14" height="14"  viewBox="0 0 14 14"><path fill="#F1B600" d="m2 10.12 6.37-6.43 1.88 1.88L3.88 12H2v-1.88Z"/><path fill="#E87C87" d="m11.1 1.71 1.13 1.12c.2.2.2.51 0 .71L11.1 4.7 9.21 2.86l1.17-1.15c.2-.2.51-.2.71 0Z"/></svg>            </div>
   1766             <div class="flex--item wmn0 ow-break-word">
   1767                 <a href="https://stackoverflow.blog/2023/11/29/how-to-scale-a-business-ready-ai-platform-with-watsonx-q-and-a-with-ibm/" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;The Overflow Blog&quot;,&quot;https://stackoverflow.blog/2023/11/29/how-to-scale-a-business-ready-ai-platform-with-watsonx-q-and-a-with-ibm/&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 1, position: 0 })">How to scale a business-ready AI platform with watsonx: Q&amp;A with IBM</a>
   1768                     <div class="fc-black-400 fs-italic">sponsored post</div>
   1769             </div>
   1770         </li>
   1771         <li class="s-sidebarwidget--item d-flex px16">
   1772             <div class="flex--item1 fl-shrink0">
   1773 <svg aria-hidden="true" class="va-text-top svg-icon iconPencilSm" width="14" height="14"  viewBox="0 0 14 14"><path fill="#F1B600" d="m2 10.12 6.37-6.43 1.88 1.88L3.88 12H2v-1.88Z"/><path fill="#E87C87" d="m11.1 1.71 1.13 1.12c.2.2.2.51 0 .71L11.1 4.7 9.21 2.86l1.17-1.15c.2-.2.51-.2.71 0Z"/></svg>            </div>
   1774             <div class="flex--item wmn0 ow-break-word">
   1775                 <a href="https://stackoverflow.blog/2023/12/01/will-developers-return-to-hostile-offices/" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;The Overflow Blog&quot;,&quot;https://stackoverflow.blog/2023/12/01/will-developers-return-to-hostile-offices/&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 1, position: 1 })">Will developers return to hostile offices?</a>
   1776             </div>
   1777         </li>
   1778                         <li class="s-sidebarwidget--header s-sidebarwidget__small-bold-text d-flex fc-black-500 d:fc-black-600 bb bbw1">
   1779                             Featured on Meta
   1780                         </li>
   1781         <li class="s-sidebarwidget--item d-flex px16">
   1782             <div class="flex--item1 fl-shrink0">
   1783 <div class="favicon favicon-stackexchangemeta" title="Meta Stack Exchange"></div>            </div>
   1784             <div class="flex--item wmn0 ow-break-word">
   1785                 <a href="https://meta.stackexchange.com/questions/394860/were-rolling-back-the-changes-to-the-acceptable-use-policy-aup" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;Featured on Meta&quot;,&quot;https://meta.stackexchange.com/questions/394860/were-rolling-back-the-changes-to-the-acceptable-use-policy-aup&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 3, position: 2 })">We&#39;re rolling back the changes to the Acceptable Use Policy (AUP)</a>
   1786             </div>
   1787         </li>
   1788         <li class="s-sidebarwidget--item d-flex px16">
   1789             <div class="flex--item1 fl-shrink0">
   1790 <div class="favicon favicon-stackexchangemeta" title="Meta Stack Exchange"></div>            </div>
   1791             <div class="flex--item wmn0 ow-break-word">
   1792                 <a href="https://meta.stackexchange.com/questions/395062/seeking-feedback-on-tag-colors-update" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;Featured on Meta&quot;,&quot;https://meta.stackexchange.com/questions/395062/seeking-feedback-on-tag-colors-update&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 3, position: 3 })">Seeking feedback on tag colors update</a>
   1793             </div>
   1794         </li>
   1795         <li class="s-sidebarwidget--item d-flex px16">
   1796             <div class="flex--item1 fl-shrink0">
   1797 <div class="favicon favicon-stackoverflowmeta" title="Meta Stack Overflow"></div>            </div>
   1798             <div class="flex--item wmn0 ow-break-word">
   1799                 <a href="https://meta.stackoverflow.com/questions/427199/collectives-updates-new-features-and-ways-to-get-started-with-discussions" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;Featured on Meta&quot;,&quot;https://meta.stackoverflow.com/questions/427199/collectives-updates-new-features-and-ways-to-get-started-with-discussions&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 6, position: 4 })">Collectives updates: new features and ways to get started with Discussions</a>
   1800             </div>
   1801         </li>
   1802         <li class="s-sidebarwidget--item d-flex px16">
   1803             <div class="flex--item1 fl-shrink0">
   1804 <div class="favicon favicon-stackoverflowmeta" title="Meta Stack Overflow"></div>            </div>
   1805             <div class="flex--item wmn0 ow-break-word">
   1806                 <a href="https://meta.stackoverflow.com/questions/427335/overflowai-alpha-invitation-emails-were-distributed-in-error-nov-28th" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;Featured on Meta&quot;,&quot;https://meta.stackoverflow.com/questions/427335/overflowai-alpha-invitation-emails-were-distributed-in-error-nov-28th&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 6, position: 5 })">OverflowAI Alpha invitation emails were distributed in error Nov 28th</a>
   1807             </div>
   1808         </li>
   1809         <li class="s-sidebarwidget--item d-flex px16">
   1810             <div class="flex--item1 fl-shrink0">
   1811 <div class="favicon favicon-stackoverflowmeta" title="Meta Stack Overflow"></div>            </div>
   1812             <div class="flex--item wmn0 ow-break-word">
   1813                 <a href="https://meta.stackoverflow.com/questions/421831/temporary-policy-generative-ai-e-g-chatgpt-is-banned" class="js-gps-track" data-ga="[&quot;community bulletin board&quot;,&quot;Featured on Meta&quot;,&quot;https://meta.stackoverflow.com/questions/421831/temporary-policy-generative-ai-e-g-chatgpt-is-banned&quot;,null,null]" data-gps-track="communitybulletin.click({ priority: 6, position: 6 })">Temporary policy: Generative AI (e.g., ChatGPT) is banned</a>
   1814             </div>
   1815         </li>
   1816         </ul>
   1817     </div>
   1818 
   1819 
   1820 <div class="js-zone-container zone-container-sidebar">
   1821     <div id="dfp-tsb" class="everyonelovesstackoverflow everyoneloves__top-sidebar"></div>
   1822 		<div class="js-report-ad-button-container " style="width: 300px"></div>
   1823 </div>
   1824 <div class="js-zone-container zone-container-sidebar">
   1825     <div id="dfp-msb" class="everyonelovesstackoverflow everyoneloves__mid-sidebar"></div>
   1826 		<div class="js-report-ad-button-container " style="width: 300px"></div>
   1827 </div>
   1828 <div id="hireme"></div>        <div class="module sidebar-linked">
   1829 	<h4 id="h-linked">Linked</h4>
   1830 	    <div class="linked" data-tracker="lq=1">
   1831             <div class="spacer js-gps-track" data-gps-track="linkedquestion.click({ source_post_id: 53886131, target_question_id: 53900208, position: 0 })">
   1832 				<a href="/q/53900208" title="Question score (upvotes - downvotes)">
   1833 					<div class="answer-votes  default">-2</div>
   1834 				</a>
   1835 				<a href="/questions/53900208/does-rand-function-in-c-have-a-limit?noredirect=1" class="question-hyperlink">Does rand() function in C have a limit?</a>
   1836 			</div>
   1837 	</div>
   1838 </div>
   1839 
   1840 
   1841     
   1842 
   1843 
   1844         <div class="module sidebar-related">
   1845             <h4 id="h-related">Related</h4>
   1846             <div class="related js-gps-related-questions" data-tracker="rq=3">
   1847                     <div class="spacer" data-question-id="249423">
   1848                         <a href="/q/249423" title="Question score (upvotes - downvotes)" >
   1849                             <div class="answer-votes answered-accepted default">86</div>
   1850                         </a>
   1851                         <a href="/questions/249423/how-does-xor-variable-swapping-work" class="question-hyperlink">How does XOR variable swapping work?</a>
   1852                     </div>
   1853                     <div class="spacer" data-question-id="4058339">
   1854                         <a href="/q/4058339" title="Question score (upvotes - downvotes)" >
   1855                             <div class="answer-votes answered-accepted default">5</div>
   1856                         </a>
   1857                         <a href="/questions/4058339/what-is-0xff-and-why-is-it-shifted-24-times" class="question-hyperlink">What is 0xFF and why is it shifted 24 times?</a>
   1858                     </div>
   1859                     <div class="spacer" data-question-id="4749585">
   1860                         <a href="/q/4749585" title="Question score (upvotes - downvotes)" >
   1861                             <div class="answer-votes answered-accepted default">54</div>
   1862                         </a>
   1863                         <a href="/questions/4749585/what-is-the-meaning-of-xor-in-x86-assembly" class="question-hyperlink">What is the meaning of XOR in x86 assembly?</a>
   1864                     </div>
   1865                     <div class="spacer" data-question-id="14713102">
   1866                         <a href="/q/14713102" title="Question score (upvotes - downvotes)" >
   1867                             <div class="answer-votes answered-accepted default">62</div>
   1868                         </a>
   1869                         <a href="/questions/14713102/what-does-and-0xff-do" class="question-hyperlink">What does AND 0xFF do?</a>
   1870                     </div>
   1871                     <div class="spacer" data-question-id="22645109">
   1872                         <a href="/q/22645109" title="Question score (upvotes - downvotes)" >
   1873                             <div class="answer-votes answered-accepted default">3</div>
   1874                         </a>
   1875                         <a href="/questions/22645109/what-is-bitwisexornor-in-x86-control-flow-operations" class="question-hyperlink">What is BitWiseXorNor in X86 control flow operations?</a>
   1876                     </div>
   1877                     <div class="spacer" data-question-id="26662260">
   1878                         <a href="/q/26662260" title="Question score (upvotes - downvotes)" >
   1879                             <div class="answer-votes default">0</div>
   1880                         </a>
   1881                         <a href="/questions/26662260/confused-about-xor-usage-in-x86-assembly" class="question-hyperlink">confused about xor usage in x86 assembly</a>
   1882                     </div>
   1883                     <div class="spacer" data-question-id="34426499">
   1884                         <a href="/q/34426499" title="Question score (upvotes - downvotes)" >
   1885                             <div class="answer-votes default">10</div>
   1886                         </a>
   1887                         <a href="/questions/34426499/what-is-the-real-definition-of-the-xorshift128-algorithm" class="question-hyperlink">What is the real definition of the xorshift128+ algorithm?</a>
   1888                     </div>
   1889                     <div class="spacer" data-question-id="35103741">
   1890                         <a href="/q/35103741" title="Question score (upvotes - downvotes)" >
   1891                             <div class="answer-votes answered-accepted default">10</div>
   1892                         </a>
   1893                         <a href="/questions/35103741/what-is-the-purpose-of-xorps-on-the-same-register" class="question-hyperlink">What is the purpose of xorps on the same register?</a>
   1894                     </div>
   1895                     <div class="spacer" data-question-id="39034557">
   1896                         <a href="/q/39034557" title="Question score (upvotes - downvotes)" >
   1897                             <div class="answer-votes answered-accepted default">3</div>
   1898                         </a>
   1899                         <a href="/questions/39034557/what-does-push-0xffffffff-mean-in-a-function-prologue" class="question-hyperlink">What does `PUSH 0xFFFFFFFF` mean in a function prologue?</a>
   1900                     </div>
   1901                     <div class="spacer" data-question-id="63156224">
   1902                         <a href="/q/63156224" title="Question score (upvotes - downvotes)" >
   1903                             <div class="answer-votes default">0</div>
   1904                         </a>
   1905                         <a href="/questions/63156224/meaning-of-xor-shift" class="question-hyperlink">Meaning of XOR shift</a>
   1906                     </div>
   1907             </div>
   1908         </div>
   1909         <script type="text/javascript">
   1910                  $(document).ready(function() {
   1911                      $(".js-gps-related-questions .spacer").click(function () {
   1912                         fireRelatedEvent($(this).index() + 1, $(this).data('question-id'));
   1913                      });
   1914 
   1915                  function fireRelatedEvent(position, questionId) {
   1916                      StackExchange.using("gps", function() {
   1917                          StackExchange.gps.track('related_questions.click',
   1918                          {
   1919                              position: position,
   1920                              originQuestionId: 53886131,
   1921                              relatedQuestionId: +questionId,
   1922                              location: 'sidebar',
   1923                              source: 'Baseline'
   1924                          });    
   1925                      });
   1926                  }
   1927              });
   1928          </script>
   1929 
   1930 
   1931 
   1932     <div id="hot-network-questions" class="module tex2jax_ignore">
   1933     <h4>
   1934         <a href="https://stackexchange.com/questions?tab=hot"
   1935            class="js-gps-track s-link s-link__inherit" 
   1936            data-gps-track="posts_hot_network.click({ item_type:1, location:11 })">
   1937             Hot Network Questions
   1938         </a>
   1939     </h4>
   1940     <ul>
   1941             <li >
   1942                 <div class="favicon favicon-apple" title="Ask Different"></div><a href="https://apple.stackexchange.com/questions/466985/is-there-a-way-to-set-macos-accent-color-on-a-per-app-basis" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:118 }); posts_hot_network.click({ item_type:2, location:11 })">
   1943                     Is there a way to set macOS&#x27; accent color on a per-app basis?
   1944                 </a>
   1945 
   1946             </li>
   1947             <li >
   1948                 <div class="favicon favicon-space" title="Space Exploration Stack Exchange"></div><a href="https://space.stackexchange.com/questions/64905/are-there-multiple-types-of-utc-time" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:508 }); posts_hot_network.click({ item_type:2, location:11 })">
   1949                     Are there multiple types of UTC time?
   1950                 </a>
   1951 
   1952             </li>
   1953             <li >
   1954                 <div class="favicon favicon-skeptics" title="Skeptics Stack Exchange"></div><a href="https://skeptics.stackexchange.com/questions/56421/did-netanyahu-say-apparently-in-2001-i-actually-stopped-the-oslo-accords" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:212 }); posts_hot_network.click({ item_type:2, location:11 })">
   1955                     Did Netanyahu say (apparently in 2001) &quot;I actually stopped the Oslo Accords&quot;?
   1956                 </a>
   1957 
   1958             </li>
   1959             <li >
   1960                 <div class="favicon favicon-unix" title="Unix &amp; Linux Stack Exchange"></div><a href="https://unix.stackexchange.com/questions/762948/how-can-i-reformat-blocks-of-data-until-the-end-of-the-file-is-reached" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:106 }); posts_hot_network.click({ item_type:2, location:11 })">
   1961                     How can I reformat blocks of data until the end of the file is reached?
   1962                 </a>
   1963 
   1964             </li>
   1965             <li >
   1966                 <div class="favicon favicon-mathoverflow" title="MathOverflow"></div><a href="https://mathoverflow.net/questions/459586/what-are-some-toy-models-for-the-stable-homotopy-groups-of-spheres" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:504 }); posts_hot_network.click({ item_type:2, location:11 })">
   1967                     What are some toy models for the stable homotopy groups of spheres?
   1968                 </a>
   1969 
   1970             </li>
   1971             <li class="dno js-hidden">
   1972                 <div class="favicon favicon-quant" title="Quantitative Finance Stack Exchange"></div><a href="https://quant.stackexchange.com/questions/77580/us-swap-spreads" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:204 }); posts_hot_network.click({ item_type:2, location:11 })">
   1973                     US swap spreads
   1974                 </a>
   1975 
   1976             </li>
   1977             <li class="dno js-hidden">
   1978                 <div class="favicon favicon-codegolf" title="Code Golf Stack Exchange"></div><a href="https://codegolf.stackexchange.com/questions/267235/ungolf-the-wind" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:200 }); posts_hot_network.click({ item_type:2, location:11 })">
   1979                     Ungolf the Wind
   1980                 </a>
   1981 
   1982             </li>
   1983             <li class="dno js-hidden">
   1984                 <div class="favicon favicon-worldbuilding" title="Worldbuilding Stack Exchange"></div><a href="https://worldbuilding.stackexchange.com/questions/251606/what-would-the-effects-of-a-space-based-laser-weapon-system-capable-of-tracking" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:579 }); posts_hot_network.click({ item_type:2, location:11 })">
   1985                     What would the effects of a space based laser weapon system capable of tracking and destroying any projectile posing a threat to human life?
   1986                 </a>
   1987 
   1988             </li>
   1989             <li class="dno js-hidden">
   1990                 <div class="favicon favicon-scifi" title="Science Fiction &amp; Fantasy Stack Exchange"></div><a href="https://scifi.stackexchange.com/questions/281371/sci-fi-book-where-humanoid-aliens-murder-a-researcher-by-killing-him-and-cutting" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:186 }); posts_hot_network.click({ item_type:2, location:11 })">
   1991                     Sci fi book where humanoid aliens murder a researcher by killing him and cutting him open
   1992                 </a>
   1993 
   1994             </li>
   1995             <li class="dno js-hidden">
   1996                 <div class="favicon favicon-hermeneutics" title="Biblical Hermeneutics Stack Exchange"></div><a href="https://hermeneutics.stackexchange.com/questions/88231/since-the-israelites-had-flocks-and-herds-a-very-large-number-of-livestock-in" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:320 }); posts_hot_network.click({ item_type:2, location:11 })">
   1997                     Since the Israelites had flocks and herds &amp; a very large number of livestock in Chapter 12 of Exodus, why did they complain of hunger in Chapter 16?
   1998                 </a>
   1999 
   2000             </li>
   2001             <li class="dno js-hidden">
   2002                 <div class="favicon favicon-tex" title="TeX - LaTeX Stack Exchange"></div><a href="https://tex.stackexchange.com/questions/702952/rotate-a-set-of-points-in-tikz-figure" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:85 }); posts_hot_network.click({ item_type:2, location:11 })">
   2003                     Rotate a set of points in Tikz figure
   2004                 </a>
   2005 
   2006             </li>
   2007             <li class="dno js-hidden">
   2008                 <div class="favicon favicon-academia" title="Academia Stack Exchange"></div><a href="https://academia.stackexchange.com/questions/204530/advisor-student-collaboration-or-lack-thereof-and-paper-authorship-in-mathemat" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:415 }); posts_hot_network.click({ item_type:2, location:11 })">
   2009                     Advisor-student collaboration (or lack thereof) and paper authorship in mathematics: how does it work?
   2010                 </a>
   2011 
   2012             </li>
   2013             <li class="dno js-hidden">
   2014                 <div class="favicon favicon-rpg" title="Role-playing Games Stack Exchange"></div><a href="https://rpg.stackexchange.com/questions/209385/one-of-pcs-backstabbed-a-powerful-ally-how-do-i-punish-them-without-seeming-lik" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:122 }); posts_hot_network.click({ item_type:2, location:11 })">
   2015                     One of PCs backstabbed a powerful ally. How do I punish them without seeming like singling them out?
   2016                 </a>
   2017 
   2018             </li>
   2019             <li class="dno js-hidden">
   2020                 <div class="favicon favicon-hermeneutics" title="Biblical Hermeneutics Stack Exchange"></div><a href="https://hermeneutics.stackexchange.com/questions/88196/you-search-the-scriptures-how-has-the-democratization-of-access-to-the-scrip" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:320 }); posts_hot_network.click({ item_type:2, location:11 })">
   2021                     &quot;You Search the Scriptures&quot; - How has the democratization of access to the scriptures affected biblical hermeneutics? (John 5:33, 39)
   2022                 </a>
   2023 
   2024             </li>
   2025             <li class="dno js-hidden">
   2026                 <div class="favicon favicon-serverfault" title="Server Fault"></div><a href="https://serverfault.com/questions/1148998/remote-domain-dns-record-a-exists-when-ns-does-not" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:2 }); posts_hot_network.click({ item_type:2, location:11 })">
   2027                     Remote domain: DNS record A exists when NS does not
   2028                 </a>
   2029 
   2030             </li>
   2031             <li class="dno js-hidden">
   2032                 <div class="favicon favicon-superuser" title="Super User"></div><a href="https://superuser.com/questions/1819045/high-memory-usage-after-copying-1-million-small-files-win10-x64" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:3 }); posts_hot_network.click({ item_type:2, location:11 })">
   2033                     High memory usage after copying 1 million small files (Win10 x64)
   2034                 </a>
   2035 
   2036             </li>
   2037             <li class="dno js-hidden">
   2038                 <div class="favicon favicon-tex" title="TeX - LaTeX Stack Exchange"></div><a href="https://tex.stackexchange.com/questions/702984/tree-in-slide-with-pause-for-each-node" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:85 }); posts_hot_network.click({ item_type:2, location:11 })">
   2039                     Tree in slide with pause for each node
   2040                 </a>
   2041 
   2042             </li>
   2043             <li class="dno js-hidden">
   2044                 <div class="favicon favicon-stats" title="Cross Validated"></div><a href="https://stats.stackexchange.com/questions/632905/is-the-relation-not-fosd-transitive" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:65 }); posts_hot_network.click({ item_type:2, location:11 })">
   2045                     Is the relation &quot;not FOSD&quot; transitive?
   2046                 </a>
   2047 
   2048             </li>
   2049             <li class="dno js-hidden">
   2050                 <div class="favicon favicon-rpg" title="Role-playing Games Stack Exchange"></div><a href="https://rpg.stackexchange.com/questions/209352/can-a-creature-controlled-by-dominate-person-warn-his-allies" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:122 }); posts_hot_network.click({ item_type:2, location:11 })">
   2051                     Can a creature controlled by Dominate Person warn his allies?
   2052                 </a>
   2053 
   2054             </li>
   2055             <li class="dno js-hidden">
   2056                 <div class="favicon favicon-mathematica" title="Mathematica Stack Exchange"></div><a href="https://mathematica.stackexchange.com/questions/293501/why-does-mathematica-not-recognize-a-convergent-series" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:387 }); posts_hot_network.click({ item_type:2, location:11 })">
   2057                     Why does Mathematica not recognize a convergent series?
   2058                 </a>
   2059 
   2060             </li>
   2061             <li class="dno js-hidden">
   2062                 <div class="favicon favicon-mathoverflow" title="MathOverflow"></div><a href="https://mathoverflow.net/questions/459657/when-are-the-chirp-signals-orthogonal" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:504 }); posts_hot_network.click({ item_type:2, location:11 })">
   2063                     When are the chirp signals orthogonal?
   2064                 </a>
   2065 
   2066             </li>
   2067             <li class="dno js-hidden">
   2068                 <div class="favicon favicon-law" title="Law Stack Exchange"></div><a href="https://law.stackexchange.com/questions/97650/can-you-ever-be-certain-that-you-will-not-be-tried-for-an-alleged-crime" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:617 }); posts_hot_network.click({ item_type:2, location:11 })">
   2069                     Can you ever be certain that you will not be tried for an alleged crime?
   2070                 </a>
   2071 
   2072             </li>
   2073             <li class="dno js-hidden">
   2074                 <div class="favicon favicon-opensource" title="Open Source Stack Exchange"></div><a href="https://opensource.stackexchange.com/questions/14461/distribute-the-code-as-closed-source-and-the-end-users-download-gplv3-dependenci" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:619 }); posts_hot_network.click({ item_type:2, location:11 })">
   2075                     Distribute the code as closed source and the end users download GPLv3 dependencies separately
   2076                 </a>
   2077 
   2078             </li>
   2079             <li class="dno js-hidden">
   2080                 <div class="favicon favicon-mathoverflow" title="MathOverflow"></div><a href="https://mathoverflow.net/questions/459630/probabilty-measures-that-are-both-discrete-and-continuous" class="js-gps-track question-hyperlink mb0" data-gps-track="site.switch({ item_type:11, target_site:504 }); posts_hot_network.click({ item_type:2, location:11 })">
   2081                     Probabilty measures that are both discrete and continuous
   2082                 </a>
   2083 
   2084             </li>
   2085     </ul>
   2086 
   2087         <a href="#" 
   2088            class="show-more js-show-more js-gps-track" 
   2089            data-gps-track="posts_hot_network.click({ item_type:3, location:11 })">
   2090             more hot questions
   2091         </a>
   2092 </div>
   2093 
   2094                 <div id="feed-link" class="js-feed-link">
   2095         <a href="/feeds/question/53886131" title="Feed of this question and its answers">
   2096             <svg aria-hidden="true" class="fc-orange-400 svg-icon iconRss" width="18" height="18"  viewBox="0 0 18 18"><path  d="M3 1a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H3Zm0 1.5c6.9 0 12.5 5.6 12.5 12.5H13C13 9.55 8.45 5 3 5V2.5Zm0 5c4.08 0 7.5 3.41 7.5 7.5H8c0-2.72-2.28-5-5-5V7.5Zm0 5c1.36 0 2.5 1.14 2.5 2.5H3v-2.5Z"/></svg>
   2097             Question feed
   2098         </a>
   2099     </div>
   2100     <aside class="s-modal js-feed-link-modal" tabindex="-1" role="dialog" aria-labelledby="feed-modal-title" aria-describedby="feed-modal-description" aria-hidden="true">
   2101         <div class="s-modal--dialog js-modal-dialog wmx4" role="document"  data-controller="se-draggable">
   2102             <h1 class="s-modal--header fw-bold js-first-tabbable" id="feed-modal-title" data-se-draggable-target="handle" tabindex="0">
   2103                 Subscribe to RSS
   2104             </h1>
   2105             <div class="d-flex gs4 gsy fd-column">
   2106                 <div class="flex--item">
   2107                     <label class="d-block s-label c-default" for="feed-url">
   2108                         Question feed
   2109                         <p class="s-description mt2" id="feed-modal-description">To subscribe to this RSS feed, copy and paste this URL into your RSS reader.</p>
   2110                     </label>
   2111                 </div>
   2112                 <div class="d-flex ps-relative">
   2113                     <input class="s-input" type="text" name="feed-url" id="feed-url" readonly="readonly" value="https://stackoverflow.com/feeds/question/53886131" />
   2114                     <svg aria-hidden="true" class="s-input-icon fc-orange-400 svg-icon iconRss" width="18" height="18"  viewBox="0 0 18 18"><path  d="M3 1a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h12a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2H3Zm0 1.5c6.9 0 12.5 5.6 12.5 12.5H13C13 9.55 8.45 5 3 5V2.5Zm0 5c4.08 0 7.5 3.41 7.5 7.5H8c0-2.72-2.28-5-5-5V7.5Zm0 5c1.36 0 2.5 1.14 2.5 2.5H3v-2.5Z"/></svg>
   2115                 </div>
   2116             </div>
   2117             <a class="s-modal--close s-btn s-btn__muted js-modal-close js-last-tabbable" href="#" aria-label="Close">
   2118                 <svg aria-hidden="true" class="svg-icon iconClearSm" width="14" height="14"  viewBox="0 0 14 14"><path  d="M12 3.41 10.59 2 7 5.59 3.41 2 2 3.41 5.59 7 2 10.59 3.41 12 7 8.41 10.59 12 12 10.59 8.41 7 12 3.41Z"/></svg>
   2119             </a>
   2120         </div>
   2121     </aside>
   2122 
   2123 </div>
   2124 
   2125     </div>
   2126 <script>StackExchange.ready(function(){$.get('/posts/53886131/ivc/44b3?prg=6dd41def-caf6-4535-a3de-9989d5b377b4');});</script>
   2127 <noscript><div><img src="/posts/53886131/ivc/44b3?prg=6dd41def-caf6-4535-a3de-9989d5b377b4" class="dno" alt="" width="0" height="0"></div></noscript><div style="display:none" id="js-codeblock-lang">lang-c</div></div>
   2128 
   2129                         
   2130 
   2131         </div>
   2132     </div>
   2133 
   2134         
   2135     <script type="text/javascript">
   2136     var cam = cam || { opt: {} };
   2137     var clcGamLoaderOptions = cam || { opt: {} };
   2138     var opt = clcGamLoaderOptions.opt;
   2139 
   2140     opt.omni = 'BwoLCN6N0--Gjro8EAUYs_nYGSACKAI6CnxjfHN0YXRpY3xIAApG75bjgYmyjZw';
   2141     opt.refresh = !1;
   2142     opt.refreshInterval = 90;
   2143     opt.sf = !0;
   2144     opt.hb = !1;
   2145     opt.ll = !0;
   2146     opt.tlb_position = 0;
   2147     opt.personalization_consent = !1;
   2148     opt.targeting_consent = !1;
   2149     opt.performance_consent = !1;
   2150 
   2151     opt.targeting = {Registered:['false'],'so-tag':['c','static'],'tag-reportable':['c','static'],NumberOfAnswers:['2']};
   2152     opt.adReportEnabled = !0;
   2153     opt.adReportUrl = '/ads/report-ad';
   2154     opt.adReportText = 'Report this ad';
   2155 	opt.adReportFileTypeErrorMessage = 'Please select a PNG or JPG file.';
   2156     opt.adReportFileSizeErrorMessage = 'The file must be under 2 MiB.';
   2157 	opt.adReportErrorText = 'Error uploading ad report.';
   2158 	opt.adReportThanksText = 'Thanks for your feedback. We’ll review this against our code of conduct and take action if necessary.';
   2159     opt.adReportLoginExpiredMessage = 'Your login session has expired, please login and try again.';
   2160     opt.adReportLoginErrorMessage = 'An error occurred when loading the report form - please try again';
   2161 	opt.adReportModalClass = 'js-ad-report';
   2162     opt.perRequestGuid = '6dd41def-caf6-4535-a3de-9989d5b377b4';
   2163     opt.responseHash = '9BSpUA/NmChpbbxZI7zponCzkbSH5yedwFAf7V98Pzs=';
   2164 
   2165 
   2166     opt.targeting.TargetingConsent = ['False_Passive'];
   2167 
   2168     const urlParams = new URLSearchParams(window.location.search);
   2169     if (urlParams.has('dfptestads')) {
   2170         const dfptestads = urlParams.get('dfptestads');
   2171         opt.targeting.DfpTestAds = dfptestads;
   2172     }
   2173 </script>
   2174 <script>;(()=>{"use strict";var __webpack_modules__={23:(e,t,s)=>{s.d(t,{Z7:()=>d,eq:()=>a,kG:()=>r});const n=/^\/tags\//.test(location.pathname)||/^\/questions\/tagged\//.test(location.pathname)?"tag-pages":/^\/$/.test(location.pathname)||/^\/home/.test(location.pathname)?"home-page":"question-pages";let o=location.hostname;const i={slots:{lb:[[728,90]],mlb:[[728,90]],smlb:[[728,90]],bmlb:[[728,90]],sb:e=>"dfp-tsb"===e?[[300,250],[300,600]]:[[300,250]],"tag-sponsorship":[[730,135]],"mobile-below-question":[[320,50],[300,250]],msb:[[300,250],[300,600]],"talent-conversion-tracking":[[1,1]],"site-sponsorship":[[230,60]]},ids:{"dfp-tlb":"lb","dfp-mlb":"mlb","dfp-smlb":"smlb","dfp-bmlb":"bmlb","dfp-tsb":"sb","dfp-isb":"sb","dfp-tag":"tag-sponsorship","dfp-msb":"msb","dfp-sspon":"site-sponsorship","dfp-m-aq":"mobile-below-question"},idsToExcludeFromAdReports:["dfp-sspon"]};function r(){return Object.keys(i.ids)}function a(e){return i.idsToExcludeFromAdReports.indexOf(e)<0}function d(e){var t=e.split("_")[0];const s=i.ids[t];let r=i.slots[s];return"function"==typeof r&&(r=r(t)),{path:`/248424177/${o}/${s}/${n}`,sizes:r,zone:s}}},865:(e,t,s)=>{function n(e){return"string"==typeof e?document.getElementById(e):e}function o(e){return!!(e=n(e))&&"none"===getComputedStyle(e).display}function i(e){return!o(e)}function r(e){return!!e}function a(e){return/^\s*$/.test(n(e).innerHTML)}function d(e){const{style:t}=e;t.height=t.maxHeight=t.minHeight="auto",t.display="none"}function l(e){const{style:t}=e;t.height=t.maxHeight=t.minHeight="auto",t.display="none",[].forEach.call(e.children,l)}function c(e){const{style:t}=e;t.height=t.maxHeight=t.minHeight="auto",t.removeProperty("display")}function g(e){const t=document.createElement("script");t.src=e,document.body.appendChild(t)}function p(e){return s=e,(t=[]).push=function(e){return s(),delete this.push,this.push(e)},t;var t,s}function h(e){let t="function"==typeof HTMLTemplateElement;var s=document.createElement(t?"template":"div");return e=e.trim(),s.innerHTML=e,t?s.content.firstChild:s.firstChild}s.d(t,{$Z:()=>c,Bv:()=>h,Gx:()=>g,Nj:()=>n,QZ:()=>p,cf:()=>d,pn:()=>i,wo:()=>l,xb:()=>a,xj:()=>o,yb:()=>r})},763:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{t:()=>AdReports});var _common_helper__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__(865),_console__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__(276),_ad_units__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(23);class AdReports{constructor(e,t){if(this.googletag=e,this.cam=t,this.allowedFileTypes=["image/png","image/jpg","image/jpeg"],this.ignoreValidation=!1,_console__WEBPACK_IMPORTED_MODULE_1__.cM("Ad reporting init"),this.cam=t,this.callOnButtonClick=e=>this.onButtonClick(e),this.googletag.pubads().addEventListener("slotRenderEnded",e=>this.handleSlotRendered(e)),Array.isArray(t.slotsRenderedEvents)){_console__WEBPACK_IMPORTED_MODULE_1__.cM("Adding report button to "+t.slotsRenderedEvents.length+" events that have transpired");for(var s=0;s<t.slotsRenderedEvents.length;s++)this.handleSlotRendered(t.slotsRenderedEvents[s])}}handleSlotRendered(e){if(e&&e.slot&&!e.isEmpty&&(e.creativeId||e.lineItemId||!e.isEmpty)){var t=e.slot.getSlotElementId();if(t){var s=document.getElementById(t);if(s)if((0,_ad_units__WEBPACK_IMPORTED_MODULE_0__.eq)(t)){var n=s?.closest(".js-zone-container")?.querySelector(".js-report-ad-button-container");n.innerHTML="",n.append(this.createButton(e)),n.style.height="24px",_console__WEBPACK_IMPORTED_MODULE_1__.cM("Added report button to the bottom of "+t)}else _console__WEBPACK_IMPORTED_MODULE_1__.cM("Not adding report button to the bottom of "+t+": shouldHaveReportButton = false");else _console__WEBPACK_IMPORTED_MODULE_1__.cM("Not adding report button to the bottom of "+t+": resolved invalid adUnit element")}else _console__WEBPACK_IMPORTED_MODULE_1__.cM("Not adding report button to the bottom of element: invalid adUnitElementId")}else _console__WEBPACK_IMPORTED_MODULE_1__.cM("Not adding report button to the bottom of element: invalid SlotRenderEndedEvent")}async onButtonClick(e){e.preventDefault();let t=e.target;const s=t.dataset.modalUrl,n=t.dataset.googleEventData;return await this.loadModal(s,t,n),!1}createButton(e){let t=document.createElement("button");var s=JSON.stringify(e);return t.dataset.googleEventData=s,t.dataset.modalUrl=this.cam.opt.adReportUrl,t.dataset.adUnit=e.slot.getSlotElementId(),t.classList.add("js-report-ad","s-btn","s-btn__link","fs-fine","mt2","float-right"),t.append(document.createTextNode(this.cam.opt.adReportText)),t.removeEventListener("click",this.callOnButtonClick),t.addEventListener("click",this.callOnButtonClick),t}async loadModal(url,$link,googleEventData){try{await window.StackExchange.helpers.loadModal(url,{returnElements:window.$($link)}),this.initForm(googleEventData)}catch(e){var message="",response=e.responseText?eval(`(${e.responseText})`):null;message=response&&response.isLoggedOut?this.cam.opt.adReportLoginExpiredMessage:this.cam.opt.adReportLoginErrorMessage,window.StackExchange.helpers.showToast(message,{type:"danger"})}}removeModal(){window.StackExchange.helpers.closePopups(document.querySelectorAll("."+this.cam.opt.adReportModalClass),"dismiss")}initForm(e,t=!1){this.ignoreValidation=t,this.$form=document.querySelector(".js-ad-report-form"),this.$googleEventData=this.$form.querySelector(".js-json-data"),this.$adReportReasons=this.$form.querySelectorAll(".js-ad-report-reason"),this.$adReportReasonOther=this.$form.querySelector(".js-ad-report-reason-other"),this.$fileUploaderInput=this.$form.querySelector(".js-file-uploader-input"),this.$imageUploader=this.$form.querySelector(".js-image-uploader"),this.$clearImageUpload=this.$form.querySelector(".js-clear-image-upload"),this.$imageUploaderText=this.$form.querySelector(".js-image-uploader-text"),this.$imageUploaderPreview=this.$form.querySelector(".js-image-uploader-preview"),this.$fileErrorMessage=this.$form.querySelector(".js-file-error");const s=this.$form.querySelector(".js-drag-drop-enabled"),n=this.$form.querySelector(".js-drag-drop-disabled");this.$googleEventData.value=e,this.$adReportReasons.forEach((e,t)=>e.addEventListener("change",e=>{this.$adReportReasonOther.classList.toggle("d-none","3"!==e.target.value)})),this.$fileUploaderInput.addEventListener("change",()=>{this.validateFileInput()&&this.updateImagePreview(this.$fileUploaderInput.files)}),this.$clearImageUpload.addEventListener("click",e=>{e.preventDefault(),this.clearImageUpload()});try{this.$fileUploaderInput[0].value="",this.$imageUploader.addEventListener("dragenter dragover dragleave drop",this.preventDefaults),this.$imageUploader.addEventListener("dragenter dragover",this.handleDragStart),this.$imageUploader.addEventListener("dragleave drop",this.handleDragEnd),this.$imageUploader.addEventListener("drop",this.handleDrop)}catch(e){s.classList.add("d-none"),n.classList.remove("d-none")}this.$form.removeEventListener("",this.handleDragEnd),this.$form.addEventListener("submit",async e=>(e.preventDefault(),this.submitForm(),!1))}clearImageUpload(){this.$fileUploaderInput.value="",this.$imageUploaderPreview.setAttribute("src",""),this.$imageUploaderPreview.classList.add("d-none"),this.$clearImageUpload.classList.add("d-none"),this.$imageUploaderText.classList.remove("d-none"),this.$imageUploader.classList.add("p16","ba","bas-dashed","bc-black-100")}preventDefaults(e){e.preventDefault(),e.stopPropagation()}handleDragStart(e){this.$imageUploader.classList.remove("bas-dashed"),this.$imageUploader.classList.add("bas-solid","bc-black-100")}handleDragEnd(e){this.$imageUploader.classList.remove("bas-solid","bc-black-100"),this.$imageUploader.classList.add("bas-dashed")}handleDrop(e){var t=e.originalEvent.dataTransfer.files;FileReader&&t&&1===t.length&&(this.$fileUploaderInput.files=t,this.validateFileInput()&&this.updateImagePreview(t))}setError(e){this.$fileErrorMessage.parentElement.classList.toggle("has-error",e)}updateImagePreview(e){this.$imageUploader.classList.remove("p16","ba","bas-dashed","bc-black-100"),this.$clearImageUpload.classList.remove("d-none"),this.$imageUploaderText.classList.add("d-none");var t=new FileReader;t.onload=e=>{null!=e.target&&(this.$imageUploaderPreview.setAttribute("src",e.target.result),this.$imageUploaderPreview.classList.remove("d-none"))},t.readAsDataURL(e[0])}validateFileInput(){if(this.ignoreValidation)return!0;const e=this.cam.opt.adReportFileTypeErrorMessage,t=this.cam.opt.adReportFileSizeErrorMessage;if(null==this.$fileUploaderInput.files)return!1;var s=this.$fileUploaderInput.files[0];return null==s?(this.setError(!0),!1):this.allowedFileTypes.indexOf(s.type)<0?(this.$fileErrorMessage.textContent=e,this.$fileErrorMessage.classList.remove("d-none"),this.setError(!0),!1):s.size>2097152?(this.$fileErrorMessage.textContent=t,this.$fileErrorMessage.classList.remove("d-none"),this.setError(!0),!1):(this.$fileErrorMessage.classList.add("d-none"),this.setError(!1),!0)}async gatherDiagnosticInfo(){return{BrowserVersion:await this.getBrowserVersion()}}getElementSource(e){return e.outerHTML}getNestedIFrameElement(e){var t=e.querySelector("iframe");return t.contentDocument?t.contentDocument.documentElement:t.contentWindow.document.documentElement}async getBrowserVersion(){return await navigator.userAgentData.getHighEntropyValues(["fullVersionList"]).then(e=>JSON.stringify(e.fullVersionList))}async submitForm(){if(!this.validateFileInput())return!1;this.$form.querySelector("[type=submit]").setAttribute("disabled","true");var e=JSON.parse(this.$googleEventData.value||"{}");e.Reason=parseInt(this.$form.querySelector(".js-ad-report-reason:checked").value,10),e.Description=this.$adReportReasonOther.value,this.$googleEventData.value=JSON.stringify(e);var t=new FormData(this.$form);if("1"===t.get("shareDiagnosticInfo")){var s=await this.gatherDiagnosticInfo();Object.keys(s).forEach(e=>t.append(e,s[e]))}try{const e=await window.fetch(this.$form.getAttribute("action"),{method:this.$form.getAttribute("method"),body:t,cache:"no-cache"}),s=e.headers.get("content-type")||"",o=await e.text();if(!e.ok)throw new Error("response not valid");if(0===s.indexOf("text/html")){var n=(0,_common_helper__WEBPACK_IMPORTED_MODULE_2__.Bv)(o);const e=n?n.querySelector(".js-modal-content"):null;if(_console__WEBPACK_IMPORTED_MODULE_1__.cM("$popupContent"),_console__WEBPACK_IMPORTED_MODULE_1__.cM(e),!e)throw new Error(`Could not find .js-modal-content in response from ${this.$form.getAttribute("action")}`);document.querySelector(".js-modal-content").replaceWith(e)}else window.StackExchange.helpers.showToast(this.cam.opt.adReportThanksText,{type:"success"}),this.removeModal()}catch(e){window.StackExchange.helpers.showToast(this.cam.opt.adReportErrorText,{type:"danger"})}finally{let e=this.$form.querySelector("[type=submit]");e&&e.removeAttribute("disabled")}}}},276:(e,t,s)=>{function n(...e){}function o(...e){}s.d(t,{cM:()=>n,vU:()=>o})}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var s=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](s,s.exports,__webpack_require__),s.exports}__webpack_require__.d=(e,t)=>{for(var s in t)__webpack_require__.o(t,s)&&!__webpack_require__.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var __webpack_exports__={};(()=>{var e=__webpack_require__(276),t=(e=>(e[e.Above=0]="Above",e[e.Below=1]="Below",e))(t||{});const s=Object.assign({},{"lib":"https://cdn.sstatic.net/clc/js/bundles/gam_loader_script/gam_loader_script.bundle.741.844f6c3cc28ce2d65ae9.min.js","style":null,"u":null,"wa":true,"kt":2000,"tto":true,"h":"clc.stackoverflow.com","allowed":"^(((talent\\.)?stackoverflow)|(blog\\.codinghorror)|(.*\\.googlesyndication)|(serverfault|askubuntu)|([^\\.]+\\.stackexchange))\\.com$","wv":true,"al":false,"abd":true,"cpa_liid":[5882654614],"cpa_cid":[138377597667],"dp":false,"tgt_to":1000,"tgt_u":"https://clc.stackoverflow.com/get-user-acct-tgt","tgt_e":false,"tgt_p":0});var n=__webpack_require__(23),o=__webpack_require__(865),i=__webpack_require__(763);class r{constructor(t,s){this.googletag=t,this.interval=s,e.cM("Ad refresh init. interval: "+s),this.googletag.pubads().addEventListener("impressionViewable",e=>this.onImpressionViewable(e)),e.cM("done enabling ad refresh")}onImpressionViewable(t){var s=t.slot;e.cM("ad refresh - slot "+s.getSlotElementId()+" is viewable, initializing refresh"),this.scheduleRefresh(s)}scheduleRefresh(e){setTimeout(()=>this.refreshAdSlot(e),1e3*this.interval)}static refreshMyAd(t,s){let n=t.pubads().getSlots().find(e=>e.getSlotElementId()===s);n&&(e.cM("refreshMyAd - refreshing ad slot "+s),t.pubads().refresh([n]))}refreshAdSlot(t){var s=t.getSlotElementId();this.isElementVisibleInBrowser(s)?(e.cM("refreshing ad slot "+s),googletag.pubads().refresh([t])):(e.cM("refresh skipped this time; ad slot not viewable:"+s),this.scheduleRefresh(t))}isElementVisibleInBrowser(e){var t=document.getElementById(e);if(null!==t){var s=t.getBoundingClientRect();if(s.top>=0&&s.left>=0&&s.bottom<=(window.innerHeight||document.documentElement.clientHeight)&&s.right<=(window.innerWidth||document.documentElement.clientWidth))return!0}return!1}}var a=(e=>(e.Off="Off",e.PreSurvey="PreSurvey",e.Collect="Collect",e.PostSurvey="PostSurvey",e))(a||{});class d{constructor(e,t){this.lineItemImpressions=[],this.surveysIdsCompleted=[],this.lineItemImpressions=e,this.surveysIdsCompleted=t}addImpression(e,t){let s={brandId:e,lineItemId:t,timestamp:new Date};this.lineItemImpressions.push(s)}addBrandSurveyCompleted(e){-1===this.surveysIdsCompleted.indexOf(e)&&this.surveysIdsCompleted.push(e)}getTotalBrandImpressions(){let e=new Map;for(let t of this.lineItemImpressions)if(e.has(t.brandId)){let s=e.get(t.brandId);e.set(t.brandId,s+1)}else e.set(t.brandId,1);return e}getBrandLineItemImpressions(e){let t={};for(let s of this.lineItemImpressions)if(s.brandId==e)if(void 0!==t[s.lineItemId]){let e=t[s.lineItemId];t[s.lineItemId]=e+1}else t[s.lineItemId]=1;return t}}class l{constructor(){this.surveyEngagementLocalStorageKey="clc-survey-engagement"}getBrandSurveyEngagement(){let e=localStorage.getItem(this.surveyEngagementLocalStorageKey);if(null===e)return new d([],[]);let t=JSON.parse(e);return new d(t.lineItemImpressions,t.surveysIdsCompleted)}saveBrandSurveyEngagement(e){let t=JSON.stringify(e);localStorage.setItem(this.surveyEngagementLocalStorageKey,t)}}class c{constructor(){this.surveyRepository=new l}getBrandSurveyEngagement(){return this.surveyRepository.getBrandSurveyEngagement()}recordImpression(e,t){let s=this.getBrandSurveyEngagement();s.addImpression(e,t),this.surveyRepository.saveBrandSurveyEngagement(s)}recordBrandSurveyCompleted(e){let t=this.getBrandSurveyEngagement();t.addBrandSurveyCompleted(e),this.surveyRepository.saveBrandSurveyEngagement(t)}}class g{constructor(t,s){this.googletag=t,this.brandSettings=s,this.brandSlotMap=new Map,this.brandSurveyEngagementService=new c,e.cM("Brand Survey init: "+JSON.stringify(s)),void 0!==s?(this.googletag.pubads().addEventListener("slotRenderEnded",e=>this.handleSlotRendered(e)),this.googletag.pubads().addEventListener("impressionViewable",e=>this.onImpressionViewable(e)),e.cM("done enabling Brand Survey")):e.cM("Brand Survey init: brandSettings is undefined, not initializing")}handleSlotRendered(t){e.cM("Brand Survey - slot rendered - slot:"+JSON.stringify(t.slot.getSlotElementId())+" lineItem: "+t.lineItemId);let s=this.findItemWithId(t.lineItemId);if(null===s||s.mode!==a.Collect)this.brandSlotMap.delete(t.slot.getSlotElementId());else{let e={brandId:s.brandId,lineItemId:t.lineItemId};this.brandSlotMap.set(t.slot.getSlotElementId(),e)}}onImpressionViewable(t){let s=t.slot;if(e.cM("ad - Brand Survey - impression viewable.  Details: "+JSON.stringify(s.getSlotElementId())),e.cM("ad - Brand Survey - slot "+s.getSlotElementId()+" is viewable"),this.brandSlotMap.has(s.getSlotElementId())){let t=this.brandSlotMap.get(s.getSlotElementId());e.cM("Brand Survey - brand "+t.brandId+" is viewable"),this.recordImpression(this.brandSlotMap.get(s.getSlotElementId()))}}recordImpression(t){e.cM("ad - Brand Survey - recording impression for brand "+t.brandId),this.brandSurveyEngagementService.recordImpression(t.brandId,t.lineItemId)}findItemWithId(t){return e.cM("brand settings: "+JSON.stringify(this.brandSettings)),this.brandSettings.find(e=>e.lineItemIds.includes(t))||null}}const p="response-brand-survey-submit|",h="request-brand-survey-metadata|",m="record-metric-on-server|",u="request-dsp-tags",f="response-dsp-tags|";class v{static refreshAdIfBrandSurveyIsDuplicated(e,t,s){this.alreadyCompletedThisBrandSurvey(t)&&r.refreshMyAd(e,s)}static alreadyCompletedThisBrandSurvey(e){return(new c).getBrandSurveyEngagement().surveysIdsCompleted.includes(e)}}window.cam=new class{constructor(t=null){if(this.gptImported=!1,this.slotsRenderedEvents=[],this.collapsed={},e.cM("constructor"),this.clc_options=s,window.clcGamLoaderOptions)Object.assign(this,window.clcGamLoaderOptions);else if(void 0===this.opt){let e=window.opt;e&&(this.opt=e)}}init(){if(e.cM("init"),void 0===this.opt)throw new Error("opt not set, required by GAM Loader");e.cM("init brand survey service"),this.getUserAccountTargetingPromise=this.getUserAccountTargeting(),e.cM("setup message handler"),window.addEventListener("message",e=>{this.onmessage(e)})}handleSlotRenderedNoAdReport(){if(googletag.pubads().addEventListener("slotRenderEnded",e=>this.applyExtraMarginBottom(e)),Array.isArray(this.slotsRenderedEvents))for(var e=0;e<this.slotsRenderedEvents.length;e++)this.applyExtraMarginBottom(this.slotsRenderedEvents[e])}onmessage(t){let s="omni";if(t.data&&("string"==typeof t.data||t.data instanceof String))if(0===t.data.indexOf("get-omni-")){e.cM("Recevied get-omni message, sending back omni");var n=t.source,i=this.opt.omni,r="string"==typeof i?i:"";n.postMessage([s,r,this.opt.perRequestGuid].join("|"),"*")}else if(0===t.data.indexOf("collapse-")){e.cM("Recevied collapse message, collapse ad iframe"),e.cM(t);for(var a=t.source.window,d=document.getElementsByTagName("IFRAME"),l=0;l<d.length;l++){var g=d[l];if(g.contentWindow==a)return void(0,o.wo)(g.parentElement.parentElement.parentElement)}}else if(0===t.data.indexOf("resize|")){e.cM("Recevied resize message, resize ad iframe"),e.cM(t);let s=this._getFrameByEvent(t),n=t.data.indexOf("|")+1,o=t.data.slice(n),i=parseFloat(o)+.5;e.cM("New iframe height "+i),s.height=i.toString(),s.parentElement.style.height=i.toString()+"px"}else if(0===t.data.indexOf("getmarkup|")){let s=t.data.indexOf("|")+1,n=t.data.slice(s);e.cM("Recevied get markup message: "+n);let o=this._getFrameByEvent(t).closest(".everyonelovesstackoverflow");const i=document.createElement("script");i.dataset.adZoneId=o.id,i.src=n,document.body.appendChild(i)}else if(0===t.data.indexOf("window-location|")){let s=t.data.indexOf("|")+1,n=t.data.slice(s);e.cM("Recevied window location message: "+n),n.startsWith("/")||(n="/"+n),window.open(window.location.protocol+"//"+window.location.host+n,"_blank")}else if(0===t.data.indexOf("request-brand-survey-submit|")){let s=t.data.split("|"),n=s[1],o=s[2],i=s[3],r=JSON.parse(i);e.cM(n),e.cM(o),e.cM(i),e.cM("Received brand survey "+n+" response message: "+o);var b=new FormData;for(var _ in r)b.append(_,r[_]);let a=this._getFrameByEvent(t);if(v.alreadyCompletedThisBrandSurvey(+n))return e.cM("Already completed this brand survey.  Not submitting duplicate to server."),void a.contentWindow.postMessage("response-brand-survey-submit-duplicate|","*");e.cM("Send the brand survey to the server"),fetch(o,{method:"POST",body:b}).then(e=>e.json()).then(e=>a.contentWindow.postMessage(p,"*")).catch(e=>a.contentWindow.postMessage(p,"*"))}else if(0===t.data.indexOf("brand-survey-completed-store|")){let s=t.data.split("|"),n=(s[1],s[2]);if(e.cM("Received brand survey completed store message for survey ID "+n),v.alreadyCompletedThisBrandSurvey(+n))return void e.cM("Already completed this brand survey.  Not recording duplicate locally.");e.cM("Record brand survey completion locally"),(new c).recordBrandSurveyCompleted(+n)}else if(0===t.data.indexOf(h)){let s=t.data.split("|"),n=s[1],o=s[2];e.cM("Received message: request-brand-survey-metadata| with Brand Survey ID "+o);let i=(new c).getBrandSurveyEngagement().getBrandLineItemImpressions(+n),r=JSON.stringify(i),a=this._getFrameByEvent(t);e.cM("sending impression data: "+r),a.contentWindow.postMessage("response-brand-survey-metadata|"+this.opt.responseHash+"|"+this.opt.perRequestGuid+"|"+r,"*")}else if(0===t.data.indexOf("refresh-if-duplicate-brand-survey|")){let e=t.data.split("|")[1],s=this.getSlotElementIdByEvent(t);v.refreshAdIfBrandSurveyIsDuplicated(googletag,+e,s)}else if(0===t.data.indexOf(m)){e.cM("Received message: record-metric-on-server| with args: "+t.data);let s=t.data.split("|"),n=s[1],o=s[2],i=s[3],r=s[4],a=new FormData;a.append("brandSurveyId",i.toString()),a.append("responseHash",this.opt.responseHash),a.append("perRequestGuid",this.opt.perRequestGuid),a.append("questionNumber",n.toString()),a.append("metricType",r.toString()),fetch(o,{method:"POST",body:a}).then(e=>e.ok).catch(t=>{e.cM("SendMetricToServer: Error sending metric to server: "+t)})}else if(0===t.data.indexOf(u)){e.cM("Received message: request-dsp-tags with args: "+t.data);let s=this._getFrameByEvent(t);if(!this.opt.targeting["so-tag"])return void s.contentWindow.postMessage(f,"*");const n=this.opt.targeting["so-tag"].join(",");e.cM("sending targeting tags: "+n),s.contentWindow.postMessage(f+n,"*")}else e.cM("Received unhandled message")}getSlotElementIdByEvent(e){let t=this._getFrameByEvent(e).parentElement?.parentElement?.id;return t||""}_getFrameByEvent(e){return Array.from(document.getElementsByTagName("iframe")).filter(t=>t.contentWindow===e.source)[0]}classifyZoneIds(e){const t=e.map(o.Nj).filter(o.yb);return{eligible:t.filter(o.xb).filter(o.pn),ineligible:t.filter(o.xj)}}applyExtraMarginBottom(t){if(t&&t.slot&&!t.isEmpty&&(t.creativeId||t.lineItemId||!t.isEmpty)){var s=t.slot.getSlotElementId();if(s){var o=document.getElementById(s);if(o)if((0,n.eq)(s)){var i=o?.closest(".js-zone-container");i.style.marginBottom="24px",e.cM("Applied extra margin to the bottom of "+s)}else e.cM("Not applying extra margin to the bottom of "+s+": shouldHaveReportButton = false");else e.cM("Not applying extra margin to the bottom of "+s+": resolved invalid adUnit element")}else e.cM("Not applying extra margin to the bottom of element: invalid adUnitElementId")}else e.cM("Not applying extra margin to the bottom of element: invalid SlotRenderEndedEvent")}async load(s=(0,n.kG)()){const a=this.opt.tlb_position===t.Above?["dfp-mlb","dfp-smlb"]:["dfp-mlb","dfp-smlb","dfp-tlb"];if(!this.isGptReady())return e.cM("Initializing..."),this.initGpt(),void googletag.cmd.push(()=>this.load(s));this.opt.adReportEnabled?(e.cM("Ad reporting enabled"),this.adReports=new i.t(googletag,this)):(e.cM("Ad reporting not enabled"),this.handleSlotRenderedNoAdReport()),this.opt.refresh?(e.cM("Ad refresh enabled"),this.adRefresh=new r(googletag,this.opt.refreshInterval)):e.cM("Ad refresh not enabled"),this.opt.brandSurveyEnabled&&(e.cM("Brand Survey enabled"),this.brandSurvey=new g(googletag,this.opt.brandSurveySettings)),e.cM("Attempting to load ads into ids: ",s);const{eligible:d,ineligible:l}=this.classifyZoneIds(s);if(this.initDebugPanel(googletag,d.concat(l)),d.forEach(e=>(0,o.cf)(e)),l.forEach(o.wo),0===d.length)return void e.cM("Found no ad ids on page");e.cM("Eligible ids:",d),this.opt.abd&&this.appendAdblockDetector();var c=googletag.pubads().getSlots();if(c){var p=c.filter(e=>s.indexOf(e.getSlotElementId())>=0);googletag.destroySlots(p)}this.opt.sf&&(googletag.pubads().setForceSafeFrame(!0),googletag.pubads().setSafeFrameConfig({allowOverlayExpansion:!0,allowPushExpansion:!0,sandbox:!0})),e.cM("Targeting consent: Checking...");let h=!1,m=!1;void 0!==this.opt.targeting_consent&&(m=!0,e.cM("Targeting consent: Parameter set"),e.cM("Targeting consent: Consent given? ",this.opt.targeting_consent),h=this.opt.targeting_consent),void 0!==this.opt.personalization_consent&&(e.cM("Personalization consent: Parameter set"),e.cM("Personalization consent: Consent given? ",this.opt.personalization_consent),h=h&&this.opt.personalization_consent),h=h&&m,this.setPrivacySettings(h),this.opt.ll||googletag.pubads().enableSingleRequest(),cam.sreEvent||(googletag.pubads().addEventListener("slotRenderEnded",e=>this.onSlotRendered(e)),cam.sreEvent=!0),await this.setTargeting();var u=d.filter(e=>!this.opt.ll||a.indexOf(e.id)<0),f=d.filter(e=>!!this.opt.ll&&a.indexOf(e.id)>=0);e.cM("Up front ids:",u),e.cM("Lazy loaded ids:",f),u.forEach(t=>{e.cM(`Defining ad for element ${t.id}`),this.defineSlot(t.id,googletag),t.setAttribute("data-dfp-zone","true")}),googletag.enableServices(),u.forEach(t=>{e.cM(`Displaying ad for element ${t.id}`),googletag.cmd.push(()=>googletag.display(t.id))}),this.opt.ll&&(e.cM("Enabling lazy loading for GAM"),googletag.pubads().enableLazyLoad({fetchMarginPercent:0,renderMarginPercent:0}),e.cM("Setting up lazy loaded ad units"),f.forEach(t=>{e.cM(`Lazy loading - Defining Slot ${t.id}`),this.defineSlot(t.id,googletag)}),f.forEach(t=>{e.cM(`Lazy loading - Displaying ad for element ${t.id}`),googletag.cmd.push(()=>googletag.display(t.id))}))}setPrivacySettings(e){e?googletag.pubads().setPrivacySettings({limitedAds:!1,nonPersonalizedAds:!1}):googletag.pubads().setPrivacySettings({limitedAds:!0,nonPersonalizedAds:!0})}async setTargeting(){if(!googletag)throw new Error("googletag not defined");let t=this.opt.targeting;if(!t)throw new Error("Targeting not defined (is "+typeof t+")");Object.keys(t).forEach(s=>{e.cM(`-> targeting - ${s}: ${t[s]}`),googletag.pubads().setTargeting(s,t[s])});let s=!1;if(void 0!==this.opt.targeting_consent&&(s=this.opt.targeting_consent),s){let t=(new c).getBrandSurveyEngagement();if(t.getTotalBrandImpressions().forEach((t,s)=>{e.cM(`-> targeting - BrandImpressions: ${s}: ${t}`),googletag.pubads().setTargeting("brand_"+s.toString()+"_impressions",t.toString())}),t.surveysIdsCompleted.forEach(t=>{e.cM(`-> targeting - SurveysTaken: ${t}`),googletag.pubads().setTargeting("survey_"+t+"_taken","true")}),this.clc_options.tgt_e&&this.getUserAccountTargetingPromise){let t=await this.getUserAccountTargetingPromise;t&&t.tgt_acct?(e.cM("-> targeting - User Account: "+t.tgt_acct),googletag.pubads().setTargeting("user-acct",t.tgt_acct)):e.cM("-> targeting - User Account: Not Found")}}}appendAdblockDetector(){const e=document.createElement("div");e.className="adsbox",e.id="clc-abd",e.style.position="absolute",e.style.pointerEvents="none",e.innerHTML="&nbsp;",document.body.appendChild(e)}onSlotRendered(s){try{const r=s.slot.getSlotElementId();let a=[];r||a.push("id=0");const d=document.getElementById(r);if(r&&!d&&a.push("el=0"),0!==a.length)return void this.stalled(a.join("&"));const{path:l,sizes:c,zone:g}=(0,n.Z7)(r);if(this.collapsed[g]&&s.isEmpty)return e.cM(`No line item for the element #${d.id}... collapsing.`),void(0,o.wo)(d);if(this.slotsRenderedEvents.push(s),s.lineItemId||s.creativeId||!s.isEmpty){e.cM(`Rendered ad for element #${d.id} [line item #${s.lineItemId}]`),e.cM(s);var i=d.parentElement;if(i.classList.contains("js-zone-container")){switch((0,o.cf)(i),r){case"dfp-tlb":this.opt.tlb_position===t.Above?i.classList.add("mb8"):i.classList.add("mt16");break;case"dfp-tag":i.classList.add("mb8");break;case"dfp-msb":i.classList.add("mt16");break;case"dfp-mlb":case"dfp-smlb":case"dfp-bmlb":i.classList.add("my8");break;case"dfp-isb":i.classList.add("mt24");break;case"dfp-m-aq":i.classList.add("my12"),i.classList.add("mx-auto")}(0,o.$Z)(i),(0,o.$Z)(d)}else e.cM(`No ad for element #${d.id}, collapsing`),e.cM(s),(0,o.wo)(d)}}catch(t){e.cM("Exception thrown onSlotRendered"),e.cM(t),this.stalled("e=1")}}stalled(e){(new Image).src=`https://${this.clc_options.h}/stalled.gif?${e}`}defineSlot(t,s){"dfp-isb"===t&&(e.cM("-> targeting - Sidebar: Inline"),s.pubads().setTargeting("Sidebar",["Inline"])),"dfp-tsb"===t&&(e.cM("-> targeting - Sidebar: Right"),s.pubads().setTargeting("Sidebar",["Right"]));const{path:o,sizes:i,zone:r}=(0,n.Z7)(t);e.cM(`Defining slot for ${t}: ${o}, sizes: ${JSON.stringify(i)}`),s.defineSlot(o,i,t).addService(s.pubads())}importGptLibrary(){this.gptImported||(this.gptImported=!0,void 0===this.opt.targeting_consent||this.opt.targeting_consent?(0,o.Gx)("https://securepubads.g.doubleclick.net/tag/js/gpt.js"):(0,o.Gx)("https://pagead2.googlesyndication.com/tag/js/gpt.js"))}isGptReady(){return"undefined"!=typeof googletag&&!!googletag.apiReady}initGpt(){"undefined"==typeof googletag&&(window.googletag={cmd:(0,o.QZ)(()=>this.importGptLibrary())})}getUserAccountTargeting(){if(this.clc_options.tgt_e&&this.clc_options.tgt_p>0){if(e.cM("Targeting enabled."),this.clc_options.tgt_p<100){e.cM("Targeting rate limit enabled.  Rolling the dice...");const t=Math.floor(100*Math.random())+1;if(e.cM("Rolled "+t+" and the max is "+this.clc_options.tgt_p),t>this.clc_options.tgt_p)return void e.cM("Will not request targeting.")}return e.cM("Will request targeting."),function(e,t,s){if(e){const e=new Headers;return e.append("Accept","application/json"),async function(e,t={},s=5e3){if("number"!=typeof s&&null!=s&&!1!==s){if("string"!=typeof s)throw new Error("fetchWithTimeout: timeout must be a number");if(s=parseInt(s),isNaN(s))throw new Error("fetchWithTimeout: timeout must be a number (or string that can be parsed to a number)")}const n=new AbortController,{signal:o}=n,i=fetch(e,{...t,signal:o}),r=setTimeout(()=>n.abort(),s);try{const e=await i;return clearTimeout(r),e}catch(e){throw clearTimeout(r),e}}(t,{method:"GET",mode:"cors",headers:e},s).then(e=>e.json())}return Promise.reject("No consent")}(this.opt.targeting_consent,this.clc_options.tgt_u,this.clc_options.tgt_to).catch(t=>{e.vU("Error fetching user account targeting"),e.vU(t)})}e.cM("Targeting disabled.  Will not request account targeting data.")}initDebugPanel(t,s){e.cM("initDebugPanel"),e.cM("Not showing debug panel")}},window.clcGamLoaderOptions&&(cam.init(),cam.load())})()})();</script>
   2175         
   2176     <footer id="footer" class="site-footer js-footer theme-light__forced" role="contentinfo">
   2177         <div class="site-footer--container">
   2178                 <div class="site-footer--logo">
   2179 
   2180                     <a href="https://stackoverflow.com" aria-label="Stack Overflow"><svg aria-hidden="true" class="native svg-icon iconLogoGlyphMd" width="32" height="37" viewBox="0 0 32 37"><path d="M26 33v-9h4v13H0V24h4v9h22Z" fill="#BCBBBB"/><path d="m21.5 0-2.7 2 9.9 13.3 2.7-2L21.5 0ZM26 18.4 13.3 7.8l2.1-2.5 12.7 10.6-2.1 2.5ZM9.1 15.2l15 7 1.4-3-15-7-1.4 3Zm14 10.79.68-2.95-16.1-3.35L7 23l16.1 2.99ZM23 30H7v-3h16v3Z" fill="#F48024"/></svg></a>
   2181                 </div>
   2182             <nav class="site-footer--nav">
   2183                     <div class="site-footer--col">
   2184                         <h5 class="-title"><a href="https://stackoverflow.com" class="js-gps-track" data-gps-track="footer.click({ location: 2, link: 15})">Stack Overflow</a></h5>
   2185                         <ul class="-list js-primary-footer-links">
   2186                             <li><a href="/questions" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 16})">Questions</a></li>
   2187                                 <li><a href="/help" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 3 })">Help</a></li>
   2188                         </ul>
   2189                     </div>
   2190                     <div class="site-footer--col">
   2191                         <h5 class="-title"><a href="https://stackoverflow.co/" class="js-gps-track" data-gps-track="footer.click({ location: 2, link: 19 })">Products</a></h5>
   2192                         <ul class="-list">
   2193                             <li><a href="https://stackoverflow.co/teams/" class="js-gps-track -link"
   2194                                                  data-ga="[&quot;teams traffic&quot;,&quot;footer - site nav&quot;,&quot;stackoverflow.com/teams&quot;,null,{&quot;dimension4&quot;:&quot;teams&quot;}]"
   2195                                                  data-gps-track="footer.click({ location: 2, link: 29 })">Teams</a></li>
   2196                             <li><a href="https://stackoverflow.co/advertising/" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 21 })">Advertising</a></li>
   2197                             <li><a href="https://stackoverflow.co/collectives/" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 40 })">Collectives</a></li>
   2198                             <li><a href="https://stackoverflow.co/talent/" class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 20 })">Talent</a></li>
   2199                         </ul>
   2200                     </div>
   2201                 <div class="site-footer--col">
   2202                     <h5 class="-title"><a class="js-gps-track" data-gps-track="footer.click({ location: 2, link: 1 })" href="https://stackoverflow.co/">Company</a></h5>
   2203                     <ul class="-list">
   2204                             <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 1 })" href="https://stackoverflow.co/">About</a></li>
   2205                         <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 27 })" href="https://stackoverflow.co/company/press/">Press</a></li>
   2206                             <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 9 })" href="https://stackoverflow.co/company/work-here/">Work Here</a></li>
   2207                         <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 7 })" href="https://stackoverflow.com/legal">Legal</a></li>
   2208                         <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 8 })" href="https://stackoverflow.com/legal/privacy-policy">Privacy Policy</a></li>
   2209                         <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 37 })" href="https://stackoverflow.com/legal/terms-of-service/public">Terms of Service</a></li>
   2210                             <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 13 })" href="https://stackoverflow.co/company/contact/">Contact Us</a></li>
   2211                             <li class="" id="consent-footer-link"><a class="js-gps-track -link js-cookie-settings" data-gps-track="footer.click({ location: 2, link: 38 })" href="#" data-consent-popup-loader="footer">Cookie Settings</a></li>
   2212                         <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link: 39 })" href="https://stackoverflow.com/legal/cookie-policy">Cookie Policy</a></li>
   2213                     </ul>
   2214                 </div>
   2215                 <div class="site-footer--col site-footer--categories-nav">
   2216                     <div>
   2217                         <h5 class="-title"><a href="https://stackexchange.com" data-gps-track="footer.click({ location: 2, link: 30 })">Stack Exchange Network</a></h5>
   2218                         <ul class="-list">
   2219                             <li>
   2220                                 <a href="https://stackexchange.com/sites#technology" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
   2221                                     Technology
   2222                                 </a>
   2223                             </li>
   2224                             <li>
   2225                                 <a href="https://stackexchange.com/sites#culturerecreation" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
   2226                                     Culture &amp; recreation
   2227                                 </a>
   2228                             </li>
   2229                             <li>
   2230                                 <a href="https://stackexchange.com/sites#lifearts" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
   2231                                     Life &amp; arts
   2232                                 </a>
   2233                             </li>
   2234                             <li>
   2235                                 <a href="https://stackexchange.com/sites#science" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
   2236                                     Science
   2237                                 </a>
   2238                             </li>
   2239                             <li>
   2240                                 <a href="https://stackexchange.com/sites#professional" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
   2241                                     Professional
   2242                                 </a>
   2243                             </li>
   2244                             <li>
   2245                                 <a href="https://stackexchange.com/sites#business" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
   2246                                     Business
   2247                                 </a>
   2248                             </li>
   2249 
   2250                             <li class="mt16 md:mt0">
   2251                                 <a href="https://api.stackexchange.com/" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
   2252                                     API
   2253                                 </a>
   2254                             </li>
   2255 
   2256                             <li>
   2257                                 <a href="https://data.stackexchange.com/" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 24 })">
   2258                                     Data
   2259                                 </a>
   2260                             </li>
   2261                         </ul>
   2262                     </div>
   2263                 </div>
   2264             </nav>
   2265             <div class="site-footer--copyright fs-fine md:mt24">
   2266                 <ul class="-list -social md:mb8">
   2267                     <li><a class="js-gps-track -link" data-gps-track="footer.click({ location: 2, link:4 })" href="https://stackoverflow.blog?blb=1">Blog</a></li>
   2268                     <li><a href="https://www.facebook.com/officialstackoverflow/" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 31 })">Facebook</a></li>
   2269                     <li><a href="https://twitter.com/stackoverflow" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 32 })">Twitter</a></li>
   2270                     <li><a href="https://linkedin.com/company/stack-overflow" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 33 })">LinkedIn</a></li>
   2271                     <li><a href="https://www.instagram.com/thestackoverflow" class="-link js-gps-track" data-gps-track="footer.click({ location: 2, link: 36 })">Instagram</a></li>
   2272                 </ul>
   2273 
   2274                 <p class="md:mb0">
   2275 Site design / logo &#169; 2023 Stack Exchange Inc; user contributions licensed under <span class='td-underline'><a href="https://stackoverflow.com/help/licensing">CC BY-SA</a></span>.                    <span id="svnrev">rev&nbsp;2023.11.30.1842</span>
   2276                 </p>
   2277             </div>
   2278         </div>
   2279 
   2280     </footer>
   2281 
   2282 
   2283     
   2284 
   2285             <!-- Google tag (gtag.js) -->
   2286             <script async src="https://www.googletagmanager.com/gtag/js?id=G-WCZ03SZFCQ"></script>
   2287             <script>
   2288                 window.dataLayer = window.dataLayer || [];
   2289                 function gtag() { dataLayer.push(arguments); }
   2290             </script>
   2291         <script>
   2292             StackExchange.ready(function() {
   2293 
   2294                 var ga3Settings = {
   2295                     autoLink: ["stackoverflow.blog","info.stackoverflowsolutions.com","stackoverflowsolutions.com"],
   2296                     sendTitles: true,
   2297                     tracker: window.ga,
   2298                     trackingCodes: [
   2299                         'UA-108242619-1'
   2300                     ],
   2301                     checkDimension: 'dimension42'
   2302                 };
   2303 
   2304                 var customGA4Dimensions = {};
   2305 
   2306 
   2307                     customGA4Dimensions["routename"] = "Questions/Show";
   2308 
   2309 
   2310                     customGA4Dimensions["post_id"] = "53886131";
   2311 
   2312                     customGA4Dimensions["tags"] = "|c|static|";
   2313 
   2314 
   2315                 var ga4Settings = {
   2316                     tracker: gtag,
   2317                     trackingCodes: [
   2318                         'G-WCZ03SZFCQ'
   2319                     ],
   2320                     consentsToPerformanceCookies: "denied",
   2321                     consentsToTargetingCookies: "denied",
   2322                     eventParameters: customGA4Dimensions,
   2323                     checkForAdBlock: true,
   2324                     sendTitles: true,
   2325                     trackClicks: false,
   2326                 };
   2327 
   2328                 StackExchange.ga.init({ GA3: ga3Settings, GA4: ga4Settings });
   2329 
   2330 
   2331                 StackExchange.ga.setDimension('dimension2', '|c|static|');
   2332 
   2333 
   2334                 StackExchange.ga.setDimension('dimension3', 'Questions/Show');
   2335 
   2336 
   2337                 StackExchange.ga.setDimension('dimension7', "1701628339.1603071255");
   2338 
   2339                 StackExchange.ga.trackPageView();
   2340             });
   2341         </script>
   2342 
   2343         
   2344                 <div class="ff-sans ps-fixed z-nav-fixed ws4 sm:w-auto p32 sm:p16 bg-black-600 fc-white bar-lg b16 l16 r16 js-consent-banner">
   2345                     <svg aria-hidden="true" class="mln4 mb24 sm:d-none svg-spot spotCookieLg" style="color: var(--theme-button-primary-background-color, var(--theme-primary-200))" width="96" height="96" viewBox="0 0 96 96">
   2346                         <path d="M35 45.5a7.5 7.5 0 11-15 0 7.5 7.5 0 0115 0zM63.5 63a7.5 7.5 0 100-15 7.5 7.5 0 000 15zm-19 19a7.5 7.5 0 100-15 7.5 7.5 0 000 15z" opacity=".2" />
   2347                         <path d="M56.99 2.53a23.1 23.1 0 0114.66 6.15h.01l.01.02c.57.55.61 1.27.5 1.74v.07a10.95 10.95 0 01-3.07 4.77 9 9 0 01-6.9 2.5 10.34 10.34 0 01-9.72-10.44v-.08a10 10 0 011.03-3.74l.01-.03.02-.02c.28-.5.82-.92 1.52-.95.63-.02 1.27-.02 1.93.01zm12.04 7.83a20.1 20.1 0 00-12.2-4.83l-.92-.03c-.23.6-.38 1.25-.43 1.94a7.34 7.34 0 006.95 7.34 6 6 0 004.64-1.7c.94-.88 1.6-1.9 1.96-2.72zm15.3 8.76a6.84 6.84 0 00-5.09-.24 7.9 7.9 0 00-3.28 2.05 1.8 1.8 0 00-.3 1.95l.02.02v.02a15.16 15.16 0 008.74 7.47c.64.23 1.32.08 1.8-.33a6.63 6.63 0 001.63-1.97l.01-.03.01-.03c1.67-3.5-.12-7.32-3.54-8.91zm-5.5 3.28c.36-.25.82-.5 1.35-.67.92-.3 1.92-.35 2.89.1 2.14 1 2.92 3.14 2.11 4.88-.12.21-.26.41-.43.6l-.26-.1a12.29 12.29 0 01-5.66-4.81zM32 24a2 2 0 11-4 0 2 2 0 014 0zm12 21a2 2 0 11-4 0 2 2 0 014 0zm36 4a2 2 0 11-4 0 2 2 0 014 0zm-7 21a2 2 0 11-4 0 2 2 0 014 0zM59 81a2 2 0 11-4 0 2 2 0 014 0zM22 63a2 2 0 11-4 0 2 2 0 014 0zm27 7a9 9 0 11-18 0 9 9 0 0118 0zm-3 0a6 6 0 10-12 0 6 6 0 0012 0zM33 41a9 9 0 11-18 0 9 9 0 0118 0zm-15 0a6 6 0 1012 0 6 6 0 00-12 0zm50 11a9 9 0 11-18 0 9 9 0 0118 0zm-3 0a6 6 0 10-12 0 6 6 0 0012 0zM44.08 4.24c.31.48.33 1.09.05 1.58a17.46 17.46 0 00-2.36 8.8c0 9.55 7.58 17.24 16.85 17.24 2.97 0 5.75-.78 8.16-2.15a1.5 1.5 0 012.1.66 12.08 12.08 0 0011 6.74 12.4 12.4 0 007.85-2.75 1.5 1.5 0 012.38.74A45.76 45.76 0 0192 48.16c0 24.77-19.67 44.9-44 44.9S4 72.93 4 48.16C4 25.23 20.84 6.28 42.64 3.58a1.5 1.5 0 011.44.66zM40.22 7C21.32 10.71 7 27.7 7 48.16c0 23.17 18.39 41.9 41 41.9s41-18.73 41-41.9c0-3.52-.42-6.93-1.22-10.2a15.5 15.5 0 01-7.9 2.15c-5.5 0-10.36-2.83-12.97-7.1a19.46 19.46 0 01-8.28 1.85c-11 0-19.86-9.1-19.86-20.24 0-2.7.52-5.26 1.45-7.62zM92 91a2 2 0 100-4 2 2 0 000 4zM7 8.5a2.5 2.5 0 11-5 0 2.5 2.5 0 015 0zM82.5 90a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm9.5-7.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM13.5 8a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM80 14.5a1.5 1.5 0 11-3 0 1.5 1.5 0 013 0zM53.5 20a1.5 1.5 0 100-3 1.5 1.5 0 000 3z" />
   2348                     </svg>
   2349                     <p class="fs-body2 fw-bold mb4">
   2350                         Your privacy
   2351                     </p>
   2352                     <p class="mb16 s-anchors s-anchors__inherit s-anchors__underlined">
   2353                         By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our <a href="https://stackoverflow.com/legal/cookie-policy">Cookie Policy</a>.
   2354                     </p>
   2355                     <div class="d-flex gs8 sm:fd-column">
   2356                         <button class="flex--item6 s-btn s-btn__filled js-accept-cookies js-consent-banner-hide">
   2357                             Accept all cookies
   2358                         </button>
   2359 
   2360                         <button class="flex--item6 s-btn s-btn__filled js-reject-cookies js-consent-banner-hide">
   2361                             Necessary cookies only
   2362                         </button>
   2363                     </div>
   2364 
   2365                     <div class="d-flex mt8 sm:fd-column">
   2366                         <button class="flex--item12 s-btn s-btn__filled js-cookie-settings" data-consent-popup-loader="banner">
   2367                             Customize settings
   2368                         </button>
   2369                     </div>
   2370                 </div>
   2371     <div id="onetrust-consent-sdk" class="d-none"></div>
   2372     <div id="onetrust-banner-sdk" data-controller="s-modal"></div>
   2373     <div id="ot-pc-content" class="d-none"></div>
   2374     <div id="onetrust-style" class="d-none">&nbsp;</div>
   2375     <div class="d-none js-consent-banner-version" data-consent-banner-version="1"></div>
   2376 
   2377 
   2378     
   2379     </body>
   2380     </html>