@coset-dev/contracts 1.0.0

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.
@@ -0,0 +1,578 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import type { Addressable } from "ethers";
5
+ import { Contract, ContractFactory, ContractTransactionResponse, Interface } from "ethers"
6
+ import type { Signer, AddressLike, ContractDeployTransaction, ContractRunner } from "ethers"
7
+ import type { NonPayableOverrides } from "../common.js"
8
+ import type { OracleFactory, OracleFactoryInterface } from "../OracleFactory.js";
9
+
10
+ const _abi = [
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "address payable",
15
+ "name": "_owner",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "AmountTransferFailed",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "required",
32
+ "type": "uint256"
33
+ },
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "provided",
37
+ "type": "uint256"
38
+ }
39
+ ],
40
+ "name": "ExcessivePayment",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "uint256",
47
+ "name": "required",
48
+ "type": "uint256"
49
+ },
50
+ {
51
+ "internalType": "uint256",
52
+ "name": "provided",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "InsufficientPayment",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [],
61
+ "name": "NoStatusChange",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "address",
68
+ "name": "oracleAddress",
69
+ "type": "address"
70
+ }
71
+ ],
72
+ "name": "OracleIsNotExist",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "address",
79
+ "name": "owner",
80
+ "type": "address"
81
+ }
82
+ ],
83
+ "name": "OwnableInvalidOwner",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [
88
+ {
89
+ "internalType": "address",
90
+ "name": "account",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "name": "OwnableUnauthorizedAccount",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [],
99
+ "name": "ReentrancyGuardReentrantCall",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "ZeroAddressProvided",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "inputs": [],
109
+ "name": "ZeroAmountProvided",
110
+ "type": "error"
111
+ },
112
+ {
113
+ "anonymous": false,
114
+ "inputs": [
115
+ {
116
+ "indexed": true,
117
+ "internalType": "address",
118
+ "name": "oracleAddress",
119
+ "type": "address"
120
+ },
121
+ {
122
+ "indexed": true,
123
+ "internalType": "address",
124
+ "name": "provider",
125
+ "type": "address"
126
+ },
127
+ {
128
+ "indexed": false,
129
+ "internalType": "uint256",
130
+ "name": "timestamp",
131
+ "type": "uint256"
132
+ }
133
+ ],
134
+ "name": "OracleDeployed",
135
+ "type": "event"
136
+ },
137
+ {
138
+ "anonymous": false,
139
+ "inputs": [
140
+ {
141
+ "indexed": true,
142
+ "internalType": "address",
143
+ "name": "oracleAddress",
144
+ "type": "address"
145
+ },
146
+ {
147
+ "indexed": true,
148
+ "internalType": "address",
149
+ "name": "provider",
150
+ "type": "address"
151
+ },
152
+ {
153
+ "indexed": false,
154
+ "internalType": "bool",
155
+ "name": "newOracleStatus",
156
+ "type": "bool"
157
+ },
158
+ {
159
+ "indexed": false,
160
+ "internalType": "uint256",
161
+ "name": "timestamp",
162
+ "type": "uint256"
163
+ }
164
+ ],
165
+ "name": "OracleStatusChanged",
166
+ "type": "event"
167
+ },
168
+ {
169
+ "anonymous": false,
170
+ "inputs": [
171
+ {
172
+ "indexed": true,
173
+ "internalType": "address",
174
+ "name": "previousOwner",
175
+ "type": "address"
176
+ },
177
+ {
178
+ "indexed": true,
179
+ "internalType": "address",
180
+ "name": "newOwner",
181
+ "type": "address"
182
+ }
183
+ ],
184
+ "name": "OwnershipTransferred",
185
+ "type": "event"
186
+ },
187
+ {
188
+ "inputs": [],
189
+ "name": "activeOracleCount",
190
+ "outputs": [
191
+ {
192
+ "internalType": "uint256",
193
+ "name": "",
194
+ "type": "uint256"
195
+ }
196
+ ],
197
+ "stateMutability": "view",
198
+ "type": "function"
199
+ },
200
+ {
201
+ "inputs": [],
202
+ "name": "config",
203
+ "outputs": [
204
+ {
205
+ "internalType": "uint128",
206
+ "name": "oracleDeployPrice",
207
+ "type": "uint128"
208
+ },
209
+ {
210
+ "internalType": "uint8",
211
+ "name": "oracleFactoryShare",
212
+ "type": "uint8"
213
+ }
214
+ ],
215
+ "stateMutability": "view",
216
+ "type": "function"
217
+ },
218
+ {
219
+ "inputs": [
220
+ {
221
+ "internalType": "uint256",
222
+ "name": "_recommendedUpdateDuration",
223
+ "type": "uint256"
224
+ },
225
+ {
226
+ "internalType": "uint256",
227
+ "name": "_dataUpdatePrice",
228
+ "type": "uint256"
229
+ },
230
+ {
231
+ "internalType": "bytes",
232
+ "name": "_initialData",
233
+ "type": "bytes"
234
+ }
235
+ ],
236
+ "name": "deployOracle",
237
+ "outputs": [],
238
+ "stateMutability": "payable",
239
+ "type": "function"
240
+ },
241
+ {
242
+ "inputs": [],
243
+ "name": "getAllOracles",
244
+ "outputs": [
245
+ {
246
+ "internalType": "address[]",
247
+ "name": "",
248
+ "type": "address[]"
249
+ }
250
+ ],
251
+ "stateMutability": "view",
252
+ "type": "function"
253
+ },
254
+ {
255
+ "inputs": [
256
+ {
257
+ "internalType": "uint256",
258
+ "name": "offset",
259
+ "type": "uint256"
260
+ },
261
+ {
262
+ "internalType": "uint256",
263
+ "name": "limit",
264
+ "type": "uint256"
265
+ }
266
+ ],
267
+ "name": "getAllOracles",
268
+ "outputs": [
269
+ {
270
+ "internalType": "address[]",
271
+ "name": "",
272
+ "type": "address[]"
273
+ },
274
+ {
275
+ "internalType": "uint256",
276
+ "name": "total",
277
+ "type": "uint256"
278
+ }
279
+ ],
280
+ "stateMutability": "view",
281
+ "type": "function"
282
+ },
283
+ {
284
+ "inputs": [
285
+ {
286
+ "internalType": "address",
287
+ "name": "oracleAddress",
288
+ "type": "address"
289
+ }
290
+ ],
291
+ "name": "getOracleInfo",
292
+ "outputs": [
293
+ {
294
+ "internalType": "address",
295
+ "name": "provider",
296
+ "type": "address"
297
+ },
298
+ {
299
+ "internalType": "uint64",
300
+ "name": "createdAt",
301
+ "type": "uint64"
302
+ },
303
+ {
304
+ "internalType": "bool",
305
+ "name": "isActive",
306
+ "type": "bool"
307
+ }
308
+ ],
309
+ "stateMutability": "view",
310
+ "type": "function"
311
+ },
312
+ {
313
+ "inputs": [
314
+ {
315
+ "internalType": "address",
316
+ "name": "provider",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "internalType": "uint256",
321
+ "name": "offset",
322
+ "type": "uint256"
323
+ },
324
+ {
325
+ "internalType": "uint256",
326
+ "name": "limit",
327
+ "type": "uint256"
328
+ }
329
+ ],
330
+ "name": "getProviderOracles",
331
+ "outputs": [
332
+ {
333
+ "internalType": "address[]",
334
+ "name": "",
335
+ "type": "address[]"
336
+ },
337
+ {
338
+ "internalType": "uint256",
339
+ "name": "total",
340
+ "type": "uint256"
341
+ }
342
+ ],
343
+ "stateMutability": "view",
344
+ "type": "function"
345
+ },
346
+ {
347
+ "inputs": [
348
+ {
349
+ "internalType": "address",
350
+ "name": "provider",
351
+ "type": "address"
352
+ }
353
+ ],
354
+ "name": "getProviderOracles",
355
+ "outputs": [
356
+ {
357
+ "internalType": "address[]",
358
+ "name": "",
359
+ "type": "address[]"
360
+ }
361
+ ],
362
+ "stateMutability": "view",
363
+ "type": "function"
364
+ },
365
+ {
366
+ "inputs": [
367
+ {
368
+ "internalType": "uint256",
369
+ "name": "",
370
+ "type": "uint256"
371
+ }
372
+ ],
373
+ "name": "oracleList",
374
+ "outputs": [
375
+ {
376
+ "internalType": "address",
377
+ "name": "",
378
+ "type": "address"
379
+ }
380
+ ],
381
+ "stateMutability": "view",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [
386
+ {
387
+ "internalType": "address",
388
+ "name": "",
389
+ "type": "address"
390
+ }
391
+ ],
392
+ "name": "oracles",
393
+ "outputs": [
394
+ {
395
+ "internalType": "address",
396
+ "name": "provider",
397
+ "type": "address"
398
+ },
399
+ {
400
+ "internalType": "uint64",
401
+ "name": "createdAt",
402
+ "type": "uint64"
403
+ },
404
+ {
405
+ "internalType": "bool",
406
+ "name": "isActive",
407
+ "type": "bool"
408
+ }
409
+ ],
410
+ "stateMutability": "view",
411
+ "type": "function"
412
+ },
413
+ {
414
+ "inputs": [],
415
+ "name": "owner",
416
+ "outputs": [
417
+ {
418
+ "internalType": "address",
419
+ "name": "",
420
+ "type": "address"
421
+ }
422
+ ],
423
+ "stateMutability": "view",
424
+ "type": "function"
425
+ },
426
+ {
427
+ "inputs": [
428
+ {
429
+ "internalType": "address",
430
+ "name": "",
431
+ "type": "address"
432
+ },
433
+ {
434
+ "internalType": "uint256",
435
+ "name": "",
436
+ "type": "uint256"
437
+ }
438
+ ],
439
+ "name": "providerOracles",
440
+ "outputs": [
441
+ {
442
+ "internalType": "address",
443
+ "name": "",
444
+ "type": "address"
445
+ }
446
+ ],
447
+ "stateMutability": "view",
448
+ "type": "function"
449
+ },
450
+ {
451
+ "inputs": [],
452
+ "name": "renounceOwnership",
453
+ "outputs": [],
454
+ "stateMutability": "nonpayable",
455
+ "type": "function"
456
+ },
457
+ {
458
+ "inputs": [
459
+ {
460
+ "internalType": "address",
461
+ "name": "oracleAddress",
462
+ "type": "address"
463
+ },
464
+ {
465
+ "internalType": "uint256",
466
+ "name": "_dataUpdatePrice",
467
+ "type": "uint256"
468
+ }
469
+ ],
470
+ "name": "setOracleDataUpdatePrice",
471
+ "outputs": [],
472
+ "stateMutability": "nonpayable",
473
+ "type": "function"
474
+ },
475
+ {
476
+ "inputs": [
477
+ {
478
+ "internalType": "address",
479
+ "name": "oracleAddress",
480
+ "type": "address"
481
+ },
482
+ {
483
+ "internalType": "bool",
484
+ "name": "_isActive",
485
+ "type": "bool"
486
+ }
487
+ ],
488
+ "name": "setOracleStatus",
489
+ "outputs": [],
490
+ "stateMutability": "nonpayable",
491
+ "type": "function"
492
+ },
493
+ {
494
+ "inputs": [
495
+ {
496
+ "internalType": "address",
497
+ "name": "newOwner",
498
+ "type": "address"
499
+ }
500
+ ],
501
+ "name": "transferOwnership",
502
+ "outputs": [],
503
+ "stateMutability": "nonpayable",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [
508
+ {
509
+ "internalType": "uint128",
510
+ "name": "_oracleDeployPrice",
511
+ "type": "uint128"
512
+ },
513
+ {
514
+ "internalType": "uint8",
515
+ "name": "_oracleFactoryShare",
516
+ "type": "uint8"
517
+ }
518
+ ],
519
+ "name": "updateConfig",
520
+ "outputs": [],
521
+ "stateMutability": "nonpayable",
522
+ "type": "function"
523
+ },
524
+ {
525
+ "stateMutability": "payable",
526
+ "type": "receive"
527
+ }
528
+ ] as const;
529
+
530
+ const _bytecode = "0x608060405234801561000f575f5ffd5b506040516147d03803806147d083398181016040528101906100319190610271565b805f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009991906102bc565b60405180910390fd5b6100b18161015260201b60201c565b5060018081905550604051806040016040528066b1a2bc2ec500006fffffffffffffffffffffffffffffffff168152602001601460ff1681525060025f820151815f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506020820151815f0160106101000a81548160ff021916908360ff160217905550905050506102d5565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61024082610217565b9050919050565b61025081610236565b811461025a575f5ffd5b50565b5f8151905061026b81610247565b92915050565b5f6020828403121561028657610285610213565b5b5f6102938482850161025d565b91505092915050565b5f6102a682610217565b9050919050565b6102b68161029c565b82525050565b5f6020820190506102cf5f8301846102ad565b92915050565b6144ee806102e25f395ff3fe608060405260043610610101575f3560e01c806379502c5511610094578063b6ad659211610063578063b6ad659214610363578063bca86af81461038b578063bfdb6b04146103b5578063ed128a10146103f3578063f2fde38b1461041b5761011a565b806379502c55146102935780638da5cb5b146102be578063979c6167146102e8578063addd5099146103255761011a565b80636269cf8a116100d05780636269cf8a146101da57806365a6bb2914610217578063715018a6146102415780637907fdca146102575761011a565b80631ae11e261461011e578063239aad0d14610146578063565a21c5146101825780635ccba2aa1461019e5761011a565b3661011a575f3411156101185761011734610443565b5b005b5f5ffd5b348015610129575f5ffd5b50610144600480360381019061013f91906119b4565b6104d1565b005b348015610151575f5ffd5b5061016c60048036038101906101679190611a25565b6107fa565b6040516101799190611a5f565b60405180910390f35b61019c60048036038101906101979190611ad9565b610835565b005b3480156101a9575f5ffd5b506101c460048036038101906101bf9190611b4a565b610c4c565b6040516101d19190611a5f565b60405180910390f35b3480156101e5575f5ffd5b5061020060048036038101906101fb9190611b88565b610c94565b60405161020e929190611c9e565b60405180910390f35b348015610222575f5ffd5b5061022b610e6a565b6040516102389190611ccc565b60405180910390f35b34801561024c575f5ffd5b50610255610ef5565b005b348015610262575f5ffd5b5061027d60048036038101906102789190611cec565b610f08565b60405161028a9190611ccc565b60405180910390f35b34801561029e575f5ffd5b506102a7610fd0565b6040516102b5929190611d5c565b60405180910390f35b3480156102c9575f5ffd5b506102d2611008565b6040516102df9190611a5f565b60405180910390f35b3480156102f3575f5ffd5b5061030e60048036038101906103099190611d83565b61102f565b60405161031c929190611c9e565b60405180910390f35b348015610330575f5ffd5b5061034b60048036038101906103469190611cec565b6111c4565b60405161035a93929190611df2565b60405180910390f35b34801561036e575f5ffd5b5061038960048036038101906103849190611e7b565b611228565b005b348015610396575f5ffd5b5061039f61128b565b6040516103ac9190611eb9565b60405180910390f35b3480156103c0575f5ffd5b506103db60048036038101906103d69190611cec565b611291565b6040516103ea93929190611df2565b60405180910390f35b3480156103fe575f5ffd5b5061041960048036038101906104149190611b4a565b61146a565b005b348015610426575f5ffd5b50610441600480360381019061043c9190611cec565b6115ac565b005b5f6002826104519190611f2c565b905061049081733f2e72283f1e29b7cb4402511c41b60fb4900b5773ffffffffffffffffffffffffffffffffffffffff1661163090919063ffffffff16565b6104cd8173f0b5563971c60d2dc4407d1d85c9c3d2fc06726e73ffffffffffffffffffffffffffffffffffffffff1661163090919063ffffffff16565b5050565b6104d9611772565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105a857806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161059f9190611a5f565b60405180910390fd5b5f60055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c9054906101000a900460ff169050821515811515146107c2578260055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f01601c6101000a81548160ff0219169083151502179055508261067a5760045f81548092919061067190611f5c565b91905055610691565b60045f81548092919061068c90611f83565b919050555b508373ffffffffffffffffffffffffffffffffffffffff16634d4061ec846040518263ffffffff1660e01b81526004016106cb9190611fca565b5f604051808303815f87803b1580156106e2575f5ffd5b505af11580156106f4573d5f5f3e3d5ffd5b5050505060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f3208d6325311d4e408c9c30106ec97bd8847ae44431db95b71a86ce6a2a256ca85426040516107b5929190611fe3565b60405180910390a36107f4565b6040517fe79eac9800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b60038181548110610809575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61083d6117f9565b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff163410156108d45760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517fb99e2ab70000000000000000000000000000000000000000000000000000000081526004016108cb929190612043565b60405180910390fd5b60025f015f9054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1634111561096b5760025f015f9054906101000a90046fffffffffffffffffffffffffffffffff16346040517f08aed925000000000000000000000000000000000000000000000000000000008152600401610962929190612043565b60405180910390fd5b5f3390505f85858585853060405161098290611910565b610991969594939291906120c4565b604051809103905ff0801580156109aa573d5f5f3e3d5ffd5b50905060405180606001604052808373ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff1681526020016001151581525060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151815f0160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506040820151815f01601c6101000a81548160ff02191690831515021790555090505060045f815480929190610ace90611f83565b9190505550600381908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bd734610443565b8173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f342b198a542ed04a4a3ad77cc9d0aa89ce1e4991f0154c69f0da1f551c1ec57e42604051610c349190611eb9565b60405180910390a35050610c4661183f565b50505050565b6006602052815f5260405f208181548110610c65575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60605f5f60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20905080805490509150818510610d36575f67ffffffffffffffff811115610cff57610cfe61211e565b5b604051908082528060200260200182016040528015610d2d5781602001602082028036833780820191505090505b50925050610e62565b5f8486610d43919061214b565b905082811115610d51578290505b5f8682610d5e919061217e565b90505f8167ffffffffffffffff811115610d7b57610d7a61211e565b5b604051908082528060200260200182016040528015610da95781602001602082028036833780820191505090505b5090505f5f90505b82811015610e595784818a610dc6919061214b565b81548110610dd757610dd66121b1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110610e1257610e116121b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080600101915050610db1565b50809550505050505b935093915050565b60606003805480602002602001604051908101604052809291908181526020018280548015610eeb57602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610ea2575b5050505050905090565b610efd611772565b610f065f611848565b565b606060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480602002602001604051908101604052809291908181526020018280548015610fc457602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f7b575b50505050509050919050565b6002805f015f9054906101000a90046fffffffffffffffffffffffffffffffff1690805f0160109054906101000a900460ff16905082565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60605f6003805490509050808410611091575f67ffffffffffffffff81111561105b5761105a61211e565b5b6040519080825280602002602001820160405280156110895781602001602082028036833780820191505090505b5091506111bd565b5f838561109e919061214b565b9050818111156110ac578190505b5f85826110b9919061217e565b90505f8167ffffffffffffffff8111156110d6576110d561211e565b5b6040519080825280602002602001820160405280156111045781602001602082028036833780820191505090505b5090505f5f90505b828110156111b55760038189611122919061214b565b81548110611133576111326121b1565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811061116e5761116d6121b1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808060010191505061110c565b508094505050505b9250929050565b6005602052805f5260405f205f91509050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690805f0160149054906101000a900467ffffffffffffffff1690805f01601c9054906101000a900460ff16905083565b611230611772565b8160025f015f6101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508060025f0160106101000a81548160ff021916908360ff1602179055505050565b60045481565b5f5f5f835f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361136357806040517f0be91a0600000000000000000000000000000000000000000000000000000000815260040161135a9190611a5f565b60405180910390fd5b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060600160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020015f820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020015f8201601c9054906101000a900460ff1615151515815250509050805f01518160200151826040015194509450945050509193909250565b611472611772565b815f73ffffffffffffffffffffffffffffffffffffffff1660055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361154157806040517f0be91a060000000000000000000000000000000000000000000000000000000081526004016115389190611a5f565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663118d9330836040518263ffffffff1660e01b815260040161157a9190611eb9565b5f604051808303815f87803b158015611591575f5ffd5b505af11580156115a3573d5f5f3e3d5ffd5b50505050505050565b6115b4611772565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611624575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161161b9190611a5f565b60405180910390fd5b61162d81611848565b50565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611695576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f81036116ce576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516116f39061220b565b5f6040518083038185875af1925050503d805f811461172d576040519150601f19603f3d011682016040523d82523d5f602084013e611732565b606091505b505090508061176d576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b61177a611909565b73ffffffffffffffffffffffffffffffffffffffff16611798611008565b73ffffffffffffffffffffffffffffffffffffffff16146117f7576117bb611909565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117ee9190611a5f565b60405180910390fd5b565b600260015403611835576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b6122998061222083390190565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61194e82611925565b9050919050565b61195e81611944565b8114611968575f5ffd5b50565b5f8135905061197981611955565b92915050565b5f8115159050919050565b6119938161197f565b811461199d575f5ffd5b50565b5f813590506119ae8161198a565b92915050565b5f5f604083850312156119ca576119c961191d565b5b5f6119d78582860161196b565b92505060206119e8858286016119a0565b9150509250929050565b5f819050919050565b611a04816119f2565b8114611a0e575f5ffd5b50565b5f81359050611a1f816119fb565b92915050565b5f60208284031215611a3a57611a3961191d565b5b5f611a4784828501611a11565b91505092915050565b611a5981611944565b82525050565b5f602082019050611a725f830184611a50565b92915050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f840112611a9957611a98611a78565b5b8235905067ffffffffffffffff811115611ab657611ab5611a7c565b5b602083019150836001820283011115611ad257611ad1611a80565b5b9250929050565b5f5f5f5f60608587031215611af157611af061191d565b5b5f611afe87828801611a11565b9450506020611b0f87828801611a11565b935050604085013567ffffffffffffffff811115611b3057611b2f611921565b5b611b3c87828801611a84565b925092505092959194509250565b5f5f60408385031215611b6057611b5f61191d565b5b5f611b6d8582860161196b565b9250506020611b7e85828601611a11565b9150509250929050565b5f5f5f60608486031215611b9f57611b9e61191d565b5b5f611bac8682870161196b565b9350506020611bbd86828701611a11565b9250506040611bce86828701611a11565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611c0a81611944565b82525050565b5f611c1b8383611c01565b60208301905092915050565b5f602082019050919050565b5f611c3d82611bd8565b611c478185611be2565b9350611c5283611bf2565b805f5b83811015611c82578151611c698882611c10565b9750611c7483611c27565b925050600181019050611c55565b5085935050505092915050565b611c98816119f2565b82525050565b5f6040820190508181035f830152611cb68185611c33565b9050611cc56020830184611c8f565b9392505050565b5f6020820190508181035f830152611ce48184611c33565b905092915050565b5f60208284031215611d0157611d0061191d565b5b5f611d0e8482850161196b565b91505092915050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b611d3b81611d17565b82525050565b5f60ff82169050919050565b611d5681611d41565b82525050565b5f604082019050611d6f5f830185611d32565b611d7c6020830184611d4d565b9392505050565b5f5f60408385031215611d9957611d9861191d565b5b5f611da685828601611a11565b9250506020611db785828601611a11565b9150509250929050565b5f67ffffffffffffffff82169050919050565b611ddd81611dc1565b82525050565b611dec8161197f565b82525050565b5f606082019050611e055f830186611a50565b611e126020830185611dd4565b611e1f6040830184611de3565b949350505050565b611e3081611d17565b8114611e3a575f5ffd5b50565b5f81359050611e4b81611e27565b92915050565b611e5a81611d41565b8114611e64575f5ffd5b50565b5f81359050611e7581611e51565b92915050565b5f5f60408385031215611e9157611e9061191d565b5b5f611e9e85828601611e3d565b9250506020611eaf85828601611e67565b9150509250929050565b5f602082019050611ecc5f830184611c8f565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f36826119f2565b9150611f41836119f2565b925082611f5157611f50611ed2565b5b828204905092915050565b5f611f66826119f2565b91505f8203611f7857611f77611eff565b5b600182039050919050565b5f611f8d826119f2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611fbf57611fbe611eff565b5b600182019050919050565b5f602082019050611fdd5f830184611de3565b92915050565b5f604082019050611ff65f830185611de3565b6120036020830184611c8f565b9392505050565b5f819050919050565b5f61202d61202861202384611d17565b61200a565b6119f2565b9050919050565b61203d81612013565b82525050565b5f6040820190506120565f830185612034565b6120636020830184611c8f565b9392505050565b5f82825260208201905092915050565b828183375f83830152505050565b5f601f19601f8301169050919050565b5f6120a3838561206a565b93506120b083858461207a565b6120b983612088565b840190509392505050565b5f60a0820190506120d75f830189611c8f565b6120e46020830188611c8f565b81810360408301526120f7818688612098565b90506121066060830185611a50565b6121136080830184611a50565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f612155826119f2565b9150612160836119f2565b925082820190508082111561217857612177611eff565b5b92915050565b5f612188826119f2565b9150612193836119f2565b92508282039050818111156121ab576121aa611eff565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81905092915050565b50565b5f6121f65f836121de565b9150612201826121e8565b5f82019050919050565b5f612215826121eb565b915081905091905056fe60c06040526001805f6101000a81548160ff021916908315150217905550348015610028575f5ffd5b50604051612299380380612299833981810160405281019061004a919061052f565b60015f819055505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806100b657505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b156100ed576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff163b1461013d576040517f7305bdbd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff163b0361018d576040517f14b9535000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505083600381905550426004819055508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508460058190555061021c8360045461022660201b60201c565b50505050506109ff565b5f825103610260576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611400825111156102ad5781516114006040517f711f64300000000000000000000000000000000000000000000000000000000081526004016102a49291906105d1565b60405180910390fd5b604051806040016040528083815260200182815250600660ce54606481106102d8576102d76105f8565b5b600202015f820151815f0190816102ef919061082c565b50602082015181600101559050506064600160ce5461030e9190610928565b6103189190610988565b60ce81905550606460cf5410156103415760cf5f81548092919061033b906109b8565b91905055505b8160029081610350919061082c565b505050565b5f604051905090565b5f5ffd5b5f5ffd5b5f819050919050565b61037881610366565b8114610382575f5ffd5b50565b5f815190506103938161036f565b92915050565b5f5ffd5b5f5ffd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103e7826103a1565b810181811067ffffffffffffffff82111715610406576104056103b1565b5b80604052505050565b5f610418610355565b905061042482826103de565b919050565b5f67ffffffffffffffff821115610443576104426103b1565b5b61044c826103a1565b9050602081019050919050565b8281835e5f83830152505050565b5f61047961047484610429565b61040f565b9050828152602081018484840111156104955761049461039d565b5b6104a0848285610459565b509392505050565b5f82601f8301126104bc576104bb610399565b5b81516104cc848260208601610467565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104fe826104d5565b9050919050565b61050e816104f4565b8114610518575f5ffd5b50565b5f8151905061052981610505565b92915050565b5f5f5f5f5f60a086880312156105485761054761035e565b5b5f61055588828901610385565b955050602061056688828901610385565b945050604086015167ffffffffffffffff81111561058757610586610362565b5b610593888289016104a8565b93505060606105a48882890161051b565b92505060806105b58882890161051b565b9150509295509295909350565b6105cb81610366565b82525050565b5f6040820190506105e45f8301856105c2565b6105f160208301846105c2565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061067357607f821691505b6020821081036106865761068561062f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026106e87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826106ad565b6106f286836106ad565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61072d61072861072384610366565b61070a565b610366565b9050919050565b5f819050919050565b61074683610713565b61075a61075282610734565b8484546106b9565b825550505050565b5f5f905090565b610771610762565b61077c81848461073d565b505050565b5b8181101561079f576107945f82610769565b600181019050610782565b5050565b601f8211156107e4576107b58161068c565b6107be8461069e565b810160208510156107cd578190505b6107e16107d98561069e565b830182610781565b50505b505050565b5f82821c905092915050565b5f6108045f19846008026107e9565b1980831691505092915050565b5f61081c83836107f5565b9150826002028217905092915050565b61083582610625565b67ffffffffffffffff81111561084e5761084d6103b1565b5b610858825461065c565b6108638282856107a3565b5f60209050601f831160018114610894575f8415610882578287015190505b61088c8582610811565b8655506108f3565b601f1984166108a28661068c565b5f5b828110156108c9578489015182556001820191506020850194506020810190506108a4565b868310156108e657848901516108e2601f8916826107f5565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61093282610366565b915061093d83610366565b9250828201905080821115610955576109546108fb565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61099282610366565b915061099d83610366565b9250826109ad576109ac61095b565b5b828206905092915050565b5f6109c282610366565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036109f4576109f36108fb565b5b600182019050919050565b60805160a051611848610a515f395f81816103bb0152818161054f01528181610853015281816109ec0152610a7a01525f818161039701528181610529015281816106f101526107cd01526118485ff3fe6080604052600436106100f2575f3560e01c80633bc5de3011610089578063a7a38f0b11610058578063a7a38f0b146102ea578063b334b63414610327578063bb4013d31461034f578063c45a01551461036b576100f2565b80633bc5de3014610244578063483d45bd1461026e5780634d4061ec146102985780639c5f9481146102c0576100f2565b806322fce66f116100c557806322fce66f1461019c5780632c20dc89146101c65780632fbf8d2a146101f05780633a9c9ffc1461021a576100f2565b8063085d4883146100f6578063118d93301461012057806314bcec9f1461014857806322f3e2d414610172575b5f5ffd5b348015610101575f5ffd5b5061010a610395565b6040516101179190610e70565b60405180910390f35b34801561012b575f5ffd5b5061014660048036038101906101419190610ec4565b6103b9565b005b348015610153575f5ffd5b5061015c610448565b6040516101699190610efe565b60405180910390f35b34801561017d575f5ffd5b5061018661044e565b6040516101939190610f31565b60405180910390f35b3480156101a7575f5ffd5b506101b0610460565b6040516101bd9190610efe565b60405180910390f35b3480156101d1575f5ffd5b506101da610466565b6040516101e79190610efe565b60405180910390f35b3480156101fb575f5ffd5b5061020461046c565b6040516102119190610efe565b60405180910390f35b348015610225575f5ffd5b5061022e610472565b60405161023b9190610efe565b60405180910390f35b34801561024f575f5ffd5b50610258610478565b6040516102659190610fba565b60405180910390f35b348015610279575f5ffd5b50610282610526565b60405161028f9190610e70565b60405180910390f35b3480156102a3575f5ffd5b506102be60048036038101906102b99190611004565b61054d565b005b3480156102cb575f5ffd5b506102d46105ee565b6040516102e19190610fba565b60405180910390f35b3480156102f5575f5ffd5b50610310600480360381019061030b9190610ec4565b610642565b60405161031e92919061102f565b60405180910390f35b348015610332575f5ffd5b5061034d60048036038101906103489190610ec4565b6106ef565b005b610369600480360381019061036491906110be565b61077e565b005b348015610376575f5ffd5b5061037f610a78565b60405161038c9190611164565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461043e576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060038190555050565b60045481565b60015f9054906101000a900460ff1681565b61140081565b60035481565b60055481565b60cf5481565b606060015f9054906101000a900460ff166104bf576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600554600454426104d091906111aa565b1115610519576004546005546040517f72fc46a70000000000000000000000000000000000000000000000000000000081526004016105109291906111dd565b60405180910390fd5b610521610a9c565b905090565b5f7f0000000000000000000000000000000000000000000000000000000000000000905090565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105d2576040517f0234e5ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060015f6101000a81548160ff02191690831515021790555050565b606060015f9054906101000a900460ff16610635576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61063d610a9c565b905090565b60068160648110610651575f80fd5b600202015f91509050805f01805461066890611231565b80601f016020809104026020016040519081016040528092919081815260200182805461069490611231565b80156106df5780601f106106b6576101008083540402835291602001916106df565b820191905f5260205f20905b8154815290600101906020018083116106c257829003601f168201915b5050505050908060010154905082565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610774576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060058190555050565b610786610b73565b60015f9054906101000a900460ff166107cb576040517fe8eb59c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610850576040517f7a4443f900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166379502c556040518163ffffffff1660e01b81526004016040805180830381865afa1580156108b9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108dd91906112dc565b60ff169150505f6064826003546108f4919061131a565b6108fe9190611388565b9050803410156109475780346040517fb99e2ab700000000000000000000000000000000000000000000000000000000815260040161093e9291906111dd565b60405180910390fd5b8034111561098e5780346040517f08aed9250000000000000000000000000000000000000000000000000000000081526004016109859291906111dd565b60405180910390fd5b5f429050806004819055506109e685858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f81840152601f19601f8201169050808301925050505050505082610bb7565b610a2f827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16610ce690919063ffffffff16565b7f60badeea04f31d7e2d2b86b618aaddc0a3239fa5b361b407b25d3f1615d577bf600282604051610a6192919061144b565b60405180910390a1505050610a74610e28565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60605f60028054610aac90611231565b905003610ae5576040517f779619da00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028054610af290611231565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1e90611231565b8015610b695780601f10610b4057610100808354040283529160200191610b69565b820191905f5260205f20905b815481529060010190602001808311610b4c57829003601f168201915b5050505050905090565b60025f5403610bae576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025f81905550565b5f825103610bf1576040517f23e6b99500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61140082511115610c3e5781516114006040517f711f6430000000000000000000000000000000000000000000000000000000008152600401610c359291906111dd565b60405180910390fd5b604051806040016040528083815260200182815250600660ce5460648110610c6957610c68611479565b5b600202015f820151815f019081610c809190611658565b50602082015181600101559050506064600160ce54610c9f9190611727565b610ca9919061175a565b60ce81905550606460cf541015610cd25760cf5f815480929190610ccc9061178a565b91905055505b8160029081610ce19190611658565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d4b576040517f8474420100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8103610d84576040517f8b12710700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051610da9906117fe565b5f6040518083038185875af1925050503d805f8114610de3576040519150601f19603f3d011682016040523d82523d5f602084013e610de8565b606091505b5050905080610e23576040517f3d56f70700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60015f81905550565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610e5a82610e31565b9050919050565b610e6a81610e50565b82525050565b5f602082019050610e835f830184610e61565b92915050565b5f5ffd5b5f5ffd5b5f819050919050565b610ea381610e91565b8114610ead575f5ffd5b50565b5f81359050610ebe81610e9a565b92915050565b5f60208284031215610ed957610ed8610e89565b5b5f610ee684828501610eb0565b91505092915050565b610ef881610e91565b82525050565b5f602082019050610f115f830184610eef565b92915050565b5f8115159050919050565b610f2b81610f17565b82525050565b5f602082019050610f445f830184610f22565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610f8c82610f4a565b610f968185610f54565b9350610fa6818560208601610f64565b610faf81610f72565b840191505092915050565b5f6020820190508181035f830152610fd28184610f82565b905092915050565b610fe381610f17565b8114610fed575f5ffd5b50565b5f81359050610ffe81610fda565b92915050565b5f6020828403121561101957611018610e89565b5b5f61102684828501610ff0565b91505092915050565b5f6040820190508181035f8301526110478185610f82565b90506110566020830184610eef565b9392505050565b5f5ffd5b5f5ffd5b5f5ffd5b5f5f83601f84011261107e5761107d61105d565b5b8235905067ffffffffffffffff81111561109b5761109a611061565b5b6020830191508360018202830111156110b7576110b6611065565b5b9250929050565b5f5f602083850312156110d4576110d3610e89565b5b5f83013567ffffffffffffffff8111156110f1576110f0610e8d565b5b6110fd85828601611069565b92509250509250929050565b5f819050919050565b5f61112c61112761112284610e31565b611109565b610e31565b9050919050565b5f61113d82611112565b9050919050565b5f61114e82611133565b9050919050565b61115e81611144565b82525050565b5f6020820190506111775f830184611155565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6111b482610e91565b91506111bf83610e91565b92508282039050818111156111d7576111d661117d565b5b92915050565b5f6040820190506111f05f830185610eef565b6111fd6020830184610eef565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061124857607f821691505b60208210810361125b5761125a611204565b5b50919050565b5f6fffffffffffffffffffffffffffffffff82169050919050565b61128581611261565b811461128f575f5ffd5b50565b5f815190506112a08161127c565b92915050565b5f60ff82169050919050565b6112bb816112a6565b81146112c5575f5ffd5b50565b5f815190506112d6816112b2565b92915050565b5f5f604083850312156112f2576112f1610e89565b5b5f6112ff85828601611292565b9250506020611310858286016112c8565b9150509250929050565b5f61132482610e91565b915061132f83610e91565b925082820261133d81610e91565b915082820484148315176113545761135361117d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61139282610e91565b915061139d83610e91565b9250826113ad576113ac61135b565b5b828204905092915050565b5f819050815f5260205f209050919050565b5f81546113d681611231565b6113e08186610f54565b9450600182165f81146113fa576001811461141057611442565b60ff198316865281151560200286019350611442565b611419856113b8565b5f5b8381101561143a5781548189015260018201915060208101905061141b565b808801955050505b50505092915050565b5f6040820190508181035f83015261146381856113ca565b90506114726020830184610eef565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261151d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826114e2565b61152786836114e2565b95508019841693508086168417925050509392505050565b5f61155961155461154f84610e91565b611109565b610e91565b9050919050565b5f819050919050565b6115728361153f565b61158661157e82611560565b8484546114ee565b825550505050565b5f5f905090565b61159d61158e565b6115a8818484611569565b505050565b5b818110156115cb576115c05f82611595565b6001810190506115ae565b5050565b601f821115611610576115e1816113b8565b6115ea846114d3565b810160208510156115f9578190505b61160d611605856114d3565b8301826115ad565b50505b505050565b5f82821c905092915050565b5f6116305f1984600802611615565b1980831691505092915050565b5f6116488383611621565b9150826002028217905092915050565b61166182610f4a565b67ffffffffffffffff81111561167a576116796114a6565b5b6116848254611231565b61168f8282856115cf565b5f60209050601f8311600181146116c0575f84156116ae578287015190505b6116b8858261163d565b86555061171f565b601f1984166116ce866113b8565b5f5b828110156116f5578489015182556001820191506020850194506020810190506116d0565b86831015611712578489015161170e601f891682611621565b8355505b6001600288020188555050505b505050505050565b5f61173182610e91565b915061173c83610e91565b92508282019050808211156117545761175361117d565b5b92915050565b5f61176482610e91565b915061176f83610e91565b92508261177f5761177e61135b565b5b828206905092915050565b5f61179482610e91565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036117c6576117c561117d565b5b600182019050919050565b5f81905092915050565b50565b5f6117e95f836117d1565b91506117f4826117db565b5f82019050919050565b5f611808826117de565b915081905091905056fea264697066735822122014107d58dae22172c21d0f5e6e8da206265291680004b9ae5e495511e2e29e7764736f6c634300081e0033a26469706673582212204e0b3d702e3a92901379cd934b92b550c0cecdab4b8f6605bf4857640a76fbfe64736f6c634300081e0033";
531
+
532
+
533
+ type OracleFactoryConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>;
534
+
535
+ const isSuperArgs = (xs: OracleFactoryConstructorParams): xs is ConstructorParameters<typeof ContractFactory> =>
536
+ xs.length > 1
537
+
538
+
539
+ export class OracleFactory__factory extends ContractFactory {
540
+
541
+ constructor(...args: OracleFactoryConstructorParams) {
542
+ if (isSuperArgs(args)) {
543
+ super(...args);
544
+ } else {
545
+ super(_abi, _bytecode, args[0]);
546
+ }
547
+
548
+ }
549
+
550
+ override getDeployTransaction(_owner: AddressLike, overrides?: NonPayableOverrides & { from?: string }): Promise<ContractDeployTransaction> {
551
+ return super.getDeployTransaction(_owner, overrides || {});
552
+ };
553
+ override deploy(_owner: AddressLike, overrides?: NonPayableOverrides & { from?: string }) {
554
+ return super.deploy(_owner, overrides || {}) as Promise<OracleFactory & {
555
+ deploymentTransaction(): ContractTransactionResponse;
556
+ }>;
557
+ }
558
+ override connect(runner: ContractRunner | null): OracleFactory__factory {
559
+ return super.connect(runner) as OracleFactory__factory;
560
+ }
561
+
562
+
563
+ static readonly bytecode = _bytecode;
564
+ static readonly abi = _abi;
565
+ static createInterface(): OracleFactoryInterface {
566
+ return new Interface(_abi) as OracleFactoryInterface;
567
+ }
568
+
569
+ override attach(address: string | Addressable): OracleFactory {
570
+ return super.attach(address) as OracleFactory;
571
+ }
572
+ static connect(address: string, runner?: ContractRunner | null): OracleFactory {
573
+ return new Contract(address, _abi, runner) as unknown as OracleFactory;
574
+ }
575
+ }
576
+
577
+
578
+