Yami Odymel https://invade.tw/ says to OwO
/go@mmis_js_bot package uuid import ( "bytes" "crypto/md5" "crypto/rand" "crypto/sha1" "database/sql/driver" "encoding/binary" "encoding/hex" "fmt" "hash" "net" "os" "sync" "time" ) // UUID layout variants. const ( VariantNCS = iota VariantRFC4122 VariantMicrosoft VariantFuture ) // UUID DCE domains. const ( DomainPerson = iota DomainGroup DomainOrg ) // Difference in 100-nanosecond intervals between // UUID epoch (October 15, 1582) and Unix epoch (January 1, 1970). const epochStart = 122192928000000000 // Used in string method conversion const dash byte = '-' // UUID v1/v2 storage. var ( storageMutex sync.Mutex storageOnce sync.Once epochFunc = unixTimeFunc clockSequence uint16 lastTime uint64 hardwareAddr [6]byte posixUID = uint32(os.Getuid()) posixGID = uint32(os.Getgid()) ) // String parse helpers. var ( urnPrefix = []byte("urn:uuid:") byteGroups = []int{8, 4, 4, 4, 12} ) func initClockSequence() { buf := make([]byte, 2) safeRandom(buf) clockSequence = binary.BigEndian.Uint16(buf) } func initHardwareAddr() { interfaces, err := net.Interfaces() if err == nil { for _, iface := range interfaces { if len(iface.HardwareAddr) >= 6 { copy(hardwareAddr[๐Ÿ˜, iface.HardwareAddr) return } } } // Initialize hardwareAddr randomly in case // of real network interfaces absence safeRandom(hardwareAddr[๐Ÿ˜) // Set multicast bit as recommended in RFC 4122 hardwareAddr[0] |= 0x01 } func initStorage() { initClockSequence() initHardwareAddr() } func safeRandom(dest []byte) { if _, err := rand.Read(dest); err != nil { panic(err) } } // Returns difference in 100-nanosecond intervals between // UUID epoch (October 15, 1582) and current time. // This is default epoch calculation function. func unixTimeFunc() uint64 { return epochStart + uint64(time.Now().UnixNano()/100) } // UUID representation compliant with specification // described in RFC 4122. type UUID [16]byte // NullUUID can be used with the standard sql package to represent a // UUID value that can be NULL in the database type NullUUID struct { UUID UUID Valid bool } // The nil UUID is special form of UUID that is specified to have all // 128 bits set to zero. var Nil = UUID{} // Predefined namespace UUIDs. var ( NamespaceDNS, _ = FromString("6ba7b810-9dad-11d1-80b4-00c04fd430c8") NamespaceURL, _ = FromString("6ba7b811-9dad-11d1-80b4-00c04fd430c8") NamespaceOID, _ = FromString("6ba7b812-9dad-11d1-80b4-00c04fd430c8") NamespaceX500, _ = FromString("6ba7b814-9dad-11d1-80b4-00c04fd430c8") ) // And returns result of binary AND of two UUIDs. func And(u1 UUID, u2 UUID) UUID { u := UUID{} for i := 0; i < 16; i++ { u[i] = u1[i] & u2[i] } return u } // Or returns result of binary OR of two UUIDs. func Or(u1 UUID, u2 UUID) UUID { u := UUID{} for i := 0; i < 16; i++ { u[i] = u1[i] | u2[i] } return u } // Equal returns true if u1 and u2 equals, otherwise returns false. func Equal(u1 UUID, u2 UUID) bool { return bytes.Equal(u1[๐Ÿ˜, u2[๐Ÿ˜) } // Version returns algorithm version used to generate UUID. func (u UUID) Version() uint { return uint(u[6] ยป 4) } // Variant returns UUID layout variant. func (u UUID) Variant() uint { switch { case (u[8] & 0x80) == 0x00: return VariantNCS case (u[8]&0xc0)|0x80 == 0x80: return VariantRFC4122 case (u[8]&0xe0)|0xc0 == 0xc0: return VariantMicrosoft } return VariantFuture } // Bytes returns bytes slice representation of UUID. func (u UUID) Bytes() []byte { return u[๐Ÿ˜ } // Returns canonical string representation of UUID: // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. func (u UUID) String() string { buf := make([]byte, 36) hex.Encode(buf[0:8], u[0:4]) buf[8] = dash hex.Encode(buf[9:13], u[4:6]) buf[13] = dash hex.Encode(buf[14:18], u[6:8]) buf[18] = dash hex.Encode(buf[19:23], u[8:10]) buf[23] = dash hex.Encode(buf[24๐Ÿ˜, u[10๐Ÿ˜) return string(buf) }