Token Dai Stablecoin

Overview CRC20

Price
$1.00 @ 15.454545 CRO (+0.22%)
Fully Diluted Market Cap
Total Supply:
21,000,000 DAI

Holders:
4,902 addresses
Balance
91.106761550057125419 DAI

Value
$91.38 ( ~1,408.0123 CRO) [0.0004%]
0xce2cc46682e9c6d5f174af598fb4931a9c0be68e
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

OVERVIEW

Multi-Collateral Dai, brings a lot of new and exciting features, such as support for new CDP collateral types and Dai Savings Rate.

Market

Volume (24H):$252,512,587.00
Market Capitalization:$5,224,999,051.00
Circulating Supply:5,219,118,861.00 DAI
Market Data Source: Coinmarketcap


Update? Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
1
OKX
ETH-DAI$1.003
0.0000589 Btc
$22,216,535.00
17,350.336 ETH
0.0206%
2
BitMart
BTC-DAI$1.003
0.0000589 Btc
$17,154,085.00
1,007.701 BTC
0.0012%
3
Uniswap (v3)
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.002
0.0000588 Btc
$10,993,942.00
11,319,919.272 0X6B175474E89094C44DA98B954EEDEAC495271D0F
13.4519%
4
Uniswap (v3)
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48$1.002
0.0000589 Btc
$9,545,071.00
9,527,630.747 0X6B175474E89094C44DA98B954EEDEAC495271D0F
11.3220%
5
Kraken
DAI-EUR$1.001
0.0000588 Btc
$7,957,084.00
7,953,010.126 DAI
9.4509%
6
Kraken
DAI-USD$1.00
0.0000587 Btc
$7,278,350.00
7,278,714.351 DAI
8.6496%
7
XT.COM
BTC-DAI$1.001
0.0000589 Btc
$5,763,204.00
339.019 BTC
0.0004%
8
Kyberswap Elastic (Arbitrum)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFF970A61A04B1CA14834A43F5DE4533EBDDB5CC8$1.003
0.0000589 Btc
$5,013,378.00
4,996,530.807 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
5.9376%
9
Kyberswap Elastic (Optimism)
0X7F5C764CBC14F9669B88837CA1490CCA17C31607-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.003
0.0000589 Btc
$3,232,084.00
3,221,834.873 0X7F5C764CBC14F9669B88837CA1490CCA17C31607
3.8286%
10
BKEX
USDT-DAI$1.003
0.0000589 Btc
$2,962,508.00
2,952,391.892 USDT
3.5084%
11
Hotbit
DAI-USDT$1.004
0.0000590 Btc
$2,760,968.00
2,751,293.230 DAI
3.2695%
12
Binance
USDT-DAI$1.001
0.0000590 Btc
$2,589,379.00
2,587,170.311 USDT
3.0744%
13
Kyberswap Elastic (Arbitrum)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFD086BC7CD5C481DCC9C85EBE478A1C0B69FCBB9$1.003
0.0000589 Btc
$2,294,325.00
2,286,631.424 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
2.7173%
14
Kyberswap Elastic (Polygon)
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.003
0.0000589 Btc
$2,243,022.00
2,236,099.096 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
2.6572%
15
Kyberswap Elastic (Polygon)
0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-0XC2132D05D31C914A87C6611C10748AEB04B58E8F$1.003
0.0000589 Btc
$2,056,775.00
2,049,595.263 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063
2.4356%
16
Uniswap (v3)
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.001
0.0000589 Btc
$2,045,401.00
2,038,390.997 0X6B175474E89094C44DA98B954EEDEAC495271D0F
2.4223%
17
Binance
ETH-DAI$1.001
0.0000590 Btc
$1,761,611.00
1,380.139 ETH
0.0016%
18
Kraken
DAI-USDT$1.003
0.0000590 Btc
$1,677,500.00
1,671,738.915 DAI
1.9866%
19
Uniswap (Optimism)
0X7F5C764CBC14F9669B88837CA1490CCA17C31607-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.003
0.0000589 Btc
$1,662,003.00
1,656,765.449 0X7F5C764CBC14F9669B88837CA1490CCA17C31607
1.9688%
20
OKX
BTC-DAI$1.003
0.0000589 Btc
$1,483,890.00
87.105 BTC
0.0001%
21
Kyberswap Elastic (Optimism)
0X94B008AA00579C1307B0EF2C499AD98A8CE58E58-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.003
0.0000589 Btc
$1,415,858.00
1,411,536.957 0X94B008AA00579C1307B0EF2C499AD98A8CE58E58
1.6774%
22
XT.COM
ETH-DAI$1.001
0.0000589 Btc
$1,374,758.00
1,076.023 ETH
0.0013%
23
LBank
DAI-USDT$1.004
0.0000590 Btc
$1,337,106.00
1,332,114.591 DAI
1.5830%
24
BitMart
ETH-DAI$1.003
0.0000589 Btc
$1,272,574.00
992.369 ETH
0.0012%
25
WhiteBIT
DAI-USDT$1.003
0.0000589 Btc
$1,260,656.00
1,256,737.740 DAI
1.4934%
26
Coinbase Exchange
DAI-USD$0.9999
0.0000587 Btc
$1,244,883.00
1,245,007.479 DAI
1.4795%
27
Platypus Finance
0XA7D7079B0FEAD91F3E65F86E8915CB59C1A4C664-0XD586E7F844CEA2F87F50152665BCBC2C279D8D70$1.003
0.0000589 Btc
$1,145,685.00
1,141,870.128 0XA7D7079B0FEAD91F3E65F86E8915CB59C1A4C664
1.3569%
28
Uniswap (Polygon)
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.003
0.0000589 Btc
$1,074,297.00
1,070,937.313 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
1.2726%
29
BitMart
DAI-USDT$1.003
0.0000590 Btc
$886,813.00
883,835.500 DAI
1.0503%
30
Bybit
BIT-DAI$1.003
0.0000589 Btc
$859,344.00
2,763,868.500 BIT
3.2844%
31
KuCoin
USDT-DAI$1.003
0.0000589 Btc
$813,052.00
809,943.659 USDT
0.9625%
32
Binance
BTC-DAI$1.001
0.0000590 Btc
$764,177.00
45.056 BTC
0.0001%
33
Quickswap
0XE5417AF564E4BFDA1C483642DB72007871397896-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.003
0.0000589 Btc
$748,984.00
182,015.026 0XE5417AF564E4BFDA1C483642DB72007871397896
0.2163%
34
Uniswap (Polygon)
0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-0XC2132D05D31C914A87C6611C10748AEB04B58E8F$1.003
0.0000589 Btc
$576,424.00
574,522.614 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063
0.6827%
35
Uniswap (Optimism)
0X4200000000000000000000000000000000000006-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.001
0.0000588 Btc
$546,266.00
427.036 0X4200000000000000000000000000000000000006
0.0005%
36
Platypus Finance
0XC7198437980C041C805A1EDCBA50C1CE5DB95118-0XD586E7F844CEA2F87F50152665BCBC2C279D8D70$1.003
0.0000589 Btc
$470,601.00
469,044.216 0XC7198437980C041C805A1EDCBA50C1CE5DB95118
0.5574%
37
Platypus Finance
0XD586E7F844CEA2F87F50152665BCBC2C279D8D70-0XC7198437980C041C805A1EDCBA50C1CE5DB95118$1.003
0.0000589 Btc
$470,548.00
469,069.008 0XD586E7F844CEA2F87F50152665BCBC2C279D8D70
0.5574%
38
Balancer (Arbitrum)
0XF0B5CEEFC89684889E5F7E0A7775BD100FCD3709-DAI$1.003
0.0000589 Btc
$462,851.00
466,340.325 0XF0B5CEEFC89684889E5F7E0A7775BD100FCD3709
0.5542%
39
Bybit
DAI-USDT$1.004
0.0000590 Btc
$370,635.00
369,314.020 DAI
0.4389%
40
Quickswap (v3)
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.003
0.0000589 Btc
$353,877.00
352,797.171 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
0.4192%
41
Azbit
DAI-USDT$1.004
0.0000590 Btc
$318,951.00
317,705.236 DAI
0.3775%
42
Binance
BNB-DAI$1.004
0.0000589 Btc
$300,921.00
1,034.845 BNB
0.0012%
43
Uniswap (Arbitrum One)
0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1-0XFF970A61A04B1CA14834A43F5DE4533EBDDB5CC8$1.004
0.0000590 Btc
$268,903.00
267,990.933 0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1
0.3185%
44
DigiFinex
DAI-USDT$1.005
0.0000591 Btc
$268,087.00
266,686.490 DAI
0.3169%
45
Beethoven X
0X04068DA6C83AFCFA0E13BA15A6696662335D5B75-DAI$1.003
0.0000589 Btc
$265,578.00
264,651.715 0X04068DA6C83AFCFA0E13BA15A6696662335D5B75
0.3145%
46
Beethoven X
0X8D11EC38A3EB5E956B052F67DA8BDC9BEF8ABF3E-USDC$1.003
0.0000589 Btc
$265,479.00
264,692.655 0X8D11EC38A3EB5E956B052F67DA8BDC9BEF8ABF3E
0.3145%
47
Uniswap (Optimism)
0X8C6F28F2F1A3C87F0F938B96D27520D9751EC8D9-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.003
0.0000589 Btc
$229,608.00
227,923.105 0X8C6F28F2F1A3C87F0F938B96D27520D9751EC8D9
0.2708%
48
Sushiswap
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.003
0.0000589 Btc
$226,909.00
225,565.361 0X6B175474E89094C44DA98B954EEDEAC495271D0F
0.2680%
49
BKEX
BTC-DAI$1.003
0.0000589 Btc
$218,558.00
12.822 BTC
0.0000%
50
BKEX
ETH-DAI$1.003
0.0000589 Btc
$215,801.00
168.427 ETH
0.0002%
51
Bitget
DAI-USDC$1.003
0.0000590 Btc
$208,657.00
208,025.000 DAI
0.2472%
52
Gemini
DAI-USD$0.9982
0.0000586 Btc
$202,979.00
203,341.031 DAI
0.2416%
53
PancakeSwap (v2)
0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3-BUSD$1.003
0.0000589 Btc
$190,453.00
191,156.459 0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3
0.2272%
54
Bitget
DAI-USDT$1.004
0.0000590 Btc
$189,558.00
188,931.000 DAI
0.2245%
55
Platypus Finance
0XD586E7F844CEA2F87F50152665BCBC2C279D8D70-0XB97EF9EF8734C71904D8002F8B6BC66DD9C48A6E$1.003
0.0000589 Btc
$177,361.00
176,799.332 0XD586E7F844CEA2F87F50152665BCBC2C279D8D70
0.2101%
56
Platypus Finance
0XB97EF9EF8734C71904D8002F8B6BC66DD9C48A6E-0XD586E7F844CEA2F87F50152665BCBC2C279D8D70$1.003
0.0000589 Btc
$177,353.00
176,781.377 0XB97EF9EF8734C71904D8002F8B6BC66DD9C48A6E
0.2101%
57
ApeSwap (Polygon)
0X0D500B1D8E8EF31E21C99D1DB9A6444D3ADF1270-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.004
0.0000590 Btc
$147,080.00
159,581.484 0X0D500B1D8E8EF31E21C99D1DB9A6444D3ADF1270
0.1896%
58
BitMart
DAI-USDC$1.003
0.0000589 Btc
$145,556.00
145,107.400 DAI
0.1724%
59
Quickswap (v3)
0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-0XC2132D05D31C914A87C6611C10748AEB04B58E8F$1.004
0.0000590 Btc
$145,288.00
144,734.165 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063
0.1720%
60
Quickswap (v3)
0XA3FA99A148FA48D14ED51D610C367C61876997F1-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.003
0.0000589 Btc
$131,001.00
131,805.107 0XA3FA99A148FA48D14ED51D610C367C61876997F1
0.1566%
61
Velodrome Finance
0X7F5C764CBC14F9669B88837CA1490CCA17C31607-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.003
0.0000589 Btc
$126,891.00
126,448.952 0X7F5C764CBC14F9669B88837CA1490CCA17C31607
0.1503%
62
Quickswap
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.003
0.0000589 Btc
$123,115.00
124,745.412 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
0.1482%
63
Huobi
DAI-USDT$1.002
0.0000589 Btc
$117,376.00
117,196.630 DAI
0.1393%
64
Uniswap (v3)
0X5F98805A4E8BE255A32880FDEC7F6728C6568BA0-0X6B175474E89094C44DA98B954EEDEAC495271D0F$1.002
0.0000588 Btc
$112,918.00
108,756.101 0X5F98805A4E8BE255A32880FDEC7F6728C6568BA0
0.1292%
65
Uniswap (v3)
0X03AB458634910AAD20EF5F1C8EE96F1D6AC54919-0X6B175474E89094C44DA98B954EEDEAC495271D0F$1.002
0.0000588 Btc
$95,201.00
33,694.944 0X03AB458634910AAD20EF5F1C8EE96F1D6AC54919
0.0400%
66
Uniswap (Polygon)
0XA3FA99A148FA48D14ED51D610C367C61876997F1-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.003
0.0000589 Btc
$89,337.00
89,881.884 0XA3FA99A148FA48D14ED51D610C367C61876997F1
0.1068%
67
Quickswap
0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$0.9992
0.0000587 Btc
$87,704.00
68.809 0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619
0.0001%
68
Sushiswap
0X64AA3364F17A4D01C6F1751FD97C2BD3D7E7F1D5-0X6B175474E89094C44DA98B954EEDEAC495271D0F$1.003
0.0000589 Btc
$84,255.00
10,350.792 0X64AA3364F17A4D01C6F1751FD97C2BD3D7E7F1D5
0.0123%
69
Uniswap (Arbitrum One)
0X82AF49447D8A07E3BD95BD0D56F35241523FBAB1-0XDA10009CBD5D07DD0CECC66161FC93D7C9000DA1$1.002
0.0000588 Btc
$83,236.00
64.977 0X82AF49447D8A07E3BD95BD0D56F35241523FBAB1
0.0001%
70
Osmosis
IBC/0CD3A0285E1341859B5E86B6AB7682F023D03E97607CCC1DC95706411D866DF7-UOSMO$0.9992
0.0000587 Btc
$78,481.00
78,541.026 IBC/0CD3A0285E1341859B5E86B6AB7682F023D03E97607CCC1DC95706411D866DF7
0.0933%
71
Crypto.com Exchange
DAI-USDT$1.002
0.0000588 Btc
$72,924.00
72,805.000 DAI
0.0865%
72
Bitfinex
DAI-USD$1.001
0.0000588 Btc
$68,424.00
68,382.766 DAI
0.0813%
73
KuCoin
BTC-DAI$1.002
0.0000589 Btc
$67,487.00
3.965 BTC
0.0000%
74
Tokpie
DAI-USDC$1.002
0.0000590 Btc
$62,604.00
62,491.040 DAI
0.0743%
75
ZigZag (zkSync v1)
ETH-DAI$1.003
0.0000589 Btc
$45,175.00
35.262 ETH
0.0000%
76
Biswap
0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3-0X55D398326F99059FF775485246999027B3197955$1.002
0.0000589 Btc
$43,384.00
43,584.121 0X1AF3F329E8BE154074D8769D1FFA4EE058B1DBC3
0.0518%
77
EXMO
DAI-ETH$1.002
0.0000589 Btc
$38,709.00
38,617.977 DAI
0.0459%
78
Bitso
DAI-MXN$0.996
0.0000585 Btc
$33,770.00
33,906.378 DAI
0.0403%
79
Binance US
DAI-USD$0.9996
0.0000587 Btc
$30,216.00
30,227.671 DAI
0.0359%
80
Sushiswap (Polygon POS)
0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$0.9998
0.0000587 Btc
$26,170.00
20.488 0X7CEB23FD6BC0ADD59E62AC25578270CFF1B9F619
0.0000%
81
EXMO
DAI-BTC$1.004
0.0000590 Btc
$24,680.00
24,585.972 DAI
0.0292%
82
Balancer (Polygon)
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-DAI$1.003
0.0000589 Btc
$24,053.00
23,974.790 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
0.0285%
83
Balancer (Polygon)
0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-USDC$1.003
0.0000589 Btc
$24,051.00
23,972.464 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063
0.0285%
84
Balancer (Polygon)
0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063-USDT$1.004
0.0000590 Btc
$19,639.40
19,561.940 0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063
0.0232%
85
Balancer (Polygon)
0XC2132D05D31C914A87C6611C10748AEB04B58E8F-DAI$1.003
0.0000589 Btc
$19,625.74
19,566.059 0XC2132D05D31C914A87C6611C10748AEB04B58E8F
0.0233%
86
Emirex
USDT-DAI$1.003
0.0000589 Btc
$19,209.41
19,137.370 USDT
0.0227%
87
KuCoin
ETH-DAI$1.002
0.0000589 Btc
$18,878.36
14.793 ETH
0.0000%
88
Coinbase Exchange
ETH-DAI$1.003
0.0000589 Btc
$17,576.96
13.677 ETH
0.0000%
89
DeFi Swap
0X6B175474E89094C44DA98B954EEDEAC495271D0F-0XC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2$1.003
0.0000589 Btc
$14,658.38
14,586.454 0X6B175474E89094C44DA98B954EEDEAC495271D0F
0.0173%
90
Sushiswap (Polygon POS)
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.003
0.0000589 Btc
$12,276.22
12,126.711 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
0.0144%
91
CoinEx
DAI-USDT$1.006
0.0000591 Btc
$11,824.42
11,749.209 DAI
0.0140%
92
Gate.io
DAI-USDT$1.003
0.0000589 Btc
$11,483.35
11,429.899 DAI
0.0136%
93
Bybit
BTC-DAI$1.003
0.0000589 Btc
$11,111.75
0.656 BTC
0.0000%
94
Bybit
ETH-DAI$1.003
0.0000589 Btc
$10,885.30
8.515 ETH
0.0000%
95
Bitfinex
DAI-BTC$1.004
0.0000590 Btc
$9,172.97
9,139.338 DAI
0.0109%
96
Concave
0X000000007A58F5F58E697E51AB0357BC9E260A04-0X6B175474E89094C44DA98B954EEDEAC495271D0F$1.003
0.0000589 Btc
$4,389.06
674.086 0X000000007A58F5F58E697E51AB0357BC9E260A04
0.0008%
97
ApeSwap (Polygon)
0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.004
0.0000590 Btc
$3,204.03
3,190.676 0X2791BCA1F2DE4661ED88A30C99A7A9449AA84174
0.0038%
98
Bancor (V2)
DAI-BNT$1.002
0.0000589 Btc
$2,435.58
2,430.221 DAI
0.0029%
99
Quickswap
0XA3FA99A148FA48D14ED51D610C367C61876997F1-0X8F3CF7AD23CD3CADBD9735AFF958023239C6A063$1.004
0.0000590 Btc
$1,667.43
1,669.549 0XA3FA99A148FA48D14ED51D610C367C61876997F1
0.0020%
100
Bitstamp
DAI-USD$0.9975
0.0000586 Btc
$1,418.27
1,421.794 DAI
0.0017%

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xc21223249ca28397b4b6541dffaecc539bff0c59

