@bannynet/core-v6 0.0.1
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.
- package/README.md +53 -0
- package/SKILLS.md +94 -0
- package/deployments/banny-core-v5/arbitrum/Banny721TokenUriResolver.json +1809 -0
- package/deployments/banny-core-v5/arbitrum_sepolia/Banny721TokenUriResolver.json +1795 -0
- package/deployments/banny-core-v5/base/Banny721TokenUriResolver.json +1810 -0
- package/deployments/banny-core-v5/base_sepolia/Banny721TokenUriResolver.json +1796 -0
- package/deployments/banny-core-v5/ethereum/Banny721TokenUriResolver.json +1795 -0
- package/deployments/banny-core-v5/optimism/Banny721TokenUriResolver.json +1810 -0
- package/deployments/banny-core-v5/optimism_sepolia/Banny721TokenUriResolver.json +1796 -0
- package/deployments/banny-core-v5/sepolia/Banny721TokenUriResolver.json +1795 -0
- package/foundry.toml +22 -0
- package/package.json +53 -0
- package/remappings.txt +1 -0
- package/script/1.Fix.s.sol +290 -0
- package/script/Add.Denver.s.sol +75 -0
- package/script/AirdropOutfits.s.sol +2302 -0
- package/script/Deploy.s.sol +440 -0
- package/script/Drop1.s.sol +979 -0
- package/script/MigrationContractArbitrum.sol +494 -0
- package/script/MigrationContractArbitrum1.sol +170 -0
- package/script/MigrationContractArbitrum2.sol +204 -0
- package/script/MigrationContractArbitrum3.sol +174 -0
- package/script/MigrationContractArbitrum4.sol +478 -0
- package/script/MigrationContractBase1.sol +444 -0
- package/script/MigrationContractBase2.sol +175 -0
- package/script/MigrationContractBase3.sol +309 -0
- package/script/MigrationContractBase4.sol +350 -0
- package/script/MigrationContractBase5.sol +259 -0
- package/script/MigrationContractEthereum1.sol +468 -0
- package/script/MigrationContractEthereum2.sol +306 -0
- package/script/MigrationContractEthereum3.sol +349 -0
- package/script/MigrationContractEthereum4.sol +352 -0
- package/script/MigrationContractEthereum5.sol +354 -0
- package/script/MigrationContractEthereum6.sol +270 -0
- package/script/MigrationContractEthereum7.sol +439 -0
- package/script/MigrationContractEthereum8.sol +385 -0
- package/script/MigrationContractOptimism.sol +196 -0
- package/script/helpers/BannyverseDeploymentLib.sol +73 -0
- package/script/helpers/MigrationHelper.sol +155 -0
- package/script/outfit_drop/generate-migration.js +3441 -0
- package/script/outfit_drop/raw.json +43276 -0
- package/slither-ci.config.json +10 -0
- package/sphinx.lock +521 -0
- package/src/Banny721TokenUriResolver.sol +1288 -0
- package/src/interfaces/IBanny721TokenUriResolver.sol +137 -0
- package/test/Banny721TokenUriResolver.t.sol +669 -0
- package/test/BannyAttacks.t.sol +322 -0
- package/test/DecorateFlow.t.sol +1056 -0
|
@@ -0,0 +1,1810 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": "sphinx-sol-ct-artifact-1",
|
|
3
|
+
"merkleRoot": "0x291186de1f72bb2cc104c23dccdfa5d4a8a0b9f4cfb97b40f87ec3ef829ea948",
|
|
4
|
+
"address": "0x2de178adde33cf27d391e9506c7b6f8b2ddc5eff",
|
|
5
|
+
"sourceName": "src/Banny721TokenUriResolver.sol",
|
|
6
|
+
"contractName": "Banny721TokenUriResolver",
|
|
7
|
+
"chainId": "0xa",
|
|
8
|
+
"abi": [
|
|
9
|
+
{
|
|
10
|
+
"inputs": [
|
|
11
|
+
{
|
|
12
|
+
"internalType": "string",
|
|
13
|
+
"name": "bannyBody",
|
|
14
|
+
"type": "string"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"internalType": "string",
|
|
18
|
+
"name": "defaultNecklace",
|
|
19
|
+
"type": "string"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"internalType": "string",
|
|
23
|
+
"name": "defaultMouth",
|
|
24
|
+
"type": "string"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"internalType": "string",
|
|
28
|
+
"name": "defaultStandardEyes",
|
|
29
|
+
"type": "string"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"internalType": "string",
|
|
33
|
+
"name": "defaultAlienEyes",
|
|
34
|
+
"type": "string"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"internalType": "address",
|
|
38
|
+
"name": "owner",
|
|
39
|
+
"type": "address"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"internalType": "address",
|
|
43
|
+
"name": "trustedForwarder",
|
|
44
|
+
"type": "address"
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"stateMutability": "nonpayable",
|
|
48
|
+
"type": "constructor"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"inputs": [],
|
|
52
|
+
"name": "BANNY_BODY",
|
|
53
|
+
"outputs": [
|
|
54
|
+
{
|
|
55
|
+
"internalType": "string",
|
|
56
|
+
"name": "",
|
|
57
|
+
"type": "string"
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"stateMutability": "view",
|
|
61
|
+
"type": "function"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"inputs": [],
|
|
65
|
+
"name": "DEFAULT_ALIEN_EYES",
|
|
66
|
+
"outputs": [
|
|
67
|
+
{
|
|
68
|
+
"internalType": "string",
|
|
69
|
+
"name": "",
|
|
70
|
+
"type": "string"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"stateMutability": "view",
|
|
74
|
+
"type": "function"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"inputs": [],
|
|
78
|
+
"name": "DEFAULT_MOUTH",
|
|
79
|
+
"outputs": [
|
|
80
|
+
{
|
|
81
|
+
"internalType": "string",
|
|
82
|
+
"name": "",
|
|
83
|
+
"type": "string"
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
"stateMutability": "view",
|
|
87
|
+
"type": "function"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"inputs": [],
|
|
91
|
+
"name": "DEFAULT_NECKLACE",
|
|
92
|
+
"outputs": [
|
|
93
|
+
{
|
|
94
|
+
"internalType": "string",
|
|
95
|
+
"name": "",
|
|
96
|
+
"type": "string"
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
"stateMutability": "view",
|
|
100
|
+
"type": "function"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"inputs": [],
|
|
104
|
+
"name": "DEFAULT_STANDARD_EYES",
|
|
105
|
+
"outputs": [
|
|
106
|
+
{
|
|
107
|
+
"internalType": "string",
|
|
108
|
+
"name": "",
|
|
109
|
+
"type": "string"
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"stateMutability": "view",
|
|
113
|
+
"type": "function"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"inputs": [
|
|
117
|
+
{
|
|
118
|
+
"internalType": "address",
|
|
119
|
+
"name": "hook",
|
|
120
|
+
"type": "address"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"internalType": "uint256",
|
|
124
|
+
"name": "bannyBodyId",
|
|
125
|
+
"type": "uint256"
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"name": "assetIdsOf",
|
|
129
|
+
"outputs": [
|
|
130
|
+
{
|
|
131
|
+
"internalType": "uint256",
|
|
132
|
+
"name": "backgroundId",
|
|
133
|
+
"type": "uint256"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"internalType": "uint256[]",
|
|
137
|
+
"name": "outfitIds",
|
|
138
|
+
"type": "uint256[]"
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"stateMutability": "view",
|
|
142
|
+
"type": "function"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"inputs": [
|
|
146
|
+
{
|
|
147
|
+
"internalType": "address",
|
|
148
|
+
"name": "hook",
|
|
149
|
+
"type": "address"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"internalType": "uint256",
|
|
153
|
+
"name": "bannyBodyId",
|
|
154
|
+
"type": "uint256"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"internalType": "uint256",
|
|
158
|
+
"name": "backgroundId",
|
|
159
|
+
"type": "uint256"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"internalType": "uint256[]",
|
|
163
|
+
"name": "outfitIds",
|
|
164
|
+
"type": "uint256[]"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"name": "decorateBannyWith",
|
|
168
|
+
"outputs": [],
|
|
169
|
+
"stateMutability": "nonpayable",
|
|
170
|
+
"type": "function"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"inputs": [
|
|
174
|
+
{
|
|
175
|
+
"internalType": "address",
|
|
176
|
+
"name": "forwarder",
|
|
177
|
+
"type": "address"
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
"name": "isTrustedForwarder",
|
|
181
|
+
"outputs": [
|
|
182
|
+
{
|
|
183
|
+
"internalType": "bool",
|
|
184
|
+
"name": "",
|
|
185
|
+
"type": "bool"
|
|
186
|
+
}
|
|
187
|
+
],
|
|
188
|
+
"stateMutability": "view",
|
|
189
|
+
"type": "function"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"inputs": [
|
|
193
|
+
{
|
|
194
|
+
"internalType": "address",
|
|
195
|
+
"name": "hook",
|
|
196
|
+
"type": "address"
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"internalType": "uint256",
|
|
200
|
+
"name": "bannyBodyId",
|
|
201
|
+
"type": "uint256"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"name": "lockOutfitChangesFor",
|
|
205
|
+
"outputs": [],
|
|
206
|
+
"stateMutability": "nonpayable",
|
|
207
|
+
"type": "function"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"inputs": [
|
|
211
|
+
{
|
|
212
|
+
"internalType": "address",
|
|
213
|
+
"name": "hook",
|
|
214
|
+
"type": "address"
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"internalType": "uint256",
|
|
218
|
+
"name": "tokenId",
|
|
219
|
+
"type": "uint256"
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"name": "namesOf",
|
|
223
|
+
"outputs": [
|
|
224
|
+
{
|
|
225
|
+
"internalType": "string",
|
|
226
|
+
"name": "",
|
|
227
|
+
"type": "string"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"internalType": "string",
|
|
231
|
+
"name": "",
|
|
232
|
+
"type": "string"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"internalType": "string",
|
|
236
|
+
"name": "",
|
|
237
|
+
"type": "string"
|
|
238
|
+
}
|
|
239
|
+
],
|
|
240
|
+
"stateMutability": "view",
|
|
241
|
+
"type": "function"
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
"inputs": [
|
|
245
|
+
{
|
|
246
|
+
"internalType": "address",
|
|
247
|
+
"name": "operator",
|
|
248
|
+
"type": "address"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"internalType": "address",
|
|
252
|
+
"name": "from",
|
|
253
|
+
"type": "address"
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"internalType": "uint256",
|
|
257
|
+
"name": "tokenId",
|
|
258
|
+
"type": "uint256"
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"internalType": "bytes",
|
|
262
|
+
"name": "data",
|
|
263
|
+
"type": "bytes"
|
|
264
|
+
}
|
|
265
|
+
],
|
|
266
|
+
"name": "onERC721Received",
|
|
267
|
+
"outputs": [
|
|
268
|
+
{
|
|
269
|
+
"internalType": "bytes4",
|
|
270
|
+
"name": "",
|
|
271
|
+
"type": "bytes4"
|
|
272
|
+
}
|
|
273
|
+
],
|
|
274
|
+
"stateMutability": "view",
|
|
275
|
+
"type": "function"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"inputs": [
|
|
279
|
+
{
|
|
280
|
+
"internalType": "address",
|
|
281
|
+
"name": "hook",
|
|
282
|
+
"type": "address"
|
|
283
|
+
},
|
|
284
|
+
{
|
|
285
|
+
"internalType": "uint256",
|
|
286
|
+
"name": "upc",
|
|
287
|
+
"type": "uint256"
|
|
288
|
+
}
|
|
289
|
+
],
|
|
290
|
+
"name": "outfitLockedUntil",
|
|
291
|
+
"outputs": [
|
|
292
|
+
{
|
|
293
|
+
"internalType": "uint256",
|
|
294
|
+
"name": "",
|
|
295
|
+
"type": "uint256"
|
|
296
|
+
}
|
|
297
|
+
],
|
|
298
|
+
"stateMutability": "view",
|
|
299
|
+
"type": "function"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"inputs": [],
|
|
303
|
+
"name": "owner",
|
|
304
|
+
"outputs": [
|
|
305
|
+
{
|
|
306
|
+
"internalType": "address",
|
|
307
|
+
"name": "",
|
|
308
|
+
"type": "address"
|
|
309
|
+
}
|
|
310
|
+
],
|
|
311
|
+
"stateMutability": "view",
|
|
312
|
+
"type": "function"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"inputs": [],
|
|
316
|
+
"name": "renounceOwnership",
|
|
317
|
+
"outputs": [],
|
|
318
|
+
"stateMutability": "nonpayable",
|
|
319
|
+
"type": "function"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"inputs": [
|
|
323
|
+
{
|
|
324
|
+
"internalType": "uint256[]",
|
|
325
|
+
"name": "upcs",
|
|
326
|
+
"type": "uint256[]"
|
|
327
|
+
},
|
|
328
|
+
{
|
|
329
|
+
"internalType": "string[]",
|
|
330
|
+
"name": "names",
|
|
331
|
+
"type": "string[]"
|
|
332
|
+
}
|
|
333
|
+
],
|
|
334
|
+
"name": "setProductNames",
|
|
335
|
+
"outputs": [],
|
|
336
|
+
"stateMutability": "nonpayable",
|
|
337
|
+
"type": "function"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"inputs": [
|
|
341
|
+
{
|
|
342
|
+
"internalType": "string",
|
|
343
|
+
"name": "baseUri",
|
|
344
|
+
"type": "string"
|
|
345
|
+
}
|
|
346
|
+
],
|
|
347
|
+
"name": "setSvgBaseUri",
|
|
348
|
+
"outputs": [],
|
|
349
|
+
"stateMutability": "nonpayable",
|
|
350
|
+
"type": "function"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"inputs": [
|
|
354
|
+
{
|
|
355
|
+
"internalType": "uint256[]",
|
|
356
|
+
"name": "upcs",
|
|
357
|
+
"type": "uint256[]"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"internalType": "string[]",
|
|
361
|
+
"name": "svgContents",
|
|
362
|
+
"type": "string[]"
|
|
363
|
+
}
|
|
364
|
+
],
|
|
365
|
+
"name": "setSvgContentsOf",
|
|
366
|
+
"outputs": [],
|
|
367
|
+
"stateMutability": "nonpayable",
|
|
368
|
+
"type": "function"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"inputs": [
|
|
372
|
+
{
|
|
373
|
+
"internalType": "uint256[]",
|
|
374
|
+
"name": "upcs",
|
|
375
|
+
"type": "uint256[]"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"internalType": "bytes32[]",
|
|
379
|
+
"name": "svgHashs",
|
|
380
|
+
"type": "bytes32[]"
|
|
381
|
+
}
|
|
382
|
+
],
|
|
383
|
+
"name": "setSvgHashsOf",
|
|
384
|
+
"outputs": [],
|
|
385
|
+
"stateMutability": "nonpayable",
|
|
386
|
+
"type": "function"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"inputs": [],
|
|
390
|
+
"name": "svgBaseUri",
|
|
391
|
+
"outputs": [
|
|
392
|
+
{
|
|
393
|
+
"internalType": "string",
|
|
394
|
+
"name": "",
|
|
395
|
+
"type": "string"
|
|
396
|
+
}
|
|
397
|
+
],
|
|
398
|
+
"stateMutability": "view",
|
|
399
|
+
"type": "function"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"inputs": [
|
|
403
|
+
{
|
|
404
|
+
"internalType": "uint256",
|
|
405
|
+
"name": "upc",
|
|
406
|
+
"type": "uint256"
|
|
407
|
+
}
|
|
408
|
+
],
|
|
409
|
+
"name": "svgHashOf",
|
|
410
|
+
"outputs": [
|
|
411
|
+
{
|
|
412
|
+
"internalType": "bytes32",
|
|
413
|
+
"name": "",
|
|
414
|
+
"type": "bytes32"
|
|
415
|
+
}
|
|
416
|
+
],
|
|
417
|
+
"stateMutability": "view",
|
|
418
|
+
"type": "function"
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
"inputs": [
|
|
422
|
+
{
|
|
423
|
+
"internalType": "address",
|
|
424
|
+
"name": "hook",
|
|
425
|
+
"type": "address"
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"internalType": "uint256",
|
|
429
|
+
"name": "tokenId",
|
|
430
|
+
"type": "uint256"
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
"internalType": "bool",
|
|
434
|
+
"name": "shouldDressBannyBody",
|
|
435
|
+
"type": "bool"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"internalType": "bool",
|
|
439
|
+
"name": "shouldIncludeBackgroundOnBannyBody",
|
|
440
|
+
"type": "bool"
|
|
441
|
+
}
|
|
442
|
+
],
|
|
443
|
+
"name": "svgOf",
|
|
444
|
+
"outputs": [
|
|
445
|
+
{
|
|
446
|
+
"internalType": "string",
|
|
447
|
+
"name": "",
|
|
448
|
+
"type": "string"
|
|
449
|
+
}
|
|
450
|
+
],
|
|
451
|
+
"stateMutability": "view",
|
|
452
|
+
"type": "function"
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
"inputs": [
|
|
456
|
+
{
|
|
457
|
+
"internalType": "address",
|
|
458
|
+
"name": "hook",
|
|
459
|
+
"type": "address"
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"internalType": "uint256",
|
|
463
|
+
"name": "tokenId",
|
|
464
|
+
"type": "uint256"
|
|
465
|
+
}
|
|
466
|
+
],
|
|
467
|
+
"name": "tokenUriOf",
|
|
468
|
+
"outputs": [
|
|
469
|
+
{
|
|
470
|
+
"internalType": "string",
|
|
471
|
+
"name": "",
|
|
472
|
+
"type": "string"
|
|
473
|
+
}
|
|
474
|
+
],
|
|
475
|
+
"stateMutability": "view",
|
|
476
|
+
"type": "function"
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
"inputs": [
|
|
480
|
+
{
|
|
481
|
+
"internalType": "address",
|
|
482
|
+
"name": "newOwner",
|
|
483
|
+
"type": "address"
|
|
484
|
+
}
|
|
485
|
+
],
|
|
486
|
+
"name": "transferOwnership",
|
|
487
|
+
"outputs": [],
|
|
488
|
+
"stateMutability": "nonpayable",
|
|
489
|
+
"type": "function"
|
|
490
|
+
},
|
|
491
|
+
{
|
|
492
|
+
"inputs": [],
|
|
493
|
+
"name": "trustedForwarder",
|
|
494
|
+
"outputs": [
|
|
495
|
+
{
|
|
496
|
+
"internalType": "address",
|
|
497
|
+
"name": "",
|
|
498
|
+
"type": "address"
|
|
499
|
+
}
|
|
500
|
+
],
|
|
501
|
+
"stateMutability": "view",
|
|
502
|
+
"type": "function"
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"inputs": [
|
|
506
|
+
{
|
|
507
|
+
"internalType": "address",
|
|
508
|
+
"name": "hook",
|
|
509
|
+
"type": "address"
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"internalType": "uint256",
|
|
513
|
+
"name": "backgroundId",
|
|
514
|
+
"type": "uint256"
|
|
515
|
+
}
|
|
516
|
+
],
|
|
517
|
+
"name": "userOf",
|
|
518
|
+
"outputs": [
|
|
519
|
+
{
|
|
520
|
+
"internalType": "uint256",
|
|
521
|
+
"name": "",
|
|
522
|
+
"type": "uint256"
|
|
523
|
+
}
|
|
524
|
+
],
|
|
525
|
+
"stateMutability": "view",
|
|
526
|
+
"type": "function"
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
"inputs": [
|
|
530
|
+
{
|
|
531
|
+
"internalType": "address",
|
|
532
|
+
"name": "hook",
|
|
533
|
+
"type": "address"
|
|
534
|
+
},
|
|
535
|
+
{
|
|
536
|
+
"internalType": "uint256",
|
|
537
|
+
"name": "outfitId",
|
|
538
|
+
"type": "uint256"
|
|
539
|
+
}
|
|
540
|
+
],
|
|
541
|
+
"name": "wearerOf",
|
|
542
|
+
"outputs": [
|
|
543
|
+
{
|
|
544
|
+
"internalType": "uint256",
|
|
545
|
+
"name": "",
|
|
546
|
+
"type": "uint256"
|
|
547
|
+
}
|
|
548
|
+
],
|
|
549
|
+
"stateMutability": "view",
|
|
550
|
+
"type": "function"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"anonymous": false,
|
|
554
|
+
"inputs": [
|
|
555
|
+
{
|
|
556
|
+
"indexed": true,
|
|
557
|
+
"internalType": "address",
|
|
558
|
+
"name": "hook",
|
|
559
|
+
"type": "address"
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"indexed": true,
|
|
563
|
+
"internalType": "uint256",
|
|
564
|
+
"name": "bannyBodyId",
|
|
565
|
+
"type": "uint256"
|
|
566
|
+
},
|
|
567
|
+
{
|
|
568
|
+
"indexed": true,
|
|
569
|
+
"internalType": "uint256",
|
|
570
|
+
"name": "backgroundId",
|
|
571
|
+
"type": "uint256"
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
"indexed": false,
|
|
575
|
+
"internalType": "uint256[]",
|
|
576
|
+
"name": "outfitIds",
|
|
577
|
+
"type": "uint256[]"
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"indexed": false,
|
|
581
|
+
"internalType": "address",
|
|
582
|
+
"name": "caller",
|
|
583
|
+
"type": "address"
|
|
584
|
+
}
|
|
585
|
+
],
|
|
586
|
+
"name": "DecorateBanny",
|
|
587
|
+
"type": "event"
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
"anonymous": false,
|
|
591
|
+
"inputs": [
|
|
592
|
+
{
|
|
593
|
+
"indexed": true,
|
|
594
|
+
"internalType": "address",
|
|
595
|
+
"name": "previousOwner",
|
|
596
|
+
"type": "address"
|
|
597
|
+
},
|
|
598
|
+
{
|
|
599
|
+
"indexed": true,
|
|
600
|
+
"internalType": "address",
|
|
601
|
+
"name": "newOwner",
|
|
602
|
+
"type": "address"
|
|
603
|
+
}
|
|
604
|
+
],
|
|
605
|
+
"name": "OwnershipTransferred",
|
|
606
|
+
"type": "event"
|
|
607
|
+
},
|
|
608
|
+
{
|
|
609
|
+
"anonymous": false,
|
|
610
|
+
"inputs": [
|
|
611
|
+
{
|
|
612
|
+
"indexed": true,
|
|
613
|
+
"internalType": "uint256",
|
|
614
|
+
"name": "upc",
|
|
615
|
+
"type": "uint256"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"indexed": false,
|
|
619
|
+
"internalType": "string",
|
|
620
|
+
"name": "name",
|
|
621
|
+
"type": "string"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"indexed": false,
|
|
625
|
+
"internalType": "address",
|
|
626
|
+
"name": "caller",
|
|
627
|
+
"type": "address"
|
|
628
|
+
}
|
|
629
|
+
],
|
|
630
|
+
"name": "SetProductName",
|
|
631
|
+
"type": "event"
|
|
632
|
+
},
|
|
633
|
+
{
|
|
634
|
+
"anonymous": false,
|
|
635
|
+
"inputs": [
|
|
636
|
+
{
|
|
637
|
+
"indexed": false,
|
|
638
|
+
"internalType": "string",
|
|
639
|
+
"name": "baseUri",
|
|
640
|
+
"type": "string"
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"indexed": false,
|
|
644
|
+
"internalType": "address",
|
|
645
|
+
"name": "caller",
|
|
646
|
+
"type": "address"
|
|
647
|
+
}
|
|
648
|
+
],
|
|
649
|
+
"name": "SetSvgBaseUri",
|
|
650
|
+
"type": "event"
|
|
651
|
+
},
|
|
652
|
+
{
|
|
653
|
+
"anonymous": false,
|
|
654
|
+
"inputs": [
|
|
655
|
+
{
|
|
656
|
+
"indexed": true,
|
|
657
|
+
"internalType": "uint256",
|
|
658
|
+
"name": "upc",
|
|
659
|
+
"type": "uint256"
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
"indexed": false,
|
|
663
|
+
"internalType": "string",
|
|
664
|
+
"name": "svgContent",
|
|
665
|
+
"type": "string"
|
|
666
|
+
},
|
|
667
|
+
{
|
|
668
|
+
"indexed": false,
|
|
669
|
+
"internalType": "address",
|
|
670
|
+
"name": "caller",
|
|
671
|
+
"type": "address"
|
|
672
|
+
}
|
|
673
|
+
],
|
|
674
|
+
"name": "SetSvgContent",
|
|
675
|
+
"type": "event"
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"anonymous": false,
|
|
679
|
+
"inputs": [
|
|
680
|
+
{
|
|
681
|
+
"indexed": true,
|
|
682
|
+
"internalType": "uint256",
|
|
683
|
+
"name": "upc",
|
|
684
|
+
"type": "uint256"
|
|
685
|
+
},
|
|
686
|
+
{
|
|
687
|
+
"indexed": true,
|
|
688
|
+
"internalType": "bytes32",
|
|
689
|
+
"name": "svgHash",
|
|
690
|
+
"type": "bytes32"
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"indexed": false,
|
|
694
|
+
"internalType": "address",
|
|
695
|
+
"name": "caller",
|
|
696
|
+
"type": "address"
|
|
697
|
+
}
|
|
698
|
+
],
|
|
699
|
+
"name": "SetSvgHash",
|
|
700
|
+
"type": "event"
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
"inputs": [],
|
|
704
|
+
"name": "Banny721TokenUriResolver_CantAccelerateTheLock",
|
|
705
|
+
"type": "error"
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"inputs": [],
|
|
709
|
+
"name": "Banny721TokenUriResolver_ContentsAlreadyStored",
|
|
710
|
+
"type": "error"
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
"inputs": [],
|
|
714
|
+
"name": "Banny721TokenUriResolver_ContentsMismatch",
|
|
715
|
+
"type": "error"
|
|
716
|
+
},
|
|
717
|
+
{
|
|
718
|
+
"inputs": [],
|
|
719
|
+
"name": "Banny721TokenUriResolver_HashAlreadyStored",
|
|
720
|
+
"type": "error"
|
|
721
|
+
},
|
|
722
|
+
{
|
|
723
|
+
"inputs": [],
|
|
724
|
+
"name": "Banny721TokenUriResolver_HashNotFound",
|
|
725
|
+
"type": "error"
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
"inputs": [],
|
|
729
|
+
"name": "Banny721TokenUriResolver_HeadAlreadyAdded",
|
|
730
|
+
"type": "error"
|
|
731
|
+
},
|
|
732
|
+
{
|
|
733
|
+
"inputs": [],
|
|
734
|
+
"name": "Banny721TokenUriResolver_OutfitChangesLocked",
|
|
735
|
+
"type": "error"
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
"inputs": [],
|
|
739
|
+
"name": "Banny721TokenUriResolver_SuitAlreadyAdded",
|
|
740
|
+
"type": "error"
|
|
741
|
+
},
|
|
742
|
+
{
|
|
743
|
+
"inputs": [],
|
|
744
|
+
"name": "Banny721TokenUriResolver_UnauthorizedBackground",
|
|
745
|
+
"type": "error"
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
"inputs": [],
|
|
749
|
+
"name": "Banny721TokenUriResolver_UnauthorizedBannyBody",
|
|
750
|
+
"type": "error"
|
|
751
|
+
},
|
|
752
|
+
{
|
|
753
|
+
"inputs": [],
|
|
754
|
+
"name": "Banny721TokenUriResolver_UnauthorizedOutfit",
|
|
755
|
+
"type": "error"
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"inputs": [],
|
|
759
|
+
"name": "Banny721TokenUriResolver_UnauthorizedTransfer",
|
|
760
|
+
"type": "error"
|
|
761
|
+
},
|
|
762
|
+
{
|
|
763
|
+
"inputs": [],
|
|
764
|
+
"name": "Banny721TokenUriResolver_UnorderedCategories",
|
|
765
|
+
"type": "error"
|
|
766
|
+
},
|
|
767
|
+
{
|
|
768
|
+
"inputs": [],
|
|
769
|
+
"name": "Banny721TokenUriResolver_UnrecognizedBackground",
|
|
770
|
+
"type": "error"
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
"inputs": [],
|
|
774
|
+
"name": "Banny721TokenUriResolver_UnrecognizedCategory",
|
|
775
|
+
"type": "error"
|
|
776
|
+
},
|
|
777
|
+
{
|
|
778
|
+
"inputs": [],
|
|
779
|
+
"name": "Banny721TokenUriResolver_UnrecognizedProduct",
|
|
780
|
+
"type": "error"
|
|
781
|
+
},
|
|
782
|
+
{
|
|
783
|
+
"inputs": [
|
|
784
|
+
{
|
|
785
|
+
"internalType": "address",
|
|
786
|
+
"name": "owner",
|
|
787
|
+
"type": "address"
|
|
788
|
+
}
|
|
789
|
+
],
|
|
790
|
+
"name": "OwnableInvalidOwner",
|
|
791
|
+
"type": "error"
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
"inputs": [
|
|
795
|
+
{
|
|
796
|
+
"internalType": "address",
|
|
797
|
+
"name": "account",
|
|
798
|
+
"type": "address"
|
|
799
|
+
}
|
|
800
|
+
],
|
|
801
|
+
"name": "OwnableUnauthorizedAccount",
|
|
802
|
+
"type": "error"
|
|
803
|
+
},
|
|
804
|
+
{
|
|
805
|
+
"inputs": [],
|
|
806
|
+
"name": "ReentrancyGuardReentrantCall",
|
|
807
|
+
"type": "error"
|
|
808
|
+
}
|
|
809
|
+
],
|
|
810
|
+
"args": [],
|
|
811
|
+
"solcInputHash": "c1db2b8aac13546e",
|
|
812
|
+
"receipt": {
|
|
813
|
+
"type": "0x2",
|
|
814
|
+
"status": "0x1",
|
|
815
|
+
"cumulativeGasUsed": "0xabf413",
|
|
816
|
+
"logs": [
|
|
817
|
+
{
|
|
818
|
+
"address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
|
|
819
|
+
"topics": [
|
|
820
|
+
"0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
|
|
821
|
+
"0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
|
|
822
|
+
"0x000000000000000000000000656ff6398c45adca3fe6e5f8fd53aebd4f318017",
|
|
823
|
+
"0xc912a29a511bfbd2eebf2e4082030f4fdbb10b9adb3ef30787816707c1113dd8"
|
|
824
|
+
],
|
|
825
|
+
"data": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
826
|
+
"blockHash": "0x8a324af0aa1e7a0e065519d7f43c50599bd8be2a832410e6ffcdc55d0437d3fe",
|
|
827
|
+
"blockNumber": "0x8a1bc81",
|
|
828
|
+
"blockTimestamp": "0x693752bb",
|
|
829
|
+
"transactionHash": "0xda0108ddc6f9366d49a541c380fbb01cdee25a878a92ad4c7325deaab3409564",
|
|
830
|
+
"transactionIndex": "0x5",
|
|
831
|
+
"logIndex": "0x1f",
|
|
832
|
+
"removed": false
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"address": "0x9e2a10ab3bd22831f19d02c648bc2cb49b127450",
|
|
836
|
+
"topics": [
|
|
837
|
+
"0xb648d3644f584ed1c2232d53c46d87e693586486ad0d1175f8656013110b714e"
|
|
838
|
+
],
|
|
839
|
+
"data": "0x000000000000000000000000656ff6398c45adca3fe6e5f8fd53aebd4f3180170000000000000000000000004e59b44847b379578588920ca78fbf26c0b4956c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007c025f42414e5f5245534f4c5645525f5f000000000000000000000000000000000060a060405234620007685762006382803803806200001d816200076c565b928339810160e082820312620007685781516001600160401b03908181116200076857826200004e91850162000792565b602093848101518381116200076857846200006b91830162000792565b9360408201518481116200076857816200008791840162000792565b6060830151858111620007685782620000a291850162000792565b916080840151908682116200076857620000be91850162000792565b92620000db60c0620000d360a0840162000802565b920162000802565b906001600160a01b0390811690811562000750575f548260018060a01b03198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36080526001958680558451868111620003f657600954958887811c9716801562000745575b8a881014620003d7578190601f97888111620006f1575b508a9088831160011462000689575f926200067d575b50505f19600383901b1c191690881b176009555b805190868211620003f657600754908882811c9216801562000672575b8a831014620003d75781878493116200061e575b508990878311600114620005b8575f92620005ac575b50505f19600383901b1c191690871b176007555b805190858211620003f657600654908782811c92168015620005a1575b89831014620003d75781868493116200054d575b508890868311600114620004e7575f92620004db575b50505f19600383901b1c191690861b176006555b805190848211620003f657600854908682811c92168015620004d0575b88831014620003d75781858493116200047c575b50879085831160011462000416575f926200040a575b50505f19600383901b1c191690851b176008555b8051928311620003f65760059485548581811c91168015620003eb575b82821014620003d75783811162000391575b50809284116001146200032a57509282939183925f946200031e575b50501b915f199060031b1c19161790555b604051615b6a9081620008188239608051818181610ad601528181610cae015261590a0152f35b015192505f80620002e6565b919083601f198116875f52845f20945f905b888383106200037657505050106200035d575b505050811b019055620002f7565b01515f1960f88460031b161c191690555f80806200034f565b8587015188559096019594850194879350908101906200033c565b865f52815f2084808701891c820192848810620003cd575b01881c019086905b828110620003c1575050620002ca565b5f8155018690620003b1565b92508192620003a9565b634e487b7160e01b5f52602260045260245ffd5b90607f1690620002b8565b634e487b7160e01b5f52604160045260245ffd5b015190505f8062000287565b90879350601f1983169160085f52895f20925f5b8b8282106200046557505084116200044c575b505050811b016008556200029b565b01515f1960f88460031b161c191690555f80806200043d565b8385015186558b979095019493840193016200042a565b90915060085f52875f208580850160051c8201928a8610620004c6575b918991869594930160051c01915b828110620004b757505062000271565b5f8155859450899101620004a7565b9250819262000499565b91607f16916200025d565b015190505f806200022c565b90889350601f1983169160065f528a5f20925f5b8c8282106200053657505084116200051d575b505050811b0160065562000240565b01515f1960f88460031b161c191690555f80806200050e565b8385015186558c97909501949384019301620004fb565b90915060065f52885f208680850160051c8201928b861062000597575b918a91869594930160051c01915b8281106200058857505062000216565b5f81558594508a910162000578565b925081926200056a565b91607f169162000202565b015190505f80620001d1565b90899350601f1983169160075f528b5f20925f5b8d828210620006075750508411620005ee575b505050811b01600755620001e5565b01515f1960f88460031b161c191690555f8080620005df565b8385015186558d97909501949384019301620005cc565b90915060075f52895f208780850160051c8201928c861062000668575b918b91869594930160051c01915b82811062000659575050620001bb565b5f81558594508b910162000649565b925081926200063b565b91607f1691620001a7565b015190505f8062000176565b908a9350601f1983169160095f528c5f20928d5f905b828210620006d95750508411620006c0575b505050811b016009556200018a565b01515f1960f88460031b161c191690555f8080620006b1565b8385015186558e979095019493840193018e6200069f565b90915060095f528a5f208880850160051c8201928d86106200073b575b918c91869594930160051c01915b8281106200072c57505062000160565b5f81558594508c91016200071c565b925081926200070e565b96607f169662000149565b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b03811183821017620003f657604052565b919080601f84011215620007685782516001600160401b038111620003f657602090620007c8601f8201601f191683016200076c565b9281845282828701011162000768575f5b818110620007ee5750825f9394955001015290565b8581018301518482018401528201620007d9565b51906001600160a01b0382168203620007685756fe60806040526004361015610011575f80fd5b5f3560e01c806257bfdd146101b357806305b2ae1b146101ae578063150b7a02146101a9578063187be308146101a457806318ab522d1461019f5780632150a1381461019a5780632580833d1461019557806331a290ac14610190578063572b6c051461018b57806359a81d91146101865780635e703e71146101815780636aff31dd1461017c578063715018a61461017757806379a2696e146101725780637da0a8771461016d578063875e4bea146101685780638da5cb5b14610163578063a0122c091461015e578063a22d0dd514610159578063b03a3eab14610154578063b1fa9e7b1461014f578063b3fa27831461014a578063c06e7bc714610145578063c122804614610140578063d756227e1461013b5763f2fde38b14610136575f80fd5b611371565b6112a1565b611207565b6110b9565b611014565b610fe9565b610f45565b610f00565b610e64565b610e3f565b610cd2565b610c8f565b610c5c565b610bf8565b610bce565b610ba2565b610afd565b610aa7565b61093f565b6107db565b610736565b6106bf565b610629565b6105ab565b610490565b610459565b90600182811c921680156101e6575b60208310146101d257565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101c7565b634e487b7160e01b5f52604160045260245ffd5b6101e0810190811067ffffffffffffffff82111761022157604052565b6101f0565b6020810190811067ffffffffffffffff82111761022157604052565b6040810190811067ffffffffffffffff82111761022157604052565b6060810190811067ffffffffffffffff82111761022157604052565b90601f8019910116810190811067ffffffffffffffff82111761022157604052565b604051905f82600354916102af836101b8565b8083529260209060019081811690811561033b57506001146102dc575b50506102da9250038361027a565b565b91509260035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b935f925b82841061032357506102da9450505081016020015f806102cc565b85548885018301529485019487945092810192610308565b915050602092506102da94915060ff191682840152151560051b8201015f806102cc565b9060405191825f8254610371816101b8565b908184526020946001916001811690815f146103dd575060011461039f575b5050506102da9250038361027a565b5f90815285812095935091905b8183106103c55750506102da93508201015f8080610390565b855488840185015294850194879450918301916103ac565b925050506102da94925060ff191682840152151560051b8201015f8080610390565b5f5b8381106104105750505f910152565b8181015183820152602001610401565b90602091610439815180928185528580860191016103ff565b601f01601f1916010190565b906020610456928181520190610420565b90565b3461048c575f36600319011261048c5761048861047461029c565b604051918291602083526020830190610420565b0390f35b5f80fd5b3461048c575f36600319011261048c576040515f6008546104b0816101b8565b8084529060209060019081811690811561054257506001146104e9575b610488856104dd8187038261027a565b60405191829182610445565b60085f90815293507ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b83851061052f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610513565b869550610488969350602092506104dd94915060ff191682840152151560051b82010192936104cd565b6001600160a01b0381160361048c57565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020838186019501011161048c57565b3461048c57608036600319011261048c576004356105c88161056c565b6105d360243561056c565b60643567ffffffffffffffff811161048c576105f390369060040161057d565b50506001600160a01b033091160361061757604051630a85bd0160e11b8152602090f35b604051633b2c6aa160e21b8152600490fd5b3461048c57604036600319011261048c576004356106468161056c565b6001600160a01b036024359161065c8382612f6d565b16805f52600260205260405f20825f5260205260405f20549162093a804201928342116106ba5783106106a8576106a5915f52600260205260405f20905f5260205260405f2090565b55005b604051631057c89560e21b8152600490fd5b611405565b3461048c57604036600319011261048c576106e86004356106df8161056c565b60243590611518565b90604051918291604083019083526020906040602085015282518091526020606085019301915f5b82811061071f57505050500390f35b835185528695509381019392810192600101610710565b3461048c575f36600319011261048c576040515f600554610756816101b8565b80845290602090600190818116908115610542575060011461078257610488856104dd8187038261027a565b60055f90815293507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b8385106107c8575050505081016020016104dd826104886104cd565b80548686018401529382019381016107ac565b3461048c575f36600319011261048c576040515f6006546107fb816101b8565b80845290602090600190818116908115610542575060011461082757610488856104dd8187038261027a565b60065f90815293507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b83851061086d575050505081016020016104dd826104886104cd565b8054868601840152938201938101610851565b604051906102da82610204565b67ffffffffffffffff81116102215760051b60200190565b92916108b08261088d565b916108be604051938461027a565b829481845260208094019160051b810192831161048c57905b8282106108e45750505050565b813581529083019083016108d7565b9080601f8301121561048c57816020610456933591016108a5565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020808501948460051b01011161048c57565b3461048c5760408060031936011261048c5760049067ffffffffffffffff823581811161048c5761097390369085016108f3565b9060243590811161048c5761098b903690850161090e565b9290915f5b8151811015610aa5576109a381836114f6565b516109b96109b28388886115e2565b369161126b565b6109d36109ce835f52600d60205260405f2090565b611624565b610a95576109e9825f52600460205260405f2090565b548015610a855785516020810190610a1381610a05848761162e565b03601f19810183528261027a565b51902003610a7557907faeb631726b45aa3f6b09da79f7af03a9784614901f61a967ed84d63c37b7edc7610a6c83610a5f60019695610a5a865f52600d60205260405f2090565b6116f3565b87519182913390836117c3565b0390a201610990565b845163d8e55daf60e01b81528890fd5b85516338d87d3960e01b81528990fd5b845163444244f560e01b81528890fd5b005b3461048c57602036600319011261048c576020600435610ac68161056c565b6001600160a01b039060405191807f0000000000000000000000000000000000000000000000000000000000000000169116148152f35b3461048c575f36600319011261048c576040515f600954610b1d816101b8565b808452906020906001908181169081156105425750600114610b4957610488856104dd8187038261027a565b60095f90815293507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b838510610b8f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610b73565b3461048c57604036600319011261048c57610488610474600435610bc58161056c565b6024359061209c565b3461048c57602036600319011261048c576004355f526004602052602060405f2054604051908152f35b3461048c575f36600319011261048c57610c1061443b565b5f6001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048c57604036600319011261048c576020610c87600435610c7e8161056c565b60243590612a0e565b604051908152f35b3461048c575f36600319011261048c5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048c5760208060031936011261048c5767ffffffffffffffff60043581811161048c57610d0590369060040161057d565b9091610d0f61443b565b811161022157610d2981610d246003546101b8565b61165b565b5f92601f8211600114610d9d5750610d7881807f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f955f91610d92575b508160011b915f199060031b1c19161790565b6003555b610d8d604051928392339184612a69565b0390a1005b90508401355f610d65565b60035f52601f198216937fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b868210610e27575050827f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f9510610e0e575b5050600181811b01600355610d7c565b8301355f19600384901b60f8161c191690555f80610dfe565b80600184958294958901358155019401920190610dcc565b3461048c575f36600319011261048c5760206001600160a01b035f5416604051908152f35b3461048c57604036600319011261048c57610eda600435610e848161056c565b610488610e9e610e97602435809461319a565b809361417f565b91610ee8610ec563ffffffff610ebd62ffffff61010086015116613790565b935116613990565b91604051958695606087526060870190610420565b908582036020870152610420565b908382036040850152610420565b8015150361048c57565b3461048c57608036600319011261048c57610488610474600435610f238161056c565b604435610f2f81610ef6565b60643591610f3c83610ef6565b60243590612bb6565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c57610f779036906004016108f3565b9060243590811161048c573660238201121561048c578060040135610f9b8161088d565b91610fa9604051938461027a565b8183526020916024602085019160051b8301019136831161048c57602401905b828210610fda57610aa58587612cb8565b81358152908301908301610fc9565b3461048c57604036600319011261048c576020610c8760043561100b8161056c565b60243590612d4f565b3461048c575f36600319011261048c576040515f600754611034816101b8565b80845290602090600190818116908115610542575060011461106057610488856104dd8187038261027a565b60075f90815293507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b8385106110a6575050505081016020016104dd826104886104cd565b805486860184015293820193810161108a565b3461048c57608036600319011261048c576004356110d68161056c565b6044359060243560643567ffffffffffffffff811161048c576110fd90369060040161090e565b906002600154146111f55760026001556111178385612f6d565b6001600160a01b039182851692835f526002602052604096875f20865f52602052875f205442106111e45761114a615900565b97838151918083528201527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841161048c57866111d5967f6a68946ba06488db8585d7c7637fa954b574035fe15720ea760125ef8601725883606086958a6111db9f996111ce9a8c60051b8093868601371660208301528101030190a48587614b47565b36916108a5565b91614dfa565b610aa560018055565b8751632d2f65a360e11b8152600490fd5b604051633ee5aeb560e01b8152600490fd5b3461048c57604036600319011261048c576001600160a01b0360043561122c8161056c565b165f52600260205260405f206024355f52602052602060405f2054604051908152f35b67ffffffffffffffff811161022157601f01601f191660200190565b9291926112778261124f565b91611285604051938461027a565b82948184528183011161048c578281602093845f960137010152565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c576112d39036906004016108f3565b60249060243583811161048c573660238201121561048c578060040135926112fa8461088d565b93611308604051958661027a565b8085526020956024602087019260051b8501019336851161048c5760248101925b85841061133a57610aa58888612dde565b833583811161048c5782013660438201121561048c5789916113668392369060448a820135910161126b565b815201930192611329565b3461048c57602036600319011261048c5760043561138e8161056c565b61139661443b565b6001600160a01b038091169081156113ed575f548273ffffffffffffffffffffffffffffffffffffffff198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b604051631e4fbdf760e01b81525f6004820152602490fd5b634e487b7160e01b5f52601160045260245ffd5b90600282018092116106ba57565b90602082018092116106ba57565b90600182018092116106ba57565b919082018092116106ba57565b90604051918281549182825260209260208301915f5260205f20935f905b828210611484575050506102da9250038361027a565b85548452600195860195889550938101939091019061146e565b906114a88261088d565b6114b5604051918261027a565b82815280926114c6601f199161088d565b0190602036910137565b634e487b7160e01b5f52603260045260245ffd5b8051156114f15760200190565b6114d0565b80518210156114f15760209160051b010190565b5f1981146106ba5760010190565b9190915f926001600160a01b0382165f52600a60205260405f20815f5260205261154460405f20611450565b9361154f855161149e565b915f915f5b875181101561159d578061156a6001928a6114f6565b5184611576828a612d4f565b14611583575b5001611554565b61159661158f8761150a565b96886114f6565b525f61157c565b5095509050929190926115c1826001600160a01b03165f52600b60205260405f2090565b815f526020526115d660405f20548093612a0e565b146115de5750565b9250565b91908110156114f15760051b81013590601e198136030182121561048c57019081359167ffffffffffffffff831161048c57602001823603811361048c579190565b61045690546101b8565b90611641602092828151948592016103ff565b0190565b818110611650575050565b5f8155600101611645565b90601f8211611668575050565b6102da9160035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b906020601f840160051c830193106116b1575b601f0160051c0190611645565b90915081906116a4565b9190601f81116116ca57505050565b6102da925f5260205f20906020601f840160051c830193106116b157601f0160051c0190611645565b919091825167ffffffffffffffff81116102215761171b8161171584546101b8565b846116bb565b602080601f831160011461175c5750819061174d9394955f92611751575b50508160011b915f199060031b1c19161790565b9055565b015190505f80611739565b90601f19831695611770855f5260205f2090565b925f905b8882106117ab57505083600195969710611793575b505050811b019055565b01515f1960f88460031b161c191690555f8080611789565b80600185968294968601518155019501930190611774565b906001600160a01b036117e3602092959495604085526040850190610420565b9416910152565b604051906117f782610226565b5f8252565b6040519061180982610242565b600f82527f2261747472696275746573223a205b00000000000000000000000000000000006020830152565b6040519061184282610242565b600e82527f226f7574666974496473223a205b0000000000000000000000000000000000006020830152565b9060405191826060515f5b8181106118ad57509060206102da936118a182948401918383015f81528151948592016103ff565b0103808552018361027a565b6020919250806080015182828801015201908491611879565b60206102da9193929360405194816118e787935180928680870191016103ff565b82016118a1825180938680850191016103ff565b5f198101919082116106ba57565b906102da6021604051846119278296518092602080860191016103ff565b8101600b60fa1b602082015203600181018552018361027a565b906102da60226040518461195f8296518092602080860191016103ff565b810161174b60f21b602082015203600281018552018361027a565b6040906102da92949394825195869160209361199e815180928780880191016103ff565b83017f7b2274726169745f74797065223a202200000000000000000000000000000000858201526119d882518093876030850191016103ff565b016c111610113b30b63ab2911d101160991b6030820152611a028251809386603d850191016103ff565b0162089f4b60ea1b603d820152039081018552018361027a565b906102da604a60405184611a3a8296518092602080860191016103ff565b81017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022227d2c00000000000000000000000000000000000000000000604082015203602a81018552018361027a565b60316102da919392936040519481611ab88793518092602080870191016103ff565b82017f226261636b67726f756e644964223a20000000000000000000000000000000006020820152611af48251809360206030850191016103ff565b01600b60fa1b603082015203601181018552018361027a565b604a6102da919392936040519481611b2f8793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022000000000000000000000000000000000000000000000000006040820152611b918251809360206047850191016103ff565b0162089f4b60ea1b604782015203602a81018552018361027a565b60376102da919392936040519481611bce8793518092602080870191016103ff565b82017f226368616e6765734c6f636b6564556e74696c223a20000000000000000000006020820152611c0a8251809360206036850191016103ff565b01600b60fa1b603682015203601781018552018361027a565b60526102da919392936040519481611c458793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224368616e676573206c6f636b6564207560208201527f6e74696c222c202276616c7565223a20000000000000000000000000000000006040820152611ca78251809360206050850191016103ff565b01611f4b60f21b605082015203603281018552018361027a565b906102da603660405180947f22776f726e427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b8101600b60fa1b603582015203601681018552018361027a565b604b6102da919392936040519481611d428793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022576f726e2062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b01611f4b60f21b604982015203602b81018552018361027a565b906102da603660405180947f2275736564427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b604b6102da919392936040519481611e118793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022557365642062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b81601f8201121561048c578051611e758161124f565b92611e83604051948561027a565b8184526020828401011161048c5761045691602080850191016103ff565b9060208282031261048c57815167ffffffffffffffff811161048c576104569201611e5f565b6040513d5f823e3d90fd5b9081602091031261048c575190565b9081606091031261048c57805191604060208301519201516104568161056c565b612030600392959460a46102da956040519885611f298b975180926020808b0191016103ff565b86017f7b2274726169745f74797065223a202250726f64756374206e616d65222c202260208201527f76616c7565223a202200000000000000000000000000000000000000000000006040820152611f8b8251809360206049850191016103ff565b017f227d2c207b2274726169745f74797065223a202243617465676f7279206e616d60498201527f65222c202276616c7565223a20220000000000000000000000000000000000006069820152611fec8251809360206077850191016103ff565b017f227d2c207b2274726169745f74797065223a2022546f74616c20737570706c7960778201526c111610113b30b63ab2911d101160991b6097820152019061162e565b62227d5d60e81b815203601c1981018552018361027a565b906102da603d60405180947f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000602083015261208c81518092602086860191016103ff565b810103601d81018552018361027a565b6120a6828261319a565b9163ffffffff6120ba845163ffffffff1690565b1615612a03576120c86117ea565b506120d16117fc565b610100928385019462ffffff94856120ec885162ffffff1690565b16156128345750612116612110612107835163ffffffff1690565b63ffffffff1690565b836139e7565b9182516127f8575b60018661212e895162ffffff1690565b16036127ca576121626121418683612a0e565b9461215c612156612151886132bc565b611daa565b966132bc565b90611def565b955b8351156126a857509060606001600160a01b0394939260046040518097819363043c358d60e11b8352165afa9384156126a3575f905f9561266e575b5081516121b29063ffffffff16613990565b9688516121c19062ffffff1690565b62ffffff166121cf90613790565b97606084019889516121e49063ffffffff1690565b63ffffffff166121f3906132bc565b916121fd93611f02565b94612208838861417f565b9783516122189063ffffffff1690565b63ffffffff1661222790613990565b9980516122369062ffffff1690565b62ffffff1661224490613790565b9861224e906132bc565b91855161225e9063ffffffff1690565b63ffffffff1661226d906132bc565b915161227d9062ffffff166132bc565b905161228e9063ffffffff166132bc565b9160408701516122a19063ffffffff1690565b63ffffffff166122b0906132bc565b9360208801516122cc906cffffffffffffffffffffffffff1690565b6cffffffffffffffffffffffffff166122e4906132bc565b956122ee906132bc565b966122f8906132bc565b610120989098015161230c9060ff166132bc565b9860405180916020820161231f9161162e565b03601f1981018252612331908261027a565b61233a90614353565b9b6040519e8f9e8f602001612373906009907f7b226e616d65223a22000000000000000000000000000000000000000000000081520190565b61237c9161162e565b7f222c202270726f647563744e616d65223a20220000000000000000000000000081526013016123ab9161162e565b7f222c202263617465676f72794e616d65223a202200000000000000000000000081526014016123da9161162e565b7f222c2022746f6b656e4964223a200000000000000000000000000000000000008152600e016124099161162e565b7f2c2022757063223a20000000000000000000000000000000000000000000000081526009016124389161162e565b7f2c202263617465676f7279223a200000000000000000000000000000000000008152600e016124679161162e565b7f2c2022737570706c79223a2000000000000000000000000000000000000000008152600c016124969161162e565b7f2c202272656d61696e696e67223a2000000000000000000000000000000000008152600f016124c59161162e565b7f2c20227072696365223a200000000000000000000000000000000000000000008152600b016124f49161162e565b7f2c2022646563696d616c73223a200000000000000000000000000000000000008152600e016125239161162e565b7f2c202263757272656e6379223a200000000000000000000000000000000000008152600e016125529161162e565b7f2c2022646973636f756e74223a200000000000000000000000000000000000008152600e016125819161162e565b61016160f51b81526002016125959161162e565b61259e9161162e565b7f2c20226465736372697074696f6e223a2241207069656365206f662042616e6e81527f792052657461696c2e222c2265787465726e616c5f75726c223a22687474707360208201527f3a2f2f72657461696c2e62616e6e792e6574682e7375636b73222c22696d616760408201527f65223a22646174613a696d6167652f7376672b786d6c3b6261736536342c00006060820152607e0161263f9161162e565b61227d60f01b815260020103601f198101825261265c908261027a565b61266590614353565b61045690612048565b905061269391945060603d60601161269c575b61268b818361027a565b810190611ee1565b5093905f6121a0565b503d612681565b611ec7565b9350945050506126be601192945162ffffff1690565b1611156127b657604051636c0360eb60e01b81525f816004816001600160a01b0386165afa9283156126a357612747936020925f91612794575b50925b61271361270782613df0565b6001600160a01b031690565b604051630c8df17160e41b81526001600160a01b039092166004830152602482019290925293849190829081906044820190565b03915afa9081156126a357610456925f92612763575b50613e57565b61278691925060203d60201161278d575b61277e818361027a565b810190611ed2565b905f61275d565b503d612774565b6127b091503d805f833e6127a8818361027a565b810190611ea1565b5f6126f8565b6020612747926127c461029c565b926126fb565b6127f26127d78683612d4f565b946127ec6121566127e7886132bc565b611cc1565b90611d20565b95612164565b916128189060018761280d8a5162ffffff1690565b160361281e57613cdd565b9161211e565b61282f9061282a613b9e565b6118c6565b613cdd565b91909293966128438883612aa2565b9661284e8984611518565b979099612859611835565b9a5f9b5b8a518d10156128b2576128839061287d6128778f8e6114f6565b516132bc565b906118c6565b9b61288e8b516118fb565b811061289e575b6001019b61285d565b9b6128aa600191611909565b9c9050612895565b6128c7919395979a989b929496999c50611941565b995f9b5b88518d101561293c576129346001918c8f6129296121078f8f61291161290561291e936128fe61292e98612919956114f6565b519061319a565b9687015162ffffff1690565b62ffffff1690565b613790565b935163ffffffff1690565b613990565b9161197a565b9c019b6128cb565b939894995094999196509499508515155f146129f2579061298661292961210761297c61297561298c9661296f8c6132bc565b90611a96565b998761319a565b5163ffffffff1690565b90611b0d565b955b6129ba866129ad846001600160a01b03165f52600260205260405f2090565b905f5260205260405f2090565b544281116129c9575b50612164565b94966129e56121566129eb93996129df896132bc565b90611bac565b90611c23565b955f6129c3565b94506129fd90611a1c565b9561298e565b5050506104566117ea565b6001600160a01b0316805f52600e60205260405f20825f5260205260405f2054918215918215612a47575b5050612a425790565b505f90565b9091505f52600b60205260405f20825f5260205260405f205414155f80612a39565b916060816001600160a01b039260209497969760408752816040880152838701375f828287010152601f80199101168401019416910152565b612aac828261319a565b9163ffffffff612ac0845163ffffffff1690565b1615612a035760609062ffffff612ade61010086015162ffffff1690565b16612b825792612b22612b2892612af86104569686611518565b939080151580612b7a575b612b44575b50612b1d61210761287d925163ffffffff1690565b61447a565b92614941565b8051612b35575b50613cdd565b612b3e916118c6565b5f612b2f565b61287d919250612107612b71612b6c612b6661210761297c612b1d968d61319a565b8a6139e7565b61186e565b93925050612b08565b506001612b03565b5050612b98612107612b9e935163ffffffff1690565b906139e7565b8051612bad57506104566117ea565b61045690613cdd565b9092612bc2848361319a565b9363ffffffff612bd6865163ffffffff1690565b1615612cab5760609062ffffff612bf461010088015162ffffff1690565b16612c92579061045695612c0b612c309386611518565b948115159081612c8a575b50612c625750612b1d61210761287d925163ffffffff1690565b92612c3d575b5050613cdd565b612c4691614941565b8051612c53575b80612c36565b612c5c916118c6565b5f612c4d565b61287d919250612107612b71612b6c612c8461210761297c612b1d968c61319a565b896139e7565b90505f612c16565b5050509050612b98612107612b9e935163ffffffff1690565b50505050506104566117ea565b91612cc161443b565b5f925b8051841015612d4957612cd784826114f6565b5193612ce381856114f6565b51855f5260049560208781526040805f2054612d3a57907fb10eb6fc7557a7109693cb8f3fac48d44328de56c0368ee4cac539b424d2cad991600196979899845f52825284815f205551338152a301929190612cc4565b51632165e0ab60e01b81528890fd5b50915050565b6001600160a01b0381165f52600f60205260405f20825f5260205260405f2054908115612dd757612d91906001600160a01b03165f52600a60205260405f2090565b815f52602052612da360405f20611450565b915f5b8351811015612dcf5781612dba82866114f6565b5114612dc857600101612da6565b5050905090565b505050505f90565b5050505f90565b91612de761443b565b5f925b8051841015612d4957612dfd84826114f6565b5193612e0981856114f6565b5194805f52602095600c87526040805f20825167ffffffffffffffff811161022157612e398161171584546101b8565b89601f8211600114612eb75750917f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e969391612e9184612ea09560019a9b9c9d5f91612eac57508160011b915f199060031b1c19161790565b90555b519182913390836117c3565b0390a201929190612dea565b90508501515f610d65565b99601f198216612eca845f5260205f2090565b9b5f905b828210612f3357505091600198999a9b7f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e9696949282612ea0979510612f1b575b5050881b88019055612e94565b8501515f1960f88460031b161c191690555f80612f0e565b80600181939f868b015181550194019d01909c929c612ece565b51906102da8261056c565b9081602091031261048c57516104568161056c565b6040516331a9108f60e11b815260048101929092526001600160a01b03906020908390602490829085165afa9182156126a3575f92612fcd575b5080612fb1615900565b16911603612fbb57565b6040516341eb334360e11b8152600490fd5b612ff091925060203d602011612ff7575b612fe8818361027a565b810190612f58565b905f612fa7565b503d612fde565b519063ffffffff8216820361048c57565b51906cffffffffffffffffffffffffff8216820361048c57565b519061ffff8216820361048c57565b519062ffffff8216820361048c57565b519060ff8216820361048c57565b51906102da82610ef6565b60208183031261048c57805167ffffffffffffffff9182821161048c57016101e08184031261048c57613092610880565b9261309c82612ffe565b84526130aa6020830161300f565b60208501526130bb60408301612ffe565b60408501526130cc60608301612ffe565b60608501526130dd6080830161300f565b60808501526130ee60a08301613029565b60a08501526130ff60c08301612f4d565b60c085015260e082015160e085015261010061311c818401613038565b9085015261012061312e818401613048565b90850152610140613140818401613056565b90850152610160613152818401613056565b90850152610180613164818401613056565b908501526101a0613176818401613056565b908501526101c0928383015190811161048c576131939201611e5f565b9082015290565b61324d915f9160606101c06040516131b181610204565b85815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201528561010082015285610120820152856101408201528561016082015285610180820152856101a0820152015261321561270782613df0565b9060405180958194829363c44a8e6d60e01b8452600484016040905f9294936001600160a01b03606083019616825260208201520152565b03915afa9081156126a3575f91613262575090565b61045691503d805f833e613276818361027a565b810190613061565b60405161328a81610226565b5f8152905f368137565b9061329e8261124f565b6132ab604051918261027a565b82815280926114c6601f199161124f565b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808210156133fd575b506d04ee2d6d415b85acef8100000000808310156133ee575b50662386f26fc10000808310156133df575b506305f5e100808310156133d0575b50612710808310156133c1575b5060648210156133b1575b600a809210156133a7575b60019081602161335360018701613294565b95860101905b613365575b5050505090565b5f19019083907f30313233343536373839616263646566000000000000000000000000000000008282061a8353049182156133a257919082613359565b61335e565b9160010191613341565b9190606460029104910191613336565b6004919392049101915f61332b565b6008919392049101915f61331e565b6010919392049101915f61330f565b6020919392049101915f6132fd565b60409350810491505f6132e4565b6040519061341882610242565b600c82527f5370656369616c20426f647900000000000000000000000000000000000000006020830152565b6040519061345182610242565b600c82527f5370656369616c204865616400000000000000000000000000000000000000006020830152565b6040519061348a82610242565b600c82527f5370656369616c204c65677300000000000000000000000000000000000000006020830152565b604051906134c382610242565b600c82527f5370656369616c205375697400000000000000000000000000000000000000006020830152565b604051906134fc82610242565b6004825263119a5cdd60e21b6020830152565b6040519061351c82610242565b600b82527f5375697420626f74746f6d0000000000000000000000000000000000000000006020830152565b6040519061355582610242565b600882527f5375697420746f700000000000000000000000000000000000000000000000006020830152565b6040519061358e82610242565b600482526314dd5a5d60e21b6020830152565b604051906135ae82610242565b60048252631219585960e21b6020830152565b604051906135ce82610242565b600882527f4865616420746f700000000000000000000000000000000000000000000000006020830152565b6040519061360782610242565b600582527f4d6f7574680000000000000000000000000000000000000000000000000000006020830152565b6040519061364082610242565b600782527f476c6173736573000000000000000000000000000000000000000000000000006020830152565b6040519061367982610242565b60048252634579657360e01b6020830152565b6040519061369982610242565b600882527f4e65636b6c6163650000000000000000000000000000000000000000000000006020830152565b604051906136d282610242565b60048252634c65677360e01b6020830152565b604051906136f282610242565b600882527f4261636b736964650000000000000000000000000000000000000000000000006020830152565b6040519061372b82610242565b600a82527f4261636b67726f756e64000000000000000000000000000000000000000000006020830152565b6040519061376482610242565b600a82527f42616e6e7920626f6479000000000000000000000000000000000000000000006020830152565b8061379e5750610456613757565b600181036137af575061045661371e565b600281036137c057506104566136e5565b600881036137d157506104566136c5565b600381036137e2575061045661368c565b600581036137f3575061045661366c565b600681036138045750610456613633565b6007810361381557506104566135fa565b600c810361382657506104566135c1565b6004810361383757506104566135a1565b600981036138485750610456613581565b600b81036138595750610456613548565b600a810361386a575061045661350f565b600d810361387b57506104566134ef565b600e810361388c57506104566134b6565b600f810361389d575061045661347d565b601081036138ae5750610456613444565b6011146138bd576104566117ea565b61045661340b565b604051906138d282610242565b600882527f4f726967696e616c0000000000000000000000000000000000000000000000006020830152565b6040519061390b82610242565b600682527f4f72616e676500000000000000000000000000000000000000000000000000006020830152565b6040519061394482610242565b600482526350696e6b60e01b6020830152565b6040519061396482610242565b600582527f416c69656e0000000000000000000000000000000000000000000000000000006020830152565b600181036139a15750610456613957565b600281036139b25750610456613937565b600381036139c357506104566138fe565b600481036139d457506104566138c5565b5f52600c60205261045660405f2061035f565b90805f52602091600d83526139fe60405f2061035f565b8051613b0b5750613a5091816001600160a01b03613a1c8694613df0565b1690604051809581948293632f54648f60e21b845260048401602090939291936001600160a01b0360408201951681520152565b03915afa80156126a357613ab892613a7d604992610456945f91613aee575b50613a7861029c565b613e57565b60405194827f3c696d61676520687265663d220000000000000000000000000000000000000087948501528251928391602d860191016103ff565b81017f222077696474683d2234303022206865696768743d22343030222f3e00000000602d82015203602981018452018261027a565b613b059150833d851161278d5761277e818361027a565b5f613a6f565b9250505090565b6009545f9291613b21826101b8565b91600190818116908115613b8b5750600114613b3c57505050565b909192935060095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af905f915b848310613b78575050500190565b8181602092548587015201920191613b6a565b60ff191683525050811515909102019150565b603b610456613c2d610a056008613cb46040516003613ca481613c9481613c846044602088017f7b66696c6c3a6e6f6e653b7d00000000000000000000000000000000000000008152600c8952613bf489610242565b6040519e8f9d8e7f3c7374796c653e2e6f7b66696c6c3a233830383038303b7d2e6231000000000060208201528b5192839101846103ff565b8d016217311960e91b603b820152895190613c4c82603e8301856103ff565b01622e623360e81b603e820152613c6a8a51809360418401906103ff565b01613c7d60418201620b988d60ea1b9052565b018761162e565b622e613160e81b8152018561162e565b6217309960e91b8152018361162e565b622e613360e81b8152019061162e565b7f3c2f7374796c653e000000000000000000000000000000000000000000000000815201613b12565b906102da60bb60405180947f3c7376672077696474683d2234303022206865696768743d223430302220766960208301527f6577426f783d223020302034303020343030222066696c6c3d2277686974652260408301527f20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7360608301527f7667223e3c7374796c653e2e6f7b66696c6c3a233035303530353b7d2e777b6660808301527f696c6c3a236639663966393b7d3c2f7374796c653e000000000000000000000060a0830152613dba81518092602060b5860191016103ff565b81017f3c2f7376673e000000000000000000000000000000000000000000000000000060b582015203609b81018552018361027a565b60206001600160a01b039160046040518094819363507f146560e01b8352165afa9081156126a3575f91613e22575090565b90506020813d602011613e4f575b81613e3d6020938361027a565b8101031261048c57516104568161056c565b3d9150613e30565b9061045690613e85604051602092609160f51b84830152602282015260228152613e808161025e565b6152cf565b926040519381613e9e86935180928680870191016103ff565b8201613eb2825180938680850191016103ff565b0103808452018261027a565b906102da602160405184613edc8296518092602080860191016103ff565b8101600160fd1b602082015203600181018552018361027a565b60405190613f0382610242565b600a82527f2072656d61696e696e67000000000000000000000000000000000000000000006020830152565b906102da929493602192613f98604051978894602093613f578151809287808b0191016103ff565b8601613f6b825180938780850191016103ff565b01602f60f81b84820152613f8782518093868a850191016103ff565b0191835193849187850191016103ff565b0103600181018552018361027a565b906102da929493602d92614026604051978894602093613fcf8151809287808b0191016103ff565b86017f2028534f4c44204f555429200000000000000000000000000000000000000000858201526140098251809387602c850191016103ff565b01602f60f81b602c820152613f8782518093868a850191016103ff565b0103600d81018552018361027a565b6102da91613f98949360219260405196879360209261405c8151809286808a0191016103ff565b8501614070825180938680850191016103ff565b0191602f60f81b81840152835193849187850191016103ff565b906102da6022604051846140a88296518092602080860191016103ff565b81016101d160f51b602082015203600281018552018361027a565b60216102da9193929360405194816140e58793518092602080870191016103ff565b82016140fa82518093602080850191016103ff565b01600160fd1b602082015203600181018552018361027a565b60256102da9193929360405194816141358793518092602080870191016103ff565b82017f5550432023000000000000000000000000000000000000000000000000000000602082015261417082518093602087850191016103ff565b0103600581018552018361027a565b906141ed61045692633b9aca006141a86141a3612929612107875163ffffffff1690565b613ebe565b91066141b2613ef6565b81156142445750906141c66141e8926132bc565b6141e26141dd612107606088015163ffffffff1690565b6132bc565b91614035565b61408a565b9061420561291961291161010084015162ffffff1690565b8051614227575b506141dd612107614221925163ffffffff1690565b90614113565b61210761423b6141dd9261422194956140c3565b9392505061420c565b9050604084019163ffffffff61425e845163ffffffff1690565b1680614299575061427c6141dd6121076141e8955163ffffffff1690565b6142936141dd612107606089015163ffffffff1690565b91613fa7565b6141e893506142a7906132bc565b6142be6141dd612107606089015163ffffffff1690565b91613f2f565b604051906142d18261025e565b604082527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f6040837f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201520152565b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116036106ba57565b805115614432576143626142c4565b61437e6143796143728451611419565b6003900490565b614323565b9161439061438b84611427565b613294565b92835280815182019060208501935b8282106143e0575050506003905106806001146143cf576002146143c1575090565b603d60f81b5f199091015290565b50613d3d60f01b6001199091015290565b9091936004906003809401938451600190603f9082828260121c16880101518553828282600c1c16880101518386015382828260061c168801015160028601531685010151908201530193919061439f565b506104566117ea565b6001600160a01b03805f541681614450615900565b16036144595750565b602490614464615900565b60405163118cdaa760e01b815291166004820152fd5b614483906157d4565b93604096959693919351968796602088017f3c7374796c653e2e62317b66696c6c3a2300000000000000000000000000000090528051908160318a0191602001916144cd926103ff565b8701603181017f3b7d2e62327b66696c6c3a230000000000000000000000000000000000000000905281519182603d8301916020019161450c926103ff565b01603d81017f3b7d2e62337b66696c6c3a23000000000000000000000000000000000000000090528151918260498301916020019161454a926103ff565b0160498101614578907f3b7d2e62347b66696c6c3a2300000000000000000000000000000000000000009052565b6055016145849161162e565b7f3b7d2e61317b66696c6c3a2300000000000000000000000000000000000000008152600c016145b39161162e565b7f3b7d2e61327b66696c6c3a2300000000000000000000000000000000000000008152600c016145e29161162e565b7f3b7d2e61337b66696c6c3a2300000000000000000000000000000000000000008152600c016146119161162e565b7f3b7d3c2f7374796c653e000000000000000000000000000000000000000000008152600a0161464090613b12565b03601f1981018252610456908261027a565b90604051918260209161466d815180928580860191016103ff565b6007545f91830161467d826101b8565b9160019081811690811561470657506001146146aa575b5050506102da925003601f19810184528361027a565b94925060075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688945f905b8382106146ee5750506102da945001015f8080614694565b865482840186015295860195889550908401906146d6565b9150506102da95935060ff9291921916838301528015150201015f8080614694565b906040519182602091614743815180928580860191016103ff565b6008545f918301614753826101b8565b91600190818116908115614706575060011461477f575050506102da925003601f19810184528361027a565b94925060085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3945f905b8382106147c35750506102da945001015f8080614694565b865482840186015295860195889550908401906147ab565b9060405191826020916147f6815180928580860191016103ff565b6005545f918301614806826101b8565b916001908181169081156147065750600114614832575050506102da925003601f19810184528361027a565b94925060055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0945f905b8382106148765750506102da945001015f8080614694565b8654828401860152958601958895509084019061485e565b9060405191826020916148a9815180928580860191016103ff565b6006545f9183016148b9826101b8565b9160019081811690811561470657506001146148e5575050506102da925003601f19810184528361027a565b94925060065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f945f905b8382106149295750506102da945001015f8080614694565b86548284018601529586019588955090840190614911565b91909160608351915f925f935f945f9085935f5b61495e82611435565b811015614b3b5781811015614b2f57614977818c6114f6565b5195614983878961319a565b956149a961210761499e6129116101008b015162ffffff1690565b985163ffffffff1690565b915b600388811492908315614b00575050506001976149c8838b6139e7565b9b5b60048914614af7575b6005898103614aa35750506001965b6007898103614a61575050600b6001985b1180614a57575b614a3d575b15159081614a34575b50614a1c575b506001019794939297614955565b6001919861287d614a2d928a6139e7565b9790614a0e565b9050155f614a08565b9a614a48919a6118c6565b98614a516117ea565b9a6149ff565b508b5115156149fa565b8991991180614a9b575b80614a93575b614a7e575b600b906149f3565b975099614a8a9061488e565b99600197614a76565b508615614a71565b508815614a6b565b899891981180614aef575b80614ae7575b156149e257965060019a8b84145f14614ad857614ad0906147db565b9a5b966149e2565b614ae190614728565b9a614ad2565b508615614ab4565b508715614aae565b600196506149d3565b899d919a929d1180614b27575b156149ca57985099614b1e90614652565b996001986149ca565b508915614b0d565b5f9560129587916149ab565b50505050505050925050565b9190614b68816129ad856001600160a01b03165f52600b60205260405f2090565b54614b738185612a0e565b818414801590614d75575b614b8a575b5050505050565b8214614d5c575b508115614d35576040516331a9108f60e11b808252600482018490526001600160a01b0392918584169060208082602481865afa80156126a35786925f91614d18575b5082614bde615900565b911696168614159384614ca0575b50505050614c8e5763ffffffff614c0661297c858761319a565b1615614c7c5782614c2c826129ad876001600160a01b03165f52600b60205260405f2090565b55614c4c836129ad866001600160a01b03165f52600e60205260405f2090565b553003614c61575b50505b5f80808080614b83565b614c75913090614c6f615900565b90615959565b5f80614c54565b60405163c3095f8760e01b8152600490fd5b60405163d03702f960e01b8152600490fd5b819293945090614cd791614cb2615900565b95614cbd8a8c612a0e565b916040518095819482938352600483019190602083019252565b03915afa9081156126a35783925f92614cfb575b505016911614155f808080614bec565b614d119250803d10612ff757612fe8818361027a565b5f80614ceb565b614d2f9150823d8411612ff757612fe8818361027a565b5f614bd4565b614d5691506129ad5f936001600160a01b03165f52600b60205260405f2090565b55614c57565b614d6f90614d68615900565b3086615959565b5f614b91565b5082811415614b7e565b81519167ffffffffffffffff831161022157680100000000000000008311610221578154838355808410614dde575b506020809101915f5260205f20905f5b848110614dcc575050505050565b83518382015592810192600101614dbe565b614df490835f528460205f209182019101611645565b5f614dae565b909291925f935f915f92614e2b614e26836129ad886001600160a01b03165f52600a60205260405f2090565b611450565b955f945f945f908951615269575b90969299935f999899969296975b82518910156151de579a8a9b614e608a859d9c9d6114f6565b516040516331a9108f60e11b8152600481018290529d9097906001600160a01b03168e6024815a93602094fa9d8e156126a3575f9e6151bd575b508d6001600160a01b0380614ead615900565b92169116141580615132575b61512057614edb612911610100614ed18f8c9061319a565b015162ffffff1690565b9960028b108015615116575b615104578b151590816150f9575b506150e75760048a0361503957506001949095919293955b8981111580615030575b15614fab57508a949392918188614f3b93141580614f99575b614f80575b5061150a565b94858c805182105f14614f7357610100614ed1614f5e614f6694612911946114f6565b51809961319a565b905b959192939490614f0d565b505093505f935f90614f68565b614f9390614f8c615900565b3089615959565b5f614f35565b5089614fa58289612d4f565b14614f30565b93966001929a959d999199969396898d81614fc68583612d4f565b03614fe3575b50505050930197939a949091999899969296614e47565b836129ad615002926001600160a01b03165f52600f60205260405f2090565b556001600160a01b033091160361501c575b80898d614fcc565b61502a90308d614c6f615900565b5f615014565b50801515614f17565b939260098a036150525750600192959192939490614f0d565b9260058a1480156150dd575b80156150d3575b80156150c9575b806150c2575b1561508957604051639b8fdcd160e01b8152600490fd5b600b8a1480156150b8575b806150b1575b15614f68576040516306f7588760e01b8152600490fd5b508361509a565b50600a8a14615094565b5084615072565b50600c8a1461506c565b5060078a14615065565b5060068a1461505e565b604051633869abd960e21b8152600490fd5b90508a11155f614ef5565b60405163b0ee46ab60e01b8152600490fd5b5060118b11614ee7565b60405163032cac0360e01b8152600490fd5b508b6001600160a01b036020615175615149615900565b936151548d82612d4f565b6040519485809481936331a9108f60e11b8352600483019190602083019252565b0392165afa9081156126a3576001600160a01b039182915f9161519e575b501691161415614eb9565b6151b7915060203d602011612ff757612fe8818361027a565b5f615193565b6151d7919e5060203d602011612ff757612fe8818361027a565b9c5f614e9a565b5050979550915091949250805b61521a575050506102da92916129ad615215926001600160a01b03165f52600a60205260405f2090565b614d7f565b90818561522a6152359487612d4f565b14615256575061150a565b815181101561524f5761524881836114f6565b51806151eb565b5f806151eb565b614f9390615262615900565b3087615959565b955050615275886114e4565b519461528a612911610100614ed1898c61319a565b90614e39565b604051906105e0820182811067ffffffffffffffff82111761022157604052602e82526105c0366020840137565b9081518110156114f1570160200190565b90815115615401576152df615290565b915f6152ea846114e4565b5260019080515f915b8183106153185750505061530e6153139161045693946159bd565b6159ff565b615a44565b90919361536061535a61535461532e88866152be565b517fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b60ff1690565b905f915b60ff90888288168510156153c4576001929161539961539361535a61538c8961539f966114f6565b5160ff1690565b60081b90565b90611443565b6153bb603a92838306166153b3878d6114f6565b9060ff169052565b04920191615364565b509196925050805b6153db575060010191906152f3565b9360ff6001603a926153f783858a06166153b38584168d6114f6565b01169404806153cc565b905061045661327e565b6040519061541882610242565b600682527f66666539303000000000000000000000000000000000000000000000000000006020830152565b6040519061545182610242565b600682527f66666337303000000000000000000000000000000000000000000000000000006020830152565b6040519061548a82610242565b600682527f66336136303300000000000000000000000000000000000000000000000000006020830152565b604051906154c382610242565b600682527f39363561316100000000000000000000000000000000000000000000000000006020830152565b604051906154fc82610242565b600682527f66663763303200000000000000000000000000000000000000000000000000006020830152565b6040519061553582610242565b600682527f66643336303000000000000000000000000000000000000000000000000000006020830152565b6040519061556e82610242565b600682527f63333265306400000000000000000000000000000000000000000000000000006020830152565b604051906155a782610242565b600682527f66666438633500000000000000000000000000000000000000000000000000006020830152565b604051906155e082610242565b600682527f66663936613900000000000000000000000000000000000000000000000000006020830152565b6040519061561982610242565b600682527f66653538386200000000000000000000000000000000000000000000000000006020830152565b6040519061565282610242565b600682527f63393266343500000000000000000000000000000000000000000000000000006020830152565b6040519061568b82610242565b600682527f36376437353700000000000000000000000000000000000000000000000000006020830152565b604051906156c482610242565b600682527f33306132323000000000000000000000000000000000000000000000000000006020830152565b604051906156fd82610242565b600682527f32313761313500000000000000000000000000000000000000000000000000006020830152565b6040519061573682610242565b600682527f30393439306600000000000000000000000000000000000000000000000000006020830152565b6040519061576f82610242565b600682527f65343833656600000000000000000000000000000000000000000000000000006020830152565b604051906157a882610242565b600682527f64633266656600000000000000000000000000000000000000000000000000006020830152565b6001810361581b57506157e561567e565b906157ee6156b7565b906157f76156f0565b90615800615729565b90615809615762565b9061581261579b565b9061045661579b565b60028103615862575061582c61559a565b906158356155d3565b9061583e61560c565b90615847615645565b9061585061559a565b906158596155d3565b9061045661560c565b600381036158a9575061587361547d565b9061587c6154ef565b90615885615528565b9061588e615561565b9061589761547d565b906158a06154ef565b90610456615528565b6004146158c257604051639a7b332360e01b8152600490fd5b6158ca61540b565b906158d3615444565b906158dc61547d565b906158e56154b6565b906158ee61540b565b906158f7615444565b9061045661547d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633148061594e575b1561594a5760131936013681116106ba573560601c90565b3390565b506014361015615932565b909291926001600160a01b0380921690813b1561048c575f6064928195856040519889978896632142170760e11b885216600487015216602485015260448401525af180156126a3576159a95750565b67ffffffffffffffff811161022157604052565b9060ff809116906159cd8261149e565b925f5b8381106159de575050505090565b80836159ec600193856114f6565b51166159f882886114f6565b52016159d0565b908151615a0b8161149e565b905f5b818110615a1c575090925050565b60019060ff615a315f198389510301886114f6565b5116615a3d82866114f6565b5201615a0e565b8051615a4f8161124f565b916040615a5f604051948561027a565b828452615a6b8361124f565b60209190601f190136868401375f5b848110615a8957505050505090565b6001908251615a978161025e565b603a81527f31323334353637383941424344454647484a4b4c4d4e50515253545556575859858201527f5a6162636465666768696a6b6d6e6f707172737475767778797a000000000000848201527fff0000000000000000000000000000000000000000000000000000000000000090615b1f9060ff615b17858a6114f6565b5116906152be565b51165f1a615b2d82896152be565b5301615a7a56fea26469706673582212203a4c382e9b69538f97fd89527b2bef347de3dfd6b15949e701b2c0d26013e29864736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000012800000000000000000000000000000000000000000000000000000000000001440000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000016000000000000000000000000009e2a10ab3bd22831f19d02c648bc2cb49b127450000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566000000000000000000000000000000000000000000000000000000000000117a3c6720636c6173733d226131223e3c7061746820643d224d3137332035336834763137682d347a222f3e3c2f673e3c6720636c6173733d226132223e3c7061746820643d224d3136372035376833763130682d337a222f3e3c7061746820643d224d3136392035336834763137682d347a222f3e3c2f673e3c6720636c6173733d226133223e3c7061746820643d224d31363720353368337634682d337a222f3e3c7061746820643d224d3136332035376834763130682d347a222f3e3c7061746820643d224d31363720363768337633682d337a222f3e3c2f673e3c6720636c6173733d226231223e3c7061746820643d224d32313320323533682d33762d332d33682d33762d372d33682d34762d3130682d33762d372d372d33682d33762d3733682d34762d3130682d33762d3130682d33762d37682d34762d37682d33762d33682d33762d33682d347631306834763130683376313068337633683476372033203730203368337637683376323068347637683376336833763368347634683376336833762d332d347a222f3e3c7061746820643d224d32353320333037762d34682d33762d33682d33762d33682d34762d34682d33762d33682d33762d33682d34762d34682d33762d33682d33762d33682d34762d34682d33762d36682d33762d37682d34763137683476336833763368332034763468337633683376336834763468337633683376336834763468337633683376336834762d36682d347a222f3e3c2f673e3c6720636c6173733d226232223e3c7061746820643d224d32353020333130762d33682d33762d34682d34762d33682d33762d33682d33762d34682d34762d33682d33762d33682d33762d34682d37762d33682d33762d33682d34762d3137682d33762d33682d33762d34682d34762d33682d33762d33682d33762d37682d34762d3230682d33762d37682d33762d37332d332d37682d34762d33682d33762d3130682d33762d3130682d34563730682d33762d336c2d332031303020332d313030763430682d33763130682d347636682d33763134682d337633203133682d3476343468347631366833763134683376313368347631306833763768337633683476336833763468337633683476336833763468337633683476336833763768377637683676336837763368377634683133763368337633683130762d33682d337a6d2d3130332d3837762d31366833762d3130682d337636682d34763137682d337631306833762d3768347a222f3e3c7061746820643d224d3134332032333068347637682d347a6d3420313068337633682d337a6d33203768337633682d337a6d33203668347634682d347a222f3e3c7061746820643d224d31363320323537682d36763368337633683376346834762d342d33682d34762d337a222f3e3c2f673e3c6720636c6173733d226233223e3c7061746820643d224d3134332031393776366834762d366836762d34346834762d31366833762d31346833762d366834762d31306833563937682d377636682d337634682d337633682d347633682d3376342033682d3376332034682d34763130682d337631362034682d337634366833762d3668337a222f3e3c7061746820643d224d313430203230336833763137682d337a222f3e3c7061746820643d224d313337203232306833763130682d337a222f3e3c7061746820643d224d31353320323530682d33762d37682d33762d36682d34762d37682d337631306833763768347636683376346833762d377a6d2d3320313068337637682d337a222f3e3c7061746820643d224d3134372032353768337633682d337a6d36203068347633682d347a222f3e3c7061746820643d224d31363020323633762d33682d33763320376836762d37682d337a6d2d31302d3536763136682d33763768337631306833763768347636683676346837762d342d33682d33762d3130682d34762d3133682d33762d3134682d33762d3136682d34763130682d337a222f3e3c7061746820643d224d32343320333133762d33682d33762d33682d31302d33762d34682d37762d33682d37762d33682d36762d37682d37762d37682d33762d33682d34762d33682d33762d34682d33762d33682d34762d33682d33762d34682d33762d33682d34762d33682d33763130682d337633682d347633682d337637683376376834763668337635683476336836763368337633683420337633683320347633683320337634683130763368372037203376336831302033762d33683130762d336834762d34682d31347a222f3e3c2f673e3c6720636c6173733d226234223e3c7061746820643d224d3138332031333068347637682d347a222f3e3c7061746820643d224d3138302031323768337633682d337a6d2d32372d3468347637682d347a222f3e3c7061746820643d224d3135372031313768337636682d337a222f3e3c7061746820643d224d3136302031313068337637682d337a222f3e3c7061746820643d224d3136332031303768347633682d347a6d2d3320383368337637682d337a222f3e3c7061746820643d224d3136332031383768347633682d347a6d3230203068377633682d377a222f3e3c7061746820643d224d3138302031393068337633682d337a6d31302d3768337634682d337a222f3e3c7061746820643d224d3139332031383768347636682d347a6d2d323020353368347637682d347a222f3e3c7061746820643d224d3137372032343768337636682d337a222f3e3c7061746820643d224d3138302032353368337637682d337a222f3e3c7061746820643d224d3138332032363068377633682d377a222f3e3c7061746820643d224d3139302032363368337634682d337a6d302d323068337634682d337a222f3e3c7061746820643d224d3138372032343068337633682d337a222f3e3c7061746820643d224d3139302032333768337633682d337a6d313320323368347633682d347a222f3e3c7061746820643d224d3230372032363368337637682d337a222f3e3c7061746820643d224d3231302032373068337633682d337a6d2d3130203768337636682d337a222f3e3c7061746820643d224d3230332032383368347637682d347a222f3e3c7061746820643d224d3230372032393068367633682d367a222f3e3c2f673e3c6720636c6173733d226f223e3c7061746820643d224d313333203135376834763530682d347a6d302036336834763130682d347a6d32372d3136336833763130682d337a222f3e3c7061746820643d224d31363320353368347634682d347a222f3e3c7061746820643d224d3136372035306831307633682d31307a222f3e3c7061746820643d224d3137372035336833763137682d337a222f3e3c7061746820643d224d3137332037306834763237682d347a6d2d3620306833763237682d337a222f3e3c7061746820643d224d31363320363768347633682d347a6d3020333068347633682d347a222f3e3c7061746820643d224d3136302031303068337633682d337a222f3e3c7061746820643d224d3135372031303368337634682d337a222f3e3c7061746820643d224d3135332031303768347633682d347a222f3e3c7061746820643d224d3135302031313068337633682d337a222f3e3c7061746820643d224d3134372031313368337637682d337a222f3e3c7061746820643d224d3134332031323068347637682d347a222f3e3c7061746820643d224d313430203132376833763130682d337a222f3e3c7061746820643d224d313337203133376833763230682d337a6d35362d31306834763130682d347a222f3e3c7061746820643d224d313930203131376833763130682d337a222f3e3c7061746820643d224d3138372031313068337637682d337a222f3e3c7061746820643d224d3138332031303368347637682d347a222f3e3c7061746820643d224d3138302031303068337633682d337a222f3e3c7061746820643d224d31373720393768337633682d337a6d2d3430203130366833763137682d337a6d302032376833763130682d337a6d313020333068337637682d337a222f3e3c7061746820643d224d31353020323537762d34682d33762d36682d34762d37682d3376313068337631306834762d3368337a222f3e3c7061746820643d224d3135302032353768337633682d337a222f3e3c7061746820643d224d31363320323733762d33682d36762d3130682d347637682d33763368337633683476376833762d3768337a222f3e3c7061746820643d224d3136332032363768347633682d347a222f3e3c7061746820643d224d31373020323537682d332d347633683476376833762d31307a222f3e3c7061746820643d224d3135372032353368367634682d367a222f3e3c7061746820643d224d3135332032343768347636682d347a222f3e3c7061746820643d224d3135302032343068337637682d337a222f3e3c7061746820643d224d313437203233306833763130682d337a6d313320353068337637682d337a222f3e3c7061746820643d224d3134332032323368347637682d347a222f3e3c7061746820643d224d313437203230376833763136682d337a222f3e3c7061746820643d224d313530203139376833763130682d337a6d2d3130203068337636682d337a6d35302031313368377633682d377a6d32332031306831377633682d31377a222f3e3c7061746820643d224d323330203332336831337634682d31337a222f3e3c7061746820643d224d323433203332306831307633682d31307a222f3e3c7061746820643d224d3235332033313768347633682d347a222f3e3c7061746820643d224d323537203330376833763130682d337a222f3e3c7061746820643d224d3235332033303368347634682d347a222f3e3c7061746820643d224d3235302033303068337633682d337a222f3e3c7061746820643d224d3234372032393768337633682d337a222f3e3c7061746820643d224d3234332032393368347634682d347a222f3e3c7061746820643d224d3234302032393068337633682d337a222f3e3c7061746820643d224d3233372032383768337633682d337a222f3e3c7061746820643d224d3233332032383368347634682d347a222f3e3c7061746820643d224d3233302032383068337633682d337a222f3e3c7061746820643d224d3232372032373768337633682d337a222f3e3c7061746820643d224d3232332032373368347634682d347a222f3e3c7061746820643d224d3232302032363768337636682d337a222f3e3c7061746820643d224d3231372032363068337637682d337a222f3e3c7061746820643d224d3231332032353368347637682d347a222f3e3c7061746820643d224d3231302032343768337636682d337a222f3e3c7061746820643d224d323037203233376833763130682d337a222f3e3c7061746820643d224d323033203232376834763130682d347a6d2d343020363068347636682d347a6d323420323068337633682d337a222f3e3c7061746820643d224d3136372032393368337635682d337a6d313620313468347633682d347a222f3e3c7061746820643d224d3137302032393868347633682d347a6d3130203668337633682d337a222f3e3c7061746820643d224d3137342033303168367633682d367a6d323320313268367634682d367a222f3e3c7061746820643d224d323033203331376831307633682d31307a6d2d322d313037762d3733682d3476373368337631376833762d3137682d327a222f3e3c2f673e3c6720636c6173733d226f223e3c7061746820643d224d31383720333037762d346833762d36682d33762d34682d34762d33682d33762d33682d37762d34682d367634682d3476336834763237682d34763133682d33763130682d347637683476336833203130203134762d33682d34762d34682d33762d33682d33762d33682d34762d376834762d31306833762d376833762d336837762d33682d337a6d3136203130762d34682d36763137682d34763130682d337637683376336834203620342033203134762d33682d34762d34682d37762d33682d33762d33682d33762d31306833762d376833762d33682d31307a222f3e3c2f673e000000000000000000000000000000000000000000000000000000000000000000000000019c3c6720636c6173733d226f223e3c7061746820643d224d31393020313733682d3337762d33682d3130762d34682d36763468337633682d337634683676336831307634683337762d346833762d33682d33762d347a6d2d34302034682d33762d34683376347a6d372033762d3368337633682d337a6d362030762d3368347633682d347a6d372030762d3368337633682d337a6d372030762d3368337633682d337a6d31302030682d34762d33683476337a222f3e3c7061746820643d224d3139302031373068337633682d337a222f3e3c7061746820643d224d3139332031363668347634682d347a6d30203768347634682d347a222f3e3c2f673e3c6720636c6173733d2277223e3c7061746820643d224d3133372031373068337633682d337a6d3130203368337634682d337a6d3130203468337633682d337a6d36203068347633682d347a6d37203068337633682d337a6d37203068337633682d337a6d36203068347633682d347a6d372d3468337634682d337a222f3e3c7061746820643d224d3139332031373068347633682d347a222f3e3c2f673e0000000000000000000000000000000000000000000000000000000000000000000000813c6720636c6173733d226f223e3c7061746820643d224d31383320313630762d34682d32307634682d33763368337634683234762d37682d347a6d2d31332033762d336831307633682d31307a222066696c6c3d2223616437316338222f3e3c7061746820643d224d313730203136306831307633682d31307a222f3e3c2f673e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd3c6720636c6173733d226f223e3c7061746820643d224d3137372031343076336836763131683130762d31316834762d33682d32307a222f3e3c7061746820643d224d31353320313430763368377638203368372033762d31316833762d33682d32307a222f3e3c2f673e3c6720636c6173733d2277223e3c7061746820643d224d3135332031343368377634682d377a222f3e3c7061746820643d224d3135372031343768337633682d337a6d32302d3468367634682d367a222f3e3c7061746820643d224d3138302031343768337633682d337a222f3e3c2f673e000000000000000000000000000000000000000000000000000000000000000000023a3c6720636c6173733d226f223e3c7061746820643d224d3139302031323768337633682d337a6d3320313368347633682d347a6d2d3432203068367636682d367a222f3e3c7061746820643d224d3135312031333368337637682d337a6d3130203068367634682d367a222f3e3c7061746820643d224d313537203133376831377636682d31377a6d332031336831347633682d31347a6d31372d31336837763136682d377a222f3e3c7061746820643d224d3138342031333768367636682d367a6d302031306831307636682d31307a222f3e3c7061746820643d224d313837203134336831307634682d31307a222f3e3c7061746820643d224d3139302031343068337633682d337a6d2d362d313068337637682d337a222f3e3c7061746820643d224d3138372031333068367633682d367a6d2d333620306831307633682d31307a6d313620313368377637682d377a6d2d3130203068377637682d377a222f3e3c7061746820643d224d3136342031343768337633682d337a6d32392d323068347636682d347a222f3e3c7061746820643d224d3139342031333368337637682d337a222f3e3c2f673e3c6720636c6173733d2277223e3c7061746820643d224d3135342031333368377634682d377a222f3e3c7061746820643d224d3135342031333768337633682d337a6d3130203668337634682d337a6d3230203068337634682d337a6d332d313068377634682d377a222f3e3c7061746820643d224d3139302031333768347633682d347a222f3e3c2f673e000000000000000000000000000000000000000000000000000000000000000000000000",
|
|
840
|
+
"blockHash": "0x8a324af0aa1e7a0e065519d7f43c50599bd8be2a832410e6ffcdc55d0437d3fe",
|
|
841
|
+
"blockNumber": "0x8a1bc81",
|
|
842
|
+
"blockTimestamp": "0x693752bb",
|
|
843
|
+
"transactionHash": "0xda0108ddc6f9366d49a541c380fbb01cdee25a878a92ad4c7325deaab3409564",
|
|
844
|
+
"transactionIndex": "0x5",
|
|
845
|
+
"logIndex": "0x20",
|
|
846
|
+
"removed": false
|
|
847
|
+
},
|
|
848
|
+
{
|
|
849
|
+
"address": "0x2de178adde33cf27d391e9506c7b6f8b2ddc5eff",
|
|
850
|
+
"topics": [
|
|
851
|
+
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
|
|
852
|
+
"0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
853
|
+
"0x0000000000000000000000009e2a10ab3bd22831f19d02c648bc2cb49b127450"
|
|
854
|
+
],
|
|
855
|
+
"data": "0x",
|
|
856
|
+
"blockHash": "0x8a324af0aa1e7a0e065519d7f43c50599bd8be2a832410e6ffcdc55d0437d3fe",
|
|
857
|
+
"blockNumber": "0x8a1bc81",
|
|
858
|
+
"blockTimestamp": "0x693752bb",
|
|
859
|
+
"transactionHash": "0xda0108ddc6f9366d49a541c380fbb01cdee25a878a92ad4c7325deaab3409564",
|
|
860
|
+
"transactionIndex": "0x5",
|
|
861
|
+
"logIndex": "0x21",
|
|
862
|
+
"removed": false
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
"address": "0x9e2a10ab3bd22831f19d02c648bc2cb49b127450",
|
|
866
|
+
"topics": [
|
|
867
|
+
"0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
|
|
868
|
+
"0x000000000000000000000000656ff6398c45adca3fe6e5f8fd53aebd4f318017"
|
|
869
|
+
],
|
|
870
|
+
"data": "0x",
|
|
871
|
+
"blockHash": "0x8a324af0aa1e7a0e065519d7f43c50599bd8be2a832410e6ffcdc55d0437d3fe",
|
|
872
|
+
"blockNumber": "0x8a1bc81",
|
|
873
|
+
"blockTimestamp": "0x693752bb",
|
|
874
|
+
"transactionHash": "0xda0108ddc6f9366d49a541c380fbb01cdee25a878a92ad4c7325deaab3409564",
|
|
875
|
+
"transactionIndex": "0x5",
|
|
876
|
+
"logIndex": "0x22",
|
|
877
|
+
"removed": false
|
|
878
|
+
},
|
|
879
|
+
{
|
|
880
|
+
"address": "0x656ff6398c45adca3fe6e5f8fd53aebd4f318017",
|
|
881
|
+
"topics": [
|
|
882
|
+
"0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
|
|
883
|
+
"0x291186de1f72bb2cc104c23dccdfa5d4a8a0b9f4cfb97b40f87ec3ef829ea948"
|
|
884
|
+
],
|
|
885
|
+
"data": "0x0000000000000000000000000000000000000000000000000000000000000001",
|
|
886
|
+
"blockHash": "0x8a324af0aa1e7a0e065519d7f43c50599bd8be2a832410e6ffcdc55d0437d3fe",
|
|
887
|
+
"blockNumber": "0x8a1bc81",
|
|
888
|
+
"blockTimestamp": "0x693752bb",
|
|
889
|
+
"transactionHash": "0xda0108ddc6f9366d49a541c380fbb01cdee25a878a92ad4c7325deaab3409564",
|
|
890
|
+
"transactionIndex": "0x5",
|
|
891
|
+
"logIndex": "0x23",
|
|
892
|
+
"removed": false
|
|
893
|
+
}
|
|
894
|
+
],
|
|
895
|
+
"logsBloom": "0x00000000000010000000000000080000000000000000000000810000000000000000000020800000000000000048000000000000000000008000800000000000000000000040200000000000000000000201000000000000000000000000000000000000020000000000000000800840000000000000000400008000001000400800004021000000000104000000000004000000010000000000000000000000004000040000000000000000020000002200000000000000000000000004000000000002000000000000000000000000000000000020000000000000040020000000000000000000000001000000010200000000010080000000000000000000",
|
|
896
|
+
"transactionHash": "0xda0108ddc6f9366d49a541c380fbb01cdee25a878a92ad4c7325deaab3409564",
|
|
897
|
+
"transactionIndex": "0x5",
|
|
898
|
+
"blockHash": "0x8a324af0aa1e7a0e065519d7f43c50599bd8be2a832410e6ffcdc55d0437d3fe",
|
|
899
|
+
"blockNumber": "0x8a1bc81",
|
|
900
|
+
"gasUsed": "0x9b8efd",
|
|
901
|
+
"effectiveGasPrice": "0x24a0ff",
|
|
902
|
+
"blobGasUsed": "0x641770",
|
|
903
|
+
"from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
|
|
904
|
+
"to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
|
|
905
|
+
"contractAddress": null
|
|
906
|
+
},
|
|
907
|
+
"bytecode": "0x60a060405234620007685762006382803803806200001d816200076c565b928339810160e082820312620007685781516001600160401b03908181116200076857826200004e91850162000792565b602093848101518381116200076857846200006b91830162000792565b9360408201518481116200076857816200008791840162000792565b6060830151858111620007685782620000a291850162000792565b916080840151908682116200076857620000be91850162000792565b92620000db60c0620000d360a0840162000802565b920162000802565b906001600160a01b0390811690811562000750575f548260018060a01b03198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36080526001958680558451868111620003f657600954958887811c9716801562000745575b8a881014620003d7578190601f97888111620006f1575b508a9088831160011462000689575f926200067d575b50505f19600383901b1c191690881b176009555b805190868211620003f657600754908882811c9216801562000672575b8a831014620003d75781878493116200061e575b508990878311600114620005b8575f92620005ac575b50505f19600383901b1c191690871b176007555b805190858211620003f657600654908782811c92168015620005a1575b89831014620003d75781868493116200054d575b508890868311600114620004e7575f92620004db575b50505f19600383901b1c191690861b176006555b805190848211620003f657600854908682811c92168015620004d0575b88831014620003d75781858493116200047c575b50879085831160011462000416575f926200040a575b50505f19600383901b1c191690851b176008555b8051928311620003f65760059485548581811c91168015620003eb575b82821014620003d75783811162000391575b50809284116001146200032a57509282939183925f946200031e575b50501b915f199060031b1c19161790555b604051615b6a9081620008188239608051818181610ad601528181610cae015261590a0152f35b015192505f80620002e6565b919083601f198116875f52845f20945f905b888383106200037657505050106200035d575b505050811b019055620002f7565b01515f1960f88460031b161c191690555f80806200034f565b8587015188559096019594850194879350908101906200033c565b865f52815f2084808701891c820192848810620003cd575b01881c019086905b828110620003c1575050620002ca565b5f8155018690620003b1565b92508192620003a9565b634e487b7160e01b5f52602260045260245ffd5b90607f1690620002b8565b634e487b7160e01b5f52604160045260245ffd5b015190505f8062000287565b90879350601f1983169160085f52895f20925f5b8b8282106200046557505084116200044c575b505050811b016008556200029b565b01515f1960f88460031b161c191690555f80806200043d565b8385015186558b979095019493840193016200042a565b90915060085f52875f208580850160051c8201928a8610620004c6575b918991869594930160051c01915b828110620004b757505062000271565b5f8155859450899101620004a7565b9250819262000499565b91607f16916200025d565b015190505f806200022c565b90889350601f1983169160065f528a5f20925f5b8c8282106200053657505084116200051d575b505050811b0160065562000240565b01515f1960f88460031b161c191690555f80806200050e565b8385015186558c97909501949384019301620004fb565b90915060065f52885f208680850160051c8201928b861062000597575b918a91869594930160051c01915b8281106200058857505062000216565b5f81558594508a910162000578565b925081926200056a565b91607f169162000202565b015190505f80620001d1565b90899350601f1983169160075f528b5f20925f5b8d828210620006075750508411620005ee575b505050811b01600755620001e5565b01515f1960f88460031b161c191690555f8080620005df565b8385015186558d97909501949384019301620005cc565b90915060075f52895f208780850160051c8201928c861062000668575b918b91869594930160051c01915b82811062000659575050620001bb565b5f81558594508b910162000649565b925081926200063b565b91607f1691620001a7565b015190505f8062000176565b908a9350601f1983169160095f528c5f20928d5f905b828210620006d95750508411620006c0575b505050811b016009556200018a565b01515f1960f88460031b161c191690555f8080620006b1565b8385015186558e979095019493840193018e6200069f565b90915060095f528a5f208880850160051c8201928d86106200073b575b918c91869594930160051c01915b8281106200072c57505062000160565b5f81558594508c91016200071c565b925081926200070e565b96607f169662000149565b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b03811183821017620003f657604052565b919080601f84011215620007685782516001600160401b038111620003f657602090620007c8601f8201601f191683016200076c565b9281845282828701011162000768575f5b818110620007ee5750825f9394955001015290565b8581018301518482018401528201620007d9565b51906001600160a01b0382168203620007685756fe60806040526004361015610011575f80fd5b5f3560e01c806257bfdd146101b357806305b2ae1b146101ae578063150b7a02146101a9578063187be308146101a457806318ab522d1461019f5780632150a1381461019a5780632580833d1461019557806331a290ac14610190578063572b6c051461018b57806359a81d91146101865780635e703e71146101815780636aff31dd1461017c578063715018a61461017757806379a2696e146101725780637da0a8771461016d578063875e4bea146101685780638da5cb5b14610163578063a0122c091461015e578063a22d0dd514610159578063b03a3eab14610154578063b1fa9e7b1461014f578063b3fa27831461014a578063c06e7bc714610145578063c122804614610140578063d756227e1461013b5763f2fde38b14610136575f80fd5b611371565b6112a1565b611207565b6110b9565b611014565b610fe9565b610f45565b610f00565b610e64565b610e3f565b610cd2565b610c8f565b610c5c565b610bf8565b610bce565b610ba2565b610afd565b610aa7565b61093f565b6107db565b610736565b6106bf565b610629565b6105ab565b610490565b610459565b90600182811c921680156101e6575b60208310146101d257565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101c7565b634e487b7160e01b5f52604160045260245ffd5b6101e0810190811067ffffffffffffffff82111761022157604052565b6101f0565b6020810190811067ffffffffffffffff82111761022157604052565b6040810190811067ffffffffffffffff82111761022157604052565b6060810190811067ffffffffffffffff82111761022157604052565b90601f8019910116810190811067ffffffffffffffff82111761022157604052565b604051905f82600354916102af836101b8565b8083529260209060019081811690811561033b57506001146102dc575b50506102da9250038361027a565b565b91509260035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b935f925b82841061032357506102da9450505081016020015f806102cc565b85548885018301529485019487945092810192610308565b915050602092506102da94915060ff191682840152151560051b8201015f806102cc565b9060405191825f8254610371816101b8565b908184526020946001916001811690815f146103dd575060011461039f575b5050506102da9250038361027a565b5f90815285812095935091905b8183106103c55750506102da93508201015f8080610390565b855488840185015294850194879450918301916103ac565b925050506102da94925060ff191682840152151560051b8201015f8080610390565b5f5b8381106104105750505f910152565b8181015183820152602001610401565b90602091610439815180928185528580860191016103ff565b601f01601f1916010190565b906020610456928181520190610420565b90565b3461048c575f36600319011261048c5761048861047461029c565b604051918291602083526020830190610420565b0390f35b5f80fd5b3461048c575f36600319011261048c576040515f6008546104b0816101b8565b8084529060209060019081811690811561054257506001146104e9575b610488856104dd8187038261027a565b60405191829182610445565b60085f90815293507ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b83851061052f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610513565b869550610488969350602092506104dd94915060ff191682840152151560051b82010192936104cd565b6001600160a01b0381160361048c57565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020838186019501011161048c57565b3461048c57608036600319011261048c576004356105c88161056c565b6105d360243561056c565b60643567ffffffffffffffff811161048c576105f390369060040161057d565b50506001600160a01b033091160361061757604051630a85bd0160e11b8152602090f35b604051633b2c6aa160e21b8152600490fd5b3461048c57604036600319011261048c576004356106468161056c565b6001600160a01b036024359161065c8382612f6d565b16805f52600260205260405f20825f5260205260405f20549162093a804201928342116106ba5783106106a8576106a5915f52600260205260405f20905f5260205260405f2090565b55005b604051631057c89560e21b8152600490fd5b611405565b3461048c57604036600319011261048c576106e86004356106df8161056c565b60243590611518565b90604051918291604083019083526020906040602085015282518091526020606085019301915f5b82811061071f57505050500390f35b835185528695509381019392810192600101610710565b3461048c575f36600319011261048c576040515f600554610756816101b8565b80845290602090600190818116908115610542575060011461078257610488856104dd8187038261027a565b60055f90815293507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b8385106107c8575050505081016020016104dd826104886104cd565b80548686018401529382019381016107ac565b3461048c575f36600319011261048c576040515f6006546107fb816101b8565b80845290602090600190818116908115610542575060011461082757610488856104dd8187038261027a565b60065f90815293507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b83851061086d575050505081016020016104dd826104886104cd565b8054868601840152938201938101610851565b604051906102da82610204565b67ffffffffffffffff81116102215760051b60200190565b92916108b08261088d565b916108be604051938461027a565b829481845260208094019160051b810192831161048c57905b8282106108e45750505050565b813581529083019083016108d7565b9080601f8301121561048c57816020610456933591016108a5565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020808501948460051b01011161048c57565b3461048c5760408060031936011261048c5760049067ffffffffffffffff823581811161048c5761097390369085016108f3565b9060243590811161048c5761098b903690850161090e565b9290915f5b8151811015610aa5576109a381836114f6565b516109b96109b28388886115e2565b369161126b565b6109d36109ce835f52600d60205260405f2090565b611624565b610a95576109e9825f52600460205260405f2090565b548015610a855785516020810190610a1381610a05848761162e565b03601f19810183528261027a565b51902003610a7557907faeb631726b45aa3f6b09da79f7af03a9784614901f61a967ed84d63c37b7edc7610a6c83610a5f60019695610a5a865f52600d60205260405f2090565b6116f3565b87519182913390836117c3565b0390a201610990565b845163d8e55daf60e01b81528890fd5b85516338d87d3960e01b81528990fd5b845163444244f560e01b81528890fd5b005b3461048c57602036600319011261048c576020600435610ac68161056c565b6001600160a01b039060405191807f0000000000000000000000000000000000000000000000000000000000000000169116148152f35b3461048c575f36600319011261048c576040515f600954610b1d816101b8565b808452906020906001908181169081156105425750600114610b4957610488856104dd8187038261027a565b60095f90815293507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b838510610b8f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610b73565b3461048c57604036600319011261048c57610488610474600435610bc58161056c565b6024359061209c565b3461048c57602036600319011261048c576004355f526004602052602060405f2054604051908152f35b3461048c575f36600319011261048c57610c1061443b565b5f6001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048c57604036600319011261048c576020610c87600435610c7e8161056c565b60243590612a0e565b604051908152f35b3461048c575f36600319011261048c5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048c5760208060031936011261048c5767ffffffffffffffff60043581811161048c57610d0590369060040161057d565b9091610d0f61443b565b811161022157610d2981610d246003546101b8565b61165b565b5f92601f8211600114610d9d5750610d7881807f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f955f91610d92575b508160011b915f199060031b1c19161790565b6003555b610d8d604051928392339184612a69565b0390a1005b90508401355f610d65565b60035f52601f198216937fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b868210610e27575050827f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f9510610e0e575b5050600181811b01600355610d7c565b8301355f19600384901b60f8161c191690555f80610dfe565b80600184958294958901358155019401920190610dcc565b3461048c575f36600319011261048c5760206001600160a01b035f5416604051908152f35b3461048c57604036600319011261048c57610eda600435610e848161056c565b610488610e9e610e97602435809461319a565b809361417f565b91610ee8610ec563ffffffff610ebd62ffffff61010086015116613790565b935116613990565b91604051958695606087526060870190610420565b908582036020870152610420565b908382036040850152610420565b8015150361048c57565b3461048c57608036600319011261048c57610488610474600435610f238161056c565b604435610f2f81610ef6565b60643591610f3c83610ef6565b60243590612bb6565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c57610f779036906004016108f3565b9060243590811161048c573660238201121561048c578060040135610f9b8161088d565b91610fa9604051938461027a565b8183526020916024602085019160051b8301019136831161048c57602401905b828210610fda57610aa58587612cb8565b81358152908301908301610fc9565b3461048c57604036600319011261048c576020610c8760043561100b8161056c565b60243590612d4f565b3461048c575f36600319011261048c576040515f600754611034816101b8565b80845290602090600190818116908115610542575060011461106057610488856104dd8187038261027a565b60075f90815293507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b8385106110a6575050505081016020016104dd826104886104cd565b805486860184015293820193810161108a565b3461048c57608036600319011261048c576004356110d68161056c565b6044359060243560643567ffffffffffffffff811161048c576110fd90369060040161090e565b906002600154146111f55760026001556111178385612f6d565b6001600160a01b039182851692835f526002602052604096875f20865f52602052875f205442106111e45761114a615900565b97838151918083528201527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841161048c57866111d5967f6a68946ba06488db8585d7c7637fa954b574035fe15720ea760125ef8601725883606086958a6111db9f996111ce9a8c60051b8093868601371660208301528101030190a48587614b47565b36916108a5565b91614dfa565b610aa560018055565b8751632d2f65a360e11b8152600490fd5b604051633ee5aeb560e01b8152600490fd5b3461048c57604036600319011261048c576001600160a01b0360043561122c8161056c565b165f52600260205260405f206024355f52602052602060405f2054604051908152f35b67ffffffffffffffff811161022157601f01601f191660200190565b9291926112778261124f565b91611285604051938461027a565b82948184528183011161048c578281602093845f960137010152565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c576112d39036906004016108f3565b60249060243583811161048c573660238201121561048c578060040135926112fa8461088d565b93611308604051958661027a565b8085526020956024602087019260051b8501019336851161048c5760248101925b85841061133a57610aa58888612dde565b833583811161048c5782013660438201121561048c5789916113668392369060448a820135910161126b565b815201930192611329565b3461048c57602036600319011261048c5760043561138e8161056c565b61139661443b565b6001600160a01b038091169081156113ed575f548273ffffffffffffffffffffffffffffffffffffffff198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b604051631e4fbdf760e01b81525f6004820152602490fd5b634e487b7160e01b5f52601160045260245ffd5b90600282018092116106ba57565b90602082018092116106ba57565b90600182018092116106ba57565b919082018092116106ba57565b90604051918281549182825260209260208301915f5260205f20935f905b828210611484575050506102da9250038361027a565b85548452600195860195889550938101939091019061146e565b906114a88261088d565b6114b5604051918261027a565b82815280926114c6601f199161088d565b0190602036910137565b634e487b7160e01b5f52603260045260245ffd5b8051156114f15760200190565b6114d0565b80518210156114f15760209160051b010190565b5f1981146106ba5760010190565b9190915f926001600160a01b0382165f52600a60205260405f20815f5260205261154460405f20611450565b9361154f855161149e565b915f915f5b875181101561159d578061156a6001928a6114f6565b5184611576828a612d4f565b14611583575b5001611554565b61159661158f8761150a565b96886114f6565b525f61157c565b5095509050929190926115c1826001600160a01b03165f52600b60205260405f2090565b815f526020526115d660405f20548093612a0e565b146115de5750565b9250565b91908110156114f15760051b81013590601e198136030182121561048c57019081359167ffffffffffffffff831161048c57602001823603811361048c579190565b61045690546101b8565b90611641602092828151948592016103ff565b0190565b818110611650575050565b5f8155600101611645565b90601f8211611668575050565b6102da9160035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b906020601f840160051c830193106116b1575b601f0160051c0190611645565b90915081906116a4565b9190601f81116116ca57505050565b6102da925f5260205f20906020601f840160051c830193106116b157601f0160051c0190611645565b919091825167ffffffffffffffff81116102215761171b8161171584546101b8565b846116bb565b602080601f831160011461175c5750819061174d9394955f92611751575b50508160011b915f199060031b1c19161790565b9055565b015190505f80611739565b90601f19831695611770855f5260205f2090565b925f905b8882106117ab57505083600195969710611793575b505050811b019055565b01515f1960f88460031b161c191690555f8080611789565b80600185968294968601518155019501930190611774565b906001600160a01b036117e3602092959495604085526040850190610420565b9416910152565b604051906117f782610226565b5f8252565b6040519061180982610242565b600f82527f2261747472696275746573223a205b00000000000000000000000000000000006020830152565b6040519061184282610242565b600e82527f226f7574666974496473223a205b0000000000000000000000000000000000006020830152565b9060405191826060515f5b8181106118ad57509060206102da936118a182948401918383015f81528151948592016103ff565b0103808552018361027a565b6020919250806080015182828801015201908491611879565b60206102da9193929360405194816118e787935180928680870191016103ff565b82016118a1825180938680850191016103ff565b5f198101919082116106ba57565b906102da6021604051846119278296518092602080860191016103ff565b8101600b60fa1b602082015203600181018552018361027a565b906102da60226040518461195f8296518092602080860191016103ff565b810161174b60f21b602082015203600281018552018361027a565b6040906102da92949394825195869160209361199e815180928780880191016103ff565b83017f7b2274726169745f74797065223a202200000000000000000000000000000000858201526119d882518093876030850191016103ff565b016c111610113b30b63ab2911d101160991b6030820152611a028251809386603d850191016103ff565b0162089f4b60ea1b603d820152039081018552018361027a565b906102da604a60405184611a3a8296518092602080860191016103ff565b81017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022227d2c00000000000000000000000000000000000000000000604082015203602a81018552018361027a565b60316102da919392936040519481611ab88793518092602080870191016103ff565b82017f226261636b67726f756e644964223a20000000000000000000000000000000006020820152611af48251809360206030850191016103ff565b01600b60fa1b603082015203601181018552018361027a565b604a6102da919392936040519481611b2f8793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022000000000000000000000000000000000000000000000000006040820152611b918251809360206047850191016103ff565b0162089f4b60ea1b604782015203602a81018552018361027a565b60376102da919392936040519481611bce8793518092602080870191016103ff565b82017f226368616e6765734c6f636b6564556e74696c223a20000000000000000000006020820152611c0a8251809360206036850191016103ff565b01600b60fa1b603682015203601781018552018361027a565b60526102da919392936040519481611c458793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224368616e676573206c6f636b6564207560208201527f6e74696c222c202276616c7565223a20000000000000000000000000000000006040820152611ca78251809360206050850191016103ff565b01611f4b60f21b605082015203603281018552018361027a565b906102da603660405180947f22776f726e427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b8101600b60fa1b603582015203601681018552018361027a565b604b6102da919392936040519481611d428793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022576f726e2062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b01611f4b60f21b604982015203602b81018552018361027a565b906102da603660405180947f2275736564427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b604b6102da919392936040519481611e118793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022557365642062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b81601f8201121561048c578051611e758161124f565b92611e83604051948561027a565b8184526020828401011161048c5761045691602080850191016103ff565b9060208282031261048c57815167ffffffffffffffff811161048c576104569201611e5f565b6040513d5f823e3d90fd5b9081602091031261048c575190565b9081606091031261048c57805191604060208301519201516104568161056c565b612030600392959460a46102da956040519885611f298b975180926020808b0191016103ff565b86017f7b2274726169745f74797065223a202250726f64756374206e616d65222c202260208201527f76616c7565223a202200000000000000000000000000000000000000000000006040820152611f8b8251809360206049850191016103ff565b017f227d2c207b2274726169745f74797065223a202243617465676f7279206e616d60498201527f65222c202276616c7565223a20220000000000000000000000000000000000006069820152611fec8251809360206077850191016103ff565b017f227d2c207b2274726169745f74797065223a2022546f74616c20737570706c7960778201526c111610113b30b63ab2911d101160991b6097820152019061162e565b62227d5d60e81b815203601c1981018552018361027a565b906102da603d60405180947f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000602083015261208c81518092602086860191016103ff565b810103601d81018552018361027a565b6120a6828261319a565b9163ffffffff6120ba845163ffffffff1690565b1615612a03576120c86117ea565b506120d16117fc565b610100928385019462ffffff94856120ec885162ffffff1690565b16156128345750612116612110612107835163ffffffff1690565b63ffffffff1690565b836139e7565b9182516127f8575b60018661212e895162ffffff1690565b16036127ca576121626121418683612a0e565b9461215c612156612151886132bc565b611daa565b966132bc565b90611def565b955b8351156126a857509060606001600160a01b0394939260046040518097819363043c358d60e11b8352165afa9384156126a3575f905f9561266e575b5081516121b29063ffffffff16613990565b9688516121c19062ffffff1690565b62ffffff166121cf90613790565b97606084019889516121e49063ffffffff1690565b63ffffffff166121f3906132bc565b916121fd93611f02565b94612208838861417f565b9783516122189063ffffffff1690565b63ffffffff1661222790613990565b9980516122369062ffffff1690565b62ffffff1661224490613790565b9861224e906132bc565b91855161225e9063ffffffff1690565b63ffffffff1661226d906132bc565b915161227d9062ffffff166132bc565b905161228e9063ffffffff166132bc565b9160408701516122a19063ffffffff1690565b63ffffffff166122b0906132bc565b9360208801516122cc906cffffffffffffffffffffffffff1690565b6cffffffffffffffffffffffffff166122e4906132bc565b956122ee906132bc565b966122f8906132bc565b610120989098015161230c9060ff166132bc565b9860405180916020820161231f9161162e565b03601f1981018252612331908261027a565b61233a90614353565b9b6040519e8f9e8f602001612373906009907f7b226e616d65223a22000000000000000000000000000000000000000000000081520190565b61237c9161162e565b7f222c202270726f647563744e616d65223a20220000000000000000000000000081526013016123ab9161162e565b7f222c202263617465676f72794e616d65223a202200000000000000000000000081526014016123da9161162e565b7f222c2022746f6b656e4964223a200000000000000000000000000000000000008152600e016124099161162e565b7f2c2022757063223a20000000000000000000000000000000000000000000000081526009016124389161162e565b7f2c202263617465676f7279223a200000000000000000000000000000000000008152600e016124679161162e565b7f2c2022737570706c79223a2000000000000000000000000000000000000000008152600c016124969161162e565b7f2c202272656d61696e696e67223a2000000000000000000000000000000000008152600f016124c59161162e565b7f2c20227072696365223a200000000000000000000000000000000000000000008152600b016124f49161162e565b7f2c2022646563696d616c73223a200000000000000000000000000000000000008152600e016125239161162e565b7f2c202263757272656e6379223a200000000000000000000000000000000000008152600e016125529161162e565b7f2c2022646973636f756e74223a200000000000000000000000000000000000008152600e016125819161162e565b61016160f51b81526002016125959161162e565b61259e9161162e565b7f2c20226465736372697074696f6e223a2241207069656365206f662042616e6e81527f792052657461696c2e222c2265787465726e616c5f75726c223a22687474707360208201527f3a2f2f72657461696c2e62616e6e792e6574682e7375636b73222c22696d616760408201527f65223a22646174613a696d6167652f7376672b786d6c3b6261736536342c00006060820152607e0161263f9161162e565b61227d60f01b815260020103601f198101825261265c908261027a565b61266590614353565b61045690612048565b905061269391945060603d60601161269c575b61268b818361027a565b810190611ee1565b5093905f6121a0565b503d612681565b611ec7565b9350945050506126be601192945162ffffff1690565b1611156127b657604051636c0360eb60e01b81525f816004816001600160a01b0386165afa9283156126a357612747936020925f91612794575b50925b61271361270782613df0565b6001600160a01b031690565b604051630c8df17160e41b81526001600160a01b039092166004830152602482019290925293849190829081906044820190565b03915afa9081156126a357610456925f92612763575b50613e57565b61278691925060203d60201161278d575b61277e818361027a565b810190611ed2565b905f61275d565b503d612774565b6127b091503d805f833e6127a8818361027a565b810190611ea1565b5f6126f8565b6020612747926127c461029c565b926126fb565b6127f26127d78683612d4f565b946127ec6121566127e7886132bc565b611cc1565b90611d20565b95612164565b916128189060018761280d8a5162ffffff1690565b160361281e57613cdd565b9161211e565b61282f9061282a613b9e565b6118c6565b613cdd565b91909293966128438883612aa2565b9661284e8984611518565b979099612859611835565b9a5f9b5b8a518d10156128b2576128839061287d6128778f8e6114f6565b516132bc565b906118c6565b9b61288e8b516118fb565b811061289e575b6001019b61285d565b9b6128aa600191611909565b9c9050612895565b6128c7919395979a989b929496999c50611941565b995f9b5b88518d101561293c576129346001918c8f6129296121078f8f61291161290561291e936128fe61292e98612919956114f6565b519061319a565b9687015162ffffff1690565b62ffffff1690565b613790565b935163ffffffff1690565b613990565b9161197a565b9c019b6128cb565b939894995094999196509499508515155f146129f2579061298661292961210761297c61297561298c9661296f8c6132bc565b90611a96565b998761319a565b5163ffffffff1690565b90611b0d565b955b6129ba866129ad846001600160a01b03165f52600260205260405f2090565b905f5260205260405f2090565b544281116129c9575b50612164565b94966129e56121566129eb93996129df896132bc565b90611bac565b90611c23565b955f6129c3565b94506129fd90611a1c565b9561298e565b5050506104566117ea565b6001600160a01b0316805f52600e60205260405f20825f5260205260405f2054918215918215612a47575b5050612a425790565b505f90565b9091505f52600b60205260405f20825f5260205260405f205414155f80612a39565b916060816001600160a01b039260209497969760408752816040880152838701375f828287010152601f80199101168401019416910152565b612aac828261319a565b9163ffffffff612ac0845163ffffffff1690565b1615612a035760609062ffffff612ade61010086015162ffffff1690565b16612b825792612b22612b2892612af86104569686611518565b939080151580612b7a575b612b44575b50612b1d61210761287d925163ffffffff1690565b61447a565b92614941565b8051612b35575b50613cdd565b612b3e916118c6565b5f612b2f565b61287d919250612107612b71612b6c612b6661210761297c612b1d968d61319a565b8a6139e7565b61186e565b93925050612b08565b506001612b03565b5050612b98612107612b9e935163ffffffff1690565b906139e7565b8051612bad57506104566117ea565b61045690613cdd565b9092612bc2848361319a565b9363ffffffff612bd6865163ffffffff1690565b1615612cab5760609062ffffff612bf461010088015162ffffff1690565b16612c92579061045695612c0b612c309386611518565b948115159081612c8a575b50612c625750612b1d61210761287d925163ffffffff1690565b92612c3d575b5050613cdd565b612c4691614941565b8051612c53575b80612c36565b612c5c916118c6565b5f612c4d565b61287d919250612107612b71612b6c612c8461210761297c612b1d968c61319a565b896139e7565b90505f612c16565b5050509050612b98612107612b9e935163ffffffff1690565b50505050506104566117ea565b91612cc161443b565b5f925b8051841015612d4957612cd784826114f6565b5193612ce381856114f6565b51855f5260049560208781526040805f2054612d3a57907fb10eb6fc7557a7109693cb8f3fac48d44328de56c0368ee4cac539b424d2cad991600196979899845f52825284815f205551338152a301929190612cc4565b51632165e0ab60e01b81528890fd5b50915050565b6001600160a01b0381165f52600f60205260405f20825f5260205260405f2054908115612dd757612d91906001600160a01b03165f52600a60205260405f2090565b815f52602052612da360405f20611450565b915f5b8351811015612dcf5781612dba82866114f6565b5114612dc857600101612da6565b5050905090565b505050505f90565b5050505f90565b91612de761443b565b5f925b8051841015612d4957612dfd84826114f6565b5193612e0981856114f6565b5194805f52602095600c87526040805f20825167ffffffffffffffff811161022157612e398161171584546101b8565b89601f8211600114612eb75750917f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e969391612e9184612ea09560019a9b9c9d5f91612eac57508160011b915f199060031b1c19161790565b90555b519182913390836117c3565b0390a201929190612dea565b90508501515f610d65565b99601f198216612eca845f5260205f2090565b9b5f905b828210612f3357505091600198999a9b7f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e9696949282612ea0979510612f1b575b5050881b88019055612e94565b8501515f1960f88460031b161c191690555f80612f0e565b80600181939f868b015181550194019d01909c929c612ece565b51906102da8261056c565b9081602091031261048c57516104568161056c565b6040516331a9108f60e11b815260048101929092526001600160a01b03906020908390602490829085165afa9182156126a3575f92612fcd575b5080612fb1615900565b16911603612fbb57565b6040516341eb334360e11b8152600490fd5b612ff091925060203d602011612ff7575b612fe8818361027a565b810190612f58565b905f612fa7565b503d612fde565b519063ffffffff8216820361048c57565b51906cffffffffffffffffffffffffff8216820361048c57565b519061ffff8216820361048c57565b519062ffffff8216820361048c57565b519060ff8216820361048c57565b51906102da82610ef6565b60208183031261048c57805167ffffffffffffffff9182821161048c57016101e08184031261048c57613092610880565b9261309c82612ffe565b84526130aa6020830161300f565b60208501526130bb60408301612ffe565b60408501526130cc60608301612ffe565b60608501526130dd6080830161300f565b60808501526130ee60a08301613029565b60a08501526130ff60c08301612f4d565b60c085015260e082015160e085015261010061311c818401613038565b9085015261012061312e818401613048565b90850152610140613140818401613056565b90850152610160613152818401613056565b90850152610180613164818401613056565b908501526101a0613176818401613056565b908501526101c0928383015190811161048c576131939201611e5f565b9082015290565b61324d915f9160606101c06040516131b181610204565b85815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201528561010082015285610120820152856101408201528561016082015285610180820152856101a0820152015261321561270782613df0565b9060405180958194829363c44a8e6d60e01b8452600484016040905f9294936001600160a01b03606083019616825260208201520152565b03915afa9081156126a3575f91613262575090565b61045691503d805f833e613276818361027a565b810190613061565b60405161328a81610226565b5f8152905f368137565b9061329e8261124f565b6132ab604051918261027a565b82815280926114c6601f199161124f565b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808210156133fd575b506d04ee2d6d415b85acef8100000000808310156133ee575b50662386f26fc10000808310156133df575b506305f5e100808310156133d0575b50612710808310156133c1575b5060648210156133b1575b600a809210156133a7575b60019081602161335360018701613294565b95860101905b613365575b5050505090565b5f19019083907f30313233343536373839616263646566000000000000000000000000000000008282061a8353049182156133a257919082613359565b61335e565b9160010191613341565b9190606460029104910191613336565b6004919392049101915f61332b565b6008919392049101915f61331e565b6010919392049101915f61330f565b6020919392049101915f6132fd565b60409350810491505f6132e4565b6040519061341882610242565b600c82527f5370656369616c20426f647900000000000000000000000000000000000000006020830152565b6040519061345182610242565b600c82527f5370656369616c204865616400000000000000000000000000000000000000006020830152565b6040519061348a82610242565b600c82527f5370656369616c204c65677300000000000000000000000000000000000000006020830152565b604051906134c382610242565b600c82527f5370656369616c205375697400000000000000000000000000000000000000006020830152565b604051906134fc82610242565b6004825263119a5cdd60e21b6020830152565b6040519061351c82610242565b600b82527f5375697420626f74746f6d0000000000000000000000000000000000000000006020830152565b6040519061355582610242565b600882527f5375697420746f700000000000000000000000000000000000000000000000006020830152565b6040519061358e82610242565b600482526314dd5a5d60e21b6020830152565b604051906135ae82610242565b60048252631219585960e21b6020830152565b604051906135ce82610242565b600882527f4865616420746f700000000000000000000000000000000000000000000000006020830152565b6040519061360782610242565b600582527f4d6f7574680000000000000000000000000000000000000000000000000000006020830152565b6040519061364082610242565b600782527f476c6173736573000000000000000000000000000000000000000000000000006020830152565b6040519061367982610242565b60048252634579657360e01b6020830152565b6040519061369982610242565b600882527f4e65636b6c6163650000000000000000000000000000000000000000000000006020830152565b604051906136d282610242565b60048252634c65677360e01b6020830152565b604051906136f282610242565b600882527f4261636b736964650000000000000000000000000000000000000000000000006020830152565b6040519061372b82610242565b600a82527f4261636b67726f756e64000000000000000000000000000000000000000000006020830152565b6040519061376482610242565b600a82527f42616e6e7920626f6479000000000000000000000000000000000000000000006020830152565b8061379e5750610456613757565b600181036137af575061045661371e565b600281036137c057506104566136e5565b600881036137d157506104566136c5565b600381036137e2575061045661368c565b600581036137f3575061045661366c565b600681036138045750610456613633565b6007810361381557506104566135fa565b600c810361382657506104566135c1565b6004810361383757506104566135a1565b600981036138485750610456613581565b600b81036138595750610456613548565b600a810361386a575061045661350f565b600d810361387b57506104566134ef565b600e810361388c57506104566134b6565b600f810361389d575061045661347d565b601081036138ae5750610456613444565b6011146138bd576104566117ea565b61045661340b565b604051906138d282610242565b600882527f4f726967696e616c0000000000000000000000000000000000000000000000006020830152565b6040519061390b82610242565b600682527f4f72616e676500000000000000000000000000000000000000000000000000006020830152565b6040519061394482610242565b600482526350696e6b60e01b6020830152565b6040519061396482610242565b600582527f416c69656e0000000000000000000000000000000000000000000000000000006020830152565b600181036139a15750610456613957565b600281036139b25750610456613937565b600381036139c357506104566138fe565b600481036139d457506104566138c5565b5f52600c60205261045660405f2061035f565b90805f52602091600d83526139fe60405f2061035f565b8051613b0b5750613a5091816001600160a01b03613a1c8694613df0565b1690604051809581948293632f54648f60e21b845260048401602090939291936001600160a01b0360408201951681520152565b03915afa80156126a357613ab892613a7d604992610456945f91613aee575b50613a7861029c565b613e57565b60405194827f3c696d61676520687265663d220000000000000000000000000000000000000087948501528251928391602d860191016103ff565b81017f222077696474683d2234303022206865696768743d22343030222f3e00000000602d82015203602981018452018261027a565b613b059150833d851161278d5761277e818361027a565b5f613a6f565b9250505090565b6009545f9291613b21826101b8565b91600190818116908115613b8b5750600114613b3c57505050565b909192935060095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af905f915b848310613b78575050500190565b8181602092548587015201920191613b6a565b60ff191683525050811515909102019150565b603b610456613c2d610a056008613cb46040516003613ca481613c9481613c846044602088017f7b66696c6c3a6e6f6e653b7d00000000000000000000000000000000000000008152600c8952613bf489610242565b6040519e8f9d8e7f3c7374796c653e2e6f7b66696c6c3a233830383038303b7d2e6231000000000060208201528b5192839101846103ff565b8d016217311960e91b603b820152895190613c4c82603e8301856103ff565b01622e623360e81b603e820152613c6a8a51809360418401906103ff565b01613c7d60418201620b988d60ea1b9052565b018761162e565b622e613160e81b8152018561162e565b6217309960e91b8152018361162e565b622e613360e81b8152019061162e565b7f3c2f7374796c653e000000000000000000000000000000000000000000000000815201613b12565b906102da60bb60405180947f3c7376672077696474683d2234303022206865696768743d223430302220766960208301527f6577426f783d223020302034303020343030222066696c6c3d2277686974652260408301527f20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7360608301527f7667223e3c7374796c653e2e6f7b66696c6c3a233035303530353b7d2e777b6660808301527f696c6c3a236639663966393b7d3c2f7374796c653e000000000000000000000060a0830152613dba81518092602060b5860191016103ff565b81017f3c2f7376673e000000000000000000000000000000000000000000000000000060b582015203609b81018552018361027a565b60206001600160a01b039160046040518094819363507f146560e01b8352165afa9081156126a3575f91613e22575090565b90506020813d602011613e4f575b81613e3d6020938361027a565b8101031261048c57516104568161056c565b3d9150613e30565b9061045690613e85604051602092609160f51b84830152602282015260228152613e808161025e565b6152cf565b926040519381613e9e86935180928680870191016103ff565b8201613eb2825180938680850191016103ff565b0103808452018261027a565b906102da602160405184613edc8296518092602080860191016103ff565b8101600160fd1b602082015203600181018552018361027a565b60405190613f0382610242565b600a82527f2072656d61696e696e67000000000000000000000000000000000000000000006020830152565b906102da929493602192613f98604051978894602093613f578151809287808b0191016103ff565b8601613f6b825180938780850191016103ff565b01602f60f81b84820152613f8782518093868a850191016103ff565b0191835193849187850191016103ff565b0103600181018552018361027a565b906102da929493602d92614026604051978894602093613fcf8151809287808b0191016103ff565b86017f2028534f4c44204f555429200000000000000000000000000000000000000000858201526140098251809387602c850191016103ff565b01602f60f81b602c820152613f8782518093868a850191016103ff565b0103600d81018552018361027a565b6102da91613f98949360219260405196879360209261405c8151809286808a0191016103ff565b8501614070825180938680850191016103ff565b0191602f60f81b81840152835193849187850191016103ff565b906102da6022604051846140a88296518092602080860191016103ff565b81016101d160f51b602082015203600281018552018361027a565b60216102da9193929360405194816140e58793518092602080870191016103ff565b82016140fa82518093602080850191016103ff565b01600160fd1b602082015203600181018552018361027a565b60256102da9193929360405194816141358793518092602080870191016103ff565b82017f5550432023000000000000000000000000000000000000000000000000000000602082015261417082518093602087850191016103ff565b0103600581018552018361027a565b906141ed61045692633b9aca006141a86141a3612929612107875163ffffffff1690565b613ebe565b91066141b2613ef6565b81156142445750906141c66141e8926132bc565b6141e26141dd612107606088015163ffffffff1690565b6132bc565b91614035565b61408a565b9061420561291961291161010084015162ffffff1690565b8051614227575b506141dd612107614221925163ffffffff1690565b90614113565b61210761423b6141dd9261422194956140c3565b9392505061420c565b9050604084019163ffffffff61425e845163ffffffff1690565b1680614299575061427c6141dd6121076141e8955163ffffffff1690565b6142936141dd612107606089015163ffffffff1690565b91613fa7565b6141e893506142a7906132bc565b6142be6141dd612107606089015163ffffffff1690565b91613f2f565b604051906142d18261025e565b604082527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f6040837f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201520152565b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116036106ba57565b805115614432576143626142c4565b61437e6143796143728451611419565b6003900490565b614323565b9161439061438b84611427565b613294565b92835280815182019060208501935b8282106143e0575050506003905106806001146143cf576002146143c1575090565b603d60f81b5f199091015290565b50613d3d60f01b6001199091015290565b9091936004906003809401938451600190603f9082828260121c16880101518553828282600c1c16880101518386015382828260061c168801015160028601531685010151908201530193919061439f565b506104566117ea565b6001600160a01b03805f541681614450615900565b16036144595750565b602490614464615900565b60405163118cdaa760e01b815291166004820152fd5b614483906157d4565b93604096959693919351968796602088017f3c7374796c653e2e62317b66696c6c3a2300000000000000000000000000000090528051908160318a0191602001916144cd926103ff565b8701603181017f3b7d2e62327b66696c6c3a230000000000000000000000000000000000000000905281519182603d8301916020019161450c926103ff565b01603d81017f3b7d2e62337b66696c6c3a23000000000000000000000000000000000000000090528151918260498301916020019161454a926103ff565b0160498101614578907f3b7d2e62347b66696c6c3a2300000000000000000000000000000000000000009052565b6055016145849161162e565b7f3b7d2e61317b66696c6c3a2300000000000000000000000000000000000000008152600c016145b39161162e565b7f3b7d2e61327b66696c6c3a2300000000000000000000000000000000000000008152600c016145e29161162e565b7f3b7d2e61337b66696c6c3a2300000000000000000000000000000000000000008152600c016146119161162e565b7f3b7d3c2f7374796c653e000000000000000000000000000000000000000000008152600a0161464090613b12565b03601f1981018252610456908261027a565b90604051918260209161466d815180928580860191016103ff565b6007545f91830161467d826101b8565b9160019081811690811561470657506001146146aa575b5050506102da925003601f19810184528361027a565b94925060075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688945f905b8382106146ee5750506102da945001015f8080614694565b865482840186015295860195889550908401906146d6565b9150506102da95935060ff9291921916838301528015150201015f8080614694565b906040519182602091614743815180928580860191016103ff565b6008545f918301614753826101b8565b91600190818116908115614706575060011461477f575050506102da925003601f19810184528361027a565b94925060085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3945f905b8382106147c35750506102da945001015f8080614694565b865482840186015295860195889550908401906147ab565b9060405191826020916147f6815180928580860191016103ff565b6005545f918301614806826101b8565b916001908181169081156147065750600114614832575050506102da925003601f19810184528361027a565b94925060055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0945f905b8382106148765750506102da945001015f8080614694565b8654828401860152958601958895509084019061485e565b9060405191826020916148a9815180928580860191016103ff565b6006545f9183016148b9826101b8565b9160019081811690811561470657506001146148e5575050506102da925003601f19810184528361027a565b94925060065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f945f905b8382106149295750506102da945001015f8080614694565b86548284018601529586019588955090840190614911565b91909160608351915f925f935f945f9085935f5b61495e82611435565b811015614b3b5781811015614b2f57614977818c6114f6565b5195614983878961319a565b956149a961210761499e6129116101008b015162ffffff1690565b985163ffffffff1690565b915b600388811492908315614b00575050506001976149c8838b6139e7565b9b5b60048914614af7575b6005898103614aa35750506001965b6007898103614a61575050600b6001985b1180614a57575b614a3d575b15159081614a34575b50614a1c575b506001019794939297614955565b6001919861287d614a2d928a6139e7565b9790614a0e565b9050155f614a08565b9a614a48919a6118c6565b98614a516117ea565b9a6149ff565b508b5115156149fa565b8991991180614a9b575b80614a93575b614a7e575b600b906149f3565b975099614a8a9061488e565b99600197614a76565b508615614a71565b508815614a6b565b899891981180614aef575b80614ae7575b156149e257965060019a8b84145f14614ad857614ad0906147db565b9a5b966149e2565b614ae190614728565b9a614ad2565b508615614ab4565b508715614aae565b600196506149d3565b899d919a929d1180614b27575b156149ca57985099614b1e90614652565b996001986149ca565b508915614b0d565b5f9560129587916149ab565b50505050505050925050565b9190614b68816129ad856001600160a01b03165f52600b60205260405f2090565b54614b738185612a0e565b818414801590614d75575b614b8a575b5050505050565b8214614d5c575b508115614d35576040516331a9108f60e11b808252600482018490526001600160a01b0392918584169060208082602481865afa80156126a35786925f91614d18575b5082614bde615900565b911696168614159384614ca0575b50505050614c8e5763ffffffff614c0661297c858761319a565b1615614c7c5782614c2c826129ad876001600160a01b03165f52600b60205260405f2090565b55614c4c836129ad866001600160a01b03165f52600e60205260405f2090565b553003614c61575b50505b5f80808080614b83565b614c75913090614c6f615900565b90615959565b5f80614c54565b60405163c3095f8760e01b8152600490fd5b60405163d03702f960e01b8152600490fd5b819293945090614cd791614cb2615900565b95614cbd8a8c612a0e565b916040518095819482938352600483019190602083019252565b03915afa9081156126a35783925f92614cfb575b505016911614155f808080614bec565b614d119250803d10612ff757612fe8818361027a565b5f80614ceb565b614d2f9150823d8411612ff757612fe8818361027a565b5f614bd4565b614d5691506129ad5f936001600160a01b03165f52600b60205260405f2090565b55614c57565b614d6f90614d68615900565b3086615959565b5f614b91565b5082811415614b7e565b81519167ffffffffffffffff831161022157680100000000000000008311610221578154838355808410614dde575b506020809101915f5260205f20905f5b848110614dcc575050505050565b83518382015592810192600101614dbe565b614df490835f528460205f209182019101611645565b5f614dae565b909291925f935f915f92614e2b614e26836129ad886001600160a01b03165f52600a60205260405f2090565b611450565b955f945f945f908951615269575b90969299935f999899969296975b82518910156151de579a8a9b614e608a859d9c9d6114f6565b516040516331a9108f60e11b8152600481018290529d9097906001600160a01b03168e6024815a93602094fa9d8e156126a3575f9e6151bd575b508d6001600160a01b0380614ead615900565b92169116141580615132575b61512057614edb612911610100614ed18f8c9061319a565b015162ffffff1690565b9960028b108015615116575b615104578b151590816150f9575b506150e75760048a0361503957506001949095919293955b8981111580615030575b15614fab57508a949392918188614f3b93141580614f99575b614f80575b5061150a565b94858c805182105f14614f7357610100614ed1614f5e614f6694612911946114f6565b51809961319a565b905b959192939490614f0d565b505093505f935f90614f68565b614f9390614f8c615900565b3089615959565b5f614f35565b5089614fa58289612d4f565b14614f30565b93966001929a959d999199969396898d81614fc68583612d4f565b03614fe3575b50505050930197939a949091999899969296614e47565b836129ad615002926001600160a01b03165f52600f60205260405f2090565b556001600160a01b033091160361501c575b80898d614fcc565b61502a90308d614c6f615900565b5f615014565b50801515614f17565b939260098a036150525750600192959192939490614f0d565b9260058a1480156150dd575b80156150d3575b80156150c9575b806150c2575b1561508957604051639b8fdcd160e01b8152600490fd5b600b8a1480156150b8575b806150b1575b15614f68576040516306f7588760e01b8152600490fd5b508361509a565b50600a8a14615094565b5084615072565b50600c8a1461506c565b5060078a14615065565b5060068a1461505e565b604051633869abd960e21b8152600490fd5b90508a11155f614ef5565b60405163b0ee46ab60e01b8152600490fd5b5060118b11614ee7565b60405163032cac0360e01b8152600490fd5b508b6001600160a01b036020615175615149615900565b936151548d82612d4f565b6040519485809481936331a9108f60e11b8352600483019190602083019252565b0392165afa9081156126a3576001600160a01b039182915f9161519e575b501691161415614eb9565b6151b7915060203d602011612ff757612fe8818361027a565b5f615193565b6151d7919e5060203d602011612ff757612fe8818361027a565b9c5f614e9a565b5050979550915091949250805b61521a575050506102da92916129ad615215926001600160a01b03165f52600a60205260405f2090565b614d7f565b90818561522a6152359487612d4f565b14615256575061150a565b815181101561524f5761524881836114f6565b51806151eb565b5f806151eb565b614f9390615262615900565b3087615959565b955050615275886114e4565b519461528a612911610100614ed1898c61319a565b90614e39565b604051906105e0820182811067ffffffffffffffff82111761022157604052602e82526105c0366020840137565b9081518110156114f1570160200190565b90815115615401576152df615290565b915f6152ea846114e4565b5260019080515f915b8183106153185750505061530e6153139161045693946159bd565b6159ff565b615a44565b90919361536061535a61535461532e88866152be565b517fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b60ff1690565b905f915b60ff90888288168510156153c4576001929161539961539361535a61538c8961539f966114f6565b5160ff1690565b60081b90565b90611443565b6153bb603a92838306166153b3878d6114f6565b9060ff169052565b04920191615364565b509196925050805b6153db575060010191906152f3565b9360ff6001603a926153f783858a06166153b38584168d6114f6565b01169404806153cc565b905061045661327e565b6040519061541882610242565b600682527f66666539303000000000000000000000000000000000000000000000000000006020830152565b6040519061545182610242565b600682527f66666337303000000000000000000000000000000000000000000000000000006020830152565b6040519061548a82610242565b600682527f66336136303300000000000000000000000000000000000000000000000000006020830152565b604051906154c382610242565b600682527f39363561316100000000000000000000000000000000000000000000000000006020830152565b604051906154fc82610242565b600682527f66663763303200000000000000000000000000000000000000000000000000006020830152565b6040519061553582610242565b600682527f66643336303000000000000000000000000000000000000000000000000000006020830152565b6040519061556e82610242565b600682527f63333265306400000000000000000000000000000000000000000000000000006020830152565b604051906155a782610242565b600682527f66666438633500000000000000000000000000000000000000000000000000006020830152565b604051906155e082610242565b600682527f66663936613900000000000000000000000000000000000000000000000000006020830152565b6040519061561982610242565b600682527f66653538386200000000000000000000000000000000000000000000000000006020830152565b6040519061565282610242565b600682527f63393266343500000000000000000000000000000000000000000000000000006020830152565b6040519061568b82610242565b600682527f36376437353700000000000000000000000000000000000000000000000000006020830152565b604051906156c482610242565b600682527f33306132323000000000000000000000000000000000000000000000000000006020830152565b604051906156fd82610242565b600682527f32313761313500000000000000000000000000000000000000000000000000006020830152565b6040519061573682610242565b600682527f30393439306600000000000000000000000000000000000000000000000000006020830152565b6040519061576f82610242565b600682527f65343833656600000000000000000000000000000000000000000000000000006020830152565b604051906157a882610242565b600682527f64633266656600000000000000000000000000000000000000000000000000006020830152565b6001810361581b57506157e561567e565b906157ee6156b7565b906157f76156f0565b90615800615729565b90615809615762565b9061581261579b565b9061045661579b565b60028103615862575061582c61559a565b906158356155d3565b9061583e61560c565b90615847615645565b9061585061559a565b906158596155d3565b9061045661560c565b600381036158a9575061587361547d565b9061587c6154ef565b90615885615528565b9061588e615561565b9061589761547d565b906158a06154ef565b90610456615528565b6004146158c257604051639a7b332360e01b8152600490fd5b6158ca61540b565b906158d3615444565b906158dc61547d565b906158e56154b6565b906158ee61540b565b906158f7615444565b9061045661547d565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633148061594e575b1561594a5760131936013681116106ba573560601c90565b3390565b506014361015615932565b909291926001600160a01b0380921690813b1561048c575f6064928195856040519889978896632142170760e11b885216600487015216602485015260448401525af180156126a3576159a95750565b67ffffffffffffffff811161022157604052565b9060ff809116906159cd8261149e565b925f5b8381106159de575050505090565b80836159ec600193856114f6565b51166159f882886114f6565b52016159d0565b908151615a0b8161149e565b905f5b818110615a1c575090925050565b60019060ff615a315f198389510301886114f6565b5116615a3d82866114f6565b5201615a0e565b8051615a4f8161124f565b916040615a5f604051948561027a565b828452615a6b8361124f565b60209190601f190136868401375f5b848110615a8957505050505090565b6001908251615a978161025e565b603a81527f31323334353637383941424344454647484a4b4c4d4e50515253545556575859858201527f5a6162636465666768696a6b6d6e6f707172737475767778797a000000000000848201527fff0000000000000000000000000000000000000000000000000000000000000090615b1f9060ff615b17858a6114f6565b5116906152be565b51165f1a615b2d82896152be565b5301615a7a56fea26469706673582212203a4c382e9b69538f97fd89527b2bef347de3dfd6b15949e701b2c0d26013e29864736f6c63430008170033",
|
|
908
|
+
"deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c806257bfdd146101b357806305b2ae1b146101ae578063150b7a02146101a9578063187be308146101a457806318ab522d1461019f5780632150a1381461019a5780632580833d1461019557806331a290ac14610190578063572b6c051461018b57806359a81d91146101865780635e703e71146101815780636aff31dd1461017c578063715018a61461017757806379a2696e146101725780637da0a8771461016d578063875e4bea146101685780638da5cb5b14610163578063a0122c091461015e578063a22d0dd514610159578063b03a3eab14610154578063b1fa9e7b1461014f578063b3fa27831461014a578063c06e7bc714610145578063c122804614610140578063d756227e1461013b5763f2fde38b14610136575f80fd5b611371565b6112a1565b611207565b6110b9565b611014565b610fe9565b610f45565b610f00565b610e64565b610e3f565b610cd2565b610c8f565b610c5c565b610bf8565b610bce565b610ba2565b610afd565b610aa7565b61093f565b6107db565b610736565b6106bf565b610629565b6105ab565b610490565b610459565b90600182811c921680156101e6575b60208310146101d257565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101c7565b634e487b7160e01b5f52604160045260245ffd5b6101e0810190811067ffffffffffffffff82111761022157604052565b6101f0565b6020810190811067ffffffffffffffff82111761022157604052565b6040810190811067ffffffffffffffff82111761022157604052565b6060810190811067ffffffffffffffff82111761022157604052565b90601f8019910116810190811067ffffffffffffffff82111761022157604052565b604051905f82600354916102af836101b8565b8083529260209060019081811690811561033b57506001146102dc575b50506102da9250038361027a565b565b91509260035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b935f925b82841061032357506102da9450505081016020015f806102cc565b85548885018301529485019487945092810192610308565b915050602092506102da94915060ff191682840152151560051b8201015f806102cc565b9060405191825f8254610371816101b8565b908184526020946001916001811690815f146103dd575060011461039f575b5050506102da9250038361027a565b5f90815285812095935091905b8183106103c55750506102da93508201015f8080610390565b855488840185015294850194879450918301916103ac565b925050506102da94925060ff191682840152151560051b8201015f8080610390565b5f5b8381106104105750505f910152565b8181015183820152602001610401565b90602091610439815180928185528580860191016103ff565b601f01601f1916010190565b906020610456928181520190610420565b90565b3461048c575f36600319011261048c5761048861047461029c565b604051918291602083526020830190610420565b0390f35b5f80fd5b3461048c575f36600319011261048c576040515f6008546104b0816101b8565b8084529060209060019081811690811561054257506001146104e9575b610488856104dd8187038261027a565b60405191829182610445565b60085f90815293507ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b83851061052f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610513565b869550610488969350602092506104dd94915060ff191682840152151560051b82010192936104cd565b6001600160a01b0381160361048c57565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020838186019501011161048c57565b3461048c57608036600319011261048c576004356105c88161056c565b6105d360243561056c565b60643567ffffffffffffffff811161048c576105f390369060040161057d565b50506001600160a01b033091160361061757604051630a85bd0160e11b8152602090f35b604051633b2c6aa160e21b8152600490fd5b3461048c57604036600319011261048c576004356106468161056c565b6001600160a01b036024359161065c8382612f6d565b16805f52600260205260405f20825f5260205260405f20549162093a804201928342116106ba5783106106a8576106a5915f52600260205260405f20905f5260205260405f2090565b55005b604051631057c89560e21b8152600490fd5b611405565b3461048c57604036600319011261048c576106e86004356106df8161056c565b60243590611518565b90604051918291604083019083526020906040602085015282518091526020606085019301915f5b82811061071f57505050500390f35b835185528695509381019392810192600101610710565b3461048c575f36600319011261048c576040515f600554610756816101b8565b80845290602090600190818116908115610542575060011461078257610488856104dd8187038261027a565b60055f90815293507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b8385106107c8575050505081016020016104dd826104886104cd565b80548686018401529382019381016107ac565b3461048c575f36600319011261048c576040515f6006546107fb816101b8565b80845290602090600190818116908115610542575060011461082757610488856104dd8187038261027a565b60065f90815293507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b83851061086d575050505081016020016104dd826104886104cd565b8054868601840152938201938101610851565b604051906102da82610204565b67ffffffffffffffff81116102215760051b60200190565b92916108b08261088d565b916108be604051938461027a565b829481845260208094019160051b810192831161048c57905b8282106108e45750505050565b813581529083019083016108d7565b9080601f8301121561048c57816020610456933591016108a5565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020808501948460051b01011161048c57565b3461048c5760408060031936011261048c5760049067ffffffffffffffff823581811161048c5761097390369085016108f3565b9060243590811161048c5761098b903690850161090e565b9290915f5b8151811015610aa5576109a381836114f6565b516109b96109b28388886115e2565b369161126b565b6109d36109ce835f52600d60205260405f2090565b611624565b610a95576109e9825f52600460205260405f2090565b548015610a855785516020810190610a1381610a05848761162e565b03601f19810183528261027a565b51902003610a7557907faeb631726b45aa3f6b09da79f7af03a9784614901f61a967ed84d63c37b7edc7610a6c83610a5f60019695610a5a865f52600d60205260405f2090565b6116f3565b87519182913390836117c3565b0390a201610990565b845163d8e55daf60e01b81528890fd5b85516338d87d3960e01b81528990fd5b845163444244f560e01b81528890fd5b005b3461048c57602036600319011261048c576020600435610ac68161056c565b6001600160a01b039060405191807f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566169116148152f35b3461048c575f36600319011261048c576040515f600954610b1d816101b8565b808452906020906001908181169081156105425750600114610b4957610488856104dd8187038261027a565b60095f90815293507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b838510610b8f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610b73565b3461048c57604036600319011261048c57610488610474600435610bc58161056c565b6024359061209c565b3461048c57602036600319011261048c576004355f526004602052602060405f2054604051908152f35b3461048c575f36600319011261048c57610c1061443b565b5f6001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048c57604036600319011261048c576020610c87600435610c7e8161056c565b60243590612a0e565b604051908152f35b3461048c575f36600319011261048c5760206040516001600160a01b037f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566168152f35b3461048c5760208060031936011261048c5767ffffffffffffffff60043581811161048c57610d0590369060040161057d565b9091610d0f61443b565b811161022157610d2981610d246003546101b8565b61165b565b5f92601f8211600114610d9d5750610d7881807f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f955f91610d92575b508160011b915f199060031b1c19161790565b6003555b610d8d604051928392339184612a69565b0390a1005b90508401355f610d65565b60035f52601f198216937fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b868210610e27575050827f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f9510610e0e575b5050600181811b01600355610d7c565b8301355f19600384901b60f8161c191690555f80610dfe565b80600184958294958901358155019401920190610dcc565b3461048c575f36600319011261048c5760206001600160a01b035f5416604051908152f35b3461048c57604036600319011261048c57610eda600435610e848161056c565b610488610e9e610e97602435809461319a565b809361417f565b91610ee8610ec563ffffffff610ebd62ffffff61010086015116613790565b935116613990565b91604051958695606087526060870190610420565b908582036020870152610420565b908382036040850152610420565b8015150361048c57565b3461048c57608036600319011261048c57610488610474600435610f238161056c565b604435610f2f81610ef6565b60643591610f3c83610ef6565b60243590612bb6565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c57610f779036906004016108f3565b9060243590811161048c573660238201121561048c578060040135610f9b8161088d565b91610fa9604051938461027a565b8183526020916024602085019160051b8301019136831161048c57602401905b828210610fda57610aa58587612cb8565b81358152908301908301610fc9565b3461048c57604036600319011261048c576020610c8760043561100b8161056c565b60243590612d4f565b3461048c575f36600319011261048c576040515f600754611034816101b8565b80845290602090600190818116908115610542575060011461106057610488856104dd8187038261027a565b60075f90815293507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b8385106110a6575050505081016020016104dd826104886104cd565b805486860184015293820193810161108a565b3461048c57608036600319011261048c576004356110d68161056c565b6044359060243560643567ffffffffffffffff811161048c576110fd90369060040161090e565b906002600154146111f55760026001556111178385612f6d565b6001600160a01b039182851692835f526002602052604096875f20865f52602052875f205442106111e45761114a615900565b97838151918083528201527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841161048c57866111d5967f6a68946ba06488db8585d7c7637fa954b574035fe15720ea760125ef8601725883606086958a6111db9f996111ce9a8c60051b8093868601371660208301528101030190a48587614b47565b36916108a5565b91614dfa565b610aa560018055565b8751632d2f65a360e11b8152600490fd5b604051633ee5aeb560e01b8152600490fd5b3461048c57604036600319011261048c576001600160a01b0360043561122c8161056c565b165f52600260205260405f206024355f52602052602060405f2054604051908152f35b67ffffffffffffffff811161022157601f01601f191660200190565b9291926112778261124f565b91611285604051938461027a565b82948184528183011161048c578281602093845f960137010152565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c576112d39036906004016108f3565b60249060243583811161048c573660238201121561048c578060040135926112fa8461088d565b93611308604051958661027a565b8085526020956024602087019260051b8501019336851161048c5760248101925b85841061133a57610aa58888612dde565b833583811161048c5782013660438201121561048c5789916113668392369060448a820135910161126b565b815201930192611329565b3461048c57602036600319011261048c5760043561138e8161056c565b61139661443b565b6001600160a01b038091169081156113ed575f548273ffffffffffffffffffffffffffffffffffffffff198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b604051631e4fbdf760e01b81525f6004820152602490fd5b634e487b7160e01b5f52601160045260245ffd5b90600282018092116106ba57565b90602082018092116106ba57565b90600182018092116106ba57565b919082018092116106ba57565b90604051918281549182825260209260208301915f5260205f20935f905b828210611484575050506102da9250038361027a565b85548452600195860195889550938101939091019061146e565b906114a88261088d565b6114b5604051918261027a565b82815280926114c6601f199161088d565b0190602036910137565b634e487b7160e01b5f52603260045260245ffd5b8051156114f15760200190565b6114d0565b80518210156114f15760209160051b010190565b5f1981146106ba5760010190565b9190915f926001600160a01b0382165f52600a60205260405f20815f5260205261154460405f20611450565b9361154f855161149e565b915f915f5b875181101561159d578061156a6001928a6114f6565b5184611576828a612d4f565b14611583575b5001611554565b61159661158f8761150a565b96886114f6565b525f61157c565b5095509050929190926115c1826001600160a01b03165f52600b60205260405f2090565b815f526020526115d660405f20548093612a0e565b146115de5750565b9250565b91908110156114f15760051b81013590601e198136030182121561048c57019081359167ffffffffffffffff831161048c57602001823603811361048c579190565b61045690546101b8565b90611641602092828151948592016103ff565b0190565b818110611650575050565b5f8155600101611645565b90601f8211611668575050565b6102da9160035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b906020601f840160051c830193106116b1575b601f0160051c0190611645565b90915081906116a4565b9190601f81116116ca57505050565b6102da925f5260205f20906020601f840160051c830193106116b157601f0160051c0190611645565b919091825167ffffffffffffffff81116102215761171b8161171584546101b8565b846116bb565b602080601f831160011461175c5750819061174d9394955f92611751575b50508160011b915f199060031b1c19161790565b9055565b015190505f80611739565b90601f19831695611770855f5260205f2090565b925f905b8882106117ab57505083600195969710611793575b505050811b019055565b01515f1960f88460031b161c191690555f8080611789565b80600185968294968601518155019501930190611774565b906001600160a01b036117e3602092959495604085526040850190610420565b9416910152565b604051906117f782610226565b5f8252565b6040519061180982610242565b600f82527f2261747472696275746573223a205b00000000000000000000000000000000006020830152565b6040519061184282610242565b600e82527f226f7574666974496473223a205b0000000000000000000000000000000000006020830152565b9060405191826060515f5b8181106118ad57509060206102da936118a182948401918383015f81528151948592016103ff565b0103808552018361027a565b6020919250806080015182828801015201908491611879565b60206102da9193929360405194816118e787935180928680870191016103ff565b82016118a1825180938680850191016103ff565b5f198101919082116106ba57565b906102da6021604051846119278296518092602080860191016103ff565b8101600b60fa1b602082015203600181018552018361027a565b906102da60226040518461195f8296518092602080860191016103ff565b810161174b60f21b602082015203600281018552018361027a565b6040906102da92949394825195869160209361199e815180928780880191016103ff565b83017f7b2274726169745f74797065223a202200000000000000000000000000000000858201526119d882518093876030850191016103ff565b016c111610113b30b63ab2911d101160991b6030820152611a028251809386603d850191016103ff565b0162089f4b60ea1b603d820152039081018552018361027a565b906102da604a60405184611a3a8296518092602080860191016103ff565b81017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022227d2c00000000000000000000000000000000000000000000604082015203602a81018552018361027a565b60316102da919392936040519481611ab88793518092602080870191016103ff565b82017f226261636b67726f756e644964223a20000000000000000000000000000000006020820152611af48251809360206030850191016103ff565b01600b60fa1b603082015203601181018552018361027a565b604a6102da919392936040519481611b2f8793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022000000000000000000000000000000000000000000000000006040820152611b918251809360206047850191016103ff565b0162089f4b60ea1b604782015203602a81018552018361027a565b60376102da919392936040519481611bce8793518092602080870191016103ff565b82017f226368616e6765734c6f636b6564556e74696c223a20000000000000000000006020820152611c0a8251809360206036850191016103ff565b01600b60fa1b603682015203601781018552018361027a565b60526102da919392936040519481611c458793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224368616e676573206c6f636b6564207560208201527f6e74696c222c202276616c7565223a20000000000000000000000000000000006040820152611ca78251809360206050850191016103ff565b01611f4b60f21b605082015203603281018552018361027a565b906102da603660405180947f22776f726e427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b8101600b60fa1b603582015203601681018552018361027a565b604b6102da919392936040519481611d428793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022576f726e2062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b01611f4b60f21b604982015203602b81018552018361027a565b906102da603660405180947f2275736564427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b604b6102da919392936040519481611e118793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022557365642062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b81601f8201121561048c578051611e758161124f565b92611e83604051948561027a565b8184526020828401011161048c5761045691602080850191016103ff565b9060208282031261048c57815167ffffffffffffffff811161048c576104569201611e5f565b6040513d5f823e3d90fd5b9081602091031261048c575190565b9081606091031261048c57805191604060208301519201516104568161056c565b612030600392959460a46102da956040519885611f298b975180926020808b0191016103ff565b86017f7b2274726169745f74797065223a202250726f64756374206e616d65222c202260208201527f76616c7565223a202200000000000000000000000000000000000000000000006040820152611f8b8251809360206049850191016103ff565b017f227d2c207b2274726169745f74797065223a202243617465676f7279206e616d60498201527f65222c202276616c7565223a20220000000000000000000000000000000000006069820152611fec8251809360206077850191016103ff565b017f227d2c207b2274726169745f74797065223a2022546f74616c20737570706c7960778201526c111610113b30b63ab2911d101160991b6097820152019061162e565b62227d5d60e81b815203601c1981018552018361027a565b906102da603d60405180947f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000602083015261208c81518092602086860191016103ff565b810103601d81018552018361027a565b6120a6828261319a565b9163ffffffff6120ba845163ffffffff1690565b1615612a03576120c86117ea565b506120d16117fc565b610100928385019462ffffff94856120ec885162ffffff1690565b16156128345750612116612110612107835163ffffffff1690565b63ffffffff1690565b836139e7565b9182516127f8575b60018661212e895162ffffff1690565b16036127ca576121626121418683612a0e565b9461215c612156612151886132bc565b611daa565b966132bc565b90611def565b955b8351156126a857509060606001600160a01b0394939260046040518097819363043c358d60e11b8352165afa9384156126a3575f905f9561266e575b5081516121b29063ffffffff16613990565b9688516121c19062ffffff1690565b62ffffff166121cf90613790565b97606084019889516121e49063ffffffff1690565b63ffffffff166121f3906132bc565b916121fd93611f02565b94612208838861417f565b9783516122189063ffffffff1690565b63ffffffff1661222790613990565b9980516122369062ffffff1690565b62ffffff1661224490613790565b9861224e906132bc565b91855161225e9063ffffffff1690565b63ffffffff1661226d906132bc565b915161227d9062ffffff166132bc565b905161228e9063ffffffff166132bc565b9160408701516122a19063ffffffff1690565b63ffffffff166122b0906132bc565b9360208801516122cc906cffffffffffffffffffffffffff1690565b6cffffffffffffffffffffffffff166122e4906132bc565b956122ee906132bc565b966122f8906132bc565b610120989098015161230c9060ff166132bc565b9860405180916020820161231f9161162e565b03601f1981018252612331908261027a565b61233a90614353565b9b6040519e8f9e8f602001612373906009907f7b226e616d65223a22000000000000000000000000000000000000000000000081520190565b61237c9161162e565b7f222c202270726f647563744e616d65223a20220000000000000000000000000081526013016123ab9161162e565b7f222c202263617465676f72794e616d65223a202200000000000000000000000081526014016123da9161162e565b7f222c2022746f6b656e4964223a200000000000000000000000000000000000008152600e016124099161162e565b7f2c2022757063223a20000000000000000000000000000000000000000000000081526009016124389161162e565b7f2c202263617465676f7279223a200000000000000000000000000000000000008152600e016124679161162e565b7f2c2022737570706c79223a2000000000000000000000000000000000000000008152600c016124969161162e565b7f2c202272656d61696e696e67223a2000000000000000000000000000000000008152600f016124c59161162e565b7f2c20227072696365223a200000000000000000000000000000000000000000008152600b016124f49161162e565b7f2c2022646563696d616c73223a200000000000000000000000000000000000008152600e016125239161162e565b7f2c202263757272656e6379223a200000000000000000000000000000000000008152600e016125529161162e565b7f2c2022646973636f756e74223a200000000000000000000000000000000000008152600e016125819161162e565b61016160f51b81526002016125959161162e565b61259e9161162e565b7f2c20226465736372697074696f6e223a2241207069656365206f662042616e6e81527f792052657461696c2e222c2265787465726e616c5f75726c223a22687474707360208201527f3a2f2f72657461696c2e62616e6e792e6574682e7375636b73222c22696d616760408201527f65223a22646174613a696d6167652f7376672b786d6c3b6261736536342c00006060820152607e0161263f9161162e565b61227d60f01b815260020103601f198101825261265c908261027a565b61266590614353565b61045690612048565b905061269391945060603d60601161269c575b61268b818361027a565b810190611ee1565b5093905f6121a0565b503d612681565b611ec7565b9350945050506126be601192945162ffffff1690565b1611156127b657604051636c0360eb60e01b81525f816004816001600160a01b0386165afa9283156126a357612747936020925f91612794575b50925b61271361270782613df0565b6001600160a01b031690565b604051630c8df17160e41b81526001600160a01b039092166004830152602482019290925293849190829081906044820190565b03915afa9081156126a357610456925f92612763575b50613e57565b61278691925060203d60201161278d575b61277e818361027a565b810190611ed2565b905f61275d565b503d612774565b6127b091503d805f833e6127a8818361027a565b810190611ea1565b5f6126f8565b6020612747926127c461029c565b926126fb565b6127f26127d78683612d4f565b946127ec6121566127e7886132bc565b611cc1565b90611d20565b95612164565b916128189060018761280d8a5162ffffff1690565b160361281e57613cdd565b9161211e565b61282f9061282a613b9e565b6118c6565b613cdd565b91909293966128438883612aa2565b9661284e8984611518565b979099612859611835565b9a5f9b5b8a518d10156128b2576128839061287d6128778f8e6114f6565b516132bc565b906118c6565b9b61288e8b516118fb565b811061289e575b6001019b61285d565b9b6128aa600191611909565b9c9050612895565b6128c7919395979a989b929496999c50611941565b995f9b5b88518d101561293c576129346001918c8f6129296121078f8f61291161290561291e936128fe61292e98612919956114f6565b519061319a565b9687015162ffffff1690565b62ffffff1690565b613790565b935163ffffffff1690565b613990565b9161197a565b9c019b6128cb565b939894995094999196509499508515155f146129f2579061298661292961210761297c61297561298c9661296f8c6132bc565b90611a96565b998761319a565b5163ffffffff1690565b90611b0d565b955b6129ba866129ad846001600160a01b03165f52600260205260405f2090565b905f5260205260405f2090565b544281116129c9575b50612164565b94966129e56121566129eb93996129df896132bc565b90611bac565b90611c23565b955f6129c3565b94506129fd90611a1c565b9561298e565b5050506104566117ea565b6001600160a01b0316805f52600e60205260405f20825f5260205260405f2054918215918215612a47575b5050612a425790565b505f90565b9091505f52600b60205260405f20825f5260205260405f205414155f80612a39565b916060816001600160a01b039260209497969760408752816040880152838701375f828287010152601f80199101168401019416910152565b612aac828261319a565b9163ffffffff612ac0845163ffffffff1690565b1615612a035760609062ffffff612ade61010086015162ffffff1690565b16612b825792612b22612b2892612af86104569686611518565b939080151580612b7a575b612b44575b50612b1d61210761287d925163ffffffff1690565b61447a565b92614941565b8051612b35575b50613cdd565b612b3e916118c6565b5f612b2f565b61287d919250612107612b71612b6c612b6661210761297c612b1d968d61319a565b8a6139e7565b61186e565b93925050612b08565b506001612b03565b5050612b98612107612b9e935163ffffffff1690565b906139e7565b8051612bad57506104566117ea565b61045690613cdd565b9092612bc2848361319a565b9363ffffffff612bd6865163ffffffff1690565b1615612cab5760609062ffffff612bf461010088015162ffffff1690565b16612c92579061045695612c0b612c309386611518565b948115159081612c8a575b50612c625750612b1d61210761287d925163ffffffff1690565b92612c3d575b5050613cdd565b612c4691614941565b8051612c53575b80612c36565b612c5c916118c6565b5f612c4d565b61287d919250612107612b71612b6c612c8461210761297c612b1d968c61319a565b896139e7565b90505f612c16565b5050509050612b98612107612b9e935163ffffffff1690565b50505050506104566117ea565b91612cc161443b565b5f925b8051841015612d4957612cd784826114f6565b5193612ce381856114f6565b51855f5260049560208781526040805f2054612d3a57907fb10eb6fc7557a7109693cb8f3fac48d44328de56c0368ee4cac539b424d2cad991600196979899845f52825284815f205551338152a301929190612cc4565b51632165e0ab60e01b81528890fd5b50915050565b6001600160a01b0381165f52600f60205260405f20825f5260205260405f2054908115612dd757612d91906001600160a01b03165f52600a60205260405f2090565b815f52602052612da360405f20611450565b915f5b8351811015612dcf5781612dba82866114f6565b5114612dc857600101612da6565b5050905090565b505050505f90565b5050505f90565b91612de761443b565b5f925b8051841015612d4957612dfd84826114f6565b5193612e0981856114f6565b5194805f52602095600c87526040805f20825167ffffffffffffffff811161022157612e398161171584546101b8565b89601f8211600114612eb75750917f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e969391612e9184612ea09560019a9b9c9d5f91612eac57508160011b915f199060031b1c19161790565b90555b519182913390836117c3565b0390a201929190612dea565b90508501515f610d65565b99601f198216612eca845f5260205f2090565b9b5f905b828210612f3357505091600198999a9b7f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e9696949282612ea0979510612f1b575b5050881b88019055612e94565b8501515f1960f88460031b161c191690555f80612f0e565b80600181939f868b015181550194019d01909c929c612ece565b51906102da8261056c565b9081602091031261048c57516104568161056c565b6040516331a9108f60e11b815260048101929092526001600160a01b03906020908390602490829085165afa9182156126a3575f92612fcd575b5080612fb1615900565b16911603612fbb57565b6040516341eb334360e11b8152600490fd5b612ff091925060203d602011612ff7575b612fe8818361027a565b810190612f58565b905f612fa7565b503d612fde565b519063ffffffff8216820361048c57565b51906cffffffffffffffffffffffffff8216820361048c57565b519061ffff8216820361048c57565b519062ffffff8216820361048c57565b519060ff8216820361048c57565b51906102da82610ef6565b60208183031261048c57805167ffffffffffffffff9182821161048c57016101e08184031261048c57613092610880565b9261309c82612ffe565b84526130aa6020830161300f565b60208501526130bb60408301612ffe565b60408501526130cc60608301612ffe565b60608501526130dd6080830161300f565b60808501526130ee60a08301613029565b60a08501526130ff60c08301612f4d565b60c085015260e082015160e085015261010061311c818401613038565b9085015261012061312e818401613048565b90850152610140613140818401613056565b90850152610160613152818401613056565b90850152610180613164818401613056565b908501526101a0613176818401613056565b908501526101c0928383015190811161048c576131939201611e5f565b9082015290565b61324d915f9160606101c06040516131b181610204565b85815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201528561010082015285610120820152856101408201528561016082015285610180820152856101a0820152015261321561270782613df0565b9060405180958194829363c44a8e6d60e01b8452600484016040905f9294936001600160a01b03606083019616825260208201520152565b03915afa9081156126a3575f91613262575090565b61045691503d805f833e613276818361027a565b810190613061565b60405161328a81610226565b5f8152905f368137565b9061329e8261124f565b6132ab604051918261027a565b82815280926114c6601f199161124f565b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808210156133fd575b506d04ee2d6d415b85acef8100000000808310156133ee575b50662386f26fc10000808310156133df575b506305f5e100808310156133d0575b50612710808310156133c1575b5060648210156133b1575b600a809210156133a7575b60019081602161335360018701613294565b95860101905b613365575b5050505090565b5f19019083907f30313233343536373839616263646566000000000000000000000000000000008282061a8353049182156133a257919082613359565b61335e565b9160010191613341565b9190606460029104910191613336565b6004919392049101915f61332b565b6008919392049101915f61331e565b6010919392049101915f61330f565b6020919392049101915f6132fd565b60409350810491505f6132e4565b6040519061341882610242565b600c82527f5370656369616c20426f647900000000000000000000000000000000000000006020830152565b6040519061345182610242565b600c82527f5370656369616c204865616400000000000000000000000000000000000000006020830152565b6040519061348a82610242565b600c82527f5370656369616c204c65677300000000000000000000000000000000000000006020830152565b604051906134c382610242565b600c82527f5370656369616c205375697400000000000000000000000000000000000000006020830152565b604051906134fc82610242565b6004825263119a5cdd60e21b6020830152565b6040519061351c82610242565b600b82527f5375697420626f74746f6d0000000000000000000000000000000000000000006020830152565b6040519061355582610242565b600882527f5375697420746f700000000000000000000000000000000000000000000000006020830152565b6040519061358e82610242565b600482526314dd5a5d60e21b6020830152565b604051906135ae82610242565b60048252631219585960e21b6020830152565b604051906135ce82610242565b600882527f4865616420746f700000000000000000000000000000000000000000000000006020830152565b6040519061360782610242565b600582527f4d6f7574680000000000000000000000000000000000000000000000000000006020830152565b6040519061364082610242565b600782527f476c6173736573000000000000000000000000000000000000000000000000006020830152565b6040519061367982610242565b60048252634579657360e01b6020830152565b6040519061369982610242565b600882527f4e65636b6c6163650000000000000000000000000000000000000000000000006020830152565b604051906136d282610242565b60048252634c65677360e01b6020830152565b604051906136f282610242565b600882527f4261636b736964650000000000000000000000000000000000000000000000006020830152565b6040519061372b82610242565b600a82527f4261636b67726f756e64000000000000000000000000000000000000000000006020830152565b6040519061376482610242565b600a82527f42616e6e7920626f6479000000000000000000000000000000000000000000006020830152565b8061379e5750610456613757565b600181036137af575061045661371e565b600281036137c057506104566136e5565b600881036137d157506104566136c5565b600381036137e2575061045661368c565b600581036137f3575061045661366c565b600681036138045750610456613633565b6007810361381557506104566135fa565b600c810361382657506104566135c1565b6004810361383757506104566135a1565b600981036138485750610456613581565b600b81036138595750610456613548565b600a810361386a575061045661350f565b600d810361387b57506104566134ef565b600e810361388c57506104566134b6565b600f810361389d575061045661347d565b601081036138ae5750610456613444565b6011146138bd576104566117ea565b61045661340b565b604051906138d282610242565b600882527f4f726967696e616c0000000000000000000000000000000000000000000000006020830152565b6040519061390b82610242565b600682527f4f72616e676500000000000000000000000000000000000000000000000000006020830152565b6040519061394482610242565b600482526350696e6b60e01b6020830152565b6040519061396482610242565b600582527f416c69656e0000000000000000000000000000000000000000000000000000006020830152565b600181036139a15750610456613957565b600281036139b25750610456613937565b600381036139c357506104566138fe565b600481036139d457506104566138c5565b5f52600c60205261045660405f2061035f565b90805f52602091600d83526139fe60405f2061035f565b8051613b0b5750613a5091816001600160a01b03613a1c8694613df0565b1690604051809581948293632f54648f60e21b845260048401602090939291936001600160a01b0360408201951681520152565b03915afa80156126a357613ab892613a7d604992610456945f91613aee575b50613a7861029c565b613e57565b60405194827f3c696d61676520687265663d220000000000000000000000000000000000000087948501528251928391602d860191016103ff565b81017f222077696474683d2234303022206865696768743d22343030222f3e00000000602d82015203602981018452018261027a565b613b059150833d851161278d5761277e818361027a565b5f613a6f565b9250505090565b6009545f9291613b21826101b8565b91600190818116908115613b8b5750600114613b3c57505050565b909192935060095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af905f915b848310613b78575050500190565b8181602092548587015201920191613b6a565b60ff191683525050811515909102019150565b603b610456613c2d610a056008613cb46040516003613ca481613c9481613c846044602088017f7b66696c6c3a6e6f6e653b7d00000000000000000000000000000000000000008152600c8952613bf489610242565b6040519e8f9d8e7f3c7374796c653e2e6f7b66696c6c3a233830383038303b7d2e6231000000000060208201528b5192839101846103ff565b8d016217311960e91b603b820152895190613c4c82603e8301856103ff565b01622e623360e81b603e820152613c6a8a51809360418401906103ff565b01613c7d60418201620b988d60ea1b9052565b018761162e565b622e613160e81b8152018561162e565b6217309960e91b8152018361162e565b622e613360e81b8152019061162e565b7f3c2f7374796c653e000000000000000000000000000000000000000000000000815201613b12565b906102da60bb60405180947f3c7376672077696474683d2234303022206865696768743d223430302220766960208301527f6577426f783d223020302034303020343030222066696c6c3d2277686974652260408301527f20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7360608301527f7667223e3c7374796c653e2e6f7b66696c6c3a233035303530353b7d2e777b6660808301527f696c6c3a236639663966393b7d3c2f7374796c653e000000000000000000000060a0830152613dba81518092602060b5860191016103ff565b81017f3c2f7376673e000000000000000000000000000000000000000000000000000060b582015203609b81018552018361027a565b60206001600160a01b039160046040518094819363507f146560e01b8352165afa9081156126a3575f91613e22575090565b90506020813d602011613e4f575b81613e3d6020938361027a565b8101031261048c57516104568161056c565b3d9150613e30565b9061045690613e85604051602092609160f51b84830152602282015260228152613e808161025e565b6152cf565b926040519381613e9e86935180928680870191016103ff565b8201613eb2825180938680850191016103ff565b0103808452018261027a565b906102da602160405184613edc8296518092602080860191016103ff565b8101600160fd1b602082015203600181018552018361027a565b60405190613f0382610242565b600a82527f2072656d61696e696e67000000000000000000000000000000000000000000006020830152565b906102da929493602192613f98604051978894602093613f578151809287808b0191016103ff565b8601613f6b825180938780850191016103ff565b01602f60f81b84820152613f8782518093868a850191016103ff565b0191835193849187850191016103ff565b0103600181018552018361027a565b906102da929493602d92614026604051978894602093613fcf8151809287808b0191016103ff565b86017f2028534f4c44204f555429200000000000000000000000000000000000000000858201526140098251809387602c850191016103ff565b01602f60f81b602c820152613f8782518093868a850191016103ff565b0103600d81018552018361027a565b6102da91613f98949360219260405196879360209261405c8151809286808a0191016103ff565b8501614070825180938680850191016103ff565b0191602f60f81b81840152835193849187850191016103ff565b906102da6022604051846140a88296518092602080860191016103ff565b81016101d160f51b602082015203600281018552018361027a565b60216102da9193929360405194816140e58793518092602080870191016103ff565b82016140fa82518093602080850191016103ff565b01600160fd1b602082015203600181018552018361027a565b60256102da9193929360405194816141358793518092602080870191016103ff565b82017f5550432023000000000000000000000000000000000000000000000000000000602082015261417082518093602087850191016103ff565b0103600581018552018361027a565b906141ed61045692633b9aca006141a86141a3612929612107875163ffffffff1690565b613ebe565b91066141b2613ef6565b81156142445750906141c66141e8926132bc565b6141e26141dd612107606088015163ffffffff1690565b6132bc565b91614035565b61408a565b9061420561291961291161010084015162ffffff1690565b8051614227575b506141dd612107614221925163ffffffff1690565b90614113565b61210761423b6141dd9261422194956140c3565b9392505061420c565b9050604084019163ffffffff61425e845163ffffffff1690565b1680614299575061427c6141dd6121076141e8955163ffffffff1690565b6142936141dd612107606089015163ffffffff1690565b91613fa7565b6141e893506142a7906132bc565b6142be6141dd612107606089015163ffffffff1690565b91613f2f565b604051906142d18261025e565b604082527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f6040837f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201520152565b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116036106ba57565b805115614432576143626142c4565b61437e6143796143728451611419565b6003900490565b614323565b9161439061438b84611427565b613294565b92835280815182019060208501935b8282106143e0575050506003905106806001146143cf576002146143c1575090565b603d60f81b5f199091015290565b50613d3d60f01b6001199091015290565b9091936004906003809401938451600190603f9082828260121c16880101518553828282600c1c16880101518386015382828260061c168801015160028601531685010151908201530193919061439f565b506104566117ea565b6001600160a01b03805f541681614450615900565b16036144595750565b602490614464615900565b60405163118cdaa760e01b815291166004820152fd5b614483906157d4565b93604096959693919351968796602088017f3c7374796c653e2e62317b66696c6c3a2300000000000000000000000000000090528051908160318a0191602001916144cd926103ff565b8701603181017f3b7d2e62327b66696c6c3a230000000000000000000000000000000000000000905281519182603d8301916020019161450c926103ff565b01603d81017f3b7d2e62337b66696c6c3a23000000000000000000000000000000000000000090528151918260498301916020019161454a926103ff565b0160498101614578907f3b7d2e62347b66696c6c3a2300000000000000000000000000000000000000009052565b6055016145849161162e565b7f3b7d2e61317b66696c6c3a2300000000000000000000000000000000000000008152600c016145b39161162e565b7f3b7d2e61327b66696c6c3a2300000000000000000000000000000000000000008152600c016145e29161162e565b7f3b7d2e61337b66696c6c3a2300000000000000000000000000000000000000008152600c016146119161162e565b7f3b7d3c2f7374796c653e000000000000000000000000000000000000000000008152600a0161464090613b12565b03601f1981018252610456908261027a565b90604051918260209161466d815180928580860191016103ff565b6007545f91830161467d826101b8565b9160019081811690811561470657506001146146aa575b5050506102da925003601f19810184528361027a565b94925060075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688945f905b8382106146ee5750506102da945001015f8080614694565b865482840186015295860195889550908401906146d6565b9150506102da95935060ff9291921916838301528015150201015f8080614694565b906040519182602091614743815180928580860191016103ff565b6008545f918301614753826101b8565b91600190818116908115614706575060011461477f575050506102da925003601f19810184528361027a565b94925060085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3945f905b8382106147c35750506102da945001015f8080614694565b865482840186015295860195889550908401906147ab565b9060405191826020916147f6815180928580860191016103ff565b6005545f918301614806826101b8565b916001908181169081156147065750600114614832575050506102da925003601f19810184528361027a565b94925060055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0945f905b8382106148765750506102da945001015f8080614694565b8654828401860152958601958895509084019061485e565b9060405191826020916148a9815180928580860191016103ff565b6006545f9183016148b9826101b8565b9160019081811690811561470657506001146148e5575050506102da925003601f19810184528361027a565b94925060065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f945f905b8382106149295750506102da945001015f8080614694565b86548284018601529586019588955090840190614911565b91909160608351915f925f935f945f9085935f5b61495e82611435565b811015614b3b5781811015614b2f57614977818c6114f6565b5195614983878961319a565b956149a961210761499e6129116101008b015162ffffff1690565b985163ffffffff1690565b915b600388811492908315614b00575050506001976149c8838b6139e7565b9b5b60048914614af7575b6005898103614aa35750506001965b6007898103614a61575050600b6001985b1180614a57575b614a3d575b15159081614a34575b50614a1c575b506001019794939297614955565b6001919861287d614a2d928a6139e7565b9790614a0e565b9050155f614a08565b9a614a48919a6118c6565b98614a516117ea565b9a6149ff565b508b5115156149fa565b8991991180614a9b575b80614a93575b614a7e575b600b906149f3565b975099614a8a9061488e565b99600197614a76565b508615614a71565b508815614a6b565b899891981180614aef575b80614ae7575b156149e257965060019a8b84145f14614ad857614ad0906147db565b9a5b966149e2565b614ae190614728565b9a614ad2565b508615614ab4565b508715614aae565b600196506149d3565b899d919a929d1180614b27575b156149ca57985099614b1e90614652565b996001986149ca565b508915614b0d565b5f9560129587916149ab565b50505050505050925050565b9190614b68816129ad856001600160a01b03165f52600b60205260405f2090565b54614b738185612a0e565b818414801590614d75575b614b8a575b5050505050565b8214614d5c575b508115614d35576040516331a9108f60e11b808252600482018490526001600160a01b0392918584169060208082602481865afa80156126a35786925f91614d18575b5082614bde615900565b911696168614159384614ca0575b50505050614c8e5763ffffffff614c0661297c858761319a565b1615614c7c5782614c2c826129ad876001600160a01b03165f52600b60205260405f2090565b55614c4c836129ad866001600160a01b03165f52600e60205260405f2090565b553003614c61575b50505b5f80808080614b83565b614c75913090614c6f615900565b90615959565b5f80614c54565b60405163c3095f8760e01b8152600490fd5b60405163d03702f960e01b8152600490fd5b819293945090614cd791614cb2615900565b95614cbd8a8c612a0e565b916040518095819482938352600483019190602083019252565b03915afa9081156126a35783925f92614cfb575b505016911614155f808080614bec565b614d119250803d10612ff757612fe8818361027a565b5f80614ceb565b614d2f9150823d8411612ff757612fe8818361027a565b5f614bd4565b614d5691506129ad5f936001600160a01b03165f52600b60205260405f2090565b55614c57565b614d6f90614d68615900565b3086615959565b5f614b91565b5082811415614b7e565b81519167ffffffffffffffff831161022157680100000000000000008311610221578154838355808410614dde575b506020809101915f5260205f20905f5b848110614dcc575050505050565b83518382015592810192600101614dbe565b614df490835f528460205f209182019101611645565b5f614dae565b909291925f935f915f92614e2b614e26836129ad886001600160a01b03165f52600a60205260405f2090565b611450565b955f945f945f908951615269575b90969299935f999899969296975b82518910156151de579a8a9b614e608a859d9c9d6114f6565b516040516331a9108f60e11b8152600481018290529d9097906001600160a01b03168e6024815a93602094fa9d8e156126a3575f9e6151bd575b508d6001600160a01b0380614ead615900565b92169116141580615132575b61512057614edb612911610100614ed18f8c9061319a565b015162ffffff1690565b9960028b108015615116575b615104578b151590816150f9575b506150e75760048a0361503957506001949095919293955b8981111580615030575b15614fab57508a949392918188614f3b93141580614f99575b614f80575b5061150a565b94858c805182105f14614f7357610100614ed1614f5e614f6694612911946114f6565b51809961319a565b905b959192939490614f0d565b505093505f935f90614f68565b614f9390614f8c615900565b3089615959565b5f614f35565b5089614fa58289612d4f565b14614f30565b93966001929a959d999199969396898d81614fc68583612d4f565b03614fe3575b50505050930197939a949091999899969296614e47565b836129ad615002926001600160a01b03165f52600f60205260405f2090565b556001600160a01b033091160361501c575b80898d614fcc565b61502a90308d614c6f615900565b5f615014565b50801515614f17565b939260098a036150525750600192959192939490614f0d565b9260058a1480156150dd575b80156150d3575b80156150c9575b806150c2575b1561508957604051639b8fdcd160e01b8152600490fd5b600b8a1480156150b8575b806150b1575b15614f68576040516306f7588760e01b8152600490fd5b508361509a565b50600a8a14615094565b5084615072565b50600c8a1461506c565b5060078a14615065565b5060068a1461505e565b604051633869abd960e21b8152600490fd5b90508a11155f614ef5565b60405163b0ee46ab60e01b8152600490fd5b5060118b11614ee7565b60405163032cac0360e01b8152600490fd5b508b6001600160a01b036020615175615149615900565b936151548d82612d4f565b6040519485809481936331a9108f60e11b8352600483019190602083019252565b0392165afa9081156126a3576001600160a01b039182915f9161519e575b501691161415614eb9565b6151b7915060203d602011612ff757612fe8818361027a565b5f615193565b6151d7919e5060203d602011612ff757612fe8818361027a565b9c5f614e9a565b5050979550915091949250805b61521a575050506102da92916129ad615215926001600160a01b03165f52600a60205260405f2090565b614d7f565b90818561522a6152359487612d4f565b14615256575061150a565b815181101561524f5761524881836114f6565b51806151eb565b5f806151eb565b614f9390615262615900565b3087615959565b955050615275886114e4565b519461528a612911610100614ed1898c61319a565b90614e39565b604051906105e0820182811067ffffffffffffffff82111761022157604052602e82526105c0366020840137565b9081518110156114f1570160200190565b90815115615401576152df615290565b915f6152ea846114e4565b5260019080515f915b8183106153185750505061530e6153139161045693946159bd565b6159ff565b615a44565b90919361536061535a61535461532e88866152be565b517fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b60ff1690565b905f915b60ff90888288168510156153c4576001929161539961539361535a61538c8961539f966114f6565b5160ff1690565b60081b90565b90611443565b6153bb603a92838306166153b3878d6114f6565b9060ff169052565b04920191615364565b509196925050805b6153db575060010191906152f3565b9360ff6001603a926153f783858a06166153b38584168d6114f6565b01169404806153cc565b905061045661327e565b6040519061541882610242565b600682527f66666539303000000000000000000000000000000000000000000000000000006020830152565b6040519061545182610242565b600682527f66666337303000000000000000000000000000000000000000000000000000006020830152565b6040519061548a82610242565b600682527f66336136303300000000000000000000000000000000000000000000000000006020830152565b604051906154c382610242565b600682527f39363561316100000000000000000000000000000000000000000000000000006020830152565b604051906154fc82610242565b600682527f66663763303200000000000000000000000000000000000000000000000000006020830152565b6040519061553582610242565b600682527f66643336303000000000000000000000000000000000000000000000000000006020830152565b6040519061556e82610242565b600682527f63333265306400000000000000000000000000000000000000000000000000006020830152565b604051906155a782610242565b600682527f66666438633500000000000000000000000000000000000000000000000000006020830152565b604051906155e082610242565b600682527f66663936613900000000000000000000000000000000000000000000000000006020830152565b6040519061561982610242565b600682527f66653538386200000000000000000000000000000000000000000000000000006020830152565b6040519061565282610242565b600682527f63393266343500000000000000000000000000000000000000000000000000006020830152565b6040519061568b82610242565b600682527f36376437353700000000000000000000000000000000000000000000000000006020830152565b604051906156c482610242565b600682527f33306132323000000000000000000000000000000000000000000000000000006020830152565b604051906156fd82610242565b600682527f32313761313500000000000000000000000000000000000000000000000000006020830152565b6040519061573682610242565b600682527f30393439306600000000000000000000000000000000000000000000000000006020830152565b6040519061576f82610242565b600682527f65343833656600000000000000000000000000000000000000000000000000006020830152565b604051906157a882610242565b600682527f64633266656600000000000000000000000000000000000000000000000000006020830152565b6001810361581b57506157e561567e565b906157ee6156b7565b906157f76156f0565b90615800615729565b90615809615762565b9061581261579b565b9061045661579b565b60028103615862575061582c61559a565b906158356155d3565b9061583e61560c565b90615847615645565b9061585061559a565b906158596155d3565b9061045661560c565b600381036158a9575061587361547d565b9061587c6154ef565b90615885615528565b9061588e615561565b9061589761547d565b906158a06154ef565b90610456615528565b6004146158c257604051639a7b332360e01b8152600490fd5b6158ca61540b565b906158d3615444565b906158dc61547d565b906158e56154b6565b906158ee61540b565b906158f7615444565b9061045661547d565b6001600160a01b037f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb5661633148061594e575b1561594a5760131936013681116106ba573560601c90565b3390565b506014361015615932565b909291926001600160a01b0380921690813b1561048c575f6064928195856040519889978896632142170760e11b885216600487015216602485015260448401525af180156126a3576159a95750565b67ffffffffffffffff811161022157604052565b9060ff809116906159cd8261149e565b925f5b8381106159de575050505090565b80836159ec600193856114f6565b51166159f882886114f6565b52016159d0565b908151615a0b8161149e565b905f5b818110615a1c575090925050565b60019060ff615a315f198389510301886114f6565b5116615a3d82866114f6565b5201615a0e565b8051615a4f8161124f565b916040615a5f604051948561027a565b828452615a6b8361124f565b60209190601f190136868401375f5b848110615a8957505050505090565b6001908251615a978161025e565b603a81527f31323334353637383941424344454647484a4b4c4d4e50515253545556575859858201527f5a6162636465666768696a6b6d6e6f707172737475767778797a000000000000848201527fff0000000000000000000000000000000000000000000000000000000000000090615b1f9060ff615b17858a6114f6565b5116906152be565b51165f1a615b2d82896152be565b5301615a7a56fea26469706673582212203a4c382e9b69538f97fd89527b2bef347de3dfd6b15949e701b2c0d26013e29864736f6c63430008170033",
|
|
909
|
+
"metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bannyBody\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultNecklace\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultMouth\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultStandardEyes\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultAlienEyes\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"trustedForwarder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_CantAccelerateTheLock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_ContentsAlreadyStored\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_ContentsMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_HashAlreadyStored\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_HashNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_HeadAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_OutfitChangesLocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_SuitAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnauthorizedBackground\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnauthorizedBannyBody\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnauthorizedOutfit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnauthorizedTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnorderedCategories\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnrecognizedBackground\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnrecognizedCategory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnrecognizedProduct\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"bannyBodyId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"backgroundId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"outfitIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"DecorateBanny\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SetProductName\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SetSvgBaseUri\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"svgContent\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SetSvgContent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"svgHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SetSvgHash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BANNY_BODY\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ALIEN_EYES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_MOUTH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_NECKLACE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_STANDARD_EYES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bannyBodyId\",\"type\":\"uint256\"}],\"name\":\"assetIdsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"backgroundId\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"outfitIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bannyBodyId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"backgroundId\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"outfitIds\",\"type\":\"uint256[]\"}],\"name\":\"decorateBannyWith\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bannyBodyId\",\"type\":\"uint256\"}],\"name\":\"lockOutfitChangesFor\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"namesOf\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"}],\"name\":\"outfitLockedUntil\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"upcs\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"names\",\"type\":\"string[]\"}],\"name\":\"setProductNames\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"}],\"name\":\"setSvgBaseUri\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"upcs\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"svgContents\",\"type\":\"string[]\"}],\"name\":\"setSvgContentsOf\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"upcs\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"svgHashs\",\"type\":\"bytes32[]\"}],\"name\":\"setSvgHashsOf\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"svgBaseUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"}],\"name\":\"svgHashOf\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"shouldDressBannyBody\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"shouldIncludeBackgroundOnBannyBody\",\"type\":\"bool\"}],\"name\":\"svgOf\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenUriOf\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trustedForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"backgroundId\",\"type\":\"uint256\"}],\"name\":\"userOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"outfitId\",\"type\":\"uint256\"}],\"name\":\"wearerOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"assetIdsOf(address,uint256)\":{\"custom:param\":\"hook The hook address of the collection.\",\"params\":{\"bannyBodyId\":\"The ID of the banny body shown with the associated assets.\"},\"returns\":{\"backgroundId\":\"The background attached to the banny body.\",\"outfitIds\":\"The outfits attached to the banny body.\"}},\"constructor\":{\"params\":{\"bannyBody\":\"The SVG of the banny body.\",\"defaultAlienEyes\":\"The SVG of the default alien eyes.\",\"defaultMouth\":\"The SVG of the default mouth.\",\"defaultNecklace\":\"The SVG of the default necklace.\",\"defaultStandardEyes\":\"The SVG of the default standard eyes.\",\"owner\":\"The owner allowed to add SVG files that correspond to product IDs.\",\"trustedForwarder\":\"The trusted forwarder for the ERC2771Context.\"}},\"decorateBannyWith(address,uint256,uint256,uint256[])\":{\"details\":\"The caller must own the banny body being dressed and all outfits being worn.\",\"params\":{\"backgroundId\":\"The ID of the background that'll be associated with the specified banny.\",\"bannyBodyId\":\"The ID of the banny body being dressed.\",\"hook\":\"The hook storing the assets.\",\"outfitIds\":\"The IDs of the outfits that'll be associated with the specified banny. Only one outfit per outfit category allowed at a time and they must be passed in order.\"}},\"isTrustedForwarder(address)\":{\"details\":\"Indicates whether any particular address is the trusted forwarder.\"},\"lockOutfitChangesFor(address,uint256)\":{\"params\":{\"bannyBodyId\":\"The ID of the banny body to lock.\",\"hook\":\"The hook address of the collection.\"}},\"namesOf(address,uint256)\":{\"params\":{\"hook\":\"The hook storing the assets.\",\"tokenId\":\"The ID of the token to show.\"},\"returns\":{\"_0\":\"fullName The full name of the token.\",\"_1\":\"categoryName The name of the token's category.\",\"_2\":\"productName The name of the token's product.\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Make sure tokens can be receieved if the transaction was initiated by this contract.\",\"params\":{\"data\":\"The data of the transfer.\",\"from\":\"The address that initiated the transfer.\",\"operator\":\"The address that initiated the transaction.\",\"tokenId\":\"The ID of the token being transferred.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setProductNames(uint256[],string[])\":{\"params\":{\"names\":\"The names of the products.\",\"upcs\":\"The universal product codes of the products having their name stored.\"}},\"setSvgBaseUri(string)\":{\"params\":{\"baseUri\":\"The base URI of the SVG files.\"}},\"setSvgContentsOf(uint256[],string[])\":{\"params\":{\"svgContents\":\"The svg contents being stored, not including the parent <svg></svg> element.\",\"upcs\":\"The universal product codes of the products having SVGs stored.\"}},\"setSvgHashsOf(uint256[],bytes32[])\":{\"details\":\"This allows anyone to lazily upload the correct svg file.\",\"params\":{\"svgHashs\":\"The svg hashes being stored, not including the parent <svg></svg> element.\",\"upcs\":\"The universal product codes of the products having SVG hashes stored.\"}},\"svgOf(address,uint256,bool,bool)\":{\"params\":{\"hook\":\"The hook storing the assets.\",\"shouldDressBannyBody\":\"Whether the banny body should be dressed.\",\"shouldIncludeBackgroundOnBannyBody\":\"Whether the background should be included on the banny body.\",\"tokenId\":\"The ID of the token to show. If the ID belongs to a banny body, it will be shown with its current outfits in its current background if specified.\"},\"returns\":{\"_0\":\"svg The SVG.\"}},\"tokenUriOf(address,uint256)\":{\"params\":{\"tokenId\":\"The ID of the token to show. If the ID belongs to a banny body, it will be shown with its current outfits in its current background.\"},\"returns\":{\"_0\":\"tokenUri The URI representing the SVG.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"trustedForwarder()\":{\"details\":\"Returns the address of the trusted forwarder.\"},\"userOf(address,uint256)\":{\"params\":{\"backgroundId\":\"The ID of the background being used.\",\"hook\":\"The hook address of the collection.\"},\"returns\":{\"_0\":\"The ID of the banny body using the background.\"}},\"wearerOf(address,uint256)\":{\"params\":{\"hook\":\"The hook address of the collection.\",\"outfitId\":\"The ID of the outfit being worn.\"},\"returns\":{\"_0\":\"The ID of the banny body wearing the outfit.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"assetIdsOf(address,uint256)\":{\"notice\":\"The assets currently attached to each banny body.\"},\"decorateBannyWith(address,uint256,uint256,uint256[])\":{\"notice\":\"Dress your banny body with outfits.\"},\"lockOutfitChangesFor(address,uint256)\":{\"notice\":\"Locks a banny body ID so that it can't change its outfit for a period of time.\"},\"namesOf(address,uint256)\":{\"notice\":\"Returns the name of the token.\"},\"outfitLockedUntil(address,uint256)\":{\"notice\":\"The amount of time each banny body is currently locked for.\"},\"setProductNames(uint256[],string[])\":{\"notice\":\"Allows the owner to set the product's name.\"},\"setSvgBaseUri(string)\":{\"notice\":\"Allows the owner of this contract to specify the base of the domain hosting the SVG files.\"},\"setSvgContentsOf(uint256[],string[])\":{\"notice\":\"The owner of this contract can store SVG files for product IDs.\"},\"setSvgHashsOf(uint256[],bytes32[])\":{\"notice\":\"Allows the owner of this contract to upload the hash of an svg file for a universal product code.\"},\"svgBaseUri()\":{\"notice\":\"The base of the domain hosting the SVG files that can be lazily uploaded to the contract.\"},\"svgHashOf(uint256)\":{\"notice\":\"The banny body and outfit SVG hash files.\"},\"svgOf(address,uint256,bool,bool)\":{\"notice\":\"Returns the SVG showing either a banny body with/without outfits and a background, or the stand alone outfit or background.\"},\"tokenUriOf(address,uint256)\":{\"notice\":\"Returns the SVG showing a dressed banny body in a background.\"},\"userOf(address,uint256)\":{\"notice\":\"Checks to see which banny body is currently using a particular background.\"},\"wearerOf(address,uint256)\":{\"notice\":\"Checks to see which banny body is currently wearing a particular outfit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Banny721TokenUriResolver.sol\":\"Banny721TokenUriResolver\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":800},\"remappings\":[\"@arbitrum/=node_modules/@arbitrum/\",\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@croptop/=node_modules/@croptop/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@exhausted-pigeon/=node_modules/@exhausted-pigeon/\",\"@offchainlabs/=node_modules/@offchainlabs/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@rev-net/=node_modules/@rev-net/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"@zksync/=node_modules/@zksync/\",\"base64-sol/=node_modules/base64-sol/\",\"base64/=lib/base64/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solady/=node_modules/solady/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"viaIR\":true},\"sources\":{\"lib/base64/base64.sol\":{\"keccak256\":\"0xa73959e6ef0b693e4423a562e612370160b934a75e618361ddd8c9c4b8ddbaaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17c12e16d8d66f3af15d8787920bd41ca6c1e7517a212a6b9cebd4b6d38f36fe\",\"dweb:/ipfs/QmcXMnZUXEz6LRKsm3CSvqdPboAzmezavi8bTg2dRxM2yE\"]},\"node_modules/@bananapus/721-hook-v5/src/abstract/ERC721.sol\":{\"keccak256\":\"0xee3758d50043b58a173dada85fb33a0a2b4a9f8e57e11a213d0f1d021cd2ffc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9b8cbac216d14a83dcc54fee0e660e8131afee94a21ec0c0af5dd7853692bb1\",\"dweb:/ipfs/QmRU67EeBHtqE7osaBd286poaTDjS7cAVMwt6UXdBBDRGP\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0x1e7b684c86c0f44b0b680c7aba9e511c89892bc0638424722920368911a087f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96995e70a8f15d5600b509ad689c8f2ea6f8116cc7cce9c529b7a41c12c854dc\",\"dweb:/ipfs/QmaAARj3BDSQNsPwkFxauDpWBNgb4kYdzo19tUNdBbc6cX\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x107f91c5a0674717684d75e0c71106dd1d2937c0089366c7bb555be7fffdd6b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ce29d75e454845d0636e671c60c7a691e4a77d1c88fe17dbc435945890465b1\",\"dweb:/ipfs/QmewJn8HeiqKggWA8scLUbwv1TMiit8Va8A5A3K7N9Euss\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x01d419bf6b9dce2ab162f8aac82f0e4a6d948f53819a42ed023e8f23e358c9c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e0b14b2ae2032bd256614522078cf0f831c35d1f64d1ea2050227117d08c060\",\"dweb:/ipfs/QmP1xbw5597GDvNVgT5Te6w8LBqeXHq4x6HeXYmqLqw2RC\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"]},\"node_modules/@bananapus/721-hook-v5/src/libraries/JBIpfsDecoder.sol\":{\"keccak256\":\"0xb93ba562ac1fc9d3829be00e61f3a90f51df5661cf0f2c819a7f1d8ba19ec171\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc9bc948fac8897d9720ef25b13d63c60b40a18aa1897dd1c657fc278c416b4f\",\"dweb:/ipfs/QmNtiJTALZW5zfyKVy7XG5GkqGgMrfkVvU4Auu4bb9cGQc\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xfe7147d09467fd8f9b755d2a1485f22bb4a8797acd0e97623258498ddac2e441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ee21464af9e6c78f580c6920757017cdfbd276728773338a67660fedfea0fd2\",\"dweb:/ipfs/QmVYviC7uQ7rEvdpzD6U4BN19P5f8uMuC7jWffzQWvuFcu\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"]},\"node_modules/@bananapus/core-v5/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBCashOutHook.sol\":{\"keccak256\":\"0x6c516b030f55065eb169d666d11dbd82c4a0b8cea7782ebc5e79433cade38670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0659eb08477176f130ccaf387d4bde71f0ecca2b24f61124d225f2f50397a3\",\"dweb:/ipfs/QmRNBRGhdGpLQLkC4wK4VrgNEw4EdSiJ4ZZJfiJU4aNt2L\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x5f0dc5968277b572ba5dc74518906dfb33a9684b7a199c7843f4e66af1c11fb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://323ce3731aebdf5bf8055b8550055e856feed700d293af8beaf8a750625a0975\",\"dweb:/ipfs/QmU2ErV2uzvXnsJt1qBKm73H2qWcEqYtQGHtZEpx93DaWJ\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesetDataHook.sol\":{\"keccak256\":\"0x45a88aa9f26512f7fc3deff6d00be9a292fc07a76c8311f175249400e83d1837\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e88b996c3a05f87f7391ebcb9cd6d46c6ce8768083945f26a98c4ac4509e64c\",\"dweb:/ipfs/QmbpuYi6mYV8K8qrh8syWvbPc34pFrXG6QeC23m4MsX3r9\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0xf287c7a4a162cd58084ed10ee5f9f31c992addff0ce2f2ac7e810cc393546f30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c851b72de52c3ceb73c6b1849ad0cc7c0832fd126ee52cc838a163ab6d3055b8\",\"dweb:/ipfs/Qmbv6k6pSeNMwZoTUKzDNb18DMGR8DboRMrYQBydATuVZw\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0x5a4c0ef6c8fd10069a408cc42a862909f7b47aba46327da5003203508d8f17d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d8854151c21046b6b939189ad2139c669888e6baf47034a0cb754104d1efe6\",\"dweb:/ipfs/QmaMrxnf6K6znvDBwdAqsw5x6yuR4SY1BdNtyz226siAt5\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAfterCashOutRecordedContext.sol\":{\"keccak256\":\"0xa1acdb1a5670f66f730e71f8eff120766b6f5c934e6cd699c7f1a7cc93adf658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9c7655c9c42b30132688b395251748c809c334370ee584cb9bac46e1fb8f162\",\"dweb:/ipfs/QmbMV1wg1Fm236HaA6nnMSvRkzeYCKPRhMYDbqkAxieY7x\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0x3bfc01ae9944a0ff5c41125e18ebb8efca58d7aa4e471d2ffa6d8588afb689ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://beb21399142d9b89539cfc8aa94119bc106bd1ea847b922d4c78f3f8804a5cba\",\"dweb:/ipfs/QmXDwJXrzCb6zh1KYwVdN2PEY86uK62MTfYF1M2MBtbEP7\"]},\"node_modules/@bananapus/core-v5/src/structs/JBBeforeCashOutRecordedContext.sol\":{\"keccak256\":\"0x7b2119f3e0725becc552ed5dcfa51683960a8772550c95ac5e2f75240ced367c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03369dd07a9126ce453d83ac409919326f0aaa48ff9eac5c703092b3824d79c9\",\"dweb:/ipfs/Qmc1QKw6FfmeBD372RnDyeW27QyzEUjMX5up5rk8SHRYGa\"]},\"node_modules/@bananapus/core-v5/src/structs/JBBeforePayRecordedContext.sol\":{\"keccak256\":\"0xbc98b968d84be2f0ddbb24240723c7179ec9c5e02e5fbd5843dd0e76623a3ea5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1310e522696a9fc6f7f96b04c293fab3b4cf1e722bdbb7aa1eec7b3ecc25402f\",\"dweb:/ipfs/QmTYiijDJRuQcMhLrmpbHzHAQFPq6jurPP5HjyYtnzbpnK\"]},\"node_modules/@bananapus/core-v5/src/structs/JBCashOutHookSpecification.sol\":{\"keccak256\":\"0x67a6e781019979e626eaa81d84a800b2656603c23ae455e15d0fa1a6f03c1736\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43ce54447dda62d449a1e3575a9e4cb9c5a2adb41b45423dcefeb7d9afe8336\",\"dweb:/ipfs/QmW77REnQcvsfv4gwTLj2CyynmaGC3a6om7zCFWmERhrPY\"]},\"node_modules/@bananapus/core-v5/src/structs/JBPayHookSpecification.sol\":{\"keccak256\":\"0x955f0bfca97300b9e5927dc181753830ee362f83fa9ca32a90daade32aa0cfd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517af1597c7c40f8d3da53f7a6684a3e162950a16559d6bf6ea3b727bb11546\",\"dweb:/ipfs/QmRWo2ZTYXmVZTzNJDYhsJNsEaHphjpUfx9eNz2cciyz86\"]},\"node_modules/@bananapus/core-v5/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x2d1f0a8457e94addae51a8222b1837e372847624fde96bb3178e7aee52ab2b24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbb1478e8f5d1c20f981e5a0d5e526d002add1e05ddced87ccd45543ed00c9e4\",\"dweb:/ipfs/QmZkgaYdwkbnvW2MGwVe9FeHjac8XyZTP1YZcWUApiGZgE\"]},\"node_modules/@bananapus/core-v5/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol\":{\"keccak256\":\"0x0b030a33274bde015419d99e54c9164f876a7d10eb590317b79b1d5e4ab23d99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68e5f96988198e8efd25ddef0d89750b4daebb7fd1204fa7f5eaccdfcb3398c8\",\"dweb:/ipfs/QmaM6nNkf9UmEtQraopuZamEWCdTWp7GvuN3pjMQrNCHxm\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251\",\"dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/Banny721TokenUriResolver.sol\":{\"keccak256\":\"0x0d0fc64e90e0e2ededbf2b30b0919ca6f402782ce2aaae75d7fdbe60747430cb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4b1a58f281ea11e2077407691727c0507b671d515b2b21fc24a77ae69dc7383\",\"dweb:/ipfs/QmRshzFnYTcYGUBuWPfHptwWTdXJKeUGuWNW8wTKF4MN6A\"]},\"src/interfaces/IBanny721TokenUriResolver.sol\":{\"keccak256\":\"0x31f005a8cc4604ee51ece245747f0036499cd08f2269696aeea46bdd40f2173b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cecf3985b02d02220ec4f4bc065e32f1df7dbb46fdd7c6a289306ad7610a5fd\",\"dweb:/ipfs/QmUC1486yD7kD8C2ZspP6ZwxGP7UZhHxWYmma1hfCqowMh\"]}},\"version\":1}",
|
|
910
|
+
"gitCommit": "09eea490bc6edac0ab09368d57ac2d8e60bea771",
|
|
911
|
+
"history": [
|
|
912
|
+
{
|
|
913
|
+
"format": "sphinx-sol-ct-artifact-1",
|
|
914
|
+
"merkleRoot": "0x85b22e702cdaf7ef670c7488270980058fdbbe8d76f5dc15311253f924037df8",
|
|
915
|
+
"address": "0x47c011146a4498a70e0bf2e4585acf9cade85954",
|
|
916
|
+
"sourceName": "src/Banny721TokenUriResolver.sol",
|
|
917
|
+
"contractName": "Banny721TokenUriResolver",
|
|
918
|
+
"chainId": "0xa",
|
|
919
|
+
"abi": [
|
|
920
|
+
{
|
|
921
|
+
"inputs": [
|
|
922
|
+
{
|
|
923
|
+
"internalType": "string",
|
|
924
|
+
"name": "bannyBody",
|
|
925
|
+
"type": "string"
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
"internalType": "string",
|
|
929
|
+
"name": "defaultNecklace",
|
|
930
|
+
"type": "string"
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
"internalType": "string",
|
|
934
|
+
"name": "defaultMouth",
|
|
935
|
+
"type": "string"
|
|
936
|
+
},
|
|
937
|
+
{
|
|
938
|
+
"internalType": "string",
|
|
939
|
+
"name": "defaultStandardEyes",
|
|
940
|
+
"type": "string"
|
|
941
|
+
},
|
|
942
|
+
{
|
|
943
|
+
"internalType": "string",
|
|
944
|
+
"name": "defaultAlienEyes",
|
|
945
|
+
"type": "string"
|
|
946
|
+
},
|
|
947
|
+
{
|
|
948
|
+
"internalType": "address",
|
|
949
|
+
"name": "owner",
|
|
950
|
+
"type": "address"
|
|
951
|
+
},
|
|
952
|
+
{
|
|
953
|
+
"internalType": "address",
|
|
954
|
+
"name": "trustedForwarder",
|
|
955
|
+
"type": "address"
|
|
956
|
+
}
|
|
957
|
+
],
|
|
958
|
+
"stateMutability": "nonpayable",
|
|
959
|
+
"type": "constructor"
|
|
960
|
+
},
|
|
961
|
+
{
|
|
962
|
+
"inputs": [],
|
|
963
|
+
"name": "BANNY_BODY",
|
|
964
|
+
"outputs": [
|
|
965
|
+
{
|
|
966
|
+
"internalType": "string",
|
|
967
|
+
"name": "",
|
|
968
|
+
"type": "string"
|
|
969
|
+
}
|
|
970
|
+
],
|
|
971
|
+
"stateMutability": "view",
|
|
972
|
+
"type": "function"
|
|
973
|
+
},
|
|
974
|
+
{
|
|
975
|
+
"inputs": [],
|
|
976
|
+
"name": "DEFAULT_ALIEN_EYES",
|
|
977
|
+
"outputs": [
|
|
978
|
+
{
|
|
979
|
+
"internalType": "string",
|
|
980
|
+
"name": "",
|
|
981
|
+
"type": "string"
|
|
982
|
+
}
|
|
983
|
+
],
|
|
984
|
+
"stateMutability": "view",
|
|
985
|
+
"type": "function"
|
|
986
|
+
},
|
|
987
|
+
{
|
|
988
|
+
"inputs": [],
|
|
989
|
+
"name": "DEFAULT_MOUTH",
|
|
990
|
+
"outputs": [
|
|
991
|
+
{
|
|
992
|
+
"internalType": "string",
|
|
993
|
+
"name": "",
|
|
994
|
+
"type": "string"
|
|
995
|
+
}
|
|
996
|
+
],
|
|
997
|
+
"stateMutability": "view",
|
|
998
|
+
"type": "function"
|
|
999
|
+
},
|
|
1000
|
+
{
|
|
1001
|
+
"inputs": [],
|
|
1002
|
+
"name": "DEFAULT_NECKLACE",
|
|
1003
|
+
"outputs": [
|
|
1004
|
+
{
|
|
1005
|
+
"internalType": "string",
|
|
1006
|
+
"name": "",
|
|
1007
|
+
"type": "string"
|
|
1008
|
+
}
|
|
1009
|
+
],
|
|
1010
|
+
"stateMutability": "view",
|
|
1011
|
+
"type": "function"
|
|
1012
|
+
},
|
|
1013
|
+
{
|
|
1014
|
+
"inputs": [],
|
|
1015
|
+
"name": "DEFAULT_STANDARD_EYES",
|
|
1016
|
+
"outputs": [
|
|
1017
|
+
{
|
|
1018
|
+
"internalType": "string",
|
|
1019
|
+
"name": "",
|
|
1020
|
+
"type": "string"
|
|
1021
|
+
}
|
|
1022
|
+
],
|
|
1023
|
+
"stateMutability": "view",
|
|
1024
|
+
"type": "function"
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"inputs": [
|
|
1028
|
+
{
|
|
1029
|
+
"internalType": "address",
|
|
1030
|
+
"name": "hook",
|
|
1031
|
+
"type": "address"
|
|
1032
|
+
},
|
|
1033
|
+
{
|
|
1034
|
+
"internalType": "uint256",
|
|
1035
|
+
"name": "bannyBodyId",
|
|
1036
|
+
"type": "uint256"
|
|
1037
|
+
}
|
|
1038
|
+
],
|
|
1039
|
+
"name": "assetIdsOf",
|
|
1040
|
+
"outputs": [
|
|
1041
|
+
{
|
|
1042
|
+
"internalType": "uint256",
|
|
1043
|
+
"name": "backgroundId",
|
|
1044
|
+
"type": "uint256"
|
|
1045
|
+
},
|
|
1046
|
+
{
|
|
1047
|
+
"internalType": "uint256[]",
|
|
1048
|
+
"name": "outfitIds",
|
|
1049
|
+
"type": "uint256[]"
|
|
1050
|
+
}
|
|
1051
|
+
],
|
|
1052
|
+
"stateMutability": "view",
|
|
1053
|
+
"type": "function"
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
"inputs": [
|
|
1057
|
+
{
|
|
1058
|
+
"internalType": "address",
|
|
1059
|
+
"name": "hook",
|
|
1060
|
+
"type": "address"
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"internalType": "uint256",
|
|
1064
|
+
"name": "bannyBodyId",
|
|
1065
|
+
"type": "uint256"
|
|
1066
|
+
},
|
|
1067
|
+
{
|
|
1068
|
+
"internalType": "uint256",
|
|
1069
|
+
"name": "backgroundId",
|
|
1070
|
+
"type": "uint256"
|
|
1071
|
+
},
|
|
1072
|
+
{
|
|
1073
|
+
"internalType": "uint256[]",
|
|
1074
|
+
"name": "outfitIds",
|
|
1075
|
+
"type": "uint256[]"
|
|
1076
|
+
}
|
|
1077
|
+
],
|
|
1078
|
+
"name": "decorateBannyWith",
|
|
1079
|
+
"outputs": [],
|
|
1080
|
+
"stateMutability": "nonpayable",
|
|
1081
|
+
"type": "function"
|
|
1082
|
+
},
|
|
1083
|
+
{
|
|
1084
|
+
"inputs": [
|
|
1085
|
+
{
|
|
1086
|
+
"internalType": "address",
|
|
1087
|
+
"name": "forwarder",
|
|
1088
|
+
"type": "address"
|
|
1089
|
+
}
|
|
1090
|
+
],
|
|
1091
|
+
"name": "isTrustedForwarder",
|
|
1092
|
+
"outputs": [
|
|
1093
|
+
{
|
|
1094
|
+
"internalType": "bool",
|
|
1095
|
+
"name": "",
|
|
1096
|
+
"type": "bool"
|
|
1097
|
+
}
|
|
1098
|
+
],
|
|
1099
|
+
"stateMutability": "view",
|
|
1100
|
+
"type": "function"
|
|
1101
|
+
},
|
|
1102
|
+
{
|
|
1103
|
+
"inputs": [
|
|
1104
|
+
{
|
|
1105
|
+
"internalType": "address",
|
|
1106
|
+
"name": "hook",
|
|
1107
|
+
"type": "address"
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
"internalType": "uint256",
|
|
1111
|
+
"name": "bannyBodyId",
|
|
1112
|
+
"type": "uint256"
|
|
1113
|
+
}
|
|
1114
|
+
],
|
|
1115
|
+
"name": "lockOutfitChangesFor",
|
|
1116
|
+
"outputs": [],
|
|
1117
|
+
"stateMutability": "nonpayable",
|
|
1118
|
+
"type": "function"
|
|
1119
|
+
},
|
|
1120
|
+
{
|
|
1121
|
+
"inputs": [
|
|
1122
|
+
{
|
|
1123
|
+
"internalType": "address",
|
|
1124
|
+
"name": "hook",
|
|
1125
|
+
"type": "address"
|
|
1126
|
+
},
|
|
1127
|
+
{
|
|
1128
|
+
"internalType": "uint256",
|
|
1129
|
+
"name": "tokenId",
|
|
1130
|
+
"type": "uint256"
|
|
1131
|
+
}
|
|
1132
|
+
],
|
|
1133
|
+
"name": "namesOf",
|
|
1134
|
+
"outputs": [
|
|
1135
|
+
{
|
|
1136
|
+
"internalType": "string",
|
|
1137
|
+
"name": "",
|
|
1138
|
+
"type": "string"
|
|
1139
|
+
},
|
|
1140
|
+
{
|
|
1141
|
+
"internalType": "string",
|
|
1142
|
+
"name": "",
|
|
1143
|
+
"type": "string"
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
"internalType": "string",
|
|
1147
|
+
"name": "",
|
|
1148
|
+
"type": "string"
|
|
1149
|
+
}
|
|
1150
|
+
],
|
|
1151
|
+
"stateMutability": "view",
|
|
1152
|
+
"type": "function"
|
|
1153
|
+
},
|
|
1154
|
+
{
|
|
1155
|
+
"inputs": [
|
|
1156
|
+
{
|
|
1157
|
+
"internalType": "address",
|
|
1158
|
+
"name": "operator",
|
|
1159
|
+
"type": "address"
|
|
1160
|
+
},
|
|
1161
|
+
{
|
|
1162
|
+
"internalType": "address",
|
|
1163
|
+
"name": "from",
|
|
1164
|
+
"type": "address"
|
|
1165
|
+
},
|
|
1166
|
+
{
|
|
1167
|
+
"internalType": "uint256",
|
|
1168
|
+
"name": "tokenId",
|
|
1169
|
+
"type": "uint256"
|
|
1170
|
+
},
|
|
1171
|
+
{
|
|
1172
|
+
"internalType": "bytes",
|
|
1173
|
+
"name": "data",
|
|
1174
|
+
"type": "bytes"
|
|
1175
|
+
}
|
|
1176
|
+
],
|
|
1177
|
+
"name": "onERC721Received",
|
|
1178
|
+
"outputs": [
|
|
1179
|
+
{
|
|
1180
|
+
"internalType": "bytes4",
|
|
1181
|
+
"name": "",
|
|
1182
|
+
"type": "bytes4"
|
|
1183
|
+
}
|
|
1184
|
+
],
|
|
1185
|
+
"stateMutability": "view",
|
|
1186
|
+
"type": "function"
|
|
1187
|
+
},
|
|
1188
|
+
{
|
|
1189
|
+
"inputs": [
|
|
1190
|
+
{
|
|
1191
|
+
"internalType": "address",
|
|
1192
|
+
"name": "hook",
|
|
1193
|
+
"type": "address"
|
|
1194
|
+
},
|
|
1195
|
+
{
|
|
1196
|
+
"internalType": "uint256",
|
|
1197
|
+
"name": "upc",
|
|
1198
|
+
"type": "uint256"
|
|
1199
|
+
}
|
|
1200
|
+
],
|
|
1201
|
+
"name": "outfitLockedUntil",
|
|
1202
|
+
"outputs": [
|
|
1203
|
+
{
|
|
1204
|
+
"internalType": "uint256",
|
|
1205
|
+
"name": "",
|
|
1206
|
+
"type": "uint256"
|
|
1207
|
+
}
|
|
1208
|
+
],
|
|
1209
|
+
"stateMutability": "view",
|
|
1210
|
+
"type": "function"
|
|
1211
|
+
},
|
|
1212
|
+
{
|
|
1213
|
+
"inputs": [],
|
|
1214
|
+
"name": "owner",
|
|
1215
|
+
"outputs": [
|
|
1216
|
+
{
|
|
1217
|
+
"internalType": "address",
|
|
1218
|
+
"name": "",
|
|
1219
|
+
"type": "address"
|
|
1220
|
+
}
|
|
1221
|
+
],
|
|
1222
|
+
"stateMutability": "view",
|
|
1223
|
+
"type": "function"
|
|
1224
|
+
},
|
|
1225
|
+
{
|
|
1226
|
+
"inputs": [],
|
|
1227
|
+
"name": "renounceOwnership",
|
|
1228
|
+
"outputs": [],
|
|
1229
|
+
"stateMutability": "nonpayable",
|
|
1230
|
+
"type": "function"
|
|
1231
|
+
},
|
|
1232
|
+
{
|
|
1233
|
+
"inputs": [
|
|
1234
|
+
{
|
|
1235
|
+
"internalType": "uint256[]",
|
|
1236
|
+
"name": "upcs",
|
|
1237
|
+
"type": "uint256[]"
|
|
1238
|
+
},
|
|
1239
|
+
{
|
|
1240
|
+
"internalType": "string[]",
|
|
1241
|
+
"name": "names",
|
|
1242
|
+
"type": "string[]"
|
|
1243
|
+
}
|
|
1244
|
+
],
|
|
1245
|
+
"name": "setProductNames",
|
|
1246
|
+
"outputs": [],
|
|
1247
|
+
"stateMutability": "nonpayable",
|
|
1248
|
+
"type": "function"
|
|
1249
|
+
},
|
|
1250
|
+
{
|
|
1251
|
+
"inputs": [
|
|
1252
|
+
{
|
|
1253
|
+
"internalType": "string",
|
|
1254
|
+
"name": "baseUri",
|
|
1255
|
+
"type": "string"
|
|
1256
|
+
}
|
|
1257
|
+
],
|
|
1258
|
+
"name": "setSvgBaseUri",
|
|
1259
|
+
"outputs": [],
|
|
1260
|
+
"stateMutability": "nonpayable",
|
|
1261
|
+
"type": "function"
|
|
1262
|
+
},
|
|
1263
|
+
{
|
|
1264
|
+
"inputs": [
|
|
1265
|
+
{
|
|
1266
|
+
"internalType": "uint256[]",
|
|
1267
|
+
"name": "upcs",
|
|
1268
|
+
"type": "uint256[]"
|
|
1269
|
+
},
|
|
1270
|
+
{
|
|
1271
|
+
"internalType": "string[]",
|
|
1272
|
+
"name": "svgContents",
|
|
1273
|
+
"type": "string[]"
|
|
1274
|
+
}
|
|
1275
|
+
],
|
|
1276
|
+
"name": "setSvgContentsOf",
|
|
1277
|
+
"outputs": [],
|
|
1278
|
+
"stateMutability": "nonpayable",
|
|
1279
|
+
"type": "function"
|
|
1280
|
+
},
|
|
1281
|
+
{
|
|
1282
|
+
"inputs": [
|
|
1283
|
+
{
|
|
1284
|
+
"internalType": "uint256[]",
|
|
1285
|
+
"name": "upcs",
|
|
1286
|
+
"type": "uint256[]"
|
|
1287
|
+
},
|
|
1288
|
+
{
|
|
1289
|
+
"internalType": "bytes32[]",
|
|
1290
|
+
"name": "svgHashs",
|
|
1291
|
+
"type": "bytes32[]"
|
|
1292
|
+
}
|
|
1293
|
+
],
|
|
1294
|
+
"name": "setSvgHashsOf",
|
|
1295
|
+
"outputs": [],
|
|
1296
|
+
"stateMutability": "nonpayable",
|
|
1297
|
+
"type": "function"
|
|
1298
|
+
},
|
|
1299
|
+
{
|
|
1300
|
+
"inputs": [],
|
|
1301
|
+
"name": "svgBaseUri",
|
|
1302
|
+
"outputs": [
|
|
1303
|
+
{
|
|
1304
|
+
"internalType": "string",
|
|
1305
|
+
"name": "",
|
|
1306
|
+
"type": "string"
|
|
1307
|
+
}
|
|
1308
|
+
],
|
|
1309
|
+
"stateMutability": "view",
|
|
1310
|
+
"type": "function"
|
|
1311
|
+
},
|
|
1312
|
+
{
|
|
1313
|
+
"inputs": [
|
|
1314
|
+
{
|
|
1315
|
+
"internalType": "uint256",
|
|
1316
|
+
"name": "upc",
|
|
1317
|
+
"type": "uint256"
|
|
1318
|
+
}
|
|
1319
|
+
],
|
|
1320
|
+
"name": "svgHashOf",
|
|
1321
|
+
"outputs": [
|
|
1322
|
+
{
|
|
1323
|
+
"internalType": "bytes32",
|
|
1324
|
+
"name": "",
|
|
1325
|
+
"type": "bytes32"
|
|
1326
|
+
}
|
|
1327
|
+
],
|
|
1328
|
+
"stateMutability": "view",
|
|
1329
|
+
"type": "function"
|
|
1330
|
+
},
|
|
1331
|
+
{
|
|
1332
|
+
"inputs": [
|
|
1333
|
+
{
|
|
1334
|
+
"internalType": "address",
|
|
1335
|
+
"name": "hook",
|
|
1336
|
+
"type": "address"
|
|
1337
|
+
},
|
|
1338
|
+
{
|
|
1339
|
+
"internalType": "uint256",
|
|
1340
|
+
"name": "tokenId",
|
|
1341
|
+
"type": "uint256"
|
|
1342
|
+
},
|
|
1343
|
+
{
|
|
1344
|
+
"internalType": "bool",
|
|
1345
|
+
"name": "shouldDressBannyBody",
|
|
1346
|
+
"type": "bool"
|
|
1347
|
+
},
|
|
1348
|
+
{
|
|
1349
|
+
"internalType": "bool",
|
|
1350
|
+
"name": "shouldIncludeBackgroundOnBannyBody",
|
|
1351
|
+
"type": "bool"
|
|
1352
|
+
}
|
|
1353
|
+
],
|
|
1354
|
+
"name": "svgOf",
|
|
1355
|
+
"outputs": [
|
|
1356
|
+
{
|
|
1357
|
+
"internalType": "string",
|
|
1358
|
+
"name": "",
|
|
1359
|
+
"type": "string"
|
|
1360
|
+
}
|
|
1361
|
+
],
|
|
1362
|
+
"stateMutability": "view",
|
|
1363
|
+
"type": "function"
|
|
1364
|
+
},
|
|
1365
|
+
{
|
|
1366
|
+
"inputs": [
|
|
1367
|
+
{
|
|
1368
|
+
"internalType": "address",
|
|
1369
|
+
"name": "hook",
|
|
1370
|
+
"type": "address"
|
|
1371
|
+
},
|
|
1372
|
+
{
|
|
1373
|
+
"internalType": "uint256",
|
|
1374
|
+
"name": "tokenId",
|
|
1375
|
+
"type": "uint256"
|
|
1376
|
+
}
|
|
1377
|
+
],
|
|
1378
|
+
"name": "tokenUriOf",
|
|
1379
|
+
"outputs": [
|
|
1380
|
+
{
|
|
1381
|
+
"internalType": "string",
|
|
1382
|
+
"name": "",
|
|
1383
|
+
"type": "string"
|
|
1384
|
+
}
|
|
1385
|
+
],
|
|
1386
|
+
"stateMutability": "view",
|
|
1387
|
+
"type": "function"
|
|
1388
|
+
},
|
|
1389
|
+
{
|
|
1390
|
+
"inputs": [
|
|
1391
|
+
{
|
|
1392
|
+
"internalType": "address",
|
|
1393
|
+
"name": "newOwner",
|
|
1394
|
+
"type": "address"
|
|
1395
|
+
}
|
|
1396
|
+
],
|
|
1397
|
+
"name": "transferOwnership",
|
|
1398
|
+
"outputs": [],
|
|
1399
|
+
"stateMutability": "nonpayable",
|
|
1400
|
+
"type": "function"
|
|
1401
|
+
},
|
|
1402
|
+
{
|
|
1403
|
+
"inputs": [],
|
|
1404
|
+
"name": "trustedForwarder",
|
|
1405
|
+
"outputs": [
|
|
1406
|
+
{
|
|
1407
|
+
"internalType": "address",
|
|
1408
|
+
"name": "",
|
|
1409
|
+
"type": "address"
|
|
1410
|
+
}
|
|
1411
|
+
],
|
|
1412
|
+
"stateMutability": "view",
|
|
1413
|
+
"type": "function"
|
|
1414
|
+
},
|
|
1415
|
+
{
|
|
1416
|
+
"inputs": [
|
|
1417
|
+
{
|
|
1418
|
+
"internalType": "address",
|
|
1419
|
+
"name": "hook",
|
|
1420
|
+
"type": "address"
|
|
1421
|
+
},
|
|
1422
|
+
{
|
|
1423
|
+
"internalType": "uint256",
|
|
1424
|
+
"name": "backgroundId",
|
|
1425
|
+
"type": "uint256"
|
|
1426
|
+
}
|
|
1427
|
+
],
|
|
1428
|
+
"name": "userOf",
|
|
1429
|
+
"outputs": [
|
|
1430
|
+
{
|
|
1431
|
+
"internalType": "uint256",
|
|
1432
|
+
"name": "",
|
|
1433
|
+
"type": "uint256"
|
|
1434
|
+
}
|
|
1435
|
+
],
|
|
1436
|
+
"stateMutability": "view",
|
|
1437
|
+
"type": "function"
|
|
1438
|
+
},
|
|
1439
|
+
{
|
|
1440
|
+
"inputs": [
|
|
1441
|
+
{
|
|
1442
|
+
"internalType": "address",
|
|
1443
|
+
"name": "hook",
|
|
1444
|
+
"type": "address"
|
|
1445
|
+
},
|
|
1446
|
+
{
|
|
1447
|
+
"internalType": "uint256",
|
|
1448
|
+
"name": "outfitId",
|
|
1449
|
+
"type": "uint256"
|
|
1450
|
+
}
|
|
1451
|
+
],
|
|
1452
|
+
"name": "wearerOf",
|
|
1453
|
+
"outputs": [
|
|
1454
|
+
{
|
|
1455
|
+
"internalType": "uint256",
|
|
1456
|
+
"name": "",
|
|
1457
|
+
"type": "uint256"
|
|
1458
|
+
}
|
|
1459
|
+
],
|
|
1460
|
+
"stateMutability": "view",
|
|
1461
|
+
"type": "function"
|
|
1462
|
+
},
|
|
1463
|
+
{
|
|
1464
|
+
"anonymous": false,
|
|
1465
|
+
"inputs": [
|
|
1466
|
+
{
|
|
1467
|
+
"indexed": true,
|
|
1468
|
+
"internalType": "address",
|
|
1469
|
+
"name": "hook",
|
|
1470
|
+
"type": "address"
|
|
1471
|
+
},
|
|
1472
|
+
{
|
|
1473
|
+
"indexed": true,
|
|
1474
|
+
"internalType": "uint256",
|
|
1475
|
+
"name": "bannyBodyId",
|
|
1476
|
+
"type": "uint256"
|
|
1477
|
+
},
|
|
1478
|
+
{
|
|
1479
|
+
"indexed": true,
|
|
1480
|
+
"internalType": "uint256",
|
|
1481
|
+
"name": "backgroundId",
|
|
1482
|
+
"type": "uint256"
|
|
1483
|
+
},
|
|
1484
|
+
{
|
|
1485
|
+
"indexed": false,
|
|
1486
|
+
"internalType": "uint256[]",
|
|
1487
|
+
"name": "outfitIds",
|
|
1488
|
+
"type": "uint256[]"
|
|
1489
|
+
},
|
|
1490
|
+
{
|
|
1491
|
+
"indexed": false,
|
|
1492
|
+
"internalType": "address",
|
|
1493
|
+
"name": "caller",
|
|
1494
|
+
"type": "address"
|
|
1495
|
+
}
|
|
1496
|
+
],
|
|
1497
|
+
"name": "DecorateBanny",
|
|
1498
|
+
"type": "event"
|
|
1499
|
+
},
|
|
1500
|
+
{
|
|
1501
|
+
"anonymous": false,
|
|
1502
|
+
"inputs": [
|
|
1503
|
+
{
|
|
1504
|
+
"indexed": true,
|
|
1505
|
+
"internalType": "address",
|
|
1506
|
+
"name": "previousOwner",
|
|
1507
|
+
"type": "address"
|
|
1508
|
+
},
|
|
1509
|
+
{
|
|
1510
|
+
"indexed": true,
|
|
1511
|
+
"internalType": "address",
|
|
1512
|
+
"name": "newOwner",
|
|
1513
|
+
"type": "address"
|
|
1514
|
+
}
|
|
1515
|
+
],
|
|
1516
|
+
"name": "OwnershipTransferred",
|
|
1517
|
+
"type": "event"
|
|
1518
|
+
},
|
|
1519
|
+
{
|
|
1520
|
+
"anonymous": false,
|
|
1521
|
+
"inputs": [
|
|
1522
|
+
{
|
|
1523
|
+
"indexed": true,
|
|
1524
|
+
"internalType": "uint256",
|
|
1525
|
+
"name": "upc",
|
|
1526
|
+
"type": "uint256"
|
|
1527
|
+
},
|
|
1528
|
+
{
|
|
1529
|
+
"indexed": false,
|
|
1530
|
+
"internalType": "string",
|
|
1531
|
+
"name": "name",
|
|
1532
|
+
"type": "string"
|
|
1533
|
+
},
|
|
1534
|
+
{
|
|
1535
|
+
"indexed": false,
|
|
1536
|
+
"internalType": "address",
|
|
1537
|
+
"name": "caller",
|
|
1538
|
+
"type": "address"
|
|
1539
|
+
}
|
|
1540
|
+
],
|
|
1541
|
+
"name": "SetProductName",
|
|
1542
|
+
"type": "event"
|
|
1543
|
+
},
|
|
1544
|
+
{
|
|
1545
|
+
"anonymous": false,
|
|
1546
|
+
"inputs": [
|
|
1547
|
+
{
|
|
1548
|
+
"indexed": false,
|
|
1549
|
+
"internalType": "string",
|
|
1550
|
+
"name": "baseUri",
|
|
1551
|
+
"type": "string"
|
|
1552
|
+
},
|
|
1553
|
+
{
|
|
1554
|
+
"indexed": false,
|
|
1555
|
+
"internalType": "address",
|
|
1556
|
+
"name": "caller",
|
|
1557
|
+
"type": "address"
|
|
1558
|
+
}
|
|
1559
|
+
],
|
|
1560
|
+
"name": "SetSvgBaseUri",
|
|
1561
|
+
"type": "event"
|
|
1562
|
+
},
|
|
1563
|
+
{
|
|
1564
|
+
"anonymous": false,
|
|
1565
|
+
"inputs": [
|
|
1566
|
+
{
|
|
1567
|
+
"indexed": true,
|
|
1568
|
+
"internalType": "uint256",
|
|
1569
|
+
"name": "upc",
|
|
1570
|
+
"type": "uint256"
|
|
1571
|
+
},
|
|
1572
|
+
{
|
|
1573
|
+
"indexed": false,
|
|
1574
|
+
"internalType": "string",
|
|
1575
|
+
"name": "svgContent",
|
|
1576
|
+
"type": "string"
|
|
1577
|
+
},
|
|
1578
|
+
{
|
|
1579
|
+
"indexed": false,
|
|
1580
|
+
"internalType": "address",
|
|
1581
|
+
"name": "caller",
|
|
1582
|
+
"type": "address"
|
|
1583
|
+
}
|
|
1584
|
+
],
|
|
1585
|
+
"name": "SetSvgContent",
|
|
1586
|
+
"type": "event"
|
|
1587
|
+
},
|
|
1588
|
+
{
|
|
1589
|
+
"anonymous": false,
|
|
1590
|
+
"inputs": [
|
|
1591
|
+
{
|
|
1592
|
+
"indexed": true,
|
|
1593
|
+
"internalType": "uint256",
|
|
1594
|
+
"name": "upc",
|
|
1595
|
+
"type": "uint256"
|
|
1596
|
+
},
|
|
1597
|
+
{
|
|
1598
|
+
"indexed": true,
|
|
1599
|
+
"internalType": "bytes32",
|
|
1600
|
+
"name": "svgHash",
|
|
1601
|
+
"type": "bytes32"
|
|
1602
|
+
},
|
|
1603
|
+
{
|
|
1604
|
+
"indexed": false,
|
|
1605
|
+
"internalType": "address",
|
|
1606
|
+
"name": "caller",
|
|
1607
|
+
"type": "address"
|
|
1608
|
+
}
|
|
1609
|
+
],
|
|
1610
|
+
"name": "SetSvgHash",
|
|
1611
|
+
"type": "event"
|
|
1612
|
+
},
|
|
1613
|
+
{
|
|
1614
|
+
"inputs": [],
|
|
1615
|
+
"name": "Banny721TokenUriResolver_CantAccelerateTheLock",
|
|
1616
|
+
"type": "error"
|
|
1617
|
+
},
|
|
1618
|
+
{
|
|
1619
|
+
"inputs": [],
|
|
1620
|
+
"name": "Banny721TokenUriResolver_ContentsAlreadyStored",
|
|
1621
|
+
"type": "error"
|
|
1622
|
+
},
|
|
1623
|
+
{
|
|
1624
|
+
"inputs": [],
|
|
1625
|
+
"name": "Banny721TokenUriResolver_ContentsMismatch",
|
|
1626
|
+
"type": "error"
|
|
1627
|
+
},
|
|
1628
|
+
{
|
|
1629
|
+
"inputs": [],
|
|
1630
|
+
"name": "Banny721TokenUriResolver_HashAlreadyStored",
|
|
1631
|
+
"type": "error"
|
|
1632
|
+
},
|
|
1633
|
+
{
|
|
1634
|
+
"inputs": [],
|
|
1635
|
+
"name": "Banny721TokenUriResolver_HashNotFound",
|
|
1636
|
+
"type": "error"
|
|
1637
|
+
},
|
|
1638
|
+
{
|
|
1639
|
+
"inputs": [],
|
|
1640
|
+
"name": "Banny721TokenUriResolver_HeadAlreadyAdded",
|
|
1641
|
+
"type": "error"
|
|
1642
|
+
},
|
|
1643
|
+
{
|
|
1644
|
+
"inputs": [],
|
|
1645
|
+
"name": "Banny721TokenUriResolver_OutfitChangesLocked",
|
|
1646
|
+
"type": "error"
|
|
1647
|
+
},
|
|
1648
|
+
{
|
|
1649
|
+
"inputs": [],
|
|
1650
|
+
"name": "Banny721TokenUriResolver_SuitAlreadyAdded",
|
|
1651
|
+
"type": "error"
|
|
1652
|
+
},
|
|
1653
|
+
{
|
|
1654
|
+
"inputs": [],
|
|
1655
|
+
"name": "Banny721TokenUriResolver_UnauthorizedBackground",
|
|
1656
|
+
"type": "error"
|
|
1657
|
+
},
|
|
1658
|
+
{
|
|
1659
|
+
"inputs": [],
|
|
1660
|
+
"name": "Banny721TokenUriResolver_UnauthorizedBannyBody",
|
|
1661
|
+
"type": "error"
|
|
1662
|
+
},
|
|
1663
|
+
{
|
|
1664
|
+
"inputs": [],
|
|
1665
|
+
"name": "Banny721TokenUriResolver_UnauthorizedOutfit",
|
|
1666
|
+
"type": "error"
|
|
1667
|
+
},
|
|
1668
|
+
{
|
|
1669
|
+
"inputs": [],
|
|
1670
|
+
"name": "Banny721TokenUriResolver_UnauthorizedTransfer",
|
|
1671
|
+
"type": "error"
|
|
1672
|
+
},
|
|
1673
|
+
{
|
|
1674
|
+
"inputs": [],
|
|
1675
|
+
"name": "Banny721TokenUriResolver_UnorderedCategories",
|
|
1676
|
+
"type": "error"
|
|
1677
|
+
},
|
|
1678
|
+
{
|
|
1679
|
+
"inputs": [],
|
|
1680
|
+
"name": "Banny721TokenUriResolver_UnrecognizedBackground",
|
|
1681
|
+
"type": "error"
|
|
1682
|
+
},
|
|
1683
|
+
{
|
|
1684
|
+
"inputs": [],
|
|
1685
|
+
"name": "Banny721TokenUriResolver_UnrecognizedCategory",
|
|
1686
|
+
"type": "error"
|
|
1687
|
+
},
|
|
1688
|
+
{
|
|
1689
|
+
"inputs": [],
|
|
1690
|
+
"name": "Banny721TokenUriResolver_UnrecognizedProduct",
|
|
1691
|
+
"type": "error"
|
|
1692
|
+
},
|
|
1693
|
+
{
|
|
1694
|
+
"inputs": [
|
|
1695
|
+
{
|
|
1696
|
+
"internalType": "address",
|
|
1697
|
+
"name": "owner",
|
|
1698
|
+
"type": "address"
|
|
1699
|
+
}
|
|
1700
|
+
],
|
|
1701
|
+
"name": "OwnableInvalidOwner",
|
|
1702
|
+
"type": "error"
|
|
1703
|
+
},
|
|
1704
|
+
{
|
|
1705
|
+
"inputs": [
|
|
1706
|
+
{
|
|
1707
|
+
"internalType": "address",
|
|
1708
|
+
"name": "account",
|
|
1709
|
+
"type": "address"
|
|
1710
|
+
}
|
|
1711
|
+
],
|
|
1712
|
+
"name": "OwnableUnauthorizedAccount",
|
|
1713
|
+
"type": "error"
|
|
1714
|
+
},
|
|
1715
|
+
{
|
|
1716
|
+
"inputs": [],
|
|
1717
|
+
"name": "ReentrancyGuardReentrantCall",
|
|
1718
|
+
"type": "error"
|
|
1719
|
+
}
|
|
1720
|
+
],
|
|
1721
|
+
"args": [],
|
|
1722
|
+
"solcInputHash": "4d4e144dd4f9b678cbfd03cbd2bcd5d7",
|
|
1723
|
+
"receipt": {
|
|
1724
|
+
"type": "0x2",
|
|
1725
|
+
"status": "0x1",
|
|
1726
|
+
"cumulativeGasUsed": "0xa20984",
|
|
1727
|
+
"logs": [
|
|
1728
|
+
{
|
|
1729
|
+
"address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
|
|
1730
|
+
"topics": [
|
|
1731
|
+
"0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
|
|
1732
|
+
"0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
|
|
1733
|
+
"0x000000000000000000000000656ff6398c45adca3fe6e5f8fd53aebd4f318017",
|
|
1734
|
+
"0x6bf0ef9d29b47ba72fd859efef934b6f8524ffb6892dc3116c1a263bc6a1d4e3"
|
|
1735
|
+
],
|
|
1736
|
+
"data": "0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
1737
|
+
"blockHash": "0x90ce88140e12c9e3ce72c0eaf1b5769e6a4f74ec2283d5edc8438d24a4461156",
|
|
1738
|
+
"blockNumber": "0x86821b3",
|
|
1739
|
+
"blockTimestamp": "0x68c41d1f",
|
|
1740
|
+
"transactionHash": "0x2958c6b45f1cb21bb00f23b6b1de665df019bb8320a6ac391773f1c444a0ddb7",
|
|
1741
|
+
"transactionIndex": "0x2",
|
|
1742
|
+
"logIndex": "0xc",
|
|
1743
|
+
"removed": false
|
|
1744
|
+
},
|
|
1745
|
+
{
|
|
1746
|
+
"address": "0x47c011146a4498a70e0bf2e4585acf9cade85954",
|
|
1747
|
+
"topics": [
|
|
1748
|
+
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
|
|
1749
|
+
"0x0000000000000000000000000000000000000000000000000000000000000000",
|
|
1750
|
+
"0x0000000000000000000000009e2a10ab3bd22831f19d02c648bc2cb49b127450"
|
|
1751
|
+
],
|
|
1752
|
+
"data": "0x",
|
|
1753
|
+
"blockHash": "0x90ce88140e12c9e3ce72c0eaf1b5769e6a4f74ec2283d5edc8438d24a4461156",
|
|
1754
|
+
"blockNumber": "0x86821b3",
|
|
1755
|
+
"blockTimestamp": "0x68c41d1f",
|
|
1756
|
+
"transactionHash": "0x2958c6b45f1cb21bb00f23b6b1de665df019bb8320a6ac391773f1c444a0ddb7",
|
|
1757
|
+
"transactionIndex": "0x2",
|
|
1758
|
+
"logIndex": "0xd",
|
|
1759
|
+
"removed": false
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
"address": "0x9e2a10ab3bd22831f19d02c648bc2cb49b127450",
|
|
1763
|
+
"topics": [
|
|
1764
|
+
"0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
|
|
1765
|
+
"0x000000000000000000000000656ff6398c45adca3fe6e5f8fd53aebd4f318017"
|
|
1766
|
+
],
|
|
1767
|
+
"data": "0x",
|
|
1768
|
+
"blockHash": "0x90ce88140e12c9e3ce72c0eaf1b5769e6a4f74ec2283d5edc8438d24a4461156",
|
|
1769
|
+
"blockNumber": "0x86821b3",
|
|
1770
|
+
"blockTimestamp": "0x68c41d1f",
|
|
1771
|
+
"transactionHash": "0x2958c6b45f1cb21bb00f23b6b1de665df019bb8320a6ac391773f1c444a0ddb7",
|
|
1772
|
+
"transactionIndex": "0x2",
|
|
1773
|
+
"logIndex": "0xe",
|
|
1774
|
+
"removed": false
|
|
1775
|
+
},
|
|
1776
|
+
{
|
|
1777
|
+
"address": "0x656ff6398c45adca3fe6e5f8fd53aebd4f318017",
|
|
1778
|
+
"topics": [
|
|
1779
|
+
"0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
|
|
1780
|
+
"0x85b22e702cdaf7ef670c7488270980058fdbbe8d76f5dc15311253f924037df8"
|
|
1781
|
+
],
|
|
1782
|
+
"data": "0x0000000000000000000000000000000000000000000000000000000000000001",
|
|
1783
|
+
"blockHash": "0x90ce88140e12c9e3ce72c0eaf1b5769e6a4f74ec2283d5edc8438d24a4461156",
|
|
1784
|
+
"blockNumber": "0x86821b3",
|
|
1785
|
+
"blockTimestamp": "0x68c41d1f",
|
|
1786
|
+
"transactionHash": "0x2958c6b45f1cb21bb00f23b6b1de665df019bb8320a6ac391773f1c444a0ddb7",
|
|
1787
|
+
"transactionIndex": "0x2",
|
|
1788
|
+
"logIndex": "0xf",
|
|
1789
|
+
"removed": false
|
|
1790
|
+
}
|
|
1791
|
+
],
|
|
1792
|
+
"logsBloom": "0x000000000000100000000000000800000000000000000000008000000000000000000000208000000000000000480000000000000000000000000000000000000000000000002000000000000000000002010000000000000000000000000000000000000200000000000000008008000000000000000000000080000010004008000000010004000021040000200000000000000100000800000000000000000040000400000000000000000200000022000000000000000000000000040000000000020000000000000000000004000000000000000000000000000c0020000000004000000000002001008000000200000000000080000000000000000000",
|
|
1793
|
+
"transactionHash": "0x2958c6b45f1cb21bb00f23b6b1de665df019bb8320a6ac391773f1c444a0ddb7",
|
|
1794
|
+
"transactionIndex": "0x2",
|
|
1795
|
+
"blockHash": "0x90ce88140e12c9e3ce72c0eaf1b5769e6a4f74ec2283d5edc8438d24a4461156",
|
|
1796
|
+
"blockNumber": "0x86821b3",
|
|
1797
|
+
"gasUsed": "0x961cca",
|
|
1798
|
+
"effectiveGasPrice": "0x24b667",
|
|
1799
|
+
"from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
|
|
1800
|
+
"to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
|
|
1801
|
+
"contractAddress": null
|
|
1802
|
+
},
|
|
1803
|
+
"bytecode": "0x60a060405234620007685762006340803803806200001d816200076c565b928339810160e082820312620007685781516001600160401b03908181116200076857826200004e91850162000792565b602093848101518381116200076857846200006b91830162000792565b9360408201518481116200076857816200008791840162000792565b6060830151858111620007685782620000a291850162000792565b916080840151908682116200076857620000be91850162000792565b92620000db60c0620000d360a0840162000802565b920162000802565b906001600160a01b0390811690811562000750575f548260018060a01b03198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a36080526001958680558451868111620003f657600954958887811c9716801562000745575b8a881014620003d7578190601f97888111620006f1575b508a9088831160011462000689575f926200067d575b50505f19600383901b1c191690881b176009555b805190868211620003f657600754908882811c9216801562000672575b8a831014620003d75781878493116200061e575b508990878311600114620005b8575f92620005ac575b50505f19600383901b1c191690871b176007555b805190858211620003f657600654908782811c92168015620005a1575b89831014620003d75781868493116200054d575b508890868311600114620004e7575f92620004db575b50505f19600383901b1c191690861b176006555b805190848211620003f657600854908682811c92168015620004d0575b88831014620003d75781858493116200047c575b50879085831160011462000416575f926200040a575b50505f19600383901b1c191690851b176008555b8051928311620003f65760059485548581811c91168015620003eb575b82821014620003d75783811162000391575b50809284116001146200032a57509282939183925f946200031e575b50501b915f199060031b1c19161790555b604051615b289081620008188239608051818181610ad601528181610cae01526158c80152f35b015192505f80620002e6565b919083601f198116875f52845f20945f905b888383106200037657505050106200035d575b505050811b019055620002f7565b01515f1960f88460031b161c191690555f80806200034f565b8587015188559096019594850194879350908101906200033c565b865f52815f2084808701891c820192848810620003cd575b01881c019086905b828110620003c1575050620002ca565b5f8155018690620003b1565b92508192620003a9565b634e487b7160e01b5f52602260045260245ffd5b90607f1690620002b8565b634e487b7160e01b5f52604160045260245ffd5b015190505f8062000287565b90879350601f1983169160085f52895f20925f5b8b8282106200046557505084116200044c575b505050811b016008556200029b565b01515f1960f88460031b161c191690555f80806200043d565b8385015186558b979095019493840193016200042a565b90915060085f52875f208580850160051c8201928a8610620004c6575b918991869594930160051c01915b828110620004b757505062000271565b5f8155859450899101620004a7565b9250819262000499565b91607f16916200025d565b015190505f806200022c565b90889350601f1983169160065f528a5f20925f5b8c8282106200053657505084116200051d575b505050811b0160065562000240565b01515f1960f88460031b161c191690555f80806200050e565b8385015186558c97909501949384019301620004fb565b90915060065f52885f208680850160051c8201928b861062000597575b918a91869594930160051c01915b8281106200058857505062000216565b5f81558594508a910162000578565b925081926200056a565b91607f169162000202565b015190505f80620001d1565b90899350601f1983169160075f528b5f20925f5b8d828210620006075750508411620005ee575b505050811b01600755620001e5565b01515f1960f88460031b161c191690555f8080620005df565b8385015186558d97909501949384019301620005cc565b90915060075f52895f208780850160051c8201928c861062000668575b918b91869594930160051c01915b82811062000659575050620001bb565b5f81558594508b910162000649565b925081926200063b565b91607f1691620001a7565b015190505f8062000176565b908a9350601f1983169160095f528c5f20928d5f905b828210620006d95750508411620006c0575b505050811b016009556200018a565b01515f1960f88460031b161c191690555f8080620006b1565b8385015186558e979095019493840193018e6200069f565b90915060095f528a5f208880850160051c8201928d86106200073b575b918c91869594930160051c01915b8281106200072c57505062000160565b5f81558594508c91016200071c565b925081926200070e565b96607f169662000149565b604051631e4fbdf760e01b81525f6004820152602490fd5b5f80fd5b6040519190601f01601f191682016001600160401b03811183821017620003f657604052565b919080601f84011215620007685782516001600160401b038111620003f657602090620007c8601f8201601f191683016200076c565b9281845282828701011162000768575f5b818110620007ee5750825f9394955001015290565b8581018301518482018401528201620007d9565b51906001600160a01b0382168203620007685756fe60806040526004361015610011575f80fd5b5f3560e01c806257bfdd146101b357806305b2ae1b146101ae578063150b7a02146101a9578063187be308146101a457806318ab522d1461019f5780632150a1381461019a5780632580833d1461019557806331a290ac14610190578063572b6c051461018b57806359a81d91146101865780635e703e71146101815780636aff31dd1461017c578063715018a61461017757806379a2696e146101725780637da0a8771461016d578063875e4bea146101685780638da5cb5b14610163578063a0122c091461015e578063a22d0dd514610159578063b03a3eab14610154578063b1fa9e7b1461014f578063b3fa27831461014a578063c06e7bc714610145578063c122804614610140578063d756227e1461013b5763f2fde38b14610136575f80fd5b611371565b6112a1565b611207565b6110b9565b611014565b610fe9565b610f45565b610f00565b610e64565b610e3f565b610cd2565b610c8f565b610c5c565b610bf8565b610bce565b610ba2565b610afd565b610aa7565b61093f565b6107db565b610736565b6106bf565b610629565b6105ab565b610490565b610459565b90600182811c921680156101e6575b60208310146101d257565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101c7565b634e487b7160e01b5f52604160045260245ffd5b6101e0810190811067ffffffffffffffff82111761022157604052565b6101f0565b6020810190811067ffffffffffffffff82111761022157604052565b6040810190811067ffffffffffffffff82111761022157604052565b6060810190811067ffffffffffffffff82111761022157604052565b90601f8019910116810190811067ffffffffffffffff82111761022157604052565b604051905f82600354916102af836101b8565b8083529260209060019081811690811561033b57506001146102dc575b50506102da9250038361027a565b565b91509260035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b935f925b82841061032357506102da9450505081016020015f806102cc565b85548885018301529485019487945092810192610308565b915050602092506102da94915060ff191682840152151560051b8201015f806102cc565b9060405191825f8254610371816101b8565b908184526020946001916001811690815f146103dd575060011461039f575b5050506102da9250038361027a565b5f90815285812095935091905b8183106103c55750506102da93508201015f8080610390565b855488840185015294850194879450918301916103ac565b925050506102da94925060ff191682840152151560051b8201015f8080610390565b5f5b8381106104105750505f910152565b8181015183820152602001610401565b90602091610439815180928185528580860191016103ff565b601f01601f1916010190565b906020610456928181520190610420565b90565b3461048c575f36600319011261048c5761048861047461029c565b604051918291602083526020830190610420565b0390f35b5f80fd5b3461048c575f36600319011261048c576040515f6008546104b0816101b8565b8084529060209060019081811690811561054257506001146104e9575b610488856104dd8187038261027a565b60405191829182610445565b60085f90815293507ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b83851061052f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610513565b869550610488969350602092506104dd94915060ff191682840152151560051b82010192936104cd565b6001600160a01b0381160361048c57565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020838186019501011161048c57565b3461048c57608036600319011261048c576004356105c88161056c565b6105d360243561056c565b60643567ffffffffffffffff811161048c576105f390369060040161057d565b50506001600160a01b033091160361061757604051630a85bd0160e11b8152602090f35b604051633b2c6aa160e21b8152600490fd5b3461048c57604036600319011261048c576004356106468161056c565b6001600160a01b036024359161065c8382612f6d565b16805f52600260205260405f20825f5260205260405f20549162093a804201928342116106ba5783106106a8576106a5915f52600260205260405f20905f5260205260405f2090565b55005b604051631057c89560e21b8152600490fd5b611405565b3461048c57604036600319011261048c576106e86004356106df8161056c565b60243590611518565b90604051918291604083019083526020906040602085015282518091526020606085019301915f5b82811061071f57505050500390f35b835185528695509381019392810192600101610710565b3461048c575f36600319011261048c576040515f600554610756816101b8565b80845290602090600190818116908115610542575060011461078257610488856104dd8187038261027a565b60055f90815293507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b8385106107c8575050505081016020016104dd826104886104cd565b80548686018401529382019381016107ac565b3461048c575f36600319011261048c576040515f6006546107fb816101b8565b80845290602090600190818116908115610542575060011461082757610488856104dd8187038261027a565b60065f90815293507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b83851061086d575050505081016020016104dd826104886104cd565b8054868601840152938201938101610851565b604051906102da82610204565b67ffffffffffffffff81116102215760051b60200190565b92916108b08261088d565b916108be604051938461027a565b829481845260208094019160051b810192831161048c57905b8282106108e45750505050565b813581529083019083016108d7565b9080601f8301121561048c57816020610456933591016108a5565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020808501948460051b01011161048c57565b3461048c5760408060031936011261048c5760049067ffffffffffffffff823581811161048c5761097390369085016108f3565b9060243590811161048c5761098b903690850161090e565b9290915f5b8151811015610aa5576109a381836114f6565b516109b96109b28388886115e2565b369161126b565b6109d36109ce835f52600d60205260405f2090565b611624565b610a95576109e9825f52600460205260405f2090565b548015610a855785516020810190610a1381610a05848761162e565b03601f19810183528261027a565b51902003610a7557907faeb631726b45aa3f6b09da79f7af03a9784614901f61a967ed84d63c37b7edc7610a6c83610a5f60019695610a5a865f52600d60205260405f2090565b6116f3565b87519182913390836117c3565b0390a201610990565b845163d8e55daf60e01b81528890fd5b85516338d87d3960e01b81528990fd5b845163444244f560e01b81528890fd5b005b3461048c57602036600319011261048c576020600435610ac68161056c565b6001600160a01b039060405191807f0000000000000000000000000000000000000000000000000000000000000000169116148152f35b3461048c575f36600319011261048c576040515f600954610b1d816101b8565b808452906020906001908181169081156105425750600114610b4957610488856104dd8187038261027a565b60095f90815293507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b838510610b8f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610b73565b3461048c57604036600319011261048c57610488610474600435610bc58161056c565b6024359061209c565b3461048c57602036600319011261048c576004355f526004602052602060405f2054604051908152f35b3461048c575f36600319011261048c57610c1061440a565b5f6001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048c57604036600319011261048c576020610c87600435610c7e8161056c565b60243590612a0e565b604051908152f35b3461048c575f36600319011261048c5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048c5760208060031936011261048c5767ffffffffffffffff60043581811161048c57610d0590369060040161057d565b9091610d0f61440a565b811161022157610d2981610d246003546101b8565b61165b565b5f92601f8211600114610d9d5750610d7881807f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f955f91610d92575b508160011b915f199060031b1c19161790565b6003555b610d8d604051928392339184612a69565b0390a1005b90508401355f610d65565b60035f52601f198216937fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b868210610e27575050827f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f9510610e0e575b5050600181811b01600355610d7c565b8301355f19600384901b60f8161c191690555f80610dfe565b80600184958294958901358155019401920190610dcc565b3461048c575f36600319011261048c5760206001600160a01b035f5416604051908152f35b3461048c57604036600319011261048c57610eda600435610e848161056c565b610488610e9e610e97602435809461319a565b809361414e565b91610ee8610ec563ffffffff610ebd62ffffff61010086015116613770565b93511661395f565b91604051958695606087526060870190610420565b908582036020870152610420565b908382036040850152610420565b8015150361048c57565b3461048c57608036600319011261048c57610488610474600435610f238161056c565b604435610f2f81610ef6565b60643591610f3c83610ef6565b60243590612bb6565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c57610f779036906004016108f3565b9060243590811161048c573660238201121561048c578060040135610f9b8161088d565b91610fa9604051938461027a565b8183526020916024602085019160051b8301019136831161048c57602401905b828210610fda57610aa58587612cb8565b81358152908301908301610fc9565b3461048c57604036600319011261048c576020610c8760043561100b8161056c565b60243590612d4f565b3461048c575f36600319011261048c576040515f600754611034816101b8565b80845290602090600190818116908115610542575060011461106057610488856104dd8187038261027a565b60075f90815293507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b8385106110a6575050505081016020016104dd826104886104cd565b805486860184015293820193810161108a565b3461048c57608036600319011261048c576004356110d68161056c565b6044359060243560643567ffffffffffffffff811161048c576110fd90369060040161090e565b906002600154146111f55760026001556111178385612f6d565b6001600160a01b039182851692835f526002602052604096875f20865f52602052875f205442106111e45761114a6158be565b97838151918083528201527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841161048c57866111d5967f6a68946ba06488db8585d7c7637fa954b574035fe15720ea760125ef8601725883606086958a6111db9f996111ce9a8c60051b8093868601371660208301528101030190a48587614b16565b36916108a5565b91614dc9565b610aa560018055565b8751632d2f65a360e11b8152600490fd5b604051633ee5aeb560e01b8152600490fd5b3461048c57604036600319011261048c576001600160a01b0360043561122c8161056c565b165f52600260205260405f206024355f52602052602060405f2054604051908152f35b67ffffffffffffffff811161022157601f01601f191660200190565b9291926112778261124f565b91611285604051938461027a565b82948184528183011161048c578281602093845f960137010152565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c576112d39036906004016108f3565b60249060243583811161048c573660238201121561048c578060040135926112fa8461088d565b93611308604051958661027a565b8085526020956024602087019260051b8501019336851161048c5760248101925b85841061133a57610aa58888612dde565b833583811161048c5782013660438201121561048c5789916113668392369060448a820135910161126b565b815201930192611329565b3461048c57602036600319011261048c5760043561138e8161056c565b61139661440a565b6001600160a01b038091169081156113ed575f548273ffffffffffffffffffffffffffffffffffffffff198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b604051631e4fbdf760e01b81525f6004820152602490fd5b634e487b7160e01b5f52601160045260245ffd5b90600282018092116106ba57565b90602082018092116106ba57565b90600182018092116106ba57565b919082018092116106ba57565b90604051918281549182825260209260208301915f5260205f20935f905b828210611484575050506102da9250038361027a565b85548452600195860195889550938101939091019061146e565b906114a88261088d565b6114b5604051918261027a565b82815280926114c6601f199161088d565b0190602036910137565b634e487b7160e01b5f52603260045260245ffd5b8051156114f15760200190565b6114d0565b80518210156114f15760209160051b010190565b5f1981146106ba5760010190565b9190915f926001600160a01b0382165f52600a60205260405f20815f5260205261154460405f20611450565b9361154f855161149e565b915f915f5b875181101561159d578061156a6001928a6114f6565b5184611576828a612d4f565b14611583575b5001611554565b61159661158f8761150a565b96886114f6565b525f61157c565b5095509050929190926115c1826001600160a01b03165f52600b60205260405f2090565b815f526020526115d660405f20548093612a0e565b146115de5750565b9250565b91908110156114f15760051b81013590601e198136030182121561048c57019081359167ffffffffffffffff831161048c57602001823603811361048c579190565b61045690546101b8565b90611641602092828151948592016103ff565b0190565b818110611650575050565b5f8155600101611645565b90601f8211611668575050565b6102da9160035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b906020601f840160051c830193106116b1575b601f0160051c0190611645565b90915081906116a4565b9190601f81116116ca57505050565b6102da925f5260205f20906020601f840160051c830193106116b157601f0160051c0190611645565b919091825167ffffffffffffffff81116102215761171b8161171584546101b8565b846116bb565b602080601f831160011461175c5750819061174d9394955f92611751575b50508160011b915f199060031b1c19161790565b9055565b015190505f80611739565b90601f19831695611770855f5260205f2090565b925f905b8882106117ab57505083600195969710611793575b505050811b019055565b01515f1960f88460031b161c191690555f8080611789565b80600185968294968601518155019501930190611774565b906001600160a01b036117e3602092959495604085526040850190610420565b9416910152565b604051906117f782610226565b5f8252565b6040519061180982610242565b600f82527f2261747472696275746573223a205b00000000000000000000000000000000006020830152565b6040519061184282610242565b600e82527f226f7574666974496473223a205b0000000000000000000000000000000000006020830152565b9060405191826060515f5b8181106118ad57509060206102da936118a182948401918383015f81528151948592016103ff565b0103808552018361027a565b6020919250806080015182828801015201908491611879565b60206102da9193929360405194816118e787935180928680870191016103ff565b82016118a1825180938680850191016103ff565b5f198101919082116106ba57565b906102da6021604051846119278296518092602080860191016103ff565b8101600b60fa1b602082015203600181018552018361027a565b906102da60226040518461195f8296518092602080860191016103ff565b810161174b60f21b602082015203600281018552018361027a565b6040906102da92949394825195869160209361199e815180928780880191016103ff565b83017f7b2274726169745f74797065223a202200000000000000000000000000000000858201526119d882518093876030850191016103ff565b016c111610113b30b63ab2911d101160991b6030820152611a028251809386603d850191016103ff565b0162089f4b60ea1b603d820152039081018552018361027a565b906102da604a60405184611a3a8296518092602080860191016103ff565b81017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022227d2c00000000000000000000000000000000000000000000604082015203602a81018552018361027a565b60316102da919392936040519481611ab88793518092602080870191016103ff565b82017f226261636b67726f756e644964223a20000000000000000000000000000000006020820152611af48251809360206030850191016103ff565b01600b60fa1b603082015203601181018552018361027a565b604a6102da919392936040519481611b2f8793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022000000000000000000000000000000000000000000000000006040820152611b918251809360206047850191016103ff565b0162089f4b60ea1b604782015203602a81018552018361027a565b60376102da919392936040519481611bce8793518092602080870191016103ff565b82017f226368616e6765734c6f636b6564556e74696c223a20000000000000000000006020820152611c0a8251809360206036850191016103ff565b01600b60fa1b603682015203601781018552018361027a565b60526102da919392936040519481611c458793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224368616e676573206c6f636b6564207560208201527f6e74696c222c202276616c7565223a20000000000000000000000000000000006040820152611ca78251809360206050850191016103ff565b01611f4b60f21b605082015203603281018552018361027a565b906102da603660405180947f22776f726e427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b8101600b60fa1b603582015203601681018552018361027a565b604b6102da919392936040519481611d428793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022576f726e2062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b01611f4b60f21b604982015203602b81018552018361027a565b906102da603660405180947f2275736564427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b604b6102da919392936040519481611e118793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022557365642062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b81601f8201121561048c578051611e758161124f565b92611e83604051948561027a565b8184526020828401011161048c5761045691602080850191016103ff565b9060208282031261048c57815167ffffffffffffffff811161048c576104569201611e5f565b6040513d5f823e3d90fd5b9081602091031261048c575190565b9081606091031261048c57805191604060208301519201516104568161056c565b612030600392959460a46102da956040519885611f298b975180926020808b0191016103ff565b86017f7b2274726169745f74797065223a202250726f64756374206e616d65222c202260208201527f76616c7565223a202200000000000000000000000000000000000000000000006040820152611f8b8251809360206049850191016103ff565b017f227d2c207b2274726169745f74797065223a202243617465676f7279206e616d60498201527f65222c202276616c7565223a20220000000000000000000000000000000000006069820152611fec8251809360206077850191016103ff565b017f227d2c207b2274726169745f74797065223a2022546f74616c20737570706c7960778201526c111610113b30b63ab2911d101160991b6097820152019061162e565b62227d5d60e81b815203601c1981018552018361027a565b906102da603d60405180947f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000602083015261208c81518092602086860191016103ff565b810103601d81018552018361027a565b6120a6828261319a565b9163ffffffff6120ba845163ffffffff1690565b1615612a03576120c86117ea565b506120d16117fc565b610100928385019462ffffff94856120ec885162ffffff1690565b16156128345750612116612110612107835163ffffffff1690565b63ffffffff1690565b836139b6565b9182516127f8575b60018661212e895162ffffff1690565b16036127ca576121626121418683612a0e565b9461215c612156612151886132bc565b611daa565b966132bc565b90611def565b955b8351156126a857509060606001600160a01b0394939260046040518097819363043c358d60e11b8352165afa9384156126a3575f905f9561266e575b5081516121b29063ffffffff1661395f565b9688516121c19062ffffff1690565b62ffffff166121cf90613770565b97606084019889516121e49063ffffffff1690565b63ffffffff166121f3906132bc565b916121fd93611f02565b94612208838861414e565b9783516122189063ffffffff1690565b63ffffffff166122279061395f565b9980516122369062ffffff1690565b62ffffff1661224490613770565b9861224e906132bc565b91855161225e9063ffffffff1690565b63ffffffff1661226d906132bc565b915161227d9062ffffff166132bc565b905161228e9063ffffffff166132bc565b9160408701516122a19063ffffffff1690565b63ffffffff166122b0906132bc565b9360208801516122cc906cffffffffffffffffffffffffff1690565b6cffffffffffffffffffffffffff166122e4906132bc565b956122ee906132bc565b966122f8906132bc565b610120989098015161230c9060ff166132bc565b9860405180916020820161231f9161162e565b03601f1981018252612331908261027a565b61233a90614322565b9b6040519e8f9e8f602001612373906009907f7b226e616d65223a22000000000000000000000000000000000000000000000081520190565b61237c9161162e565b7f222c202270726f647563744e616d65223a20220000000000000000000000000081526013016123ab9161162e565b7f222c202263617465676f72794e616d65223a202200000000000000000000000081526014016123da9161162e565b7f222c2022746f6b656e4964223a200000000000000000000000000000000000008152600e016124099161162e565b7f2c2022757063223a20000000000000000000000000000000000000000000000081526009016124389161162e565b7f2c202263617465676f7279223a200000000000000000000000000000000000008152600e016124679161162e565b7f2c2022737570706c79223a2000000000000000000000000000000000000000008152600c016124969161162e565b7f2c202272656d61696e696e67223a2000000000000000000000000000000000008152600f016124c59161162e565b7f2c20227072696365223a200000000000000000000000000000000000000000008152600b016124f49161162e565b7f2c2022646563696d616c73223a200000000000000000000000000000000000008152600e016125239161162e565b7f2c202263757272656e6379223a200000000000000000000000000000000000008152600e016125529161162e565b7f2c2022646973636f756e74223a200000000000000000000000000000000000008152600e016125819161162e565b61016160f51b81526002016125959161162e565b61259e9161162e565b7f2c20226465736372697074696f6e223a2241207069656365206f662042616e6e81527f792052657461696c2e222c2265787465726e616c5f75726c223a22687474707360208201527f3a2f2f72657461696c2e62616e6e792e6574682e7375636b73222c22696d616760408201527f65223a22646174613a696d6167652f7376672b786d6c3b6261736536342c00006060820152607e0161263f9161162e565b61227d60f01b815260020103601f198101825261265c908261027a565b61266590614322565b61045690612048565b905061269391945060603d60601161269c575b61268b818361027a565b810190611ee1565b5093905f6121a0565b503d612681565b611ec7565b9350945050506126be601192945162ffffff1690565b1611156127b657604051636c0360eb60e01b81525f816004816001600160a01b0386165afa9283156126a357612747936020925f91612794575b50925b61271361270782613dbf565b6001600160a01b031690565b604051630c8df17160e41b81526001600160a01b039092166004830152602482019290925293849190829081906044820190565b03915afa9081156126a357610456925f92612763575b50613e26565b61278691925060203d60201161278d575b61277e818361027a565b810190611ed2565b905f61275d565b503d612774565b6127b091503d805f833e6127a8818361027a565b810190611ea1565b5f6126f8565b6020612747926127c461029c565b926126fb565b6127f26127d78683612d4f565b946127ec6121566127e7886132bc565b611cc1565b90611d20565b95612164565b916128189060018761280d8a5162ffffff1690565b160361281e57613cac565b9161211e565b61282f9061282a613b6d565b6118c6565b613cac565b91909293966128438883612aa2565b9661284e8984611518565b979099612859611835565b9a5f9b5b8a518d10156128b2576128839061287d6128778f8e6114f6565b516132bc565b906118c6565b9b61288e8b516118fb565b811061289e575b6001019b61285d565b9b6128aa600191611909565b9c9050612895565b6128c7919395979a989b929496999c50611941565b995f9b5b88518d101561293c576129346001918c8f6129296121078f8f61291161290561291e936128fe61292e98612919956114f6565b519061319a565b9687015162ffffff1690565b62ffffff1690565b613770565b935163ffffffff1690565b61395f565b9161197a565b9c019b6128cb565b939894995094999196509499508515155f146129f2579061298661292961210761297c61297561298c9661296f8c6132bc565b90611a96565b998761319a565b5163ffffffff1690565b90611b0d565b955b6129ba866129ad846001600160a01b03165f52600260205260405f2090565b905f5260205260405f2090565b544281116129c9575b50612164565b94966129e56121566129eb93996129df896132bc565b90611bac565b90611c23565b955f6129c3565b94506129fd90611a1c565b9561298e565b5050506104566117ea565b6001600160a01b0316805f52600e60205260405f20825f5260205260405f2054918215918215612a47575b5050612a425790565b505f90565b9091505f52600b60205260405f20825f5260205260405f205414155f80612a39565b916060816001600160a01b039260209497969760408752816040880152838701375f828287010152601f80199101168401019416910152565b612aac828261319a565b9163ffffffff612ac0845163ffffffff1690565b1615612a035760609062ffffff612ade61010086015162ffffff1690565b16612b825792612b22612b2892612af86104569686611518565b939080151580612b7a575b612b44575b50612b1d61210761287d925163ffffffff1690565b614449565b92614910565b8051612b35575b50613cac565b612b3e916118c6565b5f612b2f565b61287d919250612107612b71612b6c612b6661210761297c612b1d968d61319a565b8a6139b6565b61186e565b93925050612b08565b506001612b03565b5050612b98612107612b9e935163ffffffff1690565b906139b6565b8051612bad57506104566117ea565b61045690613cac565b9092612bc2848361319a565b9363ffffffff612bd6865163ffffffff1690565b1615612cab5760609062ffffff612bf461010088015162ffffff1690565b16612c92579061045695612c0b612c309386611518565b948115159081612c8a575b50612c625750612b1d61210761287d925163ffffffff1690565b92612c3d575b5050613cac565b612c4691614910565b8051612c53575b80612c36565b612c5c916118c6565b5f612c4d565b61287d919250612107612b71612b6c612c8461210761297c612b1d968c61319a565b896139b6565b90505f612c16565b5050509050612b98612107612b9e935163ffffffff1690565b50505050506104566117ea565b91612cc161440a565b5f925b8051841015612d4957612cd784826114f6565b5193612ce381856114f6565b51855f5260049560208781526040805f2054612d3a57907fb10eb6fc7557a7109693cb8f3fac48d44328de56c0368ee4cac539b424d2cad991600196979899845f52825284815f205551338152a301929190612cc4565b51632165e0ab60e01b81528890fd5b50915050565b6001600160a01b0381165f52600f60205260405f20825f5260205260405f2054908115612dd757612d91906001600160a01b03165f52600a60205260405f2090565b815f52602052612da360405f20611450565b915f5b8351811015612dcf5781612dba82866114f6565b5114612dc857600101612da6565b5050905090565b505050505f90565b5050505f90565b91612de761440a565b5f925b8051841015612d4957612dfd84826114f6565b5193612e0981856114f6565b5194805f52602095600c87526040805f20825167ffffffffffffffff811161022157612e398161171584546101b8565b89601f8211600114612eb75750917f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e969391612e9184612ea09560019a9b9c9d5f91612eac57508160011b915f199060031b1c19161790565b90555b519182913390836117c3565b0390a201929190612dea565b90508501515f610d65565b99601f198216612eca845f5260205f2090565b9b5f905b828210612f3357505091600198999a9b7f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e9696949282612ea0979510612f1b575b5050881b88019055612e94565b8501515f1960f88460031b161c191690555f80612f0e565b80600181939f868b015181550194019d01909c929c612ece565b51906102da8261056c565b9081602091031261048c57516104568161056c565b6040516331a9108f60e11b815260048101929092526001600160a01b03906020908390602490829085165afa9182156126a3575f92612fcd575b5080612fb16158be565b16911603612fbb57565b6040516341eb334360e11b8152600490fd5b612ff091925060203d602011612ff7575b612fe8818361027a565b810190612f58565b905f612fa7565b503d612fde565b519063ffffffff8216820361048c57565b51906cffffffffffffffffffffffffff8216820361048c57565b519061ffff8216820361048c57565b519062ffffff8216820361048c57565b519060ff8216820361048c57565b51906102da82610ef6565b60208183031261048c57805167ffffffffffffffff9182821161048c57016101e08184031261048c57613092610880565b9261309c82612ffe565b84526130aa6020830161300f565b60208501526130bb60408301612ffe565b60408501526130cc60608301612ffe565b60608501526130dd6080830161300f565b60808501526130ee60a08301613029565b60a08501526130ff60c08301612f4d565b60c085015260e082015160e085015261010061311c818401613038565b9085015261012061312e818401613048565b90850152610140613140818401613056565b90850152610160613152818401613056565b90850152610180613164818401613056565b908501526101a0613176818401613056565b908501526101c0928383015190811161048c576131939201611e5f565b9082015290565b61324d915f9160606101c06040516131b181610204565b85815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201528561010082015285610120820152856101408201528561016082015285610180820152856101a0820152015261321561270782613dbf565b9060405180958194829363c44a8e6d60e01b8452600484016040905f9294936001600160a01b03606083019616825260208201520152565b03915afa9081156126a3575f91613262575090565b61045691503d805f833e613276818361027a565b810190613061565b60405161328a81610226565b5f8152905f368137565b9061329e8261124f565b6132ab604051918261027a565b82815280926114c6601f199161124f565b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808210156133fd575b506d04ee2d6d415b85acef8100000000808310156133ee575b50662386f26fc10000808310156133df575b506305f5e100808310156133d0575b50612710808310156133c1575b5060648210156133b1575b600a809210156133a7575b60019081602161335360018701613294565b95860101905b613365575b5050505090565b5f19019083907f30313233343536373839616263646566000000000000000000000000000000008282061a8353049182156133a257919082613359565b61335e565b9160010191613341565b9190606460029104910191613336565b6004919392049101915f61332b565b6008919392049101915f61331e565b6010919392049101915f61330f565b6020919392049101915f6132fd565b60409350810491505f6132e4565b6040519061341882610242565b600c82527f5370656369616c20426f647900000000000000000000000000000000000000006020830152565b6040519061345182610242565b600c82527f5370656369616c204865616400000000000000000000000000000000000000006020830152565b6040519061348a82610242565b600c82527f5370656369616c204c65677300000000000000000000000000000000000000006020830152565b604051906134c382610242565b600c82527f5370656369616c205375697400000000000000000000000000000000000000006020830152565b604051906134fc82610242565b6004825263119a5cdd60e21b6020830152565b6040519061351c82610242565b600b82527f5375697420626f74746f6d0000000000000000000000000000000000000000006020830152565b6040519061355582610242565b600882527f5375697420746f700000000000000000000000000000000000000000000000006020830152565b6040519061358e82610242565b600482526314dd5a5d60e21b6020830152565b604051906135ae82610242565b60048252631219585960e21b6020830152565b604051906135ce82610242565b600882527f4865616420746f700000000000000000000000000000000000000000000000006020830152565b6040519061360782610242565b600582527f4d6f7574680000000000000000000000000000000000000000000000000000006020830152565b6040519061364082610242565b600782527f476c6173736573000000000000000000000000000000000000000000000000006020830152565b6040519061367982610242565b600882527f4e65636b6c6163650000000000000000000000000000000000000000000000006020830152565b604051906136b282610242565b60048252634c65677360e01b6020830152565b604051906136d282610242565b600882527f4261636b736964650000000000000000000000000000000000000000000000006020830152565b6040519061370b82610242565b600a82527f4261636b67726f756e64000000000000000000000000000000000000000000006020830152565b6040519061374482610242565b600a82527f42616e6e7920626f6479000000000000000000000000000000000000000000006020830152565b8061377e5750610456613737565b6001810361378f57506104566136fe565b600281036137a057506104566136c5565b600881036137b157506104566136a5565b600381036137c2575061045661366c565b600681036137d35750610456613633565b600781036137e457506104566135fa565b600c81036137f557506104566135c1565b6004810361380657506104566135a1565b600981036138175750610456613581565b600b81036138285750610456613548565b600a8103613839575061045661350f565b600d810361384a57506104566134ef565b600e810361385b57506104566134b6565b600f810361386c575061045661347d565b6010810361387d5750610456613444565b60111461388c576104566117ea565b61045661340b565b604051906138a182610242565b600882527f4f726967696e616c0000000000000000000000000000000000000000000000006020830152565b604051906138da82610242565b600682527f4f72616e676500000000000000000000000000000000000000000000000000006020830152565b6040519061391382610242565b600482526350696e6b60e01b6020830152565b6040519061393382610242565b600582527f416c69656e0000000000000000000000000000000000000000000000000000006020830152565b600181036139705750610456613926565b600281036139815750610456613906565b6003810361399257506104566138cd565b600481036139a35750610456613894565b5f52600c60205261045660405f2061035f565b90805f52602091600d83526139cd60405f2061035f565b8051613ada5750613a1f91816001600160a01b036139eb8694613dbf565b1690604051809581948293632f54648f60e21b845260048401602090939291936001600160a01b0360408201951681520152565b03915afa80156126a357613a8792613a4c604992610456945f91613abd575b50613a4761029c565b613e26565b60405194827f3c696d61676520687265663d220000000000000000000000000000000000000087948501528251928391602d860191016103ff565b81017f222077696474683d2234303022206865696768743d22343030222f3e00000000602d82015203602981018452018261027a565b613ad49150833d851161278d5761277e818361027a565b5f613a3e565b9250505090565b6009545f9291613af0826101b8565b91600190818116908115613b5a5750600114613b0b57505050565b909192935060095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af905f915b848310613b47575050500190565b8181602092548587015201920191613b39565b60ff191683525050811515909102019150565b603b610456613bfc610a056008613c836040516003613c7381613c6381613c536044602088017f7b66696c6c3a6e6f6e653b7d00000000000000000000000000000000000000008152600c8952613bc389610242565b6040519e8f9d8e7f3c7374796c653e2e6f7b66696c6c3a233830383038303b7d2e6231000000000060208201528b5192839101846103ff565b8d016217311960e91b603b820152895190613c1b82603e8301856103ff565b01622e623360e81b603e820152613c398a51809360418401906103ff565b01613c4c60418201620b988d60ea1b9052565b018761162e565b622e613160e81b8152018561162e565b6217309960e91b8152018361162e565b622e613360e81b8152019061162e565b7f3c2f7374796c653e000000000000000000000000000000000000000000000000815201613ae1565b906102da60bb60405180947f3c7376672077696474683d2234303022206865696768743d223430302220766960208301527f6577426f783d223020302034303020343030222066696c6c3d2277686974652260408301527f20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7360608301527f7667223e3c7374796c653e2e6f7b66696c6c3a233035303530353b7d2e777b6660808301527f696c6c3a236639663966393b7d3c2f7374796c653e000000000000000000000060a0830152613d8981518092602060b5860191016103ff565b81017f3c2f7376673e000000000000000000000000000000000000000000000000000060b582015203609b81018552018361027a565b60206001600160a01b039160046040518094819363507f146560e01b8352165afa9081156126a3575f91613df1575090565b90506020813d602011613e1e575b81613e0c6020938361027a565b8101031261048c57516104568161056c565b3d9150613dff565b9061045690613e54604051602092609160f51b84830152602282015260228152613e4f8161025e565b61528d565b926040519381613e6d86935180928680870191016103ff565b8201613e81825180938680850191016103ff565b0103808452018261027a565b906102da602160405184613eab8296518092602080860191016103ff565b8101600160fd1b602082015203600181018552018361027a565b60405190613ed282610242565b600a82527f2072656d61696e696e67000000000000000000000000000000000000000000006020830152565b906102da929493602192613f67604051978894602093613f268151809287808b0191016103ff565b8601613f3a825180938780850191016103ff565b01602f60f81b84820152613f5682518093868a850191016103ff565b0191835193849187850191016103ff565b0103600181018552018361027a565b906102da929493602d92613ff5604051978894602093613f9e8151809287808b0191016103ff565b86017f2028534f4c44204f55542920000000000000000000000000000000000000000085820152613fd88251809387602c850191016103ff565b01602f60f81b602c820152613f5682518093868a850191016103ff565b0103600d81018552018361027a565b6102da91613f67949360219260405196879360209261402b8151809286808a0191016103ff565b850161403f825180938680850191016103ff565b0191602f60f81b81840152835193849187850191016103ff565b906102da6022604051846140778296518092602080860191016103ff565b81016101d160f51b602082015203600281018552018361027a565b60216102da9193929360405194816140b48793518092602080870191016103ff565b82016140c982518093602080850191016103ff565b01600160fd1b602082015203600181018552018361027a565b60256102da9193929360405194816141048793518092602080870191016103ff565b82017f5550432023000000000000000000000000000000000000000000000000000000602082015261413f82518093602087850191016103ff565b0103600581018552018361027a565b906141bc61045692633b9aca00614177614172612929612107875163ffffffff1690565b613e8d565b9106614181613ec5565b81156142135750906141956141b7926132bc565b6141b16141ac612107606088015163ffffffff1690565b6132bc565b91614004565b614059565b906141d461291961291161010084015162ffffff1690565b80516141f6575b506141ac6121076141f0925163ffffffff1690565b906140e2565b61210761420a6141ac926141f09495614092565b939250506141db565b9050604084019163ffffffff61422d845163ffffffff1690565b1680614268575061424b6141ac6121076141b7955163ffffffff1690565b6142626141ac612107606089015163ffffffff1690565b91613f76565b6141b79350614276906132bc565b61428d6141ac612107606089015163ffffffff1690565b91613efe565b604051906142a08261025e565b604082527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f6040837f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201520152565b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116036106ba57565b80511561440157614331614293565b61434d6143486143418451611419565b6003900490565b6142f2565b9161435f61435a84611427565b613294565b92835280815182019060208501935b8282106143af5750505060039051068060011461439e57600214614390575090565b603d60f81b5f199091015290565b50613d3d60f01b6001199091015290565b9091936004906003809401938451600190603f9082828260121c16880101518553828282600c1c16880101518386015382828260061c168801015160028601531685010151908201530193919061436e565b506104566117ea565b6001600160a01b03805f54168161441f6158be565b16036144285750565b6024906144336158be565b60405163118cdaa760e01b815291166004820152fd5b61445290615792565b93604096959693919351968796602088017f3c7374796c653e2e62317b66696c6c3a2300000000000000000000000000000090528051908160318a01916020019161449c926103ff565b8701603181017f3b7d2e62327b66696c6c3a230000000000000000000000000000000000000000905281519182603d830191602001916144db926103ff565b01603d81017f3b7d2e62337b66696c6c3a230000000000000000000000000000000000000000905281519182604983019160200191614519926103ff565b0160498101614547907f3b7d2e62347b66696c6c3a2300000000000000000000000000000000000000009052565b6055016145539161162e565b7f3b7d2e61317b66696c6c3a2300000000000000000000000000000000000000008152600c016145829161162e565b7f3b7d2e61327b66696c6c3a2300000000000000000000000000000000000000008152600c016145b19161162e565b7f3b7d2e61337b66696c6c3a2300000000000000000000000000000000000000008152600c016145e09161162e565b7f3b7d3c2f7374796c653e000000000000000000000000000000000000000000008152600a0161460f90613ae1565b03601f1981018252610456908261027a565b90604051918260209161463c815180928580860191016103ff565b6007545f91830161464c826101b8565b916001908181169081156146d55750600114614679575b5050506102da925003601f19810184528361027a565b94925060075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688945f905b8382106146bd5750506102da945001015f8080614663565b865482840186015295860195889550908401906146a5565b9150506102da95935060ff9291921916838301528015150201015f8080614663565b906040519182602091614712815180928580860191016103ff565b6008545f918301614722826101b8565b916001908181169081156146d5575060011461474e575050506102da925003601f19810184528361027a565b94925060085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3945f905b8382106147925750506102da945001015f8080614663565b8654828401860152958601958895509084019061477a565b9060405191826020916147c5815180928580860191016103ff565b6005545f9183016147d5826101b8565b916001908181169081156146d55750600114614801575050506102da925003601f19810184528361027a565b94925060055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0945f905b8382106148455750506102da945001015f8080614663565b8654828401860152958601958895509084019061482d565b906040519182602091614878815180928580860191016103ff565b6006545f918301614888826101b8565b916001908181169081156146d557506001146148b4575050506102da925003601f19810184528361027a565b94925060065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f945f905b8382106148f85750506102da945001015f8080614663565b865482840186015295860195889550908401906148e0565b91909160608351915f925f935f945f9085935f5b61492d82611435565b811015614b0a5781811015614afe57614946818c6114f6565b5195614952878961319a565b9561497861210761496d6129116101008b015162ffffff1690565b985163ffffffff1690565b915b600388811492908315614acf57505050600197614997838b6139b6565b9b5b60048914614ac6575b6005898103614a725750506001965b6007898103614a30575050600b6001985b1180614a26575b614a0c575b15159081614a03575b506149eb575b506001019794939297614924565b6001919861287d6149fc928a6139b6565b97906149dd565b9050155f6149d7565b9a614a17919a6118c6565b98614a206117ea565b9a6149ce565b508b5115156149c9565b8991991180614a6a575b80614a62575b614a4d575b600b906149c2565b975099614a599061485d565b99600197614a45565b508615614a40565b508815614a3a565b899891981180614abe575b80614ab6575b156149b157965060019a8b84145f14614aa757614a9f906147aa565b9a5b966149b1565b614ab0906146f7565b9a614aa1565b508615614a83565b508715614a7d565b600196506149a2565b899d919a929d1180614af6575b1561499957985099614aed90614621565b99600198614999565b508915614adc565b5f95601295879161497a565b50505050505050925050565b9190614b37816129ad856001600160a01b03165f52600b60205260405f2090565b54614b428185612a0e565b818414801590614d44575b614b59575b5050505050565b8214614d2b575b508115614d04576040516331a9108f60e11b808252600482018490526001600160a01b0392918584169060208082602481865afa80156126a35786925f91614ce7575b5082614bad6158be565b911696168614159384614c6f575b50505050614c5d5763ffffffff614bd561297c858761319a565b1615614c4b5782614bfb826129ad876001600160a01b03165f52600b60205260405f2090565b55614c1b836129ad866001600160a01b03165f52600e60205260405f2090565b553003614c30575b50505b5f80808080614b52565b614c44913090614c3e6158be565b90615917565b5f80614c23565b60405163c3095f8760e01b8152600490fd5b60405163d03702f960e01b8152600490fd5b819293945090614ca691614c816158be565b95614c8c8a8c612a0e565b916040518095819482938352600483019190602083019252565b03915afa9081156126a35783925f92614cca575b505016911614155f808080614bbb565b614ce09250803d10612ff757612fe8818361027a565b5f80614cba565b614cfe9150823d8411612ff757612fe8818361027a565b5f614ba3565b614d2591506129ad5f936001600160a01b03165f52600b60205260405f2090565b55614c26565b614d3e90614d376158be565b3086615917565b5f614b60565b5082811415614b4d565b81519167ffffffffffffffff831161022157680100000000000000008311610221578154838355808410614dad575b506020809101915f5260205f20905f5b848110614d9b575050505050565b83518382015592810192600101614d8d565b614dc390835f528460205f209182019101611645565b5f614d7d565b909291925f935f915f92614dfa614df5836129ad886001600160a01b03165f52600a60205260405f2090565b611450565b955f945f945f908951615227575b90969299935f999899969296975b825189101561519c579a8a9b614e2f8a859d9c9d6114f6565b516040516331a9108f60e11b8152600481018290529d9097906001600160a01b03168e6024815a93602094fa9d8e156126a3575f9e61517b575b508d6001600160a01b0380614e7c6158be565b921691161415806150f0575b6150de57614eaa612911610100614ea08f8c9061319a565b015162ffffff1690565b9960028b1080156150d4575b6150c2578b151590816150b7575b506150a55760048a0361500857506001949095919293955b8981111580614fff575b15614f7a57508a949392918188614f0a93141580614f68575b614f4f575b5061150a565b94858c805182105f14614f4257610100614ea0614f2d614f3594612911946114f6565b51809961319a565b905b959192939490614edc565b505093505f935f90614f37565b614f6290614f5b6158be565b3089615917565b5f614f04565b5089614f748289612d4f565b14614eff565b93966001929a959d999199969396898d81614f958583612d4f565b03614fb2575b50505050930197939a949091999899969296614e16565b836129ad614fd1926001600160a01b03165f52600f60205260405f2090565b556001600160a01b0330911603614feb575b80898d614f9b565b614ff990308d614c3e6158be565b5f614fe3565b50801515614ee6565b939260098a036150215750600192959192939490614edc565b9260068a14801561509b575b8015615091575b8061508a575b1561505157604051639b8fdcd160e01b8152600490fd5b600b8a148015615080575b80615079575b15614f37576040516306f7588760e01b8152600490fd5b5083615062565b50600a8a1461505c565b508461503a565b50600c8a14615034565b5060078a1461502d565b604051633869abd960e21b8152600490fd5b90508a11155f614ec4565b60405163b0ee46ab60e01b8152600490fd5b5060118b11614eb6565b60405163032cac0360e01b8152600490fd5b508b6001600160a01b0360206151336151076158be565b936151128d82612d4f565b6040519485809481936331a9108f60e11b8352600483019190602083019252565b0392165afa9081156126a3576001600160a01b039182915f9161515c575b501691161415614e88565b615175915060203d602011612ff757612fe8818361027a565b5f615151565b615195919e5060203d602011612ff757612fe8818361027a565b9c5f614e69565b5050979550915091949250805b6151d8575050506102da92916129ad6151d3926001600160a01b03165f52600a60205260405f2090565b614d4e565b9081856151e86151f39487612d4f565b14615214575061150a565b815181101561520d5761520681836114f6565b51806151a9565b5f806151a9565b614f62906152206158be565b3087615917565b955050615233886114e4565b5194615248612911610100614ea0898c61319a565b90614e08565b604051906105e0820182811067ffffffffffffffff82111761022157604052602e82526105c0366020840137565b9081518110156114f1570160200190565b908151156153bf5761529d61524e565b915f6152a8846114e4565b5260019080515f915b8183106152d6575050506152cc6152d191610456939461597b565b6159bd565b615a02565b90919361531e6153186153126152ec888661527c565b517fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b60ff1690565b905f915b60ff9088828816851015615382576001929161535761535161531861534a8961535d966114f6565b5160ff1690565b60081b90565b90611443565b615379603a9283830616615371878d6114f6565b9060ff169052565b04920191615322565b509196925050805b615399575060010191906152b1565b9360ff6001603a926153b583858a06166153718584168d6114f6565b011694048061538a565b905061045661327e565b604051906153d682610242565b600682527f66666539303000000000000000000000000000000000000000000000000000006020830152565b6040519061540f82610242565b600682527f66666337303000000000000000000000000000000000000000000000000000006020830152565b6040519061544882610242565b600682527f66336136303300000000000000000000000000000000000000000000000000006020830152565b6040519061548182610242565b600682527f39363561316100000000000000000000000000000000000000000000000000006020830152565b604051906154ba82610242565b600682527f66663763303200000000000000000000000000000000000000000000000000006020830152565b604051906154f382610242565b600682527f66643336303000000000000000000000000000000000000000000000000000006020830152565b6040519061552c82610242565b600682527f63333265306400000000000000000000000000000000000000000000000000006020830152565b6040519061556582610242565b600682527f66666438633500000000000000000000000000000000000000000000000000006020830152565b6040519061559e82610242565b600682527f66663936613900000000000000000000000000000000000000000000000000006020830152565b604051906155d782610242565b600682527f66653538386200000000000000000000000000000000000000000000000000006020830152565b6040519061561082610242565b600682527f63393266343500000000000000000000000000000000000000000000000000006020830152565b6040519061564982610242565b600682527f36376437353700000000000000000000000000000000000000000000000000006020830152565b6040519061568282610242565b600682527f33306132323000000000000000000000000000000000000000000000000000006020830152565b604051906156bb82610242565b600682527f32313761313500000000000000000000000000000000000000000000000000006020830152565b604051906156f482610242565b600682527f30393439306600000000000000000000000000000000000000000000000000006020830152565b6040519061572d82610242565b600682527f65343833656600000000000000000000000000000000000000000000000000006020830152565b6040519061576682610242565b600682527f64633266656600000000000000000000000000000000000000000000000000006020830152565b600181036157d957506157a361563c565b906157ac615675565b906157b56156ae565b906157be6156e7565b906157c7615720565b906157d0615759565b90610456615759565b6002810361582057506157ea615558565b906157f3615591565b906157fc6155ca565b90615805615603565b9061580e615558565b90615817615591565b906104566155ca565b60038103615867575061583161543b565b9061583a6154ad565b906158436154e6565b9061584c61551f565b9061585561543b565b9061585e6154ad565b906104566154e6565b60041461588057604051639a7b332360e01b8152600490fd5b6158886153c9565b90615891615402565b9061589a61543b565b906158a3615474565b906158ac6153c9565b906158b5615402565b9061045661543b565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633148061590c575b156159085760131936013681116106ba573560601c90565b3390565b5060143610156158f0565b909291926001600160a01b0380921690813b1561048c575f6064928195856040519889978896632142170760e11b885216600487015216602485015260448401525af180156126a3576159675750565b67ffffffffffffffff811161022157604052565b9060ff8091169061598b8261149e565b925f5b83811061599c575050505090565b80836159aa600193856114f6565b51166159b682886114f6565b520161598e565b9081516159c98161149e565b905f5b8181106159da575090925050565b60019060ff6159ef5f198389510301886114f6565b51166159fb82866114f6565b52016159cc565b8051615a0d8161124f565b916040615a1d604051948561027a565b828452615a298361124f565b60209190601f190136868401375f5b848110615a4757505050505090565b6001908251615a558161025e565b603a81527f31323334353637383941424344454647484a4b4c4d4e50515253545556575859858201527f5a6162636465666768696a6b6d6e6f707172737475767778797a000000000000848201527fff0000000000000000000000000000000000000000000000000000000000000090615add9060ff615ad5858a6114f6565b51169061527c565b51165f1a615aeb828961527c565b5301615a3856fea2646970667358221220dbe973aea5d1f03deef7c0b303185740ea702d57d66279c38dd6598a01b9532864736f6c63430008170033",
|
|
1804
|
+
"deployedBytecode": "0x60806040526004361015610011575f80fd5b5f3560e01c806257bfdd146101b357806305b2ae1b146101ae578063150b7a02146101a9578063187be308146101a457806318ab522d1461019f5780632150a1381461019a5780632580833d1461019557806331a290ac14610190578063572b6c051461018b57806359a81d91146101865780635e703e71146101815780636aff31dd1461017c578063715018a61461017757806379a2696e146101725780637da0a8771461016d578063875e4bea146101685780638da5cb5b14610163578063a0122c091461015e578063a22d0dd514610159578063b03a3eab14610154578063b1fa9e7b1461014f578063b3fa27831461014a578063c06e7bc714610145578063c122804614610140578063d756227e1461013b5763f2fde38b14610136575f80fd5b611371565b6112a1565b611207565b6110b9565b611014565b610fe9565b610f45565b610f00565b610e64565b610e3f565b610cd2565b610c8f565b610c5c565b610bf8565b610bce565b610ba2565b610afd565b610aa7565b61093f565b6107db565b610736565b6106bf565b610629565b6105ab565b610490565b610459565b90600182811c921680156101e6575b60208310146101d257565b634e487b7160e01b5f52602260045260245ffd5b91607f16916101c7565b634e487b7160e01b5f52604160045260245ffd5b6101e0810190811067ffffffffffffffff82111761022157604052565b6101f0565b6020810190811067ffffffffffffffff82111761022157604052565b6040810190811067ffffffffffffffff82111761022157604052565b6060810190811067ffffffffffffffff82111761022157604052565b90601f8019910116810190811067ffffffffffffffff82111761022157604052565b604051905f82600354916102af836101b8565b8083529260209060019081811690811561033b57506001146102dc575b50506102da9250038361027a565b565b91509260035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b935f925b82841061032357506102da9450505081016020015f806102cc565b85548885018301529485019487945092810192610308565b915050602092506102da94915060ff191682840152151560051b8201015f806102cc565b9060405191825f8254610371816101b8565b908184526020946001916001811690815f146103dd575060011461039f575b5050506102da9250038361027a565b5f90815285812095935091905b8183106103c55750506102da93508201015f8080610390565b855488840185015294850194879450918301916103ac565b925050506102da94925060ff191682840152151560051b8201015f8080610390565b5f5b8381106104105750505f910152565b8181015183820152602001610401565b90602091610439815180928185528580860191016103ff565b601f01601f1916010190565b906020610456928181520190610420565b90565b3461048c575f36600319011261048c5761048861047461029c565b604051918291602083526020830190610420565b0390f35b5f80fd5b3461048c575f36600319011261048c576040515f6008546104b0816101b8565b8084529060209060019081811690811561054257506001146104e9575b610488856104dd8187038261027a565b60405191829182610445565b60085f90815293507ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee35b83851061052f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610513565b869550610488969350602092506104dd94915060ff191682840152151560051b82010192936104cd565b6001600160a01b0381160361048c57565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020838186019501011161048c57565b3461048c57608036600319011261048c576004356105c88161056c565b6105d360243561056c565b60643567ffffffffffffffff811161048c576105f390369060040161057d565b50506001600160a01b033091160361061757604051630a85bd0160e11b8152602090f35b604051633b2c6aa160e21b8152600490fd5b3461048c57604036600319011261048c576004356106468161056c565b6001600160a01b036024359161065c8382612f6d565b16805f52600260205260405f20825f5260205260405f20549162093a804201928342116106ba5783106106a8576106a5915f52600260205260405f20905f5260205260405f2090565b55005b604051631057c89560e21b8152600490fd5b611405565b3461048c57604036600319011261048c576106e86004356106df8161056c565b60243590611518565b90604051918291604083019083526020906040602085015282518091526020606085019301915f5b82811061071f57505050500390f35b835185528695509381019392810192600101610710565b3461048c575f36600319011261048c576040515f600554610756816101b8565b80845290602090600190818116908115610542575060011461078257610488856104dd8187038261027a565b60055f90815293507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b8385106107c8575050505081016020016104dd826104886104cd565b80548686018401529382019381016107ac565b3461048c575f36600319011261048c576040515f6006546107fb816101b8565b80845290602090600190818116908115610542575060011461082757610488856104dd8187038261027a565b60065f90815293507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b83851061086d575050505081016020016104dd826104886104cd565b8054868601840152938201938101610851565b604051906102da82610204565b67ffffffffffffffff81116102215760051b60200190565b92916108b08261088d565b916108be604051938461027a565b829481845260208094019160051b810192831161048c57905b8282106108e45750505050565b813581529083019083016108d7565b9080601f8301121561048c57816020610456933591016108a5565b9181601f8401121561048c5782359167ffffffffffffffff831161048c576020808501948460051b01011161048c57565b3461048c5760408060031936011261048c5760049067ffffffffffffffff823581811161048c5761097390369085016108f3565b9060243590811161048c5761098b903690850161090e565b9290915f5b8151811015610aa5576109a381836114f6565b516109b96109b28388886115e2565b369161126b565b6109d36109ce835f52600d60205260405f2090565b611624565b610a95576109e9825f52600460205260405f2090565b548015610a855785516020810190610a1381610a05848761162e565b03601f19810183528261027a565b51902003610a7557907faeb631726b45aa3f6b09da79f7af03a9784614901f61a967ed84d63c37b7edc7610a6c83610a5f60019695610a5a865f52600d60205260405f2090565b6116f3565b87519182913390836117c3565b0390a201610990565b845163d8e55daf60e01b81528890fd5b85516338d87d3960e01b81528990fd5b845163444244f560e01b81528890fd5b005b3461048c57602036600319011261048c576020600435610ac68161056c565b6001600160a01b039060405191807f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566169116148152f35b3461048c575f36600319011261048c576040515f600954610b1d816101b8565b808452906020906001908181169081156105425750600114610b4957610488856104dd8187038261027a565b60095f90815293507f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af5b838510610b8f575050505081016020016104dd826104886104cd565b8054868601840152938201938101610b73565b3461048c57604036600319011261048c57610488610474600435610bc58161056c565b6024359061209c565b3461048c57602036600319011261048c576004355f526004602052602060405f2054604051908152f35b3461048c575f36600319011261048c57610c1061440a565b5f6001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461048c57604036600319011261048c576020610c87600435610c7e8161056c565b60243590612a0e565b604051908152f35b3461048c575f36600319011261048c5760206040516001600160a01b037f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb566168152f35b3461048c5760208060031936011261048c5767ffffffffffffffff60043581811161048c57610d0590369060040161057d565b9091610d0f61440a565b811161022157610d2981610d246003546101b8565b61165b565b5f92601f8211600114610d9d5750610d7881807f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f955f91610d92575b508160011b915f199060031b1c19161790565b6003555b610d8d604051928392339184612a69565b0390a1005b90508401355f610d65565b60035f52601f198216937fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b915f905b868210610e27575050827f512c3c91736f50c57a0548c1d01ab02f24c420f002b8b20e2bfe63df9693cd3f9510610e0e575b5050600181811b01600355610d7c565b8301355f19600384901b60f8161c191690555f80610dfe565b80600184958294958901358155019401920190610dcc565b3461048c575f36600319011261048c5760206001600160a01b035f5416604051908152f35b3461048c57604036600319011261048c57610eda600435610e848161056c565b610488610e9e610e97602435809461319a565b809361414e565b91610ee8610ec563ffffffff610ebd62ffffff61010086015116613770565b93511661395f565b91604051958695606087526060870190610420565b908582036020870152610420565b908382036040850152610420565b8015150361048c57565b3461048c57608036600319011261048c57610488610474600435610f238161056c565b604435610f2f81610ef6565b60643591610f3c83610ef6565b60243590612bb6565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c57610f779036906004016108f3565b9060243590811161048c573660238201121561048c578060040135610f9b8161088d565b91610fa9604051938461027a565b8183526020916024602085019160051b8301019136831161048c57602401905b828210610fda57610aa58587612cb8565b81358152908301908301610fc9565b3461048c57604036600319011261048c576020610c8760043561100b8161056c565b60243590612d4f565b3461048c575f36600319011261048c576040515f600754611034816101b8565b80845290602090600190818116908115610542575060011461106057610488856104dd8187038261027a565b60075f90815293507fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b8385106110a6575050505081016020016104dd826104886104cd565b805486860184015293820193810161108a565b3461048c57608036600319011261048c576004356110d68161056c565b6044359060243560643567ffffffffffffffff811161048c576110fd90369060040161090e565b906002600154146111f55760026001556111178385612f6d565b6001600160a01b039182851692835f526002602052604096875f20865f52602052875f205442106111e45761114a6158be565b97838151918083528201527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff841161048c57866111d5967f6a68946ba06488db8585d7c7637fa954b574035fe15720ea760125ef8601725883606086958a6111db9f996111ce9a8c60051b8093868601371660208301528101030190a48587614b16565b36916108a5565b91614dc9565b610aa560018055565b8751632d2f65a360e11b8152600490fd5b604051633ee5aeb560e01b8152600490fd5b3461048c57604036600319011261048c576001600160a01b0360043561122c8161056c565b165f52600260205260405f206024355f52602052602060405f2054604051908152f35b67ffffffffffffffff811161022157601f01601f191660200190565b9291926112778261124f565b91611285604051938461027a565b82948184528183011161048c578281602093845f960137010152565b3461048c57604036600319011261048c5767ffffffffffffffff60043581811161048c576112d39036906004016108f3565b60249060243583811161048c573660238201121561048c578060040135926112fa8461088d565b93611308604051958661027a565b8085526020956024602087019260051b8501019336851161048c5760248101925b85841061133a57610aa58888612dde565b833583811161048c5782013660438201121561048c5789916113668392369060448a820135910161126b565b815201930192611329565b3461048c57602036600319011261048c5760043561138e8161056c565b61139661440a565b6001600160a01b038091169081156113ed575f548273ffffffffffffffffffffffffffffffffffffffff198216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b604051631e4fbdf760e01b81525f6004820152602490fd5b634e487b7160e01b5f52601160045260245ffd5b90600282018092116106ba57565b90602082018092116106ba57565b90600182018092116106ba57565b919082018092116106ba57565b90604051918281549182825260209260208301915f5260205f20935f905b828210611484575050506102da9250038361027a565b85548452600195860195889550938101939091019061146e565b906114a88261088d565b6114b5604051918261027a565b82815280926114c6601f199161088d565b0190602036910137565b634e487b7160e01b5f52603260045260245ffd5b8051156114f15760200190565b6114d0565b80518210156114f15760209160051b010190565b5f1981146106ba5760010190565b9190915f926001600160a01b0382165f52600a60205260405f20815f5260205261154460405f20611450565b9361154f855161149e565b915f915f5b875181101561159d578061156a6001928a6114f6565b5184611576828a612d4f565b14611583575b5001611554565b61159661158f8761150a565b96886114f6565b525f61157c565b5095509050929190926115c1826001600160a01b03165f52600b60205260405f2090565b815f526020526115d660405f20548093612a0e565b146115de5750565b9250565b91908110156114f15760051b81013590601e198136030182121561048c57019081359167ffffffffffffffff831161048c57602001823603811361048c579190565b61045690546101b8565b90611641602092828151948592016103ff565b0190565b818110611650575050565b5f8155600101611645565b90601f8211611668575050565b6102da9160035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b906020601f840160051c830193106116b1575b601f0160051c0190611645565b90915081906116a4565b9190601f81116116ca57505050565b6102da925f5260205f20906020601f840160051c830193106116b157601f0160051c0190611645565b919091825167ffffffffffffffff81116102215761171b8161171584546101b8565b846116bb565b602080601f831160011461175c5750819061174d9394955f92611751575b50508160011b915f199060031b1c19161790565b9055565b015190505f80611739565b90601f19831695611770855f5260205f2090565b925f905b8882106117ab57505083600195969710611793575b505050811b019055565b01515f1960f88460031b161c191690555f8080611789565b80600185968294968601518155019501930190611774565b906001600160a01b036117e3602092959495604085526040850190610420565b9416910152565b604051906117f782610226565b5f8252565b6040519061180982610242565b600f82527f2261747472696275746573223a205b00000000000000000000000000000000006020830152565b6040519061184282610242565b600e82527f226f7574666974496473223a205b0000000000000000000000000000000000006020830152565b9060405191826060515f5b8181106118ad57509060206102da936118a182948401918383015f81528151948592016103ff565b0103808552018361027a565b6020919250806080015182828801015201908491611879565b60206102da9193929360405194816118e787935180928680870191016103ff565b82016118a1825180938680850191016103ff565b5f198101919082116106ba57565b906102da6021604051846119278296518092602080860191016103ff565b8101600b60fa1b602082015203600181018552018361027a565b906102da60226040518461195f8296518092602080860191016103ff565b810161174b60f21b602082015203600281018552018361027a565b6040906102da92949394825195869160209361199e815180928780880191016103ff565b83017f7b2274726169745f74797065223a202200000000000000000000000000000000858201526119d882518093876030850191016103ff565b016c111610113b30b63ab2911d101160991b6030820152611a028251809386603d850191016103ff565b0162089f4b60ea1b603d820152039081018552018361027a565b906102da604a60405184611a3a8296518092602080860191016103ff565b81017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022227d2c00000000000000000000000000000000000000000000604082015203602a81018552018361027a565b60316102da919392936040519481611ab88793518092602080870191016103ff565b82017f226261636b67726f756e644964223a20000000000000000000000000000000006020820152611af48251809360206030850191016103ff565b01600b60fa1b603082015203601181018552018361027a565b604a6102da919392936040519481611b2f8793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224261636b67726f756e64222c2022766160208201527f6c7565223a2022000000000000000000000000000000000000000000000000006040820152611b918251809360206047850191016103ff565b0162089f4b60ea1b604782015203602a81018552018361027a565b60376102da919392936040519481611bce8793518092602080870191016103ff565b82017f226368616e6765734c6f636b6564556e74696c223a20000000000000000000006020820152611c0a8251809360206036850191016103ff565b01600b60fa1b603682015203601781018552018361027a565b60526102da919392936040519481611c458793518092602080870191016103ff565b82017f7b2274726169745f74797065223a20224368616e676573206c6f636b6564207560208201527f6e74696c222c202276616c7565223a20000000000000000000000000000000006040820152611ca78251809360206050850191016103ff565b01611f4b60f21b605082015203603281018552018361027a565b906102da603660405180947f22776f726e427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b8101600b60fa1b603582015203601681018552018361027a565b604b6102da919392936040519481611d428793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022576f726e2062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b01611f4b60f21b604982015203602b81018552018361027a565b906102da603660405180947f2275736564427942616e6e79426f64794964223a2000000000000000000000006020830152611d068151809260206035860191016103ff565b604b6102da919392936040519481611e118793518092602080870191016103ff565b82017f7b2274726169745f74797065223a2022557365642062792042616e6e79222c206020820152680113b30b63ab2911d160bd1b6040820152611d908251809360206049850191016103ff565b81601f8201121561048c578051611e758161124f565b92611e83604051948561027a565b8184526020828401011161048c5761045691602080850191016103ff565b9060208282031261048c57815167ffffffffffffffff811161048c576104569201611e5f565b6040513d5f823e3d90fd5b9081602091031261048c575190565b9081606091031261048c57805191604060208301519201516104568161056c565b612030600392959460a46102da956040519885611f298b975180926020808b0191016103ff565b86017f7b2274726169745f74797065223a202250726f64756374206e616d65222c202260208201527f76616c7565223a202200000000000000000000000000000000000000000000006040820152611f8b8251809360206049850191016103ff565b017f227d2c207b2274726169745f74797065223a202243617465676f7279206e616d60498201527f65222c202276616c7565223a20220000000000000000000000000000000000006069820152611fec8251809360206077850191016103ff565b017f227d2c207b2274726169745f74797065223a2022546f74616c20737570706c7960778201526c111610113b30b63ab2911d101160991b6097820152019061162e565b62227d5d60e81b815203601c1981018552018361027a565b906102da603d60405180947f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000602083015261208c81518092602086860191016103ff565b810103601d81018552018361027a565b6120a6828261319a565b9163ffffffff6120ba845163ffffffff1690565b1615612a03576120c86117ea565b506120d16117fc565b610100928385019462ffffff94856120ec885162ffffff1690565b16156128345750612116612110612107835163ffffffff1690565b63ffffffff1690565b836139b6565b9182516127f8575b60018661212e895162ffffff1690565b16036127ca576121626121418683612a0e565b9461215c612156612151886132bc565b611daa565b966132bc565b90611def565b955b8351156126a857509060606001600160a01b0394939260046040518097819363043c358d60e11b8352165afa9384156126a3575f905f9561266e575b5081516121b29063ffffffff1661395f565b9688516121c19062ffffff1690565b62ffffff166121cf90613770565b97606084019889516121e49063ffffffff1690565b63ffffffff166121f3906132bc565b916121fd93611f02565b94612208838861414e565b9783516122189063ffffffff1690565b63ffffffff166122279061395f565b9980516122369062ffffff1690565b62ffffff1661224490613770565b9861224e906132bc565b91855161225e9063ffffffff1690565b63ffffffff1661226d906132bc565b915161227d9062ffffff166132bc565b905161228e9063ffffffff166132bc565b9160408701516122a19063ffffffff1690565b63ffffffff166122b0906132bc565b9360208801516122cc906cffffffffffffffffffffffffff1690565b6cffffffffffffffffffffffffff166122e4906132bc565b956122ee906132bc565b966122f8906132bc565b610120989098015161230c9060ff166132bc565b9860405180916020820161231f9161162e565b03601f1981018252612331908261027a565b61233a90614322565b9b6040519e8f9e8f602001612373906009907f7b226e616d65223a22000000000000000000000000000000000000000000000081520190565b61237c9161162e565b7f222c202270726f647563744e616d65223a20220000000000000000000000000081526013016123ab9161162e565b7f222c202263617465676f72794e616d65223a202200000000000000000000000081526014016123da9161162e565b7f222c2022746f6b656e4964223a200000000000000000000000000000000000008152600e016124099161162e565b7f2c2022757063223a20000000000000000000000000000000000000000000000081526009016124389161162e565b7f2c202263617465676f7279223a200000000000000000000000000000000000008152600e016124679161162e565b7f2c2022737570706c79223a2000000000000000000000000000000000000000008152600c016124969161162e565b7f2c202272656d61696e696e67223a2000000000000000000000000000000000008152600f016124c59161162e565b7f2c20227072696365223a200000000000000000000000000000000000000000008152600b016124f49161162e565b7f2c2022646563696d616c73223a200000000000000000000000000000000000008152600e016125239161162e565b7f2c202263757272656e6379223a200000000000000000000000000000000000008152600e016125529161162e565b7f2c2022646973636f756e74223a200000000000000000000000000000000000008152600e016125819161162e565b61016160f51b81526002016125959161162e565b61259e9161162e565b7f2c20226465736372697074696f6e223a2241207069656365206f662042616e6e81527f792052657461696c2e222c2265787465726e616c5f75726c223a22687474707360208201527f3a2f2f72657461696c2e62616e6e792e6574682e7375636b73222c22696d616760408201527f65223a22646174613a696d6167652f7376672b786d6c3b6261736536342c00006060820152607e0161263f9161162e565b61227d60f01b815260020103601f198101825261265c908261027a565b61266590614322565b61045690612048565b905061269391945060603d60601161269c575b61268b818361027a565b810190611ee1565b5093905f6121a0565b503d612681565b611ec7565b9350945050506126be601192945162ffffff1690565b1611156127b657604051636c0360eb60e01b81525f816004816001600160a01b0386165afa9283156126a357612747936020925f91612794575b50925b61271361270782613dbf565b6001600160a01b031690565b604051630c8df17160e41b81526001600160a01b039092166004830152602482019290925293849190829081906044820190565b03915afa9081156126a357610456925f92612763575b50613e26565b61278691925060203d60201161278d575b61277e818361027a565b810190611ed2565b905f61275d565b503d612774565b6127b091503d805f833e6127a8818361027a565b810190611ea1565b5f6126f8565b6020612747926127c461029c565b926126fb565b6127f26127d78683612d4f565b946127ec6121566127e7886132bc565b611cc1565b90611d20565b95612164565b916128189060018761280d8a5162ffffff1690565b160361281e57613cac565b9161211e565b61282f9061282a613b6d565b6118c6565b613cac565b91909293966128438883612aa2565b9661284e8984611518565b979099612859611835565b9a5f9b5b8a518d10156128b2576128839061287d6128778f8e6114f6565b516132bc565b906118c6565b9b61288e8b516118fb565b811061289e575b6001019b61285d565b9b6128aa600191611909565b9c9050612895565b6128c7919395979a989b929496999c50611941565b995f9b5b88518d101561293c576129346001918c8f6129296121078f8f61291161290561291e936128fe61292e98612919956114f6565b519061319a565b9687015162ffffff1690565b62ffffff1690565b613770565b935163ffffffff1690565b61395f565b9161197a565b9c019b6128cb565b939894995094999196509499508515155f146129f2579061298661292961210761297c61297561298c9661296f8c6132bc565b90611a96565b998761319a565b5163ffffffff1690565b90611b0d565b955b6129ba866129ad846001600160a01b03165f52600260205260405f2090565b905f5260205260405f2090565b544281116129c9575b50612164565b94966129e56121566129eb93996129df896132bc565b90611bac565b90611c23565b955f6129c3565b94506129fd90611a1c565b9561298e565b5050506104566117ea565b6001600160a01b0316805f52600e60205260405f20825f5260205260405f2054918215918215612a47575b5050612a425790565b505f90565b9091505f52600b60205260405f20825f5260205260405f205414155f80612a39565b916060816001600160a01b039260209497969760408752816040880152838701375f828287010152601f80199101168401019416910152565b612aac828261319a565b9163ffffffff612ac0845163ffffffff1690565b1615612a035760609062ffffff612ade61010086015162ffffff1690565b16612b825792612b22612b2892612af86104569686611518565b939080151580612b7a575b612b44575b50612b1d61210761287d925163ffffffff1690565b614449565b92614910565b8051612b35575b50613cac565b612b3e916118c6565b5f612b2f565b61287d919250612107612b71612b6c612b6661210761297c612b1d968d61319a565b8a6139b6565b61186e565b93925050612b08565b506001612b03565b5050612b98612107612b9e935163ffffffff1690565b906139b6565b8051612bad57506104566117ea565b61045690613cac565b9092612bc2848361319a565b9363ffffffff612bd6865163ffffffff1690565b1615612cab5760609062ffffff612bf461010088015162ffffff1690565b16612c92579061045695612c0b612c309386611518565b948115159081612c8a575b50612c625750612b1d61210761287d925163ffffffff1690565b92612c3d575b5050613cac565b612c4691614910565b8051612c53575b80612c36565b612c5c916118c6565b5f612c4d565b61287d919250612107612b71612b6c612c8461210761297c612b1d968c61319a565b896139b6565b90505f612c16565b5050509050612b98612107612b9e935163ffffffff1690565b50505050506104566117ea565b91612cc161440a565b5f925b8051841015612d4957612cd784826114f6565b5193612ce381856114f6565b51855f5260049560208781526040805f2054612d3a57907fb10eb6fc7557a7109693cb8f3fac48d44328de56c0368ee4cac539b424d2cad991600196979899845f52825284815f205551338152a301929190612cc4565b51632165e0ab60e01b81528890fd5b50915050565b6001600160a01b0381165f52600f60205260405f20825f5260205260405f2054908115612dd757612d91906001600160a01b03165f52600a60205260405f2090565b815f52602052612da360405f20611450565b915f5b8351811015612dcf5781612dba82866114f6565b5114612dc857600101612da6565b5050905090565b505050505f90565b5050505f90565b91612de761440a565b5f925b8051841015612d4957612dfd84826114f6565b5193612e0981856114f6565b5194805f52602095600c87526040805f20825167ffffffffffffffff811161022157612e398161171584546101b8565b89601f8211600114612eb75750917f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e969391612e9184612ea09560019a9b9c9d5f91612eac57508160011b915f199060031b1c19161790565b90555b519182913390836117c3565b0390a201929190612dea565b90508501515f610d65565b99601f198216612eca845f5260205f2090565b9b5f905b828210612f3357505091600198999a9b7f9dedd219289ed514faff576c477c66bd097aef59a236e3b8ebcf0d0070cb4e9696949282612ea0979510612f1b575b5050881b88019055612e94565b8501515f1960f88460031b161c191690555f80612f0e565b80600181939f868b015181550194019d01909c929c612ece565b51906102da8261056c565b9081602091031261048c57516104568161056c565b6040516331a9108f60e11b815260048101929092526001600160a01b03906020908390602490829085165afa9182156126a3575f92612fcd575b5080612fb16158be565b16911603612fbb57565b6040516341eb334360e11b8152600490fd5b612ff091925060203d602011612ff7575b612fe8818361027a565b810190612f58565b905f612fa7565b503d612fde565b519063ffffffff8216820361048c57565b51906cffffffffffffffffffffffffff8216820361048c57565b519061ffff8216820361048c57565b519062ffffff8216820361048c57565b519060ff8216820361048c57565b51906102da82610ef6565b60208183031261048c57805167ffffffffffffffff9182821161048c57016101e08184031261048c57613092610880565b9261309c82612ffe565b84526130aa6020830161300f565b60208501526130bb60408301612ffe565b60408501526130cc60608301612ffe565b60608501526130dd6080830161300f565b60808501526130ee60a08301613029565b60a08501526130ff60c08301612f4d565b60c085015260e082015160e085015261010061311c818401613038565b9085015261012061312e818401613048565b90850152610140613140818401613056565b90850152610160613152818401613056565b90850152610180613164818401613056565b908501526101a0613176818401613056565b908501526101c0928383015190811161048c576131939201611e5f565b9082015290565b61324d915f9160606101c06040516131b181610204565b85815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201528561010082015285610120820152856101408201528561016082015285610180820152856101a0820152015261321561270782613dbf565b9060405180958194829363c44a8e6d60e01b8452600484016040905f9294936001600160a01b03606083019616825260208201520152565b03915afa9081156126a3575f91613262575090565b61045691503d805f833e613276818361027a565b810190613061565b60405161328a81610226565b5f8152905f368137565b9061329e8261124f565b6132ab604051918261027a565b82815280926114c6601f199161124f565b805f917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808210156133fd575b506d04ee2d6d415b85acef8100000000808310156133ee575b50662386f26fc10000808310156133df575b506305f5e100808310156133d0575b50612710808310156133c1575b5060648210156133b1575b600a809210156133a7575b60019081602161335360018701613294565b95860101905b613365575b5050505090565b5f19019083907f30313233343536373839616263646566000000000000000000000000000000008282061a8353049182156133a257919082613359565b61335e565b9160010191613341565b9190606460029104910191613336565b6004919392049101915f61332b565b6008919392049101915f61331e565b6010919392049101915f61330f565b6020919392049101915f6132fd565b60409350810491505f6132e4565b6040519061341882610242565b600c82527f5370656369616c20426f647900000000000000000000000000000000000000006020830152565b6040519061345182610242565b600c82527f5370656369616c204865616400000000000000000000000000000000000000006020830152565b6040519061348a82610242565b600c82527f5370656369616c204c65677300000000000000000000000000000000000000006020830152565b604051906134c382610242565b600c82527f5370656369616c205375697400000000000000000000000000000000000000006020830152565b604051906134fc82610242565b6004825263119a5cdd60e21b6020830152565b6040519061351c82610242565b600b82527f5375697420626f74746f6d0000000000000000000000000000000000000000006020830152565b6040519061355582610242565b600882527f5375697420746f700000000000000000000000000000000000000000000000006020830152565b6040519061358e82610242565b600482526314dd5a5d60e21b6020830152565b604051906135ae82610242565b60048252631219585960e21b6020830152565b604051906135ce82610242565b600882527f4865616420746f700000000000000000000000000000000000000000000000006020830152565b6040519061360782610242565b600582527f4d6f7574680000000000000000000000000000000000000000000000000000006020830152565b6040519061364082610242565b600782527f476c6173736573000000000000000000000000000000000000000000000000006020830152565b6040519061367982610242565b600882527f4e65636b6c6163650000000000000000000000000000000000000000000000006020830152565b604051906136b282610242565b60048252634c65677360e01b6020830152565b604051906136d282610242565b600882527f4261636b736964650000000000000000000000000000000000000000000000006020830152565b6040519061370b82610242565b600a82527f4261636b67726f756e64000000000000000000000000000000000000000000006020830152565b6040519061374482610242565b600a82527f42616e6e7920626f6479000000000000000000000000000000000000000000006020830152565b8061377e5750610456613737565b6001810361378f57506104566136fe565b600281036137a057506104566136c5565b600881036137b157506104566136a5565b600381036137c2575061045661366c565b600681036137d35750610456613633565b600781036137e457506104566135fa565b600c81036137f557506104566135c1565b6004810361380657506104566135a1565b600981036138175750610456613581565b600b81036138285750610456613548565b600a8103613839575061045661350f565b600d810361384a57506104566134ef565b600e810361385b57506104566134b6565b600f810361386c575061045661347d565b6010810361387d5750610456613444565b60111461388c576104566117ea565b61045661340b565b604051906138a182610242565b600882527f4f726967696e616c0000000000000000000000000000000000000000000000006020830152565b604051906138da82610242565b600682527f4f72616e676500000000000000000000000000000000000000000000000000006020830152565b6040519061391382610242565b600482526350696e6b60e01b6020830152565b6040519061393382610242565b600582527f416c69656e0000000000000000000000000000000000000000000000000000006020830152565b600181036139705750610456613926565b600281036139815750610456613906565b6003810361399257506104566138cd565b600481036139a35750610456613894565b5f52600c60205261045660405f2061035f565b90805f52602091600d83526139cd60405f2061035f565b8051613ada5750613a1f91816001600160a01b036139eb8694613dbf565b1690604051809581948293632f54648f60e21b845260048401602090939291936001600160a01b0360408201951681520152565b03915afa80156126a357613a8792613a4c604992610456945f91613abd575b50613a4761029c565b613e26565b60405194827f3c696d61676520687265663d220000000000000000000000000000000000000087948501528251928391602d860191016103ff565b81017f222077696474683d2234303022206865696768743d22343030222f3e00000000602d82015203602981018452018261027a565b613ad49150833d851161278d5761277e818361027a565b5f613a3e565b9250505090565b6009545f9291613af0826101b8565b91600190818116908115613b5a5750600114613b0b57505050565b909192935060095f527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af905f915b848310613b47575050500190565b8181602092548587015201920191613b39565b60ff191683525050811515909102019150565b603b610456613bfc610a056008613c836040516003613c7381613c6381613c536044602088017f7b66696c6c3a6e6f6e653b7d00000000000000000000000000000000000000008152600c8952613bc389610242565b6040519e8f9d8e7f3c7374796c653e2e6f7b66696c6c3a233830383038303b7d2e6231000000000060208201528b5192839101846103ff565b8d016217311960e91b603b820152895190613c1b82603e8301856103ff565b01622e623360e81b603e820152613c398a51809360418401906103ff565b01613c4c60418201620b988d60ea1b9052565b018761162e565b622e613160e81b8152018561162e565b6217309960e91b8152018361162e565b622e613360e81b8152019061162e565b7f3c2f7374796c653e000000000000000000000000000000000000000000000000815201613ae1565b906102da60bb60405180947f3c7376672077696474683d2234303022206865696768743d223430302220766960208301527f6577426f783d223020302034303020343030222066696c6c3d2277686974652260408301527f20786d6c6e733d22687474703a2f2f7777772e77332e6f72672f323030302f7360608301527f7667223e3c7374796c653e2e6f7b66696c6c3a233035303530353b7d2e777b6660808301527f696c6c3a236639663966393b7d3c2f7374796c653e000000000000000000000060a0830152613d8981518092602060b5860191016103ff565b81017f3c2f7376673e000000000000000000000000000000000000000000000000000060b582015203609b81018552018361027a565b60206001600160a01b039160046040518094819363507f146560e01b8352165afa9081156126a3575f91613df1575090565b90506020813d602011613e1e575b81613e0c6020938361027a565b8101031261048c57516104568161056c565b3d9150613dff565b9061045690613e54604051602092609160f51b84830152602282015260228152613e4f8161025e565b61528d565b926040519381613e6d86935180928680870191016103ff565b8201613e81825180938680850191016103ff565b0103808452018261027a565b906102da602160405184613eab8296518092602080860191016103ff565b8101600160fd1b602082015203600181018552018361027a565b60405190613ed282610242565b600a82527f2072656d61696e696e67000000000000000000000000000000000000000000006020830152565b906102da929493602192613f67604051978894602093613f268151809287808b0191016103ff565b8601613f3a825180938780850191016103ff565b01602f60f81b84820152613f5682518093868a850191016103ff565b0191835193849187850191016103ff565b0103600181018552018361027a565b906102da929493602d92613ff5604051978894602093613f9e8151809287808b0191016103ff565b86017f2028534f4c44204f55542920000000000000000000000000000000000000000085820152613fd88251809387602c850191016103ff565b01602f60f81b602c820152613f5682518093868a850191016103ff565b0103600d81018552018361027a565b6102da91613f67949360219260405196879360209261402b8151809286808a0191016103ff565b850161403f825180938680850191016103ff565b0191602f60f81b81840152835193849187850191016103ff565b906102da6022604051846140778296518092602080860191016103ff565b81016101d160f51b602082015203600281018552018361027a565b60216102da9193929360405194816140b48793518092602080870191016103ff565b82016140c982518093602080850191016103ff565b01600160fd1b602082015203600181018552018361027a565b60256102da9193929360405194816141048793518092602080870191016103ff565b82017f5550432023000000000000000000000000000000000000000000000000000000602082015261413f82518093602087850191016103ff565b0103600581018552018361027a565b906141bc61045692633b9aca00614177614172612929612107875163ffffffff1690565b613e8d565b9106614181613ec5565b81156142135750906141956141b7926132bc565b6141b16141ac612107606088015163ffffffff1690565b6132bc565b91614004565b614059565b906141d461291961291161010084015162ffffff1690565b80516141f6575b506141ac6121076141f0925163ffffffff1690565b906140e2565b61210761420a6141ac926141f09495614092565b939250506141db565b9050604084019163ffffffff61422d845163ffffffff1690565b1680614268575061424b6141ac6121076141b7955163ffffffff1690565b6142626141ac612107606089015163ffffffff1690565b91613f76565b6141b79350614276906132bc565b61428d6141ac612107606089015163ffffffff1690565b91613efe565b604051906142a08261025e565b604082527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f6040837f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201520152565b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116036106ba57565b80511561440157614331614293565b61434d6143486143418451611419565b6003900490565b6142f2565b9161435f61435a84611427565b613294565b92835280815182019060208501935b8282106143af5750505060039051068060011461439e57600214614390575090565b603d60f81b5f199091015290565b50613d3d60f01b6001199091015290565b9091936004906003809401938451600190603f9082828260121c16880101518553828282600c1c16880101518386015382828260061c168801015160028601531685010151908201530193919061436e565b506104566117ea565b6001600160a01b03805f54168161441f6158be565b16036144285750565b6024906144336158be565b60405163118cdaa760e01b815291166004820152fd5b61445290615792565b93604096959693919351968796602088017f3c7374796c653e2e62317b66696c6c3a2300000000000000000000000000000090528051908160318a01916020019161449c926103ff565b8701603181017f3b7d2e62327b66696c6c3a230000000000000000000000000000000000000000905281519182603d830191602001916144db926103ff565b01603d81017f3b7d2e62337b66696c6c3a230000000000000000000000000000000000000000905281519182604983019160200191614519926103ff565b0160498101614547907f3b7d2e62347b66696c6c3a2300000000000000000000000000000000000000009052565b6055016145539161162e565b7f3b7d2e61317b66696c6c3a2300000000000000000000000000000000000000008152600c016145829161162e565b7f3b7d2e61327b66696c6c3a2300000000000000000000000000000000000000008152600c016145b19161162e565b7f3b7d2e61337b66696c6c3a2300000000000000000000000000000000000000008152600c016145e09161162e565b7f3b7d3c2f7374796c653e000000000000000000000000000000000000000000008152600a0161460f90613ae1565b03601f1981018252610456908261027a565b90604051918260209161463c815180928580860191016103ff565b6007545f91830161464c826101b8565b916001908181169081156146d55750600114614679575b5050506102da925003601f19810184528361027a565b94925060075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688945f905b8382106146bd5750506102da945001015f8080614663565b865482840186015295860195889550908401906146a5565b9150506102da95935060ff9291921916838301528015150201015f8080614663565b906040519182602091614712815180928580860191016103ff565b6008545f918301614722826101b8565b916001908181169081156146d5575060011461474e575050506102da925003601f19810184528361027a565b94925060085f527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3945f905b8382106147925750506102da945001015f8080614663565b8654828401860152958601958895509084019061477a565b9060405191826020916147c5815180928580860191016103ff565b6005545f9183016147d5826101b8565b916001908181169081156146d55750600114614801575050506102da925003601f19810184528361027a565b94925060055f527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0945f905b8382106148455750506102da945001015f8080614663565b8654828401860152958601958895509084019061482d565b906040519182602091614878815180928580860191016103ff565b6006545f918301614888826101b8565b916001908181169081156146d557506001146148b4575050506102da925003601f19810184528361027a565b94925060065f527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f945f905b8382106148f85750506102da945001015f8080614663565b865482840186015295860195889550908401906148e0565b91909160608351915f925f935f945f9085935f5b61492d82611435565b811015614b0a5781811015614afe57614946818c6114f6565b5195614952878961319a565b9561497861210761496d6129116101008b015162ffffff1690565b985163ffffffff1690565b915b600388811492908315614acf57505050600197614997838b6139b6565b9b5b60048914614ac6575b6005898103614a725750506001965b6007898103614a30575050600b6001985b1180614a26575b614a0c575b15159081614a03575b506149eb575b506001019794939297614924565b6001919861287d6149fc928a6139b6565b97906149dd565b9050155f6149d7565b9a614a17919a6118c6565b98614a206117ea565b9a6149ce565b508b5115156149c9565b8991991180614a6a575b80614a62575b614a4d575b600b906149c2565b975099614a599061485d565b99600197614a45565b508615614a40565b508815614a3a565b899891981180614abe575b80614ab6575b156149b157965060019a8b84145f14614aa757614a9f906147aa565b9a5b966149b1565b614ab0906146f7565b9a614aa1565b508615614a83565b508715614a7d565b600196506149a2565b899d919a929d1180614af6575b1561499957985099614aed90614621565b99600198614999565b508915614adc565b5f95601295879161497a565b50505050505050925050565b9190614b37816129ad856001600160a01b03165f52600b60205260405f2090565b54614b428185612a0e565b818414801590614d44575b614b59575b5050505050565b8214614d2b575b508115614d04576040516331a9108f60e11b808252600482018490526001600160a01b0392918584169060208082602481865afa80156126a35786925f91614ce7575b5082614bad6158be565b911696168614159384614c6f575b50505050614c5d5763ffffffff614bd561297c858761319a565b1615614c4b5782614bfb826129ad876001600160a01b03165f52600b60205260405f2090565b55614c1b836129ad866001600160a01b03165f52600e60205260405f2090565b553003614c30575b50505b5f80808080614b52565b614c44913090614c3e6158be565b90615917565b5f80614c23565b60405163c3095f8760e01b8152600490fd5b60405163d03702f960e01b8152600490fd5b819293945090614ca691614c816158be565b95614c8c8a8c612a0e565b916040518095819482938352600483019190602083019252565b03915afa9081156126a35783925f92614cca575b505016911614155f808080614bbb565b614ce09250803d10612ff757612fe8818361027a565b5f80614cba565b614cfe9150823d8411612ff757612fe8818361027a565b5f614ba3565b614d2591506129ad5f936001600160a01b03165f52600b60205260405f2090565b55614c26565b614d3e90614d376158be565b3086615917565b5f614b60565b5082811415614b4d565b81519167ffffffffffffffff831161022157680100000000000000008311610221578154838355808410614dad575b506020809101915f5260205f20905f5b848110614d9b575050505050565b83518382015592810192600101614d8d565b614dc390835f528460205f209182019101611645565b5f614d7d565b909291925f935f915f92614dfa614df5836129ad886001600160a01b03165f52600a60205260405f2090565b611450565b955f945f945f908951615227575b90969299935f999899969296975b825189101561519c579a8a9b614e2f8a859d9c9d6114f6565b516040516331a9108f60e11b8152600481018290529d9097906001600160a01b03168e6024815a93602094fa9d8e156126a3575f9e61517b575b508d6001600160a01b0380614e7c6158be565b921691161415806150f0575b6150de57614eaa612911610100614ea08f8c9061319a565b015162ffffff1690565b9960028b1080156150d4575b6150c2578b151590816150b7575b506150a55760048a0361500857506001949095919293955b8981111580614fff575b15614f7a57508a949392918188614f0a93141580614f68575b614f4f575b5061150a565b94858c805182105f14614f4257610100614ea0614f2d614f3594612911946114f6565b51809961319a565b905b959192939490614edc565b505093505f935f90614f37565b614f6290614f5b6158be565b3089615917565b5f614f04565b5089614f748289612d4f565b14614eff565b93966001929a959d999199969396898d81614f958583612d4f565b03614fb2575b50505050930197939a949091999899969296614e16565b836129ad614fd1926001600160a01b03165f52600f60205260405f2090565b556001600160a01b0330911603614feb575b80898d614f9b565b614ff990308d614c3e6158be565b5f614fe3565b50801515614ee6565b939260098a036150215750600192959192939490614edc565b9260068a14801561509b575b8015615091575b8061508a575b1561505157604051639b8fdcd160e01b8152600490fd5b600b8a148015615080575b80615079575b15614f37576040516306f7588760e01b8152600490fd5b5083615062565b50600a8a1461505c565b508461503a565b50600c8a14615034565b5060078a1461502d565b604051633869abd960e21b8152600490fd5b90508a11155f614ec4565b60405163b0ee46ab60e01b8152600490fd5b5060118b11614eb6565b60405163032cac0360e01b8152600490fd5b508b6001600160a01b0360206151336151076158be565b936151128d82612d4f565b6040519485809481936331a9108f60e11b8352600483019190602083019252565b0392165afa9081156126a3576001600160a01b039182915f9161515c575b501691161415614e88565b615175915060203d602011612ff757612fe8818361027a565b5f615151565b615195919e5060203d602011612ff757612fe8818361027a565b9c5f614e69565b5050979550915091949250805b6151d8575050506102da92916129ad6151d3926001600160a01b03165f52600a60205260405f2090565b614d4e565b9081856151e86151f39487612d4f565b14615214575061150a565b815181101561520d5761520681836114f6565b51806151a9565b5f806151a9565b614f62906152206158be565b3087615917565b955050615233886114e4565b5194615248612911610100614ea0898c61319a565b90614e08565b604051906105e0820182811067ffffffffffffffff82111761022157604052602e82526105c0366020840137565b9081518110156114f1570160200190565b908151156153bf5761529d61524e565b915f6152a8846114e4565b5260019080515f915b8183106152d6575050506152cc6152d191610456939461597b565b6159bd565b615a02565b90919361531e6153186153126152ec888661527c565b517fff000000000000000000000000000000000000000000000000000000000000001690565b60f81c90565b60ff1690565b905f915b60ff9088828816851015615382576001929161535761535161531861534a8961535d966114f6565b5160ff1690565b60081b90565b90611443565b615379603a9283830616615371878d6114f6565b9060ff169052565b04920191615322565b509196925050805b615399575060010191906152b1565b9360ff6001603a926153b583858a06166153718584168d6114f6565b011694048061538a565b905061045661327e565b604051906153d682610242565b600682527f66666539303000000000000000000000000000000000000000000000000000006020830152565b6040519061540f82610242565b600682527f66666337303000000000000000000000000000000000000000000000000000006020830152565b6040519061544882610242565b600682527f66336136303300000000000000000000000000000000000000000000000000006020830152565b6040519061548182610242565b600682527f39363561316100000000000000000000000000000000000000000000000000006020830152565b604051906154ba82610242565b600682527f66663763303200000000000000000000000000000000000000000000000000006020830152565b604051906154f382610242565b600682527f66643336303000000000000000000000000000000000000000000000000000006020830152565b6040519061552c82610242565b600682527f63333265306400000000000000000000000000000000000000000000000000006020830152565b6040519061556582610242565b600682527f66666438633500000000000000000000000000000000000000000000000000006020830152565b6040519061559e82610242565b600682527f66663936613900000000000000000000000000000000000000000000000000006020830152565b604051906155d782610242565b600682527f66653538386200000000000000000000000000000000000000000000000000006020830152565b6040519061561082610242565b600682527f63393266343500000000000000000000000000000000000000000000000000006020830152565b6040519061564982610242565b600682527f36376437353700000000000000000000000000000000000000000000000000006020830152565b6040519061568282610242565b600682527f33306132323000000000000000000000000000000000000000000000000000006020830152565b604051906156bb82610242565b600682527f32313761313500000000000000000000000000000000000000000000000000006020830152565b604051906156f482610242565b600682527f30393439306600000000000000000000000000000000000000000000000000006020830152565b6040519061572d82610242565b600682527f65343833656600000000000000000000000000000000000000000000000000006020830152565b6040519061576682610242565b600682527f64633266656600000000000000000000000000000000000000000000000000006020830152565b600181036157d957506157a361563c565b906157ac615675565b906157b56156ae565b906157be6156e7565b906157c7615720565b906157d0615759565b90610456615759565b6002810361582057506157ea615558565b906157f3615591565b906157fc6155ca565b90615805615603565b9061580e615558565b90615817615591565b906104566155ca565b60038103615867575061583161543b565b9061583a6154ad565b906158436154e6565b9061584c61551f565b9061585561543b565b9061585e6154ad565b906104566154e6565b60041461588057604051639a7b332360e01b8152600490fd5b6158886153c9565b90615891615402565b9061589a61543b565b906158a3615474565b906158ac6153c9565b906158b5615402565b9061045661543b565b6001600160a01b037f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb5661633148061590c575b156159085760131936013681116106ba573560601c90565b3390565b5060143610156158f0565b909291926001600160a01b0380921690813b1561048c575f6064928195856040519889978896632142170760e11b885216600487015216602485015260448401525af180156126a3576159675750565b67ffffffffffffffff811161022157604052565b9060ff8091169061598b8261149e565b925f5b83811061599c575050505090565b80836159aa600193856114f6565b51166159b682886114f6565b520161598e565b9081516159c98161149e565b905f5b8181106159da575090925050565b60019060ff6159ef5f198389510301886114f6565b51166159fb82866114f6565b52016159cc565b8051615a0d8161124f565b916040615a1d604051948561027a565b828452615a298361124f565b60209190601f190136868401375f5b848110615a4757505050505090565b6001908251615a558161025e565b603a81527f31323334353637383941424344454647484a4b4c4d4e50515253545556575859858201527f5a6162636465666768696a6b6d6e6f707172737475767778797a000000000000848201527fff0000000000000000000000000000000000000000000000000000000000000090615add9060ff615ad5858a6114f6565b51169061527c565b51165f1a615aeb828961527c565b5301615a3856fea2646970667358221220dbe973aea5d1f03deef7c0b303185740ea702d57d66279c38dd6598a01b9532864736f6c63430008170033",
|
|
1805
|
+
"metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"bannyBody\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultNecklace\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultMouth\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultStandardEyes\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"defaultAlienEyes\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"trustedForwarder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_CantAccelerateTheLock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_ContentsAlreadyStored\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_ContentsMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_HashAlreadyStored\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_HashNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_HeadAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_OutfitChangesLocked\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_SuitAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnauthorizedBackground\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnauthorizedBannyBody\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnauthorizedOutfit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnauthorizedTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnorderedCategories\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnrecognizedBackground\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnrecognizedCategory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Banny721TokenUriResolver_UnrecognizedProduct\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"bannyBodyId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"backgroundId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"outfitIds\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"DecorateBanny\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SetProductName\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SetSvgBaseUri\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"svgContent\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SetSvgContent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"svgHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"SetSvgHash\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"BANNY_BODY\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ALIEN_EYES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_MOUTH\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_NECKLACE\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_STANDARD_EYES\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bannyBodyId\",\"type\":\"uint256\"}],\"name\":\"assetIdsOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"backgroundId\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"outfitIds\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bannyBodyId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"backgroundId\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"outfitIds\",\"type\":\"uint256[]\"}],\"name\":\"decorateBannyWith\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bannyBodyId\",\"type\":\"uint256\"}],\"name\":\"lockOutfitChangesFor\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"namesOf\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"}],\"name\":\"outfitLockedUntil\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"upcs\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"names\",\"type\":\"string[]\"}],\"name\":\"setProductNames\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"baseUri\",\"type\":\"string\"}],\"name\":\"setSvgBaseUri\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"upcs\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"svgContents\",\"type\":\"string[]\"}],\"name\":\"setSvgContentsOf\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"upcs\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"svgHashs\",\"type\":\"bytes32[]\"}],\"name\":\"setSvgHashsOf\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"svgBaseUri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"upc\",\"type\":\"uint256\"}],\"name\":\"svgHashOf\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"shouldDressBannyBody\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"shouldIncludeBackgroundOnBannyBody\",\"type\":\"bool\"}],\"name\":\"svgOf\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenUriOf\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trustedForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"backgroundId\",\"type\":\"uint256\"}],\"name\":\"userOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"outfitId\",\"type\":\"uint256\"}],\"name\":\"wearerOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"assetIdsOf(address,uint256)\":{\"custom:param\":\"hook The hook address of the collection.\",\"params\":{\"bannyBodyId\":\"The ID of the banny body shown with the associated assets.\"},\"returns\":{\"backgroundId\":\"The background attached to the banny body.\",\"outfitIds\":\"The outfits attached to the banny body.\"}},\"constructor\":{\"params\":{\"bannyBody\":\"The SVG of the banny body.\",\"defaultAlienEyes\":\"The SVG of the default alien eyes.\",\"defaultMouth\":\"The SVG of the default mouth.\",\"defaultNecklace\":\"The SVG of the default necklace.\",\"defaultStandardEyes\":\"The SVG of the default standard eyes.\",\"owner\":\"The owner allowed to add SVG files that correspond to product IDs.\",\"trustedForwarder\":\"The trusted forwarder for the ERC2771Context.\"}},\"decorateBannyWith(address,uint256,uint256,uint256[])\":{\"details\":\"The caller must own the banny body being dressed and all outfits being worn.\",\"params\":{\"backgroundId\":\"The ID of the background that'll be associated with the specified banny.\",\"bannyBodyId\":\"The ID of the banny body being dressed.\",\"hook\":\"The hook storing the assets.\",\"outfitIds\":\"The IDs of the outfits that'll be associated with the specified banny. Only one outfit per outfit category allowed at a time and they must be passed in order.\"}},\"isTrustedForwarder(address)\":{\"details\":\"Indicates whether any particular address is the trusted forwarder.\"},\"lockOutfitChangesFor(address,uint256)\":{\"params\":{\"bannyBodyId\":\"The ID of the banny body to lock.\",\"hook\":\"The hook address of the collection.\"}},\"namesOf(address,uint256)\":{\"params\":{\"hook\":\"The hook storing the assets.\",\"tokenId\":\"The ID of the token to show.\"},\"returns\":{\"_0\":\"fullName The full name of the token.\",\"_1\":\"categoryName The name of the token's category.\",\"_2\":\"productName The name of the token's product.\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Make sure tokens can be receieved if the transaction was initiated by this contract.\",\"params\":{\"data\":\"The data of the transfer.\",\"from\":\"The address that initiated the transfer.\",\"operator\":\"The address that initiated the transaction.\",\"tokenId\":\"The ID of the token being transferred.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setProductNames(uint256[],string[])\":{\"params\":{\"names\":\"The names of the products.\",\"upcs\":\"The universal product codes of the products having their name stored.\"}},\"setSvgBaseUri(string)\":{\"params\":{\"baseUri\":\"The base URI of the SVG files.\"}},\"setSvgContentsOf(uint256[],string[])\":{\"params\":{\"svgContents\":\"The svg contents being stored, not including the parent <svg></svg> element.\",\"upcs\":\"The universal product codes of the products having SVGs stored.\"}},\"setSvgHashsOf(uint256[],bytes32[])\":{\"details\":\"This allows anyone to lazily upload the correct svg file.\",\"params\":{\"svgHashs\":\"The svg hashes being stored, not including the parent <svg></svg> element.\",\"upcs\":\"The universal product codes of the products having SVG hashes stored.\"}},\"svgOf(address,uint256,bool,bool)\":{\"params\":{\"hook\":\"The hook storing the assets.\",\"shouldDressBannyBody\":\"Whether the banny body should be dressed.\",\"shouldIncludeBackgroundOnBannyBody\":\"Whether the background should be included on the banny body.\",\"tokenId\":\"The ID of the token to show. If the ID belongs to a banny body, it will be shown with its current outfits in its current background if specified.\"},\"returns\":{\"_0\":\"svg The SVG.\"}},\"tokenUriOf(address,uint256)\":{\"params\":{\"tokenId\":\"The ID of the token to show. If the ID belongs to a banny body, it will be shown with its current outfits in its current background.\"},\"returns\":{\"_0\":\"tokenUri The URI representing the SVG.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"trustedForwarder()\":{\"details\":\"Returns the address of the trusted forwarder.\"},\"userOf(address,uint256)\":{\"params\":{\"backgroundId\":\"The ID of the background being used.\",\"hook\":\"The hook address of the collection.\"},\"returns\":{\"_0\":\"The ID of the banny body using the background.\"}},\"wearerOf(address,uint256)\":{\"params\":{\"hook\":\"The hook address of the collection.\",\"outfitId\":\"The ID of the outfit being worn.\"},\"returns\":{\"_0\":\"The ID of the banny body wearing the outfit.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"assetIdsOf(address,uint256)\":{\"notice\":\"The assets currently attached to each banny body.\"},\"decorateBannyWith(address,uint256,uint256,uint256[])\":{\"notice\":\"Dress your banny body with outfits.\"},\"lockOutfitChangesFor(address,uint256)\":{\"notice\":\"Locks a banny body ID so that it can't change its outfit for a period of time.\"},\"namesOf(address,uint256)\":{\"notice\":\"Returns the name of the token.\"},\"outfitLockedUntil(address,uint256)\":{\"notice\":\"The amount of time each banny body is currently locked for.\"},\"setProductNames(uint256[],string[])\":{\"notice\":\"Allows the owner to set the product's name.\"},\"setSvgBaseUri(string)\":{\"notice\":\"Allows the owner of this contract to specify the base of the domain hosting the SVG files.\"},\"setSvgContentsOf(uint256[],string[])\":{\"notice\":\"The owner of this contract can store SVG files for product IDs.\"},\"setSvgHashsOf(uint256[],bytes32[])\":{\"notice\":\"Allows the owner of this contract to upload the hash of an svg file for a universal product code.\"},\"svgBaseUri()\":{\"notice\":\"The base of the domain hosting the SVG files that can be lazily uploaded to the contract.\"},\"svgHashOf(uint256)\":{\"notice\":\"The banny body and outfit SVG hash files.\"},\"svgOf(address,uint256,bool,bool)\":{\"notice\":\"Returns the SVG showing either a banny body with/without outfits and a background, or the stand alone outfit or background.\"},\"tokenUriOf(address,uint256)\":{\"notice\":\"Returns the SVG showing a dressed banny body in a background.\"},\"userOf(address,uint256)\":{\"notice\":\"Checks to see which banny body is currently using a particular background.\"},\"wearerOf(address,uint256)\":{\"notice\":\"Checks to see which banny body is currently wearing a particular outfit.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Banny721TokenUriResolver.sol\":\"Banny721TokenUriResolver\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":800},\"remappings\":[\"@arbitrum/=node_modules/@arbitrum/\",\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@croptop/=node_modules/@croptop/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@exhausted-pigeon/=node_modules/@exhausted-pigeon/\",\"@offchainlabs/=node_modules/@offchainlabs/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@rev-net/=node_modules/@rev-net/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"@zksync/=node_modules/@zksync/\",\"base64-sol/=node_modules/base64-sol/\",\"base64/=lib/base64/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solady/=node_modules/solady/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"],\"viaIR\":true},\"sources\":{\"lib/base64/base64.sol\":{\"keccak256\":\"0xa73959e6ef0b693e4423a562e612370160b934a75e618361ddd8c9c4b8ddbaaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://17c12e16d8d66f3af15d8787920bd41ca6c1e7517a212a6b9cebd4b6d38f36fe\",\"dweb:/ipfs/QmcXMnZUXEz6LRKsm3CSvqdPboAzmezavi8bTg2dRxM2yE\"]},\"node_modules/@bananapus/721-hook-v5/src/abstract/ERC721.sol\":{\"keccak256\":\"0xee3758d50043b58a173dada85fb33a0a2b4a9f8e57e11a213d0f1d021cd2ffc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9b8cbac216d14a83dcc54fee0e660e8131afee94a21ec0c0af5dd7853692bb1\",\"dweb:/ipfs/QmRU67EeBHtqE7osaBd286poaTDjS7cAVMwt6UXdBBDRGP\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0x1e7b684c86c0f44b0b680c7aba9e511c89892bc0638424722920368911a087f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96995e70a8f15d5600b509ad689c8f2ea6f8116cc7cce9c529b7a41c12c854dc\",\"dweb:/ipfs/QmaAARj3BDSQNsPwkFxauDpWBNgb4kYdzo19tUNdBbc6cX\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x107f91c5a0674717684d75e0c71106dd1d2937c0089366c7bb555be7fffdd6b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ce29d75e454845d0636e671c60c7a691e4a77d1c88fe17dbc435945890465b1\",\"dweb:/ipfs/QmewJn8HeiqKggWA8scLUbwv1TMiit8Va8A5A3K7N9Euss\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x01d419bf6b9dce2ab162f8aac82f0e4a6d948f53819a42ed023e8f23e358c9c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e0b14b2ae2032bd256614522078cf0f831c35d1f64d1ea2050227117d08c060\",\"dweb:/ipfs/QmP1xbw5597GDvNVgT5Te6w8LBqeXHq4x6HeXYmqLqw2RC\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"]},\"node_modules/@bananapus/721-hook-v5/src/libraries/JBIpfsDecoder.sol\":{\"keccak256\":\"0xb93ba562ac1fc9d3829be00e61f3a90f51df5661cf0f2c819a7f1d8ba19ec171\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc9bc948fac8897d9720ef25b13d63c60b40a18aa1897dd1c657fc278c416b4f\",\"dweb:/ipfs/QmNtiJTALZW5zfyKVy7XG5GkqGgMrfkVvU4Auu4bb9cGQc\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xfe7147d09467fd8f9b755d2a1485f22bb4a8797acd0e97623258498ddac2e441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ee21464af9e6c78f580c6920757017cdfbd276728773338a67660fedfea0fd2\",\"dweb:/ipfs/QmVYviC7uQ7rEvdpzD6U4BN19P5f8uMuC7jWffzQWvuFcu\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"]},\"node_modules/@bananapus/core-v5/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBCashOutHook.sol\":{\"keccak256\":\"0x6c516b030f55065eb169d666d11dbd82c4a0b8cea7782ebc5e79433cade38670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0659eb08477176f130ccaf387d4bde71f0ecca2b24f61124d225f2f50397a3\",\"dweb:/ipfs/QmRNBRGhdGpLQLkC4wK4VrgNEw4EdSiJ4ZZJfiJU4aNt2L\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x5f0dc5968277b572ba5dc74518906dfb33a9684b7a199c7843f4e66af1c11fb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://323ce3731aebdf5bf8055b8550055e856feed700d293af8beaf8a750625a0975\",\"dweb:/ipfs/QmU2ErV2uzvXnsJt1qBKm73H2qWcEqYtQGHtZEpx93DaWJ\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesetDataHook.sol\":{\"keccak256\":\"0x45a88aa9f26512f7fc3deff6d00be9a292fc07a76c8311f175249400e83d1837\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e88b996c3a05f87f7391ebcb9cd6d46c6ce8768083945f26a98c4ac4509e64c\",\"dweb:/ipfs/QmbpuYi6mYV8K8qrh8syWvbPc34pFrXG6QeC23m4MsX3r9\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0xf287c7a4a162cd58084ed10ee5f9f31c992addff0ce2f2ac7e810cc393546f30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c851b72de52c3ceb73c6b1849ad0cc7c0832fd126ee52cc838a163ab6d3055b8\",\"dweb:/ipfs/Qmbv6k6pSeNMwZoTUKzDNb18DMGR8DboRMrYQBydATuVZw\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0x5a4c0ef6c8fd10069a408cc42a862909f7b47aba46327da5003203508d8f17d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d8854151c21046b6b939189ad2139c669888e6baf47034a0cb754104d1efe6\",\"dweb:/ipfs/QmaMrxnf6K6znvDBwdAqsw5x6yuR4SY1BdNtyz226siAt5\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAfterCashOutRecordedContext.sol\":{\"keccak256\":\"0xa1acdb1a5670f66f730e71f8eff120766b6f5c934e6cd699c7f1a7cc93adf658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9c7655c9c42b30132688b395251748c809c334370ee584cb9bac46e1fb8f162\",\"dweb:/ipfs/QmbMV1wg1Fm236HaA6nnMSvRkzeYCKPRhMYDbqkAxieY7x\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0x3bfc01ae9944a0ff5c41125e18ebb8efca58d7aa4e471d2ffa6d8588afb689ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://beb21399142d9b89539cfc8aa94119bc106bd1ea847b922d4c78f3f8804a5cba\",\"dweb:/ipfs/QmXDwJXrzCb6zh1KYwVdN2PEY86uK62MTfYF1M2MBtbEP7\"]},\"node_modules/@bananapus/core-v5/src/structs/JBBeforeCashOutRecordedContext.sol\":{\"keccak256\":\"0x7b2119f3e0725becc552ed5dcfa51683960a8772550c95ac5e2f75240ced367c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03369dd07a9126ce453d83ac409919326f0aaa48ff9eac5c703092b3824d79c9\",\"dweb:/ipfs/Qmc1QKw6FfmeBD372RnDyeW27QyzEUjMX5up5rk8SHRYGa\"]},\"node_modules/@bananapus/core-v5/src/structs/JBBeforePayRecordedContext.sol\":{\"keccak256\":\"0xbc98b968d84be2f0ddbb24240723c7179ec9c5e02e5fbd5843dd0e76623a3ea5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1310e522696a9fc6f7f96b04c293fab3b4cf1e722bdbb7aa1eec7b3ecc25402f\",\"dweb:/ipfs/QmTYiijDJRuQcMhLrmpbHzHAQFPq6jurPP5HjyYtnzbpnK\"]},\"node_modules/@bananapus/core-v5/src/structs/JBCashOutHookSpecification.sol\":{\"keccak256\":\"0x67a6e781019979e626eaa81d84a800b2656603c23ae455e15d0fa1a6f03c1736\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43ce54447dda62d449a1e3575a9e4cb9c5a2adb41b45423dcefeb7d9afe8336\",\"dweb:/ipfs/QmW77REnQcvsfv4gwTLj2CyynmaGC3a6om7zCFWmERhrPY\"]},\"node_modules/@bananapus/core-v5/src/structs/JBPayHookSpecification.sol\":{\"keccak256\":\"0x955f0bfca97300b9e5927dc181753830ee362f83fa9ca32a90daade32aa0cfd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517af1597c7c40f8d3da53f7a6684a3e162950a16559d6bf6ea3b727bb11546\",\"dweb:/ipfs/QmRWo2ZTYXmVZTzNJDYhsJNsEaHphjpUfx9eNz2cciyz86\"]},\"node_modules/@bananapus/core-v5/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x2d1f0a8457e94addae51a8222b1837e372847624fde96bb3178e7aee52ab2b24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbb1478e8f5d1c20f981e5a0d5e526d002add1e05ddced87ccd45543ed00c9e4\",\"dweb:/ipfs/QmZkgaYdwkbnvW2MGwVe9FeHjac8XyZTP1YZcWUApiGZgE\"]},\"node_modules/@bananapus/core-v5/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol\":{\"keccak256\":\"0x0b030a33274bde015419d99e54c9164f876a7d10eb590317b79b1d5e4ab23d99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68e5f96988198e8efd25ddef0d89750b4daebb7fd1204fa7f5eaccdfcb3398c8\",\"dweb:/ipfs/QmaM6nNkf9UmEtQraopuZamEWCdTWp7GvuN3pjMQrNCHxm\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xb5afb8e8eebc4d1c6404df2f5e1e6d2c3d24fd01e5dfc855314951ecfaae462d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://78586466c424f076c6a2a551d848cfbe3f7c49e723830807598484a1047b3b34\",\"dweb:/ipfs/Qmb717ovcFxm7qgNKEShiV6M9SPR3v1qnNpAGH84D6w29p\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x44f87e91783e88415bde66f1a63f6c7f0076f2d511548820407d5c95643ac56c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://13a51bc2b23827744dcf5bad10c69e72528cf015a6fe48c93632cdb2c0eb1251\",\"dweb:/ipfs/QmZwPA47Yqgje1qtkdEFEja8ntTahMStYzKf5q3JRnaR7d\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/Banny721TokenUriResolver.sol\":{\"keccak256\":\"0xf91b9ca8c003d9050bef6a1027f12e82b21273eb71ac0a75c64a1c95431a871f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd62041073afb3c8a6ccefab0f5b52d25d3a7e65939977628224b7bde10897c0\",\"dweb:/ipfs/Qme4sC6b5GtJAEX7xQANgj1T1APdh4UhWBpisLPBdvmVS6\"]},\"src/interfaces/IBanny721TokenUriResolver.sol\":{\"keccak256\":\"0x31f005a8cc4604ee51ece245747f0036499cd08f2269696aeea46bdd40f2173b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2cecf3985b02d02220ec4f4bc065e32f1df7dbb46fdd7c6a289306ad7610a5fd\",\"dweb:/ipfs/QmUC1486yD7kD8C2ZspP6ZwxGP7UZhHxWYmma1hfCqowMh\"]}},\"version\":1}",
|
|
1806
|
+
"gitCommit": "99c88f693fe0add873bcb509692afa01fddfa6ca",
|
|
1807
|
+
"history": []
|
|
1808
|
+
}
|
|
1809
|
+
]
|
|
1810
|
+
}
|