google-protobuf 3.17.3-x86-linux → 3.18.0.rc.1-x86-linux

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of google-protobuf might be problematic. Click here for more details.

@@ -0,0 +1,266 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: google/protobuf/descriptor.proto
3
+
4
+ descriptor_data = File.binread(__FILE__).split("\n__END__\n", 2)[1]
5
+ Google::Protobuf::DescriptorPool.generated_pool.add_serialized_file(descriptor_data)
6
+
7
+ module Google
8
+ module Protobuf
9
+ FileDescriptorSet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileDescriptorSet").msgclass
10
+ FileDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileDescriptorProto").msgclass
11
+ DescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto").msgclass
12
+ DescriptorProto::ExtensionRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto.ExtensionRange").msgclass
13
+ DescriptorProto::ReservedRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto.ReservedRange").msgclass
14
+ ExtensionRangeOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ExtensionRangeOptions").msgclass
15
+ FieldDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto").msgclass
16
+ FieldDescriptorProto::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto.Type").enummodule
17
+ FieldDescriptorProto::Label = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto.Label").enummodule
18
+ OneofDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.OneofDescriptorProto").msgclass
19
+ EnumDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumDescriptorProto").msgclass
20
+ EnumDescriptorProto::EnumReservedRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumDescriptorProto.EnumReservedRange").msgclass
21
+ EnumValueDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumValueDescriptorProto").msgclass
22
+ ServiceDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ServiceDescriptorProto").msgclass
23
+ MethodDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodDescriptorProto").msgclass
24
+ FileOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileOptions").msgclass
25
+ FileOptions::OptimizeMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileOptions.OptimizeMode").enummodule
26
+ MessageOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MessageOptions").msgclass
27
+ FieldOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions").msgclass
28
+ FieldOptions::CType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.CType").enummodule
29
+ FieldOptions::JSType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.JSType").enummodule
30
+ OneofOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.OneofOptions").msgclass
31
+ EnumOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumOptions").msgclass
32
+ EnumValueOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumValueOptions").msgclass
33
+ ServiceOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ServiceOptions").msgclass
34
+ MethodOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodOptions").msgclass
35
+ MethodOptions::IdempotencyLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodOptions.IdempotencyLevel").enummodule
36
+ UninterpretedOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.UninterpretedOption").msgclass
37
+ UninterpretedOption::NamePart = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.UninterpretedOption.NamePart").msgclass
38
+ SourceCodeInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.SourceCodeInfo").msgclass
39
+ SourceCodeInfo::Location = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.SourceCodeInfo.Location").msgclass
40
+ GeneratedCodeInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.GeneratedCodeInfo").msgclass
41
+ GeneratedCodeInfo::Annotation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.GeneratedCodeInfo.Annotation").msgclass
42
+ end
43
+ end
44
+
45
+ __END__
46
+
47
+ google/protobuf/descriptor.protogoogle.protobuf"G
48
+ FileDescriptorSet2
49
+ file ( 2$.google.protobuf.FileDescriptorProto"�
50
+ FileDescriptorProto
51
+ name ( 
52
+ package ( 
53
+
54
+ dependency ( 
55
+ public_dependency
56
+ (
57
+ weak_dependency (6
58
+ message_type ( 2 .google.protobuf.DescriptorProto7
59
+ enum_type ( 2$.google.protobuf.EnumDescriptorProto8
60
+ service ( 2'.google.protobuf.ServiceDescriptorProto8
61
+ extension ( 2%.google.protobuf.FieldDescriptorProto-
62
+ options ( 2.google.protobuf.FileOptions9
63
+ source_code_info ( 2.google.protobuf.SourceCodeInfo
64
+ syntax ( "�
65
+ DescriptorProto
66
+ name ( 4
67
+ field ( 2%.google.protobuf.FieldDescriptorProto8
68
+ extension ( 2%.google.protobuf.FieldDescriptorProto5
69
+ nested_type ( 2 .google.protobuf.DescriptorProto7
70
+ enum_type ( 2$.google.protobuf.EnumDescriptorProtoH
71
+ extension_range ( 2/.google.protobuf.DescriptorProto.ExtensionRange9
72
+
73
+ oneof_decl ( 2%.google.protobuf.OneofDescriptorProto0
74
+ options ( 2.google.protobuf.MessageOptionsF
75
+ reserved_range ( 2..google.protobuf.DescriptorProto.ReservedRange
76
+
77
+ ( e
78
+ ExtensionRange
79
+ start (
80
+ end (7
81
+ options ( 2&.google.protobuf.ExtensionRangeOptions+
82
+
83
+ start (
84
+ end ("g
85
+ ExtensionRangeOptionsC
86
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����"�
87
+ FieldDescriptorProto
88
+ name ( 
89
+ number (:
90
+ label (2+.google.protobuf.FieldDescriptorProto.Label8
91
+ type (2*.google.protobuf.FieldDescriptorProto.Type
92
+ type_name ( 
93
+ extendee ( 
94
+
95
+ oneof_index (
96
+ json_name
97
+ ( .
98
+ options ( 2.google.protobuf.FieldOptions
99
+ proto3_optional ("�
100
+ Type
101
+ TYPE_DOUBLE
102
+
103
+ TYPE_FLOAT
104
+
105
+ TYPE_INT64
106
+ TYPE_UINT64
107
+
108
+ TYPE_INT32
109
+ TYPE_FIXED64
110
+ TYPE_FIXED32
111
+ TYPE_BOOL
112
+ TYPE_STRING 
113
+
114
+ TYPE_GROUP
115
+ 
116
+ TYPE_MESSAGE 
117
+
118
+ TYPE_BYTES 
119
+ TYPE_UINT32
120
+ TYPE_ENUM
121
+
122
+
123
+ TYPE_SINT32
124
+ TYPE_SINT64"C
125
+ Label
126
+ LABEL_OPTIONAL
127
+ LABEL_REQUIRED
128
+ LABEL_REPEATED"T
129
+ OneofDescriptorProto
130
+ name ( .
131
+ options ( 2.google.protobuf.OneofOptions"�
132
+ EnumDescriptorProto
133
+ name ( 8
134
+ value ( 2).google.protobuf.EnumValueDescriptorProto-
135
+ options ( 2.google.protobuf.EnumOptionsN
136
+ reserved_range ( 26.google.protobuf.EnumDescriptorProto.EnumReservedRange
137
+
138
+ EnumReservedRange
139
+ start (
140
+ end ("l
141
+ EnumValueDescriptorProto
142
+ name ( 
143
+ number (2
144
+ options ( 2!.google.protobuf.EnumValueOptions"�
145
+ ServiceDescriptorProto
146
+ name ( 6
147
+ method ( 2&.google.protobuf.MethodDescriptorProto0
148
+ options ( 2.google.protobuf.ServiceOptions"�
149
+ MethodDescriptorProto
150
+ name ( 
151
+
152
+ input_type ( 
153
+ output_type ( /
154
+ options ( 2.google.protobuf.MethodOptions
155
+ client_streaming (:false
156
+ server_streaming (:false"�
157
+ FileOptions
158
+ java_package ( 
159
+ java_outer_classname ( "
160
+ java_multiple_files
161
+ (:false)
162
+ java_generate_equals_and_hash (B%
163
+ java_string_check_utf8 (:falseF
164
+ optimize_for (2).google.protobuf.FileOptions.OptimizeMode:SPEED
165
+
166
+ go_package ( "
167
+ cc_generic_services (:false$
168
+ java_generic_services (:false"
169
+ py_generic_services (:false#
170
+ php_generic_services* (:false
171
+
172
+ deprecated (:false
173
+ cc_enable_arenas (:true
174
+ objc_class_prefix$ ( 
175
+ csharp_namespace% ( 
176
+ swift_prefix' ( 
177
+ php_class_prefix( ( 
178
+
179
+ php_metadata_namespace, ( 
180
+ ruby_package- ( C
181
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption":
182
+ OptimizeMode
183
+ SPEED
184
+ CODE_SIZE
185
+ LITE_RUNTIME* �����J&'"�
186
+ MessageOptions&
187
+ message_set_wire_format (:false.
188
+ no_standard_descriptor_accessor (:false
189
+
190
+ deprecated (:false
191
+ map_entry (C
192
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����JJJJ J 
193
+ "�
194
+ FieldOptions:
195
+ ctype (2#.google.protobuf.FieldOptions.CType:STRING
196
+ packed (?
197
+ jstype (2$.google.protobuf.FieldOptions.JSType: JS_NORMAL
198
+ lazy (:false
199
+
200
+ deprecated (:false
201
+ weak
202
+ (:falseC
203
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption"/
204
+ CType
205
+
206
+ STRING
207
+ CORD
208
+ STRING_PIECE"5
209
+ JSType
210
+ JS_NORMAL
211
+ JS_STRING
212
+ JS_NUMBER* �����J"^
213
+ OneofOptionsC
214
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����"�
215
+ EnumOptions
216
+ allow_alias (
217
+
218
+ deprecated (:falseC
219
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����J"}
220
+ EnumValueOptions
221
+
222
+ deprecated (:falseC
223
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����"{
224
+ ServiceOptions
225
+
226
+ deprecated! (:falseC
227
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption* �����"�
228
+
229
+
230
+ deprecated! (:false_
231
+ idempotency_level" (2/.google.protobuf.MethodOptions.IdempotencyLevel:IDEMPOTENCY_UNKNOWNC
232
+ uninterpreted_option� ( 2$.google.protobuf.UninterpretedOption"P
233
+ IdempotencyLevel
234
+ IDEMPOTENCY_UNKNOWN
235
+ NO_SIDE_EFFECTS
236
+
237
+ IDEMPOTENT* �����"�
238
+ UninterpretedOption;
239
+ name ( 2-.google.protobuf.UninterpretedOption.NamePart
240
+ identifier_value ( 
241
+ positive_int_value (
242
+ negative_int_value (
243
+ double_value (
244
+ string_value ( 
245
+ aggregate_value ( 3
246
+ NamePart
247
+ name_part ( 
248
+ is_extension ("�
249
+ SourceCodeInfo:
250
+ location ( 2(.google.protobuf.SourceCodeInfo.Location�
251
+ Location
252
+ path (B
253
+ span (B
254
+ leading_comments ( 
255
+ trailing_comments ( !
256
+ leading_detached_comments ( "�
257
+ GeneratedCodeInfoA
258
+
259
+ annotation ( 2-.google.protobuf.GeneratedCodeInfo.AnnotationO
260
+
261
+ Annotation
262
+ path (B
263
+ source_file ( 
264
+ begin (
265
+ end (B~
266
+ com.google.protobufBDescriptorProtosHZ-google.golang.org/protobuf/types/descriptorpb��GPB�Google.Protobuf.Reflection
@@ -1,10 +1,10 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
2
  # source: google/protobuf/type.proto
3
3
 
4
- require 'google/protobuf'
5
-
6
4
  require 'google/protobuf/any_pb'
7
5
  require 'google/protobuf/source_context_pb'
6
+ require 'google/protobuf'
7
+
8
8
  Google::Protobuf::DescriptorPool.generated_pool.build do
9
9
  add_file("google/protobuf/type.proto", :syntax => :proto3) do
10
10
  add_message "google.protobuf.Type" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-protobuf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.17.3
4
+ version: 3.18.0.rc.1
5
5
  platform: x86-linux
6
6
  authors:
7
7
  - Protobuf Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-08 00:00:00.000000000 Z
11
+ date: 2021-08-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler-dock
@@ -99,7 +99,6 @@ files:
99
99
  - ext/google/protobuf_c/repeated_field.h
100
100
  - ext/google/protobuf_c/ruby-upb.c
101
101
  - ext/google/protobuf_c/ruby-upb.h
102
- - ext/google/protobuf_c/third_party/wyhash/wyhash.h
103
102
  - ext/google/protobuf_c/wrap_memcpy.c
104
103
  - lib/google/2.3/protobuf_c.so
105
104
  - lib/google/2.4/protobuf_c.so
@@ -110,6 +109,8 @@ files:
110
109
  - lib/google/protobuf.rb
111
110
  - lib/google/protobuf/any_pb.rb
112
111
  - lib/google/protobuf/api_pb.rb
112
+ - lib/google/protobuf/descriptor_dsl.rb
113
+ - lib/google/protobuf/descriptor_pb.rb
113
114
  - lib/google/protobuf/duration_pb.rb
114
115
  - lib/google/protobuf/empty_pb.rb
115
116
  - lib/google/protobuf/field_mask_pb.rb
@@ -128,7 +129,7 @@ homepage: https://developers.google.com/protocol-buffers
128
129
  licenses:
129
130
  - BSD-3-Clause
130
131
  metadata:
131
- source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.17.3/ruby
132
+ source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.18.0-rc1/ruby
132
133
  post_install_message:
133
134
  rdoc_options: []
134
135
  require_paths:
@@ -143,9 +144,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
144
  version: 3.1.dev
144
145
  required_rubygems_version: !ruby/object:Gem::Requirement
145
146
  requirements:
146
- - - ">="
147
+ - - ">"
147
148
  - !ruby/object:Gem::Version
148
- version: '0'
149
+ version: 1.3.1
149
150
  requirements: []
150
151
  rubygems_version: 3.2.3
151
152
  signing_key:
@@ -1,145 +0,0 @@
1
- /* Copyright 2020 王一 Wang Yi <godspeed_china@yeah.net>
2
- This is free and unencumbered software released into the public domain. http://unlicense.org/
3
- See github.com/wangyi-fudan/wyhash/ LICENSE
4
- */
5
- #ifndef wyhash_final_version
6
- #define wyhash_final_version
7
- //defines that change behavior
8
- #ifndef WYHASH_CONDOM
9
- #define WYHASH_CONDOM 1 //0: read 8 bytes before and after boundaries, dangerous but fastest. 1: normal valid behavior 2: extra protection against entropy loss (probability=2^-63), aka. "blind multiplication"
10
- #endif
11
- #define WYHASH_32BIT_MUM 0 //faster on 32 bit system
12
- //includes
13
- #include <stdint.h>
14
- #include <string.h>
15
- #if defined(_MSC_VER) && defined(_M_X64)
16
- #include <intrin.h>
17
- #pragma intrinsic(_umul128)
18
- #endif
19
- #if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
20
- #define _likely_(x) __builtin_expect(x,1)
21
- #define _unlikely_(x) __builtin_expect(x,0)
22
- #else
23
- #define _likely_(x) (x)
24
- #define _unlikely_(x) (x)
25
- #endif
26
- //mum function
27
- static inline uint64_t _wyrot(uint64_t x) { return (x>>32)|(x<<32); }
28
- static inline void _wymum(uint64_t *A, uint64_t *B){
29
- #if(WYHASH_32BIT_MUM)
30
- uint64_t hh=(*A>>32)*(*B>>32), hl=(*A>>32)*(unsigned)*B, lh=(unsigned)*A*(*B>>32), ll=(uint64_t)(unsigned)*A*(unsigned)*B;
31
- #if(WYHASH_CONDOM>1)
32
- *A^=_wyrot(hl)^hh; *B^=_wyrot(lh)^ll;
33
- #else
34
- *A=_wyrot(hl)^hh; *B=_wyrot(lh)^ll;
35
- #endif
36
- #elif defined(__SIZEOF_INT128__)
37
- __uint128_t r=*A; r*=*B;
38
- #if(WYHASH_CONDOM>1)
39
- *A^=(uint64_t)r; *B^=(uint64_t)(r>>64);
40
- #else
41
- *A=(uint64_t)r; *B=(uint64_t)(r>>64);
42
- #endif
43
- #elif defined(_MSC_VER) && defined(_M_X64)
44
- #if(WYHASH_CONDOM>1)
45
- uint64_t a, b;
46
- a=_umul128(*A,*B,&b);
47
- *A^=a; *B^=b;
48
- #else
49
- *A=_umul128(*A,*B,B);
50
- #endif
51
- #else
52
- uint64_t ha=*A>>32, hb=*B>>32, la=(uint32_t)*A, lb=(uint32_t)*B, hi, lo;
53
- uint64_t rh=ha*hb, rm0=ha*lb, rm1=hb*la, rl=la*lb, t=rl+(rm0<<32), c=t<rl;
54
- lo=t+(rm1<<32); c+=lo<t; hi=rh+(rm0>>32)+(rm1>>32)+c;
55
- #if(WYHASH_CONDOM>1)
56
- *A^=lo; *B^=hi;
57
- #else
58
- *A=lo; *B=hi;
59
- #endif
60
- #endif
61
- }
62
- static inline uint64_t _wymix(uint64_t A, uint64_t B){ _wymum(&A,&B); return A^B; }
63
- //read functions
64
- #ifndef WYHASH_LITTLE_ENDIAN
65
- #if defined(_WIN32) || defined(__LITTLE_ENDIAN__) || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
66
- #define WYHASH_LITTLE_ENDIAN 1
67
- #elif defined(__BIG_ENDIAN__) || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
68
- #define WYHASH_LITTLE_ENDIAN 0
69
- #endif
70
- #endif
71
- #if (WYHASH_LITTLE_ENDIAN)
72
- static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return v;}
73
- static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return v;}
74
- #elif defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
75
- static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return __builtin_bswap64(v);}
76
- static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return __builtin_bswap32(v);}
77
- #elif defined(_MSC_VER)
78
- static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return _byteswap_uint64(v);}
79
- static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return _byteswap_ulong(v);}
80
- #endif
81
- static inline uint64_t _wyr3(const uint8_t *p, unsigned k) { return (((uint64_t)p[0])<<16)|(((uint64_t)p[k>>1])<<8)|p[k-1];}
82
- //wyhash function
83
- static inline uint64_t _wyfinish16(const uint8_t *p, uint64_t len, uint64_t seed, const uint64_t *secret, uint64_t i){
84
- #if(WYHASH_CONDOM>0)
85
- uint64_t a, b;
86
- if(_likely_(i<=8)){
87
- if(_likely_(i>=4)){ a=_wyr4(p); b=_wyr4(p+i-4); }
88
- else if (_likely_(i)){ a=_wyr3(p,i); b=0; }
89
- else a=b=0;
90
- }
91
- else{ a=_wyr8(p); b=_wyr8(p+i-8); }
92
- return _wymix(secret[1]^len,_wymix(a^secret[1], b^seed));
93
- #else
94
- #define oneshot_shift ((i<8)*((8-i)<<3))
95
- return _wymix(secret[1]^len,_wymix((_wyr8(p)<<oneshot_shift)^secret[1],(_wyr8(p+i-8)>>oneshot_shift)^seed));
96
- #endif
97
- }
98
-
99
- static inline uint64_t _wyfinish(const uint8_t *p, uint64_t len, uint64_t seed, const uint64_t *secret, uint64_t i){
100
- if(_likely_(i<=16)) return _wyfinish16(p,len,seed,secret,i);
101
- return _wyfinish(p+16,len,_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed),secret,i-16);
102
- }
103
-
104
- static inline uint64_t wyhash(const void *key, uint64_t len, uint64_t seed, const uint64_t *secret){
105
- const uint8_t *p=(const uint8_t *)key;
106
- uint64_t i=len; seed^=*secret;
107
- if(_unlikely_(i>64)){
108
- uint64_t see1=seed;
109
- do{
110
- seed=_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed)^_wymix(_wyr8(p+16)^secret[2],_wyr8(p+24)^seed);
111
- see1=_wymix(_wyr8(p+32)^secret[3],_wyr8(p+40)^see1)^_wymix(_wyr8(p+48)^secret[4],_wyr8(p+56)^see1);
112
- p+=64; i-=64;
113
- }while(i>64);
114
- seed^=see1;
115
- }
116
- return _wyfinish(p,len,seed,secret,i);
117
- }
118
- //utility functions
119
- static const uint64_t _wyp[5] = {0xa0761d6478bd642full, 0xe7037ed1a0b428dbull, 0x8ebc6af09c88c6e3ull, 0x589965cc75374cc3ull, 0x1d8e4e27c47d124full};
120
- static inline uint64_t wyhash64(uint64_t A, uint64_t B){ A^=_wyp[0]; B^=_wyp[1]; _wymum(&A,&B); return _wymix(A^_wyp[0],B^_wyp[1]);}
121
- static inline uint64_t wyrand(uint64_t *seed){ *seed+=_wyp[0]; return _wymix(*seed,*seed^_wyp[1]);}
122
- static inline double wy2u01(uint64_t r){ const double _wynorm=1.0/(1ull<<52); return (r>>12)*_wynorm;}
123
- static inline double wy2gau(uint64_t r){ const double _wynorm=1.0/(1ull<<20); return ((r&0x1fffff)+((r>>21)&0x1fffff)+((r>>42)&0x1fffff))*_wynorm-3.0;}
124
- static inline uint64_t wy2u0k(uint64_t r, uint64_t k){ _wymum(&r,&k); return k; }
125
-
126
- static inline void make_secret(uint64_t seed, uint64_t *secret){
127
- uint8_t c[] = {15, 23, 27, 29, 30, 39, 43, 45, 46, 51, 53, 54, 57, 58, 60, 71, 75, 77, 78, 83, 85, 86, 89, 90, 92, 99, 101, 102, 105, 106, 108, 113, 114, 116, 120, 135, 139, 141, 142, 147, 149, 150, 153, 154, 156, 163, 165, 166, 169, 170, 172, 177, 178, 180, 184, 195, 197, 198, 201, 202, 204, 209, 210, 212, 216, 225, 226, 228, 232, 240 };
128
- for(size_t i=0;i<5;i++){
129
- uint8_t ok;
130
- do{
131
- ok=1; secret[i]=0;
132
- for(size_t j=0;j<64;j+=8) secret[i]|=((uint64_t)c[wyrand(&seed)%sizeof(c)])<<j;
133
- if(secret[i]%2==0){ ok=0; continue; }
134
- for(size_t j=0;j<i;j++)
135
- #if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
136
- if(__builtin_popcountll(secret[j]^secret[i])!=32){ ok=0; break; }
137
- #elif defined(_MSC_VER) && defined(_M_X64)
138
- if(_mm_popcnt_u64(secret[j]^secret[i])!=32){ ok=0; break; }
139
- #endif
140
- if(!ok)continue;
141
- for(uint64_t j=3;j<0x100000000ull;j+=2) if(secret[i]%j==0){ ok=0; break; }
142
- }while(!ok);
143
- }
144
- }
145
- #endif