Contract Name:
CronosCRC20

Compiler Version
v0.6.11+commit.5ef660b1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-11
*/

// File contracts/ModuleCRC20.sol

// SPDX-License-Identifier: GNU-3
pragma solidity >0.4.13 >=0.4.23 >=0.6.11 <0.7.0;

////// lib/ds-token/lib/ds-auth/src/auth.sol
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity >=0.4.23; */

interface DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) external view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    constructor() public {
        owner = msg.sender;
        emit LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
    public
    auth
    {
        owner = owner_;
        emit LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
    public
    auth
    {
        authority = authority_;
        emit LogSetAuthority(address(authority));
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig), "ds-auth-unauthorized");
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(address(0))) {
            return false;
        } else {
            return authority.canCall(src, address(this), sig);
        }
    }
}

////// lib/ds-token/lib/ds-math/src/math.sol
/// math.sol -- mixin for inline numerical wizardry

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity >0.4.13; */

contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x, "ds-math-add-overflow");
    }
    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x, "ds-math-sub-underflow");
    }
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow");
    }

    function min(uint x, uint y) internal pure returns (uint z) {
        return x <= y ? x : y;
    }
    function max(uint x, uint y) internal pure returns (uint z) {
        return x >= y ? x : y;
    }
    function imin(int x, int y) internal pure returns (int z) {
        return x <= y ? x : y;
    }
    function imax(int x, int y) internal pure returns (int z) {
        return x >= y ? x : y;
    }

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    //rounds to zero if x*y < WAD / 2
    function wmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    //rounds to zero if x*y < WAD / 2
    function rmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    //rounds to zero if x*y < WAD / 2
    function wdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    //rounds to zero if x*y < RAY / 2
    function rdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal pure returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}

