UNPKG

68.4 kBJSONView Raw
1{
2 "_format": "hh-sol-artifact-1",
3 "contractName": "BalanceSheet",
4 "sourceName": "contracts/BalanceSheet.sol",
5 "abi": [
6 {
7 "inputs": [
8 {
9 "internalType": "contract FintrollerInterface",
10 "name": "fintroller_",
11 "type": "address"
12 }
13 ],
14 "stateMutability": "nonpayable",
15 "type": "constructor"
16 },
17 {
18 "anonymous": false,
19 "inputs": [
20 {
21 "indexed": true,
22 "internalType": "contract FyTokenInterface",
23 "name": "fyToken",
24 "type": "address"
25 },
26 {
27 "indexed": true,
28 "internalType": "address",
29 "name": "liquidator",
30 "type": "address"
31 },
32 {
33 "indexed": true,
34 "internalType": "address",
35 "name": "borrower",
36 "type": "address"
37 },
38 {
39 "indexed": false,
40 "internalType": "uint256",
41 "name": "clutchedCollateralAmount",
42 "type": "uint256"
43 }
44 ],
45 "name": "ClutchCollateral",
46 "type": "event"
47 },
48 {
49 "anonymous": false,
50 "inputs": [
51 {
52 "indexed": true,
53 "internalType": "contract FyTokenInterface",
54 "name": "fyToken",
55 "type": "address"
56 },
57 {
58 "indexed": true,
59 "internalType": "address",
60 "name": "borrower",
61 "type": "address"
62 },
63 {
64 "indexed": false,
65 "internalType": "uint256",
66 "name": "collateralAmount",
67 "type": "uint256"
68 }
69 ],
70 "name": "DepositCollateral",
71 "type": "event"
72 },
73 {
74 "anonymous": false,
75 "inputs": [
76 {
77 "indexed": true,
78 "internalType": "contract FyTokenInterface",
79 "name": "fyToken",
80 "type": "address"
81 },
82 {
83 "indexed": true,
84 "internalType": "address",
85 "name": "borrower",
86 "type": "address"
87 },
88 {
89 "indexed": false,
90 "internalType": "uint256",
91 "name": "collateralAmount",
92 "type": "uint256"
93 }
94 ],
95 "name": "FreeCollateral",
96 "type": "event"
97 },
98 {
99 "anonymous": false,
100 "inputs": [
101 {
102 "indexed": true,
103 "internalType": "contract FyTokenInterface",
104 "name": "fyToken",
105 "type": "address"
106 },
107 {
108 "indexed": true,
109 "internalType": "address",
110 "name": "borrower",
111 "type": "address"
112 },
113 {
114 "indexed": false,
115 "internalType": "uint256",
116 "name": "collateralAmount",
117 "type": "uint256"
118 }
119 ],
120 "name": "LockCollateral",
121 "type": "event"
122 },
123 {
124 "anonymous": false,
125 "inputs": [
126 {
127 "indexed": true,
128 "internalType": "contract FyTokenInterface",
129 "name": "fyToken",
130 "type": "address"
131 },
132 {
133 "indexed": true,
134 "internalType": "address",
135 "name": "borrower",
136 "type": "address"
137 }
138 ],
139 "name": "OpenVault",
140 "type": "event"
141 },
142 {
143 "anonymous": false,
144 "inputs": [
145 {
146 "indexed": true,
147 "internalType": "contract FyTokenInterface",
148 "name": "fyToken",
149 "type": "address"
150 },
151 {
152 "indexed": true,
153 "internalType": "address",
154 "name": "borrower",
155 "type": "address"
156 },
157 {
158 "indexed": false,
159 "internalType": "uint256",
160 "name": "oldDebt",
161 "type": "uint256"
162 },
163 {
164 "indexed": false,
165 "internalType": "uint256",
166 "name": "newDebt",
167 "type": "uint256"
168 }
169 ],
170 "name": "SetVaultDebt",
171 "type": "event"
172 },
173 {
174 "anonymous": false,
175 "inputs": [
176 {
177 "indexed": true,
178 "internalType": "address",
179 "name": "oldAdmin",
180 "type": "address"
181 },
182 {
183 "indexed": true,
184 "internalType": "address",
185 "name": "newAdmin",
186 "type": "address"
187 }
188 ],
189 "name": "TransferAdmin",
190 "type": "event"
191 },
192 {
193 "anonymous": false,
194 "inputs": [
195 {
196 "indexed": true,
197 "internalType": "contract FyTokenInterface",
198 "name": "fyToken",
199 "type": "address"
200 },
201 {
202 "indexed": true,
203 "internalType": "address",
204 "name": "borrower",
205 "type": "address"
206 },
207 {
208 "indexed": false,
209 "internalType": "uint256",
210 "name": "collateralAmount",
211 "type": "uint256"
212 }
213 ],
214 "name": "WithdrawCollateral",
215 "type": "event"
216 },
217 {
218 "inputs": [],
219 "name": "_renounceAdmin",
220 "outputs": [],
221 "stateMutability": "nonpayable",
222 "type": "function"
223 },
224 {
225 "inputs": [
226 {
227 "internalType": "address",
228 "name": "newAdmin",
229 "type": "address"
230 }
231 ],
232 "name": "_transferAdmin",
233 "outputs": [],
234 "stateMutability": "nonpayable",
235 "type": "function"
236 },
237 {
238 "inputs": [],
239 "name": "admin",
240 "outputs": [
241 {
242 "internalType": "address",
243 "name": "",
244 "type": "address"
245 }
246 ],
247 "stateMutability": "view",
248 "type": "function"
249 },
250 {
251 "inputs": [
252 {
253 "internalType": "contract FyTokenInterface",
254 "name": "fyToken",
255 "type": "address"
256 },
257 {
258 "internalType": "address",
259 "name": "liquidator",
260 "type": "address"
261 },
262 {
263 "internalType": "address",
264 "name": "borrower",
265 "type": "address"
266 },
267 {
268 "internalType": "uint256",
269 "name": "collateralAmount",
270 "type": "uint256"
271 }
272 ],
273 "name": "clutchCollateral",
274 "outputs": [
275 {
276 "internalType": "bool",
277 "name": "",
278 "type": "bool"
279 }
280 ],
281 "stateMutability": "nonpayable",
282 "type": "function"
283 },
284 {
285 "inputs": [
286 {
287 "internalType": "contract FyTokenInterface",
288 "name": "fyToken",
289 "type": "address"
290 },
291 {
292 "internalType": "uint256",
293 "name": "collateralAmount",
294 "type": "uint256"
295 }
296 ],
297 "name": "depositCollateral",
298 "outputs": [
299 {
300 "internalType": "bool",
301 "name": "",
302 "type": "bool"
303 }
304 ],
305 "stateMutability": "nonpayable",
306 "type": "function"
307 },
308 {
309 "inputs": [],
310 "name": "fintroller",
311 "outputs": [
312 {
313 "internalType": "contract FintrollerInterface",
314 "name": "",
315 "type": "address"
316 }
317 ],
318 "stateMutability": "view",
319 "type": "function"
320 },
321 {
322 "inputs": [
323 {
324 "internalType": "contract FyTokenInterface",
325 "name": "fyToken",
326 "type": "address"
327 },
328 {
329 "internalType": "uint256",
330 "name": "collateralAmount",
331 "type": "uint256"
332 }
333 ],
334 "name": "freeCollateral",
335 "outputs": [
336 {
337 "internalType": "bool",
338 "name": "",
339 "type": "bool"
340 }
341 ],
342 "stateMutability": "nonpayable",
343 "type": "function"
344 },
345 {
346 "inputs": [
347 {
348 "internalType": "contract FyTokenInterface",
349 "name": "fyToken",
350 "type": "address"
351 },
352 {
353 "internalType": "uint256",
354 "name": "repayAmount",
355 "type": "uint256"
356 }
357 ],
358 "name": "getClutchableCollateral",
359 "outputs": [
360 {
361 "internalType": "uint256",
362 "name": "",
363 "type": "uint256"
364 }
365 ],
366 "stateMutability": "view",
367 "type": "function"
368 },
369 {
370 "inputs": [
371 {
372 "internalType": "contract FyTokenInterface",
373 "name": "fyToken",
374 "type": "address"
375 },
376 {
377 "internalType": "address",
378 "name": "borrower",
379 "type": "address"
380 }
381 ],
382 "name": "getCurrentCollateralizationRatio",
383 "outputs": [
384 {
385 "internalType": "uint256",
386 "name": "",
387 "type": "uint256"
388 }
389 ],
390 "stateMutability": "view",
391 "type": "function"
392 },
393 {
394 "inputs": [
395 {
396 "internalType": "contract FyTokenInterface",
397 "name": "fyToken",
398 "type": "address"
399 },
400 {
401 "internalType": "address",
402 "name": "borrower",
403 "type": "address"
404 },
405 {
406 "internalType": "uint256",
407 "name": "lockedCollateral",
408 "type": "uint256"
409 },
410 {
411 "internalType": "uint256",
412 "name": "debt",
413 "type": "uint256"
414 }
415 ],
416 "name": "getHypotheticalCollateralizationRatio",
417 "outputs": [
418 {
419 "internalType": "uint256",
420 "name": "",
421 "type": "uint256"
422 }
423 ],
424 "stateMutability": "view",
425 "type": "function"
426 },
427 {
428 "inputs": [
429 {
430 "internalType": "contract FyTokenInterface",
431 "name": "fyToken",
432 "type": "address"
433 },
434 {
435 "internalType": "address",
436 "name": "borrower",
437 "type": "address"
438 }
439 ],
440 "name": "getVault",
441 "outputs": [
442 {
443 "internalType": "uint256",
444 "name": "",
445 "type": "uint256"
446 },
447 {
448 "internalType": "uint256",
449 "name": "",
450 "type": "uint256"
451 },
452 {
453 "internalType": "uint256",
454 "name": "",
455 "type": "uint256"
456 },
457 {
458 "internalType": "bool",
459 "name": "",
460 "type": "bool"
461 }
462 ],
463 "stateMutability": "view",
464 "type": "function"
465 },
466 {
467 "inputs": [
468 {
469 "internalType": "contract FyTokenInterface",
470 "name": "fyToken",
471 "type": "address"
472 },
473 {
474 "internalType": "address",
475 "name": "borrower",
476 "type": "address"
477 }
478 ],
479 "name": "getVaultDebt",
480 "outputs": [
481 {
482 "internalType": "uint256",
483 "name": "",
484 "type": "uint256"
485 }
486 ],
487 "stateMutability": "view",
488 "type": "function"
489 },
490 {
491 "inputs": [
492 {
493 "internalType": "contract FyTokenInterface",
494 "name": "fyToken",
495 "type": "address"
496 },
497 {
498 "internalType": "address",
499 "name": "borrower",
500 "type": "address"
501 }
502 ],
503 "name": "getVaultLockedCollateral",
504 "outputs": [
505 {
506 "internalType": "uint256",
507 "name": "",
508 "type": "uint256"
509 }
510 ],
511 "stateMutability": "view",
512 "type": "function"
513 },
514 {
515 "inputs": [
516 {
517 "internalType": "contract FyTokenInterface",
518 "name": "fyToken",
519 "type": "address"
520 },
521 {
522 "internalType": "address",
523 "name": "borrower",
524 "type": "address"
525 }
526 ],
527 "name": "isAccountUnderwater",
528 "outputs": [
529 {
530 "internalType": "bool",
531 "name": "",
532 "type": "bool"
533 }
534 ],
535 "stateMutability": "view",
536 "type": "function"
537 },
538 {
539 "inputs": [],
540 "name": "isBalanceSheet",
541 "outputs": [
542 {
543 "internalType": "bool",
544 "name": "",
545 "type": "bool"
546 }
547 ],
548 "stateMutability": "view",
549 "type": "function"
550 },
551 {
552 "inputs": [
553 {
554 "internalType": "contract FyTokenInterface",
555 "name": "fyToken",
556 "type": "address"
557 },
558 {
559 "internalType": "address",
560 "name": "borrower",
561 "type": "address"
562 }
563 ],
564 "name": "isVaultOpen",
565 "outputs": [
566 {
567 "internalType": "bool",
568 "name": "",
569 "type": "bool"
570 }
571 ],
572 "stateMutability": "view",
573 "type": "function"
574 },
575 {
576 "inputs": [
577 {
578 "internalType": "contract FyTokenInterface",
579 "name": "fyToken",
580 "type": "address"
581 },
582 {
583 "internalType": "uint256",
584 "name": "collateralAmount",
585 "type": "uint256"
586 }
587 ],
588 "name": "lockCollateral",
589 "outputs": [
590 {
591 "internalType": "bool",
592 "name": "",
593 "type": "bool"
594 }
595 ],
596 "stateMutability": "nonpayable",
597 "type": "function"
598 },
599 {
600 "inputs": [
601 {
602 "internalType": "contract FyTokenInterface",
603 "name": "fyToken",
604 "type": "address"
605 }
606 ],
607 "name": "openVault",
608 "outputs": [
609 {
610 "internalType": "bool",
611 "name": "",
612 "type": "bool"
613 }
614 ],
615 "stateMutability": "nonpayable",
616 "type": "function"
617 },
618 {
619 "inputs": [
620 {
621 "internalType": "contract FyTokenInterface",
622 "name": "fyToken",
623 "type": "address"
624 },
625 {
626 "internalType": "address",
627 "name": "borrower",
628 "type": "address"
629 },
630 {
631 "internalType": "uint256",
632 "name": "newVaultDebt",
633 "type": "uint256"
634 }
635 ],
636 "name": "setVaultDebt",
637 "outputs": [
638 {
639 "internalType": "bool",
640 "name": "",
641 "type": "bool"
642 }
643 ],
644 "stateMutability": "nonpayable",
645 "type": "function"
646 },
647 {
648 "inputs": [
649 {
650 "internalType": "contract FyTokenInterface",
651 "name": "fyToken",
652 "type": "address"
653 },
654 {
655 "internalType": "uint256",
656 "name": "collateralAmount",
657 "type": "uint256"
658 }
659 ],
660 "name": "withdrawCollateral",
661 "outputs": [
662 {
663 "internalType": "bool",
664 "name": "",
665 "type": "bool"
666 }
667 ],
668 "stateMutability": "nonpayable",
669 "type": "function"
670 }
671 ],
672 "bytecode": "0x60806040523480156200001157600080fd5b50604051620034f4380380620034f4833981810160405260208110156200003757600080fd5b50516000805460ff19166001178155600280546001600160a01b03191633908117909155604051909182917fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf80908290a35080600060016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600060019054906101000a90046001600160a01b03166001600160a01b03166358f25c506040518163ffffffff1660e01b815260040160206040518083038186803b158015620000fe57600080fd5b505afa15801562000113573d6000803e3d6000fd5b505050506040513d60208110156200012a57600080fd5b5050506133b7806200013d6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a5d5db0c116100ad578063d8e51dfb11610071578063d8e51dfb146103eb578063e2ad6fe014610427578063e6abb5ae14610455578063ede4c0cc1461047b578063f851a4401461049f5761012c565b8063a5d5db0c146102fb578063b4f2a9cc14610327578063b9d2cc3014610355578063bbd7edc51461038b578063bfa25308146103e15761012c565b8063464b0485116100f4578063464b04851461023f57806347a7d1071461026b5780636321e20c146102975780638a0695fd1461029f5780639ee91d1f146102cd5761012c565b80630e496ef3146101315780631a7a4eb4146101815780632abaf14e146101c1578063318e7028146101ed578063350c35e914610213575b600080fd5b61016d6004803603608081101561014757600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356104a7565b604080519115158252519081900360200190f35b6101af6004803603604081101561019757600080fd5b506001600160a01b03813581169160200135166106e9565b60408051918252519081900360200190f35b61016d600480360360408110156101d757600080fd5b506001600160a01b038135169060200135610719565b61016d6004803603602081101561020357600080fd5b50356001600160a01b0316610add565b61016d6004803603604081101561022957600080fd5b506001600160a01b038135169060200135610c4f565b6101af6004803603604081101561025557600080fd5b506001600160a01b038135169060200135610eea565b61016d6004803603604081101561028157600080fd5b506001600160a01b038135169060200135611761565b61016d611a06565b6101af600480360360408110156102b557600080fd5b506001600160a01b0381358116916020013516611a0b565b61016d600480360360408110156102e357600080fd5b506001600160a01b0381358116916020013516611a36565b61016d6004803603604081101561031157600080fd5b506001600160a01b038135169060200135611b47565b61016d6004803603604081101561033d57600080fd5b506001600160a01b0381358116916020013516611ea8565b61016d6004803603606081101561036b57600080fd5b506001600160a01b03813581169160208101359091169060400135611ed9565b6103b9600480360360408110156103a157600080fd5b506001600160a01b0381358116916020013516611f97565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b6103e9611fdc565b005b6101af6004803603608081101561040157600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612075565b6101af6004803603604081101561043d57600080fd5b506001600160a01b038135811691602001351661295c565b6103e96004803603602081101561046b57600080fd5b50356001600160a01b03166129c3565b610483612ac9565b604080516001600160a01b039092168252519081900360200190f35b610483612add565b6000805460ff166104f4576040805162461bcd60e51b815260206004820152601260248201527111549497d4915153951490539517d0d0531360721b604482015290519081900360640190fd5b6000805460ff19169055336001600160a01b038616146105455760405162461bcd60e51b81526004018080602001828103825260248152602001806132786024913960400191505060405180910390fd5b6001600160a01b03808616600090815260016020908152604080832093871683529290522060020154828110156105ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806131ff6022913960400191505060405180910390fd5b6000806105ba8386612aec565b909250905060008260048111156105cd57fe5b146105d457fe5b6001600160a01b038089166000818152600160209081526040808320948b16835293815290839020600201849055825163d8dfeb4560e01b81529251610678938b938a93909263d8dfeb45926004808201939291829003018186803b15801561063c57600080fd5b505afa158015610650573d6000803e3d6000fd5b505050506040513d602081101561066657600080fd5b50516001600160a01b03169190612b12565b856001600160a01b0316876001600160a01b0316896001600160a01b03167f01d76d96d07104485e19bcce9463bb051a46eaa5d8cce043a1a9cbaeb2a7228e886040518082815260200191505060405180910390a4600193505050506000805460ff19166001179055949350505050565b6001600160a01b038083166000908152600160209081526040808320938516835292905220600201545b92915050565b6001600160a01b0382166000908152600160209081526040808320338452909152812060030154839060ff1661078b576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b6107936130d7565b600084116107e8576040805162461bcd60e51b815260206004820152601860248201527f4552525f465245455f434f4c4c41544552414c5f5a45524f0000000000000000604482015290519081900360640190fd5b6001600160a01b0385166000908152600160208181526040808420338552825292839020835160808101855281548152928101549183019190915260028101549282018390526003015460ff16151560608201529085111561087b5760405162461bcd60e51b81526004018080602001828103825260228152602001806131ff6022913960400191505060405180910390fd5b610889816040015186612aec565b608084018190528382600481111561089d57fe5b60048111156108a857fe5b90525060009050825160048111156108bc57fe5b146108c357fe5b8051156109ac576108de863384608001518460000151612075565b604083810191909152600054815163351da44160e21b81526001600160a01b03898116600483015292516101009092049092169163d4769104916024808301926020929190829003018186803b15801561093757600080fd5b505afa15801561094b573d6000803e3d6000fd5b505050506040513d602081101561096157600080fd5b505160208301819052604083015110156109ac5760405162461bcd60e51b81526004018080602001828103825260218152602001806131bc6021913960400191505060405180910390fd5b60808201516001600160a01b03871660009081526001602090815260408083203384528252909120600201919091558101516109e89086612b69565b60608401819052838260048111156109fc57fe5b6004811115610a0757fe5b9052506000905082516004811115610a1b57fe5b14610a6d576040805162461bcd60e51b815260206004820152601e60248201527f4552525f465245455f434f4c4c41544552414c5f4d4154485f4552524f520000604482015290519081900360640190fd5b60608201516001600160a01b03871660008181526001602081815260408084203380865290835293819020909201949094558051898152905191937f1eb814d29363ba0d496e4eeb821d6f2537310b83b36c70fb97ae141b41fa733c92918290030190a350600195945050505050565b6000816001600160a01b031663cab364f16040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1857600080fd5b505afa158015610b2c573d6000803e3d6000fd5b505050506040513d6020811015610b4257600080fd5b5051610b7f5760405162461bcd60e51b815260040180806020018281038252602181526020018061332a6021913960400191505060405180910390fd5b6001600160a01b038216600090815260016020908152604080832033845290915290206003015460ff1615610bec576040805162461bcd60e51b815260206004820152600e60248201526d22a9292fab20aaa62a2fa7a822a760911b604482015290519081900360640190fd5b6001600160a01b0382166000818152600160208181526040808420338086529252808420600301805460ff191690931790925590519092917fbe36feaa49d1f66b249db1d112a47d32073d1ce484020276d73790cad02be89091a3506001919050565b6001600160a01b0382166000908152600160209081526040808320338452909152812060030154839060ff16610cc1576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b60005460ff16610d0d576040805162461bcd60e51b815260206004820152601260248201527111549497d4915153951490539517d0d0531360721b604482015290519081900360640190fd5b6000805460ff1916905582610d69576040805162461bcd60e51b815260206004820152601c60248201527f4552525f57495448445241575f434f4c4c41544552414c5f5a45524f00000000604482015290519081900360640190fd5b6001600160a01b03841660009081526001602081815260408084203385529091529091200154831115610de3576040805162461bcd60e51b815260206004820181905260248201527f4552525f494e53554646494349454e545f465245455f434f4c4c41544552414c604482015290519081900360640190fd5b6001600160a01b0384166000908152600160208181526040808420338552909152822001548190610e149086612aec565b90925090506000826004811115610e2757fe5b14610e2e57fe5b6001600160a01b03861660008181526001602081815260408084203380865290835293819020909201859055815163d8dfeb4560e01b81529151610e90948a93909263d8dfeb4592600480840193829003018186803b15801561063c57600080fd5b60408051868152905133916001600160a01b038916917f1607da8e9144035d8537941425741e9e3569c81d34a7f8e0c5c44635dc7169219181900360200190a3600193505050506000805460ff1916600117905592915050565b6000610ef4613108565b60008311610f335760405162461bcd60e51b815260040180806020018281038252602281526020018061329c6022913960400191505060405180910390fd5b600060019054906101000a90046001600160a01b03166001600160a01b0316634ada90af6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d6020811015610fab57600080fd5b505160a08201819052610fc2576000915050610713565b60008060019054906101000a90046001600160a01b03166001600160a01b0316637dc0d1d06040518163ffffffff1660e01b815260040160206040518083038186803b15801561101157600080fd5b505afa158015611025573d6000803e3d6000fd5b505050506040513d602081101561103b57600080fd5b505160408051636f307dc360e01b815290519192506001600160a01b038084169263f8d71a119291891691636f307dc3916004808301926020929190829003018186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d60208110156110b557600080fd5b5051604080516395d89b4160e01b815290516001600160a01b03909216916395d89b4191600480820192600092909190829003018186803b1580156110f957600080fd5b505afa15801561110d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561113657600080fd5b8101908080516040519392919084600160201b82111561115557600080fd5b90830190602082018581111561116a57600080fd5b8251600160201b81118282018810171561118357600080fd5b82525081516020918201929091019080838360005b838110156111b0578181015183820152602001611198565b50505050905090810190601f1680156111dd5780820380516001836020036101000a031916815260200191505b506040525050506040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611230578181015183820152602001611218565b50505050905090810190601f16801561125d5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b15801561127a57600080fd5b505afa15801561128e573d6000803e3d6000fd5b505050506040513d60208110156112a457600080fd5b50516101008301526040805163d8dfeb4560e01b815290516001600160a01b038084169263f8d71a11929189169163d8dfeb4591600480820192602092909190829003018186803b1580156112f857600080fd5b505afa15801561130c573d6000803e3d6000fd5b505050506040513d602081101561132257600080fd5b5051604080516395d89b4160e01b815290516001600160a01b03909216916395d89b4191600480820192600092909190829003018186803b15801561136657600080fd5b505afa15801561137a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156113a357600080fd5b8101908080516040519392919084600160201b8211156113c257600080fd5b9083019060208201858111156113d757600080fd5b8251600160201b8111828201881017156113f057600080fd5b82525081516020918201929091019080838360005b8381101561141d578181015183820152602001611405565b50505050905090810190601f16801561144a5780820380516001836020036101000a031916815260200191505b506040525050506040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149d578181015183820152602001611485565b50505050905090810190601f1680156114ca5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156114e757600080fd5b505afa1580156114fb573d6000803e3d6000fd5b505050506040513d602081101561151157600080fd5b5051608083015260408051602081810183528682528251808201845260a086015181528351918201909352610100850151815261154e9290612b8f565b60c084018190528382600481111561156257fe5b600481111561156d57fe5b905250600090508251600481111561158157fe5b146115bd5760405162461bcd60e51b81526004018080602001828103825260288152602001806132e16028913960400191505060405180910390fd5b6115dd8260c0015160405180602001604052808560800151815250612be1565b60208401819052838260048111156115f157fe5b60048111156115fc57fe5b905250600090508251600481111561161057fe5b1461164c5760405162461bcd60e51b81526004018080602001828103825260288152602001806132e16028913960400191505060405180910390fd5b846001600160a01b031663b2bc5ef96040518163ffffffff1660e01b815260040160206040518083038186803b15801561168557600080fd5b505afa158015611699573d6000803e3d6000fd5b505050506040513d60208110156116af57600080fd5b505160608301819052600114611749576116d58260200151600001518360600151612c9a565b60408401819052838260048111156116e957fe5b60048111156116f457fe5b905250600090508251600481111561170857fe5b146117445760405162461bcd60e51b81526004018080602001828103825260288152602001806132e16028913960400191505060405180910390fd5b611755565b60208201515160408301525b50604001519392505050565b6001600160a01b0382166000908152600160209081526040808320338452909152812060030154839060ff166117d3576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b60008311611828576040805162461bcd60e51b815260206004820152601860248201527f4552525f4c4f434b5f434f4c4c41544552414c5f5a45524f0000000000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526001602081815260408084203385528252928390208351608081018552815481529281015491830182905260028101549383019390935260039092015460ff1615156060820152908411156118d3576040805162461bcd60e51b815260206004820181905260248201527f4552525f494e53554646494349454e545f465245455f434f4c4c41544552414c604482015290519081900360640190fd5b6000806118e4836040015187612b69565b909250905060008260048111156118f757fe5b14611949576040805162461bcd60e51b815260206004820152601e60248201527f4552525f4c4f434b5f434f4c4c41544552414c5f4d4154485f4552524f520000604482015290519081900360640190fd5b6001600160a01b03871660009081526001602090815260408083203384528252822060020183905584015161197e9088612aec565b9093509050600083600481111561199157fe5b1461199857fe5b6001600160a01b0388166000818152600160208181526040808420338086529083529381902090920185905581518b815291519293927f5dece52d6e464edb81a56c0ff16f6db48378690286920d6db39d387000064de69281900390910190a3506001979650505050505050565b600181565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0380831660009081526001602081815260408084209486168452938152838320845160808101865281548152928101549183019190915260028101549382019390935260039092015460ff16158015606084015290919080611a9e57508051155b15611aad576000915050610713565b6000611ab9858561295c565b600080546040805163351da44160e21b81526001600160a01b038a8116600483015291519495509293610100909204169163d4769104916024808301926020929190829003018186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b505190911095945050505050565b6001600160a01b0382166000908152600160209081526040808320338452909152812060030154839060ff16611bb9576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b60005460ff16611c05576040805162461bcd60e51b815260206004820152601260248201527111549497d4915153951490539517d0d0531360721b604482015290519081900360640190fd5b6000805460ff1916905582611c61576040805162461bcd60e51b815260206004820152601b60248201527f4552525f4445504f5349545f434f4c4c41544552414c5f5a45524f0000000000604482015290519081900360640190fd5b600060019054906101000a90046001600160a01b03166001600160a01b031663ce8f6d3e856040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611cc357600080fd5b505afa158015611cd7573d6000803e3d6000fd5b505050506040513d6020811015611ced57600080fd5b5051611d2a5760405162461bcd60e51b81526004018080602001828103825260228152602001806131dd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600160208181526040808420338552909152822001548190611d5b9086612b69565b90925090506000826004811115611d6e57fe5b14611daa5760405162461bcd60e51b81526004018080602001828103825260218152602001806132576021913960400191505060405180910390fd5b6001600160a01b03861660008181526001602081815260408084203380865290835293819020909201859055815163d8dfeb4560e01b81529151611e4e9430938b93919263d8dfeb4592600480840193919291829003018186803b158015611e1157600080fd5b505afa158015611e25573d6000803e3d6000fd5b505050506040513d6020811015611e3b57600080fd5b50516001600160a01b0316929190612cc5565b60408051868152905133916001600160a01b038916917fef12f18e2b6578b91b3c852c423ca8ee530f65f20f770e62a7ce8aa08e1ab7779181900360200190a3600193505050506000805460ff1916600117905592915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152206003015460ff1690565b6000336001600160a01b03851614611f225760405162461bcd60e51b81526004018080602001828103825260218152602001806133096021913960400191505060405180910390fd5b6001600160a01b0384811660008181526001602090815260408083209488168084529482529182902080549087905582518181529182018790528251909493927ff2d27c8f0e872c6ed429c5d25278ae6023ae9cc5f788a0fd39b66fb738f8f45c928290030190a360019150505b9392505050565b6001600160a01b039182166000908152600160208181526040808420949095168352929092529190912080549181015460028201546003909201549293909260ff1690565b6002546001600160a01b0316331461202b576040805162461bcd60e51b815260206004820152600d60248201526c22a9292fa727aa2fa0a226a4a760991b604482015290519081900360640190fd5b6002546040516000916001600160a01b0316907fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf80908390a3600280546001600160a01b0319169055565b600061207f613161565b6001600160a01b0380871660009081526001602090815260408083209389168352929052206003015460ff166120f1576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b83612100576000915050612954565b6000831161213f5760405162461bcd60e51b81526004018080602001828103825260368152602001806132216036913960400191505060405180910390fd5b60008060019054906101000a90046001600160a01b03166001600160a01b0316637dc0d1d06040518163ffffffff1660e01b815260040160206040518083038186803b15801561218e57600080fd5b505afa1580156121a2573d6000803e3d6000fd5b505050506040513d60208110156121b857600080fd5b50516040805163d8dfeb4560e01b815290519192506001600160a01b038084169263f8d71a1192918b169163d8dfeb45916004808301926020929190829003018186803b15801561220857600080fd5b505afa15801561221c573d6000803e3d6000fd5b505050506040513d602081101561223257600080fd5b5051604080516395d89b4160e01b815290516001600160a01b03909216916395d89b4191600480820192600092909190829003018186803b15801561227657600080fd5b505afa15801561228a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156122b357600080fd5b8101908080516040519392919084600160201b8211156122d257600080fd5b9083019060208201858111156122e757600080fd5b8251600160201b81118282018810171561230057600080fd5b82525081516020918201929091019080838360005b8381101561232d578181015183820152602001612315565b50505050905090810190601f16801561235a5780820380516001836020036101000a031916815260200191505b506040525050506040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156123f757600080fd5b505afa15801561240b573d6000803e3d6000fd5b505050506040513d602081101561242157600080fd5b505160208381019190915260408051636f307dc360e01b815290516001600160a01b038085169363f8d71a1193918c1692636f307dc3926004808201939291829003018186803b15801561247457600080fd5b505afa158015612488573d6000803e3d6000fd5b505050506040513d602081101561249e57600080fd5b5051604080516395d89b4160e01b815290516001600160a01b03909216916395d89b4191600480820192600092909190829003018186803b1580156124e257600080fd5b505afa1580156124f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561251f57600080fd5b8101908080516040519392919084600160201b82111561253e57600080fd5b90830190602082018581111561255357600080fd5b8251600160201b81118282018810171561256c57600080fd5b82525081516020918201929091019080838360005b83811015612599578181015183820152602001612581565b50505050905090810190601f1680156125c65780820380516001836020036101000a031916815260200191505b506040525050506040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612619578181015183820152602001612601565b50505050905090810190601f1680156126465780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b15801561266357600080fd5b505afa158015612677573d6000803e3d6000fd5b505050506040513d602081101561268d57600080fd5b50516101208301526040805163b2bc5ef960e01b815290516001600160a01b0389169163b2bc5ef9916004808301926020929190829003018186803b1580156126d557600080fd5b505afa1580156126e9573d6000803e3d6000fd5b505050506040513d60208110156126ff57600080fd5b5051604083018190526001146127915761271d858360400151612d25565b60e084018190528382600481111561273157fe5b600481111561273c57fe5b905250600090508251600481111561275057fe5b1461278c5760405162461bcd60e51b815260040180806020018281038252603781526020018061334b6037913960400191505060405180910390fd5b612799565b60e082018590525b604080516020808201835260e08501518252825180820190935284015182526127c191612d64565b60c08401819052838260048111156127d557fe5b60048111156127e057fe5b90525060009050825160048111156127f457fe5b146128305760405162461bcd60e51b815260040180806020018281038252603781526020018061334b6037913960400191505060405180910390fd5b61285b6040518060200160405280868152506040518060200160405280856101200151815250612d64565b608084018190528382600481111561286f57fe5b600481111561287a57fe5b905250600090508251600481111561288e57fe5b146128ca5760405162461bcd60e51b815260040180806020018281038252603781526020018061334b6037913960400191505060405180910390fd5b6128dc8260c001518360800151612be1565b60a08401819052838260048111156128f057fe5b60048111156128fb57fe5b905250600090508251600481111561290f57fe5b1461294b5760405162461bcd60e51b815260040180806020018281038252603781526020018061334b6037913960400191505060405180910390fd5b5060a001515190505b949350505050565b6001600160a01b038083166000908152600160208181526040808420948616845293815283832084516080810186528154808252938201549281019290925260028101549482018590526003015460ff161515606082015291926129549186918691612075565b6002546001600160a01b03163314612a12576040805162461bcd60e51b815260206004820152600d60248201526c22a9292fa727aa2fa0a226a4a760991b604482015290519081900360640190fd5b6001600160a01b038116612a6d576040805162461bcd60e51b815260206004820152601a60248201527f4552525f5345545f41444d494e5f5a45524f5f41444452455353000000000000604482015290519081900360640190fd5b6002546040516001600160a01b038084169216907fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf8090600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b60005461010090046001600160a01b031681565b6002546001600160a01b031681565b600080838311612b03575060009050818303612b0b565b506003905060005b9250929050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612b64908490612e4e565b505050565b600080838301848110612b8157600092509050612b0b565b600260009250925050612b0b565b6000612b996131a8565b600080612ba68787612d64565b90925090506000826004811115612bb957fe5b14612bc8579092509050612bd9565b612bd28186612d64565b9350935050505b935093915050565b6000612beb6131a8565b600080612c048660000151670de0b6b3a7640000612d25565b90925090506000826004811115612c1757fe5b14612c3657506040805160208101909152600081529092509050612b0b565b600080612c47838860000151612c9a565b90925090506000826004811115612c5a57fe5b14612c7d5781604051806020016040528060008152509550955050505050612b0b565b604080516020810190915290815260009890975095505050505050565b60008082612cae5750600190506000612b0b565b6000838581612cb957fe5b04915091509250929050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052612d1f908590612e4e565b50505050565b60008083612d3857506000905080612b0b565b83830283858281612d4557fe5b0414612d5957600260009250925050612b0b565b600092509050612b0b565b6000612d6e6131a8565b600080612d8386600001518660000151612d25565b90925090506000826004811115612d9657fe5b14612db557506040805160208101909152600081529092509050612b0b565b600080612dca6706f05b59d3b2000084612b69565b90925090506000826004811115612ddd57fe5b14612e005781604051806020016040528060008152509550955050505050612b0b565b600080612e1583670de0b6b3a7640000612c9a565b90925090506000826004811115612e2857fe5b14612e2f57fe5b604080516020810190915290815260009a909950975050505050505050565b6000612e9083836040518060400160405280601d81526020017f4552525f534146455f45524332305f4c4f575f4c4556454c5f43414c4c000000815250612f02565b805190915015612b6457808060200190516020811015612eaf57600080fd5b5051612b64576040805162461bcd60e51b815260206004820152601e60248201527f4552525f534146455f45524332305f45524332305f4f5045524154494f4e0000604482015290519081900360640190fd5b6060612f16846001600160a01b031661309e565b612f515760405162461bcd60e51b81526004018080602001828103825260238152602001806132be6023913960400191505060405180910390fd5b600080856001600160a01b0316856040518082805190602001908083835b60208310612f8e5780518252601f199092019160209182019101612f6f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612ff0576040519150601f19603f3d011682016040523d82523d6000602084013e612ff5565b606091505b50915091508115613009579150611f909050565b8051156130195780518082602001fd5b8360405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561306357818101518382015260200161304b565b50505050905090810190601f1680156130905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590612954575050151592915050565b6040805160a081019091528060005b8152602001600081526020016000815260200160008152602001600081525090565b60408051610120810190915280600081526020016131246131a8565b81526020016000815260200160008152602001600081526020016000815260200161314d6131a8565b815260200160008152602001600081525090565b60408051610160810190915280600081526020016000815260200160008152602001600081526020016131926131a8565b815260200161319f6131a8565b81526020016130e65b604051806020016040528060008152509056fe4552525f42454c4f575f434f4c4c41544552414c495a4154494f4e5f524154494f4552525f4445504f5349545f434f4c4c41544552414c5f4e4f545f414c4c4f5745444552525f494e53554646494349454e545f4c4f434b45445f434f4c4c41544552414c4552525f4745545f4859504f544845544943414c5f434f4c4c41544552414c495a4154494f4e5f524154494f5f444542545f5a45524f4552525f4445504f5349545f434f4c4c41544552414c5f4d4154485f4552524f524552525f434c555443485f434f4c4c41544552414c5f4e4f545f415554484f52495a45444552525f4745545f434c5554434841424c455f434f4c4c41544552414c5f5a45524f4552525f534146455f45524332305f43414c4c5f544f5f4e4f4e5f434f4e54524143544552525f4745545f434c5554434841424c455f434f4c4c41544552414c5f4d4154485f4552524f524552525f5345545f5641554c545f444542545f4e4f545f415554484f52495a45444552525f4f50454e5f5641554c545f4659544f4b454e5f494e5350454354494f4e4552525f4745545f4859504f544845544943414c5f434f4c4c41544552414c495a4154494f4e5f524154494f5f4d4154485f4552524f52a2646970667358221220928357a59c778e5f8d069b600a19b817e5393c5184a7792ffe7f0903b50afcd064736f6c63430007060033",
673 "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063a5d5db0c116100ad578063d8e51dfb11610071578063d8e51dfb146103eb578063e2ad6fe014610427578063e6abb5ae14610455578063ede4c0cc1461047b578063f851a4401461049f5761012c565b8063a5d5db0c146102fb578063b4f2a9cc14610327578063b9d2cc3014610355578063bbd7edc51461038b578063bfa25308146103e15761012c565b8063464b0485116100f4578063464b04851461023f57806347a7d1071461026b5780636321e20c146102975780638a0695fd1461029f5780639ee91d1f146102cd5761012c565b80630e496ef3146101315780631a7a4eb4146101815780632abaf14e146101c1578063318e7028146101ed578063350c35e914610213575b600080fd5b61016d6004803603608081101561014757600080fd5b506001600160a01b038135811691602081013582169160408201351690606001356104a7565b604080519115158252519081900360200190f35b6101af6004803603604081101561019757600080fd5b506001600160a01b03813581169160200135166106e9565b60408051918252519081900360200190f35b61016d600480360360408110156101d757600080fd5b506001600160a01b038135169060200135610719565b61016d6004803603602081101561020357600080fd5b50356001600160a01b0316610add565b61016d6004803603604081101561022957600080fd5b506001600160a01b038135169060200135610c4f565b6101af6004803603604081101561025557600080fd5b506001600160a01b038135169060200135610eea565b61016d6004803603604081101561028157600080fd5b506001600160a01b038135169060200135611761565b61016d611a06565b6101af600480360360408110156102b557600080fd5b506001600160a01b0381358116916020013516611a0b565b61016d600480360360408110156102e357600080fd5b506001600160a01b0381358116916020013516611a36565b61016d6004803603604081101561031157600080fd5b506001600160a01b038135169060200135611b47565b61016d6004803603604081101561033d57600080fd5b506001600160a01b0381358116916020013516611ea8565b61016d6004803603606081101561036b57600080fd5b506001600160a01b03813581169160208101359091169060400135611ed9565b6103b9600480360360408110156103a157600080fd5b506001600160a01b0381358116916020013516611f97565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b6103e9611fdc565b005b6101af6004803603608081101561040157600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612075565b6101af6004803603604081101561043d57600080fd5b506001600160a01b038135811691602001351661295c565b6103e96004803603602081101561046b57600080fd5b50356001600160a01b03166129c3565b610483612ac9565b604080516001600160a01b039092168252519081900360200190f35b610483612add565b6000805460ff166104f4576040805162461bcd60e51b815260206004820152601260248201527111549497d4915153951490539517d0d0531360721b604482015290519081900360640190fd5b6000805460ff19169055336001600160a01b038616146105455760405162461bcd60e51b81526004018080602001828103825260248152602001806132786024913960400191505060405180910390fd5b6001600160a01b03808616600090815260016020908152604080832093871683529290522060020154828110156105ad5760405162461bcd60e51b81526004018080602001828103825260228152602001806131ff6022913960400191505060405180910390fd5b6000806105ba8386612aec565b909250905060008260048111156105cd57fe5b146105d457fe5b6001600160a01b038089166000818152600160209081526040808320948b16835293815290839020600201849055825163d8dfeb4560e01b81529251610678938b938a93909263d8dfeb45926004808201939291829003018186803b15801561063c57600080fd5b505afa158015610650573d6000803e3d6000fd5b505050506040513d602081101561066657600080fd5b50516001600160a01b03169190612b12565b856001600160a01b0316876001600160a01b0316896001600160a01b03167f01d76d96d07104485e19bcce9463bb051a46eaa5d8cce043a1a9cbaeb2a7228e886040518082815260200191505060405180910390a4600193505050506000805460ff19166001179055949350505050565b6001600160a01b038083166000908152600160209081526040808320938516835292905220600201545b92915050565b6001600160a01b0382166000908152600160209081526040808320338452909152812060030154839060ff1661078b576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b6107936130d7565b600084116107e8576040805162461bcd60e51b815260206004820152601860248201527f4552525f465245455f434f4c4c41544552414c5f5a45524f0000000000000000604482015290519081900360640190fd5b6001600160a01b0385166000908152600160208181526040808420338552825292839020835160808101855281548152928101549183019190915260028101549282018390526003015460ff16151560608201529085111561087b5760405162461bcd60e51b81526004018080602001828103825260228152602001806131ff6022913960400191505060405180910390fd5b610889816040015186612aec565b608084018190528382600481111561089d57fe5b60048111156108a857fe5b90525060009050825160048111156108bc57fe5b146108c357fe5b8051156109ac576108de863384608001518460000151612075565b604083810191909152600054815163351da44160e21b81526001600160a01b03898116600483015292516101009092049092169163d4769104916024808301926020929190829003018186803b15801561093757600080fd5b505afa15801561094b573d6000803e3d6000fd5b505050506040513d602081101561096157600080fd5b505160208301819052604083015110156109ac5760405162461bcd60e51b81526004018080602001828103825260218152602001806131bc6021913960400191505060405180910390fd5b60808201516001600160a01b03871660009081526001602090815260408083203384528252909120600201919091558101516109e89086612b69565b60608401819052838260048111156109fc57fe5b6004811115610a0757fe5b9052506000905082516004811115610a1b57fe5b14610a6d576040805162461bcd60e51b815260206004820152601e60248201527f4552525f465245455f434f4c4c41544552414c5f4d4154485f4552524f520000604482015290519081900360640190fd5b60608201516001600160a01b03871660008181526001602081815260408084203380865290835293819020909201949094558051898152905191937f1eb814d29363ba0d496e4eeb821d6f2537310b83b36c70fb97ae141b41fa733c92918290030190a350600195945050505050565b6000816001600160a01b031663cab364f16040518163ffffffff1660e01b815260040160206040518083038186803b158015610b1857600080fd5b505afa158015610b2c573d6000803e3d6000fd5b505050506040513d6020811015610b4257600080fd5b5051610b7f5760405162461bcd60e51b815260040180806020018281038252602181526020018061332a6021913960400191505060405180910390fd5b6001600160a01b038216600090815260016020908152604080832033845290915290206003015460ff1615610bec576040805162461bcd60e51b815260206004820152600e60248201526d22a9292fab20aaa62a2fa7a822a760911b604482015290519081900360640190fd5b6001600160a01b0382166000818152600160208181526040808420338086529252808420600301805460ff191690931790925590519092917fbe36feaa49d1f66b249db1d112a47d32073d1ce484020276d73790cad02be89091a3506001919050565b6001600160a01b0382166000908152600160209081526040808320338452909152812060030154839060ff16610cc1576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b60005460ff16610d0d576040805162461bcd60e51b815260206004820152601260248201527111549497d4915153951490539517d0d0531360721b604482015290519081900360640190fd5b6000805460ff1916905582610d69576040805162461bcd60e51b815260206004820152601c60248201527f4552525f57495448445241575f434f4c4c41544552414c5f5a45524f00000000604482015290519081900360640190fd5b6001600160a01b03841660009081526001602081815260408084203385529091529091200154831115610de3576040805162461bcd60e51b815260206004820181905260248201527f4552525f494e53554646494349454e545f465245455f434f4c4c41544552414c604482015290519081900360640190fd5b6001600160a01b0384166000908152600160208181526040808420338552909152822001548190610e149086612aec565b90925090506000826004811115610e2757fe5b14610e2e57fe5b6001600160a01b03861660008181526001602081815260408084203380865290835293819020909201859055815163d8dfeb4560e01b81529151610e90948a93909263d8dfeb4592600480840193829003018186803b15801561063c57600080fd5b60408051868152905133916001600160a01b038916917f1607da8e9144035d8537941425741e9e3569c81d34a7f8e0c5c44635dc7169219181900360200190a3600193505050506000805460ff1916600117905592915050565b6000610ef4613108565b60008311610f335760405162461bcd60e51b815260040180806020018281038252602281526020018061329c6022913960400191505060405180910390fd5b600060019054906101000a90046001600160a01b03166001600160a01b0316634ada90af6040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8157600080fd5b505afa158015610f95573d6000803e3d6000fd5b505050506040513d6020811015610fab57600080fd5b505160a08201819052610fc2576000915050610713565b60008060019054906101000a90046001600160a01b03166001600160a01b0316637dc0d1d06040518163ffffffff1660e01b815260040160206040518083038186803b15801561101157600080fd5b505afa158015611025573d6000803e3d6000fd5b505050506040513d602081101561103b57600080fd5b505160408051636f307dc360e01b815290519192506001600160a01b038084169263f8d71a119291891691636f307dc3916004808301926020929190829003018186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d60208110156110b557600080fd5b5051604080516395d89b4160e01b815290516001600160a01b03909216916395d89b4191600480820192600092909190829003018186803b1580156110f957600080fd5b505afa15801561110d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561113657600080fd5b8101908080516040519392919084600160201b82111561115557600080fd5b90830190602082018581111561116a57600080fd5b8251600160201b81118282018810171561118357600080fd5b82525081516020918201929091019080838360005b838110156111b0578181015183820152602001611198565b50505050905090810190601f1680156111dd5780820380516001836020036101000a031916815260200191505b506040525050506040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611230578181015183820152602001611218565b50505050905090810190601f16801561125d5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b15801561127a57600080fd5b505afa15801561128e573d6000803e3d6000fd5b505050506040513d60208110156112a457600080fd5b50516101008301526040805163d8dfeb4560e01b815290516001600160a01b038084169263f8d71a11929189169163d8dfeb4591600480820192602092909190829003018186803b1580156112f857600080fd5b505afa15801561130c573d6000803e3d6000fd5b505050506040513d602081101561132257600080fd5b5051604080516395d89b4160e01b815290516001600160a01b03909216916395d89b4191600480820192600092909190829003018186803b15801561136657600080fd5b505afa15801561137a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156113a357600080fd5b8101908080516040519392919084600160201b8211156113c257600080fd5b9083019060208201858111156113d757600080fd5b8251600160201b8111828201881017156113f057600080fd5b82525081516020918201929091019080838360005b8381101561141d578181015183820152602001611405565b50505050905090810190601f16801561144a5780820380516001836020036101000a031916815260200191505b506040525050506040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561149d578181015183820152602001611485565b50505050905090810190601f1680156114ca5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156114e757600080fd5b505afa1580156114fb573d6000803e3d6000fd5b505050506040513d602081101561151157600080fd5b5051608083015260408051602081810183528682528251808201845260a086015181528351918201909352610100850151815261154e9290612b8f565b60c084018190528382600481111561156257fe5b600481111561156d57fe5b905250600090508251600481111561158157fe5b146115bd5760405162461bcd60e51b81526004018080602001828103825260288152602001806132e16028913960400191505060405180910390fd5b6115dd8260c0015160405180602001604052808560800151815250612be1565b60208401819052838260048111156115f157fe5b60048111156115fc57fe5b905250600090508251600481111561161057fe5b1461164c5760405162461bcd60e51b81526004018080602001828103825260288152602001806132e16028913960400191505060405180910390fd5b846001600160a01b031663b2bc5ef96040518163ffffffff1660e01b815260040160206040518083038186803b15801561168557600080fd5b505afa158015611699573d6000803e3d6000fd5b505050506040513d60208110156116af57600080fd5b505160608301819052600114611749576116d58260200151600001518360600151612c9a565b60408401819052838260048111156116e957fe5b60048111156116f457fe5b905250600090508251600481111561170857fe5b146117445760405162461bcd60e51b81526004018080602001828103825260288152602001806132e16028913960400191505060405180910390fd5b611755565b60208201515160408301525b50604001519392505050565b6001600160a01b0382166000908152600160209081526040808320338452909152812060030154839060ff166117d3576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b60008311611828576040805162461bcd60e51b815260206004820152601860248201527f4552525f4c4f434b5f434f4c4c41544552414c5f5a45524f0000000000000000604482015290519081900360640190fd5b6001600160a01b03841660009081526001602081815260408084203385528252928390208351608081018552815481529281015491830182905260028101549383019390935260039092015460ff1615156060820152908411156118d3576040805162461bcd60e51b815260206004820181905260248201527f4552525f494e53554646494349454e545f465245455f434f4c4c41544552414c604482015290519081900360640190fd5b6000806118e4836040015187612b69565b909250905060008260048111156118f757fe5b14611949576040805162461bcd60e51b815260206004820152601e60248201527f4552525f4c4f434b5f434f4c4c41544552414c5f4d4154485f4552524f520000604482015290519081900360640190fd5b6001600160a01b03871660009081526001602090815260408083203384528252822060020183905584015161197e9088612aec565b9093509050600083600481111561199157fe5b1461199857fe5b6001600160a01b0388166000818152600160208181526040808420338086529083529381902090920185905581518b815291519293927f5dece52d6e464edb81a56c0ff16f6db48378690286920d6db39d387000064de69281900390910190a3506001979650505050505050565b600181565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0380831660009081526001602081815260408084209486168452938152838320845160808101865281548152928101549183019190915260028101549382019390935260039092015460ff16158015606084015290919080611a9e57508051155b15611aad576000915050610713565b6000611ab9858561295c565b600080546040805163351da44160e21b81526001600160a01b038a8116600483015291519495509293610100909204169163d4769104916024808301926020929190829003018186803b158015611b0f57600080fd5b505afa158015611b23573d6000803e3d6000fd5b505050506040513d6020811015611b3957600080fd5b505190911095945050505050565b6001600160a01b0382166000908152600160209081526040808320338452909152812060030154839060ff16611bb9576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b60005460ff16611c05576040805162461bcd60e51b815260206004820152601260248201527111549497d4915153951490539517d0d0531360721b604482015290519081900360640190fd5b6000805460ff1916905582611c61576040805162461bcd60e51b815260206004820152601b60248201527f4552525f4445504f5349545f434f4c4c41544552414c5f5a45524f0000000000604482015290519081900360640190fd5b600060019054906101000a90046001600160a01b03166001600160a01b031663ce8f6d3e856040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611cc357600080fd5b505afa158015611cd7573d6000803e3d6000fd5b505050506040513d6020811015611ced57600080fd5b5051611d2a5760405162461bcd60e51b81526004018080602001828103825260228152602001806131dd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600160208181526040808420338552909152822001548190611d5b9086612b69565b90925090506000826004811115611d6e57fe5b14611daa5760405162461bcd60e51b81526004018080602001828103825260218152602001806132576021913960400191505060405180910390fd5b6001600160a01b03861660008181526001602081815260408084203380865290835293819020909201859055815163d8dfeb4560e01b81529151611e4e9430938b93919263d8dfeb4592600480840193919291829003018186803b158015611e1157600080fd5b505afa158015611e25573d6000803e3d6000fd5b505050506040513d6020811015611e3b57600080fd5b50516001600160a01b0316929190612cc5565b60408051868152905133916001600160a01b038916917fef12f18e2b6578b91b3c852c423ca8ee530f65f20f770e62a7ce8aa08e1ab7779181900360200190a3600193505050506000805460ff1916600117905592915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152206003015460ff1690565b6000336001600160a01b03851614611f225760405162461bcd60e51b81526004018080602001828103825260218152602001806133096021913960400191505060405180910390fd5b6001600160a01b0384811660008181526001602090815260408083209488168084529482529182902080549087905582518181529182018790528251909493927ff2d27c8f0e872c6ed429c5d25278ae6023ae9cc5f788a0fd39b66fb738f8f45c928290030190a360019150505b9392505050565b6001600160a01b039182166000908152600160208181526040808420949095168352929092529190912080549181015460028201546003909201549293909260ff1690565b6002546001600160a01b0316331461202b576040805162461bcd60e51b815260206004820152600d60248201526c22a9292fa727aa2fa0a226a4a760991b604482015290519081900360640190fd5b6002546040516000916001600160a01b0316907fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf80908390a3600280546001600160a01b0319169055565b600061207f613161565b6001600160a01b0380871660009081526001602090815260408083209389168352929052206003015460ff166120f1576040805162461bcd60e51b815260206004820152601260248201527122a9292fab20aaa62a2fa727aa2fa7a822a760711b604482015290519081900360640190fd5b83612100576000915050612954565b6000831161213f5760405162461bcd60e51b81526004018080602001828103825260368152602001806132216036913960400191505060405180910390fd5b60008060019054906101000a90046001600160a01b03166001600160a01b0316637dc0d1d06040518163ffffffff1660e01b815260040160206040518083038186803b15801561218e57600080fd5b505afa1580156121a2573d6000803e3d6000fd5b505050506040513d60208110156121b857600080fd5b50516040805163d8dfeb4560e01b815290519192506001600160a01b038084169263f8d71a1192918b169163d8dfeb45916004808301926020929190829003018186803b15801561220857600080fd5b505afa15801561221c573d6000803e3d6000fd5b505050506040513d602081101561223257600080fd5b5051604080516395d89b4160e01b815290516001600160a01b03909216916395d89b4191600480820192600092909190829003018186803b15801561227657600080fd5b505afa15801561228a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156122b357600080fd5b8101908080516040519392919084600160201b8211156122d257600080fd5b9083019060208201858111156122e757600080fd5b8251600160201b81118282018810171561230057600080fd5b82525081516020918201929091019080838360005b8381101561232d578181015183820152602001612315565b50505050905090810190601f16801561235a5780820380516001836020036101000a031916815260200191505b506040525050506040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123ad578181015183820152602001612395565b50505050905090810190601f1680156123da5780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b1580156123f757600080fd5b505afa15801561240b573d6000803e3d6000fd5b505050506040513d602081101561242157600080fd5b505160208381019190915260408051636f307dc360e01b815290516001600160a01b038085169363f8d71a1193918c1692636f307dc3926004808201939291829003018186803b15801561247457600080fd5b505afa158015612488573d6000803e3d6000fd5b505050506040513d602081101561249e57600080fd5b5051604080516395d89b4160e01b815290516001600160a01b03909216916395d89b4191600480820192600092909190829003018186803b1580156124e257600080fd5b505afa1580156124f6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561251f57600080fd5b8101908080516040519392919084600160201b82111561253e57600080fd5b90830190602082018581111561255357600080fd5b8251600160201b81118282018810171561256c57600080fd5b82525081516020918201929091019080838360005b83811015612599578181015183820152602001612581565b50505050905090810190601f1680156125c65780820380516001836020036101000a031916815260200191505b506040525050506040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612619578181015183820152602001612601565b50505050905090810190601f1680156126465780820380516001836020036101000a031916815260200191505b509250505060206040518083038186803b15801561266357600080fd5b505afa158015612677573d6000803e3d6000fd5b505050506040513d602081101561268d57600080fd5b50516101208301526040805163b2bc5ef960e01b815290516001600160a01b0389169163b2bc5ef9916004808301926020929190829003018186803b1580156126d557600080fd5b505afa1580156126e9573d6000803e3d6000fd5b505050506040513d60208110156126ff57600080fd5b5051604083018190526001146127915761271d858360400151612d25565b60e084018190528382600481111561273157fe5b600481111561273c57fe5b905250600090508251600481111561275057fe5b1461278c5760405162461bcd60e51b815260040180806020018281038252603781526020018061334b6037913960400191505060405180910390fd5b612799565b60e082018590525b604080516020808201835260e08501518252825180820190935284015182526127c191612d64565b60c08401819052838260048111156127d557fe5b60048111156127e057fe5b90525060009050825160048111156127f457fe5b146128305760405162461bcd60e51b815260040180806020018281038252603781526020018061334b6037913960400191505060405180910390fd5b61285b6040518060200160405280868152506040518060200160405280856101200151815250612d64565b608084018190528382600481111561286f57fe5b600481111561287a57fe5b905250600090508251600481111561288e57fe5b146128ca5760405162461bcd60e51b815260040180806020018281038252603781526020018061334b6037913960400191505060405180910390fd5b6128dc8260c001518360800151612be1565b60a08401819052838260048111156128f057fe5b60048111156128fb57fe5b905250600090508251600481111561290f57fe5b1461294b5760405162461bcd60e51b815260040180806020018281038252603781526020018061334b6037913960400191505060405180910390fd5b5060a001515190505b949350505050565b6001600160a01b038083166000908152600160208181526040808420948616845293815283832084516080810186528154808252938201549281019290925260028101549482018590526003015460ff161515606082015291926129549186918691612075565b6002546001600160a01b03163314612a12576040805162461bcd60e51b815260206004820152600d60248201526c22a9292fa727aa2fa0a226a4a760991b604482015290519081900360640190fd5b6001600160a01b038116612a6d576040805162461bcd60e51b815260206004820152601a60248201527f4552525f5345545f41444d494e5f5a45524f5f41444452455353000000000000604482015290519081900360640190fd5b6002546040516001600160a01b038084169216907fbdd36143ee09de60bdefca70680e0f71189b2ed7acee364b53917ad433fdaf8090600090a3600280546001600160a01b0319166001600160a01b0392909216919091179055565b60005461010090046001600160a01b031681565b6002546001600160a01b031681565b600080838311612b03575060009050818303612b0b565b506003905060005b9250929050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612b64908490612e4e565b505050565b600080838301848110612b8157600092509050612b0b565b600260009250925050612b0b565b6000612b996131a8565b600080612ba68787612d64565b90925090506000826004811115612bb957fe5b14612bc8579092509050612bd9565b612bd28186612d64565b9350935050505b935093915050565b6000612beb6131a8565b600080612c048660000151670de0b6b3a7640000612d25565b90925090506000826004811115612c1757fe5b14612c3657506040805160208101909152600081529092509050612b0b565b600080612c47838860000151612c9a565b90925090506000826004811115612c5a57fe5b14612c7d5781604051806020016040528060008152509550955050505050612b0b565b604080516020810190915290815260009890975095505050505050565b60008082612cae5750600190506000612b0b565b6000838581612cb957fe5b04915091509250929050565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052612d1f908590612e4e565b50505050565b60008083612d3857506000905080612b0b565b83830283858281612d4557fe5b0414612d5957600260009250925050612b0b565b600092509050612b0b565b6000612d6e6131a8565b600080612d8386600001518660000151612d25565b90925090506000826004811115612d9657fe5b14612db557506040805160208101909152600081529092509050612b0b565b600080612dca6706f05b59d3b2000084612b69565b90925090506000826004811115612ddd57fe5b14612e005781604051806020016040528060008152509550955050505050612b0b565b600080612e1583670de0b6b3a7640000612c9a565b90925090506000826004811115612e2857fe5b14612e2f57fe5b604080516020810190915290815260009a909950975050505050505050565b6000612e9083836040518060400160405280601d81526020017f4552525f534146455f45524332305f4c4f575f4c4556454c5f43414c4c000000815250612f02565b805190915015612b6457808060200190516020811015612eaf57600080fd5b5051612b64576040805162461bcd60e51b815260206004820152601e60248201527f4552525f534146455f45524332305f45524332305f4f5045524154494f4e0000604482015290519081900360640190fd5b6060612f16846001600160a01b031661309e565b612f515760405162461bcd60e51b81526004018080602001828103825260238152602001806132be6023913960400191505060405180910390fd5b600080856001600160a01b0316856040518082805190602001908083835b60208310612f8e5780518252601f199092019160209182019101612f6f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612ff0576040519150601f19603f3d011682016040523d82523d6000602084013e612ff5565b606091505b50915091508115613009579150611f909050565b8051156130195780518082602001fd5b8360405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561306357818101518382015260200161304b565b50505050905090810190601f1680156130905780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590612954575050151592915050565b6040805160a081019091528060005b8152602001600081526020016000815260200160008152602001600081525090565b60408051610120810190915280600081526020016131246131a8565b81526020016000815260200160008152602001600081526020016000815260200161314d6131a8565b815260200160008152602001600081525090565b60408051610160810190915280600081526020016000815260200160008152602001600081526020016131926131a8565b815260200161319f6131a8565b81526020016130e65b604051806020016040528060008152509056fe4552525f42454c4f575f434f4c4c41544552414c495a4154494f4e5f524154494f4552525f4445504f5349545f434f4c4c41544552414c5f4e4f545f414c4c4f5745444552525f494e53554646494349454e545f4c4f434b45445f434f4c4c41544552414c4552525f4745545f4859504f544845544943414c5f434f4c4c41544552414c495a4154494f4e5f524154494f5f444542545f5a45524f4552525f4445504f5349545f434f4c4c41544552414c5f4d4154485f4552524f524552525f434c555443485f434f4c4c41544552414c5f4e4f545f415554484f52495a45444552525f4745545f434c5554434841424c455f434f4c4c41544552414c5f5a45524f4552525f534146455f45524332305f43414c4c5f544f5f4e4f4e5f434f4e54524143544552525f4745545f434c5554434841424c455f434f4c4c41544552414c5f4d4154485f4552524f524552525f5345545f5641554c545f444542545f4e4f545f415554484f52495a45444552525f4f50454e5f5641554c545f4659544f4b454e5f494e5350454354494f4e4552525f4745545f4859504f544845544943414c5f434f4c4c41544552414c495a4154494f4e5f524154494f5f4d4154485f4552524f52a2646970667358221220928357a59c778e5f8d069b600a19b817e5393c5184a7792ffe7f0903b50afcd064736f6c63430007060033",
674 "linkReferences": {},
675 "deployedLinkReferences": {}
676}