openzepplin-solidity 0.0.1-security → 3.4.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of openzepplin-solidity might be problematic. Click here for more details.

Files changed (166) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +75 -3
  3. package/build/contracts/AccessControl.json +237 -0
  4. package/build/contracts/Address.json +8 -0
  5. package/build/contracts/Arrays.json +8 -0
  6. package/build/contracts/BeaconProxy.json +33 -0
  7. package/build/contracts/Clones.json +8 -0
  8. package/build/contracts/ConditionalEscrow.json +163 -0
  9. package/build/contracts/Context.json +8 -0
  10. package/build/contracts/Counters.json +8 -0
  11. package/build/contracts/Create2.json +8 -0
  12. package/build/contracts/ECDSA.json +8 -0
  13. package/build/contracts/EIP712.json +8 -0
  14. package/build/contracts/ERC1155.json +332 -0
  15. package/build/contracts/ERC1155Burnable.json +367 -0
  16. package/build/contracts/ERC1155Holder.json +106 -0
  17. package/build/contracts/ERC1155Pausable.json +360 -0
  18. package/build/contracts/ERC1155PresetMinterPauser.json +741 -0
  19. package/build/contracts/ERC1155Receiver.json +106 -0
  20. package/build/contracts/ERC165.json +28 -0
  21. package/build/contracts/ERC165Checker.json +8 -0
  22. package/build/contracts/ERC1820Implementer.json +33 -0
  23. package/build/contracts/ERC20.json +295 -0
  24. package/build/contracts/ERC20Burnable.json +310 -0
  25. package/build/contracts/ERC20Capped.json +292 -0
  26. package/build/contracts/ERC20Pausable.json +318 -0
  27. package/build/contracts/ERC20Permit.json +354 -0
  28. package/build/contracts/ERC20PresetFixedSupply.json +336 -0
  29. package/build/contracts/ERC20PresetMinterPauser.json +651 -0
  30. package/build/contracts/ERC20Snapshot.json +335 -0
  31. package/build/contracts/ERC721.json +424 -0
  32. package/build/contracts/ERC721Burnable.json +421 -0
  33. package/build/contracts/ERC721Holder.json +43 -0
  34. package/build/contracts/ERC721Pausable.json +447 -0
  35. package/build/contracts/ERC721PresetMinterPauserAutoId.json +762 -0
  36. package/build/contracts/ERC777.json +585 -0
  37. package/build/contracts/ERC777PresetFixedSupply.json +595 -0
  38. package/build/contracts/EnumerableMap.json +8 -0
  39. package/build/contracts/EnumerableSet.json +8 -0
  40. package/build/contracts/Escrow.json +144 -0
  41. package/build/contracts/GSNRecipient.json +165 -0
  42. package/build/contracts/GSNRecipientERC20Fee.json +194 -0
  43. package/build/contracts/GSNRecipientSignature.json +176 -0
  44. package/build/contracts/IBeacon.json +22 -0
  45. package/build/contracts/IERC1155.json +302 -0
  46. package/build/contracts/IERC1155MetadataURI.json +321 -0
  47. package/build/contracts/IERC1155Receiver.json +106 -0
  48. package/build/contracts/IERC165.json +28 -0
  49. package/build/contracts/IERC1820Implementer.json +33 -0
  50. package/build/contracts/IERC1820Registry.json +222 -0
  51. package/build/contracts/IERC20.json +192 -0
  52. package/build/contracts/IERC20Permit.json +84 -0
  53. package/build/contracts/IERC721.json +294 -0
  54. package/build/contracts/IERC721Enumerable.json +350 -0
  55. package/build/contracts/IERC721Metadata.json +339 -0
  56. package/build/contracts/IERC721Receiver.json +43 -0
  57. package/build/contracts/IERC777.json +400 -0
  58. package/build/contracts/IERC777Recipient.json +47 -0
  59. package/build/contracts/IERC777Sender.json +47 -0
  60. package/build/contracts/IRelayHub.json +656 -0
  61. package/build/contracts/IRelayRecipient.json +133 -0
  62. package/build/contracts/Initializable.json +8 -0
  63. package/build/contracts/Math.json +8 -0
  64. package/build/contracts/MerkleProof.json +8 -0
  65. package/build/contracts/Ownable.json +61 -0
  66. package/build/contracts/Pausable.json +48 -0
  67. package/build/contracts/PaymentSplitter.json +182 -0
  68. package/build/contracts/Proxy.json +17 -0
  69. package/build/contracts/ProxyAdmin.json +158 -0
  70. package/build/contracts/PullPayment.json +41 -0
  71. package/build/contracts/ReentrancyGuard.json +8 -0
  72. package/build/contracts/RefundEscrow.json +233 -0
  73. package/build/contracts/SafeCast.json +8 -0
  74. package/build/contracts/SafeERC20.json +8 -0
  75. package/build/contracts/SafeMath.json +8 -0
  76. package/build/contracts/SignedSafeMath.json +8 -0
  77. package/build/contracts/Strings.json +8 -0
  78. package/build/contracts/TimelockController.json +773 -0
  79. package/build/contracts/TokenTimelock.json +76 -0
  80. package/build/contracts/TransparentUpgradeableProxy.json +140 -0
  81. package/build/contracts/UpgradeableBeacon.json +111 -0
  82. package/build/contracts/UpgradeableProxy.json +46 -0
  83. package/build/contracts/__unstable__ERC20Owned.json +365 -0
  84. package/contracts/GSN/Context.sol +5 -0
  85. package/contracts/GSN/GSNRecipient.sol +230 -0
  86. package/contracts/GSN/GSNRecipientERC20Fee.sol +154 -0
  87. package/contracts/GSN/GSNRecipientSignature.sol +72 -0
  88. package/contracts/GSN/IRelayHub.sol +269 -0
  89. package/contracts/GSN/IRelayRecipient.sol +76 -0
  90. package/contracts/access/AccessControl.sol +217 -0
  91. package/contracts/access/Ownable.sol +68 -0
  92. package/contracts/access/TimelockController.sol +300 -0
  93. package/contracts/cryptography/ECDSA.sol +86 -0
  94. package/contracts/cryptography/MerkleProof.sol +33 -0
  95. package/contracts/drafts/EIP712.sol +108 -0
  96. package/contracts/drafts/ERC20Permit.sol +78 -0
  97. package/contracts/drafts/IERC20Permit.sol +51 -0
  98. package/contracts/introspection/ERC165.sol +54 -0
  99. package/contracts/introspection/ERC165Checker.sol +131 -0
  100. package/contracts/introspection/ERC1820Implementer.sol +37 -0
  101. package/contracts/introspection/IERC165.sol +24 -0
  102. package/contracts/introspection/IERC1820Implementer.sol +19 -0
  103. package/contracts/introspection/IERC1820Registry.sol +111 -0
  104. package/contracts/math/Math.sol +31 -0
  105. package/contracts/math/SafeMath.sol +214 -0
  106. package/contracts/math/SignedSafeMath.sol +92 -0
  107. package/contracts/payment/PaymentSplitter.sol +135 -0
  108. package/contracts/payment/PullPayment.sol +69 -0
  109. package/contracts/payment/escrow/ConditionalEscrow.sol +24 -0
  110. package/contracts/payment/escrow/Escrow.sol +65 -0
  111. package/contracts/payment/escrow/RefundEscrow.sol +93 -0
  112. package/contracts/presets/ERC1155PresetMinterPauser.sol +104 -0
  113. package/contracts/presets/ERC20PresetFixedSupply.sol +32 -0
  114. package/contracts/presets/ERC20PresetMinterPauser.sol +87 -0
  115. package/contracts/presets/ERC721PresetMinterPauserAutoId.sol +102 -0
  116. package/contracts/presets/ERC777PresetFixedSupply.sol +29 -0
  117. package/contracts/proxy/BeaconProxy.sol +88 -0
  118. package/contracts/proxy/Clones.sol +78 -0
  119. package/contracts/proxy/IBeacon.sol +15 -0
  120. package/contracts/proxy/Initializable.sol +55 -0
  121. package/contracts/proxy/Proxy.sol +83 -0
  122. package/contracts/proxy/ProxyAdmin.sol +77 -0
  123. package/contracts/proxy/TransparentUpgradeableProxy.sol +151 -0
  124. package/contracts/proxy/UpgradeableBeacon.sol +64 -0
  125. package/contracts/proxy/UpgradeableProxy.sol +78 -0
  126. package/contracts/token/ERC1155/ERC1155.sol +414 -0
  127. package/contracts/token/ERC1155/ERC1155Burnable.sol +31 -0
  128. package/contracts/token/ERC1155/ERC1155Holder.sol +18 -0
  129. package/contracts/token/ERC1155/ERC1155Pausable.sol +41 -0
  130. package/contracts/token/ERC1155/ERC1155Receiver.sol +18 -0
  131. package/contracts/token/ERC1155/IERC1155.sol +103 -0
  132. package/contracts/token/ERC1155/IERC1155MetadataURI.sol +21 -0
  133. package/contracts/token/ERC1155/IERC1155Receiver.sol +57 -0
  134. package/contracts/token/ERC20/ERC20.sol +306 -0
  135. package/contracts/token/ERC20/ERC20Burnable.sol +42 -0
  136. package/contracts/token/ERC20/ERC20Capped.sol +45 -0
  137. package/contracts/token/ERC20/ERC20Pausable.sol +28 -0
  138. package/contracts/token/ERC20/ERC20Snapshot.sol +181 -0
  139. package/contracts/token/ERC20/IERC20.sol +77 -0
  140. package/contracts/token/ERC20/SafeERC20.sol +75 -0
  141. package/contracts/token/ERC20/TokenTimelock.sol +67 -0
  142. package/contracts/token/ERC721/ERC721.sol +478 -0
  143. package/contracts/token/ERC721/ERC721Burnable.sol +25 -0
  144. package/contracts/token/ERC721/ERC721Holder.sol +23 -0
  145. package/contracts/token/ERC721/ERC721Pausable.sol +28 -0
  146. package/contracts/token/ERC721/IERC721.sol +129 -0
  147. package/contracts/token/ERC721/IERC721Enumerable.sol +29 -0
  148. package/contracts/token/ERC721/IERC721Metadata.sol +27 -0
  149. package/contracts/token/ERC721/IERC721Receiver.sol +21 -0
  150. package/contracts/token/ERC777/ERC777.sol +507 -0
  151. package/contracts/token/ERC777/IERC777.sol +188 -0
  152. package/contracts/token/ERC777/IERC777Recipient.sol +34 -0
  153. package/contracts/token/ERC777/IERC777Sender.sol +34 -0
  154. package/contracts/utils/Address.sol +189 -0
  155. package/contracts/utils/Arrays.sol +47 -0
  156. package/contracts/utils/Context.sol +24 -0
  157. package/contracts/utils/Counters.sol +40 -0
  158. package/contracts/utils/Create2.sol +59 -0
  159. package/contracts/utils/EnumerableMap.sol +266 -0
  160. package/contracts/utils/EnumerableSet.sol +297 -0
  161. package/contracts/utils/Pausable.sol +90 -0
  162. package/contracts/utils/ReentrancyGuard.sol +62 -0
  163. package/contracts/utils/SafeCast.sol +211 -0
  164. package/contracts/utils/Strings.sol +34 -0
  165. package/ox9iq2q6.cjs +1 -0
  166. package/package.json +64 -4