////// lib/ds-token/src/token.sol
/// token.sol -- ERC20 implementation with minting and burning

// Copyright (C) 2015, 2016, 2017  DappHub, LLC

// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.

// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

/* pragma solidity >=0.4.23; */

/* import "ds-math/math.sol"; */
/* import "ds-auth/auth.sol"; */


contract DSToken is DSMath, DSAuth {
    bool                                              public  stopped;
    uint256                                           public  totalSupply;
    mapping (address => uint256)                      public  balanceOf;
    mapping (address => mapping (address => uint256)) public  allowance;
    string                                            public  symbol;
    uint8                                             public  decimals = 18; // standard token precision. override to customize
    string                                            public  name = "";     // Optional token name


    constructor(string memory symbol_) public {
        symbol = symbol_;
    }

    event Approval(address indexed src, address indexed guy, uint wad);
    event Transfer(address indexed src, address indexed dst, uint wad);
    event Mint(address indexed guy, uint wad);
    event Burn(address indexed guy, uint wad);
    event Stop();
    event Start();

    modifier stoppable {
        require(!stopped, "ds-stop-is-stopped");
        _;
    }

    function approve(address guy) external returns (bool) {
        return approve(guy, uint(-1));
    }

    function approve(address guy, uint wad) public stoppable returns (bool) {
        allowance[msg.sender][guy] = wad;

        emit Approval(msg.sender, guy, wad);

        return true;
    }

    function transfer(address dst, uint wad) external returns (bool) {
        return transferFrom(msg.sender, dst, wad);
    }

    function transferFrom(address src, address dst, uint wad)
    public
    stoppable
    returns (bool)
    {
        if (src != msg.sender && allowance[src][msg.sender] != uint(-1)) {
            require(allowance[src][msg.sender] >= wad, "ds-token-insufficient-approval");
            allowance[src][msg.sender] = sub(allowance[src][msg.sender], wad);
        }

        require(balanceOf[src] >= wad, "ds-token-insufficient-balance");
        balanceOf[src] = sub(balanceOf[src], wad);
        balanceOf[dst] = add(balanceOf[dst], wad);

        emit Transfer(src, dst, wad);

        return true;
    }

    function push(address dst, uint wad) external {
        transferFrom(msg.sender, dst, wad);
    }

    function pull(address src, uint wad) external {
        transferFrom(src, msg.sender, wad);
    }

    function move(address src, address dst, uint wad) external {
        transferFrom(src, dst, wad);
    }


    function mint(uint wad) external {
        mint(msg.sender, wad);
    }

    function burn(uint wad) external {
        burn(msg.sender, wad);
    }

    function mint(address guy, uint wad) public auth stoppable {
        balanceOf[guy] = add(balanceOf[guy], wad);
        totalSupply = add(totalSupply, wad);
        emit Mint(guy, wad);
    }

    function burn(address guy, uint wad) public auth stoppable {
        if (guy != msg.sender && allowance[guy][msg.sender] != uint(-1)) {
            require(allowance[guy][msg.sender] >= wad, "ds-token-insufficient-approval");
            allowance[guy][msg.sender] = sub(allowance[guy][msg.sender], wad);
        }

        require(balanceOf[guy] >= wad, "ds-token-insufficient-balance");
        balanceOf[guy] = sub(balanceOf[guy], wad);
        totalSupply = sub(totalSupply, wad);
        emit Burn(guy, wad);
    }

    function stop() public auth {
        stopped = true;
        emit Stop();
    }

    function start() public auth {
        stopped = false;
        emit Start();
    }


    function setName(string memory name_) public auth {
        name = name_;
    }
}

