varrng=require('./lib/rng');varbytesToUuid=require('./lib/bytesToUuid');functionv4(options,buf,offset){vari=buf&&offset||0;if(typeof(options)=='string'){buf=options==='binary'?newArray(16):null;options=null;}options=options||{};varrnds=options.random||(options.rng||rng)();// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`rnds[6]=(rnds[6]&0x0f)|0x40;rnds[8]=(rnds[8]&0x3f)|0x80;// Copy bytes to buffer, if providedif(buf){for(varii=0;ii<16;++ii){buf[i+ii]=rnds[ii];}}returnbuf||bytesToUuid(rnds);}module.exports=v4;