-
Notifications
You must be signed in to change notification settings - Fork 0
/
FluxP2PFactory.json
345 lines (344 loc) · 74.9 KB
/
FluxP2PFactory.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
{
"_format": "hh-sol-artifact-1",
"contractName": "FluxP2PFactory",
"sourceName": "contracts/FluxP2PFactory.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "recvrd",
"type": "address"
}
],
"name": "LogRecoveredSigner",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "round",
"type": "uint256"
}
],
"name": "LogRound",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "message",
"type": "string"
}
],
"name": "LogTransmitError",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "oracle",
"type": "address"
},
{
"indexed": false,
"internalType": "address[]",
"name": "signers",
"type": "address[]"
}
],
"name": "PriceFeedCreated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "address",
"name": "signer",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "isAdded",
"type": "bool"
}
],
"name": "PriceFeedSignersModified",
"type": "event"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_id",
"type": "bytes32"
}
],
"name": "addressOfPricePair",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_id",
"type": "bytes32"
},
{
"internalType": "bool",
"name": "cancelTransmitSignature",
"type": "bool"
}
],
"name": "cancelSignature",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_pricePair",
"type": "string"
},
{
"internalType": "uint8",
"name": "_decimals",
"type": "uint8"
},
{
"internalType": "address[]",
"name": "_signers",
"type": "address[]"
}
],
"name": "deployOracle",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "id",
"type": "bytes32"
}
],
"name": "getMinSigners",
"outputs": [
{
"internalType": "uint256",
"name": "minimum",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_pricePair",
"type": "string"
},
{
"internalType": "uint8",
"name": "_decimals",
"type": "uint8"
},
{
"internalType": "address",
"name": "_creator",
"type": "address"
}
],
"name": "hashFeedId",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_id",
"type": "bytes32"
}
],
"name": "latestRoundOfPricePair",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_id",
"type": "bytes32"
}
],
"name": "latestSignerModificationRound",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes[]",
"name": "_signatures",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "_id",
"type": "bytes32"
},
{
"internalType": "address",
"name": "_signer",
"type": "address"
},
{
"internalType": "bool",
"name": "_add",
"type": "bool"
}
],
"name": "modifySigners",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes[]",
"name": "_signatures",
"type": "bytes[]"
},
{
"internalType": "bytes32",
"name": "_id",
"type": "bytes32"
},
{
"internalType": "int192[]",
"name": "_answers",
"type": "int192[]"
},
{
"internalType": "uint64[]",
"name": "_timestamps",
"type": "uint64[]"
}
],
"name": "transmit",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "typeAndVersion",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "_id",
"type": "bytes32"
}
],
"name": "valueFor",
"outputs": [
{
"internalType": "int256",
"name": "",
"type": "int256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x608060405234801561001057600080fd5b50614317806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620000d95760003560e01c8063c196ba7e116200008b578063d1d644501162000062578063d1d64450146200022c578063dddc13a01462000252578063f78eea83146200026957600080fd5b8063c196ba7e14620001e7578063c77715f314620001fe578063c94bfbfb146200021557600080fd5b806343f8f80211620000c057806343f8f80214620001495780638ea0861914620001a8578063a5960e0d14620001ce57600080fd5b80630248009514620000de578063181f5a771462000108575b600080fd5b620000f5620000ef36600462002270565b6200029c565b6040519081526020015b60405180910390f35b604080518082018252601481527f466c7578503250466163746f727920312e312e3000000000000000000000000060208201529051620000ff919062002310565b620001826200015a36600462002363565b60009081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000ff565b620000f5620001b936600462002363565b60009081526020819052604090206001015490565b620001e5620001df366004620023d6565b62000363565b005b620001e5620001f83660046200244c565b62000839565b620001e56200020f3660046200247b565b620009cf565b620000f56200022636600462002363565b620013d4565b620000f56200023d36600462002363565b60009081526020819052604090206002015490565b620001e562000263366004620025a6565b6200147a565b620002806200027a36600462002363565b62001764565b60408051938452602084019290925290820152606001620000ff565b6000808585620002af8660ff1662001891565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606088901b166020820152603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000321949392916020016200269e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209150505b949350505050565b6000838152602081905260409020620003809060030133620019de565b620003ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c69642063616c6c657200000000000000000000000000000000000060448201526064015b60405180910390fd5b60008381526020819052604090206001015484101562000469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f546f6f20666577207369676e65727300000000000000000000000000000000006044820152606401620003e3565b6000838152602081905260408120600201546200048890600162002763565b905060006200056685838686604051602001620004e89493929190938452602084019290925260601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166040830152151560f81b605482015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b905060005b86811015620006b6576000620005ab838a8a858181106200059057620005906200277e565b9050602002810190620005a49190620027ad565b8a62001a12565b60008881526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845260060190915290205490915084116200066f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4475706c6963617465207369676e6572206f722063616e63656c6c656420736960448201527f676e6174757265000000000000000000000000000000000000000000000000006064820152608401620003e3565b60008781526020818152604080832073ffffffffffffffffffffffffffffffffffffffff90941683526006909301905220839055620006ae8162002815565b90506200056b565b508215620006e2576000858152602081905260409020620006db906003018562001bcf565b5062000789565b6000858152602081905260409020600290620007019060030162001bf3565b116200076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e656564203e31207369676e65727300000000000000000000000000000000006044820152606401620003e3565b600085815260208190526040902062000787906003018562001bfe565b505b6000858152602081905260409020620007b090620007aa9060030162001bf3565b62001c22565b600086815260208190526040812060018101929092556002909101805491620007d98362002815565b90915550506040805173ffffffffffffffffffffffffffffffffffffffff86168152841515602082015286917fb1ab8a626d7a1fc03f9080167913ccf400f063dda8940b28aad0560688e8a9ed910160405180910390a250505050505050565b6000828152602081905260409020620008569060030133620019de565b620008be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c69642063616c6c65720000000000000000000000000000000000006044820152606401620003e3565b80156200099157600082815260208181526040918290205482517f668a0f02000000000000000000000000000000000000000000000000000000008152925173ffffffffffffffffffffffffffffffffffffffff90911692839263668a0f02926004808401938290030181865afa1580156200093e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000964919062002850565b6200097190600162002763565b600084815260208181526040808320338452600501909152902055505050565b600082815260208190526040902060020154620009b090600162002763565b6000838152602081815260408083203384526006019091529020555050565b6000858152602081905260409020620009ec9060030133620019de565b62000a54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c69642063616c6c65720000000000000000000000000000000000006044820152606401620003e3565b85838114801562000a6457508181145b62000acc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c656e67746873206d69736d61746368000000000000000000000000000000006044820152606401620003e3565b60008681526020819052604090206001015481101562000b49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f546f6f20666577207369676e65727300000000000000000000000000000000006044820152606401620003e3565b6000868152602081815260408083205481517f668a0f02000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff9091169392849263668a0f0292600480830193928290030181865afa15801562000bc3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000be9919062002850565b62000bf690600162002763565b905060008273ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c6c919062002850565b90507f9e5de54b51df048d41568d2605a1b3217358e8a705162294b0d62c8a336860018260405162000ca091815260200190565b60405180910390a160005b84811015620010da57600062000d618b858c8c8681811062000cd15762000cd16200277e565b905060200201602081019062000ce891906200286a565b8b8b8781811062000cfd5762000cfd6200277e565b905060200201602081019062000d1491906200288f565b60408051602081019590955284810193909352911b606083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166078820152608001620004e8565b9050600062000d9a828f8f8681811062000d7f5762000d7f6200277e565b905060200281019062000d939190620027ad565b8f62001a12565b90508389898581811062000db25762000db26200277e565b905060200201602081019062000dc991906200288f565b67ffffffffffffffff161162000e3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5374616c652074696d657374616d7000000000000000000000000000000000006044820152606401620003e3565b62000e4942600562002763565b89898581811062000e5e5762000e5e6200277e565b905060200201602081019062000e7591906200288f565b67ffffffffffffffff161062000ee8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4675747572652074696d657374616d70000000000000000000000000000000006044820152606401620003e3565b62000ef5600188620028bb565b83101562000fd1578a8a62000f0c85600162002763565b81811062000f1e5762000f1e6200277e565b905060200201602081019062000f3591906200286a565b60170b8b8b8581811062000f4d5762000f4d6200277e565b905060200201602081019062000f6491906200286a565b60170b131562000fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f7420736f72746564000000000000000000000000000000000000000000006044820152606401620003e3565b60008c81526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452600501909152902054851162001092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4475706c6963617465207369676e6572206f722063616e63656c6c656420736960448201527f676e6174757265000000000000000000000000000000000000000000000000006064820152608401620003e3565b60008c81526020818152604080832073ffffffffffffffffffffffffffffffffffffffff9094168352600590930190522084905550620010d28162002815565b905062000cab565b50600184901c600080620010f060028862002904565b600003620011fe5760028b8b858181106200110f576200110f6200277e565b90506020020160208101906200112691906200286a565b8c8c62001135600188620028bb565b8181106200114757620011476200277e565b90506020020160208101906200115e91906200286a565b6200116a91906200291b565b62001176919062002999565b915060028989858181106200118f576200118f6200277e565b9050602002016020810190620011a691906200288f565b8a8a620011b5600188620028bb565b818110620011c757620011c76200277e565b9050602002016020810190620011de91906200288f565b620011ea919062002a13565b620011f6919062002a42565b90506200125b565b8a8a848181106200121357620012136200277e565b90506020020160208101906200122a91906200286a565b91508888848181106200124157620012416200277e565b90506020020160208101906200125891906200288f565b90505b6040517f2915d91f000000000000000000000000000000000000000000000000000000008152601783900b600482015267ffffffffffffffff8216602482015273ffffffffffffffffffffffffffffffffffffffff871690632915d91f90604401600060405180830381600087803b158015620012d757600080fd5b505af1925050508015620012e9575060015b620013c457620012f862002a6c565b806308c379a003620013b857506200130f62002a89565b806200131c5750620013ba565b7fa949e8e13ee60ad98bde402bc48566d091725645696728a153b6d93edb436b67816040516200134d919062002310565b60405180910390a16040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e736d6974206661696c656400000000000000000000000000000000006044820152606401620003e3565b505b3d6000803e3d6000fd5b5050505050505050505050505050565b6000818152602081815260408083205481517f668a0f02000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692839263668a0f0292600480830193928290030181865afa1580156200144d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001473919062002850565b9392505050565b6001815111620014e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4d757374203e31207369676e65727300000000000000000000000000000000006044820152606401620003e3565b6000620014f7858585336200029c565b60008181526020819052604090205490915073ffffffffffffffffffffffffffffffffffffffff161562001588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f416c7265616479206465706c6f796564000000000000000000000000000000006044820152606401620003e3565b6000308487876040516200159c90620021e1565b620015ab949392919062002b37565b604051809103906000f080158015620015c8573d6000803e3d6000fd5b50600083815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790558351909150620016259062001c22565b6000838152602081905260408120600101919091555b83518110156200170a576200168a8482815181106200165e576200165e6200277e565b602002602001015160008086815260200190815260200160002060030162001bcf90919063ffffffff16565b1515600114620016f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4475706c6963617465207369676e6572000000000000000000000000000000006044820152606401620003e3565b620017028162002815565b90506200163b565b508073ffffffffffffffffffffffffffffffffffffffff16827f3e12f2323f06353939ca298dd03054e4046474f58a6153afc7b9aaebe2a19dfd8560405162001754919062002bab565b60405180910390a3505050505050565b6000818152602081905260408120548190819073ffffffffffffffffffffffffffffffffffffffff16156200187e57600084815260208190526040908190205481517ffeaf968c000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff9091169163feaf968c9160048083019260a09291908290030181865afa9250505080156200184b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252620018489181019062002c22565b60015b156200187e5769ffffffffffffffffffff85161562001878575091955090935060c892506200188a915050565b50505050505b50600091508190506101945b9193909250565b606081600003620018d557505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115620019055780620018ec8162002815565b9150620018fd9050600a8362002c6b565b9150620018d9565b60008167ffffffffffffffff81111562001923576200192362002529565b6040519080825280601f01601f1916602001820160405280156200194e576020820181803683370190505b5090505b84156200035b5762001966600183620028bb565b915062001975600a8662002904565b6200198290603062002763565b60f81b8183815181106200199a576200199a6200277e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350620019d6600a8662002c6b565b945062001952565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415155b90505b92915050565b600080600062001a598787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062001c3e92505050565b9092509050600081600481111562001a755762001a7562002c82565b0362001b6c5760405173ffffffffffffffffffffffffffffffffffffffff831681527fcf11d1a5547ac706d7fee93a99312229e228b87d98ecb20c9f17129ecb7ab5ec9060200160405180910390a1600084815260208190526040902062001ae19060030183620019de565b62001b048373ffffffffffffffffffffffffffffffffffffffff16601462001cb4565b60405160200162001b16919062002cb1565b6040516020818303038152906040529062001b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003e3919062002310565b5081925050506200035b565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152606401620003e3565b600062001a098373ffffffffffffffffffffffffffffffffffffffff841662001f15565b600062001a0c825490565b600062001a098373ffffffffffffffffffffffffffffffffffffffff841662001f67565b600062001c3160028362002c6b565b62001a0c90600162002763565b600080825160410362001c785760208301516040840151606085015160001a62001c6b878285856200206b565b9450945050505062001cad565b825160400362001ca5576020830151604084015162001c998683836200218b565b93509350505062001cad565b506000905060025b9250929050565b6060600062001cc583600262002cf8565b62001cd290600262002763565b67ffffffffffffffff81111562001ced5762001ced62002529565b6040519080825280601f01601f19166020018201604052801562001d18576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001d525762001d526200277e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001db85762001db86200277e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600062001df684600262002cf8565b62001e0390600162002763565b90505b600181111562001eaa577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001e485762001e486200277e565b1a60f81b82828151811062001e615762001e616200277e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9362001ea28162002d38565b905062001e06565b50831562001a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620003e3565b600081815260018301602052604081205462001f5e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562001a0c565b50600062001a0c565b600081815260018301602052604081205480156200206057600062001f8e600183620028bb565b855490915060009062001fa490600190620028bb565b90508181146200201057600086600001828154811062001fc85762001fc86200277e565b906000526020600020015490508087600001848154811062001fee5762001fee6200277e565b6000918252602080832090910192909255918252600188019052604090208390555b855486908062002024576200202462002d70565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062001a0c565b600091505062001a0c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115620020a4575060009050600362002182565b8460ff16601b14158015620020bd57508460ff16601c14155b15620020d0575060009050600462002182565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801562002125573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166200217b5760006001925092505062002182565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831681620021c360ff86901c601b62002763565b9050620021d3878288856200206b565b935093505050935093915050565b61156b8062002da083390190565b60008083601f8401126200220257600080fd5b50813567ffffffffffffffff8111156200221b57600080fd5b60208301915083602082850101111562001cad57600080fd5b803560ff811681146200224657600080fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146200224657600080fd5b600080600080606085870312156200228757600080fd5b843567ffffffffffffffff8111156200229f57600080fd5b620022ad87828801620021ef565b9095509350620022c290506020860162002234565b9150620022d2604086016200224b565b905092959194509250565b60005b83811015620022fa578181015183820152602001620022e0565b838111156200230a576000848401525b50505050565b602081526000825180602084015262002331816040850160208701620022dd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156200237657600080fd5b5035919050565b60008083601f8401126200239057600080fd5b50813567ffffffffffffffff811115620023a957600080fd5b6020830191508360208260051b850101111562001cad57600080fd5b803580151581146200224657600080fd5b600080600080600060808688031215620023ef57600080fd5b853567ffffffffffffffff8111156200240757600080fd5b62002415888289016200237d565b9096509450506020860135925062002430604087016200224b565b91506200244060608701620023c5565b90509295509295909350565b600080604083850312156200246057600080fd5b823591506200247260208401620023c5565b90509250929050565b60008060008060008060006080888a0312156200249757600080fd5b873567ffffffffffffffff80821115620024b057600080fd5b620024be8b838c016200237d565b909950975060208a0135965060408a0135915080821115620024df57600080fd5b620024ed8b838c016200237d565b909650945060608a01359150808211156200250757600080fd5b50620025168a828b016200237d565b989b979a50959850939692959293505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff821117156200259f576200259f62002529565b6040525050565b60008060008060608587031215620025bd57600080fd5b843567ffffffffffffffff80821115620025d657600080fd5b620025e488838901620021ef565b909650945060209150620025fa87830162002234565b93506040870135818111156200260f57600080fd5b8701601f810189136200262157600080fd5b80358281111562002636576200263662002529565b8060051b92506040516200264d8585018262002558565b8181529282018401928481018b8511156200266757600080fd5b928501925b848410156200268e5762002680846200224b565b81529285019285016200266c565b50979a9699509497505050505050565b7f50726963652d000000000000000000000000000000000000000000000000000081528385600683013760008482017f2d00000000000000000000000000000000000000000000000000000000000000806006830152855162002709816007850160208a01620022dd565b6007920191820152835162002726816008840160208801620022dd565b016008019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111562002779576200277962002734565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112620027e357600080fd5b83018035915067ffffffffffffffff821115620027ff57600080fd5b60200191503681900382131562001cad57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362002849576200284962002734565b5060010190565b6000602082840312156200286357600080fd5b5051919050565b6000602082840312156200287d57600080fd5b81358060170b811462001a0957600080fd5b600060208284031215620028a257600080fd5b813567ffffffffffffffff8116811462001a0957600080fd5b600082821015620028d057620028d062002734565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082620029165762002916620028d5565b500690565b60008160170b8360170b6000821282777fffffffffffffffffffffffffffffffffffffffffffffff0382138115161562002959576200295962002734565b827fffffffffffffffff80000000000000000000000000000000000000000000000003821281161562002990576200299062002734565b50019392505050565b60008160170b8360170b80620029b357620029b3620028d5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147fffffffffffffffff8000000000000000000000000000000000000000000000008314161562002a0a5762002a0a62002734565b90059392505050565b600067ffffffffffffffff80831681851680830382111562002a395762002a3962002734565b01949350505050565b600067ffffffffffffffff8084168062002a605762002a60620028d5565b92169190910492915050565b600060033d111562002a865760046000803e5060005160e01c5b90565b600060443d101562002a985790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff816024840111818411171562002ae757505050505090565b828501915081518181111562002b005750505050505090565b843d870101602082850101111562002b1b5750505050505090565b62002b2c6020828601018762002558565b509095945050505050565b73ffffffffffffffffffffffffffffffffffffffff8516815260ff8416602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b6020808252825182820181905260009190848201906040850190845b8181101562002bfb57835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010162002bc7565b50909695505050505050565b805169ffffffffffffffffffff811681146200224657600080fd5b600080600080600060a0868803121562002c3b57600080fd5b62002c468662002c07565b9450602086015193506040860151925060608601519150620024406080870162002c07565b60008262002c7d5762002c7d620028d5565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f696e76616c6964207369676e65723a200000000000000000000000000000000081526000825162002ceb816010850160208701620022dd565b9190910160100192915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562002d335762002d3362002734565b500290565b60008162002d4a5762002d4a62002734565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe60a06040523480156200001157600080fd5b506040516200156b3803806200156b8339810160408190526200003491620001f0565b6200004160003362000093565b6200006d7f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c989268462000093565b60ff821660805280516200008990600390602084019062000134565b5050505062000346565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000130576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000ef3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b82805462000142906200030a565b90600052602060002090601f016020900481019282620001665760008555620001b1565b82601f106200018157805160ff1916838001178555620001b1565b82800160010185558215620001b1579182015b82811115620001b157825182559160200191906001019062000194565b50620001bf929150620001c3565b5090565b5b80821115620001bf5760008155600101620001c4565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156200020657600080fd5b83516001600160a01b03811681146200021e57600080fd5b8093505060208085015160ff811681146200023857600080fd5b60408601519093506001600160401b03808211156200025657600080fd5b818701915087601f8301126200026b57600080fd5b815181811115620002805762000280620001da565b604051601f8201601f19908116603f01168101908382118183101715620002ab57620002ab620001da565b816040528281528a86848701011115620002c457600080fd5b600093505b82841015620002e85784840186015181850187015292850192620002c9565b82841115620002fa5760008684830101525b8096505050505050509250925092565b600181811c908216806200031f57607f821691505b6020821081036200034057634e487b7160e01b600052602260045260246000fd5b50919050565b60805161120962000362600039600061024f01526112096000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80637284e416116100d8578063b5ab58dc1161008c578063d547741f11610066578063d547741f146103f1578063e5fe457714610404578063feaf968c1461046557600080fd5b8063b5ab58dc146103a4578063b633620c146103b7578063c49baebe146103ca57600080fd5b806391d14854116100bd57806391d148541461030e5780639a6fc8f514610352578063a217fddf1461039c57600080fd5b80637284e416146102c95780638205bf6a146102d157600080fd5b8063313ce5671161013a57806354fd4d501161011457806354fd4d50146102b05780635ed63b40146102b8578063668a0f02146102c157600080fd5b8063313ce5671461024a57806336568abe1461028357806350d25bcd1461029657600080fd5b8063248a9ca31161016b578063248a9ca3146101f15780632915d91f146102225780632f2ff15d1461023757600080fd5b806301ffc9a714610187578063181f5a77146101af575b600080fd5b61019a610195366004610e47565b6104c4565b60405190151581526020015b60405180910390f35b60408051808201909152601381527f466c757850726963654665656420312e322e310000000000000000000000000060208201525b6040516101a69190610eb9565b6102146101ff366004610f0a565b60009081526020819052604090206001015490565b6040519081526020016101a6565b610235610230366004610f23565b61055d565b005b610235610245366004610f6f565b61066d565b6102717f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101a6565b610235610291366004610f6f565b610697565b60015460009081526002602052604090205460170b610214565b610214600181565b61021460015481565b600154610214565b6101e461074f565b6001546000908152600260205260409020547801000000000000000000000000000000000000000000000000900467ffffffffffffffff16610214565b61019a61031c366004610f6f565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610365610360366004610fad565b6107e1565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a0016101a6565b610214600081565b6102146103b2366004610f0a565b6108d9565b6102146103c5366004610f0a565b610905565b6102147f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c9892681565b6102356103ff366004610f6f565b610954565b600154600090815260026020526040902054601781900b907801000000000000000000000000000000000000000000000000900467ffffffffffffffff166040805160179390930b835267ffffffffffffffff9091166020830152016101a6565b610365600154600081815260026020908152604091829020825180840190935254601781900b808452780100000000000000000000000000000000000000000000000090910467ffffffffffffffff1692909101829052919281908490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061055757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c9892661058781610979565b60405180604001604052808460170b81526020018367ffffffffffffffff16815250600260006001600081546105bc90611008565b91829055508152602080820192909252604090810160002083519383015177ffffffffffffffffffffffffffffffffffffffffffffffff909416780100000000000000000000000000000000000000000000000067ffffffffffffffff958616021790556001548151601788900b81523393810193909352928516908201527f124437ac9b3b1f8b3cfa2b6d2e50165f5350d8a76cd2779fe63da1a051e599dc9060600160405180910390a2505050565b60008281526020819052604090206001015461068881610979565b6106928383610986565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61074b8282610a76565b5050565b60606003805461075e90611040565b80601f016020809104026020016040519081016040528092919081815260200182805461078a90611040565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b5050505050905090565b600080600080600063ffffffff8669ffffffffffffffffffff1611156040518060400160405280600f81526020017f4e6f20646174612070726573656e7400000000000000000000000000000000008152509061086b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389190610eb9565b5050505069ffffffffffffffffffff8316600090815260026020908152604091829020825180840190935254601781900b808452780100000000000000000000000000000000000000000000000090910467ffffffffffffffff169290910182905293949092508291508490565b600063ffffffff8211156108ef57506000919050565b5060009081526002602052604090205460170b90565b600063ffffffff82111561091b57506000919050565b506000908152600260205260409020547801000000000000000000000000000000000000000000000000900467ffffffffffffffff1690565b60008281526020819052604090206001015461096f81610979565b6106928383610a76565b6109838133610b2d565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661074b5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610a183390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561074b5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661074b57610b838173ffffffffffffffffffffffffffffffffffffffff166014610bfd565b610b8e836020610bfd565b604051602001610b9f929190611093565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261073891600401610eb9565b60606000610c0c836002611114565b610c17906002611151565b67ffffffffffffffff811115610c2f57610c2f611169565b6040519080825280601f01601f191660200182016040528015610c59576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610c9057610c90611198565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610cf357610cf3611198565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610d2f846002611114565b610d3a906001611151565b90505b6001811115610dd7577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610d7b57610d7b611198565b1a60f81b828281518110610d9157610d91611198565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610dd0816111c7565b9050610d3d565b508315610e40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610738565b9392505050565b600060208284031215610e5957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e4057600080fd5b60005b83811015610ea4578181015183820152602001610e8c565b83811115610eb3576000848401525b50505050565b6020815260008251806020840152610ed8816040850160208701610e89565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600060208284031215610f1c57600080fd5b5035919050565b60008060408385031215610f3657600080fd5b82358060170b8114610f4757600080fd5b9150602083013567ffffffffffffffff81168114610f6457600080fd5b809150509250929050565b60008060408385031215610f8257600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff81168114610f6457600080fd5b600060208284031215610fbf57600080fd5b813569ffffffffffffffffffff81168114610e4057600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361103957611039610fd9565b5060010190565b600181811c9082168061105457607f821691505b60208210810361108d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516110cb816017850160208801610e89565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351611108816028840160208801610e89565b01602801949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561114c5761114c610fd9565b500290565b6000821982111561116457611164610fd9565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000816111d6576111d6610fd9565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c634300080e000aa164736f6c634300080e000a",
"deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620000d95760003560e01c8063c196ba7e116200008b578063d1d644501162000062578063d1d64450146200022c578063dddc13a01462000252578063f78eea83146200026957600080fd5b8063c196ba7e14620001e7578063c77715f314620001fe578063c94bfbfb146200021557600080fd5b806343f8f80211620000c057806343f8f80214620001495780638ea0861914620001a8578063a5960e0d14620001ce57600080fd5b80630248009514620000de578063181f5a771462000108575b600080fd5b620000f5620000ef36600462002270565b6200029c565b6040519081526020015b60405180910390f35b604080518082018252601481527f466c7578503250466163746f727920312e312e3000000000000000000000000060208201529051620000ff919062002310565b620001826200015a36600462002363565b60009081526020819052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620000ff565b620000f5620001b936600462002363565b60009081526020819052604090206001015490565b620001e5620001df366004620023d6565b62000363565b005b620001e5620001f83660046200244c565b62000839565b620001e56200020f3660046200247b565b620009cf565b620000f56200022636600462002363565b620013d4565b620000f56200023d36600462002363565b60009081526020819052604090206002015490565b620001e562000263366004620025a6565b6200147a565b620002806200027a36600462002363565b62001764565b60408051938452602084019290925290820152606001620000ff565b6000808585620002af8660ff1662001891565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606088901b166020820152603401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262000321949392916020016200269e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905280516020909101209150505b949350505050565b6000838152602081905260409020620003809060030133620019de565b620003ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c69642063616c6c657200000000000000000000000000000000000060448201526064015b60405180910390fd5b60008381526020819052604090206001015484101562000469576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f546f6f20666577207369676e65727300000000000000000000000000000000006044820152606401620003e3565b6000838152602081905260408120600201546200048890600162002763565b905060006200056685838686604051602001620004e89493929190938452602084019290925260601b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000166040830152151560f81b605482015260550190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815282825280516020918201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000084830152603c8085019190915282518085039091018152605c909301909152815191012090565b905060005b86811015620006b6576000620005ab838a8a858181106200059057620005906200277e565b9050602002810190620005a49190620027ad565b8a62001a12565b60008881526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845260060190915290205490915084116200066f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4475706c6963617465207369676e6572206f722063616e63656c6c656420736960448201527f676e6174757265000000000000000000000000000000000000000000000000006064820152608401620003e3565b60008781526020818152604080832073ffffffffffffffffffffffffffffffffffffffff90941683526006909301905220839055620006ae8162002815565b90506200056b565b508215620006e2576000858152602081905260409020620006db906003018562001bcf565b5062000789565b6000858152602081905260409020600290620007019060030162001bf3565b116200076a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4e656564203e31207369676e65727300000000000000000000000000000000006044820152606401620003e3565b600085815260208190526040902062000787906003018562001bfe565b505b6000858152602081905260409020620007b090620007aa9060030162001bf3565b62001c22565b600086815260208190526040812060018101929092556002909101805491620007d98362002815565b90915550506040805173ffffffffffffffffffffffffffffffffffffffff86168152841515602082015286917fb1ab8a626d7a1fc03f9080167913ccf400f063dda8940b28aad0560688e8a9ed910160405180910390a250505050505050565b6000828152602081905260409020620008569060030133620019de565b620008be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c69642063616c6c65720000000000000000000000000000000000006044820152606401620003e3565b80156200099157600082815260208181526040918290205482517f668a0f02000000000000000000000000000000000000000000000000000000008152925173ffffffffffffffffffffffffffffffffffffffff90911692839263668a0f02926004808401938290030181865afa1580156200093e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000964919062002850565b6200097190600162002763565b600084815260208181526040808320338452600501909152902055505050565b600082815260208190526040902060020154620009b090600162002763565b6000838152602081815260408083203384526006019091529020555050565b6000858152602081905260409020620009ec9060030133620019de565b62000a54576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600e60248201527f496e76616c69642063616c6c65720000000000000000000000000000000000006044820152606401620003e3565b85838114801562000a6457508181145b62000acc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4c656e67746873206d69736d61746368000000000000000000000000000000006044820152606401620003e3565b60008681526020819052604090206001015481101562000b49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f546f6f20666577207369676e65727300000000000000000000000000000000006044820152606401620003e3565b6000868152602081815260408083205481517f668a0f02000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff9091169392849263668a0f0292600480830193928290030181865afa15801562000bc3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000be9919062002850565b62000bf690600162002763565b905060008273ffffffffffffffffffffffffffffffffffffffff16638205bf6a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c6c919062002850565b90507f9e5de54b51df048d41568d2605a1b3217358e8a705162294b0d62c8a336860018260405162000ca091815260200190565b60405180910390a160005b84811015620010da57600062000d618b858c8c8681811062000cd15762000cd16200277e565b905060200201602081019062000ce891906200286a565b8b8b8781811062000cfd5762000cfd6200277e565b905060200201602081019062000d1491906200288f565b60408051602081019590955284810193909352911b606083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166078820152608001620004e8565b9050600062000d9a828f8f8681811062000d7f5762000d7f6200277e565b905060200281019062000d939190620027ad565b8f62001a12565b90508389898581811062000db25762000db26200277e565b905060200201602081019062000dc991906200288f565b67ffffffffffffffff161162000e3c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5374616c652074696d657374616d7000000000000000000000000000000000006044820152606401620003e3565b62000e4942600562002763565b89898581811062000e5e5762000e5e6200277e565b905060200201602081019062000e7591906200288f565b67ffffffffffffffff161062000ee8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4675747572652074696d657374616d70000000000000000000000000000000006044820152606401620003e3565b62000ef5600188620028bb565b83101562000fd1578a8a62000f0c85600162002763565b81811062000f1e5762000f1e6200277e565b905060200201602081019062000f3591906200286a565b60170b8b8b8581811062000f4d5762000f4d6200277e565b905060200201602081019062000f6491906200286a565b60170b131562000fd1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600a60248201527f4e6f7420736f72746564000000000000000000000000000000000000000000006044820152606401620003e3565b60008c81526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452600501909152902054851162001092576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4475706c6963617465207369676e6572206f722063616e63656c6c656420736960448201527f676e6174757265000000000000000000000000000000000000000000000000006064820152608401620003e3565b60008c81526020818152604080832073ffffffffffffffffffffffffffffffffffffffff9094168352600590930190522084905550620010d28162002815565b905062000cab565b50600184901c600080620010f060028862002904565b600003620011fe5760028b8b858181106200110f576200110f6200277e565b90506020020160208101906200112691906200286a565b8c8c62001135600188620028bb565b8181106200114757620011476200277e565b90506020020160208101906200115e91906200286a565b6200116a91906200291b565b62001176919062002999565b915060028989858181106200118f576200118f6200277e565b9050602002016020810190620011a691906200288f565b8a8a620011b5600188620028bb565b818110620011c757620011c76200277e565b9050602002016020810190620011de91906200288f565b620011ea919062002a13565b620011f6919062002a42565b90506200125b565b8a8a848181106200121357620012136200277e565b90506020020160208101906200122a91906200286a565b91508888848181106200124157620012416200277e565b90506020020160208101906200125891906200288f565b90505b6040517f2915d91f000000000000000000000000000000000000000000000000000000008152601783900b600482015267ffffffffffffffff8216602482015273ffffffffffffffffffffffffffffffffffffffff871690632915d91f90604401600060405180830381600087803b158015620012d757600080fd5b505af1925050508015620012e9575060015b620013c457620012f862002a6c565b806308c379a003620013b857506200130f62002a89565b806200131c5750620013ba565b7fa949e8e13ee60ad98bde402bc48566d091725645696728a153b6d93edb436b67816040516200134d919062002310565b60405180910390a16040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e736d6974206661696c656400000000000000000000000000000000006044820152606401620003e3565b505b3d6000803e3d6000fd5b5050505050505050505050505050565b6000818152602081815260408083205481517f668a0f02000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff90911692839263668a0f0292600480830193928290030181865afa1580156200144d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001473919062002850565b9392505050565b6001815111620014e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4d757374203e31207369676e65727300000000000000000000000000000000006044820152606401620003e3565b6000620014f7858585336200029c565b60008181526020819052604090205490915073ffffffffffffffffffffffffffffffffffffffff161562001588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f416c7265616479206465706c6f796564000000000000000000000000000000006044820152606401620003e3565b6000308487876040516200159c90620021e1565b620015ab949392919062002b37565b604051809103906000f080158015620015c8573d6000803e3d6000fd5b50600083815260208190526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790558351909150620016259062001c22565b6000838152602081905260408120600101919091555b83518110156200170a576200168a8482815181106200165e576200165e6200277e565b602002602001015160008086815260200190815260200160002060030162001bcf90919063ffffffff16565b1515600114620016f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f4475706c6963617465207369676e6572000000000000000000000000000000006044820152606401620003e3565b620017028162002815565b90506200163b565b508073ffffffffffffffffffffffffffffffffffffffff16827f3e12f2323f06353939ca298dd03054e4046474f58a6153afc7b9aaebe2a19dfd8560405162001754919062002bab565b60405180910390a3505050505050565b6000818152602081905260408120548190819073ffffffffffffffffffffffffffffffffffffffff16156200187e57600084815260208190526040908190205481517ffeaf968c000000000000000000000000000000000000000000000000000000008152915173ffffffffffffffffffffffffffffffffffffffff9091169163feaf968c9160048083019260a09291908290030181865afa9250505080156200184b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252620018489181019062002c22565b60015b156200187e5769ffffffffffffffffffff85161562001878575091955090935060c892506200188a915050565b50505050505b50600091508190506101945b9193909250565b606081600003620018d557505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115620019055780620018ec8162002815565b9150620018fd9050600a8362002c6b565b9150620018d9565b60008167ffffffffffffffff81111562001923576200192362002529565b6040519080825280601f01601f1916602001820160405280156200194e576020820181803683370190505b5090505b84156200035b5762001966600183620028bb565b915062001975600a8662002904565b6200198290603062002763565b60f81b8183815181106200199a576200199a6200277e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350620019d6600a8662002c6b565b945062001952565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260018301602052604081205415155b90505b92915050565b600080600062001a598787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525062001c3e92505050565b9092509050600081600481111562001a755762001a7562002c82565b0362001b6c5760405173ffffffffffffffffffffffffffffffffffffffff831681527fcf11d1a5547ac706d7fee93a99312229e228b87d98ecb20c9f17129ecb7ab5ec9060200160405180910390a1600084815260208190526040902062001ae19060030183620019de565b62001b048373ffffffffffffffffffffffffffffffffffffffff16601462001cb4565b60405160200162001b16919062002cb1565b6040516020818303038152906040529062001b60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003e3919062002310565b5081925050506200035b565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152606401620003e3565b600062001a098373ffffffffffffffffffffffffffffffffffffffff841662001f15565b600062001a0c825490565b600062001a098373ffffffffffffffffffffffffffffffffffffffff841662001f67565b600062001c3160028362002c6b565b62001a0c90600162002763565b600080825160410362001c785760208301516040840151606085015160001a62001c6b878285856200206b565b9450945050505062001cad565b825160400362001ca5576020830151604084015162001c998683836200218b565b93509350505062001cad565b506000905060025b9250929050565b6060600062001cc583600262002cf8565b62001cd290600262002763565b67ffffffffffffffff81111562001ced5762001ced62002529565b6040519080825280601f01601f19166020018201604052801562001d18576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001d525762001d526200277e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001db85762001db86200277e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600062001df684600262002cf8565b62001e0390600162002763565b90505b600181111562001eaa577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001e485762001e486200277e565b1a60f81b82828151811062001e615762001e616200277e565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c9362001ea28162002d38565b905062001e06565b50831562001a09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620003e3565b600081815260018301602052604081205462001f5e5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562001a0c565b50600062001a0c565b600081815260018301602052604081205480156200206057600062001f8e600183620028bb565b855490915060009062001fa490600190620028bb565b90508181146200201057600086600001828154811062001fc85762001fc86200277e565b906000526020600020015490508087600001848154811062001fee5762001fee6200277e565b6000918252602080832090910192909255918252600188019052604090208390555b855486908062002024576200202462002d70565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505062001a0c565b600091505062001a0c565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115620020a4575060009050600362002182565b8460ff16601b14158015620020bd57508460ff16601c14155b15620020d0575060009050600462002182565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801562002125573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff81166200217b5760006001925092505062002182565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831681620021c360ff86901c601b62002763565b9050620021d3878288856200206b565b935093505050935093915050565b61156b8062002da083390190565b60008083601f8401126200220257600080fd5b50813567ffffffffffffffff8111156200221b57600080fd5b60208301915083602082850101111562001cad57600080fd5b803560ff811681146200224657600080fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff811681146200224657600080fd5b600080600080606085870312156200228757600080fd5b843567ffffffffffffffff8111156200229f57600080fd5b620022ad87828801620021ef565b9095509350620022c290506020860162002234565b9150620022d2604086016200224b565b905092959194509250565b60005b83811015620022fa578181015183820152602001620022e0565b838111156200230a576000848401525b50505050565b602081526000825180602084015262002331816040850160208701620022dd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000602082840312156200237657600080fd5b5035919050565b60008083601f8401126200239057600080fd5b50813567ffffffffffffffff811115620023a957600080fd5b6020830191508360208260051b850101111562001cad57600080fd5b803580151581146200224657600080fd5b600080600080600060808688031215620023ef57600080fd5b853567ffffffffffffffff8111156200240757600080fd5b62002415888289016200237d565b9096509450506020860135925062002430604087016200224b565b91506200244060608701620023c5565b90509295509295909350565b600080604083850312156200246057600080fd5b823591506200247260208401620023c5565b90509250929050565b60008060008060008060006080888a0312156200249757600080fd5b873567ffffffffffffffff80821115620024b057600080fd5b620024be8b838c016200237d565b909950975060208a0135965060408a0135915080821115620024df57600080fd5b620024ed8b838c016200237d565b909650945060608a01359150808211156200250757600080fd5b50620025168a828b016200237d565b989b979a50959850939692959293505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116810181811067ffffffffffffffff821117156200259f576200259f62002529565b6040525050565b60008060008060608587031215620025bd57600080fd5b843567ffffffffffffffff80821115620025d657600080fd5b620025e488838901620021ef565b909650945060209150620025fa87830162002234565b93506040870135818111156200260f57600080fd5b8701601f810189136200262157600080fd5b80358281111562002636576200263662002529565b8060051b92506040516200264d8585018262002558565b8181529282018401928481018b8511156200266757600080fd5b928501925b848410156200268e5762002680846200224b565b81529285019285016200266c565b50979a9699509497505050505050565b7f50726963652d000000000000000000000000000000000000000000000000000081528385600683013760008482017f2d00000000000000000000000000000000000000000000000000000000000000806006830152855162002709816007850160208a01620022dd565b6007920191820152835162002726816008840160208801620022dd565b016008019695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111562002779576200277962002734565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112620027e357600080fd5b83018035915067ffffffffffffffff821115620027ff57600080fd5b60200191503681900382131562001cad57600080fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362002849576200284962002734565b5060010190565b6000602082840312156200286357600080fd5b5051919050565b6000602082840312156200287d57600080fd5b81358060170b811462001a0957600080fd5b600060208284031215620028a257600080fd5b813567ffffffffffffffff8116811462001a0957600080fd5b600082821015620028d057620028d062002734565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082620029165762002916620028d5565b500690565b60008160170b8360170b6000821282777fffffffffffffffffffffffffffffffffffffffffffffff0382138115161562002959576200295962002734565b827fffffffffffffffff80000000000000000000000000000000000000000000000003821281161562002990576200299062002734565b50019392505050565b60008160170b8360170b80620029b357620029b3620028d5565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81147fffffffffffffffff8000000000000000000000000000000000000000000000008314161562002a0a5762002a0a62002734565b90059392505050565b600067ffffffffffffffff80831681851680830382111562002a395762002a3962002734565b01949350505050565b600067ffffffffffffffff8084168062002a605762002a60620028d5565b92169190910492915050565b600060033d111562002a865760046000803e5060005160e01c5b90565b600060443d101562002a985790565b6040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc803d016004833e81513d67ffffffffffffffff816024840111818411171562002ae757505050505090565b828501915081518181111562002b005750505050505090565b843d870101602082850101111562002b1b5750505050505090565b62002b2c6020828601018762002558565b509095945050505050565b73ffffffffffffffffffffffffffffffffffffffff8516815260ff8416602082015260606040820152816060820152818360808301376000818301608090810191909152601f9092017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01601019392505050565b6020808252825182820181905260009190848201906040850190845b8181101562002bfb57835173ffffffffffffffffffffffffffffffffffffffff168352928401929184019160010162002bc7565b50909695505050505050565b805169ffffffffffffffffffff811681146200224657600080fd5b600080600080600060a0868803121562002c3b57600080fd5b62002c468662002c07565b9450602086015193506040860151925060608601519150620024406080870162002c07565b60008262002c7d5762002c7d620028d5565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f696e76616c6964207369676e65723a200000000000000000000000000000000081526000825162002ceb816010850160208701620022dd565b9190910160100192915050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562002d335762002d3362002734565b500290565b60008162002d4a5762002d4a62002734565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfe60a06040523480156200001157600080fd5b506040516200156b3803806200156b8339810160408190526200003491620001f0565b6200004160003362000093565b6200006d7f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c989268462000093565b60ff821660805280516200008990600390602084019062000134565b5050505062000346565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1662000130576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620000ef3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b82805462000142906200030a565b90600052602060002090601f016020900481019282620001665760008555620001b1565b82601f106200018157805160ff1916838001178555620001b1565b82800160010185558215620001b1579182015b82811115620001b157825182559160200191906001019062000194565b50620001bf929150620001c3565b5090565b5b80821115620001bf5760008155600101620001c4565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156200020657600080fd5b83516001600160a01b03811681146200021e57600080fd5b8093505060208085015160ff811681146200023857600080fd5b60408601519093506001600160401b03808211156200025657600080fd5b818701915087601f8301126200026b57600080fd5b815181811115620002805762000280620001da565b604051601f8201601f19908116603f01168101908382118183101715620002ab57620002ab620001da565b816040528281528a86848701011115620002c457600080fd5b600093505b82841015620002e85784840186015181850187015292850192620002c9565b82841115620002fa5760008684830101525b8096505050505050509250925092565b600181811c908216806200031f57607f821691505b6020821081036200034057634e487b7160e01b600052602260045260246000fd5b50919050565b60805161120962000362600039600061024f01526112096000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80637284e416116100d8578063b5ab58dc1161008c578063d547741f11610066578063d547741f146103f1578063e5fe457714610404578063feaf968c1461046557600080fd5b8063b5ab58dc146103a4578063b633620c146103b7578063c49baebe146103ca57600080fd5b806391d14854116100bd57806391d148541461030e5780639a6fc8f514610352578063a217fddf1461039c57600080fd5b80637284e416146102c95780638205bf6a146102d157600080fd5b8063313ce5671161013a57806354fd4d501161011457806354fd4d50146102b05780635ed63b40146102b8578063668a0f02146102c157600080fd5b8063313ce5671461024a57806336568abe1461028357806350d25bcd1461029657600080fd5b8063248a9ca31161016b578063248a9ca3146101f15780632915d91f146102225780632f2ff15d1461023757600080fd5b806301ffc9a714610187578063181f5a77146101af575b600080fd5b61019a610195366004610e47565b6104c4565b60405190151581526020015b60405180910390f35b60408051808201909152601381527f466c757850726963654665656420312e322e310000000000000000000000000060208201525b6040516101a69190610eb9565b6102146101ff366004610f0a565b60009081526020819052604090206001015490565b6040519081526020016101a6565b610235610230366004610f23565b61055d565b005b610235610245366004610f6f565b61066d565b6102717f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101a6565b610235610291366004610f6f565b610697565b60015460009081526002602052604090205460170b610214565b610214600181565b61021460015481565b600154610214565b6101e461074f565b6001546000908152600260205260409020547801000000000000000000000000000000000000000000000000900467ffffffffffffffff16610214565b61019a61031c366004610f6f565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610365610360366004610fad565b6107e1565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a0016101a6565b610214600081565b6102146103b2366004610f0a565b6108d9565b6102146103c5366004610f0a565b610905565b6102147f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c9892681565b6102356103ff366004610f6f565b610954565b600154600090815260026020526040902054601781900b907801000000000000000000000000000000000000000000000000900467ffffffffffffffff166040805160179390930b835267ffffffffffffffff9091166020830152016101a6565b610365600154600081815260026020908152604091829020825180840190935254601781900b808452780100000000000000000000000000000000000000000000000090910467ffffffffffffffff1692909101829052919281908490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061055757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7f21702c8af46127c7fa207f89d0b0a8441bb32959a0ac7df790e9ab1a25c9892661058781610979565b60405180604001604052808460170b81526020018367ffffffffffffffff16815250600260006001600081546105bc90611008565b91829055508152602080820192909252604090810160002083519383015177ffffffffffffffffffffffffffffffffffffffffffffffff909416780100000000000000000000000000000000000000000000000067ffffffffffffffff958616021790556001548151601788900b81523393810193909352928516908201527f124437ac9b3b1f8b3cfa2b6d2e50165f5350d8a76cd2779fe63da1a051e599dc9060600160405180910390a2505050565b60008281526020819052604090206001015461068881610979565b6106928383610986565b505050565b73ffffffffffffffffffffffffffffffffffffffff81163314610741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61074b8282610a76565b5050565b60606003805461075e90611040565b80601f016020809104026020016040519081016040528092919081815260200182805461078a90611040565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b5050505050905090565b600080600080600063ffffffff8669ffffffffffffffffffff1611156040518060400160405280600f81526020017f4e6f20646174612070726573656e7400000000000000000000000000000000008152509061086b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107389190610eb9565b5050505069ffffffffffffffffffff8316600090815260026020908152604091829020825180840190935254601781900b808452780100000000000000000000000000000000000000000000000090910467ffffffffffffffff169290910182905293949092508291508490565b600063ffffffff8211156108ef57506000919050565b5060009081526002602052604090205460170b90565b600063ffffffff82111561091b57506000919050565b506000908152600260205260409020547801000000000000000000000000000000000000000000000000900467ffffffffffffffff1690565b60008281526020819052604090206001015461096f81610979565b6106928383610a76565b6109838133610b2d565b50565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661074b5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055610a183390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff161561074b5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1661074b57610b838173ffffffffffffffffffffffffffffffffffffffff166014610bfd565b610b8e836020610bfd565b604051602001610b9f929190611093565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a000000000000000000000000000000000000000000000000000000000825261073891600401610eb9565b60606000610c0c836002611114565b610c17906002611151565b67ffffffffffffffff811115610c2f57610c2f611169565b6040519080825280601f01601f191660200182016040528015610c59576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610c9057610c90611198565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610cf357610cf3611198565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000610d2f846002611114565b610d3a906001611151565b90505b6001811115610dd7577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110610d7b57610d7b611198565b1a60f81b828281518110610d9157610d91611198565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93610dd0816111c7565b9050610d3d565b508315610e40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610738565b9392505050565b600060208284031215610e5957600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610e4057600080fd5b60005b83811015610ea4578181015183820152602001610e8c565b83811115610eb3576000848401525b50505050565b6020815260008251806020840152610ed8816040850160208701610e89565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600060208284031215610f1c57600080fd5b5035919050565b60008060408385031215610f3657600080fd5b82358060170b8114610f4757600080fd5b9150602083013567ffffffffffffffff81168114610f6457600080fd5b809150509250929050565b60008060408385031215610f8257600080fd5b82359150602083013573ffffffffffffffffffffffffffffffffffffffff81168114610f6457600080fd5b600060208284031215610fbf57600080fd5b813569ffffffffffffffffffff81168114610e4057600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361103957611039610fd9565b5060010190565b600181811c9082168061105457607f821691505b60208210810361108d577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516110cb816017850160208801610e89565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351611108816028840160208801610e89565b01602801949350505050565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561114c5761114c610fd9565b500290565b6000821982111561116457611164610fd9565b500190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000816111d6576111d6610fd9565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019056fea164736f6c634300080e000aa164736f6c634300080e000a",
"linkReferences": {},
"deployedLinkReferences": {}
}