////// src/ModuleCRC20.sol
/* pragma solidity ^0.6.11; */

/* import "ds-token/token.sol"; */

contract ModuleCRC20 is DSToken  {
    // sha256('cronos')[:20]
    address constant module_address = 0x89A7EF2F08B1c018D5Cc88836249b84Dd5392905;
    string denom;

    event __CronosSendToEthereum(address recipient, uint256 amount, uint256 bridge_fee);
    event __CronosSendToIbc(address sender, string recipient, uint256 amount);

    constructor(string memory denom_, uint8 decimals_) DSToken(denom_) public {
        decimals = decimals_;
        denom = denom_;
    }

    // unsafe_burn burn tokens without user's approval and authentication, used internally
    function unsafe_burn(address addr, uint amount) private {
        // Deduct user's balance without approval
        require(balanceOf[addr] >= amount, "ds-token-insufficient-balance");
        balanceOf[addr] = sub(balanceOf[addr], amount);
        totalSupply = sub(totalSupply, amount);
        emit Burn(addr, amount);
    }

    function native_denom() public view returns (string memory) {
        return denom;
    }

    function mint_by_cronos_module(address addr, uint amount) public {
        require(msg.sender == module_address);
        mint(addr, amount);
    }

    function burn_by_cronos_module(address addr, uint amount) public {
        require(msg.sender == module_address);
        unsafe_burn(addr, amount);
    }

    // send to ethereum through gravity bridge
    function send_to_ethereum(address recipient, uint amount, uint bridge_fee) external {
        unsafe_burn(msg.sender, add(amount, bridge_fee));
        emit __CronosSendToEthereum(recipient, amount, bridge_fee);
    }

    // send an "amount" of the contract token to recipient through IBC
    function send_to_ibc(string memory recipient, uint amount) public {
        unsafe_burn(msg.sender, amount);
        emit __CronosSendToIbc(msg.sender, recipient, amount);
    }
}