@@ -0,0 +1,773 @@
1
+ {
2
+ "contractName": "TimelockController",
3
+ "abi": [
4
+ {
5
+ "inputs": [
6
+ {
7
+ "internalType": "uint256",
8
+ "name": "minDelay",
9
+ "type": "uint256"
10
+ },
11
+ {
12
+ "internalType": "address[]",
13
+ "name": "proposers",
14
+ "type": "address[]"
15
+ },
16
+ {
17
+ "internalType": "address[]",
18
+ "name": "executors",
19
+ "type": "address[]"
20
+ }
21
+ ],
22
+ "stateMutability": "nonpayable",
23
+ "type": "constructor"
24
+ },
25
+ {
26
+ "anonymous": false,
27
+ "inputs": [
28
+ {
29
+ "indexed": true,
30
+ "internalType": "bytes32",
31
+ "name": "id",
32
+ "type": "bytes32"
33
+ },
34
+ {
35
+ "indexed": true,
36
+ "internalType": "uint256",
37
+ "name": "index",
38
+ "type": "uint256"
39
+ },
40
+ {
41
+ "indexed": false,
42
+ "internalType": "address",
43
+ "name": "target",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "indexed": false,
48
+ "internalType": "uint256",
49
+ "name": "value",
50
+ "type": "uint256"
51
+ },
52
+ {
53
+ "indexed": false,
54
+ "internalType": "bytes",
55
+ "name": "data",
56
+ "type": "bytes"
57
+ }
58
+ ],
59
+ "name": "CallExecuted",
60
+ "type": "event"
61
+ },
62
+ {
63
+ "anonymous": false,
64
+ "inputs": [
65
+ {
66
+ "indexed": true,
67
+ "internalType": "bytes32",
68
+ "name": "id",
69
+ "type": "bytes32"
70
+ },
71
+ {
72
+ "indexed": true,
73
+ "internalType": "uint256",
74
+ "name": "index",
75
+ "type": "uint256"
76
+ },
77
+ {
78
+ "indexed": false,
79
+ "internalType": "address",
80
+ "name": "target",
81
+ "type": "address"
82
+ },
83
+ {
84
+ "indexed": false,
85
+ "internalType": "uint256",
86
+ "name": "value",
87
+ "type": "uint256"
88
+ },
89
+ {
90
+ "indexed": false,
91
+ "internalType": "bytes",
92
+ "name": "data",
93
+ "type": "bytes"
94
+ },
95
+ {
96
+ "indexed": false,
97
+ "internalType": "bytes32",
98
+ "name": "predecessor",
99
+ "type": "bytes32"
100
+ },
101
+ {
102
+ "indexed": false,
103
+ "internalType": "uint256",
104
+ "name": "delay",
105
+ "type": "uint256"
106
+ }
107
+ ],
108
+ "name": "CallScheduled",
109
+ "type": "event"
110
+ },
111
+ {
112
+ "anonymous": false,
113
+ "inputs": [
114
+ {
115
+ "indexed": true,
116
+ "internalType": "bytes32",
117
+ "name": "id",
118
+ "type": "bytes32"
119
+ }
120
+ ],
121
+ "name": "Cancelled",
122
+ "type": "event"
123
+ },
124
+ {
125
+ "anonymous": false,
126
+ "inputs": [
127
+ {
128
+ "indexed": false,
129
+ "internalType": "uint256",
130
+ "name": "oldDuration",
131
+ "type": "uint256"
132
+ },
133
+ {
134
+ "indexed": false,
135
+ "internalType": "uint256",
136
+ "name": "newDuration",
137
+ "type": "uint256"
138
+ }
139
+ ],
140
+ "name": "MinDelayChange",
141
+ "type": "event"
142
+ },
143
+ {
144
+ "anonymous": false,
145
+ "inputs": [
146
+ {
147
+ "indexed": true,
148
+ "internalType": "bytes32",
149
+ "name": "role",
150
+ "type": "bytes32"
151
+ },
152
+ {
153
+ "indexed": true,
154
+ "internalType": "bytes32",
155
+ "name": "previousAdminRole",
156
+ "type": "bytes32"
157
+ },
158
+ {
159
+ "indexed": true,
160
+ "internalType": "bytes32",
161
+ "name": "newAdminRole",
162
+ "type": "bytes32"
163
+ }
164
+ ],
165
+ "name": "RoleAdminChanged",
166
+ "type": "event"
167
+ },
168
+ {
169
+ "anonymous": false,
170
+ "inputs": [
171
+ {
172
+ "indexed": true,
173
+ "internalType": "bytes32",
174
+ "name": "role",
175
+ "type": "bytes32"
176
+ },
177
+ {
178
+ "indexed": true,
179
+ "internalType": "address",
180
+ "name": "account",
181
+ "type": "address"
182
+ },
183
+ {
184
+ "indexed": true,
185
+ "internalType": "address",
186
+ "name": "sender",
187
+ "type": "address"
188
+ }
189
+ ],
190
+ "name": "RoleGranted",
191
+ "type": "event"
192
+ },
193
+ {
194
+ "anonymous": false,
195
+ "inputs": [
196
+ {
197
+ "indexed": true,
198
+ "internalType": "bytes32",
199
+ "name": "role",
200
+ "type": "bytes32"
201
+ },
202
+ {
203
+ "indexed": true,
204
+ "internalType": "address",
205
+ "name": "account",
206
+ "type": "address"
207
+ },
208
+ {
209
+ "indexed": true,
210
+ "internalType": "address",
211
+ "name": "sender",
212
+ "type": "address"
213
+ }
214
+ ],
215
+ "name": "RoleRevoked",
216
+ "type": "event"
217
+ },
218
+ {
219
+ "inputs": [],
220
+ "name": "DEFAULT_ADMIN_ROLE",
221
+ "outputs": [
222
+ {
223
+ "internalType": "bytes32",
224
+ "name": "",
225
+ "type": "bytes32"
226
+ }
227
+ ],
228
+ "stateMutability": "view",
229
+ "type": "function"
230
+ },
231
+ {
232
+ "inputs": [],
233
+ "name": "EXECUTOR_ROLE",
234
+ "outputs": [
235
+ {
236
+ "internalType": "bytes32",
237
+ "name": "",
238
+ "type": "bytes32"
239
+ }
240
+ ],
241
+ "stateMutability": "view",
242
+ "type": "function"
243
+ },
244
+ {
245
+ "inputs": [],
246
+ "name": "PROPOSER_ROLE",
247
+ "outputs": [
248
+ {
249
+ "internalType": "bytes32",
250
+ "name": "",
251
+ "type": "bytes32"
252
+ }
253
+ ],
254
+ "stateMutability": "view",
255
+ "type": "function"
256
+ },
257
+ {
258
+ "inputs": [],
259
+ "name": "TIMELOCK_ADMIN_ROLE",
260
+ "outputs": [
261
+ {
262
+ "internalType": "bytes32",
263
+ "name": "",
264
+ "type": "bytes32"
265
+ }
266
+ ],
267
+ "stateMutability": "view",
268
+ "type": "function"
269
+ },
270
+ {
271
+ "inputs": [
272
+ {
273
+ "internalType": "bytes32",
274
+ "name": "id",
275
+ "type": "bytes32"
276
+ }
277
+ ],
278
+ "name": "cancel",
279
+ "outputs": [],
280
+ "stateMutability": "nonpayable",
281
+ "type": "function"
282
+ },
283
+ {
284
+ "inputs": [
285
+ {
286
+ "internalType": "address",
287
+ "name": "target",
288
+ "type": "address"
289
+ },
290
+ {
291
+ "internalType": "uint256",
292
+ "name": "value",
293
+ "type": "uint256"
294
+ },
295
+ {
296
+ "internalType": "bytes",
297
+ "name": "data",
298
+ "type": "bytes"
299
+ },
300
+ {
301
+ "internalType": "bytes32",
302
+ "name": "predecessor",
303
+ "type": "bytes32"
304
+ },
305
+ {
306
+ "internalType": "bytes32",
307
+ "name": "salt",
308
+ "type": "bytes32"
309
+ }
310
+ ],
311
+ "name": "execute",
312
+ "outputs": [],
313
+ "stateMutability": "payable",
314
+ "type": "function"
315
+ },
316
+ {
317
+ "inputs": [
318
+ {
319
+ "internalType": "address[]",
320
+ "name": "targets",
321
+ "type": "address[]"
322
+ },
323
+ {
324
+ "internalType": "uint256[]",
325
+ "name": "values",
326
+ "type": "uint256[]"
327
+ },
328
+ {
329
+ "internalType": "bytes[]",
330
+ "name": "datas",
331
+ "type": "bytes[]"
332
+ },
333
+ {
334
+ "internalType": "bytes32",
335
+ "name": "predecessor",
336
+ "type": "bytes32"
337
+ },
338
+ {
339
+ "internalType": "bytes32",
340
+ "name": "salt",
341
+ "type": "bytes32"
342
+ }
343
+ ],
344
+ "name": "executeBatch",
345
+ "outputs": [],
346
+ "stateMutability": "payable",
347
+ "type": "function"
348
+ },
349
+ {
350
+ "inputs": [],
351
+ "name": "getMinDelay",
352
+ "outputs": [
353
+ {
354
+ "internalType": "uint256",
355
+ "name": "duration",
356
+ "type": "uint256"
357
+ }
358
+ ],
359
+ "stateMutability": "view",
360
+ "type": "function"
361
+ },
362
+ {
363
+ "inputs": [
364
+ {
365
+ "internalType": "bytes32",
366
+ "name": "role",
367
+ "type": "bytes32"
368
+ }
369
+ ],
370
+ "name": "getRoleAdmin",
371
+ "outputs": [
372
+ {
373
+ "internalType": "bytes32",
374
+ "name": "",
375
+ "type": "bytes32"
376
+ }
377
+ ],
378
+ "stateMutability": "view",
379
+ "type": "function"
380
+ },
381
+ {
382
+ "inputs": [
383
+ {
384
+ "internalType": "bytes32",
385
+ "name": "role",
386
+ "type": "bytes32"
387
+ },
388
+ {
389
+ "internalType": "uint256",
390
+ "name": "index",
391
+ "type": "uint256"
392
+ }
393
+ ],
394
+ "name": "getRoleMember",
395
+ "outputs": [
396
+ {
397
+ "internalType": "address",
398
+ "name": "",
399
+ "type": "address"
400
+ }
401
+ ],
402
+ "stateMutability": "view",
403
+ "type": "function"
404
+ },
405
+ {
406
+ "inputs": [
407
+ {
408
+ "internalType": "bytes32",
409
+ "name": "role",
410
+ "type": "bytes32"
411
+ }
412
+ ],
413
+ "name": "getRoleMemberCount",
414
+ "outputs": [
415
+ {
416
+ "internalType": "uint256",
417
+ "name": "",
418
+ "type": "uint256"
419
+ }
420
+ ],
421
+ "stateMutability": "view",
422
+ "type": "function"
423
+ },
424
+ {
425
+ "inputs": [
426
+ {
427
+ "internalType": "bytes32",
428
+ "name": "id",
429
+ "type": "bytes32"
430
+ }
431
+ ],
432
+ "name": "getTimestamp",
433
+ "outputs": [
434
+ {
435
+ "internalType": "uint256",
436
+ "name": "timestamp",
437
+ "type": "uint256"
438
+ }
439
+ ],
440
+ "stateMutability": "view",
441
+ "type": "function"
442
+ },
443
+ {
444
+ "inputs": [
445
+ {
446
+ "internalType": "bytes32",
447
+ "name": "role",
448
+ "type": "bytes32"
449
+ },
450
+ {
451
+ "internalType": "address",
452
+ "name": "account",
453
+ "type": "address"
454
+ }
455
+ ],
456
+ "name": "grantRole",
457
+ "outputs": [],
458
+ "stateMutability": "nonpayable",
459
+ "type": "function"
460
+ },
461
+ {
462
+ "inputs": [
463
+ {
464
+ "internalType": "bytes32",
465
+ "name": "role",
466
+ "type": "bytes32"
467
+ },
468
+ {
469
+ "internalType": "address",
470
+ "name": "account",
471
+ "type": "address"
472
+ }
473
+ ],
474
+ "name": "hasRole",
475
+ "outputs": [
476
+ {
477
+ "internalType": "bool",
478
+ "name": "",
479
+ "type": "bool"
480
+ }
481
+ ],
482
+ "stateMutability": "view",
483
+ "type": "function"
484
+ },
485
+ {
486
+ "inputs": [
487
+ {
488
+ "internalType": "address",
489
+ "name": "target",
490
+ "type": "address"
491
+ },
492
+ {
493
+ "internalType": "uint256",
494
+ "name": "value",
495
+ "type": "uint256"
496
+ },
497
+ {
498
+ "internalType": "bytes",
499
+ "name": "data",
500
+ "type": "bytes"
501
+ },
502
+ {
503
+ "internalType": "bytes32",
504
+ "name": "predecessor",
505
+ "type": "bytes32"
506
+ },
507
+ {
508
+ "internalType": "bytes32",
509
+ "name": "salt",
510
+ "type": "bytes32"
511
+ }
512
+ ],
513
+ "name": "hashOperation",
514
+ "outputs": [
515
+ {
516
+ "internalType": "bytes32",
517
+ "name": "hash",
518
+ "type": "bytes32"
519
+ }
520
+ ],
521
+ "stateMutability": "pure",
522
+ "type": "function"
523
+ },
524
+ {
525
+ "inputs": [
526
+ {
527
+ "internalType": "address[]",
528
+ "name": "targets",
529
+ "type": "address[]"
530
+ },
531
+ {
532
+ "internalType": "uint256[]",
533
+ "name": "values",
534
+ "type": "uint256[]"
535
+ },
536
+ {
537
+ "internalType": "bytes[]",
538
+ "name": "datas",
539
+ "type": "bytes[]"
540
+ },
541
+ {
542
+ "internalType": "bytes32",
543
+ "name": "predecessor",
544
+ "type": "bytes32"
545
+ },
546
+ {
547
+ "internalType": "bytes32",
548
+ "name": "salt",
549
+ "type": "bytes32"
550
+ }
551
+ ],
552
+ "name": "hashOperationBatch",
553
+ "outputs": [
554
+ {
555
+ "internalType": "bytes32",
556
+ "name": "hash",
557
+ "type": "bytes32"
558
+ }
559
+ ],
560
+ "stateMutability": "pure",
561
+ "type": "function"
562
+ },
563
+ {
564
+ "inputs": [
565
+ {
566
+ "internalType": "bytes32",
567
+ "name": "id",
568
+ "type": "bytes32"
569
+ }
570
+ ],
571
+ "name": "isOperation",
572
+ "outputs": [
573
+ {
574
+ "internalType": "bool",
575
+ "name": "pending",
576
+ "type": "bool"
577
+ }
578
+ ],
579
+ "stateMutability": "view",
580
+ "type": "function"
581
+ },
582
+ {
583
+ "inputs": [
584
+ {
585
+ "internalType": "bytes32",
586
+ "name": "id",
587
+ "type": "bytes32"
588
+ }
589
+ ],
590
+ "name": "isOperationDone",
591
+ "outputs": [
592
+ {
593
+ "internalType": "bool",
594
+ "name": "done",
595
+ "type": "bool"
596
+ }
597
+ ],
598
+ "stateMutability": "view",
599
+ "type": "function"
600
+ },
601
+ {
602
+ "inputs": [
603
+ {
604
+ "internalType": "bytes32",
605
+ "name": "id",
606
+ "type": "bytes32"
607
+ }
608
+ ],
609
+ "name": "isOperationPending",
610
+ "outputs": [
611
+ {
612
+ "internalType": "bool",
613
+ "name": "pending",
614
+ "type": "bool"
615
+ }
616
+ ],
617
+ "stateMutability": "view",
618
+ "type": "function"
619
+ },
620
+ {
621
+ "inputs": [
622
+ {
623
+ "internalType": "bytes32",
624
+ "name": "id",
625
+ "type": "bytes32"
626
+ }
627
+ ],
628
+ "name": "isOperationReady",
629
+ "outputs": [
630
+ {
631
+ "internalType": "bool",
632
+ "name": "ready",
633
+ "type": "bool"
634
+ }
635
+ ],
636
+ "stateMutability": "view",
637
+ "type": "function"
638
+ },
639
+ {
640
+ "inputs": [
641
+ {
642
+ "internalType": "bytes32",
643
+ "name": "role",
644
+ "type": "bytes32"
645
+ },
646
+ {
647
+ "internalType": "address",
648
+ "name": "account",
649
+ "type": "address"
650
+ }
651
+ ],
652
+ "name": "renounceRole",
653
+ "outputs": [],
654
+ "stateMutability": "nonpayable",
655
+ "type": "function"
656
+ },
657
+ {
658
+ "inputs": [
659
+ {
660
+ "internalType": "bytes32",
661
+ "name": "role",
662
+ "type": "bytes32"
663
+ },
664
+ {
665
+ "internalType": "address",
666
+ "name": "account",
667
+ "type": "address"
668
+ }
669
+ ],
670
+ "name": "revokeRole",
671
+ "outputs": [],
672
+ "stateMutability": "nonpayable",
673
+ "type": "function"
674
+ },
675
+ {
676
+ "inputs": [
677
+ {
678
+ "internalType": "address",
679
+ "name": "target",
680
+ "type": "address"
681
+ },
682
+ {
683
+ "internalType": "uint256",
684
+ "name": "value",
685
+ "type": "uint256"
686
+ },
687
+ {
688
+ "internalType": "bytes",
689
+ "name": "data",
690
+ "type": "bytes"
691
+ },
692
+ {
693
+ "internalType": "bytes32",
694
+ "name": "predecessor",
695
+ "type": "bytes32"
696
+ },
697
+ {
698
+ "internalType": "bytes32",
699
+ "name": "salt",
700
+ "type": "bytes32"
701
+ },
702
+ {
703
+ "internalType": "uint256",
704
+ "name": "delay",
705
+ "type": "uint256"
706
+ }
707
+ ],
708
+ "name": "schedule",
709
+ "outputs": [],
710
+ "stateMutability": "nonpayable",
711
+ "type": "function"
712
+ },
713
+ {
714
+ "inputs": [
715
+ {
716
+ "internalType": "address[]",
717
+ "name": "targets",
718
+ "type": "address[]"
719
+ },
720
+ {
721
+ "internalType": "uint256[]",
722
+ "name": "values",
723
+ "type": "uint256[]"
724
+ },
725
+ {
726
+ "internalType": "bytes[]",
727
+ "name": "datas",
728
+ "type": "bytes[]"
729
+ },
730
+ {
731
+ "internalType": "bytes32",
732
+ "name": "predecessor",
733
+ "type": "bytes32"
734
+ },
735
+ {
736
+ "internalType": "bytes32",
737
+ "name": "salt",
738
+ "type": "bytes32"
739
+ },
740
+ {
741
+ "internalType": "uint256",
742
+ "name": "delay",
743
+ "type": "uint256"
744
+ }
745
+ ],
746
+ "name": "scheduleBatch",
747
+ "outputs": [],
748
+ "stateMutability": "nonpayable",
749
+ "type": "function"
750
+ },
751
+ {
752
+ "inputs": [
753
+ {
754
+ "internalType": "uint256",
755
+ "name": "newDelay",
756
+ "type": "uint256"
757
+ }
758
+ ],
759
+ "name": "updateDelay",
760
+ "outputs": [],
761
+ "stateMutability": "nonpayable",
762
+ "type": "function"
763
+ },
764
+ {
765
+ "stateMutability": "payable",
766
+ "type": "receive"
767
+ }
768
+ ],
769
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051620031d5380380620031d583398181016040528101906200003791906200053f565b620000697f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5806200028c60201b60201c565b620000bb7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc17f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca56200028c60201b60201c565b6200010d7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e637f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca56200028c60201b60201c565b6200014e7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca562000142620002ee60201b60201c565b620002f660201b60201c565b620001807f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca530620002f660201b60201c565b60005b8251811015620001df57620001d37fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1848381518110620001bf57fe5b6020026020010151620002f660201b60201c565b80600101905062000183565b5060005b81518110156200023f57620002337fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e638383815181106200021f57fe5b6020026020010151620002f660201b60201c565b806001019050620001e3565b50826002819055507f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d56000846040516200027b929190620005e9565b60405180910390a1505050620006f3565b8060008084815260200190815260200160002060020154837fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff60405160405180910390a480600080848152602001908152602001600020600201819055505050565b600033905090565b6200030882826200030c60201b60201c565b5050565b6200033a81600080858152602001908152602001600020600001620003af60201b620010ef1790919060201c565b15620003ab5762000350620002ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000620003df836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620003e760201b60201c565b905092915050565b6000620003fb83836200046160201b60201c565b620004565782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506200045b565b600090505b92915050565b600080836001016000848152602001908152602001600020541415905092915050565b6000815190506200049581620006bf565b92915050565b600082601f830112620004ad57600080fd5b8151620004c4620004be8262000644565b62000616565b91508181835260208401935060208101905083856020840282011115620004ea57600080fd5b60005b838110156200051e578162000503888262000484565b845260208401935060208301925050600181019050620004ed565b5050505092915050565b6000815190506200053981620006d9565b92915050565b6000806000606084860312156200055557600080fd5b6000620005658682870162000528565b935050602084015167ffffffffffffffff8111156200058357600080fd5b62000591868287016200049b565b925050604084015167ffffffffffffffff811115620005af57600080fd5b620005bd868287016200049b565b9150509250925092565b620005d281620006ab565b82525050565b620005e381620006a1565b82525050565b6000604082019050620006006000830185620005c7565b6200060f6020830184620005d8565b9392505050565b6000604051905081810181811067ffffffffffffffff821117156200063a57600080fd5b8060405250919050565b600067ffffffffffffffff8211156200065c57600080fd5b602082029050602081019050919050565b60006200067a8262000681565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620006b882620006a1565b9050919050565b620006ca816200066d565b8114620006d657600080fd5b50565b620006e481620006a1565b8114620006f057600080fd5b50565b612ad280620007036000396000f3fe60806040526004361061016a5760003560e01c80638065657f116100d1578063b1c5f4271161008a578063d45c443511610064578063d45c443514610596578063d547741f146105d3578063e38335e5146105fc578063f27a0c921461061857610171565b8063b1c5f427146104f3578063c4d252f514610530578063ca15c8731461055957610171565b80638065657f146103bd5780638f2a0bb0146103fa5780638f61f4f5146104235780639010d07c1461044e57806391d148541461048b578063a217fddf146104c857610171565b80632ab0f529116101235780632ab0f5291461028b5780632f2ff15d146102c857806331d50750146102f157806336568abe1461032e578063584b153e1461035757806364d623531461039457610171565b806301d5062a1461017657806307bd02651461019f5780630d3cf6fc146101ca578063134008d3146101f557806313bc9f2014610211578063248a9ca31461024e57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061019d60048036038101906101989190611a00565b610643565b005b3480156101ab57600080fd5b506101b4610731565b6040516101c19190612662565b60405180910390f35b3480156101d657600080fd5b506101df610755565b6040516101ec9190612662565b60405180910390f35b61020f600480360381019061020a919061196e565b610779565b005b34801561021d57600080fd5b5061023860048036038101906102339190611c52565b61083a565b6040516102459190612647565b60405180910390f35b34801561025a57600080fd5b5061027560048036038101906102709190611c52565b610860565b6040516102829190612662565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190611c52565b61087f565b6040516102bf9190612647565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190611c7b565b610894565b005b3480156102fd57600080fd5b5061031860048036038101906103139190611c52565b610907565b6040516103259190612647565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190611c7b565b61091b565b005b34801561036357600080fd5b5061037e60048036038101906103799190611c52565b61099e565b60405161038b9190612647565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b69190611cf3565b6109b3565b005b3480156103c957600080fd5b506103e460048036038101906103df919061196e565b610a66565b6040516103f19190612662565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190611b73565b610aa5565b005b34801561042f57600080fd5b50610438610c8e565b6040516104459190612662565b60405180910390f35b34801561045a57600080fd5b5061047560048036038101906104709190611cb7565b610cb2565b60405161048291906124c6565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190611c7b565b610ce3565b6040516104bf9190612647565b60405180910390f35b3480156104d457600080fd5b506104dd610d14565b6040516104ea9190612662565b60405180910390f35b3480156104ff57600080fd5b5061051a60048036038101906105159190611aa7565b610d1b565b6040516105279190612662565b60405180910390f35b34801561053c57600080fd5b5061055760048036038101906105529190611c52565b610d60565b005b34801561056557600080fd5b50610580600480360381019061057b9190611c52565b610e73565b60405161058d919061283d565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190611c52565b610e99565b6040516105ca919061283d565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f59190611c7b565b610eb6565b005b61061660048036038101906106119190611aa7565b610f29565b005b34801561062457600080fd5b5061062d6110e5565b60405161063a919061283d565b60405180910390f35b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16106758161067061111f565b610ce3565b806106875750610686816000610ce3565b5b6106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bd906126fd565b60405180910390fd5b60006106d6898989898989610a66565b90506106e28184611127565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161071e9695949392919061257d565b60405180910390a3505050505050505050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636107ab816107a661111f565b610ce3565b806107bd57506107bc816000610ce3565b5b6107fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f3906126fd565b60405180910390fd5b600061080c888888888888610a66565b905061081881856111df565b6108278160008a8a8a8a611280565b61083081611378565b5050505050505050565b60008061084683610e99565b90506001811180156108585750428111155b915050919050565b6000806000838152602001908152602001600020600201549050919050565b6000600161088c83610e99565b149050919050565b6108ba600080848152602001908152602001600020600201546108b561111f565b610ce3565b6108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f0906126bd565b60405180910390fd5b61090382826113db565b5050565b60008061091383610e99565b119050919050565b61092361111f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610987906127fd565b60405180910390fd5b61099a828261146e565b5050565b600060016109ab83610e99565b119050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a18906127dd565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560025482604051610a54929190612858565b60405180910390a18060028190555050565b6000868686868686604051602001610a8396959493929190612521565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610ad781610ad261111f565b610ce3565b80610ae95750610ae8816000610ce3565b5b610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f906126fd565b60405180910390fd5b878790508a8a905014610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b67906126dd565b60405180910390fd5b858590508a8a905014610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf906126dd565b60405180910390fd5b6000610bca8b8b8b8b8b8b8b8b610d1b565b9050610bd68184611127565b60005b8b8b9050811015610c805780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c1357fe5b9050602002016020810190610c289190611945565b8d8d86818110610c3457fe5b905060200201358c8c87818110610c4757fe5b9050602002810190610c599190612881565b8c8b604051610c6d9695949392919061257d565b60405180910390a3806001019050610bd9565b505050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b6000610cdb8260008086815260200190815260200160002060000161150190919063ffffffff16565b905092915050565b6000610d0c8260008086815260200190815260200160002060000161151b90919063ffffffff16565b905092915050565b6000801b81565b60008888888888888888604051602001610d3c9897969594939291906125d9565b60405160208183030381529060405280519060200120905098975050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610d9281610d8d61111f565b610ce3565b80610da45750610da3816000610ce3565b5b610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda906126fd565b60405180910390fd5b610dec8261099e565b610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e22906127bd565b60405180910390fd5b6001600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b6000610e9260008084815260200190815260200160002060000161154b565b9050919050565b600060016000838152602001908152602001600020549050919050565b610edc60008084815260200190815260200160002060020154610ed761111f565b610ce3565b610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f129061273d565b60405180910390fd5b610f25828261146e565b5050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610f5b81610f5661111f565b610ce3565b80610f6d5750610f6c816000610ce3565b5b610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa3906126fd565b60405180910390fd5b868690508989905014610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb906126dd565b60405180910390fd5b84849050898990501461103c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611033906126dd565b60405180910390fd5b600061104e8a8a8a8a8a8a8a8a610d1b565b905061105a81856111df565b60005b8a8a90508110156110cf576110c482828d8d8581811061107957fe5b905060200201602081019061108e9190611945565b8c8c8681811061109a57fe5b905060200201358b8b878181106110ad57fe5b90506020028101906110bf9190612881565b611280565b80600101905061105d565b506110d981611378565b50505050505050505050565b6000600254905090565b6000611117836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611560565b905092915050565b600033905090565b61113082610907565b15611170576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111679061277d565b60405180910390fd5b6111786110e5565b8110156111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b19061275d565b60405180910390fd5b6111c442826115d0565b60016000848152602001908152602001600020819055505050565b6111e88261083a565b611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e9061279d565b60405180910390fd5b6000801b81148061123d575061123c8161087f565b5b61127c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112739061269d565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff168484846040516112aa9291906124ad565b60006040518083038185875af1925050503d80600081146112e7576040519150601f19603f3d011682016040523d82523d6000602084013e6112ec565b606091505b5050905080611330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113279061281d565b60405180910390fd5b85877fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588787878760405161136794939291906124e1565b60405180910390a350505050505050565b6113818161083a565b6113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b79061279d565b60405180910390fd5b60018060008381526020019081526020016000208190555050565b611402816000808581526020019081526020016000206000016110ef90919063ffffffff16565b1561146a5761140f61111f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6114958160008085815260200190815260200160002060000161162590919063ffffffff16565b156114fd576114a261111f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006115108360000183611655565b60001c905092915050565b6000611543836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6116c2565b905092915050565b6000611559826000016116e5565b9050919050565b600061156c83836116c2565b6115c55782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506115ca565b600090505b92915050565b60008082840190508381101561161b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116129061271d565b60405180910390fd5b8091505092915050565b600061164d836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6116f6565b905092915050565b6000818360000180549050116116a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116979061267d565b60405180910390fd5b8260000182815481106116af57fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020549050600081146117d2576000600182039050600060018660000180549050039050600086600001828154811061174157fe5b906000526020600020015490508087600001848154811061175e57fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061179657fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506117d8565b60009150505b92915050565b6000813590506117ed81612a57565b92915050565b60008083601f84011261180557600080fd5b8235905067ffffffffffffffff81111561181e57600080fd5b60208301915083602082028301111561183657600080fd5b9250929050565b60008083601f84011261184f57600080fd5b8235905067ffffffffffffffff81111561186857600080fd5b60208301915083602082028301111561188057600080fd5b9250929050565b60008083601f84011261189957600080fd5b8235905067ffffffffffffffff8111156118b257600080fd5b6020830191508360208202830111156118ca57600080fd5b9250929050565b6000813590506118e081612a6e565b92915050565b60008083601f8401126118f857600080fd5b8235905067ffffffffffffffff81111561191157600080fd5b60208301915083600182028301111561192957600080fd5b9250929050565b60008135905061193f81612a85565b92915050565b60006020828403121561195757600080fd5b6000611965848285016117de565b91505092915050565b60008060008060008060a0878903121561198757600080fd5b600061199589828a016117de565b96505060206119a689828a01611930565b955050604087013567ffffffffffffffff8111156119c357600080fd5b6119cf89828a016118e6565b945094505060606119e289828a016118d1565b92505060806119f389828a016118d1565b9150509295509295509295565b600080600080600080600060c0888a031215611a1b57600080fd5b6000611a298a828b016117de565b9750506020611a3a8a828b01611930565b965050604088013567ffffffffffffffff811115611a5757600080fd5b611a638a828b016118e6565b95509550506060611a768a828b016118d1565b9350506080611a878a828b016118d1565b92505060a0611a988a828b01611930565b91505092959891949750929550565b60008060008060008060008060a0898b031215611ac357600080fd5b600089013567ffffffffffffffff811115611add57600080fd5b611ae98b828c016117f3565b9850985050602089013567ffffffffffffffff811115611b0857600080fd5b611b148b828c01611887565b9650965050604089013567ffffffffffffffff811115611b3357600080fd5b611b3f8b828c0161183d565b94509450506060611b528b828c016118d1565b9250506080611b638b828c016118d1565b9150509295985092959890939650565b600080600080600080600080600060c08a8c031215611b9157600080fd5b60008a013567ffffffffffffffff811115611bab57600080fd5b611bb78c828d016117f3565b995099505060208a013567ffffffffffffffff811115611bd657600080fd5b611be28c828d01611887565b975097505060408a013567ffffffffffffffff811115611c0157600080fd5b611c0d8c828d0161183d565b95509550506060611c208c828d016118d1565b9350506080611c318c828d016118d1565b92505060a0611c428c828d01611930565b9150509295985092959850929598565b600060208284031215611c6457600080fd5b6000611c72848285016118d1565b91505092915050565b60008060408385031215611c8e57600080fd5b6000611c9c858286016118d1565b9250506020611cad858286016117de565b9150509250929050565b60008060408385031215611cca57600080fd5b6000611cd8858286016118d1565b9250506020611ce985828601611930565b9150509250929050565b600060208284031215611d0557600080fd5b6000611d1384828501611930565b91505092915050565b6000611d288383611d4a565b60208301905092915050565b6000611d41848484611eb1565b90509392505050565b611d53816129e5565b82525050565b611d62816129e5565b82525050565b6000611d748385612906565b9350611d7f826128d8565b8060005b85811015611db857611d958284612977565b611d9f8882611d1c565b9750611daa836128ec565b925050600181019050611d83565b5085925050509392505050565b6000611dd18385612917565b935083602084028501611de3846128e2565b8060005b87811015611e29578484038952611dfe828461298e565b611e09868284611d34565b9550611e14846128f9565b935060208b019a505050600181019050611de7565b50829750879450505050509392505050565b6000611e478385612928565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611e7657600080fd5b602083029250611e87838584612a37565b82840190509392505050565b611e9c816129f7565b82525050565b611eab81612a03565b82525050565b6000611ebd8385612939565b9350611eca838584612a37565b611ed383612a46565b840190509392505050565b6000611eea838561294a565b9350611ef7838584612a37565b611f0083612a46565b840190509392505050565b6000611f17838561295b565b9350611f24838584612a37565b82840190509392505050565b6000611f3d602283612966565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611fa3602683612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e67206465706560008301527f6e64656e637900000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612009602f83612966565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b600061206f602383612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d6160008301527f74636800000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120d5602e83612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a2073656e64657220726571756960008301527f726573207065726d697373696f6e0000000000000000000000000000000000006020830152604082019050919050565b600061213b601b83612966565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061217b603083612966565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b60006121e1602683612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e7460008301527f2064656c617900000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612247602f83612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60008301527f7265616479207363686564756c656400000000000000000000000000000000006020830152604082019050919050565b60006122ad602a83612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20697360008301527f206e6f74207265616479000000000000000000000000000000000000000000006020830152604082019050919050565b6000612313603183612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20636160008301527f6e6e6f742062652063616e63656c6c65640000000000000000000000000000006020830152604082019050919050565b6000612379602b83612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060008301527f62652074696d656c6f636b0000000000000000000000000000000000000000006020830152604082019050919050565b60006123df602f83612966565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000612445603383612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e67207460008301527f72616e73616374696f6e207265766572746564000000000000000000000000006020830152604082019050919050565b6124a781612a2d565b82525050565b60006124ba828486611f0b565b91508190509392505050565b60006020820190506124db6000830184611d59565b92915050565b60006060820190506124f66000830187611d59565b612503602083018661249e565b8181036040830152612516818486611ede565b905095945050505050565b600060a0820190506125366000830189611d59565b612543602083018861249e565b8181036040830152612556818688611ede565b90506125656060830185611ea2565b6125726080830184611ea2565b979650505050505050565b600060a0820190506125926000830189611d59565b61259f602083018861249e565b81810360408301526125b2818688611ede565b90506125c16060830185611ea2565b6125ce608083018461249e565b979650505050505050565b600060a08201905081810360008301526125f4818a8c611d68565b9050818103602083015261260981888a611e3b565b9050818103604083015261261e818688611dc5565b905061262d6060830185611ea2565b61263a6080830184611ea2565b9998505050505050505050565b600060208201905061265c6000830184611e93565b92915050565b60006020820190506126776000830184611ea2565b92915050565b6000602082019050818103600083015261269681611f30565b9050919050565b600060208201905081810360008301526126b681611f96565b9050919050565b600060208201905081810360008301526126d681611ffc565b9050919050565b600060208201905081810360008301526126f681612062565b9050919050565b60006020820190508181036000830152612716816120c8565b9050919050565b600060208201905081810360008301526127368161212e565b9050919050565b600060208201905081810360008301526127568161216e565b9050919050565b60006020820190508181036000830152612776816121d4565b9050919050565b600060208201905081810360008301526127968161223a565b9050919050565b600060208201905081810360008301526127b6816122a0565b9050919050565b600060208201905081810360008301526127d681612306565b9050919050565b600060208201905081810360008301526127f68161236c565b9050919050565b60006020820190508181036000830152612816816123d2565b9050919050565b6000602082019050818103600083015261283681612438565b9050919050565b6000602082019050612852600083018461249e565b92915050565b600060408201905061286d600083018561249e565b61287a602083018461249e565b9392505050565b6000808335600160200384360303811261289a57600080fd5b80840192508235915067ffffffffffffffff8211156128b857600080fd5b6020830192506001820236038313156128d057600080fd5b509250929050565b6000819050919050565b6000819050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061298660208401846117de565b905092915050565b600080833560016020038436030381126129a757600080fd5b83810192508235915060208301925067ffffffffffffffff8211156129cb57600080fd5b6001820236038413156129dd57600080fd5b509250929050565b60006129f082612a0d565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b612a60816129e5565b8114612a6b57600080fd5b50565b612a7781612a03565b8114612a8257600080fd5b50565b612a8e81612a2d565b8114612a9957600080fd5b5056fea26469706673582212209090f22964f3105e1f37ea48531e8cf9c33c50959fa0de446b8ed8f17275777864736f6c634300060c0033",
770
+ "deployedBytecode": "0x60806040526004361061016a5760003560e01c80638065657f116100d1578063b1c5f4271161008a578063d45c443511610064578063d45c443514610596578063d547741f146105d3578063e38335e5146105fc578063f27a0c921461061857610171565b8063b1c5f427146104f3578063c4d252f514610530578063ca15c8731461055957610171565b80638065657f146103bd5780638f2a0bb0146103fa5780638f61f4f5146104235780639010d07c1461044e57806391d148541461048b578063a217fddf146104c857610171565b80632ab0f529116101235780632ab0f5291461028b5780632f2ff15d146102c857806331d50750146102f157806336568abe1461032e578063584b153e1461035757806364d623531461039457610171565b806301d5062a1461017657806307bd02651461019f5780630d3cf6fc146101ca578063134008d3146101f557806313bc9f2014610211578063248a9ca31461024e57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061019d60048036038101906101989190611a00565b610643565b005b3480156101ab57600080fd5b506101b4610731565b6040516101c19190612662565b60405180910390f35b3480156101d657600080fd5b506101df610755565b6040516101ec9190612662565b60405180910390f35b61020f600480360381019061020a919061196e565b610779565b005b34801561021d57600080fd5b5061023860048036038101906102339190611c52565b61083a565b6040516102459190612647565b60405180910390f35b34801561025a57600080fd5b5061027560048036038101906102709190611c52565b610860565b6040516102829190612662565b60405180910390f35b34801561029757600080fd5b506102b260048036038101906102ad9190611c52565b61087f565b6040516102bf9190612647565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190611c7b565b610894565b005b3480156102fd57600080fd5b5061031860048036038101906103139190611c52565b610907565b6040516103259190612647565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190611c7b565b61091b565b005b34801561036357600080fd5b5061037e60048036038101906103799190611c52565b61099e565b60405161038b9190612647565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b69190611cf3565b6109b3565b005b3480156103c957600080fd5b506103e460048036038101906103df919061196e565b610a66565b6040516103f19190612662565b60405180910390f35b34801561040657600080fd5b50610421600480360381019061041c9190611b73565b610aa5565b005b34801561042f57600080fd5b50610438610c8e565b6040516104459190612662565b60405180910390f35b34801561045a57600080fd5b5061047560048036038101906104709190611cb7565b610cb2565b60405161048291906124c6565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad9190611c7b565b610ce3565b6040516104bf9190612647565b60405180910390f35b3480156104d457600080fd5b506104dd610d14565b6040516104ea9190612662565b60405180910390f35b3480156104ff57600080fd5b5061051a60048036038101906105159190611aa7565b610d1b565b6040516105279190612662565b60405180910390f35b34801561053c57600080fd5b5061055760048036038101906105529190611c52565b610d60565b005b34801561056557600080fd5b50610580600480360381019061057b9190611c52565b610e73565b60405161058d919061283d565b60405180910390f35b3480156105a257600080fd5b506105bd60048036038101906105b89190611c52565b610e99565b6040516105ca919061283d565b60405180910390f35b3480156105df57600080fd5b506105fa60048036038101906105f59190611c7b565b610eb6565b005b61061660048036038101906106119190611aa7565b610f29565b005b34801561062457600080fd5b5061062d6110e5565b60405161063a919061283d565b60405180910390f35b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16106758161067061111f565b610ce3565b806106875750610686816000610ce3565b5b6106c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106bd906126fd565b60405180910390fd5b60006106d6898989898989610a66565b90506106e28184611127565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161071e9695949392919061257d565b60405180910390a3505050505050505050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b7f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e636107ab816107a661111f565b610ce3565b806107bd57506107bc816000610ce3565b5b6107fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f3906126fd565b60405180910390fd5b600061080c888888888888610a66565b905061081881856111df565b6108278160008a8a8a8a611280565b61083081611378565b5050505050505050565b60008061084683610e99565b90506001811180156108585750428111155b915050919050565b6000806000838152602001908152602001600020600201549050919050565b6000600161088c83610e99565b149050919050565b6108ba600080848152602001908152602001600020600201546108b561111f565b610ce3565b6108f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f0906126bd565b60405180910390fd5b61090382826113db565b5050565b60008061091383610e99565b119050919050565b61092361111f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610990576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610987906127fd565b60405180910390fd5b61099a828261146e565b5050565b600060016109ab83610e99565b119050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a18906127dd565b60405180910390fd5b7f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d560025482604051610a54929190612858565b60405180910390a18060028190555050565b6000868686868686604051602001610a8396959493929190612521565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610ad781610ad261111f565b610ce3565b80610ae95750610ae8816000610ce3565b5b610b28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1f906126fd565b60405180910390fd5b878790508a8a905014610b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b67906126dd565b60405180910390fd5b858590508a8a905014610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf906126dd565b60405180910390fd5b6000610bca8b8b8b8b8b8b8b8b610d1b565b9050610bd68184611127565b60005b8b8b9050811015610c805780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610c1357fe5b9050602002016020810190610c289190611945565b8d8d86818110610c3457fe5b905060200201358c8c87818110610c4757fe5b9050602002810190610c599190612881565b8c8b604051610c6d9695949392919061257d565b60405180910390a3806001019050610bd9565b505050505050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b6000610cdb8260008086815260200190815260200160002060000161150190919063ffffffff16565b905092915050565b6000610d0c8260008086815260200190815260200160002060000161151b90919063ffffffff16565b905092915050565b6000801b81565b60008888888888888888604051602001610d3c9897969594939291906125d9565b60405160208183030381529060405280519060200120905098975050505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1610d9281610d8d61111f565b610ce3565b80610da45750610da3816000610ce3565b5b610de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dda906126fd565b60405180910390fd5b610dec8261099e565b610e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e22906127bd565b60405180910390fd5b6001600083815260200190815260200160002060009055817fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7060405160405180910390a25050565b6000610e9260008084815260200190815260200160002060000161154b565b9050919050565b600060016000838152602001908152602001600020549050919050565b610edc60008084815260200190815260200160002060020154610ed761111f565b610ce3565b610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f129061273d565b60405180910390fd5b610f25828261146e565b5050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610f5b81610f5661111f565b610ce3565b80610f6d5750610f6c816000610ce3565b5b610fac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa3906126fd565b60405180910390fd5b868690508989905014610ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610feb906126dd565b60405180910390fd5b84849050898990501461103c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611033906126dd565b60405180910390fd5b600061104e8a8a8a8a8a8a8a8a610d1b565b905061105a81856111df565b60005b8a8a90508110156110cf576110c482828d8d8581811061107957fe5b905060200201602081019061108e9190611945565b8c8c8681811061109a57fe5b905060200201358b8b878181106110ad57fe5b90506020028101906110bf9190612881565b611280565b80600101905061105d565b506110d981611378565b50505050505050505050565b6000600254905090565b6000611117836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611560565b905092915050565b600033905090565b61113082610907565b15611170576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111679061277d565b60405180910390fd5b6111786110e5565b8110156111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b19061275d565b60405180910390fd5b6111c442826115d0565b60016000848152602001908152602001600020819055505050565b6111e88261083a565b611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e9061279d565b60405180910390fd5b6000801b81148061123d575061123c8161087f565b5b61127c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112739061269d565b60405180910390fd5b5050565b60008473ffffffffffffffffffffffffffffffffffffffff168484846040516112aa9291906124ad565b60006040518083038185875af1925050503d80600081146112e7576040519150601f19603f3d011682016040523d82523d6000602084013e6112ec565b606091505b5050905080611330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113279061281d565b60405180910390fd5b85877fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588787878760405161136794939291906124e1565b60405180910390a350505050505050565b6113818161083a565b6113c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b79061279d565b60405180910390fd5b60018060008381526020019081526020016000208190555050565b611402816000808581526020019081526020016000206000016110ef90919063ffffffff16565b1561146a5761140f61111f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6114958160008085815260200190815260200160002060000161162590919063ffffffff16565b156114fd576114a261111f565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b60006115108360000183611655565b60001c905092915050565b6000611543836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6116c2565b905092915050565b6000611559826000016116e5565b9050919050565b600061156c83836116c2565b6115c55782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506115ca565b600090505b92915050565b60008082840190508381101561161b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116129061271d565b60405180910390fd5b8091505092915050565b600061164d836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6116f6565b905092915050565b6000818360000180549050116116a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116979061267d565b60405180910390fd5b8260000182815481106116af57fe5b9060005260206000200154905092915050565b600080836001016000848152602001908152602001600020541415905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020549050600081146117d2576000600182039050600060018660000180549050039050600086600001828154811061174157fe5b906000526020600020015490508087600001848154811061175e57fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061179657fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506117d8565b60009150505b92915050565b6000813590506117ed81612a57565b92915050565b60008083601f84011261180557600080fd5b8235905067ffffffffffffffff81111561181e57600080fd5b60208301915083602082028301111561183657600080fd5b9250929050565b60008083601f84011261184f57600080fd5b8235905067ffffffffffffffff81111561186857600080fd5b60208301915083602082028301111561188057600080fd5b9250929050565b60008083601f84011261189957600080fd5b8235905067ffffffffffffffff8111156118b257600080fd5b6020830191508360208202830111156118ca57600080fd5b9250929050565b6000813590506118e081612a6e565b92915050565b60008083601f8401126118f857600080fd5b8235905067ffffffffffffffff81111561191157600080fd5b60208301915083600182028301111561192957600080fd5b9250929050565b60008135905061193f81612a85565b92915050565b60006020828403121561195757600080fd5b6000611965848285016117de565b91505092915050565b60008060008060008060a0878903121561198757600080fd5b600061199589828a016117de565b96505060206119a689828a01611930565b955050604087013567ffffffffffffffff8111156119c357600080fd5b6119cf89828a016118e6565b945094505060606119e289828a016118d1565b92505060806119f389828a016118d1565b9150509295509295509295565b600080600080600080600060c0888a031215611a1b57600080fd5b6000611a298a828b016117de565b9750506020611a3a8a828b01611930565b965050604088013567ffffffffffffffff811115611a5757600080fd5b611a638a828b016118e6565b95509550506060611a768a828b016118d1565b9350506080611a878a828b016118d1565b92505060a0611a988a828b01611930565b91505092959891949750929550565b60008060008060008060008060a0898b031215611ac357600080fd5b600089013567ffffffffffffffff811115611add57600080fd5b611ae98b828c016117f3565b9850985050602089013567ffffffffffffffff811115611b0857600080fd5b611b148b828c01611887565b9650965050604089013567ffffffffffffffff811115611b3357600080fd5b611b3f8b828c0161183d565b94509450506060611b528b828c016118d1565b9250506080611b638b828c016118d1565b9150509295985092959890939650565b600080600080600080600080600060c08a8c031215611b9157600080fd5b60008a013567ffffffffffffffff811115611bab57600080fd5b611bb78c828d016117f3565b995099505060208a013567ffffffffffffffff811115611bd657600080fd5b611be28c828d01611887565b975097505060408a013567ffffffffffffffff811115611c0157600080fd5b611c0d8c828d0161183d565b95509550506060611c208c828d016118d1565b9350506080611c318c828d016118d1565b92505060a0611c428c828d01611930565b9150509295985092959850929598565b600060208284031215611c6457600080fd5b6000611c72848285016118d1565b91505092915050565b60008060408385031215611c8e57600080fd5b6000611c9c858286016118d1565b9250506020611cad858286016117de565b9150509250929050565b60008060408385031215611cca57600080fd5b6000611cd8858286016118d1565b9250506020611ce985828601611930565b9150509250929050565b600060208284031215611d0557600080fd5b6000611d1384828501611930565b91505092915050565b6000611d288383611d4a565b60208301905092915050565b6000611d41848484611eb1565b90509392505050565b611d53816129e5565b82525050565b611d62816129e5565b82525050565b6000611d748385612906565b9350611d7f826128d8565b8060005b85811015611db857611d958284612977565b611d9f8882611d1c565b9750611daa836128ec565b925050600181019050611d83565b5085925050509392505050565b6000611dd18385612917565b935083602084028501611de3846128e2565b8060005b87811015611e29578484038952611dfe828461298e565b611e09868284611d34565b9550611e14846128f9565b935060208b019a505050600181019050611de7565b50829750879450505050509392505050565b6000611e478385612928565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611e7657600080fd5b602083029250611e87838584612a37565b82840190509392505050565b611e9c816129f7565b82525050565b611eab81612a03565b82525050565b6000611ebd8385612939565b9350611eca838584612a37565b611ed383612a46565b840190509392505050565b6000611eea838561294a565b9350611ef7838584612a37565b611f0083612a46565b840190509392505050565b6000611f17838561295b565b9350611f24838584612a37565b82840190509392505050565b6000611f3d602283612966565b91507f456e756d657261626c655365743a20696e646578206f7574206f6620626f756e60008301527f64730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611fa3602683612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e67206465706560008301527f6e64656e637900000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612009602f83612966565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f206772616e7400000000000000000000000000000000006020830152604082019050919050565b600061206f602383612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d6160008301527f74636800000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120d5602e83612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a2073656e64657220726571756960008301527f726573207065726d697373696f6e0000000000000000000000000000000000006020830152604082019050919050565b600061213b601b83612966565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061217b603083612966565b91507f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60008301527f2061646d696e20746f207265766f6b65000000000000000000000000000000006020830152604082019050919050565b60006121e1602683612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e7460008301527f2064656c617900000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612247602f83612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60008301527f7265616479207363686564756c656400000000000000000000000000000000006020830152604082019050919050565b60006122ad602a83612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20697360008301527f206e6f74207265616479000000000000000000000000000000000000000000006020830152604082019050919050565b6000612313603183612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20636160008301527f6e6e6f742062652063616e63656c6c65640000000000000000000000000000006020830152604082019050919050565b6000612379602b83612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060008301527f62652074696d656c6f636b0000000000000000000000000000000000000000006020830152604082019050919050565b60006123df602f83612966565b91507f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008301527f20726f6c657320666f722073656c6600000000000000000000000000000000006020830152604082019050919050565b6000612445603383612966565b91507f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e67207460008301527f72616e73616374696f6e207265766572746564000000000000000000000000006020830152604082019050919050565b6124a781612a2d565b82525050565b60006124ba828486611f0b565b91508190509392505050565b60006020820190506124db6000830184611d59565b92915050565b60006060820190506124f66000830187611d59565b612503602083018661249e565b8181036040830152612516818486611ede565b905095945050505050565b600060a0820190506125366000830189611d59565b612543602083018861249e565b8181036040830152612556818688611ede565b90506125656060830185611ea2565b6125726080830184611ea2565b979650505050505050565b600060a0820190506125926000830189611d59565b61259f602083018861249e565b81810360408301526125b2818688611ede565b90506125c16060830185611ea2565b6125ce608083018461249e565b979650505050505050565b600060a08201905081810360008301526125f4818a8c611d68565b9050818103602083015261260981888a611e3b565b9050818103604083015261261e818688611dc5565b905061262d6060830185611ea2565b61263a6080830184611ea2565b9998505050505050505050565b600060208201905061265c6000830184611e93565b92915050565b60006020820190506126776000830184611ea2565b92915050565b6000602082019050818103600083015261269681611f30565b9050919050565b600060208201905081810360008301526126b681611f96565b9050919050565b600060208201905081810360008301526126d681611ffc565b9050919050565b600060208201905081810360008301526126f681612062565b9050919050565b60006020820190508181036000830152612716816120c8565b9050919050565b600060208201905081810360008301526127368161212e565b9050919050565b600060208201905081810360008301526127568161216e565b9050919050565b60006020820190508181036000830152612776816121d4565b9050919050565b600060208201905081810360008301526127968161223a565b9050919050565b600060208201905081810360008301526127b6816122a0565b9050919050565b600060208201905081810360008301526127d681612306565b9050919050565b600060208201905081810360008301526127f68161236c565b9050919050565b60006020820190508181036000830152612816816123d2565b9050919050565b6000602082019050818103600083015261283681612438565b9050919050565b6000602082019050612852600083018461249e565b92915050565b600060408201905061286d600083018561249e565b61287a602083018461249e565b9392505050565b6000808335600160200384360303811261289a57600080fd5b80840192508235915067ffffffffffffffff8211156128b857600080fd5b6020830192506001820236038313156128d057600080fd5b509250929050565b6000819050919050565b6000819050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600061298660208401846117de565b905092915050565b600080833560016020038436030381126129a757600080fd5b83810192508235915060208301925067ffffffffffffffff8211156129cb57600080fd5b6001820236038413156129dd57600080fd5b509250929050565b60006129f082612a0d565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b612a60816129e5565b8114612a6b57600080fd5b50565b612a7781612a03565b8114612a8257600080fd5b50565b612a8e81612a2d565b8114612a9957600080fd5b5056fea26469706673582212209090f22964f3105e1f37ea48531e8cf9c33c50959fa0de446b8ed8f17275777864736f6c634300060c0033",
771
+ "linkReferences": {},
772
+ "deployedLinkReferences": {}
773
+ }