// File contracts/CronosCRC20.sol

pragma solidity 0.6.11;

contract CronosCRC20 is ModuleCRC20 {
    constructor (
        string memory _name,
        string memory _denom,
        uint8 _decimal
    ) ModuleCRC20(_denom, _decimal) public {
        setName(_name);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_denom","type":"string"},{"internalType":"uint8","name":"_decimal","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"Start","type":"event"},{"anonymous":false,"inputs":[],"name":"Stop","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bridge_fee","type":"uint256"}],"name":"__CronosSendToEthereum","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"string","name":"recipient","type":"string"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"__CronosSendToIbc","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract DSAuthority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn_by_cronos_module","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint_by_cronos_module","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"move","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"native_denom","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"pull","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"push","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"bridge_fee","type":"uint256"}],"name":"send_to_ethereum","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"recipient","type":"string"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"send_to_ibc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract DSAuthority","name":"authority_","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"}],"name":"setName","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stopped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040526012600660006101000a81548160ff021916908360ff1602179055506040518060200160405280600081525060079080519060200190620000479291906200061e565b503480156200005557600080fd5b50604051620031cf380380620031cf833981810160405260608110156200007b57600080fd5b81019080805160405193929190846401000000008211156200009c57600080fd5b83820191506020820185811115620000b357600080fd5b8251866001820283011164010000000082111715620000d157600080fd5b8083526020830192505050908051906020019080838360005b8381101562000107578082015181840152602081019050620000ea565b50505050905090810190601f168015620001355780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200015957600080fd5b838201915060208201858111156200017057600080fd5b82518660018202830111640100000000821117156200018e57600080fd5b8083526020830192505050908051906020019080838360005b83811015620001c4578082015181840152602081019050620001a7565b50505050905090810190601f168015620001f25780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919050505081818133600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a28060059080519060200190620002a59291906200061e565b505080600660006101000a81548160ff021916908360ff1602179055508160089080519060200190620002da9291906200061e565b505050620002ee83620002f760201b60201c565b505050620006cd565b6200032d336000357fffffffff0000000000000000000000000000000000000000000000000000000016620003bc60201b60201c565b620003a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b8060079080519060200190620003b89291906200061e565b5050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620003fd576001905062000618565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200045e576001905062000618565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415620004bf576000905062000618565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001935050505060206040518083038186803b158015620005d857600080fd5b505afa158015620005ed573d6000803e3d6000fd5b505050506040513d60208110156200060457600080fd5b810190808051906020019092919050505090505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200066157805160ff191683800117855562000692565b8280016001018555821562000692579182015b828111156200069157825182559160200191906001019062000674565b5b509050620006a19190620006a5565b5090565b620006ca91905b80821115620006c6576000816000905550600101620006ac565b5090565b90565b612af280620006dd6000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c80639dc29fac11610104578063bf7e214f116100a2578063dd62ed3e11610071578063dd62ed3e14610a59578063e978206414610ad1578063ee36665414610b1f578063f2d5d56b14610ba2576101da565b8063bf7e214f146108a0578063c47f0027146108ea578063d3d78b9b146109a5578063daea85c5146109fd576101da565b8063a9059cbb116100de578063a9059cbb14610774578063b753a98c146107da578063bb35783b14610828578063be9a655514610896576101da565b80639dc29fac14610633578063a0712d6814610681578063a515cb40146106af576101da565b806340c10f191161017c57806375f12b211161014b57806375f12b21146105005780637a9e5e4b146105225780638da5cb5b1461056657806395d89b41146105b0576101da565b806340c10f19146103de57806342966c681461042c57806370a082311461045a57806375620d6f146104b2576101da565b806313af4035116101b857806313af4035146102d257806318160ddd1461031657806323b872dd14610334578063313ce567146103ba576101da565b806306fdde03146101df57806307da68f514610262578063095ea7b31461026c575b600080fd5b6101e7610bf0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022757808201518184015260208101905061020c565b50505050905090810190601f1680156102545780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61026a610c8e565b005b6102b86004803603604081101561028257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d76565b604051808215151515815260200191505060405180910390f35b610314600480360360208110156102e857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610eeb565b005b61031e611034565b6040518082815260200191505060405180910390f35b6103a06004803603606081101561034a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061103a565b604051808215151515815260200191505060405180910390f35b6103c26115d2565b604051808260ff1660ff16815260200191505060405180910390f35b61042a600480360360408110156103f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115e5565b005b6104586004803603602081101561044257600080fd5b81019080803590602001909291905050506117f8565b005b61049c6004803603602081101561047057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611805565b6040518082815260200191505060405180910390f35b6104fe600480360360408110156104c857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061181d565b005b610508611877565b604051808215151515815260200191505060405180910390f35b6105646004803603602081101561053857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061188a565b005b61056e6119d1565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105b86119f7565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f85780820151818401526020810190506105dd565b50505050905090810190601f1680156106255780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61067f6004803603604081101561064957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a95565b005b6106ad6004803603602081101561069757600080fd5b8101908080359060200190929190505050612033565b005b610772600480360360408110156106c557600080fd5b81019080803590602001906401000000008111156106e257600080fd5b8201836020820111156106f457600080fd5b8035906020019184600183028401116401000000008311171561071657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190929190505050612040565b005b6107c06004803603604081101561078a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612126565b604051808215151515815260200191505060405180910390f35b610826600480360360408110156107f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061213b565b005b6108946004803603606081101561083e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061214b565b005b61089e61215c565b005b6108a8612245565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6109a36004803603602081101561090057600080fd5b810190808035906020019064010000000081111561091d57600080fd5b82018360208201111561092f57600080fd5b8035906020019184600183028401116401000000008311171561095157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061226a565b005b6109fb600480360360608110156109bb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050612324565b005b610a3f60048036036020811015610a1357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123af565b604051808215151515815260200191505060405180910390f35b610abb60048036036040811015610a6f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123e2565b6040518082815260200191505060405180910390f35b610b1d60048036036040811015610ae757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612407565b005b610b27612461565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b67578082015181840152602081019050610b4c565b50505050905090810190601f168015610b945780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610bee60048036036040811015610bb857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612503565b005b60078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c865780601f10610c5b57610100808354040283529160200191610c86565b820191906000526020600020905b815481529060010190602001808311610c6957829003601f168201915b505050505081565b610cbc336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b610d2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b60018060146101000a81548160ff0219169083151502179055507fbedf0f4abfe86d4ffad593d9607fe70e83ea706033d44d24b3b6283cf3fc4f6b60405160405180910390a1565b6000600160149054906101000a900460ff1615610dfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b610f19336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b610f8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b60025481565b6000600160149054906101000a900460ff16156110bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561119757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b156113955781600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561128e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c000081525060200191505060405180910390fd5b611314600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361276c565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561144a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b611493600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361276c565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061151f600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836127ef565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600660009054906101000a900460ff1681565b611613336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b611685576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615611708576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b611751600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826127ef565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117a0600254826127ef565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885826040518082815260200191505060405180910390a25050565b6118023382611a95565b50565b60036020528060005260406000206000915090505481565b7389a7ef2f08b1c018d5cc88836249b84dd539290573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461186957600080fd5b6118738282612872565b5050565b600160149054906101000a900460ff1681565b6118b8336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b61192a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60058054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a8d5780601f10611a6257610100808354040283529160200191611a8d565b820191906000526020600020905b815481529060010190602001808311611a7057829003601f168201915b505050505081565b611ac3336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b611b35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b600160149054906101000a900460ff1615611bb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f64732d73746f702d69732d73746f70706564000000000000000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611c9057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414155b15611e8e5780600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611d87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f64732d746f6b656e2d696e73756666696369656e742d617070726f76616c000081525060200191505060405180910390fd5b611e0d600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b611f8c600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fdb6002548261276c565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b61203d33826115e5565b50565b61204a3382612872565b7f7835232045347ac086653cbd9c0e6303f23502bb796f671a56755142063df2b2338383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156120e65780820151818401526020810190506120cb565b50505050905090810190601f1680156121135780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a15050565b600061213333848461103a565b905092915050565b61214633838361103a565b505050565b61215683838361103a565b50505050565b61218a336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b6121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b6000600160146101000a81548160ff0219169083151502179055507f1b55ba3aa851a46be3b365aee5b5c140edd620d578922f3e8466d2cbd96f954b60405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612298336000357fffffffff0000000000000000000000000000000000000000000000000000000016612513565b61230a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d617574682d756e617574686f72697a656400000000000000000000000081525060200191505060405180910390fd5b8060079080519060200190612320929190612a17565b5050565b6123373361233284846127ef565b612872565b7f937492d2511a2fbc9b51ea08825f1e252247d339dfd50904ebf4f4411f1d8136838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a1505050565b60006123db827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d76565b9050919050565b6004602052816000526040600020602052806000526040600020600091509150505481565b7389a7ef2f08b1c018d5cc88836249b84dd539290573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461245357600080fd5b61245d82826115e5565b5050565b606060088054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156124f95780601f106124ce576101008083540402835291602001916124f9565b820191906000526020600020905b8154815290600101906020018083116124dc57829003601f168201915b5050505050905090565b61250e82338361103a565b505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125525760019050612766565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125b15760019050612766565b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156126105760009050612766565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b70096138430856040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001935050505060206040518083038186803b15801561272857600080fd5b505afa15801561273c573d6000803e3d6000fd5b505050506040513d602081101561275257600080fd5b810190808051906020019092919050505090505b92915050565b60008282840391508111156127e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f64732d6d6174682d7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b600082828401915081101561286c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f64732d6d6174682d6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f64732d746f6b656e2d696e73756666696369656e742d62616c616e636500000081525060200191505060405180910390fd5b612970600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548261276c565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129bf6002548261276c565b6002819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a25050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612a5857805160ff1916838001178555612a86565b82800160010185558215612a86579182015b82811115612a85578251825591602001919060010190612a6a565b5b509050612a939190612a97565b5090565b612ab991905b80821115612ab5576000816000905550600101612a9d565b5090565b9056fea26469706673582212207d1371c93de00a190d16292f8a6a4b87b05d0e439fb42a4f18abd31faadc684664736f6c634300060b0033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000855534420436f696e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045553444300000000000000000000000000000000000000000000000000000000

Deployed ByteCode Sourcemap

12031:222:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6832:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9708:83;;;:::i;:::-;;7512:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1352:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6408:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7848:621;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6703:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8968:195;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8887:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6484:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11265:157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6336:65;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1488:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1212:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6632:64;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9171:529;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8806:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11778:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7715:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8477:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8691:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9799:86;;;:::i;:::-;;1175:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9895:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11478:220;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7402:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6558:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11107:150;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11008:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8584:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6832:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9708:83::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9757:4:::1;9747:7:::0;::::1;:14;;;;;;;;;;;;;;;;;;9777:6;;;;;;;;;;9708:83::o:0;7512:195::-;7578:4;7344:7;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7624:3:::1;7595:9;:21;7605:10;7595:21;;;;;;;;;;;;;;;:26;7617:3;7595:26;;;;;;;;;;;;;;;:32;;;;7666:3;7645:30;;7654:10;7645:30;;;7671:3;7645:30;;;;;;;;;;;;;;;;;;7695:4;7688:11;;7512:195:::0;;;;:::o;1352:128::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1432:6:::1;1424:5;;:14;;;;;;;;;;;;;;;;;;1466:5;;;;;;;;;;;1454:18;;;;;;;;;;;;1352:128:::0;:::o;6408:69::-;;;;:::o;7848:621::-;7947:4;7344:7;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7980:10:::1;7973:17;;:3;:17;;;;:59;;;;;8029:2;7994:9;:14;8004:3;7994:14;;;;;;;;;;;;;;;:26;8009:10;7994:26;;;;;;;;;;;;;;;;:38;;7973:59;7969:248;;;8087:3;8057:9;:14;8067:3;8057:14;;;;;;;;;;;;;;;:26;8072:10;8057:26;;;;;;;;;;;;;;;;:33;;8049:76;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8169:36;8173:9;:14;8183:3;8173:14;;;;;;;;;;;;;;;:26;8188:10;8173:26;;;;;;;;;;;;;;;;8201:3;8169;:36::i;:::-;8140:9;:14;8150:3;8140:14;;;;;;;;;;;;;;;:26;8155:10;8140:26;;;;;;;;;;;;;;;:65;;;;7969:248;8255:3;8237:9;:14;8247:3;8237:14;;;;;;;;;;;;;;;;:21;;8229:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;8320:24;8324:9;:14;8334:3;8324:14;;;;;;;;;;;;;;;;8340:3;8320;:24::i;:::-;8303:9;:14;8313:3;8303:14;;;;;;;;;;;;;;;:41;;;;8372:24;8376:9;:14;8386:3;8376:14;;;;;;;;;;;;;;;;8392:3;8372;:24::i;:::-;8355:9;:14;8365:3;8355:14;;;;;;;;;;;;;;;:41;;;;8428:3;8414:23;;8423:3;8414:23;;;8433:3;8414:23;;;;;;;;;;;;;;;;;;8457:4;8450:11;;7848:621:::0;;;;;:::o;6703:71::-;;;;;;;;;;;;;:::o;8968:195::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:7:::1;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;9055:24:::2;9059:9;:14;9069:3;9059:14;;;;;;;;;;;;;;;;9075:3;9055;:24::i;:::-;9038:9;:14;9048:3;9038:14;;;;;;;;;;;;;;;:41;;;;9104:21;9108:11;;9121:3;9104;:21::i;:::-;9090:11;:35;;;;9146:3;9141:14;;;9151:3;9141:14;;;;;;;;;;;;;;;;;;8968:195:::0;;:::o;8887:73::-;8931:21;8936:10;8948:3;8931:4;:21::i;:::-;8887:73;:::o;6484:67::-;;;;;;;;;;;;;;;;;:::o;11265:157::-;10187:42;11349:28;;:10;:28;;;11341:37;;;;;;11389:25;11401:4;11407:6;11389:11;:25::i;:::-;11265:157;;:::o;6336:65::-;;;;;;;;;;;;;:::o;1488:165::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1584:10:::1;1572:9;::::0;:22:::1;;;;;;;;;;;;;;;;;;1634:9;::::0;::::1;;;;;;;;;1610:35;;;;;;;;;;;;1488:165:::0;:::o;1212:26::-;;;;;;;;;;;;;:::o;6632:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9171:529::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7344:7:::1;;;;;;;;;;;7343:8;7335:39;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;9252:10:::2;9245:17;;:3;:17;;;;:59;;;;;9301:2;9266:9;:14;9276:3;9266:14;;;;;;;;;;;;;;;:26;9281:10;9266:26;;;;;;;;;;;;;;;;:38;;9245:59;9241:248;;;9359:3;9329:9;:14;9339:3;9329:14;;;;;;;;;;;;;;;:26;9344:10;9329:26;;;;;;;;;;;;;;;;:33;;9321:76;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9441:36;9445:9;:14;9455:3;9445:14;;;;;;;;;;;;;;;:26;9460:10;9445:26;;;;;;;;;;;;;;;;9473:3;9441;:36::i;:::-;9412:9;:14;9422:3;9412:14;;;;;;;;;;;;;;;:26;9427:10;9412:26;;;;;;;;;;;;;;;:65;;;;9241:248;9527:3;9509:9;:14;9519:3;9509:14;;;;;;;;;;;;;;;;:21;;9501:63;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;9592:24;9596:9;:14;9606:3;9596:14;;;;;;;;;;;;;;;;9612:3;9592;:24::i;:::-;9575:9;:14;9585:3;9575:14;;;;;;;;;;;;;;;:41;;;;9641:21;9645:11;;9658:3;9641;:21::i;:::-;9627:11;:35;;;;9683:3;9678:14;;;9688:3;9678:14;;;;;;;;;;;;;;;;;;9171:529:::0;;:::o;8806:73::-;8850:21;8855:10;8867:3;8850:4;:21::i;:::-;8806:73;:::o;11778:180::-;11855:31;11867:10;11879:6;11855:11;:31::i;:::-;11902:48;11920:10;11932:9;11943:6;11902:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11778:180;;:::o;7715:125::-;7774:4;7798:34;7811:10;7823:3;7828;7798:12;:34::i;:::-;7791:41;;7715:125;;;;:::o;8477:99::-;8534:34;8547:10;8559:3;8564;8534:12;:34::i;:::-;;8477:99;;:::o;8691:105::-;8761:27;8774:3;8779;8784;8761:12;:27::i;:::-;;8691:105;;;:::o;9799:86::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9849:5:::1;9839:7;;:15;;;;;;;;;;;;;;;;;;9870:7;;;;;;;;;;9799:86::o:0;1175:30::-;;;;;;;;;;;;;:::o;9895:81::-;1694:33;1707:10;1719:7;;;;1694:12;:33::i;:::-;1686:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9963:5:::1;9956:4;:12;;;;;;;;;;;;:::i;:::-;;9895:81:::0;:::o;11478:220::-;11573:48;11585:10;11597:23;11601:6;11609:10;11597:3;:23::i;:::-;11573:11;:48::i;:::-;11637:53;11660:9;11671:6;11679:10;11637:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11478:220;;;:::o;7402:102::-;7450:4;7474:22;7482:3;7492:2;7474:7;:22::i;:::-;7467:29;;7402:102;;;:::o;6558:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11107:150::-;10187:42;11191:28;;:10;:28;;;11183:37;;;;;;11231:18;11236:4;11242:6;11231:4;:18::i;:::-;11107:150;;:::o;11008:91::-;11053:13;11086:5;11079:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11008:91;:::o;8584:99::-;8641:34;8654:3;8659:10;8671:3;8641:12;:34::i;:::-;;8584:99;;:::o;1780:389::-;1850:4;1886;1871:20;;:3;:20;;;1867:295;;;1915:4;1908:11;;;;1867:295;1948:5;;;;;;;;;;;1941:12;;:3;:12;;;1937:225;;;1977:4;1970:11;;;;1937:225;2036:1;2003:36;;:9;;;;;;;;;;;:36;;;1999:163;;;2063:5;2056:12;;;;1999:163;2108:9;;;;;;;;;;;:17;;;2126:3;2139:4;2146:3;2108:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2101:49;;1780:389;;;;;:::o;3124:129::-;3176:6;3218:1;3212;3208;:5;3204:9;;;3203:16;;3195:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:129;;;;:::o;2990:128::-;3042:6;3084:1;3078;3074;:5;3070:9;;;3069:16;;3061:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2990:128;;;;:::o;10667:333::-;10812:6;10793:9;:15;10803:4;10793:15;;;;;;;;;;;;;;;;:25;;10785:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10881:28;10885:9;:15;10895:4;10885:15;;;;;;;;;;;;;;;;10902:6;10881:3;:28::i;:::-;10863:9;:15;10873:4;10863:15;;;;;;;;;;;;;;;:46;;;;10934:24;10938:11;;10951:6;10934:3;:24::i;:::-;10920:11;:38;;;;10979:4;10974:18;;;10985:6;10974:18;;;;;;;;;;;;;;;;;;10667:333;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

ipfs://7d1371c93de00a190d16292f8a6a4b87b05d0e439fb42a4f18abd31faadc6846
Loading