{
	"targets": {
		"SafeDecimalMath": {
			"name": "SafeDecimalMath",
			"address": "0xc012ccb8Cd6019abDb9E03B2717fe53f1f9dD2C7",
			"source": "SafeDecimalMath",
			"link": "https://kovan.etherscan.io/address/0xc012ccb8Cd6019abDb9E03B2717fe53f1f9dD2C7",
			"timestamp": "2021-12-27T06:44:12.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x7eb945413f7e3cbf372095761fb3e9424640d5dd2aca8ea32066f278c22eff76",
			"network": "kovan"
		},
		"Math": {
			"name": "Math",
			"address": "0xF5F10D95198bdB7C8D74080548692C20C6Fe2fCd",
			"source": "Math",
			"link": "https://kovan.etherscan.io/address/0xF5F10D95198bdB7C8D74080548692C20C6Fe2fCd",
			"timestamp": "2021-12-27T06:44:20.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x534829a28765e3654fe276e3d407d7171a6dd0571612d5757fb2c0913c267e37",
			"network": "kovan"
		},
		"AddressResolver": {
			"name": "AddressResolver",
			"address": "0x5Da549DdDD23b96d3ab70Df34B8872b6afFa406a",
			"source": "AddressResolver",
			"link": "https://kovan.etherscan.io/address/0x5Da549DdDD23b96d3ab70Df34B8872b6afFa406a",
			"timestamp": "2021-12-27T06:44:24.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x0f445dd5451c64d402a95dbfe18b621e986ab93f9eab6d613d224b40111d1a0a",
			"network": "kovan"
		},
		"ReadProxyAddressResolver": {
			"name": "ReadProxyAddressResolver",
			"address": "0x0ff83eF852603C9cf376b4D727F02FEbD17268E4",
			"source": "ReadProxy",
			"link": "https://kovan.etherscan.io/address/0x0ff83eF852603C9cf376b4D727F02FEbD17268E4",
			"timestamp": "2021-12-27T06:44:33.484Z",
			"txn": "",
			"network": "kovan"
		},
		"FlexibleStorage": {
			"name": "FlexibleStorage",
			"address": "0x684e19287130807a0ECe9499d033b70e3a1B0af1",
			"source": "FlexibleStorage",
			"link": "https://kovan.etherscan.io/address/0x684e19287130807a0ECe9499d033b70e3a1B0af1",
			"timestamp": "2021-12-27T06:44:55.693Z",
			"txn": "",
			"network": "kovan"
		},
		"SystemSettings": {
			"name": "SystemSettings",
			"address": "0x69E1Ec3cA4079C6C8f5318A94BfC97688B72f8A3",
			"source": "SystemSettings",
			"link": "https://kovan.etherscan.io/address/0x69E1Ec3cA4079C6C8f5318A94BfC97688B72f8A3",
			"timestamp": "2022-07-19T07:43:10.196Z",
			"txn": "",
			"network": "kovan"
		},
		"SystemStatus": {
			"name": "SystemStatus",
			"address": "0xc3Fd9C1418b9e75b7A070d85E9D3b9E0A0E44275",
			"source": "SystemStatus",
			"link": "https://kovan.etherscan.io/address/0xc3Fd9C1418b9e75b7A070d85E9D3b9E0A0E44275",
			"timestamp": "2021-12-27T06:45:22.073Z",
			"txn": "",
			"network": "kovan"
		},
		"ExchangeRates": {
			"name": "ExchangeRates",
			"address": "0x2b5D5Adc8BF9Ee38A2Dc5217EF5d3650cE74532f",
			"source": "ExchangeRates",
			"link": "https://kovan.etherscan.io/address/0x2b5D5Adc8BF9Ee38A2Dc5217EF5d3650cE74532f",
			"timestamp": "2021-12-27T06:45:40.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x17219675acaafef18e99b668e9150160398fb155aefab220969587090db79514",
			"network": "kovan"
		},
		"RewardEscrow": {
			"name": "RewardEscrow",
			"address": "0xD92f9788060dCFBe0B3ba4eE43c6998a12557A7d",
			"source": "RewardEscrow",
			"link": "https://kovan.etherscan.io/address/0xD92f9788060dCFBe0B3ba4eE43c6998a12557A7d",
			"timestamp": "2022-01-11T03:00:48.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x072f7c9cbc1cd5bd23b7039309fe3dae9aaf8f899424ed4c7bce0ed4f6effc8e",
			"network": "kovan"
		},
		"RewardEscrowV2": {
			"name": "RewardEscrowV2",
			"address": "0x01D7306d79bF78851C977c88eC278aE9C3315557",
			"source": "RewardEscrowV2",
			"link": "https://kovan.etherscan.io/address/0x01D7306d79bF78851C977c88eC278aE9C3315557",
			"timestamp": "2022-01-11T02:32:40.000Z",
			"txn": "https://kovan.etherscan.io/tx/0xca05b02472c80ec1f70dd475600f7db2aae6438fbe161e821ec8f838eea97bc9",
			"network": "kovan"
		},
		"PeriFinanceEscrow": {
			"name": "PeriFinanceEscrow",
			"address": "0xEe8CAf3705BBEce11037bdC7007E8954A8510B97",
			"source": "PeriFinanceEscrow",
			"link": "https://kovan.etherscan.io/address/0xEe8CAf3705BBEce11037bdC7007E8954A8510B97",
			"timestamp": "2022-01-11T02:32:48.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x99b63a22bd02fd0797ec804599958ea841e0e73928624a261734d41f645ffe6b",
			"network": "kovan"
		},
		"PeriFinanceState": {
			"name": "PeriFinanceState",
			"address": "0xeA04164b043549e4B3b14ADA5426eE477e6614E7",
			"source": "PeriFinanceState",
			"link": "https://kovan.etherscan.io/address/0xeA04164b043549e4B3b14ADA5426eE477e6614E7",
			"timestamp": "2022-01-11T02:32:56.000Z",
			"txn": "https://kovan.etherscan.io/tx/0xeb26ec8803d18651d21cca68fc017c2d40c7b60aa7f5b09d152b0cce70765b66",
			"network": "kovan"
		},
		"ProxyFeePool": {
			"name": "ProxyFeePool",
			"address": "0x252651Bf9A89917daE9e4aA8ae3B40A4963377cD",
			"source": "Proxy",
			"link": "https://kovan.etherscan.io/address/0x252651Bf9A89917daE9e4aA8ae3B40A4963377cD",
			"timestamp": "2021-12-27T06:47:06.090Z",
			"txn": "",
			"network": "kovan"
		},
		"DelegateApprovalsEternalStorage": {
			"name": "DelegateApprovalsEternalStorage",
			"address": "0x37533BFe7230A3460E2D49382Dc0731609a0f8C5",
			"source": "EternalStorage",
			"link": "https://kovan.etherscan.io/address/0x37533BFe7230A3460E2D49382Dc0731609a0f8C5",
			"timestamp": "2021-12-27T06:47:14.403Z",
			"txn": "",
			"network": "kovan"
		},
		"DelegateApprovals": {
			"name": "DelegateApprovals",
			"address": "0xdF0CFFAEf7821d081D5B711F05CA4710683A9893",
			"source": "DelegateApprovals",
			"link": "https://kovan.etherscan.io/address/0xdF0CFFAEf7821d081D5B711F05CA4710683A9893",
			"timestamp": "2021-12-27T06:47:21.490Z",
			"txn": "",
			"network": "kovan"
		},
		"Liquidations": {
			"name": "Liquidations",
			"address": "0x75d789B68dC141AA56B663B05e517a9B615fb7A6",
			"source": "Liquidations",
			"link": "https://kovan.etherscan.io/address/0x75d789B68dC141AA56B663B05e517a9B615fb7A6",
			"timestamp": "2021-12-27T06:47:44.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x4a18bae2455950e5c8c99a87b2a5c2796c0145a0f4793dc8007deccd83cbefda",
			"network": "kovan"
		},
		"EternalStorageLiquidations": {
			"name": "EternalStorageLiquidations",
			"address": "0xd12b939537AE6444CE638952eA032E8b5da79BB6",
			"source": "EternalStorage",
			"link": "https://kovan.etherscan.io/address/0xd12b939537AE6444CE638952eA032E8b5da79BB6",
			"timestamp": "2021-12-27T06:47:53.298Z",
			"txn": "",
			"network": "kovan"
		},
		"FeePoolEternalStorage": {
			"name": "FeePoolEternalStorage",
			"address": "0x2d03ab1fB8aEcbdB49730B5304bAe3f389CA8E46",
			"source": "FeePoolEternalStorage",
			"link": "https://kovan.etherscan.io/address/0x2d03ab1fB8aEcbdB49730B5304bAe3f389CA8E46",
			"timestamp": "2022-01-11T02:33:04.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x560f27cd07f99957e07335664f22ab766a85f2d8fc2d438dcaded8012a9b6d5d",
			"network": "kovan"
		},
		"FeePool": {
			"name": "FeePool",
			"address": "0x5eBc7258F7F784593F42623F1a0bFc4b8000224d",
			"source": "FeePool",
			"link": "https://kovan.etherscan.io/address/0x5eBc7258F7F784593F42623F1a0bFc4b8000224d",
			"timestamp": "2022-07-19T07:43:17.839Z",
			"txn": "",
			"network": "kovan"
		},
		"FeePoolState": {
			"name": "FeePoolState",
			"address": "0xA67dA2A5f1BbB125667aCF28B7Bc3C8D0108C026",
			"source": "FeePoolState",
			"link": "https://kovan.etherscan.io/address/0xA67dA2A5f1BbB125667aCF28B7Bc3C8D0108C026",
			"timestamp": "2022-01-11T02:33:20.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x85d0e5a930161c4b04ce5f80612b262a5aca3f937e5641fbcc7203a71017e245",
			"network": "kovan"
		},
		"RewardsDistribution": {
			"name": "RewardsDistribution",
			"address": "0x0B5033B52855A22Ccc53077863729BeE5af52714",
			"source": "RewardsDistribution",
			"link": "https://kovan.etherscan.io/address/0x0B5033B52855A22Ccc53077863729BeE5af52714",
			"timestamp": "2021-12-27T06:48:40.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x7a108d5f2a01464a551cb56111a1feab914809708f0c2f30b5c1c701a0d63db3",
			"network": "kovan"
		},
		"ProxyERC20": {
			"name": "ProxyERC20",
			"address": "0x04cC0510638036FC2B2dD9FC02b96aE37EAFD891",
			"source": "ProxyERC20",
			"link": "https://kovan.etherscan.io/address/0x04cC0510638036FC2B2dD9FC02b96aE37EAFD891",
			"timestamp": "2022-01-11T03:09:04.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x4906206a9a7184bbc08cfdb833c5019819bb5456a6bca704d5283513e8a742f6",
			"network": "kovan"
		},
		"TokenStatePeriFinance": {
			"name": "TokenStatePeriFinance",
			"address": "0x82719D12C10dfC382769a4F1CafD75104A95564F",
			"source": "TokenState",
			"link": "https://kovan.etherscan.io/address/0x82719D12C10dfC382769a4F1CafD75104A95564F",
			"timestamp": "2022-01-11T03:01:00.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x56d93a70fd39fcb7e59b8f9f06bcd9dd128bbc8cc1846d89c50100293f8e4545",
			"network": "kovan"
		},
		"BlacklistManager": {
			"name": "BlacklistManager",
			"address": "0xCF01C8F9F2B57820CB7A2CD8071bCF21972729Ec",
			"source": "BlacklistManager",
			"link": "https://kovan.etherscan.io/address/0xCF01C8F9F2B57820CB7A2CD8071bCF21972729Ec",
			"timestamp": "2021-12-27T06:49:17.558Z",
			"txn": "",
			"network": "kovan"
		},
		"PeriFinance": {
			"name": "PeriFinance",
			"address": "0x83dFcFaa405266Ce93ba27196af09F468e7A0AfA",
			"source": "PeriFinanceToEthereum",
			"link": "https://kovan.etherscan.io/address/0x83dFcFaa405266Ce93ba27196af09F468e7A0AfA",
			"timestamp": "2022-07-18T09:05:08.691Z",
			"txn": "",
			"network": "kovan"
		},
		"BridgeState": {
			"name": "BridgeState",
			"address": "0xfc312521e2f01a7F7358F12EFe85820977Df8526",
			"source": "BridgeState",
			"link": "https://kovan.etherscan.io/address/0xfc312521e2f01a7F7358F12EFe85820977Df8526",
			"timestamp": "2022-04-12T10:27:37.584Z",
			"txn": "",
			"network": "kovan"
		},
		"DebtCache": {
			"name": "DebtCache",
			"address": "0xb0439E0f9782FDC789500FACA82Ad1Bd2477c2f4",
			"source": "DebtCache",
			"link": "https://kovan.etherscan.io/address/0xb0439E0f9782FDC789500FACA82Ad1Bd2477c2f4",
			"timestamp": "2022-01-11T05:58:56.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x5a506d5c67a32ac0c0a64c7d74f35898a070c9b26c146067deeda148df44cd6f",
			"network": "kovan"
		},
		"Exchanger": {
			"name": "Exchanger",
			"address": "0x28c8eD0A572834F4CCcab62bfef464c195341114",
			"source": "ExchangerWithVirtualPynth",
			"link": "https://kovan.etherscan.io/address/0x28c8eD0A572834F4CCcab62bfef464c195341114",
			"timestamp": "2021-12-27T06:56:32.000Z",
			"txn": "https://kovan.etherscan.io/tx/0xf2a5a5534246207936dc5965de8cf28f9f7805e2c0bb4546060ddc17cfd0a22a",
			"network": "kovan"
		},
		"ExchangeState": {
			"name": "ExchangeState",
			"address": "0x8bb8575275821c60812E9889Fe78be939595D4EF",
			"source": "ExchangeState",
			"link": "https://kovan.etherscan.io/address/0x8bb8575275821c60812E9889Fe78be939595D4EF",
			"timestamp": "2022-01-11T02:51:16.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x66dfb57fb859241062eb3b8e2c720c6213911c88b9c91573051afadee94c7648",
			"network": "kovan"
		},
		"Issuer": {
			"name": "Issuer",
			"address": "0xB63A84dA9aaFc9Bc14E0B12340dE46aC2987324E",
			"source": "Issuer",
			"link": "https://kovan.etherscan.io/address/0xB63A84dA9aaFc9Bc14E0B12340dE46aC2987324E",
			"timestamp": "2022-07-18T09:12:12.794Z",
			"txn": "",
			"network": "kovan"
		},
		"TradingRewards": {
			"name": "TradingRewards",
			"address": "0xBC0684d8228dfe3AC82bEe0EB3aBb873976c00f7",
			"source": "TradingRewards",
			"link": "https://kovan.etherscan.io/address/0xBC0684d8228dfe3AC82bEe0EB3aBb873976c00f7",
			"timestamp": "2021-12-27T06:57:12.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x5ce313ff31907076a7f40db146eaad32a5a9012041550e0016f1a58bfc0c115a",
			"network": "kovan"
		},
		"EscrowChecker": {
			"name": "EscrowChecker",
			"address": "0xa306CcCb9c24d00023dB787206ed45657Bf8DD3D",
			"source": "EscrowChecker",
			"link": "https://kovan.etherscan.io/address/0xa306CcCb9c24d00023dB787206ed45657Bf8DD3D",
			"timestamp": "2021-12-27T06:57:29.346Z",
			"txn": "",
			"network": "kovan"
		},
		"SupplySchedule": {
			"name": "SupplySchedule",
			"address": "0x59DA659F849a0C8B699dA967fE9053DB5b1e92D6",
			"source": "SupplySchedule",
			"link": "https://kovan.etherscan.io/address/0x59DA659F849a0C8B699dA967fE9053DB5b1e92D6",
			"timestamp": "2022-07-19T07:44:01.207Z",
			"txn": "",
			"network": "kovan"
		},
		"TokenStatepUSD": {
			"name": "TokenStatepUSD",
			"address": "0xf92025817BFC61C5f644cF310381a21DDC925396",
			"source": "TokenState",
			"link": "https://kovan.etherscan.io/address/0xf92025817BFC61C5f644cF310381a21DDC925396",
			"timestamp": "2022-01-11T02:52:34.320Z",
			"txn": "",
			"network": "kovan"
		},
		"ProxyERC20pUSD": {
			"name": "ProxyERC20pUSD",
			"address": "0xa4ea5357043E59A0D5F7F68cDAfd41f1810F58e5",
			"source": "ProxyERC20",
			"link": "https://kovan.etherscan.io/address/0xa4ea5357043E59A0D5F7F68cDAfd41f1810F58e5",
			"timestamp": "2022-01-11T03:09:55.125Z",
			"txn": "",
			"network": "kovan"
		},
		"PynthpUSD": {
			"name": "PynthpUSD",
			"address": "0x6CBa5F5d5d4e36CF99470E034Eb09338Dd4cAb81",
			"source": "MultiCollateralPynth",
			"link": "https://kovan.etherscan.io/address/0x6CBa5F5d5d4e36CF99470E034Eb09338Dd4cAb81",
			"timestamp": "2022-07-18T09:13:13.210Z",
			"txn": "",
			"network": "kovan"
		},
		"BridgeStatepUSD": {
			"name": "BridgeStatepUSD",
			"address": "0xb19D659eB98eA09443147ab26B793fA20cA4A037",
			"source": "BridgeState",
			"link": "https://kovan.etherscan.io/address/0xb19D659eB98eA09443147ab26B793fA20cA4A037",
			"timestamp": "2022-04-12T10:28:29.415Z",
			"txn": "",
			"network": "kovan"
		},
		"StakingState": {
			"name": "StakingState",
			"address": "0x9FE1e039f9BC689dE371b869149fF1b318A4e0E6",
			"source": "StakingState",
			"link": "https://kovan.etherscan.io/address/0x9FE1e039f9BC689dE371b869149fF1b318A4e0E6",
			"timestamp": "2022-01-11T02:54:00.000Z",
			"txn": "https://kovan.etherscan.io/tx/0xb9a99244e92520977eaa6ac50464437820ff8351a8dc00be4b1105186c647624",
			"network": "kovan"
		},
		"ExternalTokenStakeManager": {
			"name": "ExternalTokenStakeManager",
			"address": "0x21FF3C087316bde8768b9ef5bCbf8E08be98F266",
			"source": "ExternalTokenStakeManager",
			"link": "https://kovan.etherscan.io/address/0x21FF3C087316bde8768b9ef5bCbf8E08be98F266",
			"timestamp": "2021-12-27T07:00:00.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x2ddcbe51966c67470363ee1edd589af546d7183fe410f98244a91bfae974c081",
			"network": "kovan"
		},
		"CrossChainState": {
			"name": "CrossChainState",
			"address": "0xDcD739b4Cd4f4acCB00C0134b3ED93a047B2fEB9",
			"source": "CrossChainState",
			"link": "https://kovan.etherscan.io/address/0xDcD739b4Cd4f4acCB00C0134b3ED93a047B2fEB9",
			"timestamp": "2022-07-18T09:13:54.201Z",
			"txn": "",
			"network": "kovan"
		},
		"CrossChainManager": {
			"name": "CrossChainManager",
			"address": "0x8c7793bc27A9137233Aa3d695D374ba56429a58D",
			"source": "CrossChainManager",
			"link": "https://kovan.etherscan.io/address/0x8c7793bc27A9137233Aa3d695D374ba56429a58D",
			"timestamp": "2022-07-18T09:14:01.784Z",
			"txn": "",
			"network": "kovan"
		},
		"Depot": {
			"name": "Depot",
			"address": "0xF02541b32997B0b483446C86De6955bafdB8Aff5",
			"source": "Depot",
			"link": "https://kovan.etherscan.io/address/0xF02541b32997B0b483446C86De6955bafdB8Aff5",
			"timestamp": "2021-12-27T07:01:08.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x5d6aaf023b90dd9c379fa2cd02fdad4c7784930eb280c73732aaabebc4b5b38a",
			"network": "kovan"
		},
		"EtherCollateral": {
			"name": "EtherCollateral",
			"address": "0xb478652EAd47d02B7Bc0B259C5d98c3b7c03042A",
			"source": "EtherCollateral",
			"link": "https://kovan.etherscan.io/address/0xb478652EAd47d02B7Bc0B259C5d98c3b7c03042A",
			"timestamp": "2021-12-27T07:01:20.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x4afa80d90d239316eff0ccd3807ec15806a91acab499ffb6e699061fd2483b0d",
			"network": "kovan"
		},
		"EtherCollateralpUSD": {
			"name": "EtherCollateralpUSD",
			"address": "0xD57BB79a33cb8f3b416340d9C2A3a962E300629e",
			"source": "EtherCollateralpUSD",
			"link": "https://kovan.etherscan.io/address/0xD57BB79a33cb8f3b416340d9C2A3a962E300629e",
			"timestamp": "2021-12-27T07:01:28.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x18ac50f9a13b54418bda73f25da336c1409e9fabbef74a9c1b4d1341f1eb29a5",
			"network": "kovan"
		},
		"PeriFinanceBridgeToOptimism": {
			"name": "PeriFinanceBridgeToOptimism",
			"address": "0x86a028ba9f9F26776314f165CD6bfe9e0101E511",
			"source": "PeriFinanceBridgeToOptimism",
			"link": "https://kovan.etherscan.io/address/0x86a028ba9f9F26776314f165CD6bfe9e0101E511",
			"timestamp": "2021-12-27T07:01:36.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x8a9cc10d62b082b23c8abe238ef17f9f0ee2d99a800e278c2916b3034f2d9e0a",
			"network": "kovan"
		},
		"PynthUtil": {
			"name": "PynthUtil",
			"address": "0xF93C2c99B1c711CBf0D509e590b7C09DB21Dde2C",
			"source": "PynthUtil",
			"link": "https://kovan.etherscan.io/address/0xF93C2c99B1c711CBf0D509e590b7C09DB21Dde2C",
			"timestamp": "2021-12-27T07:01:42.929Z",
			"txn": "",
			"network": "kovan"
		},
		"DappMaintenance": {
			"name": "DappMaintenance",
			"address": "0x1ed23410c25F93021Ce0cD62716770584d06136c",
			"source": "DappMaintenance",
			"link": "https://kovan.etherscan.io/address/0x1ed23410c25F93021Ce0cD62716770584d06136c",
			"timestamp": "2021-12-27T07:01:51.446Z",
			"txn": "",
			"network": "kovan"
		},
		"BinaryOptionMarketData": {
			"name": "BinaryOptionMarketData",
			"address": "0xd51d910513eD241C69A51BFaa4C4571b9921BA6a",
			"source": "BinaryOptionMarketData",
			"link": "https://kovan.etherscan.io/address/0xd51d910513eD241C69A51BFaa4C4571b9921BA6a",
			"timestamp": "2021-12-27T07:02:00.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x8d13bbfeebb3af209c743d1e7c120d038a407efbacf07e8d40c511c96de6abee",
			"network": "kovan"
		},
		"CollateralManagerState": {
			"name": "CollateralManagerState",
			"address": "0x2E41988538B19340Ae50EaBA5510EE82bfffef74",
			"source": "CollateralManagerState",
			"link": "https://kovan.etherscan.io/address/0x2E41988538B19340Ae50EaBA5510EE82bfffef74",
			"timestamp": "2021-12-27T07:02:39.684Z",
			"txn": "",
			"network": "kovan"
		},
		"CollateralManager": {
			"name": "CollateralManager",
			"address": "0x8934EDF07B9dd4B235850f72F5b16040fA7e037d",
			"source": "CollateralManager",
			"link": "https://kovan.etherscan.io/address/0x8934EDF07B9dd4B235850f72F5b16040fA7e037d",
			"timestamp": "2021-12-27T07:02:48.510Z",
			"txn": "",
			"network": "kovan"
		},
		"CollateralStateEth": {
			"name": "CollateralStateEth",
			"address": "0x03B762AdCe3D2837499980C09DBC894F9DBCd60e",
			"source": "CollateralState",
			"link": "https://kovan.etherscan.io/address/0x03B762AdCe3D2837499980C09DBC894F9DBCd60e",
			"timestamp": "2021-12-27T07:03:04.173Z",
			"txn": "",
			"network": "kovan"
		},
		"CollateralEth": {
			"name": "CollateralEth",
			"address": "0x4b0526e850C717082618727B61BB94dE04C50320",
			"source": "CollateralEth",
			"link": "https://kovan.etherscan.io/address/0x4b0526e850C717082618727B61BB94dE04C50320",
			"timestamp": "2021-12-27T07:03:12.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x31ed7076e203a60f1d94d426b4ebd0ebb9197c07183bac925032f40c8a94e8ec",
			"network": "kovan"
		},
		"CollateralStateErc20": {
			"name": "CollateralStateErc20",
			"address": "0xc1d83E0BefbFf3664EB705a9f51f4d91F6CCa27D",
			"source": "CollateralState",
			"link": "https://kovan.etherscan.io/address/0xc1d83E0BefbFf3664EB705a9f51f4d91F6CCa27D",
			"timestamp": "2021-12-27T07:03:27.964Z",
			"txn": "",
			"network": "kovan"
		},
		"CollateralErc20": {
			"name": "CollateralErc20",
			"address": "0xd3ab44913ffCFe0895db9273fc5Fb798306b0C52",
			"source": "CollateralErc20",
			"link": "https://kovan.etherscan.io/address/0xd3ab44913ffCFe0895db9273fc5Fb798306b0C52",
			"timestamp": "2021-12-27T07:03:36.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x3d7464b5d40ed78afe44ee71d050a697460479b7eed9c0a572c76484c336865f",
			"network": "kovan"
		},
		"CollateralStateShort": {
			"name": "CollateralStateShort",
			"address": "0x8CE0e2e9bf850cBbe945d2a50C44db931B7eDA70",
			"source": "CollateralState",
			"link": "https://kovan.etherscan.io/address/0x8CE0e2e9bf850cBbe945d2a50C44db931B7eDA70",
			"timestamp": "2021-12-27T07:04:00.671Z",
			"txn": "",
			"network": "kovan"
		},
		"CollateralShort": {
			"name": "CollateralShort",
			"address": "0x218e15646634Af911f09C8A33E14F58B420C06b7",
			"source": "CollateralShort",
			"link": "https://kovan.etherscan.io/address/0x218e15646634Af911f09C8A33E14F58B420C06b7",
			"timestamp": "2021-12-27T07:04:08.000Z",
			"txn": "https://kovan.etherscan.io/tx/0x30fba740a91a3401f75651d44b338aeb1f07e05e58bf00d75355802ba4c9b4cc",
			"network": "kovan"
		}
	},
	"sources": {
		"SafeDecimalMath": {
			"bytecode": "61012d610026600b82828239805160001a60731461001957fe5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060655760003560e01c8063313ce56714606a578063864029e7146086578063907af6c014609e5780639d8e21771460a4578063d5e5e6e61460aa578063def4419d1460b0575b600080fd5b607060b6565b6040805160ff9092168252519081900360200190f35b608c60bb565b60408051918252519081900360200190f35b608c60cb565b608c60d7565b608c60e3565b607060f3565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b8156fea265627a7a72315820d7f3502142580fd75b2632f81cf1700dca68da475ee49c13fb0acd93fabaa19964736f6c63430005100032",
			"abi": [
				{
					"constant": true,
					"inputs": [],
					"name": "PRECISE_UNIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x864029e7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "UNIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9d8e2177"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x313ce567"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "highPrecisionDecimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdef4419d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "preciseUnit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function",
					"signature": "0xd5e5e6e6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "unit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function",
					"signature": "0x907af6c0"
				}
			],
			"source": {
				"keccak256": "0x817b946de41f6d3ebd548a04b488602bbfbe9a2f79465cde010eac639c28cef8",
				"urls": [
					"bzz-raw://47409944bb20c0cce9a3b5811ece0a7a472a4e70c74d5c40aa7ea3e9021e7e00",
					"dweb:/ipfs/QmasQFw6WA222YBuJaSeQxQw2NWc6NjjyWkQLLVS76MXQN"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SafeDecimalMath.sol": "SafeDecimalMath"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SafeDecimalMath.sol": {
						"keccak256": "0x817b946de41f6d3ebd548a04b488602bbfbe9a2f79465cde010eac639c28cef8",
						"urls": [
							"bzz-raw://47409944bb20c0cce9a3b5811ece0a7a472a4e70c74d5c40aa7ea3e9021e7e00",
							"dweb:/ipfs/QmasQFw6WA222YBuJaSeQxQw2NWc6NjjyWkQLLVS76MXQN"
						]
					}
				},
				"version": 1
			}
		},
		"Math": {
			"bytecode": "60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7231582080d0314b0dddeeb713138cf789d446ae9b95282a699d537f158729b2079038f864736f6c63430005100032",
			"abi": [],
			"source": {
				"keccak256": "0x03fc30b8273ac217fad4914b0132798ae4b8842045bfc8d868022301f3324370",
				"urls": [
					"bzz-raw://05b5ebc577303f2ac52dfc8417030dcf6cec4ac1f18c7f4fdd3ff548106ec09d",
					"dweb:/ipfs/QmXDKvbBqvuSsCGp87Hmp9WzbFtRfVecm9Aez9GNWtG3AD"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Math.sol": "Math"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Math.sol": {
						"keccak256": "0x03fc30b8273ac217fad4914b0132798ae4b8842045bfc8d868022301f3324370",
						"urls": [
							"bzz-raw://05b5ebc577303f2ac52dfc8417030dcf6cec4ac1f18c7f4fdd3ff548106ec09d",
							"dweb:/ipfs/QmXDKvbBqvuSsCGp87Hmp9WzbFtRfVecm9Aez9GNWtG3AD"
						]
					}
				},
				"version": 1
			}
		},
		"AddressResolver": {
			"bytecode": "608060405234801561001057600080fd5b50604051610ab9380380610ab98339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506109bf806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806379ba50971161007157806379ba5097146101a257806382b4c11c146101aa5780638da5cb5b146101c75780639f42102f146101cf578063ab0b8f77146102a1578063dacb2d011461035f576100a9565b80631627540c146100ae578063187f7935146100d657806321f8a7211461010f57806353a47bb71461012c578063766f781514610134575b600080fd5b6100d4600480360360208110156100c457600080fd5b50356001600160a01b03166103d4565b005b6100f3600480360360208110156100ec57600080fd5b5035610430565b604080516001600160a01b039092168252519081900360200190f35b6100f36004803603602081101561012557600080fd5b503561044b565b6100f3610466565b6100d46004803603602081101561014a57600080fd5b810190602081018135600160201b81111561016457600080fd5b82018360208201111561017657600080fd5b803590602001918460208302840111600160201b8311171561019757600080fd5b509092509050610475565b6100d46104ff565b6100f3600480360360208110156101c057600080fd5b50356105bb565b6100f36106c3565b61028d600480360360408110156101e557600080fd5b810190602081018135600160201b8111156101ff57600080fd5b82018360208201111561021157600080fd5b803590602001918460208302840111600160201b8311171561023257600080fd5b919390929091602081019035600160201b81111561024f57600080fd5b82018360208201111561026157600080fd5b803590602001918460208302840111600160201b8311171561028257600080fd5b5090925090506106d2565b604080519115158252519081900360200190f35b6100d4600480360360408110156102b757600080fd5b810190602081018135600160201b8111156102d157600080fd5b8201836020820111156102e357600080fd5b803590602001918460208302840111600160201b8311171561030457600080fd5b919390929091602081019035600160201b81111561032157600080fd5b82018360208201111561033357600080fd5b803590602001918460208302840111600160201b8311171561035457600080fd5b50909250905061075b565b6100f36004803603604081101561037557600080fd5b81359190810190604081016020820135600160201b81111561039657600080fd5b8201836020820111156103a857600080fd5b803590602001918460018302840111600160201b831117156103c957600080fd5b509092509050610867565b6103dc6108db565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002602052600090815260409020546001600160a01b031681565b6000908152600260205260409020546001600160a01b031690565b6001546001600160a01b031681565b60005b818110156104fa5782828281811061048c57fe5b905060200201356001600160a01b03166001600160a01b031663741853606040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156104d657600080fd5b505af11580156104ea573d6000803e3d6000fd5b5050600190920191506104789050565b505050565b6001546001600160a01b031633146105485760405162461bcd60e51b81526004018080602001828103825260358152602001806109276035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6524b9b9bab2b960d11b600090815260026020527f0651498423135bdecab48e2d306f14d560a72d49179b71410fd95b5d25ce349a546001600160a01b03168061064c576040805162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e64204973737565722061646472657373000000000000604482015290519081900360640190fd5b806001600160a01b03166357ad4663846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561069057600080fd5b505afa1580156106a4573d6000803e3d6000fd5b505050506040513d60208110156106ba57600080fd5b50519392505050565b6000546001600160a01b031681565b6000805b8481101561074d578383828181106106ea57fe5b905060200201356001600160a01b03166001600160a01b03166002600088888581811061071357fe5b60209081029290920135835250810191909152604001600020546001600160a01b031614610745576000915050610753565b6001016106d6565b50600190505b949350505050565b6107636108db565b8281146107b7576040805162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d617463680000000000000000604482015290519081900360640190fd5b60005b838110156108605760008585838181106107d057fe5b90506020020135905060008484848181106107e757fe5b600085815260026020908152604091829020805493820295909501356001600160a01b03166001600160a01b03199093168317909455805186815293840182905280519194507fefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa9193829003019150a150506001016107ba565b5050505050565b6000838152600260205260408120546001600160a01b03168383826108d05760405162461bcd60e51b815260206004820190815260248201839052908190604401848480828437600083820152604051601f909101601f19169092018290039550909350505050fd5b509095945050505050565b6000546001600160a01b031633146109245760405162461bcd60e51b815260040180806020018281038252602f81526020018061095c602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820e95cf016e837a4c75ff92cafca81d4be0a790b54282d1366cd9604568946096864736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "AddressImported",
					"type": "event",
					"signature": "0xefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa91"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "names",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "destinations",
							"type": "address[]"
						}
					],
					"name": "areAddressesImported",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9f42102f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						}
					],
					"name": "getAddress",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x21f8a721"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "key",
							"type": "bytes32"
						}
					],
					"name": "getPynth",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x82b4c11c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "names",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "destinations",
							"type": "address[]"
						}
					],
					"name": "importAddresses",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xab0b8f77"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract MixinResolver[]",
							"name": "destinations",
							"type": "address[]"
						}
					],
					"name": "rebuildCaches",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x766f7815"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "repository",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x187f7935"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"internalType": "string",
							"name": "reason",
							"type": "string"
						}
					],
					"name": "requireAndGetAddress",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdacb2d01"
				}
			],
			"source": {
				"keccak256": "0xda661b9ca1b5976bc0316d7b6e6b09f795da4f63c6647d63f6c5f2504a1675f7",
				"urls": [
					"bzz-raw://edd78c6378c07614796d711f8ec8438d56c6a68333264e01b72bacff5cf17796",
					"dweb:/ipfs/QmQp6ghR2J7fDF2WV32iEytqXbSLJ3uxRdS5NLdQYpJsQ9"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"AddressResolver.sol": "AddressResolver"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"AddressResolver.sol": {
						"keccak256": "0xda661b9ca1b5976bc0316d7b6e6b09f795da4f63c6647d63f6c5f2504a1675f7",
						"urls": [
							"bzz-raw://edd78c6378c07614796d711f8ec8438d56c6a68333264e01b72bacff5cf17796",
							"dweb:/ipfs/QmQp6ghR2J7fDF2WV32iEytqXbSLJ3uxRdS5NLdQYpJsQ9"
						]
					}
				},
				"version": 1
			}
		},
		"ReadProxy": {
			"bytecode": "608060405234801561001057600080fd5b506040516104953803806104958339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505061039b806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631627540c1461008657806353a47bb7146100ae578063776d1a01146100d257806379ba5097146100f85780638da5cb5b14610100578063d4b8399214610108575b36600080376000803660006002545afa3d6000803e80610081573d6000fd5b3d6000f35b6100ac6004803603602081101561009c57600080fd5b50356001600160a01b0316610110565b005b6100b661016c565b604080516001600160a01b039092168252519081900360200190f35b6100ac600480360360208110156100e857600080fd5b50356001600160a01b031661017b565b6100ac6101dd565b6100b6610299565b6100b66102a8565b6101186102b7565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6001546001600160a01b031681565b6101836102b7565b600280546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e916020908290030190a150565b6001546001600160a01b031633146102265760405162461bcd60e51b81526004018080602001828103825260358152602001806103036035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6000546001600160a01b031633146103005760405162461bcd60e51b815260040180806020018281038252602f815260200180610338602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820b1e5b1832d3f36f88f81ecab36152bb00a8c3640bdadcd5ee45f6b31be53f27364736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTarget",
							"type": "address"
						}
					],
					"name": "TargetUpdated",
					"type": "event",
					"signature": "0x814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e"
				},
				{
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "setTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x776d1a01"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "target",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd4b83992"
				}
			],
			"source": {
				"keccak256": "0x1542835257ac239aaf1549f1faa3a3bcf939b304d18a5283b0b64242007323c5",
				"urls": [
					"bzz-raw://accaa9ce7d50b314cd0a44750ef5d9aaa4a69b0b62a7647642b3568f1d670389",
					"dweb:/ipfs/QmQiHghhtV99uPV9WzaMNhj9RzXf3BZ6hWLTYJCs1WNtJC"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ReadProxy.sol": "ReadProxy"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ReadProxy.sol": {
						"keccak256": "0x1542835257ac239aaf1549f1faa3a3bcf939b304d18a5283b0b64242007323c5",
						"urls": [
							"bzz-raw://accaa9ce7d50b314cd0a44750ef5d9aaa4a69b0b62a7647642b3568f1d670389",
							"dweb:/ipfs/QmQiHghhtV99uPV9WzaMNhj9RzXf3BZ6hWLTYJCs1WNtJC"
						]
					}
				},
				"version": 1
			}
		},
		"FlexibleStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516127833803806127838339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561271e806100656000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c80638ca0adaf116100f9578063c89eb56211610097578063d994502d11610071578063d994502d146109c2578063f7833c5d146109f9578063f9c39d2f14610a1c578063fdfc4c1314610ae1576101c3565b8063c89eb562146108b7578063d658d2e91461097c578063d71a9b0114610999576101c3565b8063ab15985d116100d3578063ab15985d146106e5578063b67fa7ed146107aa578063c13a2b0c1461081f578063c4f610ed14610894576101c3565b80638ca0adaf1461062a5780638f6b95a31461069f5780639ee5955a146106c2576101c3565b806335ab2708116101665780634dca0978116101405780634dca0978146105345780635bda91e2146105665780636a59e495146105915780638408a5e5146105b5576101c3565b806335ab2708146104215780633bd6ad89146104445780633f28a6fc14610509576101c3565b80631625e3ef116101a25780631625e3ef1461037d57806318f662ed146103a05780631d5b277f146103c357806323257c2b146103ec576101c3565b80624b62d6146101c857806303cdc017146101f3578063142a391e146102b8575b600080fd5b6101f1600480360360608110156101de57600080fd5b5080359060208101359060400135610b04565b005b6101f16004803603606081101561020957600080fd5b81359190810190604081016020820135600160201b81111561022a57600080fd5b82018360208201111561023c57600080fd5b803590602001918460208302840111600160201b8311171561025d57600080fd5b919390929091602081019035600160201b81111561027a57600080fd5b82018360208201111561028c57600080fd5b803590602001918460208302840111600160201b831117156102ad57600080fd5b509092509050610bf4565b61032d600480360360408110156102ce57600080fd5b81359190810190604081016020820135600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b509092509050610d60565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610369578181015183820152602001610351565b505050509050019250505060405180910390f35b6101f16004803603604081101561039357600080fd5b5080359060200135610e07565b6101f1600480360360408110156103b657600080fd5b5080359060200135610f7b565b6101f1600480360360608110156103d957600080fd5b50803590602081013590604001356110e4565b61040f6004803603604081101561040257600080fd5b50803590602001356111cd565b60408051918252519081900360200190f35b6101f16004803603604081101561043757600080fd5b50803590602001356111f4565b6101f16004803603606081101561045a57600080fd5b81359190810190604081016020820135600160201b81111561047b57600080fd5b82018360208201111561048d57600080fd5b803590602001918460208302840111600160201b831117156104ae57600080fd5b919390929091602081019035600160201b8111156104cb57600080fd5b8201836020820111156104dd57600080fd5b803590602001918460208302840111600160201b831117156104fe57600080fd5b50909250905061135d565b6101f16004803603606081101561051f57600080fd5b508035906020810135906040013515156114c8565b6101f16004803603606081101561054a57600080fd5b50803590602081013590604001356001600160a01b03166115b1565b6101f16004803603606081101561057c57600080fd5b5080359060208101359060400135151561169a565b61059961184c565b604080516001600160a01b039092168252519081900360200190f35b61032d600480360360408110156105cb57600080fd5b81359190810190604081016020820135600160201b8111156105ec57600080fd5b8201836020820111156105fe57600080fd5b803590602001918460208302840111600160201b8311171561061f57600080fd5b50909250905061185b565b61032d6004803603604081101561064057600080fd5b81359190810190604081016020820135600160201b81111561066157600080fd5b82018360208201111561067357600080fd5b803590602001918460208302840111600160201b8311171561069457600080fd5b5090925090506118f7565b6101f1600480360360408110156106b557600080fd5b50803590602001356119b3565b610599600480360360408110156106d857600080fd5b5080359060200135611b32565b6101f1600480360360608110156106fb57600080fd5b81359190810190604081016020820135600160201b81111561071c57600080fd5b82018360208201111561072e57600080fd5b803590602001918460208302840111600160201b8311171561074f57600080fd5b919390929091602081019035600160201b81111561076c57600080fd5b82018360208201111561077e57600080fd5b803590602001918460208302840111600160201b8311171561079f57600080fd5b509092509050611b62565b61032d600480360360408110156107c057600080fd5b81359190810190604081016020820135600160201b8111156107e157600080fd5b8201836020820111156107f357600080fd5b803590602001918460208302840111600160201b8311171561081457600080fd5b509092509050611cc4565b61032d6004803603604081101561083557600080fd5b81359190810190604081016020820135600160201b81111561085657600080fd5b82018360208201111561086857600080fd5b803590602001918460208302840111600160201b8311171561088957600080fd5b509092509050611d60565b61040f600480360360408110156108aa57600080fd5b5080359060200135611e0e565b6101f1600480360360608110156108cd57600080fd5b81359190810190604081016020820135600160201b8111156108ee57600080fd5b82018360208201111561090057600080fd5b803590602001918460208302840111600160201b8311171561092157600080fd5b919390929091602081019035600160201b81111561093e57600080fd5b82018360208201111561095057600080fd5b803590602001918460208302840111600160201b8311171561097157600080fd5b509092509050611e35565b61040f6004803603602081101561099257600080fd5b5035611f97565b6101f1600480360360608110156109af57600080fd5b5080359060208101359060400135611fa9565b6109e5600480360360408110156109d857600080fd5b5080359060200135612092565b604080519115158252519081900360200190f35b61040f60048036036040811015610a0f57600080fd5b50803590602001356120bc565b6101f160048036036060811015610a3257600080fd5b81359190810190604081016020820135600160201b811115610a5357600080fd5b820183602082011115610a6557600080fd5b803590602001918460208302840111600160201b83111715610a8657600080fd5b919390929091602081019035600160201b811115610aa357600080fd5b820183602082011115610ab557600080fd5b803590602001918460208302840111600160201b83111715610ad657600080fd5b5090925090506120e3565b6101f160048036036040811015610af757600080fd5b5080359060200135612247565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610b6d57600080fd5b505afa158015610b81573d6000803e3d6000fd5b505050506040513d6020811015610b9757600080fd5b505190506001600160a01b0381163314610be25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed8585856123b0565b5050505050565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610c5d57600080fd5b505afa158015610c71573d6000803e3d6000fd5b505050506040513d6020811015610c8757600080fd5b505190506001600160a01b0381163314610cd25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314610d14576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657610d4e88888884818110610d2f57fe5b90506020020135878785818110610d4257fe5b90506020020135612421565b600101610d17565b5050505050505050565b60608083839050604051908082528060200260200182016040528015610d90578160200160208202803883390190505b506000868152600160209081526040808320548352600390915281209192505b84811015610dfc57816000878784818110610dc757fe5b90506020020135815260200190815260200160002054838281518110610de957fe5b6020908102919091010152600101610db0565b509095945050505050565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610e7057600080fd5b505afa158015610e84573d6000803e3d6000fd5b505050506040513d6020811015610e9a57600080fd5b505190506001600160a01b0381163314610ee55760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526005825280832086845282529182902054825187815291820186905260ff168015158284015291517f321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c9181900360600190a15050506000918252600160209081526040808420548452600582528084209284529190529020805460ff19169055565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015610fe457600080fd5b505afa158015610ff8573d6000803e3d6000fd5b505050506040513d602081101561100e57600080fd5b505190506001600160a01b03811633146110595760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526002825280832086845282529182902054825187815291820186905281830181905291517f8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d46629181900360600190a1505050600091825260016020908152604080842054845260028252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561114d57600080fd5b505afa158015611161573d6000803e3d6000fd5b505050506040513d602081101561117757600080fd5b505190506001600160a01b03811633146111c25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612421565b60009182526001602090815260408084205484526002825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561125d57600080fd5b505afa158015611271573d6000803e3d6000fd5b505050506040513d602081101561128757600080fd5b505190506001600160a01b03811633146112d25760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526006825280832086845282529182902054825187815291820186905281830181905291517f1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd939181900360600190a1505050600091825260016020908152604080842054845260068252808420928452919052812055565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156113c657600080fd5b505afa1580156113da573d6000803e3d6000fd5b505050506040513d60208110156113f057600080fd5b505190506001600160a01b038116331461143b5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b84831461147d576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d56576114c08888888481811061149857fe5b905060200201358787858181106114ab57fe5b905060200201356001600160a01b0316612492565b600101611480565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561153157600080fd5b505afa158015611545573d6000803e3d6000fd5b505050506040513d602081101561155b57600080fd5b505190506001600160a01b03811633146115a65760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561251b565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561161a57600080fd5b505afa15801561162e573d6000803e3d6000fd5b505050506040513d602081101561164457600080fd5b505190506001600160a01b038116331461168f5760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed858585612492565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561170357600080fd5b505afa158015611717573d6000803e3d6000fd5b505050506040513d602081101561172d57600080fd5b505190506001600160a01b03811633146117785760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000858152600160205260409020546117d8576040805162461bcd60e51b815260206004820152601d60248201527f43616e6e6f74206d69677261746520656d70747920636f6e7472616374000000604482015290519081900360640190fd5b600085815260016020526040808220548683529120558215611804576000858152600160205260408120555b60408051868152602081018690528415158183015290517fa3db9c909daa141b61562c797dae4dc4b3d7751686068c98111db87b2a8c374c9181900360600190a15050505050565b6000546001600160a01b031681565b6060808383905060405190808252806020026020018201604052801561188b578160200160208202803883390190505b506000868152600160209081526040808320548352600690915281209192505b84811015610dfc578160008787848181106118c257fe5b905060200201358152602001908152602001600020548382815181106118e457fe5b60209081029190910101526001016118ab565b60608083839050604051908082528060200260200182016040528015611927578160200160208202803883390190505b506000868152600160209081526040808320548352600490915281209192505b84811015610dfc5781600087878481811061195e57fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b031683828151811061199357fe5b6001600160a01b0390921660209283029190910190910152600101611947565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611a1c57600080fd5b505afa158015611a30573d6000803e3d6000fd5b505050506040513d6020811015611a4657600080fd5b505190506001600160a01b0381163314611a915760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b6000848152600160209081526040808320548352600482528083208684528252918290205482518781529182018690526001600160a01b031681830181905291517fec1140277b8f20820dc76b92216489238a207d5f22c964099303820fbd2bdf669181900360600190a1505050600091825260016020908152604080842054845260048252808420928452919052902080546001600160a01b0319169055565b6000918252600160209081526040808420548452600482528084209284529190529020546001600160a01b031690565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611bcb57600080fd5b505afa158015611bdf573d6000803e3d6000fd5b505050506040513d6020811015611bf557600080fd5b505190506001600160a01b0381163314611c405760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611c82576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611cbc88888884818110611c9d57fe5b90506020020135878785818110611cb057fe5b9050602002013561259a565b600101611c85565b60608083839050604051908082528060200260200182016040528015611cf4578160200160208202803883390190505b506000868152600160209081526040808320548352600290915281209192505b84811015610dfc57816000878784818110611d2b57fe5b90506020020135815260200190815260200160002054838281518110611d4d57fe5b6020908102919091010152600101611d14565b60608083839050604051908082528060200260200182016040528015611d90578160200160208202803883390190505b506000868152600160209081526040808320548352600590915281209192505b84811015610dfc57816000878784818110611dc757fe5b90506020020135815260200190815260200160002060009054906101000a900460ff16838281518110611df657fe5b91151560209283029190910190910152600101611db0565b60009182526001602090815260408084205484526003825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b158015611e9e57600080fd5b505afa158015611eb2573d6000803e3d6000fd5b505050506040513d6020811015611ec857600080fd5b505190506001600160a01b0381163314611f135760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314611f55576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d5657611f8f88888884818110611f7057fe5b90506020020135878785818110611f8357fe5b905060200201356123b0565b600101611f58565b60016020526000908152604090205481565b600080546040805163dacb2d0160e01b815260048101878152602482019283526028604483018190528895946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561201257600080fd5b505afa158015612026573d6000803e3d6000fd5b505050506040513d602081101561203c57600080fd5b505190506001600160a01b03811633146120875760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b610bed85858561259a565b60009182526001602090815260408084205484526005825280842092845291905290205460ff1690565b60009182526001602090815260408084205484526006825280842092845291905290205490565b600080546040805163dacb2d0160e01b815260048101898152602482019283526028604483018190528a95946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b15801561214c57600080fd5b505afa158015612160573d6000803e3d6000fd5b505050506040513d602081101561217657600080fd5b505190506001600160a01b03811633146121c15760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b848314612203576040805162461bcd60e51b815260206004820152601860248201526000805160206126ca833981519152604482015290519081900360640190fd5b60005b85811015610d565761223f8888888481811061221e57fe5b9050602002013587878581811061223157fe5b90506020020135151561251b565b600101612206565b600080546040805163dacb2d0160e01b815260048101868152602482019283526028604483018190528795946001600160a01b03169363dacb2d019387939260649091019061267482396040019250505060206040518083038186803b1580156122b057600080fd5b505afa1580156122c4573d6000803e3d6000fd5b505050506040513d60208110156122da57600080fd5b505190506001600160a01b03811633146123255760405162461bcd60e51b815260040180806020018281038252602e81526020018061269c602e913960400191505060405180910390fd5b60008481526001602090815260408083205483526003825280832086845282529182902054825187815291820186905281830181905291517f78962c711b5655608c554689ba42e4890d9e5d3f590b99842612ad39cd7ae0ae9181900360600190a1505050600091825260016020908152604080842054845260038252808420928452919052812055565b80600660006123be8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f961abb018d8a303304c9f1ff1f306c7493a8b68b381bbe4e9a3abf9588a952809181900360600190a1505050565b806002600061242f8661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f60738523f766167cfd2310c61593dc795bc9d77de9276ed7e0c514df55e0a2c99181900360600190a1505050565b80600460006124a08661260b565b815260208082019290925260409081016000908120868252835281902080546001600160a01b0319166001600160a01b0394851617905580518681529182018590529183168183015290517f524fb430ecbfd4606a947f9ae445dbf7c9703944cf928789b86f3a8aad639365916060908290030190a1505050565b80600560006125298661260b565b8152602080820192909252604090810160009081208682528352819020805460ff19169315159390931790925581518581529081018490528215158183015290517f9c94ad4cfff55907724cb65340f342d3897dd884e6cd3c2d3777087191d5eb7b916060908290030190a1505050565b80600360006125a88661260b565b815260208082019290925260409081016000908120868252835281902092909255815185815290810184905280820183905290517f0d8877f604dfe262a8ac3904781814f022156c9341af779608a2ae0beef1906c9181900360600190a1505050565b6000818152600160205260408120548061266d5750604080513360601b60208083019190915260348201859052436054808401919091528351808403909101815260749092018352815191810191909120600085815260019092529190208190555b9291505056fe43616e6e6f742066696e6420636f6e747261637420696e2041646472657373205265736f6c76657243616e206f6e6c7920626520696e766f6b65642062792074686520636f6e6669677572656420636f6e7472616374496e707574206c656e67746873206d757374206d617463680000000000000000a265627a7a72315820a6e34e21d97c353ac1afc9bdbbfdfae39a6b40c3cf1b83140cdb036dc2c0674e64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "fromContractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toContractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "removeAccessFromPreviousContract",
							"type": "bool"
						}
					],
					"name": "KeyMigrated",
					"type": "event",
					"signature": "0xa3db9c909daa141b61562c797dae4dc4b3d7751686068c98111db87b2a8c374c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "ValueDeletedAddress",
					"type": "event",
					"signature": "0xec1140277b8f20820dc76b92216489238a207d5f22c964099303820fbd2bdf66"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "ValueDeletedBool",
					"type": "event",
					"signature": "0x321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "ValueDeletedBytes32",
					"type": "event",
					"signature": "0x1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd93"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "ValueDeletedInt",
					"type": "event",
					"signature": "0x78962c711b5655608c554689ba42e4890d9e5d3f590b99842612ad39cd7ae0ae"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "ValueDeletedUInt",
					"type": "event",
					"signature": "0x8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d4662"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "ValueSetAddress",
					"type": "event",
					"signature": "0x524fb430ecbfd4606a947f9ae445dbf7c9703944cf928789b86f3a8aad639365"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "ValueSetBool",
					"type": "event",
					"signature": "0x9c94ad4cfff55907724cb65340f342d3897dd884e6cd3c2d3777087191d5eb7b"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "ValueSetBytes32",
					"type": "event",
					"signature": "0x961abb018d8a303304c9f1ff1f306c7493a8b68b381bbe4e9a3abf9588a95280"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "ValueSetInt",
					"type": "event",
					"signature": "0x0d8877f604dfe262a8ac3904781814f022156c9341af779608a2ae0beef1906c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "ValueSetUInt",
					"type": "event",
					"signature": "0x60738523f766167cfd2310c61593dc795bc9d77de9276ed7e0c514df55e0a2c9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8f6b95a3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBoolValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1625e3ef"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x35ab2708"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xfdfc4c13"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x18f662ed"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getAddressValue",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9ee5955a"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getAddressValues",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8ca0adaf"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBoolValue",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd994502d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getBoolValues",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "",
							"type": "bool[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc13a2b0c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytes32Value",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf7833c5d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getBytes32Values",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8408a5e5"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getIntValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc4f610ed"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getIntValues",
					"outputs": [
						{
							"internalType": "int256[]",
							"name": "",
							"type": "int256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x142a391e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getUIntValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x23257c2b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						}
					],
					"name": "getUIntValues",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb67fa7ed"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "hashes",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd658d2e9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "fromContractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "toContractName",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "removeAccessFromPreviousContract",
							"type": "bool"
						}
					],
					"name": "migrateContractKey",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5bda91e2"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverProxy",
					"outputs": [
						{
							"internalType": "contract IAddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6a59e495"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "setAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4dca0978"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "values",
							"type": "address[]"
						}
					],
					"name": "setAddressValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3bd6ad89"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "setBoolValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3f28a6fc"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "bool[]",
							"name": "values",
							"type": "bool[]"
						}
					],
					"name": "setBoolValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf9c39d2f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "setBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x004b62d6"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "values",
							"type": "bytes32[]"
						}
					],
					"name": "setBytes32Values",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc89eb562"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "setIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd71a9b01"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "int256[]",
							"name": "values",
							"type": "int256[]"
						}
					],
					"name": "setIntValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xab15985d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1d5b277f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "contractName",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32[]",
							"name": "records",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "values",
							"type": "uint256[]"
						}
					],
					"name": "setUIntValues",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x03cdc017"
				}
			],
			"source": {
				"keccak256": "0x80f3f43223f5bd3901d2671aba562e0c247125de61fa1d044512bacd31c2a6f5",
				"urls": [
					"bzz-raw://eeff8673e41e36abbe37714bd36dd55cab368d26b1b8f694a6bad735c8abf40a",
					"dweb:/ipfs/QmYYC3PZEa6yWo4fUxDGvxq6voLDtVGpMyr7wPU1Jbw6kY"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FlexibleStorage.sol": "FlexibleStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FlexibleStorage.sol": {
						"keccak256": "0x80f3f43223f5bd3901d2671aba562e0c247125de61fa1d044512bacd31c2a6f5",
						"urls": [
							"bzz-raw://eeff8673e41e36abbe37714bd36dd55cab368d26b1b8f694a6bad735c8abf40a",
							"dweb:/ipfs/QmYYC3PZEa6yWo4fUxDGvxq6voLDtVGpMyr7wPU1Jbw6kY"
						]
					}
				},
				"version": 1
			}
		},
		"SystemSettings": {
			"bytecode": "608060405234801561001057600080fd5b506040516133443803806133448339818101604052604081101561003357600080fd5b5080516020909101518080836001600160a01b03811661009a576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b031990921691909117905550505061321e806101266000396000f3fe608060405234801561001057600080fd5b506004361061038e5760003560e01c80637ce2cc7f116101de578063b2ea70541161010f578063d62ae399116100ad578063f1076b251161007c578063f1076b251461084d578063f16fe2db14610855578063f344da671461085d578063fb1b4c7e146108655761038e565b8063d62ae399146107fa578063dc8f4a1b14610802578063e0e6393d14610828578063e9422046146108305761038e565b8063c193f0d8116100e9578063c193f0d8146107c5578063c1d20ca2146107cd578063c58c9ae4146107ea578063c5cd1215146107f25761038e565b8063b2ea7054146105a1578063b410a034146107a0578063bf9247f1146107a85761038e565b8063962438031161017c578063a4ce5b7111610156578063a4ce5b7114610780578063add0989d14610788578063af5355d814610790578063af8bc660146107985761038e565b80639624380314610753578063967706e91461075b578063a0cf7451146107785761038e565b806389257117116101b857806389257117146106ce578063899ffef4146106d65780638da5cb5b1461072e578063946ce8cd146107365761038e565b80637ce2cc7f146105fc578063826098e81461060457806387c24d34146106c65761038e565b80632cce0e54116102c35780635e0117d611610261578063741853601161023057806374185360146105a957806379ba5097146105b157806379cb657a146105b95780637bf82305146105d65761038e565b80635e0117d61461054a5780636190dd7a14610567578063635a387214610584578063657c6dc7146105a15761038e565b80634641ab661161029d5780634641ab66146105135780634c36b8371461053257806353a47bb71461053a578063580a975c146105425761038e565b80632cce0e54146104d157806333c4e086146104ee578063372a395a1461050b5761038e565b80631775765f1161033057806323f5589a1161030a57806323f5589a14610488578063242df9e1146104905780632806a743146104985780632af64bd3146104b55761038e565b80631775765f1461045b5780631e6e21901461046357806322425fa4146104805761038e565b8063054be0b71161036c578063054be0b714610408578063085f95cd146104255780630ee4951b1461042d5780631627540c146104355761038e565b8063038e47fe1461039357806304c49f2c146103c557806304f3bcec146103e4575b600080fd5b6103b3600480360360208110156103a957600080fd5b503560ff1661086d565b60408051918252519081900360200190f35b6103e2600480360360208110156103db57600080fd5b5035610880565b005b6103ec610a06565b604080516001600160a01b039092168252519081900360200190f35b6103e26004803603602081101561041e57600080fd5b5035610a15565b6103b3610b2e565b6103b3610b3a565b6103e26004803603602081101561044b57600080fd5b50356001600160a01b0316610b4a565b6103b3610ba6565b6103e26004803603602081101561047957600080fd5b5035610bb0565b6103b3610c92565b6103b3610c9c565b6103b3610ca6565b6103e2600480360360208110156104ae57600080fd5b5035610cb0565b6104bd610dce565b604080519115158252519081900360200190f35b6103e2600480360360208110156104e757600080fd5b5035610ed8565b6103e26004803603602081101561050457600080fd5b503561108d565b6103b3611133565b6103e26004803603602081101561052957600080fd5b5035151561113d565b6103ec61121c565b6103ec611226565b6103b3611235565b6103e26004803603602081101561056057600080fd5b503561123c565b6103e26004803603602081101561057d57600080fd5b50356113c0565b6103e26004803603602081101561059a57600080fd5b503561149a565b6103b3611570565b6103e261157c565b6103e2611744565b6103e2600480360360208110156105cf57600080fd5b5035611800565b6103e2600480360360208110156105ec57600080fd5b50356001600160a01b03166118d4565b6103b3611a16565b6103e26004803603604081101561061a57600080fd5b81019060208101813564010000000081111561063557600080fd5b82018360208201111561064757600080fd5b8035906020019184602083028401116401000000008311171561066957600080fd5b91939092909160208101903564010000000081111561068757600080fd5b82018360208201111561069957600080fd5b803590602001918460208302840111640100000000831117156106bb57600080fd5b509092509050611a1d565b6103b3611c41565b6103b3611c4b565b6106de611c55565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561071a578181015183820152602001610702565b505050509050019250505060405180910390f35b6103ec611ca6565b6103e26004803603602081101561074c57600080fd5b5035611cb5565b6103b3611ecb565b6103b36004803603602081101561077157600080fd5b5035611ed5565b6103b3611ee0565b6103b3611eea565b6103b3611ef6565b6103b3611efc565b6103b3611f06565b6103b3611f0b565b6103e2600480360360208110156107be57600080fd5b5035611f15565b6104bd611f9d565b6103e2600480360360208110156107e357600080fd5b5035611fa7565b6103b36120c5565b6103b36120cc565b6103b36120d6565b6103e26004803603604081101561081857600080fd5b5060ff81351690602001356120dd565b6103b3612228565b6103e26004803603602081101561084657600080fd5b5035612232565b6103b361235f565b6103b3612366565b6103b3612372565b6103b3612379565b600061087882612385565b90505b919050565b610888612422565b620151808110156108e0576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203c204d494e5f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b624f1a00811115610938576040805162461bcd60e51b815260206004820152601f60248201527f76616c7565203e204d41585f4645455f504552494f445f4455524154494f4e00604482015290519081900360640190fd5b61094061246d565b6001600160a01b0316631d5b277f600080516020613147833981519152703332b2a832b934b7b2223ab930ba34b7b760791b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b1580156109b757600080fd5b505af11580156109cb573d6000803e3d6000fd5b50506040805184815290517f791bd58dd9719b5eb5ccdd6ec4d5c459b0ab8efcf59b723cf477693c0889eacd9350908190036020019150a150565b6002546001600160a01b031681565b610a1d612422565b670de0b6b3a7640000811115610a645760405162461bcd60e51b81526004018080602001828103825260338152602001806131676033913960400191505060405180910390fd5b610a6c61246d565b6001600160a01b0316631d5b277f6000805160206131478339815191526c69737375616e6365526174696f60981b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610adf57600080fd5b505af1158015610af3573d6000803e3d6000fd5b50506040805184815290517f63b22e09cc3a33e847c063e35f887bd4ea96bc8c0f93f1f8c311e4fa6d8854529350908190036020019150a150565b6703782dace9d9000081565b6000610b4461248a565b90505b90565b610b52612422565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6000610b44612530565b610bb8612422565b610bc061246d565b6001600160a01b0316631d5b277f6000805160206131478339815191527f7072696365446576696174696f6e5468726573686f6c64466163746f72000000846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610c4357600080fd5b505af1158015610c57573d6000803e3d6000fd5b50506040805184815290517f6e65c7d32a9129ebc4e4e6d755e2a9668753c046f4b128ac8aeb4f3e5446a1e59350908190036020019150a150565b6000610b446125a6565b6000610b4461261d565b6000610b44612695565b610cb8612422565b6703782dace9d90000811115610cff5760405162461bcd60e51b81526004018080602001828103825260218152602001806130696021913960400191505060405180910390fd5b610d0761246d565b6001600160a01b0316631d5b277f600080516020613147833981519152716c69717569646174696f6e50656e616c747960701b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015610d7f57600080fd5b505af1158015610d93573d6000803e3d6000fd5b50506040805184815290517fbfb22c07314f4682bba789860ceb851eb8cea2d867920332b2a42cf56be5b2e99350908190036020019150a150565b60006060610dda611c55565b905060005b8151811015610ecf576000828281518110610df657fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610e5e57600080fd5b505afa158015610e72573d6000803e3d6000fd5b505050506040513d6020811015610e8857600080fd5b50516001600160a01b0316141580610eb557506000818152600360205260409020546001600160a01b0316155b15610ec65760009350505050610b47565b50600101610ddf565b50600191505090565b610ee0612422565b6032811115610f2b576040805162461bcd60e51b81526020600482015260126024820152710a8d0e4cae6d0ded8c840e8dede40d0d2ced60731b604482015290519081900360640190fd5b6000610fbe6064610fb273__$097ed3f4c0ba5795cc943bc8e15177373c$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610f7957600080fd5b505af4158015610f8d573d6000803e3d6000fd5b505050506040513d6020811015610fa357600080fd5b5051859063ffffffff61270b16565b9063ffffffff61276d16565b9050610fc861246d565b6001600160a01b0316631d5b277f6000805160206131478339815191526e1d185c99d95d151a1c995cda1bdb19608a1b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561103d57600080fd5b505af1158015611051573d6000803e3d6000fd5b50506040805184815290517fb2b3a840c101d8e7f0cf8d80d3868976968714347038fe89b36c5031f94dab129350908190036020019150a15050565b611095612422565b61109d61246d565b6001600160a01b0316631d5b277f60008051602061314783398151915274189c9a5919d9551c985b9cd9995c91d85cd0dbdcdd605a1b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561111857600080fd5b505af115801561112c573d6000803e3d6000fd5b5050505050565b6000610b446127d7565b611145612422565b61114d61246d565b60408051630fca29bf60e21b81526000805160206131478339815191526004820152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6024820152831515604482015290516001600160a01b039290921691633f28a6fc9160648082019260009290919082900301818387803b1580156111cb57600080fd5b505af11580156111df573d6000803e3d6000fd5b505060408051841515815290517fe11c1893b6f97decd3ac13637137734a4b75d159e899e5a8abb48470ab0bc4fd9350908190036020019150a150565b6000610b4461285a565b6001546001600160a01b031681565b62093a8081565b611244612422565b62278d0081111561129c576040805162461bcd60e51b815260206004820152601960248201527f4d757374206265206c657373207468616e203330206461797300000000000000604482015290519081900360640190fd5b610e108110156112f3576040805162461bcd60e51b815260206004820152601a60248201527f4d7573742062652067726561746572207468616e203120646179000000000000604482015290519081900360640190fd5b6112fb61246d565b6001600160a01b0316631d5b277f6000805160206131478339815191526f6c69717569646174696f6e44656c617960801b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561137157600080fd5b505af1158015611385573d6000803e3d6000fd5b50506040805184815290517f9917e32433edcb65f8982c1b2c26c3469468308456f93cf34b98c1b0459c53989350908190036020019150a150565b6113c8612422565b6113d061246d565b6001600160a01b0316631d5b277f6000805160206131478339815191527464656274536e617073686f745374616c6554696d6560581b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561144b57600080fd5b505af115801561145f573d6000803e3d6000fd5b50506040805184815290517f9795be9f1478ed09e9e47e67318b8aa7a0c0213170403191099bf7dd435fb4d79350908190036020019150a150565b6114a2612422565b6114aa61246d565b6001600160a01b0316631d5b277f6000805160206131478339815191527077616974696e67506572696f645365637360781b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561152157600080fd5b505af1158015611535573d6000803e3d6000fd5b50506040805184815290517fc32c92cac11e29883e0fb2d9e38230cc510e3bda48abc270b780de60bb8465f89350908190036020019150a150565b670de0b6b3a764000081565b6060611586611c55565b905060005b81518110156117405760008282815181106115a257fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015611658578181015183820152602001611640565b50505050905090810190601f1680156116855780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156116a357600080fd5b505afa1580156116b7573d6000803e3d6000fd5b505050506040513d60208110156116cd57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a1505060010161158b565b5050565b6001546001600160a01b0316331461178d5760405162461bcd60e51b815260040180806020018281038252603581526020018061308a6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b611808612422565b61181061246d565b6001600160a01b0316631d5b277f6000805160206131478339815191526e1c985d1954dd185b1954195c9a5bd9608a1b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561188557600080fd5b505af1158015611899573d6000803e3d6000fd5b50506040805184815290517f16529d8c407b08938da67de7fa4319199baffce4f5d1971f812cc770b0237e669350908190036020019150a150565b6118dc612422565b6001600160a01b038116611937576040805162461bcd60e51b815260206004820152601b60248201527f56616c69642061646472657373206d75737420626520676976656e0000000000604482015290519081900360640190fd5b61193f61246d565b604080516309b9412f60e31b815260008051602061314783398151915260048201527561676772656761746f725761726e696e67466c61677360501b60248201526001600160a01b03848116604483015291519290911691634dca09789160648082019260009290919082900301818387803b1580156119be57600080fd5b505af11580156119d2573d6000803e3d6000fd5b5050604080516001600160a01b038516815290517f0f4cbdee769ea02d5757b91905563555cc648fe42fc3ef201e28d97d2bbde9659350908190036020019150a150565b622dc6c081565b611a25612422565b828114611a79576040805162461bcd60e51b815260206004820152601860248201527f4172726179206c656e6774687320646f6e74206d617463680000000000000000604482015290519081900360640190fd5b60005b8381101561112c5767016345785d8a0000838383818110611a9957fe5b905060200201351115611af3576040805162461bcd60e51b815260206004820152601e60248201527f4d41585f45584348414e47455f4645455f524154452065786365656465640000604482015290519081900360640190fd5b611afb61246d565b6001600160a01b0316631d5b277f6000805160206131478339815191526e65786368616e67654665655261746560881b888886818110611b3757fe5b90506020020135604051602001808381526020018281526020019250505060405160208183030381529060405280519060200120868686818110611b7757fe5b905060200201356040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611bc257600080fd5b505af1158015611bd6573d6000803e3d6000fd5b505050507fbbdab54f0da6d720d21f53e4d6f5bbe83e5a2f74c1354175140ea74f8e90c77e858583818110611c0757fe5b90506020020135848484818110611c1a57fe5b604080519485526020918202939093013590840152508051918290030190a1600101611a7c565b6000610b446128d6565b6000610b4461294e565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611c9757fe5b60200260200101818152505090565b6000546001600160a01b031681565b611cbd612422565b611d5c611d47611ccb61261d565b73__$097ed3f4c0ba5795cc943bc8e15177373c$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611d0f57600080fd5b505af4158015611d23573d6000803e3d6000fd5b505050506040513d6020811015611d3957600080fd5b50519063ffffffff6129c516565b670de0b6b3a76400009063ffffffff612a1f16565b811115611d9a5760405162461bcd60e51b81526004018080602001828103825260388152602001806130bf6038913960400191505060405180910390fd5b6000611dbc671bc16d674ec80000611db0612a3d565b9063ffffffff612ab016565b905080821015611dfd5760405162461bcd60e51b815260040180806020018281038252602881526020018061319a6028913960400191505060405180910390fd5b611e0561246d565b6001600160a01b0316631d5b277f6000805160206131478339815191526f6c69717569646174696f6e526174696f60801b856040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b158015611e7b57600080fd5b505af1158015611e8f573d6000803e3d6000fd5b50506040805185815290517f5568be83e5cf7405adf8fb39305e2cdf49c43336606d23c3e0d3fe54e205150a9350908190036020019150a15050565b6000610b44612ada565b600061087882612b55565b6000610b44612bf8565b671bc16d674ec8000081565b610e1081565b6000610b44612c6e565b603281565b6000610b44612a3d565b611f1d612422565b611f2561246d565b6001600160a01b0316631d5b277f60008051602061314783398151915271189c9a5919d950db185a5b51d85cd0dbdcdd60721b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561111857600080fd5b6000610b44612ce9565b611faf612422565b670b1a2bc2ec500000811115611ff65760405162461bcd60e51b81526004018080602001828103825260288152602001806131c26028913960400191505060405180910390fd5b611ffe61246d565b6001600160a01b0316631d5b277f6000805160206131478339815191527165787465726e616c546f6b656e51756f746160701b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561207657600080fd5b505af115801561208a573d6000803e3d6000fd5b50506040805184815290517fab6fde4159cbba0eaae887ab25d5589a9f86c8161284e67ea3a981a5b1584eec9350908190036020019150a150565b627a120081565b6000610b44612d64565b6201518081565b6120e5612422565b622dc6c081101580156120fb5750627a12008111155b61214c576040805162461bcd60e51b815260206004820152601d60248201527f4f7574206f662072616e67652078446f6d61696e206761734c696d6974000000604482015290519081900360640190fd5b61215461246d565b6001600160a01b0316631d5b277f60008051602061314783398151915261217a85612ddc565b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b1580156121bf57600080fd5b505af11580156121d3573d6000803e3d6000fd5b505050507fbf62a396f632016f0e0cffedb18ee9be41a161c79cee3b64736b0c97a924554a82826040518083600381111561220a57fe5b60ff1681526020018281526020019250505060405180910390a15050565b6000610b44612f0f565b61223a612422565b62093a80811115612292576040805162461bcd60e51b815260206004820181905260248201527f7374616b652074696d6520657863656564206d6178696d756d2031207765656b604482015290519081900360640190fd5b61229a61246d565b6001600160a01b0316631d5b277f6000805160206131478339815191526f6d696e696d756d5374616b6554696d6560801b846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801561231057600080fd5b505af1158015612324573d6000803e3d6000fd5b50506040805184815290517f2b0fa66d155c9598699cb6569577f27b95729bbf580268eed39db6bc4e8144779350908190036020019150a150565b62278d0081565b670b1a2bc2ec50000081565b624f1a0081565b67016345785d8a000081565b600061238f61246d565b6001600160a01b03166323257c2b6000805160206131478339815191526123b585612ddc565b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156123f057600080fd5b505afa158015612404573d6000803e3d6000fd5b505050506040513d602081101561241a57600080fd5b505192915050565b6000546001600160a01b0316331461246b5760405162461bcd60e51b815260040180806020018281038252602f8152602001806130f7602f913960400191505060405180910390fd5b565b6000610b446e466c657869626c6553746f7261676560881b612f84565b600061249461246d565b6001600160a01b03166323257c2b6000805160206131478339815191526e1c985d1954dd185b1954195c9a5bd9608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b505afa158015612513573d6000803e3d6000fd5b505050506040513d602081101561252957600080fd5b5051905090565b600061253a61246d565b6001600160a01b03166323257c2b6000805160206131478339815191526f6c69717569646174696f6e526174696f60801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b60006125b061246d565b6001600160a01b03166323257c2b600080516020613147833981519152703332b2a832b934b7b2223ab930ba34b7b760791b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b600061262761246d565b6001600160a01b03166323257c2b600080516020613147833981519152716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b600061269f61246d565b6001600160a01b03166323257c2b6000805160206131478339815191526f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b60008261271a57506000612767565b8282028284828161272757fe5b04146127645760405162461bcd60e51b81526004018080602001828103825260218152602001806131266021913960400191505060405180910390fd5b90505b92915050565b60008082116127c3576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816127ce57fe5b04949350505050565b60006127e161246d565b6001600160a01b03166323257c2b6000805160206131478339815191527f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b600061286461246d565b6001600160a01b0316639ee5955a6000805160206131478339815191527561676772656761746f725761726e696e67466c61677360501b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b60006128e061246d565b6001600160a01b03166323257c2b60008051602061314783398151915271189c9a5919d950db185a5b51d85cd0dbdcdd60721b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b600061295861246d565b6001600160a01b03166323257c2b6000805160206131478339815191527077616974696e67506572696f645365637360781b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b600082820183811015612764576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061276482610fb285670de0b6b3a764000063ffffffff61270b16565b6000612a4761246d565b6001600160a01b03166323257c2b6000805160206131478339815191526c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b6000670de0b6b3a7640000612acb848463ffffffff61270b16565b81612ad257fe5b049392505050565b6000612ae461246d565b6001600160a01b03166323257c2b60008051602061314783398151915274189c9a5919d9551c985b9cd9995c91d85cd0dbdcdd605a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b6000612b5f61246d565b6001600160a01b03166323257c2b6000805160206131478339815191526e65786368616e67654665655261746560881b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156123f057600080fd5b6000612c0261246d565b6001600160a01b03166323257c2b6000805160206131478339815191526f6c69717569646174696f6e44656c617960801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b6000612c7861246d565b6001600160a01b03166323257c2b6000805160206131478339815191527464656274536e617073686f745374616c6554696d6560581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b6000612cf361246d565b6001600160a01b031663d994502d600080516020613147833981519152741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b6000612d6e61246d565b6001600160a01b03166323257c2b6000805160206131478339815191527165787465726e616c546f6b656e51756f746160701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b600080826003811115612deb57fe5b1415612e1857507f63726f7373446f6d61696e4465706f7369744761734c696d697400000000000061087b565b6001826003811115612e2657fe5b1415612e5357507f63726f7373446f6d61696e457363726f774761734c696d69740000000000000061087b565b6002826003811115612e6157fe5b1415612e8e57507f63726f7373446f6d61696e5265776172644761734c696d69740000000000000061087b565b6003826003811115612e9c57fe5b1415612ec957507f63726f7373446f6d61696e5769746864726177616c4761734c696d697400000061087b565b6040805162461bcd60e51b8152602060048201526016602482015275556e6b6e6f776e20676173206c696d6974207479706560501b604482015290519081900360640190fd5b6000612f1961246d565b6001600160a01b03166323257c2b6000805160206131478339815191526e1d185c99d95d151a1c995cda1bdb19608a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156124ff57600080fd5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816130615760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561302657818101518382015260200161300e565b50505050905090810190601f1680156130535780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b509291505056fe70656e616c7479203e204d41585f4c49515549444154494f4e5f50454e414c5459596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869706c69717569646174696f6e526174696f203e204d41585f4c49515549444154494f4e5f524154494f202f202831202b2070656e616c7479294f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7753797374656d53657474696e67730000000000000000000000000000000000004e65772069737375616e636520726174696f2063616e6e6f7420657863656564204d41585f49535355414e43455f524154494f6c69717569646174696f6e526174696f203c204d494e5f4c49515549444154494f4e5f524154494f6e65772071756f74612065786365656473206d6178696d756d203130302070657263656e74616765a265627a7a723158202c75c17a8f557bebdb1bc848ae3b74b8438ed8aa1822d02eb54f60660fe6678364736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "flags",
							"type": "address"
						}
					],
					"name": "AggregatorWarningFlagsUpdated",
					"type": "event",
					"signature": "0x0f4cbdee769ea02d5757b91905563555cc648fe42fc3ef201e28d97d2bbde965"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "enum MixinSystemSettings.CrossDomainMessageGasLimits",
							"name": "gasLimitType",
							"type": "uint8"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newLimit",
							"type": "uint256"
						}
					],
					"name": "CrossDomainMessageGasLimitChanged",
					"type": "event",
					"signature": "0xbf62a396f632016f0e0cffedb18ee9be41a161c79cee3b64736b0c97a924554a"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "debtSnapshotStaleTime",
							"type": "uint256"
						}
					],
					"name": "DebtSnapshotStaleTimeUpdated",
					"type": "event",
					"signature": "0x9795be9f1478ed09e9e47e67318b8aa7a0c0213170403191099bf7dd435fb4d7"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "pynthKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newExchangeFeeRate",
							"type": "uint256"
						}
					],
					"name": "ExchangeFeeUpdated",
					"type": "event",
					"signature": "0xbbdab54f0da6d720d21f53e4d6f5bbe83e5a2f74c1354175140ea74f8e90c77e"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "quota",
							"type": "uint256"
						}
					],
					"name": "ExternalTokenQuotaUpdated",
					"type": "event",
					"signature": "0xab6fde4159cbba0eaae887ab25d5589a9f86c8161284e67ea3a981a5b1584eec"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newFeePeriodDuration",
							"type": "uint256"
						}
					],
					"name": "FeePeriodDurationUpdated",
					"type": "event",
					"signature": "0x791bd58dd9719b5eb5ccdd6ec4d5c459b0ab8efcf59b723cf477693c0889eacd"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRatio",
							"type": "uint256"
						}
					],
					"name": "IssuanceRatioUpdated",
					"type": "event",
					"signature": "0x63b22e09cc3a33e847c063e35f887bd4ea96bc8c0f93f1f8c311e4fa6d885452"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDelay",
							"type": "uint256"
						}
					],
					"name": "LiquidationDelayUpdated",
					"type": "event",
					"signature": "0x9917e32433edcb65f8982c1b2c26c3469468308456f93cf34b98c1b0459c5398"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newPenalty",
							"type": "uint256"
						}
					],
					"name": "LiquidationPenaltyUpdated",
					"type": "event",
					"signature": "0xbfb22c07314f4682bba789860ceb851eb8cea2d867920332b2a42cf56be5b2e9"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRatio",
							"type": "uint256"
						}
					],
					"name": "LiquidationRatioUpdated",
					"type": "event",
					"signature": "0x5568be83e5cf7405adf8fb39305e2cdf49c43336606d23c3e0d3fe54e205150a"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minimumStakeTime",
							"type": "uint256"
						}
					],
					"name": "MinimumStakeTimeUpdated",
					"type": "event",
					"signature": "0x2b0fa66d155c9598699cb6569577f27b95729bbf580268eed39db6bc4e814477"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "threshold",
							"type": "uint256"
						}
					],
					"name": "PriceDeviationThresholdUpdated",
					"type": "event",
					"signature": "0x6e65c7d32a9129ebc4e4e6d755e2a9668753c046f4b128ac8aeb4f3e5446a1e5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rateStalePeriod",
							"type": "uint256"
						}
					],
					"name": "RateStalePeriodUpdated",
					"type": "event",
					"signature": "0x16529d8c407b08938da67de7fa4319199baffce4f5d1971f812cc770b0237e66"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newTargetThreshold",
							"type": "uint256"
						}
					],
					"name": "TargetThresholdUpdated",
					"type": "event",
					"signature": "0xb2b3a840c101d8e7f0cf8d80d3868976968714347038fe89b36c5031f94dab12"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "enabled",
							"type": "bool"
						}
					],
					"name": "TradingRewardsEnabled",
					"type": "event",
					"signature": "0xe11c1893b6f97decd3ac13637137734a4b75d159e899e5a8abb48470ab0bc4fd"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "waitingPeriodSecs",
							"type": "uint256"
						}
					],
					"name": "WaitingPeriodSecsUpdated",
					"type": "event",
					"signature": "0xc32c92cac11e29883e0fb2d9e38230cc510e3bda48abc270b780de60bb8465f8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_CROSS_DOMAIN_GAS_LIMIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc58c9ae4"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_EXCHANGE_FEE_RATE",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfb1b4c7e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_EXTERNAL_TOKEN_QUOTA",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf16fe2db"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_FEE_PERIOD_DURATION",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf344da67"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_ISSUANCE_RATIO",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x657c6dc7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_LIQUIDATION_DELAY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf1076b25"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_LIQUIDATION_PENALTY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x085f95cd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_LIQUIDATION_RATIO",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb2ea7054"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_MINIMUM_STAKE_TIME",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x580a975c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_TARGET_THRESHOLD",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaf8bc660"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_CROSS_DOMAIN_GAS_LIMIT",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7ce2cc7f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_FEE_PERIOD_DURATION",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd62ae399"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MIN_LIQUIDATION_DELAY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xadd0989d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "RATIO_FROM_TARGET_BUFFER",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa4ce5b71"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "aggregatorWarningFlags",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4c36b837"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "bridgeClaimGasCost",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x87c24d34"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "bridgeTransferGasCost",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x96243803"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "enum MixinSystemSettings.CrossDomainMessageGasLimits",
							"name": "gasLimitType",
							"type": "uint8"
						}
					],
					"name": "crossDomainMessageGasLimit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x038e47fe"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtSnapshotStaleTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaf5355d8"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchangeFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x967706e9"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "externalTokenQuota",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc5cd1215"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePeriodDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x22425fa4"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb410a034"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa0cf7451"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x23f5589a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1775765f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minimumStakeTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x242df9e1"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "priceDeviationThresholdFactor",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x372a395a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rateStalePeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0ee4951b"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_flags",
							"type": "address"
						}
					],
					"name": "setAggregatorWarningFlags",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7bf82305"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_gasCost",
							"type": "uint256"
						}
					],
					"name": "setBridgeClaimGasCost",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbf9247f1"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_gasCost",
							"type": "uint256"
						}
					],
					"name": "setBridgeTransferGasCost",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x33c4e086"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "enum MixinSystemSettings.CrossDomainMessageGasLimits",
							"name": "_gasLimitType",
							"type": "uint8"
						},
						{
							"internalType": "uint256",
							"name": "_crossDomainMessageGasLimit",
							"type": "uint256"
						}
					],
					"name": "setCrossDomainMessageGasLimit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xdc8f4a1b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_seconds",
							"type": "uint256"
						}
					],
					"name": "setDebtSnapshotStaleTime",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6190dd7a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "pynthKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "exchangeFeeRates",
							"type": "uint256[]"
						}
					],
					"name": "setExchangeFeeRateForPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x826098e8"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_newQuota",
							"type": "uint256"
						}
					],
					"name": "setExternalTokenQuota",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc1d20ca2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_feePeriodDuration",
							"type": "uint256"
						}
					],
					"name": "setFeePeriodDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x04c49f2c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issuanceRatio",
							"type": "uint256"
						}
					],
					"name": "setIssuanceRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x054be0b7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "setLiquidationDelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5e0117d6"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "penalty",
							"type": "uint256"
						}
					],
					"name": "setLiquidationPenalty",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2806a743"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_liquidationRatio",
							"type": "uint256"
						}
					],
					"name": "setLiquidationRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x946ce8cd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_seconds",
							"type": "uint256"
						}
					],
					"name": "setMinimumStakeTime",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe9422046"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_priceDeviationThresholdFactor",
							"type": "uint256"
						}
					],
					"name": "setPriceDeviationThresholdFactor",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1e6e2190"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "period",
							"type": "uint256"
						}
					],
					"name": "setRateStalePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79cb657a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_percent",
							"type": "uint256"
						}
					],
					"name": "setTargetThreshold",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2cce0e54"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_tradingRewardsEnabled",
							"type": "bool"
						}
					],
					"name": "setTradingRewardsEnabled",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4641ab66"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_waitingPeriodSecs",
							"type": "uint256"
						}
					],
					"name": "setWaitingPeriodSecs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x635a3872"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "targetThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe0e6393d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tradingRewardsEnabled",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc193f0d8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "waitingPeriodSecs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x89257117"
				}
			],
			"source": {
				"keccak256": "0xe61326892721a3a2d36aeb365416d356bcad514585f4c44953e43a00cf5abdf1",
				"urls": [
					"bzz-raw://75a290409105b5168c95cff2aecbbd9f790d5a6e697403530db817200fb40a2c",
					"dweb:/ipfs/QmY6NkxCPbduJ984tb8jw74PrcPEpUZqH2irjten8rKMgT"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SystemSettings.sol": "SystemSettings"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SystemSettings.sol": {
						"keccak256": "0xe61326892721a3a2d36aeb365416d356bcad514585f4c44953e43a00cf5abdf1",
						"urls": [
							"bzz-raw://75a290409105b5168c95cff2aecbbd9f790d5a6e697403530db817200fb40a2c",
							"dweb:/ipfs/QmY6NkxCPbduJ984tb8jw74PrcPEpUZqH2irjten8rKMgT"
						]
					}
				},
				"version": 1
			}
		},
		"SystemStatus": {
			"bytecode": "608060405234801561001057600080fd5b50604051611ed6380380611ed68339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15050611ddc806100fa6000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c80634ef4a6431161014657806389bb3dfa116100c3578063c09290bb11610087578063c09290bb14610983578063d7f2c385146109f1578063e470df5814610a0e578063f161620714610a2b578063f405f65a14610a33578063f8b4b08414610a3b5761025e565b806389bb3dfa146108af5780638c38729d146108cc5780638da5cb5b146108e95780639f8a95ba146108f1578063ad135a16146109155761025e565b80637118d4311161010a5780637118d43114610806578063754a46411461080e57806379ba5097146108315780637c3125411461083957806387743c36146108415761025e565b80634ef4a6431461063c578063517d60c61461065957806353a47bb7146107b7578063631070fc146107db57806367a280b2146107fe5761025e565b806320f2bf00116101df5780632e94d93d116101a35780632e94d93d14610542578063387da909146105b0578063396e258e146105b85780633cb4d443146105d557806348bf1971146105f85780634abdb44d146106345761025e565b806320f2bf00146104895780632366245e146104d05780632cb28bd8146104fb5780632dd8afdb1461051e5780632e8d0b9e146105265761025e565b8063157c51d311610226578063157c51d3146104195780631588e817146104215780631627540c1461043e5780631635b0ce146104645780631d7e77891461046c5761025e565b8063086dabd11461026357806308d10e621461026d5780630d2d7c281461028a57806312bde5141461039157806314acc95f146103ab575b600080fd5b61026b610a43565b005b61026b6004803603602081101561028357600080fd5b5035610a4d565b6102f8600480360360208110156102a057600080fd5b810190602081018135600160201b8111156102ba57600080fd5b8201836020820111156102cc57600080fd5b803590602001918460208302840111600160201b831117156102ed57600080fd5b509092509050610a96565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561033c578181015183820152602001610324565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561037b578181015183820152602001610363565b5050505090500194505050505060405180910390f35b610399610bbf565b60408051918252519081900360200190f35b61026b600480360360208110156103c157600080fd5b810190602081018135600160201b8111156103db57600080fd5b8201836020820111156103ed57600080fd5b803590602001918460208302840111600160201b8311171561040e57600080fd5b509092509050610bcc565b61026b610c08565b61026b6004803603602081101561043757600080fd5b5035610c72565b61026b6004803603602081101561045457600080fd5b50356001600160a01b0316610cdd565b610399610d39565b61026b6004803603602081101561048257600080fd5b5035610d45565b6104b56004803603604081101561049f57600080fd5b50803590602001356001600160a01b0316610d59565b60408051921515835290151560208301528051918290030190f35b6104d8610d82565b6040805192151583526001600160f81b0390911660208301528051918290030190f35b61026b6004803603604081101561051157600080fd5b5080359060200135610d9b565b6104d8610dcf565b61052e610de8565b604080519115158252519081900360200190f35b61026b6004803603602081101561055857600080fd5b810190602081018135600160201b81111561057257600080fd5b82018360208201111561058457600080fd5b803590602001918460208302840111600160201b831117156105a557600080fd5b509092509050610e12565b610399610e4e565b61026b600480360360208110156105ce57600080fd5b5035610e62565b61026b600480360360408110156105eb57600080fd5b5080359060200135610ecd565b61026b6004803603608081101561060e57600080fd5b508035906001600160a01b03602082013516906040810135151590606001351515610ed5565b610399610eef565b6104d86004803603602081101561065257600080fd5b5035610efe565b61026b6004803603608081101561066f57600080fd5b810190602081018135600160201b81111561068957600080fd5b82018360208201111561069b57600080fd5b803590602001918460208302840111600160201b831117156106bc57600080fd5b919390929091602081019035600160201b8111156106d957600080fd5b8201836020820111156106eb57600080fd5b803590602001918460208302840111600160201b8311171561070c57600080fd5b919390929091602081019035600160201b81111561072957600080fd5b82018360208201111561073b57600080fd5b803590602001918460208302840111600160201b8311171561075c57600080fd5b919390929091602081019035600160201b81111561077957600080fd5b82018360208201111561078b57600080fd5b803590602001918460208302840111600160201b831117156107ac57600080fd5b509092509050610f23565b6107bf611014565b604080516001600160a01b039092168252519081900360200190f35b61026b600480360360408110156107f157600080fd5b5080359060200135611023565b61026b61106e565b61026b6110da565b61026b6004803603604081101561082457600080fd5b50803590602001356110ea565b61026b611130565b61026b6111ec565b61026b6004803603604081101561085757600080fd5b810190602081018135600160201b81111561087157600080fd5b82018360208201111561088357600080fd5b803590602001918460208302840111600160201b831117156108a457600080fd5b9193509150356111fc565b61026b600480360360208110156108c557600080fd5b503561123a565b6104d8600480360360208110156108e257600080fd5b503561124b565b6107bf611270565b6108f961127f565b604080516001600160f81b039092168252519081900360200190f35b61026b6004803603604081101561092b57600080fd5b810190602081018135600160201b81111561094557600080fd5b82018360208201111561095757600080fd5b803590602001918460208302840111600160201b8311171561097857600080fd5b919350915035611284565b6102f86004803603602081101561099957600080fd5b810190602081018135600160201b8111156109b357600080fd5b8201836020820111156109c557600080fd5b803590602001918460208302840111600160201b831117156109e657600080fd5b5090925090506112c2565b61026b60048036036020811015610a0757600080fd5b50356113e3565b61026b60048036036020811015610a2457600080fd5b5035611428565b61039961149d565b61026b6114ac565b6104d8611518565b610a4b611531565b565b604080516001808252818301909252606091602080830190803883390190505090508181600081518110610a7d57fe5b602002602001018181525050610a9281611610565b5050565b60608083839050604051908082528060200260200182016040528015610ac6578160200160208202803883390190505b50604080518581526020808702820101909152909250838015610af3578160200160208202803883390190505b50905060005b83811015610bb75760066000868684818110610b1157fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff16838281518110610b4357fe5b9115156020928302919091019091015260066000868684818110610b6357fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b0316828281518110610ba457fe5b6020908102919091010152600101610af9565b509250929050565b6553797374656d60d01b81565b610a9282828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061161092505050565b610c1a6553797374656d60d01b6116be565b6003805460ff191690819055604080516101009092046001600160f81b03168252517fb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f916020908290030190a16003805460ff169055565b610c866745786368616e676560c01b61171b565b600580546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517f078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b229181900360200190a150565b610ce5611773565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b640a0f2dce8d60db1b81565b610d4d611531565b610d56816117bc565b50565b600260209081526000928352604080842090915290825290205460ff8082169161010090041682565b60045460ff81169061010090046001600160f81b031682565b610da3611531565b610dab61180a565b610db48261184c565b610dbd8161184c565b610dc6826117bc565b610a92816117bc565b60035460ff81169061010090046001600160f81b031682565b60035460009060ff168015610e0d575060035461010090046001600160f81b03166001145b905090565b610a9282828080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061189a92505050565b6c50796e746845786368616e676560981b81565b610e766749737375616e636560c01b61171b565b600480546001600160f81b0383166101000260ff1990911660011760ff161790556040805182815290517fee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb89181900360200190a150565b610dbd611531565b610edd611773565b610ee984848484611940565b50505050565b6749737375616e636560c01b81565b60066020526000908152604090205460ff81169061010090046001600160f81b031682565b610f2b611773565b8685148015610f3957508483145b8015610f4457508281145b610f95576040805162461bcd60e51b815260206004820152601e60248201527f496e707574206172726179206c656e67746873206d757374206d617463680000604482015290519081900360640190fd5b60005b8781101561100957611001898983818110610faf57fe5b90506020020135888884818110610fc257fe5b905060200201356001600160a01b0316878785818110610fde57fe5b905060200201351515868686818110610ff357fe5b905060200201351515611940565b600101610f98565b505050505050505050565b6001546001600160a01b031681565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061105357fe5b6020026020010181815250506110698183611a72565b505050565b6110826749737375616e636560c01b6116be565b6004805460ff191690819055604080516101009092046001600160f81b03168252517f0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837916020908290030190a16004805460ff169055565b6110e2611531565b610a4b61180a565b60408051600180825281830190925260609160208083019080388339019050509050828160008151811061111a57fe5b6020026020010181815250506110698183611b18565b6001546001600160a01b031633146111795760405162461bcd60e51b8152600401808060200182810382526035815260200180611c096035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6111f4611531565b610a4b611bc6565b611069838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611a72915050565b611242611531565b610d568161184c565b60076020526000908152604090205460ff81169061010090046001600160f81b031682565b6000546001600160a01b031681565b600181565b611069838380806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250859250611b18915050565b606080838390506040519080825280602002602001820160405280156112f2578160200160208202803883390190505b5060408051858152602080870282010190915290925083801561131f578160200160208202803883390190505b50905060005b83811015610bb7576007600086868481811061133d57fe5b90506020020135815260200190815260200160002060000160009054906101000a900460ff1683828151811061136f57fe5b911515602092830291909101909101526007600086868481811061138f57fe5b90506020020135815260200190815260200160002060000160019054906101000a90046001600160f81b03166001600160f81b03168282815181106113d057fe5b6020908102919091010152600101611325565b60408051600180825281830190925260609160208083019080388339019050509050818160008151811061141357fe5b602002602001018181525050610a928161189a565b61143a6553797374656d60d01b61171b565b600380546001600160f81b0380841661010090810260ff1990931660011760ff169290921792839055604080519290930416815290517f86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f9181900360200190a150565b6745786368616e676560c01b81565b6114c06745786368616e676560c01b6116be565b6005805460ff191690819055604080516101009092046001600160f81b03168252517f07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214916020908290030190a16005805460ff169055565b60055460ff81169061010090046001600160f81b031682565b60035460ff8116159061010090046001600160f81b031660011461156d576040518060600160405280602e8152602001611c97602e9139611587565b604051806060016040528060408152602001611d1f604091395b90610d565760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156115d55781810151838201526020016115bd565b50505050905090810190601f1680156116025780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6116296c50796e746845786368616e676560981b6116be565b60005b8151811015610a9257600082828151811061164357fe5b6020908102919091018101516000818152600683526040908190205481518381526101009091046001600160f81b03169381019390935280519193507fc6cc5bbf2969f74a5166d0bad983455bf7a65b6372af7260400f9b3b04338090928290030190a160009081526006602052604081205560010161162c565b6000818152600260209081526040808320338452909152902054610100900460ff16610d565760405162461bcd60e51b8152600401808060200182810382526021815260200180611d5f6021913960400191505060405180910390fd5b600081815260026020908152604080832033845290915290205460ff16610d565760405162461bcd60e51b8152600401808060200182810382526021815260200180611d5f6021913960400191505060405180910390fd5b6000546001600160a01b03163314610a4b5760405162461bcd60e51b815260040180806020018281038252602f815260200180611cc5602f913960400191505060405180910390fd5b60008181526007602052604090205460ff1615610d565760405162461bcd60e51b8152600401808060200182810382526028815260200180611d806028913960400191505060405180910390fd5b60055460ff1615610a4b5760405162461bcd60e51b815260040180806020018281038252602b815260200180611cf4602b913960400191505060405180910390fd5b60008181526006602052604090205460ff1615610d565760405162461bcd60e51b815260040180806020018281038252602e815260200180611c69602e913960400191505060405180910390fd5b6118ab640a0f2dce8d60db1b6116be565b60005b8151811015610a925760008282815181106118c557fe5b6020908102919091018101516000818152600783526040908190205481518381526101009091046001600160f81b03169381019390935280519193507fddc88fc179cf33f24e5569dd8635c3cd44864e66a1b359bdd9d95e50d94a0d39928290030190a16000908152600760205260408120556001016118ae565b6553797374656d60d01b84148061196157506749737375616e636560c01b84145b8061197657506745786368616e676560c01b84145b8061199057506c50796e746845786368616e676560981b84145b806119a25750640a0f2dce8d60db1b84145b6119f3576040805162461bcd60e51b815260206004820152601860248201527f496e76616c69642073656374696f6e20737570706c6965640000000000000000604482015290519081900360640190fd5b60008481526002602090815260408083206001600160a01b038716808552908352928190208054851515610100810261ff001989151560ff1990941684171617909255825190815292830152805187927f95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d192908290030190a350505050565b611a83640a0f2dce8d60db1b61171b565b60005b8251811015611069576000838281518110611a9d57fe5b60209081029190910181015160008181526007835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507ffd3feff79fa642f72408a90c33c6b2ae245bd7077eec45d2502714178e692c86928290030190a150600101611a86565b611b316c50796e746845786368616e676560981b61171b565b60005b8251811015611069576000838281518110611b4b57fe5b60209081029190910181015160008181526006835260409081902080546001600160f81b0388166101000260ff1990911660011760ff16179055805182815292830186905280519193507f0af76046e49b0af43f6e092983123f6fb3a25f63bd7096c1bb89649a75a9a494928290030190a150600101611b34565b60045460ff1615610a4b5760405162461bcd60e51b815260040180806020018281038252602b815260200180611c3e602b913960400191505060405180910390fdfe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697049737375616e63652069732073757370656e6465642e204f7065726174696f6e2070726f6869626974656450796e74682065786368616e67652073757370656e6465642e204f7065726174696f6e2070726f686962697465645065726946696e616e63652069732073757370656e6465642e204f7065726174696f6e2070726f686962697465644f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e45786368616e67652069732073757370656e6465642e204f7065726174696f6e2070726f686962697465645065726946696e616e63652069732073757370656e6465642c207570677261646520696e2070726f67726573732e2e2e20706c65617365207374616e642062795265737472696374656420746f2061636365737320636f6e74726f6c206c69737450796e74682069732073757370656e6465642e204f7065726174696f6e2070726f68696269746564a265627a7a7231582018f806304970781b8eb73b57b112e4fdff7f40e812c7e7a9c4cea06b9772f04f64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "section",
							"type": "bytes32"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canSuspend",
							"type": "bool"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canResume",
							"type": "bool"
						}
					],
					"name": "AccessControlUpdated",
					"type": "event",
					"signature": "0x95bad30f8fe717e4a02906d7b05a6f90698c7135cd053e5b6d5239146b4c40d1"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "ExchangeResumed",
					"type": "event",
					"signature": "0x07966fe79d35c7abf1f3b2ad9970ea24cae0f11406e283e848e3e6608ae3c214"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "ExchangeSuspended",
					"type": "event",
					"signature": "0x078773069a9216cdb6acaa7b184785f12f62048c7ce8b7ede1bad6785de16b22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "IssuanceResumed",
					"type": "event",
					"signature": "0x0f1a80395faba9a11017f830db5f90ad6525a1621dbfb2cbc2b6679ba5716837"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "IssuanceSuspended",
					"type": "event",
					"signature": "0xee8bf45d6e3141aa521ae4f0d05dfefe0327a3f23a9fbae6a64680458b34ebb8"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "PynthExchangeResumed",
					"type": "event",
					"signature": "0xc6cc5bbf2969f74a5166d0bad983455bf7a65b6372af7260400f9b3b04338090"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "PynthExchangeSuspended",
					"type": "event",
					"signature": "0x0af76046e49b0af43f6e092983123f6fb3a25f63bd7096c1bb89649a75a9a494"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "PynthResumed",
					"type": "event",
					"signature": "0xddc88fc179cf33f24e5569dd8635c3cd44864e66a1b359bdd9d95e50d94a0d39"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "PynthSuspended",
					"type": "event",
					"signature": "0xfd3feff79fa642f72408a90c33c6b2ae245bd7077eec45d2502714178e692c86"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SystemResumed",
					"type": "event",
					"signature": "0xb392a95118344e8edff8eff56183afb4bb0240310c406a0fc1217d2755c66d8f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "SystemSuspended",
					"type": "event",
					"signature": "0x86b7ed06c3a2c3763514d475ced33f9ac8b1bb8f028ded18de0100b7678f3c4f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_EXCHANGE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf1616207"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_ISSUANCE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4abdb44d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_PYNTH",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1635b0ce"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_PYNTH_EXCHANGE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x387da909"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SECTION_SYSTEM",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x12bde514"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SUSPENSION_REASON_UPGRADE",
					"outputs": [
						{
							"internalType": "uint248",
							"name": "",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9f8a95ba"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "accessControl",
					"outputs": [
						{
							"internalType": "bool",
							"name": "canSuspend",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "canResume",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x20f2bf00"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "exchangeSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf8b4b084"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "pynths",
							"type": "bytes32[]"
						}
					],
					"name": "getPynthExchangeSuspensions",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "exchangeSuspensions",
							"type": "bool[]"
						},
						{
							"internalType": "uint256[]",
							"name": "reasons",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0d2d7c28"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "pynths",
							"type": "bytes32[]"
						}
					],
					"name": "getPynthSuspensions",
					"outputs": [
						{
							"internalType": "bool[]",
							"name": "suspensions",
							"type": "bool[]"
						},
						{
							"internalType": "uint256[]",
							"name": "reasons",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc09290bb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isSystemUpgrading",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2e8d0b9e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2366245e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "pynthExchangeSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4ef4a643"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "pynthSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8c38729d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireExchangeActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7118d431"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "requireExchangeBetweenPynthsAllowed",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2cb28bd8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireIssuanceActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7c312541"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "requirePynthActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1d7e7789"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "requirePynthExchangeActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x89bb3dfa"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "requirePynthsActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3cb4d443"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "requireSystemActive",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x086dabd1"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf405f65a"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeIssuance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x67a280b2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "resumePynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd7f2c385"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "resumePynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x08d10e62"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resumePynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2e94d93d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resumePynthsExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x14acc95f"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "resumeSystem",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x157c51d3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1588e817"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendIssuance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x396e258e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendPynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x631070fc"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendPynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x754a4641"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x87743c36"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendPynthsExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xad135a16"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "reason",
							"type": "uint256"
						}
					],
					"name": "suspendSystem",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe470df58"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "systemSuspension",
					"outputs": [
						{
							"internalType": "bool",
							"name": "suspended",
							"type": "bool"
						},
						{
							"internalType": "uint248",
							"name": "reason",
							"type": "uint248"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2dd8afdb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "section",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "canSuspend",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "canResume",
							"type": "bool"
						}
					],
					"name": "updateAccessControl",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x48bf1971"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "sections",
							"type": "bytes32[]"
						},
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "bool[]",
							"name": "canSuspends",
							"type": "bool[]"
						},
						{
							"internalType": "bool[]",
							"name": "canResumes",
							"type": "bool[]"
						}
					],
					"name": "updateAccessControls",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x517d60c6"
				}
			],
			"source": {
				"keccak256": "0xd007bffcedcf8fa79fec1aa185613f403ce3a03e7617cddd3acd0adc3899fd19",
				"urls": [
					"bzz-raw://6eb23e961b5a59d1545c61fcbe8357bf2ba06362aa4ca0381a6baa63b16f3d19",
					"dweb:/ipfs/QmZ8V2uf3AcLFJtjHbi2YZCssH2XVbhz6EfuQTiWM4pFWt"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SystemStatus.sol": "SystemStatus"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SystemStatus.sol": {
						"keccak256": "0xd007bffcedcf8fa79fec1aa185613f403ce3a03e7617cddd3acd0adc3899fd19",
						"urls": [
							"bzz-raw://6eb23e961b5a59d1545c61fcbe8357bf2ba06362aa4ca0381a6baa63b16f3d19",
							"dweb:/ipfs/QmZ8V2uf3AcLFJtjHbi2YZCssH2XVbhz6EfuQTiWM4pFWt"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeRates": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200517238038062005172833981810160405260a08110156200003757600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200006b57600080fd5b9083019060208201858111156200008157600080fd5b82518660208202830111640100000000821117156200009f57600080fd5b82525081516020918201928201910280838360005b83811015620000ce578181015183820152602001620000b4565b5050505090500160405260200180516040519392919084640100000000821115620000f857600080fd5b9083019060208201858111156200010e57600080fd5b82518660208202830111640100000000821117156200012c57600080fd5b82525081516020918201928201910280838360005b838110156200015b57818101518382015260200162000141565b5050505090500160405250505082808660006001600160a01b0316816001600160a01b03161415620001d4576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b0319166001600160a01b0392909216919091179055508051825114620002905760405162461bcd60e51b815260040180806020018281038252602f81526020018062005080602f913960400191505060405180910390fd5b83600560006101000a8154816001600160a01b0302191690836001600160a01b0316021790555062000346631c1554d160e21b73__$81fd87b331096e90074cc3e2c16d5bc3ee$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030857600080fd5b505af41580156200031d573d6000803e3d6000fd5b505050506040513d60208110156200033457600080fd5b5051426001600160e01b036200036816565b6200035c8282426001600160e01b03620003e116565b50505050505062000c59565b6000838152600c60209081526040808320805460010190819055815180830183526001600160d81b03968716815264ffffffffff958616818501908152978552600484528285209185529252909120905181549451909216600160d81b029183166001600160d81b031990941693909317909116179055565b60008251845114620004255760405162461bcd60e51b8152600401808060200182810382526038815260200180620051016038913960400191505060405180910390fd5b610258420182106200047e576040805162461bcd60e51b815260206004820152601f60248201527f54696d6520697320746f6f2066617220696e746f207468652066757475726500604482015290519081900360640190fd5b60005b8451811015620005975760008582815181106200049a57fe5b60200260200101519050848281518110620004b157fe5b602002602001015160001415620004fa5760405162461bcd60e51b8152600401808060200182810382526039815260200180620051396039913960400191505060405180910390fd5b80631c1554d160e21b1415620005425760405162461bcd60e51b8152600401808060200182810382526031815260200180620050d06031913960400191505060405180910390fd5b62000556816001600160e01b036200066216565b8410156200056557506200058e565b6200058c818684815181106200057757fe5b6020026020010151866200036860201b60201c565b505b60010162000481565b507f1bc0fc8997efa076f59b5ef02c315bc5390f7a6d24d661ce12128c01a3b0ba578484604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101562000601578181015183820152602001620005e7565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156200064257818101518382015260200162000628565b5050505090500194505050505060405180910390a15060015b9392505050565b600062000678826001600160e01b036200068b16565b6020015164ffffffffff1690505b919050565b6200069562000c0f565b6000828152600760205260409020546001600160a01b0316620006c1836001600160e01b03620008f016565b15620008445760408051600481526024810182526020810180516001600160e01b0316633fabe5a360e21b1781529151815191926000926060926001600160a01b0387169286928291908083835b60208310620007305780518252601f1990920191602091820191016200070f565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d806000811462000792576040519150601f19603f3d011682016040523d82523d6000602084013e62000797565b606091505b509150915081156200083b5760008060008380602001905160a0811015620007be57600080fd5b50805160208201516060909201516040805180820190915291955091935090915080620008138b620007fa81876001600160e01b036200092c16565b6001600160501b0388166001600160e01b03620009f016565b6001600160d81b031681526020018264ffffffffff1681525097505050505050505062000686565b505050620008ea565b6000838152600c60205260409020546200085d62000c0f565b5060008481526004602090815260408083208484528252918290208251808401845290546001600160d81b038082168352600160d81b90910464ffffffffff1692820192909252825180840190935280519092918291620008c29189911686620009f0565b6001600160d81b03168152602001826020015164ffffffffff16815250935050505062000686565b50919050565b60008181526006602052604081205460ff161580156200092657506000828152600760205260409020546001600160a01b031615155b92915050565b60008082121562000984576040805162461bcd60e51b815260206004820152601b60248201527f4e656761746976652072617465206e6f7420737570706f727465640000000000604482015290519081900360640190fd5b60008381526008602052604090205460ff1615620008ea576000838152600860209081526040822054620009c89160129160ff16906200409862000b53821b17901c565b600a0a9050620009e7818462000bb160201b620038cd1790919060201c565b91505062000926565b6000620009fc62000c26565b506000848152600a6020908152604091829020825160a08101845281548082526001830154938201939093526002820154938101939093526003015460ff808216151560608501526101009091041615156080830152158062000a5d575083155b1562000a6d57839150506200065b565b6000858152600d602052604090205484925080841080159062000a91575081606001515b1562000aa4578160200151925062000b4a565b80841015801562000ab6575081608001515b1562000ac9578160400151925062000b4a565b600062000aea6002846000015162000bb160201b620038cd1790919060201c565b905085811162000afe576000935062000b1b565b62000b18868262000b5360201b620040981790919060201c565b93505b8260200151841062000b34578260200151935062000b48565b8260400151841162000b4857826040015193505b505b50509392505050565b60008282111562000bab576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008262000bc25750600062000926565b8282028284828162000bd057fe5b04146200065b5760405162461bcd60e51b8152600401808060200182810382526021815260200180620050af6021913960400191505060405180910390fd5b604080518082019091526000808252602082015290565b6040518060a001604052806000815260200160008152602001600081526020016000151581526020016000151581525090565b6144178062000c696000396000f3fe608060405234801561001057600080fd5b50600436106103355760003560e01c8063728dec29116101b2578063af3aea86116100f9578063c8e5bbd5116100a2578063de02795e1161007c578063de02795e14610c8d578063de630ba714610caa578063eedb421e14610cb2578063fdadbc7e14610ccf57610335565b8063c8e5bbd514610b84578063c8e6f39514610c53578063ce8480ea14610c7057610335565b8063becb1954116100d3578063becb195414610a2d578063bfa005ce14610a52578063c2c8a67614610b1457610335565b8063af3aea861461099e578063b199c764146109bb578063b295ad34146109fa57610335565b80637f6e9d151161015b5780638da5cb5b116101355780638da5cb5b1461095c578063935f4abd14610964578063ac82f6081461098157610335565b80637f6e9d15146108f05780638295016a1461090d578063899ffef41461095457610335565b80637a018a1e1161018c5780637a018a1e146108985780637adbf973146108b55780637dc0d1d0146108e857610335565b8063728dec291461083c578063741853601461088857806379ba50971461089057610335565b80632bed9e0c116102815780634308a94f1161022a5780634f72def6116102045780634f72def6146107d157806353a47bb7146107ee578063654a60ac146107f65780637103353e1461081f57610335565b80634308a94f1461077657806345938849146107ac5780634c36b837146107c957610335565b80633375fcd11161025b5780633375fcd11461070357806338aa1b99146107205780633f0e084f1461073d57610335565b80632bed9e0c1461060d5780632d7371e11461062a5780632ea913d4146106e657610335565b8063109e46a2116102e3578063266da16b116102bd578063266da16b1461059d5780632678df96146105d25780632af64bd31461060557610335565b8063109e46a21461051c5780631627540c1461054b5780632528f0fe1461058057610335565b80630a7d36d1116103145780630a7d36d11461045c5780630c71cd23146104cc5780630ee4951b1461050257610335565b80629919c01461033a57806304f3bcec1461036b57806305a046e51461039c575b600080fd5b6103576004803603602081101561035057600080fd5b5035610cf2565b604080519115158252519081900360200190f35b610373610d0d565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61040c600480360360208110156103b257600080fd5b8101906020810181356401000000008111156103cd57600080fd5b8201836020820111156103df57600080fd5b8035906020019184602083028401116401000000008311171561040157600080fd5b509092509050610d29565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610448578181015183820152602001610430565b505050509050019250505060405180910390f35b6103576004803603602081101561047257600080fd5b81019060208101813564010000000081111561048d57600080fd5b82018360208201111561049f57600080fd5b803590602001918460208302840111640100000000831117156104c157600080fd5b509092509050610dab565b6104e9600480360360208110156104e257600080fd5b5035610e5e565b6040805192835290151560208301528051918290030190f35b61050a610f24565b60408051918252519081900360200190f35b61050a6004803603608081101561053257600080fd5b5080359060208101359060408101359060600135610f34565b61057e6004803603602081101561056157600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610f77565b005b6103576004803603602081101561059657600080fd5b5035610ff8565b61050a600480360360a08110156105b357600080fd5b5080359060208101359060408101359060608101359060800135611018565b61040c600480360360208110156105e857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611085565b610357611146565b61057e6004803603602081101561062357600080fd5b5035611290565b61064d6004803603604081101561064057600080fd5b50803590602001356113dc565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610691578181015183820152602001610679565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156106d05781810151838201526020016106b8565b5050505090500194505050505060405180910390f35b61050a600480360360208110156106fc57600080fd5b50356114cd565b6103576004803603602081101561071957600080fd5b50356114eb565b6103576004803603602081101561073657600080fd5b50356115b1565b61057e6004803603604081101561075357600080fd5b508035906020013573ffffffffffffffffffffffffffffffffffffffff166115bf565b6107936004803603602081101561078c57600080fd5b503561186f565b6040805192835260208301919091528051918290030190f35b61057e600480360360208110156107c257600080fd5b50356118bb565b6103736119a8565b61050a600480360360208110156107e757600080fd5b50356119b2565b6103736119bf565b61050a6004803603606081101561080c57600080fd5b50803590602081013590604001356119db565b6103736004803603602081101561083557600080fd5b50356119f3565b6108596004803603602081101561085257600080fd5b5035611a1b565b604080519586526020860194909452848401929092521515606084015215156080830152519081900360a00190f35b61057e611a4e565b61057e611c61565b61050a600480360360208110156108ae57600080fd5b5035611d5c565b61057e600480360360208110156108cb57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611d67565b610373611dee565b61050a6004803603602081101561090657600080fd5b5035611e0a565b6109366004803603606081101561092357600080fd5b5080359060208101359060400135611e1c565b60408051938452602084019290925282820152519081900360600190f35b61040c611e3c565b610373611eb8565b61050a6004803603602081101561097a57600080fd5b5035611ed4565b61050a6004803603602081101561099757600080fd5b5035611ee6565b610357600480360360208110156109b457600080fd5b5035611f15565b61057e600480360360c08110156109d157600080fd5b50803590602081013590604081013590606081013590608081013515159060a001351515611f20565b610a1760048036036020811015610a1057600080fd5b50356122f5565b6040805160ff9092168252519081900360200190f35b61057e60048036036040811015610a4357600080fd5b5080359060200135151561230a565b61035760048036036060811015610a6857600080fd5b810190602081018135640100000000811115610a8357600080fd5b820183602082011115610a9557600080fd5b80359060200191846020830284011164010000000083111715610ab757600080fd5b919390929091602081019035640100000000811115610ad557600080fd5b820183602082011115610ae757600080fd5b80359060200191846020830284011164010000000083111715610b0957600080fd5b919350915035612350565b61040c60048036036020811015610b2a57600080fd5b810190602081018135640100000000811115610b4557600080fd5b820183602082011115610b5757600080fd5b80359060200191846020830284011164010000000083111715610b7957600080fd5b5090925090506123d3565b610bf460048036036020811015610b9a57600080fd5b810190602081018135640100000000811115610bb557600080fd5b820183602082011115610bc757600080fd5b80359060200191846020830284011164010000000083111715610be957600080fd5b50909250905061244b565b604051808060200183151515158152602001828103825284818151815260200191508051906020019060200280838360005b83811015610c3e578181015183820152602001610c26565b50505050905001935050505060405180910390f35b61057e60048036036020811015610c6957600080fd5b50356125bf565b61050a60048036036020811015610c8657600080fd5b50356126cd565b61057e60048036036020811015610ca357600080fd5b50356126d8565b610936612900565b61035760048036036020811015610cc857600080fd5b503561290c565b61079360048036036040811015610ce557600080fd5b5080359060200135612921565b6000610d0582610d00612939565b612a0c565b90505b919050565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60608083839050604051908082528060200260200182016040528015610d59578160200160208202803883390190505b50905060005b83811015610da157610d82858583818110610d7657fe5b90506020020135612a57565b828281518110610d8e57fe5b6020908102919091010152600101610d5f565b5090505b92915050565b600080610db6612939565b90506060610df6858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612a7392505050565b905060005b84811015610e5257818181518110610e0f57fe5b602002602001015180610e395750610e39868683818110610e2c57fe5b9050602002013584612a0c565b15610e4a5760019350505050610da5565b600101610dfb565b50600095945050505050565b600080610e6961415f565b610e7284612d21565b9050837f70555344000000000000000000000000000000000000000000000000000000001415610ec557517affffffffffffffffffffffffffffffffffffffffffffffffffffff16915060009050610f1f565b8051610ee3610ed2612939565b836020015164ffffffffff1661300c565b80610efa5750610efa85610ef5613027565b6130c9565b7affffffffffffffffffffffffffffffffffffffffffffffffffffff90911693509150505b915091565b6000610f2e612939565b90505b90565b600083815b610f468783600101613201565b915050801580610f57575083850181115b15610f6457509050610f6f565b600190910190610f39565b949350505050565b610f7f613471565b6001805473ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff0000000000000000000000000000000000000000909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600061100682610d00612939565b80610d055750610d0582610ef5613027565b60008386141561102957508361107c565b60006110358785613201565b50905060006110448685613201565b509050806110575760009250505061107c565b6110778161106b898563ffffffff6134c916565b9063ffffffff6134de16565b925050505b95945050505050565b6009546040805182815260208084028201019091526060916000919080156110b7578160200160208202803883390190505b50915060005b60095481101561113f576000600982815481106110d657fe5b6000918252602080832090910154808352600790915260409091205490915073ffffffffffffffffffffffffffffffffffffffff9081169086161415611136578084848060010195508151811061112957fe5b6020026020010181815250505b506001016110bd565b5050919050565b60006060611152611e3c565b905060005b815181101561128757600082828151811061116e57fe5b6020908102919091018101516000818152600383526040908190205460025482517f21f8a72100000000000000000000000000000000000000000000000000000000815260048101859052925193955073ffffffffffffffffffffffffffffffffffffffff918216949116926321f8a721926024808201939291829003018186803b1580156111fc57600080fd5b505afa158015611210573d6000803e3d6000fd5b505050506040513d602081101561122657600080fd5b505173ffffffffffffffffffffffffffffffffffffffff1614158061126d575060008181526003602052604090205473ffffffffffffffffffffffffffffffffffffffff16155b1561127e5760009350505050610f31565b50600101611157565b50600191505090565b611298613471565b60008181526007602052604090205473ffffffffffffffffffffffffffffffffffffffff168061130f576040805162461bcd60e51b815260206004820152601c60248201527f4e6f2061676772656761746f722065786973747320666f72206b657900000000604482015290519081900360640190fd5b600082815260076020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556008909152812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905561137e8360096134f3565b905080156113d7576040805184815273ffffffffffffffffffffffffffffffffffffffff8416602082015281517fec70e890fc7db7de4059b114c9093a1f41283d18ffcfbcac45566feea4d4f777929181900390910190a15b505050565b60608082604051908082528060200260200182016040528015611409578160200160208202803883390190505b50915082604051908082528060200260200182016040528015611436578160200160208202803883390190505b5090506000611444856135d3565b905060005b848110156114c35761145b8683613201565b85838151811061146757fe5b6020026020010185848151811061147a57fe5b6020908102919091010191909152528161149657506114c69050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90910190600101611449565b50505b9250929050565b600b81815481106114da57fe5b600091825260209091200154905081565b60006114f5614176565b506000828152600a6020908152604091829020825160a08101845281548082526001830154938201939093526002820154938101939093526003015460ff8082161515606085015261010090910416151560808301521580611558575080606001515b80611564575080608001515b15611573576000915050610d08565b600061157e84611ee6565b90506000811180156115a257508160200151811015806115a2575081604001518111155b92505050610d08565b50919050565b6000610d0582610ef5613027565b6115c7613471565b600081905060008173ffffffffffffffffffffffffffffffffffffffff1663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b15801561161457600080fd5b505afa158015611628573d6000803e3d6000fd5b505050506040513d602081101561163e57600080fd5b50511015611693576040805162461bcd60e51b815260206004820152601b60248201527f476976656e2041676772656761746f7220697320696e76616c69640000000000604482015290519081900360640190fd5b60008173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156116db57600080fd5b505afa1580156116ef573d6000803e3d6000fd5b505050506040513d602081101561170557600080fd5b50519050601260ff8216111561174c5760405162461bcd60e51b81526004018080602001828103825260328152602001806143516032913960400191505060405180910390fd5b60008481526007602052604090205473ffffffffffffffffffffffffffffffffffffffff166117ab57600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af018490555b600084815260076020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716908117909155600883529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff861617905580518781529182019290925281517f0bcae573430f69c5361e5d76534d3f61d2d803958778680cd74be9dc6299bc63929181900390910190a150505050565b60008061187a61415f565b61188384612d21565b80516020909101517affffffffffffffffffffffffffffffffffffffffffffffffffffff909116935064ffffffffff16915050915091565b6118c3613697565b60006118ce82611ee6565b11611920576040805162461bcd60e51b815260206004820152600c60248201527f52617465206973207a65726f0000000000000000000000000000000000000000604482015290519081900360640190fd5b6000818152600460209081526040808320600c808452828520805486529184528285208590559385905292825282547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01909255815183815291517fe69d655565c7ff1353d8eaeea62fb7904fa9696987431ec351be288c865f1ae19281900390910190a150565b6000610f2e613027565b600981815481106114da57fe5b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60006119e88484846136ed565b509095945050505050565b60076020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020526000908152604090208054600182015460028301546003909301549192909160ff8082169161010090041685565b6060611a58611e3c565b905060005b8151811015611c5d576000828281518110611a7457fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a200000000000000081860152603980820185905282518083039091018152605982018084527fdacb2d01000000000000000000000000000000000000000000000000000000009052605d8201858152607d83019384528151609d840152815195975060009673ffffffffffffffffffffffffffffffffffffffff9095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015611b50578181015183820152602001611b38565b50505050905090810190601f168015611b7d5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015611b9b57600080fd5b505afa158015611baf573d6000803e3d6000fd5b505050506040513d6020811015611bc557600080fd5b505160008381526003602090815260409182902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101611a5d565b5050565b60015473ffffffffffffffffffffffffffffffffffffffff163314611cb75760405162461bcd60e51b81526004018080602001828103825260358152602001806141e76035913960400191505060405180910390fd5b6000546001546040805173ffffffffffffffffffffffffffffffffffffffff938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b6000610d05826135d3565b611d6f613471565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff838116919091179182905560408051929091168252517f3df77beb5db05fcdd70a30fc8adf3f83f9501b68579455adbd100b8180940394916020908290030190a150565b60055473ffffffffffffffffffffffffffffffffffffffff1681565b600d6020526000908152604090205481565b6000806000611e2c8686866136ed565b9250925092505b93509350939050565b606080611e4761373f565b60408051600180825281830190925291925060609190602080830190803883390190505090507f45786368616e676572000000000000000000000000000000000000000000000081600081518110611e9b57fe5b602002602001018181525050611eb1828261379e565b9250505090565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b600c6020526000908152604090205481565b6000611ef182612d21565b517affffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b6000610d058261385a565b611f28613471565b60008311611f7d576040805162461bcd60e51b815260206004820152601a60248201527f6c6f7765724c696d6974206d7573742062652061626f76652030000000000000604482015290519081900360640190fd5b848411611fbb5760405162461bcd60e51b81526004018080602001828103825260278152602001806143bc6027913960400191505060405180910390fd5b611fcc85600263ffffffff6138cd16565b84106120095760405162461bcd60e51b815260040180806020018281038252602e815260200180614323602e913960400191505060405180910390fd5b8483106120475760405162461bcd60e51b81526004018080602001828103825260278152602001806142fc6027913960400191505060405180910390fd5b8180156120515750805b156120a3576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f7420667265657a6520617420626f7468206c696d69747300000000604482015290519081900360640190fd5b6000868152600a6020526040902080546120ed57600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9018790555b858155600181018590556002810184905582806121075750815b156121dc576003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016841515177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1661010084151502179055600061216f886135d3565b6000898152600d6020526040902081905590507ff72828471e37526c68fd812a1fa6eeff993c3f81bd96c0242dc5b3e144145df088856121af57866121b1565b875b604080519283526020830191909152818101849052336060830152519081900360800190a150612216565b6003810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690556000878152600d60205260408120555b600061222188611ee6565b905080156122a457612231613926565b73ffffffffffffffffffffffffffffffffffffffff166357630a4089836040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561228b57600080fd5b505af115801561229f573d6000803e3d6000fd5b505050505b60408051898152602081018990528082018890526060810187905290517f37efb38e92b0f94698f6df0c9070e2f00946862a042ac09e34ae8c547684240a9181900360800190a15050505050505050565b60086020526000908152604090205460ff1681565b612312613471565b60009182526006602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600061235a613697565b6123c986868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a02828101820190935289825290935089925088918291850190849080828437600092019190915250879250613951915050565b9695505050505050565b60608083839050604051908082528060200260200182016040528015612403578160200160208202803883390190505b50905060005b83811015610da15761242c85858381811061242057fe5b90506020020135611ee6565b82828151811061243857fe5b6020908102919091010152600101612409565b606060008383905060405190808252806020026020018201604052801561247c578160200160208202803883390190505b5091506000612489612939565b905060606124c9868680806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250612a7392505050565b905060005b858110156125b5576124de61415f565b6124f98888848181106124ed57fe5b90506020020135612d21565b905080600001517affffffffffffffffffffffffffffffffffffffffffffffffffffff1686838151811061252957fe5b60200260200101818152505084158015612575575087878381811061254a57fe5b905060200201357f705553440000000000000000000000000000000000000000000000000000000014155b156125ac5782828151811061258657fe5b6020026020010151806125a957506125a984826020015164ffffffffff1661300c565b94505b506001016124ce565b5050509250929050565b6125c7613471565b6000818152600a6020526040902054612627576040805162461bcd60e51b815260206004820152601860248201527f4e6f20696e766572746564207072696365206578697374730000000000000000604482015290519081900360640190fd5b6000818152600a60205260408120818155600181018290556002810182905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016905561267a82600b6134f3565b90508015611c5d5760408051838152600060208201819052818301819052606082015290517f37efb38e92b0f94698f6df0c9070e2f00946862a042ac09e34ae8c547684240a9181900360800190a15050565b6000610d0582612a57565b6000818152600a602052604090208054612739576040805162461bcd60e51b815260206004820152601e60248201527f43616e6e6f7420667265657a65206e6f6e2d696e766572736520726174650000604482015290519081900360640190fd5b600381015460ff1615801561275857506003810154610100900460ff16155b6127a9576040805162461bcd60e51b815260206004820152601a60248201527f546865207261746520697320616c72656164792066726f7a656e000000000000604482015290519081900360640190fd5b60006127b483611ee6565b90506000811180156127d857508160010154811015806127d8575081600201548111155b156128b357600182015460038301805460028501548414610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090921693851493909317169190911790556000612851846135d3565b6000858152600d6020908152604091829020839055815187815290810185905280820183905233606082015290519192507ff72828471e37526c68fd812a1fa6eeff993c3f81bd96c0242dc5b3e144145df0919081900360800190a1506113d7565b6040805162461bcd60e51b815260206004820152601260248201527f526174652077697468696e20626f756e64730000000000000000000000000000604482015290519081900360640190fd5b42610258808201909192565b60066020526000908152604090205460ff1681565b60008061292e8484613201565b915091509250929050565b6000612943613bc5565b73ffffffffffffffffffffffffffffffffffffffff166323257c2b7f53797374656d53657474696e67730000000000000000000000000000000000007f726174655374616c65506572696f6400000000000000000000000000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156129db57600080fd5b505afa1580156129ef573d6000803e3d6000fd5b505050506040513d6020811015612a0557600080fd5b5051905090565b6000827f70555344000000000000000000000000000000000000000000000000000000001415612a3e57506000610da5565b612a5082612a4b85612a57565b61300c565b9392505050565b6000612a6282612d21565b6020015164ffffffffff1692915050565b60606000612a7f613027565b905073ffffffffffffffffffffffffffffffffffffffff811615612cee5760608351604051908082528060200260200182016040528015612aca578160200160208202803883390190505b50905060005b8451811015612b595760076000868381518110612ae957fe5b6020026020010151815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828281518110612b2c57fe5b73ffffffffffffffffffffffffffffffffffffffff90921660209283029190910190910152600101612ad0565b506040517f7d723cac00000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835173ffffffffffffffffffffffffffffffffffffffff861693637d723cac93869392839260440191808601910280838360005b83811015612bdc578181015183820152602001612bc4565b505050509050019250505060006040518083038186803b158015612bff57600080fd5b505afa158015612c13573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526020811015612c5a57600080fd5b8101908080516040519392919084640100000000821115612c7a57600080fd5b908301906020820185811115612c8f57600080fd5b8251866020820283011164010000000082111715612cac57600080fd5b82525081516020918201928201910280838360005b83811015612cd9578181015183820152602001612cc1565b505050509050016040525050509250506115ab565b8251604051908082528060200260200182016040528015612d19578160200160208202803883390190505b509392505050565b612d2961415f565b60008281526007602052604090205473ffffffffffffffffffffffffffffffffffffffff16612d5783613bf0565b15612f2b5760408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167ffeaf968c0000000000000000000000000000000000000000000000000000000017815291518151919260009260609273ffffffffffffffffffffffffffffffffffffffff87169286928291908083835b60208310612e1c57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612ddf565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114612e7c576040519150601f19603f3d011682016040523d82523d6000602084013e612e81565b606091505b50915091508115612f235760008060008380602001905160a0811015612ea657600080fd5b50805160208201516060909201516040805180820190915291955091935090915080612ee88b612ed68187613c35565b8769ffffffffffffffffffff16613cde565b7affffffffffffffffffffffffffffffffffffffffffffffffffffff1681526020018264ffffffffff16815250975050505050505050610d08565b5050506115ab565b6000838152600c6020526040902054612f4261415f565b5060008481526004602090815260408083208484528252918290208251808401845290547affffffffffffffffffffffffffffffffffffffffffffffffffffff80821683527b0100000000000000000000000000000000000000000000000000000090910464ffffffffff1692820192909252825180840190935280519092918291612fd19189911686613cde565b7affffffffffffffffffffffffffffffffffffffffffffffffffffff168152602001826020015164ffffffffff168152509350505050610d08565b60004261301f838563ffffffff613e1c16565b109392505050565b6000613031613bc5565b73ffffffffffffffffffffffffffffffffffffffff16639ee5955a7f53797374656d53657474696e67730000000000000000000000000000000000007f61676772656761746f725761726e696e67466c616773000000000000000000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156129db57600080fd5b6000827f705553440000000000000000000000000000000000000000000000000000000014156130fb57506000610da5565b60008381526007602052604090205473ffffffffffffffffffffffffffffffffffffffff16801580613141575073ffffffffffffffffffffffffffffffffffffffff8316155b15613150576000915050610da5565b8273ffffffffffffffffffffffffffffffffffffffff1663357e47fe826040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156131cd57600080fd5b505afa1580156131e1573d6000803e3d6000fd5b505050506040513d60208110156131f757600080fd5b5051949350505050565b600082815260076020526040812054819073ffffffffffffffffffffffffffffffffffffffff1661323185613bf0565b156133c95760408051602480820187905282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9a6fc8f50000000000000000000000000000000000000000000000000000000017815291518151919260009260609273ffffffffffffffffffffffffffffffffffffffff87169286928291908083835b6020831061330557805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090920191602091820191016132c8565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d8060008114613365576040519150601f19603f3d011682016040523d82523d6000602084013e61336a565b606091505b509150915081156133c1576000808280602001905160a081101561338d57600080fd5b50602081015160609091015190925090506133b28a6133ac8185613c35565b8b613cde565b975095506114c6945050505050565b505050613469565b6133d161415f565b5060008581526004602090815260408083208784528252918290208251808401909352547affffffffffffffffffffffffffffffffffffffffffffffffffffff81168084527b0100000000000000000000000000000000000000000000000000000090910464ffffffffff169183019190915261345090879087613cde565b60209091015190935064ffffffffff1691506114c69050565b509250929050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146134c75760405162461bcd60e51b815260040180806020018281038252602f815260200180614243602f913960400191505060405180910390fd5b565b6000612a508383670de0b6b3a7640000613e76565b6000612a508383670de0b6b3a7640000613eb3565b6000805b82548110156135c9578383828154811061350d57fe5b906000526020600020015414156135c15782818154811061352a57fe5b6000918252602082200155825483907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810190811061356557fe5b906000526020600020015483828154811061357c57fe5b60009182526020909120015582546135b6847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83016141a9565b506001915050610da5565b6001016134f7565b5060009392505050565b60008181526007602052604081205473ffffffffffffffffffffffffffffffffffffffff1661360183613bf0565b15613681578073ffffffffffffffffffffffffffffffffffffffff1663668a0f026040518163ffffffff1660e01b815260040160206040518083038186803b15801561364c57600080fd5b505afa158015613660573d6000803e3d6000fd5b505050506040513d602081101561367657600080fd5b50519150610d089050565b50506000818152600c6020526040902054610d08565b60055473ffffffffffffffffffffffffffffffffffffffff1633146134c75760405162461bcd60e51b815260040180806020018281038252602781526020018061421c6027913960400191505060405180910390fd5b60008060006136fb86611ee6565b91508386141561370f575083915080611e33565b61371884611ee6565b90508015611e33576137348161106b878563ffffffff6134c916565b925093509350939050565b604080516001808252818301909252606091602080830190803883390190505090507f466c657869626c6553746f7261676500000000000000000000000000000000008160008151811061378f57fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156137ce578160200160208202803883390190505b50905060005b8351811015613810578381815181106137e957fe5b60200260200101518282815181106137fd57fe5b60209081029190910101526001016137d4565b5060005b82518110156138535782818151811061382957fe5b602002602001015182828651018151811061384057fe5b6020908102919091010152600101613814565b5092915050565b6000613864614176565b506000828152600a6020908152604091829020825160a0810184528154815260018201549281019290925260028101549282019290925260039091015460ff808216151560608401819052610100909204161515608083015280612a5057506080015192915050565b6000826138dc57506000610da5565b828202828482816138e957fe5b0414612a505760405162461bcd60e51b81526004018080602001828103825260218152602001806142726021913960400191505060405180910390fd5b6000610f2e7f45786368616e6765720000000000000000000000000000000000000000000000613ee5565b600082518451146139935760405162461bcd60e51b81526004018080602001828103825260388152602001806142c46038913960400191505060405180910390fd5b610258420182106139eb576040805162461bcd60e51b815260206004820152601f60248201527f54696d6520697320746f6f2066617220696e746f207468652066757475726500604482015290519081900360640190fd5b60005b8451811015613aff576000858281518110613a0557fe5b60200260200101519050848281518110613a1b57fe5b602002602001015160001415613a625760405162461bcd60e51b81526004018080602001828103825260398152602001806143836039913960400191505060405180910390fd5b807f70555344000000000000000000000000000000000000000000000000000000001415613ac15760405162461bcd60e51b81526004018080602001828103825260318152602001806142936031913960400191505060405180910390fd5b613aca81612a57565b841015613ad75750613af7565b613af581868481518110613ae757fe5b602002602001015186613fdb565b505b6001016139ee565b507f1bc0fc8997efa076f59b5ef02c315bc5390f7a6d24d661ce12128c01a3b0ba578484604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015613b67578181015183820152602001613b4f565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015613ba6578181015183820152602001613b8e565b5050505090500194505050505060405180910390a15060019392505050565b6000610f2e7f466c657869626c6553746f726167650000000000000000000000000000000000613ee5565b60008181526006602052604081205460ff16158015610d0557505060009081526007602052604090205473ffffffffffffffffffffffffffffffffffffffff16151590565b600080821215613c8c576040805162461bcd60e51b815260206004820152601b60248201527f4e656761746976652072617465206e6f7420737570706f727465640000000000604482015290519081900360640190fd5b60008381526008602052604090205460ff16156115ab57600083815260086020526040812054613cc19060129060ff16614098565b600a0a9050613cd6838263ffffffff6138cd16565b915050610da5565b6000613ce8614176565b506000848152600a6020908152604091829020825160a08101845281548082526001830154938201939093526002820154938101939093526003015460ff8082161515606085015261010090910416151560808301521580613d48575083155b15613d565783915050612a50565b6000858152600d6020526040902054849250808410801590613d79575081606001515b15613d8a5781602001519250613e13565b808410158015613d9b575081608001515b15613dac5781604001519250613e13565b8151600090613dc290600263ffffffff6138cd16565b9050858111613dd45760009350613de7565b613de4818763ffffffff61409816565b93505b82602001518410613dfe5782602001519350613e11565b82604001518411613e1157826040015193505b505b50509392505050565b600082820183811015612a50576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600a8304613e8d868663ffffffff6138cd16565b81613e9457fe5b0490506005600a825b0610613ea757600a015b600a9004949350505050565b600080613ed984613ecd87600a870263ffffffff6138cd16565b9063ffffffff6140f516565b90506005600a82613e9d565b60008181526003602090815260408083205481517f4d697373696e6720616464726573733a2000000000000000000000000000000093810193909352603180840186905282518085039091018152605190930190915273ffffffffffffffffffffffffffffffffffffffff1690816138535760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613fa0578181015183820152602001613f88565b50505050905090810190601f168015613fcd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000838152600c60209081526040808320805460010190819055815180830183527affffffffffffffffffffffffffffffffffffffffffffffffffffff968716815264ffffffffff9586168185019081529785526004845282852091855292529091209051815494519092167b01000000000000000000000000000000000000000000000000000000029183167fffffffffff00000000000000000000000000000000000000000000000000000090941693909317909116179055565b6000828211156140ef576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080821161414b576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161415657fe5b04949350505050565b604080518082019091526000808252602082015290565b6040518060a001604052806000815260200160008152602001600081526020016000151581526020016000151581525090565b8154818355818111156113d7576000838152602090206113d7918101908301610f3191905b808211156141e257600081556001016141ce565b509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c7920746865206f7261636c652063616e20706572666f726d207468697320616374696f6e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7752617465206f6620705553442063616e6e6f7420626520757064617465642c206974277320616c7761797320554e49542e43757272656e6379206b6579206172726179206c656e677468206d757374206d61746368207261746573206172726179206c656e6774682e6c6f7765724c696d6974206d7573742062652062656c6f772074686520656e747279506f696e7475707065724c696d6974206d757374206265206c657373207468616e20646f75626c6520656e747279506f696e7441676772656761746f7220646563696d616c732073686f756c64206265206c6f776572206f7220657175616c20746f2031385a65726f206973206e6f7420612076616c696420726174652c20706c656173652063616c6c2064656c6574655261746520696e73746561642e75707065724c696d6974206d7573742062652061626f76652074686520656e747279506f696e74a265627a7a72315820aad6e657c9957994f42fe5d035b09b42c3a1504f66917e9ad3d3f3e18eecf9e964736f6c6343000510003243757272656e6379206b6579206c656e67746820616e642072617465206c656e677468206d757374206d617463682e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7752617465206f6620705553442063616e6e6f7420626520757064617465642c206974277320616c7761797320554e49542e43757272656e6379206b6579206172726179206c656e677468206d757374206d61746368207261746573206172726179206c656e6774682e5a65726f206973206e6f7420612076616c696420726174652c20706c656173652063616c6c2064656c6574655261746520696e73746561642e",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_oracle",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32[]",
							"name": "_currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_newRates",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "aggregator",
							"type": "address"
						}
					],
					"name": "AggregatorAdded",
					"type": "event",
					"signature": "0x0bcae573430f69c5361e5d76534d3f61d2d803958778680cd74be9dc6299bc63"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "aggregator",
							"type": "address"
						}
					],
					"name": "AggregatorRemoved",
					"type": "event",
					"signature": "0xec70e890fc7db7de4059b114c9093a1f41283d18ffcfbcac45566feea4d4f777"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "entryPoint",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "upperLimit",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "lowerLimit",
							"type": "uint256"
						}
					],
					"name": "InversePriceConfigured",
					"type": "event",
					"signature": "0x37efb38e92b0f94698f6df0c9070e2f00946862a042ac09e34ae8c547684240a"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "roundId",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "initiator",
							"type": "address"
						}
					],
					"name": "InversePriceFrozen",
					"type": "event",
					"signature": "0xf72828471e37526c68fd812a1fa6eeff993c3f81bd96c0242dc5b3e144145df0"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOracle",
							"type": "address"
						}
					],
					"name": "OracleUpdated",
					"type": "event",
					"signature": "0x3df77beb5db05fcdd70a30fc8adf3f83f9501b68579455adbd100b8180940394"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "RateDeleted",
					"type": "event",
					"signature": "0xe69d655565c7ff1353d8eaeea62fb7904fa9696987431ec351be288c865f1ae1"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"indexed": false,
							"internalType": "uint256[]",
							"name": "newRates",
							"type": "uint256[]"
						}
					],
					"name": "RatesUpdated",
					"type": "event",
					"signature": "0x1bc0fc8997efa076f59b5ef02c315bc5390f7a6d24d661ce12128c01a3b0ba57"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "aggregatorAddress",
							"type": "address"
						}
					],
					"name": "addAggregator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3f0e084f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "aggregatorKeys",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4f72def6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "aggregatorWarningFlags",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4c36b837"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "aggregators",
					"outputs": [
						{
							"internalType": "contract AggregatorV2V3Interface",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7103353e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "anyRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0a7d36d1"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "canFreezeRate",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3375fcd1"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "aggregator",
							"type": "address"
						}
					],
					"name": "currenciesUsingAggregator",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencies",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2678df96"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "currencyByExternal",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeedb421e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "currencyKeyDecimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb295ad34"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "currentRoundForRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x935f4abd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "deleteRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x45938849"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "effectiveValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x654a60ac"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "effectiveValueAndRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "sourceRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "destinationRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8295016a"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"name": "effectiveValueAtRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x266da16b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "freezeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xde02795e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getCurrentRoundId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7a018a1e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "startingRoundId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "startingTimestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timediff",
							"type": "uint256"
						}
					],
					"name": "getLastRoundIdBeforeElapsedSecs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x109e46a2"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "inversePricing",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryPoint",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "upperLimit",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lowerLimit",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "frozenAtUpperLimit",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "frozenAtLowerLimit",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x728dec29"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "invertedKeys",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2ea913d4"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "lastRateUpdateTimes",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xce8480ea"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "lastRateUpdateTimesForCurrencies",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x05a046e5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nowPlusLimit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xde630ba7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "oracle",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7dc0d1d0"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateAndInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0c71cd23"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "roundId",
							"type": "uint256"
						}
					],
					"name": "rateAndTimestampAtRound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfdadbc7e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateAndUpdatedTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4308a94f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateForCurrency",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xac82f608"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsFlagged",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x38aa1b99"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsFrozen",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaf3aea86"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2528f0fe"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "rateIsStale",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x009919c0"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rateStalePeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0ee4951b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "ratesAndInvalidForCurrencies",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "rates",
							"type": "uint256[]"
						},
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc8e5bbd5"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "numRounds",
							"type": "uint256"
						}
					],
					"name": "ratesAndUpdatedTimeForCurrencyLastNRounds",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "rates",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "times",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2d7371e1"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "ratesForCurrencies",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc2c8a676"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeAggregator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2bed9e0c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeInversePricing",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc8e6f395"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "roundFrozen",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7f6e9d15"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "_set",
							"type": "bool"
						}
					],
					"name": "setCurrencyToExternalAggregator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbecb1954"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "entryPoint",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "upperLimit",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lowerLimit",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "freezeAtUpperLimit",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "freezeAtLowerLimit",
							"type": "bool"
						}
					],
					"name": "setInversePricing",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb199c764"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_oracle",
							"type": "address"
						}
					],
					"name": "setOracle",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7adbf973"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "newRates",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256",
							"name": "timeSent",
							"type": "uint256"
						}
					],
					"name": "updateRates",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbfa005ce"
				}
			],
			"source": {
				"keccak256": "0x492c833a6ecb6550ce6f29d18038238a0009e7f47f4692e892cea695acc0f954",
				"urls": [
					"bzz-raw://439027d568a3248c1b772c0119cc51f5f18c960d1823073527484f1fcfed0a41",
					"dweb:/ipfs/Qmb9rJE4A25mdn9Rsxkmw2LQbtMwApSNT3pPxJe7BcT9xB"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeRates.sol": "ExchangeRates"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 20000
					},
					"remappings": []
				},
				"sources": {
					"ExchangeRates.sol": {
						"keccak256": "0x492c833a6ecb6550ce6f29d18038238a0009e7f47f4692e892cea695acc0f954",
						"urls": [
							"bzz-raw://439027d568a3248c1b772c0119cc51f5f18c960d1823073527484f1fcfed0a41",
							"dweb:/ipfs/Qmb9rJE4A25mdn9Rsxkmw2LQbtMwApSNT3pPxJe7BcT9xB"
						]
					}
				},
				"version": 1
			}
		},
		"RewardEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506040516112e23803806112e28339818101604052606081101561003357600080fd5b5080516020820151604090920151909190826001600160a01b0381166100a0576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039384166001600160a01b03199182161790915560038054929093169116179055506111ad806101356000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636b3905c4116100de5780639b217f9011610097578063cb5147b211610071578063cb5147b21461045d578063d0cc82e314610483578063da7bd3e91461048b578063ee1d036c146104b757610173565b80639b217f90146103fd578063ae2e933b14610429578063b5ddb9c71461043157610173565b80636b3905c41461037357806370a082311461039957806371e780f3146103bf57806379ba5097146103c75780638da5cb5b146103cf57806397f46527146103d757610173565b8063326a3cfb11610130578063326a3cfb146102ab578063449d0eb1146102d1578063458efde31461030d57806345e5441f146103155780634e5a60911461034757806353a47bb71461036b57610173565b80631627540c1461017857806319db2228146101a057806319e740c0146101c6578063204b676a146101fe578063227d517a146102245780632f5bb6611461024a575b600080fd5b61019e6004803603602081101561018e57600080fd5b50356001600160a01b03166104e3565b005b61019e600480360360208110156101b657600080fd5b50356001600160a01b031661053f565b6101ec600480360360208110156101dc57600080fd5b50356001600160a01b031661059b565b60408051918252519081900360200190f35b6101ec6004803603602081101561021457600080fd5b50356001600160a01b03166105dd565b6101ec6004803603602081101561023a57600080fd5b50356001600160a01b03166105f8565b6102706004803603602081101561026057600080fd5b50356001600160a01b031661060a565b6040518082600260200280838360005b83811015610298578181015183820152602001610280565b5050505090500191505060405180910390f35b6101ec600480360360208110156102c157600080fd5b50356001600160a01b031661065b565b6102f7600480360360208110156102e757600080fd5b50356001600160a01b031661066d565b6040518151815280826141008083836020610280565b61019e6106f3565b6101ec6004803603606081101561032b57600080fd5b506001600160a01b0381351690602081013590604001356108dc565b61034f610918565b604080516001600160a01b039092168252519081900360200190f35b61034f610927565b6101ec6004803603602081101561038957600080fd5b50356001600160a01b0316610936565b6101ec600480360360208110156103af57600080fd5b50356001600160a01b031661094f565b6101ec61096a565b61019e610970565b61034f610a2c565b6101ec600480360360208110156103ed57600080fd5b50356001600160a01b0316610a3b565b6101ec6004803603604081101561041357600080fd5b506001600160a01b038135169060200135610a4d565b61034f610a68565b61019e6004803603604081101561044757600080fd5b506001600160a01b038135169060200135610a77565b61019e6004803603602081101561047357600080fd5b50356001600160a01b0316610ad0565b6101ec610b2c565b610270600480360360408110156104a157600080fd5b506001600160a01b038135169060200135610b32565b6101ec600480360360408110156104cd57600080fd5b506001600160a01b038135169060200135610ba1565b6104eb610bb4565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610547610bb4565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb62959181900360200190a150565b6000806105a7836105dd565b905060005b818110156105d4576105be8482610a4d565b156105cc5791506105d89050565b6001016105ac565b5090505b919050565b6001600160a01b031660009081526004602052604090205490565b60066020526000908152604090205481565b610612610f98565b600061061d8361059b565b9050610628836105dd565b81141561064a57505060408051808201909152600080825260208201526105d8565b6106548382610b32565b9392505050565b60056020526000908152604090205481565b610675610fb6565b61067d610fb6565b6000610688846105dd565b905060005b818110156106ea5761069d610f98565b6106a78683610b32565b8051909150846002840261020881106106bc57fe5b60200201528060016020020151848360020260010161020881106106dc57fe5b60200201525060010161068d565b50909392505050565b60006106fe336105dd565b90506000805b828110156107a35760006107183383610a4d565b90504281111561072857506107a3565b60006107343384610ba1565b905080156107995760408051808201825260008082526020808301829052338252600490529190912080548590811061076957fe5b9060005260206000209060020201906002610785929190610fd6565b50610796848263ffffffff610bff16565b93505b5050600101610704565b5080156108d8576007546107bd908263ffffffff610c5916565b600755336000908152600560205260409020546107e0908263ffffffff610c5916565b3360009081526005602090815260408083209390935560069052205461080c908263ffffffff610bff16565b33600081815260066020908152604080832094909455600254845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b15801561087157600080fd5b505af1158015610885573d6000803e3d6000fd5b505050506040513d602081101561089b57600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b600460205282600052604060002082815481106108f557fe5b9060005260206000209060020201816002811061090e57fe5b0154925083915050565b6002546001600160a01b031681565b6001546001600160a01b031681565b60006109418261060a565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b60075481565b6001546001600160a01b031633146109b95760405162461bcd60e51b81526004018080602001828103825260358152602001806110656035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6000610a468261060a565b6001610944565b6000610a598383610b32565b60005b60200201519392505050565b6003546001600160a01b031681565b6003546001600160a01b0316331480610ac15760405162461bcd60e51b81526004018080602001828103825260328152602001806111476032913960400191505060405180910390fd5b610acb8383610cb6565b505050565b610ad8610bb4565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1ab074efe68c89675990cfa3fe943dd7897b3b9318e47a8faad4a41c9ff1aee89181900360200190a150565b61010481565b610b3a610f98565b6001600160a01b0383166000908152600460205260409020805483908110610b5e57fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311610b81575050505050905092915050565b6000610bad8383610b32565b6001610a5c565b6000546001600160a01b03163314610bfd5760405162461bcd60e51b815260040180806020018281038252602f815260200180611118602f913960400191505060405180910390fd5b565b600082820183811015610654576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115610cb0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b80610d08576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b600754610d1b908263ffffffff610bff16565b600755600254604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610d6957600080fd5b505afa158015610d7d573d6000803e3d6000fd5b505050506040513d6020811015610d9357600080fd5b50516007541115610dd55760405162461bcd60e51b81526004018080602001828103825260478152602001806110d16047913960600191505060405180910390fd5b6001600160a01b038216600090815260046020526040902054610104811115610e45576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b6301dfe200420181610e71576001600160a01b0384166000908152600560205260409020839055610efe565b80610e7f8560018503610a4d565b10610ebb5760405162461bcd60e51b815260040180806020018281038252603781526020018061109a6037913960400191505060405180910390fd5b6001600160a01b038416600090815260056020526040902054610ee4908463ffffffff610bff16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925284825281830187905280546001810180835591855292909320610f4d9260029081029091019190611019565b5050604080514281526020810185905281516001600160a01b038716927fedd34dc5a5ea12bd847909801d0660781b50e26c7f4cec3c7b308f1ea410635c928290030190a250505050565b60405180604001604052806002906020820280388339509192915050565b604051806141000160405280610208906020820280388339509192915050565b8260028101928215611009579160200282015b82811115611009578251829060ff16905591602001919060010190610fe9565b50611015929150611047565b5090565b8260028101928215611009579160200282015b8281111561100957825182559160200191906001019061102c565b61106191905b80821115611015576000815560010161104d565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c792074686520466565506f6f6c20636f6e7472616374732063616e20706572666f726d207468697320616374696f6ea265627a7a723158207b9dca2aa3aab698e8a75b25cfb631b870a5ca3534583d1935109b60637f1f4164736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract IPeriFinance",
							"name": "_periFinance",
							"type": "address"
						},
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newFeePool",
							"type": "address"
						}
					],
					"name": "FeePoolUpdated",
					"type": "event",
					"signature": "0x6d1d088acfe4f30d6014f6f693c61c16258f9784a6ed8439b2c59213eecb6295"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newPeriFinance",
							"type": "address"
						}
					],
					"name": "PeriFinanceUpdated",
					"type": "event",
					"signature": "0x1ab074efe68c89675990cfa3fe943dd7897b3b9318e47a8faad4a41c9ff1aee8"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Vested",
					"type": "event",
					"signature": "0xfbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "VestingEntryCreated",
					"type": "event",
					"signature": "0xedd34dc5a5ea12bd847909801d0660781b50e26c7f4cec3c7b308f1ea410635c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_VESTING_ENTRIES",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd0cc82e3"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "quantity",
							"type": "uint256"
						}
					],
					"name": "appendVestingEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb5ddb9c7"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x70a08231"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "checkAccountSchedule",
					"outputs": [
						{
							"internalType": "uint256[520]",
							"name": "",
							"type": "uint256[520]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x449d0eb1"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePool",
					"outputs": [
						{
							"internalType": "contract IFeePool",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xae2e933b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2f5bb661"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x19e740c0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x97f46527"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6b3905c4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xee1d036c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingScheduleEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xda7bd3e9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9b217f90"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "numVestingEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x204b676a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "periFinance",
					"outputs": [
						{
							"internalType": "contract IPeriFinance",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4e5a6091"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"name": "setFeePool",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x19db2228"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IPeriFinance",
							"name": "_periFinance",
							"type": "address"
						}
					],
					"name": "setPeriFinance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xcb5147b2"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalEscrowedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x326a3cfb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalEscrowedBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x71e780f3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x227d517a"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "vest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x458efde3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x45e5441f"
				}
			],
			"source": {
				"keccak256": "0xd47b2e609924b3f2faf1d18ec475893c9e6799fec86975fd8e01e93ef6898c4b",
				"urls": [
					"bzz-raw://bdf16d71ac5678e08c6d445b9b8cf04c2ec9fbe5a89dee47d2fb0057ffca7e05",
					"dweb:/ipfs/QmWDB92zQQiF2DihaB6HCQ6HN5kP331gQXCPjoHvFDssxV"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardEscrow.sol": "RewardEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardEscrow.sol": {
						"keccak256": "0xd47b2e609924b3f2faf1d18ec475893c9e6799fec86975fd8e01e93ef6898c4b",
						"urls": [
							"bzz-raw://bdf16d71ac5678e08c6d445b9b8cf04c2ec9fbe5a89dee47d2fb0057ffca7e05",
							"dweb:/ipfs/QmWDB92zQQiF2DihaB6HCQ6HN5kP331gQXCPjoHvFDssxV"
						]
					}
				},
				"version": 1
			}
		},
		"RewardEscrowV2": {
			"bytecode": "608060408190526303bfc400600c556224ea00600d5562093a80600e55630241ebdb60e61b815273__$58c62a0096148744468f14ce5088c1760d$__9063907af6c09060849060209060048186803b1580156200005b57600080fd5b505af415801562000070573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250620000969190810190620001f1565b6103e802601155348015620000aa57600080fd5b5060405162003eba38038062003eba833981016040819052620000cd91620001b2565b8181806249d400836001600160a01b038116620001075760405162461bcd60e51b8152600401620000fe9062000297565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c916200015491849062000271565b60405180910390a1504201600255600380546001600160a01b0319166001600160a01b03929092169190911790555050600160075550620003009050565b80516200019f81620002db565b92915050565b80516200019f81620002f5565b60008060408385031215620001c657600080fd5b6000620001d4858562000192565b9250506020620001e78582860162000192565b9150509250929050565b6000602082840312156200020457600080fd5b6000620002128484620001a5565b949350505050565b6200022581620002c7565b82525050565b6200022581620002b2565b600062000245601983620002a9565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200028182856200021a565b6200029060208301846200022b565b9392505050565b602080825281016200019f8162000236565b90815260200190565b60006001600160a01b0382166200019f565b90565b60006200019f8260006200019f82620002b2565b620002e681620002b2565b8114620002f257600080fd5b50565b620002e681620002c4565b613baa80620003106000396000f3fe608060405234801561001057600080fd5b506004361061027f5760003560e01c806370a082311161015c5780638da5cb5b116100ce578063b95375bd11610087578063b95375bd1461052e578063cd7b43dd14610541578063d621a16914610554578063e6b2cf6c14610567578063eac624891461056f578063f0b882ba1461058f5761027f565b80638da5cb5b146104dd578063910a326d146104e55780639ad6a7e5146104ed578063a0416ed3146104f5578063ae58254914610508578063b0fd59631461051b5761027f565b80637839b92f116101205780637839b92f146104665780637993e6991461047957806379ba50971461048c5780637cc1d7561461049457806380d46f58146104a7578063899ffef4146104c85761027f565b806370a082311461041057806371e780f31461042357806373307e401461042b578063741853601461043e578063773ab39f146104465761027f565b8063326a3cfb116101f557806346ba2d90116101b957806346ba2d90146103b257806353a47bb7146103ba5780635b85c200146103cf5780635eb8cf25146103e25780636154c343146103ea5780636dc05bd3146103fd5761027f565b8063326a3cfb1461035057806334c7fec91461036357806337088ffc146103765780634525aabc1461037e57806345626bd6146103915761027f565b8063178c565511610247578063178c5655146102f45780631bb47b44146102fc578063204b676a1461030f578063227d517a146103225780632af64bd31461033557806330104c5f1461033d5761027f565b8063018c6c551461028457806304f3bcec1461029957806305662986146102b75780630fcdefb7146102cc5780631627540c146102e1575b600080fd5b610297610292366004612c2b565b6105a2565b005b6102a16105ea565b6040516102ae91906137fc565b60405180910390f35b6102bf6105f9565b6040516102ae91906137b2565b6102d461061a565b6040516102ae91906137c0565b6102976102ef36600461292f565b610620565b610297610673565b61029761030a366004612a61565b6106d0565b6102d461031d36600461292f565b610721565b6102d461033036600461292f565b61073c565b6102bf61074e565b6102d461034b3660046129c0565b610865565b6102d461035e36600461292f565b6108c4565b610297610371366004612bcc565b6108d6565b6102d461098c565b61029761038c366004612c2b565b610992565b6103a461039f3660046129c0565b6109cf565b6040516102ae929190613a51565b6102d46109ff565b6103c2610a05565b6040516102ae9190613665565b6102976103dd366004612c2b565b610a14565b6102d4610a51565b6103a46103f83660046129c0565b610a57565b6102d461040b36600461296b565b610a91565b6102d461041e36600461292f565b610b3e565b6102d4610b59565b6103c261043936600461292f565b610b5f565b610297610b7a565b610459610454366004612a61565b610cd0565b6040516102ae9190613759565b61029761047436600461292f565b610e70565b610297610487366004612c2b565b61116e565b6102976111cd565b6102976104a236600461292f565b611269565b6104ba6104b536600461296b565b6113b9565b6040516102ae9291906139ab565b6104d0611642565b6040516102ae9190613748565b6103c2611710565b6102d461171f565b6102d4611725565b610297610503366004612a61565b61172b565b6102d46105163660046129c0565b6117f6565b6102d461052936600461292f565b611824565b61029761053c366004612b10565b611836565b61029761054f3660046129fa565b611a21565b610297610562366004612aae565b611a2f565b6102d4611bf0565b61058261057d366004612a61565b611bf6565b6040516102ae91906137a1565b61029761059d36600461296b565b611ce2565b6105aa61201e565b600d8190556040517fe829efae5d8a2f7163f46c23a8190bf14625c1e446561ca0f5cf279ab7c8015e906105df9083906137c0565b60405180910390a150565b6003546001600160a01b031681565b600042610613600e54600f5461204a90919063ffffffff16565b1190505b90565b600f5481565b61062861201e565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906105df908390613665565b61067b61201e565b42600f819055600e547fceade2b9bc02350b17075c94bb699508b89ed2752f501ea42024b1bb5fd3444591906106b890829063ffffffff61204a16565b6040516106c69291906139cb565b60405180910390a1565b6106d861206f565b6001600160a01b0316336001600160a01b0316146107115760405162461bcd60e51b81526004016107089061396b565b60405180910390fd5b61071c838383612089565b505050565b6001600160a01b031660009081526006602052604090205490565b60096020526000908152604090205481565b6000606061075a611642565b905060005b815181101561085c57600082828151811061077657fe5b60209081029190910181015160008181526004928390526040908190205460035491516321f8a72160e01b81529294506001600160a01b03908116939116916321f8a721916107c7918691016137c0565b60206040518083038186803b1580156107df57600080fd5b505afa1580156107f3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610817919081019061294d565b6001600160a01b031614158061084257506000818152600460205260409020546001600160a01b0316155b156108535760009350505050610617565b5060010161075f565b50600191505090565b600061086f6127a0565b506001600160a01b0383166000908152600560209081526040808320858452825291829020825180840190935280546001600160401b0316835260010154908201526108ba816122a1565b9150505b92915050565b60086020526000908152604090205481565b6000805b8281101561097b57336000908152600560205260408120818686858181106108fe57fe5b90506020020135815260200190815260200160002090508060010154600014610972576040805180820190915281546001600160401b031681526001820154602082015260009061094e906122a1565b9050801561095e57600060018301555b61096e848263ffffffff61204a16565b9350505b506001016108da565b50801561071c5761071c33826122d2565b600d5481565b61099a61201e565b600c8190556040517f6b92bd20c4b2e6861047ba7209ddc78d538419aae187d0df46716b827b8997a4906105df9083906137c0565b6005602090815260009283526040808420909152908252902080546001909101546001600160401b039091169082565b60025481565b6001546001600160a01b031681565b610a1c61201e565b60118190556040517f7829b48ec37298e3e9b1cb2971e47abc072159681eaf558f8649a25d66ef8672906105df9083906137c0565b600c5481565b6001600160a01b039190911660009081526005602090815260408083209383529290522080546001909101546001600160401b0390911691565b6000805b82811015610b3657610aa56127a0565b6001600160a01b038616600090815260056020526040812090868685818110610aca57fe5b60209081029290920135835250818101929092526040908101600020815180830190925280546001600160401b0316825260010154918101829052915015610b2d576000610b17826122a1565b9050610b29848263ffffffff61204a16565b9350505b50600101610a95565b509392505050565b6001600160a01b031660009081526008602052604090205490565b600b5481565b600a602052600090815260409020546001600160a01b031681565b6060610b84611642565b905060005b8151811015610ccc576000828281518110610ba057fe5b602002602001015190506000600360009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610be2919061365a565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610c0e9291906137dc565b60206040518083038186803b158015610c2657600080fd5b505afa158015610c3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c5e919081019061294d565b6000838152600460205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610cba90849084906137ce565b60405180910390a15050600101610b89565b5050565b6060828201838111610d16576040805160008082526020820190925290610d0d565b610cfa6127b7565b815260200190600190039081610cf25790505b50915050610e69565b6001600160a01b038516600090815260066020526040902054811115610d5157506001600160a01b0384166000908152600660205260409020545b604080518583038082526020808202830101909252606090828015610d9057816020015b610d7d6127b7565b815260200190600190039081610d755790505b50905060005b82811015610e63576001600160a01b03881660009081526006602052604081208054838a01908110610dc457fe5b90600052602060002001549050610dd96127a0565b506001600160a01b03891660009081526005602090815260408083208484528252918290208251808401845281546001600160401b03908116825260019092015481840190815284516060810186528251909316835251928201929092529182018390528451909190859085908110610e4e57fe5b60209081029190910101525050600101610d96565b50925050505b9392505050565b610e786123ed565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015610eb057600080fd5b505afa158015610ec4573d6000803e3d6000fd5b505050506001600160a01b038116600090815260106020526040902054610efd5760405162461bcd60e51b8152600401610708906138ab565b6001600160a01b038116600090815260086020526040902054610f325760405162461bcd60e51b81526004016107089061398b565b6011546001600160a01b03821660009081526010602052604090205411610fbd57610f9f816040518060400160405280426001600160401b0316815260200160106000866001600160a01b03166001600160a01b0316815260200190815260200160002054815250612407565b6001600160a01b03811660009081526010602052604081205561116b565b6000610fc7612465565b6001600160a01b031663204b676a836040518263ffffffff1660e01b8152600401610ff29190613665565b60206040518083038186803b15801561100a57600080fd5b505afa15801561101e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110429190810190612c49565b905060015b81811161071c576110566127e1565b61105e612465565b6001600160a01b031663da7bd3e9858486036040518363ffffffff1660e01b815260040161108d92919061372d565b604080518083038186803b1580156110a457600080fd5b505afa1580156110b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110dc9190810190612bae565b8051602082015191925090428210156110f75750505061071c565b61111e866040518060400160405280856001600160401b0316815260200184815250612407565b6001600160a01b038616600090815260106020526040902054611147908263ffffffff61247f16565b6001600160a01b038716600090815260106020526040902055505050600101611047565b50565b61117661201e565b600d548111156111985760405162461bcd60e51b81526004016107089061395b565b600e8190556040517f723c43349da7aeae47190396f2e2fbe6bedb46b9e9705bc5b908d65bc7a1e0e6906105df9083906137c0565b6001546001600160a01b031633146111f75760405162461bcd60e51b81526004016107089061381b565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261123a926001600160a01b0391821692911690613704565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001600160a01b0381163314156112925760405162461bcd60e51b8152600401610708906138fb565b61129a6105f9565b6112b65760405162461bcd60e51b8152600401610708906138db565b6112be6124a7565b6001600160a01b031663d37c4d8b336040518263ffffffff1660e01b81526004016112e991906136a3565b60206040518083038186803b15801561130157600080fd5b505afa158015611315573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113399190810190612c49565b156113565760405162461bcd60e51b81526004016107089061399b565b336000818152600a60205260409081902080546001600160a01b0319166001600160a01b038516179055517fcf51776bb16e5780edcca2e64a9ba8a9c7d5d00a6699cbd7606e465361ba4852906113ae908490613665565b60405180910390a250565b600060606113c56124bb565b6001600160a01b0316336001600160a01b0316146113f55760405162461bcd60e51b81526004016107089061382b565b826114125760405162461bcd60e51b81526004016107089061390b565b60408051848152602080860282010190915283801561144b57816020015b6114386127a0565b8152602001906001900390816114305790505b50905060005b83811015611552576001600160a01b03861660009081526005602052604081208187878581811061147e57fe5b9050602002013581526020019081526020016000209050600081600101541115611549576040805180820190915281546001600160401b031681526001820154602082015283518490849081106114d157fe5b60200260200101819052506114f381600101548561204a90919063ffffffff16565b6001600160a01b038816600090815260056020526040812091955087878581811061151a57fe5b602090810292909201358352508101919091526040016000908120805467ffffffffffffffff19168155600101555b50600101611451565b5081156115f35761156385836124e6565b61156b612545565b6001600160a01b031663a9059cbb6115816124bb565b846040518363ffffffff1660e01b815260040161159f92919061372d565b602060405180830381600087803b1580156115b957600080fd5b505af11580156115cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115f19190810190612c0d565b505b846001600160a01b03167f929c8a2a06883affd05f43baf52398dbbfb6930730ce1bdb2cfe413cd44b107c85858542604051611632949392919061376a565b60405180910390a2935093915050565b60608061164d61255e565b60408051600380825260808201909252919250606091906020820183803883390190505090507f5065726946696e616e6365427269646765546f4f7074696d69736d0000000000816000815181106116a157fe5b6020026020010181815250506b526577617264457363726f7760a01b816001815181106116ca57fe5b6020026020010181815250506b53797374656d53746174757360a01b816002815181106116f357fe5b60200260200101818152505061170982826125f2565b9250505090565b6000546001600160a01b031681565b600e5481565b60115481565b6001600160a01b0383166117515760405162461bcd60e51b81526004016107089061386b565b611759612545565b6001600160a01b03166323b872dd3330856040518463ffffffff1660e01b815260040161178893929190613673565b602060405180830381600087803b1580156117a257600080fd5b505af11580156117b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117da9190810190612c0d565b6107115760405162461bcd60e51b8152600401610708906138eb565b6006602052816000526040600020818154811061180f57fe5b90600052602060002001600091509150505481565b60106020526000908152604090205481565b60025442106118575760405162461bcd60e51b81526004016107089061394b565b61185f61201e565b84831461187e5760405162461bcd60e51b81526004016107089061397b565b84811461189d5760405162461bcd60e51b81526004016107089061389b565b60005b85811015611a185760008787838181106118b657fe5b90506020020160206118cb919081019061292f565b905060008686848181106118db57fe5b90506020020135905060008585858181106118f257fe5b6001600160a01b03861660009081526010602090815260409091205491029290920135925050156119355760405162461bcd60e51b81526004016107089061383b565b600b54611948908363ffffffff61204a16565b600b556001600160a01b038316600090815260086020526040902054611974908363ffffffff61204a16565b6001600160a01b0384166000908152600860209081526040808320939093556009905220546119a9908263ffffffff61204a16565b6001600160a01b0384166000818152600960209081526040808320949094556010905282902084905590517fa2a5ac2d2500e30aea994fc4bc99ef5535241c79d428e43c3fe204862f2874d690611a05908590859042906139d9565b60405180910390a25050506001016118a0565b50505050505050565b611a296126ae565b50505050565b6002544210611a505760405162461bcd60e51b81526004016107089061394b565b611a5861201e565b828114611a775760405162461bcd60e51b81526004016107089061393b565b60005b83811015611be9576000858583818110611a9057fe5b9050602002016020611aa5919081019061292f565b90506000848484818110611ab557fe5b905060200201359050600060086000846001600160a01b03166001600160a01b031681526020019081526020016000205411611b035760405162461bcd60e51b81526004016107089061398b565b6001600160a01b038216600090815260106020526040902054611b385760405162461bcd60e51b8152600401610708906138ab565b611b5f826040518060400160405280426001600160401b0316815260200184815250612407565b6001600160a01b038216600090815260106020526040902054611b88908263ffffffff61247f16565b6001600160a01b038316600081815260106020526040908190209290925590517f73cefcb01ff86c575a4fbf40317a93c37b7312e0b294e588ee24b312e4f97cc490611bd790429085906139cb565b60405180910390a25050600101611a7a565b5050505050565b60075481565b6001600160a01b03831660009081526006602052604090205460609083830190811115611c3857506001600160a01b0384166000908152600660205260409020545b838111611c55576040805160008082526020820190925290610d0d565b604080518583038082526020808202830101909252606090828015611c84578160200160208202803883390190505b50905060005b82811015610e63576001600160a01b03881660009081526006602052604090208054828901908110611cb857fe5b9060005260206000200154828281518110611ccf57fe5b6020908102919091010152600101611c8a565b611cea6105f9565b611d065760405162461bcd60e51b8152600401610708906138db565b611d0e6124a7565b6001600160a01b031663d37c4d8b846040518263ffffffff1660e01b8152600401611d39919061371f565b60206040518083038186803b158015611d5157600080fd5b505afa158015611d65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d899190810190612c49565b15611da65760405162461bcd60e51b81526004016107089061399b565b6001600160a01b038381166000908152600a6020526040902054163314611ddf5760405162461bcd60e51b81526004016107089061392b565b6000805b82811015611f5e57611df36127a0565b6001600160a01b038616600090815260056020526040812090868685818110611e1857fe5b60209081029290920135835250818101929092526040908101600020815180830190925280546001600160401b0316825260010154918101829052915015611f55573360009081526005602052604081208291878786818110611e7757fe5b60209081029290920135835250818101929092526040016000208251815467ffffffffffffffff19166001600160401b0390911617815591810151600190920191909155810151611ec990849061204a565b336000908152600660205260409020909350858584818110611ee757fe5b8354600181018555600094855260208086209281029490940135910155506001600160a01b0388168252600590526040812090868685818110611f2657fe5b602090810292909201358352508101919091526040016000908120805467ffffffffffffffff19168155600101555b50600101611de3565b506001600160a01b038416600090815260086020526040902054611f88908263ffffffff61247f16565b6001600160a01b038516600090815260086020526040808220929092553381522054611fba908263ffffffff61204a16565b33600081815260086020526040908190209290925590516001600160a01b038616917f48d567deaa7db90f8a443344e519ca8906521ffe118e1df43e89a3c257963f7c91612010919085908890889042906136bd565b60405180910390a250505050565b6000546001600160a01b031633146120485760405162461bcd60e51b81526004016107089061391b565b565b600082820183811015610e695760405162461bcd60e51b81526004016107089061384b565b600061208466119959541bdbdb60ca1b6126c6565b905090565b816120a65760405162461bcd60e51b8152600401610708906138bb565b6000811180156120b85750600c548111155b6120d45760405162461bcd60e51b81526004016107089061385b565b600b546120e7908363ffffffff61204a16565b600b556120f2612545565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161211d9190613665565b60206040518083038186803b15801561213557600080fd5b505afa158015612149573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061216d9190810190612c49565b600b54111561218e5760405162461bcd60e51b8152600401610708906138cb565b6001600160a01b038316600090815260086020526040902054428201906121bb908463ffffffff61204a16565b6001600160a01b03851660008181526008602090815260408083209490945560078054855180870187526001600160401b0388811682528185018b81528787526005865288872084885286528887209251835467ffffffffffffffff1916921691909117825551600191820155948452600683529483208054808601825590845291909220018390555461224e9161204a565b6007556040516001600160a01b038616907f2cc016694185d38abbe28d9e9baea2e9d95a321ae43475e5ea7b643756840bc0906122929042908890889087906139f4565b60405180910390a25050505050565b60008082602001516000146108be5782516001600160401b03164210156122c9576000610e69565b50506020015190565b6122dc82826124e6565b6001600160a01b038216600090815260096020526040902054612305908263ffffffff61204a16565b6001600160a01b038316600090815260096020526040902055612326612545565b6001600160a01b031663a9059cbb83836040518363ffffffff1660e01b815260040161235392919061372d565b602060405180830381600087803b15801561236d57600080fd5b505af1158015612381573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123a59190810190612c0d565b50816001600160a01b03167ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc642836040516123e19291906139cb565b60405180910390a25050565b60006120846b53797374656d53746174757360a01b6126c6565b60006124138383612723565b602083015183516040519293506001600160a01b038616927fa0ba170b0a148bd927eafc64518e6c9d92eba1ea1fdf703dd8cfee6d329012bb92612458928692613a29565b60405180910390a2505050565b60006120846b526577617264457363726f7760a01b6126c6565b6000828211156124a15760405162461bcd60e51b81526004016107089061387b565b50900390565b60006120846524b9b9bab2b960d11b6126c6565b60006120847f5065726946696e616e6365427269646765546f4f7074696d69736d00000000006126c6565b600b546124f9908263ffffffff61247f16565b600b556001600160a01b038216600090815260086020526040902054612525908263ffffffff61247f16565b6001600160a01b0390921660009081526008602052604090209190915550565b60006120846a5065726946696e616e636560a81b6126c6565b604080516003808252608082019092526060916020820183803883390190505090506a5065726946696e616e636560a81b8160008151811061259c57fe5b60200260200101818152505066119959541bdbdb60ca1b816001815181106125c057fe5b6020026020010181815250506524b9b9bab2b960d11b816002815181106125e357fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015612622578160200160208202803883390190505b50905060005b83518110156126645783818151811061263d57fe5b602002602001015182828151811061265157fe5b6020908102919091010152600101612628565b5060005b82518110156126a75782818151811061267d57fe5b602002602001015182828651018151811061269457fe5b6020908102919091010152600101612668565b5092915050565b60405162461bcd60e51b81526004016107089061388b565b60008181526004602090815260408083205490516001600160a01b0390911691821515916126f69186910161363a565b604051602081830303815290604052906126a75760405162461bcd60e51b8152600401610708919061380a565b600780546001600160a01b038416600081815260056020908152604080832085845282528083208751815467ffffffffffffffff19166001600160401b0390911617815587830151600191820155938352600682528220805480850182559083529082200183905592546127969161204a565b6007559392505050565b604080518082019091526000808252602082015290565b604051806060016040528060006001600160401b0316815260200160008152602001600081525090565b60405180604001604052806002906020820280388339509192915050565b80356108be81613b41565b80516108be81613b41565b60008083601f84011261282757600080fd5b5081356001600160401b0381111561283e57600080fd5b60208301915083602082028301111561285657600080fd5b9250929050565b60008083601f84011261286f57600080fd5b5081356001600160401b0381111561288657600080fd5b60208301915083604082028301111561285657600080fd5b600082601f8301126128af57600080fd5b60026128c26128bd82613a85565b613a5f565b915081838560208402820111156128d857600080fd5b60005b8381101561290457816128ee8882612924565b84525060209283019291909101906001016128db565b5050505092915050565b80516108be81613b55565b80356108be81613b5e565b80516108be81613b5e565b60006020828403121561294157600080fd5b60006108ba84846127ff565b60006020828403121561295f57600080fd5b60006108ba848461280a565b60008060006040848603121561298057600080fd5b600061298c86866127ff565b93505060208401356001600160401b038111156129a857600080fd5b6129b486828701612815565b92509250509250925092565b600080604083850312156129d357600080fd5b60006129df85856127ff565b92505060206129f085828601612919565b9150509250929050565b60008060008060608587031215612a1057600080fd5b6000612a1c87876127ff565b9450506020612a2d87828801612919565b93505060408501356001600160401b03811115612a4957600080fd5b612a558782880161285d565b95989497509550505050565b600080600060608486031215612a7657600080fd5b6000612a8286866127ff565b9350506020612a9386828701612919565b9250506040612aa486828701612919565b9150509250925092565b60008060008060408587031215612ac457600080fd5b84356001600160401b03811115612ada57600080fd5b612ae687828801612815565b945094505060208501356001600160401b03811115612b0457600080fd5b612a5587828801612815565b60008060008060008060608789031215612b2957600080fd5b86356001600160401b03811115612b3f57600080fd5b612b4b89828a01612815565b965096505060208701356001600160401b03811115612b6957600080fd5b612b7589828a01612815565b945094505060408701356001600160401b03811115612b9357600080fd5b612b9f89828a01612815565b92509250509295509295509295565b600060408284031215612bc057600080fd5b60006108ba848461289e565b60008060208385031215612bdf57600080fd5b82356001600160401b03811115612bf557600080fd5b612c0185828601612815565b92509250509250929050565b600060208284031215612c1f57600080fd5b60006108ba848461290e565b600060208284031215612c3d57600080fd5b60006108ba8484612919565b600060208284031215612c5b57600080fd5b60006108ba8484612924565b6000612c738383612e40565b505060200190565b6000612c8783836135cd565b505060600190565b6000612c9b8383613604565b505060400190565b612cac81613ae2565b82525050565b612cac81613aba565b6000612cc682613aa8565b612cd08185613aac565b9350612cdb83613aa2565b8060005b83811015612d09578151612cf38882612c67565b9750612cfe83613aa2565b925050600101612cdf565b509495945050505050565b6000612d1f82613aa8565b612d298185613aac565b9350612d3483613aa2565b8060005b83811015612d09578151612d4c8882612c7b565b9750612d5783613aa2565b925050600101612d38565b6000612d6d82613aa8565b612d778185613aac565b9350612d8283613aa2565b8060005b83811015612d09578151612d9a8882612c8f565b9750612da583613aa2565b925050600101612d86565b6000612dbc8385613aac565b93506001600160fb1b03831115612dd257600080fd5b602083029250612de3838584613aff565b50500190565b6000612df482613aa8565b612dfe8185613aac565b9350612e0983613aa2565b8060005b83811015612d09578151612e218882612c67565b9750612e2c83613aa2565b925050600101612e0d565b612cac81613ac5565b612cac81610617565b612cac612e5582610617565b610617565b612cac81613ae9565b6000612e6e82613aa8565b612e788185613aac565b9350612e88818560208601613b0b565b612e9181613b37565b9093019392505050565b6000612ea8603583613aac565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000612eff603b83613aac565b7f43616e206f6e6c7920626520696e766f6b6564206279205065726946696e616e81527f6365427269646765546f4f7074696d69736d20636f6e74726163740000000000602082015260400192915050565b6000612f5e602483613aac565b7f4163636f756e74206d6967726174696f6e2069732070656e64696e6720616c728152636561647960e01b602082015260400192915050565b6000612fa4601b83613aac565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612fdd603383613aac565b7f43616e6e6f7420657363726f7720776974682030206475726174696f6e204f528152721030b137bb329036b0bc2fb23ab930ba34b7b760691b602082015260400192915050565b6000613032602483613aac565b7f43616e6e6f742063726561746520657363726f772077697468206164647265738152637328302960e01b602082015260400192915050565b6000613078601e83613aac565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006130b1601b83613aac565b7f43616e6e6f742062652072756e206f6e2074686973206c617965720000000000815260200192915050565b60006130ea603183613aac565b7f4e756d626572206f66206163636f756e747320616e642076657374656442616c8152700c2dcc6cae640c8dedc4ee840dac2e8c6d607b1b602082015260400192915050565b600061313d601b83613aac565b7f4e6f20657363726f77206d6967726174696f6e2070656e64696e670000000000815260200192915050565b6000613176601183613ab5565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006131a3601783613aac565b7f5175616e746974792063616e6e6f74206265207a65726f000000000000000000815260200192915050565b60006131dc604783613aac565b7f4d75737420626520656e6f7567682062616c616e636520696e2074686520636f81527f6e747261637420746f2070726f7669646520666f72207468652076657374696e6020820152666720656e74727960c81b604082015260600192915050565b600061324b601983613aac565b7f4163636f756e74206d657267696e672068617320656e64656400000000000000815260200192915050565b6000613284601583613aac565b741d1bdad95b881d1c985b9cd9995c8819985a5b1959605a1b815260200192915050565b60006132b5602483613aac565b7f43616e6e6f74206e6f6d696e617465206f776e206163636f756e7420746f206d8152636572676560e01b602082015260400192915050565b60006132fb601283613aac565b71115b9d1c9e4812511cc81c995c5d5a5c995960721b815260200192915050565b6000613329602f83613aac565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b600061337a602183613aac565b7f41646472657373206973206e6f74206e6f6d696e6174656420746f206d6572678152606560f81b602082015260400192915050565b60006133bd602983613aac565b7f4163636f756e7420616e6420657363726f77416d6f756e7473204c656e677468815268040dad2e6dac2e8c6d60bb1b602082015260400192915050565b6000613408602983613aac565b7f43616e206f6e6c7920706572666f726d207468697320616374696f6e206475728152680696e672073657475760bc1b602082015260400192915050565b631c1554d160e21b9052565b600061345f601c83613aac565b7f65786365656473206d6178206d657267696e67206475726174696f6e00000000815260200192915050565b6000613498601983613ab5565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006134d1602883613aac565b7f4f6e6c792074686520466565506f6f6c2063616e20706572666f726d20746869815267399030b1ba34b7b760c11b602082015260400192915050565b600061351b602b83613aac565b7f4e756d626572206f66206163636f756e747320616e642062616c616e6365732081526a0c8dedc4ee840dac2e8c6d60ab1b602082015260400192915050565b6000613568601b83613aac565b7f4164647265737320657363726f772062616c616e636520697320300000000000815260200192915050565b60006135a1601f83613aac565b7f43616e6e6f74206d65726765206163636f756e74732077697468206465627400815260200192915050565b805160608301906135de8482613631565b5060208201516135f16020850182612e40565b506040820151611a296040850182612e40565b805160408301906136158482613631565b506020820151611a296020850182612e40565b612cac81613af4565b612cac81613ad6565b600061364582613169565b91506136518284612e49565b50602001919050565b60006136458261348b565b602081016108be8284612cb2565b606081016136818286612ca3565b61368e6020830185612cb2565b61369b6040830184612e40565b949350505050565b604081016136b18284612ca3565b6108be60208301613446565b608081016136cb8288612ca3565b6136d86020830187612e40565b81810360408301526136eb818587612db0565b90506136fa6060830184612e40565b9695505050505050565b604081016137128285612cb2565b610e696020830184612cb2565b604081016136b18284612cb2565b6040810161373b8285612cb2565b610e696020830184612e40565b60208082528101610e698184612cbb565b60208082528101610e698184612d14565b6060808252810161377c818688612db0565b905061378b6020830185612e40565b6137986040830184612e40565b95945050505050565b60208082528101610e698184612de9565b602081016108be8284612e37565b602081016108be8284612e40565b604081016137128285612e40565b604081016137ea8285612e40565b818103602083015261369b8184612e63565b602081016108be8284612e5a565b60208082528101610e698184612e63565b602080825281016108be81612e9b565b602080825281016108be81612ef2565b602080825281016108be81612f51565b602080825281016108be81612f97565b602080825281016108be81612fd0565b602080825281016108be81613025565b602080825281016108be8161306b565b602080825281016108be816130a4565b602080825281016108be816130dd565b602080825281016108be81613130565b602080825281016108be81613196565b602080825281016108be816131cf565b602080825281016108be8161323e565b602080825281016108be81613277565b602080825281016108be816132a8565b602080825281016108be816132ee565b602080825281016108be8161331c565b602080825281016108be8161336d565b602080825281016108be816133b0565b602080825281016108be816133fb565b602080825281016108be81613452565b602080825281016108be816134c4565b602080825281016108be8161350e565b602080825281016108be8161355b565b602080825281016108be81613594565b604081016139b98285612e40565b818103602083015261369b8184612d62565b6040810161373b8285612e40565b606081016139e78286612e40565b61368e6020830185612e40565b60808101613a028287612e40565b613a0f6020830186612e40565b613a1c6040830185612e40565b6137986060830184612e40565b60608101613a378286612e40565b613a446020830185612e40565b61369b6040830184613628565b6040810161373b8285613631565b6040518181016001600160401b0381118282101715613a7d57600080fd5b604052919050565b60006001600160401b03821115613a9b57600080fd5b5060200290565b60200190565b5190565b90815260200190565b919050565b60006108be82613aca565b151590565b6001600160a01b031690565b6001600160401b031690565b60006108be825b60006108be82613aba565b60006108be82613ad6565b82818337506000910152565b60005b83811015613b26578181015183820152602001613b0e565b83811115611a295750506000910152565b601f01601f191690565b613b4a81613aba565b811461116b57600080fd5b613b4a81613ac5565b613b4a8161061756fea365627a7a72315820bd4d1525240594d005da3fa1cfc0b5d6615f52ccbcec65047d9ea2287ecb93e06c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "accountToMerge",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destinationAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowAmountMerged",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "AccountMerged",
					"type": "event",
					"signature": "0x48d567deaa7db90f8a443344e519ca8906521ffe118e1df43e89a3c257963f7c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "AccountMergingDurationUpdated",
					"type": "event",
					"signature": "0x723c43349da7aeae47190396f2e2fbe6bedb46b9e9705bc5b908d65bc7a1e0e6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "endTime",
							"type": "uint256"
						}
					],
					"name": "AccountMergingStarted",
					"type": "event",
					"signature": "0xceade2b9bc02350b17075c94bb699508b89ed2752f501ea42024b1bb5fd34445"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowedAmountMigrated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "BurnedForMigrationToL2",
					"type": "event",
					"signature": "0x929c8a2a06883affd05f43baf52398dbbfb6930730ce1bdb2cfe413cd44b107c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "endTime",
							"type": "uint256"
						}
					],
					"name": "ImportedVestingEntry",
					"type": "event",
					"signature": "0xa0ba170b0a148bd927eafc64518e6c9d92eba1ea1fdf703dd8cfee6d329012bb"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						}
					],
					"name": "ImportedVestingSchedule",
					"type": "event",
					"signature": "0x73cefcb01ff86c575a4fbf40317a93c37b7312e0b294e588ee24b312e4f97cc4"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "MaxAccountMergingDurationUpdated",
					"type": "event",
					"signature": "0xe829efae5d8a2f7163f46c23a8190bf14625c1e446561ca0f5cf279ab7c8015e"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newDuration",
							"type": "uint256"
						}
					],
					"name": "MaxEscrowDurationUpdated",
					"type": "event",
					"signature": "0x6b92bd20c4b2e6861047ba7209ddc78d538419aae187d0df46716b827b8997a4"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newAmount",
							"type": "uint256"
						}
					],
					"name": "MigrateEntriesThresholdAmountUpdated",
					"type": "event",
					"signature": "0x7829b48ec37298e3e9b1cb2971e47abc072159681eaf558f8649a25d66ef8672"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowedAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "vestedAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "MigratedAccountEscrow",
					"type": "event",
					"signature": "0xa2a5ac2d2500e30aea994fc4bc99ef5535241c79d428e43c3fe204862f2874d6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "NominateAccountToMerge",
					"type": "event",
					"signature": "0xcf51776bb16e5780edcca2e64a9ba8a9c7d5d00a6699cbd7606e465361ba4852"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Vested",
					"type": "event",
					"signature": "0xfbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						}
					],
					"name": "VestingEntryCreated",
					"type": "event",
					"signature": "0x2cc016694185d38abbe28d9e9baea2e9d95a321ae43475e5ea7b643756840bc0"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountMergingDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x910a326d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountMergingIsOpen",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x05662986"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountMergingStartTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0fcdefb7"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountVestingEntryIDs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xae582549"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "quantity",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "appendVestingEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1bb47b44"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x70a08231"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "burnForMigration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "escrowedAccountBalance",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "vestingEntries",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x80d46f58"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "deposit",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "createEscrowEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa0416ed3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "pageSize",
							"type": "uint256"
						}
					],
					"name": "getAccountVestingEntryIDs",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeac62489"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						}
					],
					"name": "getVestingEntry",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "endTime",
							"type": "uint64"
						},
						{
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6154c343"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "entryID",
							"type": "uint256"
						}
					],
					"name": "getVestingEntryClaimable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x30104c5f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "getVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "total",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6dc05bd3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "pageSize",
							"type": "uint256"
						}
					],
					"name": "getVestingSchedules",
					"outputs": [
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "entryID",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntryWithID[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x773ab39f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "",
							"type": "tuple[]"
						}
					],
					"name": "importVestingEntries",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xcd7b43dd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "escrowAmounts",
							"type": "uint256[]"
						}
					],
					"name": "importVestingSchedule",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd621a169"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxAccountMergingDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x37088ffc"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "max_duration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5eb8cf25"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "accountToMerge",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "mergeAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf0b882ba"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "escrowBalances",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "vestedBalances",
							"type": "uint256[]"
						}
					],
					"name": "migrateAccountEscrowBalances",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb95375bd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "migrateEntriesThresholdAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9ad6a7e5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "addressToMigrate",
							"type": "address"
						}
					],
					"name": "migrateVestingSchedule",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7839b92f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nextEntryId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe6b2cf6c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "nominateAccountToMerge",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7cc1d756"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "nominatedReceiver",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x73307e40"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "numVestingEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x204b676a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setAccountMergingDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7993e699"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setMaxAccountMergingWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x018c6c55"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "duration",
							"type": "uint256"
						}
					],
					"name": "setMaxEscrowDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4525aabc"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setMigrateEntriesThresholdAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5b85c200"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46ba2d90"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "startMergingWindow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x178c5655"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalBalancePendingMigration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb0fd5963"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalEscrowedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x326a3cfb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalEscrowedBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x71e780f3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x227d517a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256[]",
							"name": "entryIDs",
							"type": "uint256[]"
						}
					],
					"name": "vest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x34c7fec9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "endTime",
							"type": "uint64"
						},
						{
							"internalType": "uint256",
							"name": "escrowAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x45626bd6"
				}
			],
			"source": {
				"keccak256": "0xd5012b4d0d38fc4afdd8e95d43dd83372c690f15552f3cbbd9d35e9b12dbac48",
				"urls": [
					"bzz-raw://b2d0d07fc08f1557956d6f0728ce17eb2e0f14bd470573060e63618f2561fdf2",
					"dweb:/ipfs/QmU1SeYwS83oktU94bWLsz1UzWMCHqWPgkmyKdCnKDEoaj"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardEscrowV2.sol": "RewardEscrowV2"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardEscrowV2.sol": {
						"keccak256": "0xd5012b4d0d38fc4afdd8e95d43dd83372c690f15552f3cbbd9d35e9b12dbac48",
						"urls": [
							"bzz-raw://b2d0d07fc08f1557956d6f0728ce17eb2e0f14bd470573060e63618f2561fdf2",
							"dweb:/ipfs/QmU1SeYwS83oktU94bWLsz1UzWMCHqWPgkmyKdCnKDEoaj"
						]
					}
				},
				"version": 1
			}
		},
		"PeriFinanceEscrow": {
			"bytecode": "608060405234801561001057600080fd5b506040516116ac3803806116ac8339818101604052606081101561003357600080fd5b50805160208201516040909201519091906249d400836001600160a01b0381166100a4576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1504201600255600380546001600160a01b039384166001600160a01b031991821617909155600780549290931691161790555061156e8061013e6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80636b3905c4116100f9578063a15d59ce11610097578063d0cc82e311610071578063d0cc82e314610562578063da7bd3e91461056a578063ee04ad6e14610596578063ee1d036c146105bc576101c4565b8063a15d59ce14610462578063bb2a7d0c1461046a578063cb5147b21461053c576101c4565b80638ad58777116100d35780638ad58777146104005780638da5cb5b1461040857806397f46527146104105780639b217f9014610436576101c4565b80636b3905c4146103ac57806370a08231146103d257806379ba5097146103f8576101c4565b80632f5bb6611161016657806346ba2d901161014057806346ba2d901461038c5780634e5a60911461039457806353a47bb71461039c57806363667eb7146103a4576101c4565b80632f5bb661146102f1578063458efde31461035257806345e5441f1461035a576101c4565b806319e740c0116101a257806319e740c01461023b5780631bb47b4414610273578063204b676a146102a5578063227d517a146102cb576101c4565b806307ab82e4146101c9578063135c0701146101ed5780631627540c14610215575b600080fd5b6101d16105e8565b604080516001600160a01b039092168252519081900360200190f35b6102136004803603602081101561020357600080fd5b50356001600160a01b03166105f7565b005b6102136004803603602081101561022b57600080fd5b50356001600160a01b0316610839565b6102616004803603602081101561025157600080fd5b50356001600160a01b0316610895565b60408051918252519081900360200190f35b6102136004803603606081101561028957600080fd5b506001600160a01b0381351690602081013590604001356108d7565b610261600480360360208110156102bb57600080fd5b50356001600160a01b0316610c12565b610261600480360360208110156102e157600080fd5b50356001600160a01b0316610c2d565b6103176004803603602081101561030757600080fd5b50356001600160a01b0316610c3f565b6040518082600260200280838360005b8381101561033f578181015183820152602001610327565b5050505090500191505060405180910390f35b610213610c90565b6102616004803603606081101561037057600080fd5b506001600160a01b038135169060208101359060400135610e4d565b610261610e89565b6101d1610e8f565b6101d1610e9e565b610261610ead565b610261600480360360208110156103c257600080fd5b50356001600160a01b0316610eb2565b610261600480360360208110156103e857600080fd5b50356001600160a01b0316610ecb565b610213610ee6565b610261610fa2565b6101d1610fa7565b6102616004803603602081101561042657600080fd5b50356001600160a01b0316610fb6565b6102616004803603604081101561044c57600080fd5b506001600160a01b038135169060200135610fc8565b610261610fe3565b6102136004803603606081101561048057600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156104ab57600080fd5b8201836020820111156104bd57600080fd5b803590602001918460208302840111640100000000831117156104df57600080fd5b9193909290916020810190356401000000008111156104fd57600080fd5b82018360208201111561050f57600080fd5b8035906020019184602083028401116401000000008311171561053157600080fd5b509092509050610fe9565b6102136004803603602081101561055257600080fd5b50356001600160a01b0316611073565b6102616110cf565b6103176004803603604081101561058057600080fd5b506001600160a01b0381351690602001356110d4565b610213600480360360208110156105ac57600080fd5b50356001600160a01b0316611143565b610261600480360360408110156105d257600080fd5b506001600160a01b03813516906020013561119f565b6007546001600160a01b031681565b6105ff6111b2565b600254421061063f5760405162461bcd60e51b81526004018080602001828103825260298152602001806114be6029913960400191505060405180910390fd5b6007546001600160a01b03166106865760405162461bcd60e51b81526004018080602001828103825260268152602001806114986026913960400191505060405180910390fd5b6001600160a01b03811660009081526004602052604081206106a7916112b4565b6001600160a01b0381166000908152600560205260409020546006546106d29163ffffffff6111fd16565b600655600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561072057600080fd5b505afa158015610734573d6000803e3d6000fd5b505050506040513d602081101561074a57600080fd5b5051600654111561078c5760405162461bcd60e51b81526004018080602001828103825260538152602001806114e76053913960600191505060405180910390fd5b6003546007546001600160a01b03838116600090815260056020908152604080832054815163a9059cbb60e01b81529585166004870152602486015251929094169363a9059cbb936044808201949293918390030190829087803b1580156107f357600080fd5b505af1158015610807573d6000803e3d6000fd5b505050506040513d602081101561081d57600080fd5b50506001600160a01b0316600090815260056020526040812055565b6108416111b2565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6000806108a183610c12565b905060005b818110156108ce576108b88482610fc8565b156108c65791506108d29050565b6001016108a6565b5090505b919050565b6108df6111b2565b600254421061091f5760405162461bcd60e51b81526004018080602001828103825260298152602001806114be6029913960400191505060405180910390fd5b814210610973576040805162461bcd60e51b815260206004820152601a60248201527f54696d65206d75737420626520696e2074686520667574757265000000000000604482015290519081900360640190fd5b806109c5576040805162461bcd60e51b815260206004820152601760248201527f5175616e746974792063616e6e6f74206265207a65726f000000000000000000604482015290519081900360640190fd5b6006546109d8908263ffffffff61125a16565b600655600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610a2657600080fd5b505afa158015610a3a573d6000803e3d6000fd5b505050506040513d6020811015610a5057600080fd5b50516006541115610a925760405162461bcd60e51b81526004018080602001828103825260478152602001806114226047913960600191505060405180910390fd5b6001600160a01b0383166000908152600460205260409020546014811115610b01576040805162461bcd60e51b815260206004820152601c60248201527f56657374696e67207363686564756c6520697320746f6f206c6f6e6700000000604482015290519081900360640190fd5b80610b26576001600160a01b0384166000908152600560205260409020829055610bbb565b82610b3c856001610b3688610c12565b03610fc8565b10610b785760405162461bcd60e51b81526004018080602001828103825260378152602001806113eb6037913960400191505060405180910390fd5b6001600160a01b038416600090815260056020526040902054610ba1908363ffffffff61125a16565b6001600160a01b0385166000908152600560205260409020555b6001600160a01b0384166000908152600460209081526040808320815180830190925286825281830186905280546001810180835591855292909320610c0a92600290810290910191906112d8565b505050505050565b6001600160a01b031660009081526004602052604090205490565b60056020526000908152604090205481565b610c47611316565b6000610c5283610895565b9050610c5d83610c12565b811415610c7f57505060408051808201909152600080825260208201526108d2565b610c8983826110d4565b9392505050565b6000610c9b33610c12565b90506000805b82811015610d40576000610cb53383610fc8565b905042811115610cc55750610d40565b6000610cd1338461119f565b90508015610d3657604080518082018252600080825260208083018290523382526004905291909120805485908110610d0657fe5b9060005260206000209060020201906002610d22929190611334565b50610d33848263ffffffff61125a16565b93505b5050600101610ca1565b508015610e4957600654610d5a908263ffffffff6111fd16565b60065533600090815260056020526040902054610d7d908263ffffffff6111fd16565b33600081815260056020908152604080832094909455600354845163a9059cbb60e01b815260048101949094526024840186905293516001600160a01b039094169363a9059cbb93604480820194918390030190829087803b158015610de257600080fd5b505af1158015610df6573d6000803e3d6000fd5b505050506040513d6020811015610e0c57600080fd5b50506040805142815260208101839052815133927ffbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6928290030190a25b5050565b60046020528260005260406000208281548110610e6657fe5b90600052602060002090600202018160028110610e7f57fe5b0154925083915050565b60025481565b6003546001600160a01b031681565b6001546001600160a01b031681565b600081565b6000610ebd82610c3f565b60005b602002015192915050565b6001600160a01b031660009081526005602052604090205490565b6001546001600160a01b03163314610f2f5760405162461bcd60e51b81526004018080602001828103825260358152602001806113b66035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600181565b6000546001600160a01b031681565b6000610fc182610c3f565b6001610ec0565b6000610fd483836110d4565b60005b60200201519392505050565b60065481565b610ff16111b2565b60025442106110315760405162461bcd60e51b81526004018080602001828103825260298152602001806114be6029913960400191505060405180910390fd5b60005b83811015610c0a5761106b8686868481811061104c57fe5b9050602002013585858581811061105f57fe5b905060200201356108d7565b600101611034565b61107b6111b2565b600380546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1ab074efe68c89675990cfa3fe943dd7897b3b9318e47a8faad4a41c9ff1aee89181900360200190a150565b601481565b6110dc611316565b6001600160a01b038316600090815260046020526040902080548390811061110057fe5b600091825260209091206040805180820191829052926002908102909201919082845b815481526020019060010190808311611123575050505050905092915050565b61114b6111b2565b600780546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fb46085655f12cc30a7603c9af22f9ed618a149dbb291c9d1c14cfe57e793ba9e9181900360200190a150565b60006111ab83836110d4565b6001610fd7565b6000546001600160a01b031633146111fb5760405162461bcd60e51b815260040180806020018281038252602f815260200180611469602f913960400191505060405180910390fd5b565b600082821115611254576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610c89576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460008255600202906000526020600020908101906112d59190611367565b50565b8260028101928215611306579160200282015b828111156113065782518255916020019190600101906112eb565b5061131292915061138d565b5090565b60405180604001604052806002906020820280388339509192915050565b8260028101928215611306579160200282015b82811115611306578251829060ff16905591602001919060010190611347565b61138a91905b8082111561131257600061138182826113a7565b5060020161136d565b90565b61138a91905b808211156113125760008155600101611393565b50600081556001016000905556fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697043616e6e6f7420616464206e65772076657374656420656e7472696573206561726c696572207468616e20746865206c617374206f6e654d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f2070726f7669646520666f72207468652076657374696e6720656e7472794f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e526566756e6420616464726573732063616e206e6f74206265207a65726f206164647265737343616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e672073657475704d75737420626520656e6f7567682062616c616e636520696e2074686520636f6e747261637420746f207265747269657665207665737465642062616c616e6365206f6620707572676564206163636f756e74a265627a7a723158202a15fdc0d2d4bbcaf7bc0e81a370af86321cff3f375f4d2ba59c7cb369f993b864736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract IPeriFinance",
							"name": "_periFinance",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_addressToRefund",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "addressToRefund",
							"type": "address"
						}
					],
					"name": "AddressToRefundUpdated",
					"type": "event",
					"signature": "0xb46085655f12cc30a7603c9af22f9ed618a149dbb291c9d1c14cfe57e793ba9e"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newPeriFinance",
							"type": "address"
						}
					],
					"name": "PeriFinanceUpdated",
					"type": "event",
					"signature": "0x1ab074efe68c89675990cfa3fe943dd7897b3b9318e47a8faad4a41c9ff1aee8"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "beneficiary",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Vested",
					"type": "event",
					"signature": "0xfbeff59d2bfda0d79ea8a29f8c57c66d48c7a13eabbdb90908d9115ec41c9dc6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_VESTING_ENTRIES",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd0cc82e3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "QUANTITY_INDEX",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8ad58777"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TIME_INDEX",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x63667eb7"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "times",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "quantities",
							"type": "uint256[]"
						}
					],
					"name": "addVestingSchedule",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbb2a7d0c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "addressToRefund",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x07ab82e4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "quantity",
							"type": "uint256"
						}
					],
					"name": "appendVestingEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1bb47b44"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x70a08231"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2f5bb661"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x19e740c0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x97f46527"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNextVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6b3905c4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingQuantity",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xee1d036c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingScheduleEntry",
					"outputs": [
						{
							"internalType": "uint256[2]",
							"name": "",
							"type": "uint256[2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xda7bd3e9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getVestingTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9b217f90"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "numVestingEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x204b676a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "periFinance",
					"outputs": [
						{
							"internalType": "contract IPeriFinance",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4e5a6091"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "purgeAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x135c0701"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_addressToRefund",
							"type": "address"
						}
					],
					"name": "setAddressToRefund",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xee04ad6e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IPeriFinance",
							"name": "_periFinance",
							"type": "address"
						}
					],
					"name": "setPeriFinance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xcb5147b2"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46ba2d90"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "totalVestedAccountBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x227d517a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalVestedBalance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa15d59ce"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "vest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x458efde3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "vestingSchedules",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x45e5441f"
				}
			],
			"source": {
				"keccak256": "0x41ce13e120a89c403c31ef5615821bb17c52e8393067a15617b3345b4fa2ecd3",
				"urls": [
					"bzz-raw://ae9b74ef17ba13af397f439e7271929d69732c585ec27adee4a266946161ca19",
					"dweb:/ipfs/QmTZeMntLW3pANy5u2k71ymXhu5NaNa23SShpYu81GYpJm"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"PeriFinanceEscrow.sol": "PeriFinanceEscrow"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"PeriFinanceEscrow.sol": {
						"keccak256": "0x41ce13e120a89c403c31ef5615821bb17c52e8393067a15617b3345b4fa2ecd3",
						"urls": [
							"bzz-raw://ae9b74ef17ba13af397f439e7271929d69732c585ec27adee4a266946161ca19",
							"dweb:/ipfs/QmTZeMntLW3pANy5u2k71ymXhu5NaNa23SShpYu81GYpJm"
						]
					}
				},
				"version": 1
			}
		},
		"PeriFinanceState": {
			"bytecode": "608060405234801561001057600080fd5b50604051610aa1380380610aa18339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050506108fb806101a66000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80638b3f8088116100a2578063aefc4ccb11610071578063aefc4ccb14610261578063b16c09f014610269578063b992812e1461028f578063ba08f299146102c9578063cd92eba9146102d15761010b565b80638b3f8088146101e65780638da5cb5b146102255780639371bede1461022d578063a764eb45146102355761010b565b806346317712116100de578063463177121461018c57806352f445ca1461019457806353a47bb7146101ba57806379ba5097146101de5761010b565b806308d95cd5146101105780631627540c1461013f5780631bfba595146101675780633d31e97b1461016f575b600080fd5b61012d6004803603602081101561012657600080fd5b50356102d9565b60408051918252519081900360200190f35b6101656004803603602081101561015557600080fd5b50356001600160a01b03166102f7565b005b610165610353565b6101656004803603602081101561018557600080fd5b50356103b5565b61012d610433565b610165600480360360208110156101aa57600080fd5b50356001600160a01b0316610468565b6101c26104c4565b604080516001600160a01b039092168252519081900360200190f35b6101656104d3565b61020c600480360360208110156101fc57600080fd5b50356001600160a01b031661058f565b6040805192835260208301919091528051918290030190f35b6101c26105a8565b61012d6105b7565b6101656004803603604081101561024b57600080fd5b506001600160a01b0381351690602001356105bd565b6101c261062d565b6101656004803603602081101561027f57600080fd5b50356001600160a01b031661063c565b6102b5600480360360208110156102a557600080fd5b50356001600160a01b03166106a5565b604080519115158252519081900360200190f35b6101656106c2565b61012d61071f565b600581815481106102e657fe5b600091825260209091200154905081565b6102ff610725565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002546001600160a01b0316331461039c5760405162461bcd60e51b81526004018080602001828103825260348152602001806108936034913960400191505060405180910390fd5b6004546103b090600163ffffffff61077016565b600455565b6002546001600160a01b031633146103fe5760405162461bcd60e51b81526004018080602001828103825260348152602001806108936034913960400191505060405180910390fd5b600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00155565b60055460009061044557506000610465565b60058054600019810190811061045757fe5b906000526020600020015490505b90565b610470610725565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6001546001600160a01b0316331461051c5760405162461bcd60e51b815260040180806020018281038252603581526020018061082f6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6003602052600090815260409020805460019091015482565b6000546001600160a01b031681565b60045481565b6002546001600160a01b031633146106065760405162461bcd60e51b81526004018080602001828103825260348152602001806108936034913960400191505060405180910390fd5b6001600160a01b039091166000908152600360205260409020908155600554600190910155565b6002546001600160a01b031681565b6002546001600160a01b031633146106855760405162461bcd60e51b81526004018080602001828103825260348152602001806108936034913960400191505060405180910390fd5b6001600160a01b0316600090815260036020526040812081815560010155565b6001600160a01b0316600090815260036020526040902054151590565b6002546001600160a01b0316331461070b5760405162461bcd60e51b81526004018080602001828103825260348152602001806108936034913960400191505060405180910390fd5b6004546103b090600163ffffffff6107d116565b60055490565b6000546001600160a01b0316331461076e5760405162461bcd60e51b815260040180806020018281038252602f815260200180610864602f913960400191505060405180910390fd5b565b6000828201838110156107ca576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082821115610828576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a72315820eff2505f53250b4dd92bffebb828e629cb4c413aa56f886b29b4d80535e59c4064736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "appendDebtLedgerValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3d31e97b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "clearIssuanceData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb16c09f0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "debtLedger",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x08d95cd5"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtLedgerLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcd92eba9"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "decrementTotalIssuerCount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xba08f299"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "hasIssued",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb992812e"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "incrementTotalIssuerCount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1bfba595"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "issuanceData",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "initialDebtOwnership",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8b3f8088"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastDebtLedgerEntry",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46317712"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "initialDebtOwnership",
							"type": "uint256"
						}
					],
					"name": "setCurrentIssuanceData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa764eb45"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalIssuerCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9371bede"
				}
			],
			"source": {
				"keccak256": "0xd374c2980d6cdac7c11bc4b6c0b0e62da1e38d6026f2a06ec0ab85cdb3311e1b",
				"urls": [
					"bzz-raw://3f93ec893d77c6cc932ea6606b083d605e67e57ff8cf510a15496d2a9d429d4c",
					"dweb:/ipfs/QmWfb5rZRVYxyA49aHxrM48NmL3hmiuKQ4MfQLNhEK2XNU"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"PeriFinanceState.sol": "PeriFinanceState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"PeriFinanceState.sol": {
						"keccak256": "0xd374c2980d6cdac7c11bc4b6c0b0e62da1e38d6026f2a06ec0ab85cdb3311e1b",
						"urls": [
							"bzz-raw://3f93ec893d77c6cc932ea6606b083d605e67e57ff8cf510a15496d2a9d429d4c",
							"dweb:/ipfs/QmWfb5rZRVYxyA49aHxrM48NmL3hmiuKQ4MfQLNhEK2XNU"
						]
					}
				},
				"version": 1
			}
		},
		"Proxy": {
			"bytecode": "608060405234801561001057600080fd5b506040516106ee3803806106ee8339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506105f4806100fa6000396000f3fe6080604052600436106100705760003560e01c806379ba50971161004e57806379ba5097146101925780638da5cb5b146101a7578063907dff97146101bc578063d4b839921461025157610070565b80631627540c146100f957806353a47bb71461012e578063776d1a011461015f575b60025460408051635e33fc1960e11b815233600482015290516001600160a01b039092169163bc67f8329160248082019260009290919082900301818387803b1580156100bc57600080fd5b505af11580156100d0573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e806100f5573d82fd5b3d82f35b34801561010557600080fd5b5061012c6004803603602081101561011c57600080fd5b50356001600160a01b0316610266565b005b34801561013a57600080fd5b506101436102c2565b604080516001600160a01b039092168252519081900360200190f35b34801561016b57600080fd5b5061012c6004803603602081101561018257600080fd5b50356001600160a01b03166102d1565b34801561019e57600080fd5b5061012c61032d565b3480156101b357600080fd5b506101436103e9565b3480156101c857600080fd5b5061012c600480360360c08110156101df57600080fd5b8101906020810181356401000000008111156101fa57600080fd5b82018360208201111561020c57600080fd5b8035906020019184600183028401116401000000008311171561022e57600080fd5b9193509150803590602081013590604081013590606081013590608001356103f8565b34801561025d57600080fd5b50610143610501565b61026e610510565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6001546001600160a01b031681565b6102d9610510565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b6001546001600160a01b031633146103765760405162461bcd60e51b815260040180806020018281038252603581526020018061055c6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b0316331461044e576040805162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b604482015290519081900360640190fd5b604080516020601f89018190048102820181019092528781528791606091908a9084908190840183828082843760009201919091525092935089925050811590506104b857600181146104c357600281146104cf57600381146104dc57600481146104ea576104f5565b8260208301a06104f5565b868360208401a16104f5565b85878460208501a26104f5565b8486888560208601a36104f5565b838587898660208701a45b50505050505050505050565b6002546001600160a01b031681565b6000546001600160a01b031633146105595760405162461bcd60e51b815260040180806020018281038252602f815260200180610591602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a7231582002cc7020a3da435976b944169f042d77f3392f8ab73bb2ee7dd18153548d5f4164736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "contract Proxyable",
							"name": "newTarget",
							"type": "address"
						}
					],
					"name": "TargetUpdated",
					"type": "event",
					"signature": "0x814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes",
							"name": "callData",
							"type": "bytes"
						},
						{
							"internalType": "uint256",
							"name": "numTopics",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "topic1",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic2",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic3",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic4",
							"type": "bytes32"
						}
					],
					"name": "_emit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x907dff97"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract Proxyable",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "setTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x776d1a01"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "target",
					"outputs": [
						{
							"internalType": "contract Proxyable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd4b83992"
				}
			],
			"source": {
				"keccak256": "0x70701b043f09b5a08f96530a91ff89cc151399b4daa24a5d0ae06eebeb22b3d0",
				"urls": [
					"bzz-raw://ab7e804772109609ff657ac9797b7fbc530922693ab8a9fe63743071056078e0",
					"dweb:/ipfs/QmQK3JCvbiBN5hBmjLeHwBC4WU163bFhFFG9w7dD3hGkbN"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Proxy.sol": "Proxy"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Proxy.sol": {
						"keccak256": "0x70701b043f09b5a08f96530a91ff89cc151399b4daa24a5d0ae06eebeb22b3d0",
						"urls": [
							"bzz-raw://ab7e804772109609ff657ac9797b7fbc530922693ab8a9fe63743071056078e0",
							"dweb:/ipfs/QmQK3JCvbiBN5hBmjLeHwBC4WU163bFhFFG9w7dD3hGkbN"
						]
					}
				},
				"version": 1
			}
		},
		"EternalStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516112143803806112148339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150505061106e806101a66000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806353a47bb7116100f9578063a209a29c11610097578063ba69fcaa11610071578063ba69fcaa146104e9578063bdc963d814610506578063c9a52d2c14610523578063f58660661461059a576101a9565b8063a209a29c146104a1578063a77aa49e146104be578063aefc4ccb146104e1576101a9565b80638267a9ee116100d35780638267a9ee146104425780638da5cb5b1461045f5780639007127b1461046757806393fe424814610484576101a9565b806353a47bb7146104065780635a2bf25a1461040e57806379ba50971461043a576101a9565b806325cf512d116101665780633eba9ed2116101405780633eba9ed2146102f057806344bfa56e146103155780634c77e5ba146103a757806352f445ca146103e0576101a9565b806325cf512d1461028d5780633562fd20146102b05780633cc1635c146102d3576101a9565b8063025ec81a146101ae578063043106c0146101dd5780630c55d925146101fc578063124f2418146102195780631627540c1461023657806317e7dd221461025c575b600080fd5b6101cb600480360360208110156101c457600080fd5b5035610611565b60408051918252519081900360200190f35b6101fa600480360360208110156101f357600080fd5b5035610623565b005b6101fa6004803603602081101561021257600080fd5b503561068a565b6101fa6004803603602081101561022f57600080fd5b50356106ed565b6101fa6004803603602081101561024c57600080fd5b50356001600160a01b0316610747565b6102796004803603602081101561027257600080fd5b50356107a3565b604080519115158252519081900360200190f35b6101fa600480360360408110156102a357600080fd5b50803590602001356107b8565b6101fa600480360360408110156102c657600080fd5b5080359060200135610813565b6101fa600480360360208110156102e957600080fd5b503561086e565b6101fa6004803603604081101561030657600080fd5b508035906020013515156108cf565b6103326004803603602081101561032b57600080fd5b5035610938565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561036c578181015183820152602001610354565b50505050905090810190601f1680156103995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103c4600480360360208110156103bd57600080fd5b50356109d9565b604080516001600160a01b039092168252519081900360200190f35b6101fa600480360360208110156103f657600080fd5b50356001600160a01b03166109f4565b6103c4610a50565b6101fa6004803603604081101561042457600080fd5b50803590602001356001600160a01b0316610a5f565b6101fa610ad6565b6101fa6004803603602081101561045857600080fd5b5035610b92565b6103c4610bec565b6101cb6004803603602081101561047d57600080fd5b5035610bfb565b6101fa6004803603602081101561049a57600080fd5b5035610c0d565b610332600480360360208110156104b757600080fd5b5035610c67565b6101fa600480360360408110156104d457600080fd5b5080359060200135610cd1565b6103c4610d2c565b6101fa600480360360208110156104ff57600080fd5b5035610d3b565b6101cb6004803603602081101561051c57600080fd5b5035610d9b565b6101fa6004803603604081101561053957600080fd5b8135919081019060408101602082013564010000000081111561055b57600080fd5b82018360208201111561056d57600080fd5b8035906020019184600183028401116401000000008311171561058f57600080fd5b509092509050610dad565b6101fa600480360360408110156105b057600080fd5b813591908101906040810160208201356401000000008111156105d257600080fd5b8201836020820111156105e457600080fd5b8035906020019184600183028401116401000000008311171561060657600080fd5b509092509050610e15565b60009081526007602052604090205490565b6002546001600160a01b0316331461066c5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260056020526040902080546001600160a01b0319169055565b6002546001600160a01b031633146106d35760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60008181526006602052604081206106ea91610ec2565b50565b6002546001600160a01b031633146107365760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260076020526040812055565b61074f610e77565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60009081526008602052604090205460ff1690565b6002546001600160a01b031633146108015760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526007602052604090912055565b6002546001600160a01b0316331461085c5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526003602052604090912055565b6002546001600160a01b031633146108b75760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b6000908152600860205260409020805460ff19169055565b6002546001600160a01b031633146109185760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600091825260086020526040909120805460ff1916911515919091179055565b60008181526006602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156109cd5780601f106109a2576101008083540402835291602001916109cd565b820191906000526020600020905b8154815290600101906020018083116109b057829003601f168201915b50505050509050919050565b6000908152600560205260409020546001600160a01b031690565b6109fc610e77565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6002546001600160a01b03163314610aa85760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526005602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314610b1f5760405162461bcd60e51b8152600401808060200182810382526035815260200180610fa26035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b03163314610bdb5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260096020526040812055565b6000546001600160a01b031681565b60009081526009602052604090205490565b6002546001600160a01b03163314610c565760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b600090815260036020526040812055565b60008181526004602090815260409182902080548351601f60026000196101006001861615020190931692909204918201849004840281018401909452808452606093928301828280156109cd5780601f106109a2576101008083540402835291602001916109cd565b6002546001600160a01b03163314610d1a5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60009182526009602052604090912055565b6002546001600160a01b031681565b6002546001600160a01b03163314610d845760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b60008181526004602052604081206106ea91610ec2565b60009081526003602052604090205490565b6002546001600160a01b03163314610df65760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b6000838152600660205260409020610e0f908383610f06565b50505050565b6002546001600160a01b03163314610e5e5760405162461bcd60e51b81526004018080602001828103825260348152602001806110066034913960400191505060405180910390fd5b6000838152600460205260409020610e0f908383610f06565b6000546001600160a01b03163314610ec05760405162461bcd60e51b815260040180806020018281038252602f815260200180610fd7602f913960400191505060405180910390fd5b565b50805460018160011615610100020316600290046000825580601f10610ee857506106ea565b601f0160209004906000526020600020908101906106ea9190610f84565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610f475782800160ff19823516178555610f74565b82800160010185558215610f74579182015b82811115610f74578235825591602001919060010190610f59565b50610f80929150610f84565b5090565b610f9e91905b80821115610f805760008155600101610f8a565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a723158208772e4183bfc5dfa2dd95d24d6e4ca9d74c2844ce809dc831e15d4fd87ec4b5f64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x043106c0"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3cc1635c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x124f2418"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0c55d925"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8267a9ee"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xba69fcaa"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x93fe4248"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getAddressValue",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4c77e5ba"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBooleanValue",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x17e7dd22"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytes32Value",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x025ec81a"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytesValue",
					"outputs": [
						{
							"internalType": "bytes",
							"name": "",
							"type": "bytes"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x44bfa56e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getIntValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9007127b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getStringValue",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa209a29c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getUIntValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xbdc963d8"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "setAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5a2bf25a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "setBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3eba9ed2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "setBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x25cf512d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes",
							"name": "value",
							"type": "bytes"
						}
					],
					"name": "setBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc9a52d2c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "setIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa77aa49e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "string",
							"name": "value",
							"type": "string"
						}
					],
					"name": "setStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf5866066"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3562fd20"
				}
			],
			"source": {
				"keccak256": "0xc52073beecc8d1d01ad930a3273afce10c7cbb7a920c15c0dcaa96088ae27081",
				"urls": [
					"bzz-raw://c0c38a12c7c3c4daca7350629df60b8d9bce60ab7cd62f3d9aff9033b7d41b22",
					"dweb:/ipfs/QmZJYBc5L2Ent8ToYhe9nXjv8sufn4QWPDsRf68S72JuBB"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EternalStorage.sol": "EternalStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EternalStorage.sol": {
						"keccak256": "0xc52073beecc8d1d01ad930a3273afce10c7cbb7a920c15c0dcaa96088ae27081",
						"urls": [
							"bzz-raw://c0c38a12c7c3c4daca7350629df60b8d9bce60ab7cd62f3d9aff9033b7d41b22",
							"dweb:/ipfs/QmZJYBc5L2Ent8ToYhe9nXjv8sufn4QWPDsRf68S72JuBB"
						]
					}
				},
				"version": 1
			}
		},
		"DelegateApprovals": {
			"bytecode": "61012060405269105c1c1c9bdd99505b1b60b21b60809081526d4275726e466f724164647265737360901b60a0526e4973737565466f724164647265737360881b60c0526e436c61696d466f724164647265737360881b60e0527145786368616e6765466f724164647265737360701b61010052610081906002906005610195565b5034801561008e57600080fd5b50604051610fbc380380610fbc833981810160405260408110156100b157600080fd5b508051602090910151816001600160a01b038116610116576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600780546001600160a01b0319166001600160a01b0392909216919091179055506101f0565b82600581019282156101c3579160200282015b828111156101c35782518255916020019190600101906101a8565b506101cf9291506101d3565b5090565b6101ed91905b808211156101cf57600081556001016101d9565b90565b610dbd806101ff6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80638da5cb5b116100de578063b5bb561911610097578063c5e17ab011610071578063c5e17ab014610487578063d8eeb7c11461048f578063e32b3f5214610497578063faf431bb1461049f5761018e565b8063b5bb561914610415578063b9156efa1461043b578063bc87acbf146104615761018e565b80638da5cb5b1461038357806398ff9c541461038b5780639c79ce35146103935780639cbc2ebe146103b95780639f61d336146103c1578063b42e0f15146103e75761018e565b8063447fbc631161014b5780636c8bc9fe116101255780636c8bc9fe146103015780636f95200b1461032757806379ba50971461034d5780637d3f0ba2146103555761018e565b8063447fbc631461029157806353a47bb7146102b757806359cec3d6146102db5761018e565b806304872617146101935780631627540c146101d557806321f4ae57146101fd5780632c70aecf1461022b5780634180e5b514610245578063431ce5401461026b575b600080fd5b6101c1600480360360408110156101a957600080fd5b506001600160a01b03813581169160200135166104cd565b604080519115158252519081900360200190f35b6101fb600480360360208110156101eb57600080fd5b50356001600160a01b03166104f3565b005b6101c16004803603604081101561021357600080fd5b506001600160a01b038135811691602001351661054f565b61023361056e565b60408051918252519081900360200190f35b6101fb6004803603602081101561025b57600080fd5b50356001600160a01b0316610584565b6101fb6004803603602081101561028157600080fd5b50356001600160a01b03166105a4565b6101fb600480360360208110156102a757600080fd5b50356001600160a01b03166105c1565b6102bf6105e1565b604080516001600160a01b039092168252519081900360200190f35b6101fb600480360360208110156102f157600080fd5b50356001600160a01b03166105f0565b6101fb6004803603602081101561031757600080fd5b50356001600160a01b031661060c565b6101fb6004803603602081101561033d57600080fd5b50356001600160a01b0316610629565b6101fb61065a565b6101c16004803603604081101561036b57600080fd5b506001600160a01b0381358116916020013516610716565b6102bf610734565b6102bf610743565b6101fb600480360360208110156103a957600080fd5b50356001600160a01b0316610752565b61023361076e565b6101fb600480360360208110156103d757600080fd5b50356001600160a01b031661077f565b6101c1600480360360408110156103fd57600080fd5b506001600160a01b038135811691602001351661079c565b6101fb6004803603602081101561042b57600080fd5b50356001600160a01b031661082f565b6101fb6004803603602081101561045157600080fd5b50356001600160a01b03166108d6565b6101fb6004803603602081101561047757600080fd5b50356001600160a01b03166108f6565b61023361090e565b610233610924565b61023361093d565b6101c1600480360360408110156104b557600080fd5b506001600160a01b0381358116916020013516610952565b60006104ec6e4973737565466f724164647265737360881b8484610970565b9392505050565b6104fb610a0d565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006104ec6e436c61696d466f724164647265737360881b8484610970565b6e4973737565466f724164647265737360881b81565b6105a16e436c61696d466f724164647265737360881b3383610a58565b50565b6105a16e4973737565466f724164647265737360881b3383610b78565b6105a17145786368616e6765466f724164647265737360701b3383610a58565b6001546001600160a01b031681565b6105a16d4275726e466f724164647265737360901b3383610b78565b6105a16e436c61696d466f724164647265737360881b3383610b78565b60005b60058110156106565761064e6002826005811061064557fe5b01543384610b78565b60010161062c565b5050565b6001546001600160a01b031633146106a35760405162461bcd60e51b8152600401808060200182810382526035815260200180610d256035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006104ec6d4275726e466f724164647265737360901b8484610970565b6000546001600160a01b031681565b6007546001600160a01b031681565b6105a16d4275726e466f724164647265737360901b3383610a58565b69105c1c1c9bdd99505b1b60b21b81565b6105a16e4973737565466f724164647265737360881b3383610a58565b6007546000906001600160a01b03166317e7dd226107c869105c1c1c9bdd99505b1b60b21b8686610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156107fc57600080fd5b505afa158015610810573d6000803e3d6000fd5b505050506040513d602081101561082657600080fd5b50519392505050565b610837610a0d565b6001600160a01b03811661087c5760405162461bcd60e51b8152600401808060200182810382526026815260200180610cff6026913960400191505060405180910390fd5b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517fe3ebe3d58e84fbd094152babb730cf99a14b47f65ed04f35a3bd6356f8161a17916020908290030190a150565b6105a17145786368616e6765466f724164647265737360701b3383610b78565b6105a169105c1c1c9bdd99505b1b60b21b3383610a58565b6e436c61696d466f724164647265737360881b81565b7145786368616e6765466f724164647265737360701b81565b6d4275726e466f724164647265737360901b81565b60006104ec7145786368616e6765466f724164647265737360701b84845b600061097c838361079c565b15610989575060016104ec565b6007546001600160a01b03166317e7dd226109a5868686610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156109d957600080fd5b505afa1580156109ed573d6000803e3d6000fd5b505050506040513d6020811015610a0357600080fd5b5051949350505050565b6000546001600160a01b03163314610a565760405162461bcd60e51b815260040180806020018281038252602f815260200180610d5a602f913960400191505060405180910390fd5b565b6001600160a01b038116610ab3576040805162461bcd60e51b815260206004820152601c60248201527f43616e27742064656c656761746520746f206164647265737328302900000000604482015290519081900360640190fd5b6007546001600160a01b0316633eba9ed2610acf858585610cb2565b60016040518363ffffffff1660e01b8152600401808381526020018215151515815260200192505050600060405180830381600087803b158015610b1257600080fd5b505af1158015610b26573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201889052825190871694507f36a9e0c1da9cdc6d8f4bd4cb261f9ad6a45eb1641a557ead7530fbeff9a2633693509081900390910190a2505050565b6007546001600160a01b03166317e7dd22610b94858585610cb2565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610bc857600080fd5b505afa158015610bdc573d6000803e3d6000fd5b505050506040513d6020811015610bf257600080fd5b505115610cad576007546001600160a01b0316633cc1635c610c15858585610cb2565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610c4b57600080fd5b505af1158015610c5f573d6000803e3d6000fd5b5050604080516001600160a01b03858116825260208201889052825190871694507f7e8dc09322ac82342d9dbfd49eb6497fa7ab69ac444f3763a9b8e16530342f4193509081900390910190a25b505050565b6040805160208082018690526bffffffffffffffffffffffff19606086811b82168486015285901b1660548301528251604881840301815260689092019092528051910120939250505056fe43616e27742073657420657465726e616c53746f7261676520746f2061646472657373283029596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820f7764db06028d23b4e9bcae32ffa9e3121e39c276d64ac326333338301d3908864736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract EternalStorage",
							"name": "_eternalStorage",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "action",
							"type": "bytes32"
						}
					],
					"name": "Approval",
					"type": "event",
					"signature": "0x36a9e0c1da9cdc6d8f4bd4cb261f9ad6a45eb1641a557ead7530fbeff9a26336"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newEternalStorage",
							"type": "address"
						}
					],
					"name": "EternalStorageUpdated",
					"type": "event",
					"signature": "0xe3ebe3d58e84fbd094152babb730cf99a14b47f65ed04f35a3bd6356f8161a17"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "action",
							"type": "bytes32"
						}
					],
					"name": "WithdrawApproval",
					"type": "event",
					"signature": "0x7e8dc09322ac82342d9dbfd49eb6497fa7ab69ac444f3763a9b8e16530342f41"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "APPROVE_ALL",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9cbc2ebe"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "BURN_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe32b3f52"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CLAIM_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc5e17ab0"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "EXCHANGE_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd8eeb7c1"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "ISSUE_FOR_ADDRESS",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2c70aecf"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveAllDelegatePowers",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbc87acbf"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveBurnOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x9c79ce35"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveClaimOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4180e5b5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveExchangeOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x447fbc63"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approveIssueOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x9f61d336"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "approvedAll",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb42e0f15"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canBurnFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7d3f0ba2"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canClaimFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x21f4ae57"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canExchangeFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfaf431bb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "authoriser",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "canIssueFor",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04872617"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "eternalStorage",
					"outputs": [
						{
							"internalType": "contract EternalStorage",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x98ff9c54"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeAllDelegatePowers",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6f95200b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeBurnOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x59cec3d6"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeClaimOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6c8bc9fe"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeExchangeOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb9156efa"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "delegate",
							"type": "address"
						}
					],
					"name": "removeIssueOnBehalf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x431ce540"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract EternalStorage",
							"name": "_eternalStorage",
							"type": "address"
						}
					],
					"name": "setEternalStorage",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb5bb5619"
				}
			],
			"source": {
				"keccak256": "0xd821ad5f32ac92fe9cc2c44118d714737ed050426d16f29eb7f7edeb3e0ebe66",
				"urls": [
					"bzz-raw://7100ef244e6da47684c9281b7a432cbcd561cc3a702a330daafc0083bf66b59b",
					"dweb:/ipfs/QmeCHQfERyATiecvecXSBhsfnG35K8hpAU36gu3dKgoF3k"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DelegateApprovals.sol": "DelegateApprovals"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DelegateApprovals.sol": {
						"keccak256": "0xd821ad5f32ac92fe9cc2c44118d714737ed050426d16f29eb7f7edeb3e0ebe66",
						"urls": [
							"bzz-raw://7100ef244e6da47684c9281b7a432cbcd561cc3a702a330daafc0083bf66b59b",
							"dweb:/ipfs/QmeCHQfERyATiecvecXSBhsfnG35K8hpAU36gu3dKgoF3k"
						]
					}
				},
				"version": 1
			}
		},
		"Liquidations": {
			"bytecode": "608060405234801561001057600080fd5b50604051611ef6380380611ef68339818101604052604081101561003357600080fd5b5080516020909101518080836001600160a01b03811661009a576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b0319909216919091179055505050611dd0806101266000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806379ba5097116100b8578063974e9e7f1161007c578063974e9e7f146102d0578063a0cf7451146102f6578063ad2bc2d5146102fe578063b410a03414610324578063c49e80a61461032c578063d45c0d7e1461035257610142565b806379ba50971461023a578063828afc4b14610242578063899ffef4146102685780638d1bd1be146102c05780638da5cb5b146102c857610142565b80632af64bd31161010a5780632af64bd3146101d857806339a9df1b146101f457806353a47bb71461021a5780636a05896614610222578063741853601461022a57806374e889c91461023257610142565b806304f3bcec146101475780630ac045d51461016b5780631627540c146101a05780631775765f146101c857806323f5589a146101d0575b600080fd5b61014f610378565b604080516001600160a01b039092168252519081900360200190f35b61018e6004803603604081101561018157600080fd5b5080359060200135610387565b60408051918252519081900360200190f35b6101c6600480360360208110156101b657600080fd5b50356001600160a01b0316610485565b005b61018e6104e1565b61018e6104f1565b6101e06104fb565b604080519115158252519081900360200190f35b6101e06004803603602081101561020a57600080fd5b50356001600160a01b0316610605565b61014f610630565b61018e61063f565b6101c6610657565b61018e61081f565b6101c6610839565b61018e6004803603602081101561025857600080fd5b50356001600160a01b03166108f5565b610270610910565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102ac578181015183820152602001610294565b505050509050019250505060405180910390f35b61018e610a2b565b61014f610ab4565b6101c6600480360360208110156102e657600080fd5b50356001600160a01b0316610ac3565b61018e610b3e565b6101c66004803603602081101561031457600080fd5b50356001600160a01b0316610b48565b61018e610d82565b6101e06004803603602081101561034257600080fd5b50356001600160a01b0316610d8c565b6101c66004803603602081101561036857600080fd5b50356001600160a01b0316610e6c565b6002546001600160a01b031681565b6000806103926111df565b9050600073__$5e636ccdd5f89cd6033a7187b9bf4f76b3$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156103da57600080fd5b505af41580156103ee573d6000803e3d6000fd5b505050506040513d602081101561040457600080fd5b50519050600061042a61041d868563ffffffff61128616565b879063ffffffff6112b016565b905060006104666104598561044d61044061130d565b879063ffffffff61138816565b9063ffffffff61128616565b849063ffffffff6112b016565b9050610478828263ffffffff6113e916565b9450505050505b92915050565b61048d611413565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006104eb61145e565b90505b90565b60006104eb61130d565b60006060610507610910565b905060005b81518110156105fc57600082828151811061052357fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801561058b57600080fd5b505afa15801561059f573d6000803e3d6000fd5b505050506040513d60208110156105b557600080fd5b50516001600160a01b03161415806105e257506000818152600360205260409020546001600160a01b0316155b156105f357600093505050506104ee565b5060010161050c565b50600191505090565b600061060f611c65565b610618836114d7565b90506106278160000151611583565b9150505b919050565b6001546001600160a01b031681565b702634b8bab4b230ba34b7b721b0b63632b960791b81565b6060610661610910565b905060005b815181101561081b57600082828151811061067d57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561073357818101518382015260200161071b565b50505050905090810190601f1680156107605780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561077e57600080fd5b505afa158015610792573d6000803e3d6000fd5b505050506040513d60208110156107a857600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610666565b5050565b724c69717569646174696f6e446561646c696e6560681b81565b6001546001600160a01b031633146108825760405162461bcd60e51b8152600401808060200182810382526035815260200180611c7d6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006108ff611c65565b610908836114d7565b519392505050565b60608061091b611595565b60408051600580825260c08201909252919250606091906020820160a0803883390190505090506b53797374656d53746174757360a01b8160008151811061095f57fe5b6020026020010181815250506a5065726946696e616e636560a81b8160018151811061098757fe5b6020026020010181815250507f457465726e616c53746f726167654c69717569646174696f6e73000000000000816002815181106109c157fe5b6020026020010181815250506524b9b9bab2b960d11b816003815181106109e457fe5b6020026020010181815250506c45786368616e6765526174657360981b81600481518110610a0e57fe5b602002602001018181525050610a2482826115e6565b9250505090565b60006104eb610a3861145e565b73__$5e636ccdd5f89cd6033a7187b9bf4f76b3$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7c57600080fd5b505af4158015610a90573d6000803e3d6000fd5b505050506040513d6020811015610aa657600080fd5b50519063ffffffff6116a216565b6000546001600160a01b031681565b610acb6116b7565b6001600160a01b0316336001600160a01b031614610b1a5760405162461bcd60e51b815260040180806020018281038252603e815260200180611d16603e913960400191505060405180910390fd5b610b22611c65565b610b2b826114d7565b80519091501561081b5761081b826116cb565b60006104eb611813565b635045524960e01b610b5861188c565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610b9b57600080fd5b505afa158015610baf573d6000803e3d6000fd5b505050506040513d6020811015610bc557600080fd5b505115610c19576040805162461bcd60e51b815260206004820152601b60248201527f5261746520696e76616c6964206f72206e6f7420612070796e74680000000000604482015290519081900360640190fd5b610c216118a7565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015610c5957600080fd5b505afa158015610c6d573d6000803e3d6000fd5b50505050610c79611c65565b610c82836114d7565b8051909150610cd8576040805162461bcd60e51b815260206004820152601e60248201527f4163636f756e7420686173206e6f206c69717569646174696f6e207365740000604482015290519081900360640190fd5b6000610ce26118c1565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610d3757600080fd5b505afa158015610d4b573d6000803e3d6000fd5b505050506040513d6020811015610d6157600080fd5b50519050610d6d6111df565b8111610d7c57610d7c846116cb565b50505050565b60006104eb6111df565b600080610d976118c1565b6001600160a01b031663a311c7c2846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610dec57600080fd5b505afa158015610e00573d6000803e3d6000fd5b505050506040513d6020811015610e1657600080fd5b50519050610e226111df565b8111610e3257600091505061062b565b610e3a611c65565b610e43846114d7565b9050610e528160000151611583565b15610e625760019250505061062b565b5060009392505050565b635045524960e01b610e7c61188c565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610ebf57600080fd5b505afa158015610ed3573d6000803e3d6000fd5b505050506040513d6020811015610ee957600080fd5b505115610f3d576040805162461bcd60e51b815260206004820152601b60248201527f5261746520696e76616c6964206f72206e6f7420612070796e74680000000000604482015290519081900360640190fd5b610f456118a7565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015610f7d57600080fd5b505afa158015610f91573d6000803e3d6000fd5b505050506000610f9f61145e565b11610ff1576040805162461bcd60e51b815260206004820152601960248201527f4c69717569646174696f6e20726174696f206e6f742073657400000000000000604482015290519081900360640190fd5b6000610ffb611813565b1161104d576040805162461bcd60e51b815260206004820152601960248201527f4c69717569646174696f6e2064656c6179206e6f742073657400000000000000604482015290519081900360640190fd5b611055611c65565b61105e836114d7565b80519091501561109f5760405162461bcd60e51b8152600401808060200182810382526027815260200180611d756027913960400191505060405180910390fd5b60006110a96118c1565b6001600160a01b031663a311c7c2856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156110fe57600080fd5b505afa158015611112573d6000803e3d6000fd5b505050506040513d602081101561112857600080fd5b5051905061113461145e565b8110156111725760405162461bcd60e51b8152600401808060200182810382526035815260200180611cb26035913960400191505060405180910390fd5b600061118c61117f611813565b429063ffffffff61138816565b90506111998582336118da565b6040805182815290516001600160a01b038716917fc77e4625de0c70adaf3bd1aabb5f22f9eae8f565367c706fc209030c13857996919081900360200190a25050505050565b60006111e9611a07565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561125557600080fd5b505afa158015611269573d6000803e3d6000fd5b505050506040513d602081101561127f57600080fd5b5051905090565b6000670de0b6b3a76400006112a1848463ffffffff611a2416565b816112a857fe5b049392505050565b600082821115611307576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000611317611a07565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561125557600080fd5b6000828201838110156113e2576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006113e28261140785670de0b6b3a764000063ffffffff611a2416565b9063ffffffff611a7d16565b6000546001600160a01b0316331461145c5760405162461bcd60e51b815260040180806020018281038252602f815260200180611ce7602f913960400191505060405180910390fd5b565b6000611468611a07565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6c69717569646174696f6e526174696f60801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561125557600080fd5b6114df611c65565b6114e7611ae7565b6001600160a01b031663bdc963d8611515724c69717569646174696f6e446561646c696e6560681b85611b12565b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561154957600080fd5b505afa15801561155d573d6000803e3d6000fd5b505050506040513d602081101561157357600080fd5b5051815260006020820152919050565b6000808211801561047f575050421190565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106115d757fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611616578160200160208202803883390190505b50905060005b83518110156116585783818151811061163157fe5b602002602001015182828151811061164557fe5b602090810291909101015260010161161c565b5060005b825181101561169b5782818151811061167157fe5b602002602001015182828651018151811061168857fe5b602090810291909101015260010161165c565b5092915050565b60006113e28383670de0b6b3a7640000611b51565b60006104eb6524b9b9bab2b960d11b611b88565b6116d3611ae7565b6001600160a01b03166393fe4248611701724c69717569646174696f6e446561646c696e6560681b84611b12565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561173757600080fd5b505af115801561174b573d6000803e3d6000fd5b50505050611757611ae7565b6001600160a01b031663043106c0611783702634b8bab4b230ba34b7b721b0b63632b960791b84611b12565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156117b957600080fd5b505af11580156117cd573d6000803e3d6000fd5b50506040805142815290516001600160a01b03851693507f9b6ac8997b4f2edd0a27c1beb32f7c14d522e9c16f46e79daa5a144016bd6c8792509081900360200190a250565b600061181d611a07565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6c69717569646174696f6e44656c617960801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561125557600080fd5b60006104eb6c45786368616e6765526174657360981b611b88565b60006104eb6b53797374656d53746174757360a01b611b88565b60006104eb6a5065726946696e616e636560a81b611b88565b6118e2611ae7565b6001600160a01b0316633562fd20611910724c69717569646174696f6e446561646c696e6560681b86611b12565b846040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801561194e57600080fd5b505af1158015611962573d6000803e3d6000fd5b5050505061196e611ae7565b6001600160a01b0316635a2bf25a61199a702634b8bab4b230ba34b7b721b0b63632b960791b86611b12565b836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b1580156119ea57600080fd5b505af11580156119fe573d6000803e3d6000fd5b50505050505050565b60006104eb6e466c657869626c6553746f7261676560881b611b88565b600082611a335750600061047f565b82820282848281611a4057fe5b04146113e25760405162461bcd60e51b8152600401808060200182810382526021815260200180611d546021913960400191505060405180910390fd5b6000808211611ad3576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611ade57fe5b04949350505050565b60006104eb7f457465726e616c53746f726167654c69717569646174696f6e73000000000000611b88565b6040805160208082019490945260609290921b6bffffffffffffffffffffffff1916828201528051808303603401815260549092019052805191012090565b600080611b6b8461140787600a870263ffffffff611a2416565b90506005600a820610611b7c57600a015b600a9004949350505050565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b0316908161169b5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611c2a578181015183820152602001611c12565b50505050905090810190601f168015611c575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b60408051808201909152600080825260208201529056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704163636f756e742069737375616e636520726174696f206973206c657373207468616e206c69717569646174696f6e20726174696f4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4c69717569646174696f6e733a204f6e6c79207468652049737375657220636f6e74726163742063616e20706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774163636f756e7420616c726561647920666c616767656420666f72206c69717569646174696f6ea265627a7a723158204c3afe5f49e07e58fa5698bd79e3e83faa8a08bfed0cda8ff4804659859f09bf64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "deadline",
							"type": "uint256"
						}
					],
					"name": "AccountFlaggedForLiquidation",
					"type": "event",
					"signature": "0xc77e4625de0c70adaf3bd1aabb5f22f9eae8f565367c706fc209030c13857996"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "time",
							"type": "uint256"
						}
					],
					"name": "AccountRemovedFromLiquidation",
					"type": "event",
					"signature": "0x9b6ac8997b4f2edd0a27c1beb32f7c14d522e9c16f46e79daa5a144016bd6c87"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "LIQUIDATION_CALLER",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6a058966"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "LIQUIDATION_DEADLINE",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x74e889c9"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "debtBalance",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"name": "calculateAmountToFixCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0ac045d5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "checkAndRemoveAccountInLiquidation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xad2bc2d5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "flagAccountForLiquidation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd45c0d7e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getLiquidationDeadlineForAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x828afc4b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "isLiquidationDeadlinePassed",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x39a9df1b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "isOpenForLiquidation",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc49e80a6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb410a034"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationCollateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8d1bd1be"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa0cf7451"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x23f5589a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1775765f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "removeAccountInLiquidation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x974e9e7f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				}
			],
			"source": {
				"keccak256": "0x73675b4c33702e257a3f147b570cf03b819b47eb73d80d6db45cf7da8894dca8",
				"urls": [
					"bzz-raw://506e42102bf44ff45616bc123383aee4c700befa54af8e59d3c280aa4e67a5e4",
					"dweb:/ipfs/QmWiUuKHqsHtrqnvXeuSScuDKLSNPxnHHneiRwAuafTGnc"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Liquidations.sol": "Liquidations"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Liquidations.sol": {
						"keccak256": "0x73675b4c33702e257a3f147b570cf03b819b47eb73d80d6db45cf7da8894dca8",
						"urls": [
							"bzz-raw://506e42102bf44ff45616bc123383aee4c700befa54af8e59d3c280aa4e67a5e4",
							"dweb:/ipfs/QmWiUuKHqsHtrqnvXeuSScuDKLSNPxnHHneiRwAuafTGnc"
						]
					}
				},
				"version": 1
			}
		},
		"FeePoolEternalStorage": {
			"bytecode": "608060405234801561001057600080fd5b506040516114d03803806114d08339818101604052604081101561003357600080fd5b50805160209091015162375f00828280826001600160a01b03811661009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610149576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050504201600a55505061131d806101b36000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c806353a47bb711610104578063a209a29c116100a2578063ba69fcaa11610071578063ba69fcaa146105d5578063bdc963d8146105f2578063c9a52d2c1461060f578063f586606614610684576101cf565b8063a209a29c146104cf578063a77aa49e146104ec578063aefc4ccb1461050f578063b3ffbd9e14610517576101cf565b80638267a9ee116100de5780638267a9ee146104705780638da5cb5b1461048d5780639007127b1461049557806393fe4248146104b2576101cf565b806353a47bb7146104345780635a2bf25a1461043c57806379ba509714610468576101cf565b80633562fd201161017157806344bfa56e1161014b57806344bfa56e1461033b57806346ba2d90146103cd5780634c77e5ba146103d557806352f445ca1461040e576101cf565b80633562fd20146102d65780633cc1635c146102f95780633eba9ed214610316576101cf565b8063124f2418116101ad578063124f24181461023f5780631627540c1461025c57806317e7dd221461028257806325cf512d146102b3576101cf565b8063025ec81a146101d4578063043106c0146102035780630c55d92514610222575b600080fd5b6101f1600480360360208110156101ea57600080fd5b50356106f9565b60408051918252519081900360200190f35b6102206004803603602081101561021957600080fd5b503561070b565b005b6102206004803603602081101561023857600080fd5b5035610772565b6102206004803603602081101561025557600080fd5b50356107d5565b6102206004803603602081101561027257600080fd5b50356001600160a01b031661082f565b61029f6004803603602081101561029857600080fd5b503561088b565b604080519115158252519081900360200190f35b610220600480360360408110156102c957600080fd5b50803590602001356108a0565b610220600480360360408110156102ec57600080fd5b50803590602001356108fb565b6102206004803603602081101561030f57600080fd5b5035610956565b6102206004803603604081101561032c57600080fd5b508035906020013515156109b7565b6103586004803603602081101561035157600080fd5b5035610a20565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039257818101518382015260200161037a565b50505050905090810190601f1680156103bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101f1610ac1565b6103f2600480360360208110156103eb57600080fd5b5035610ac7565b604080516001600160a01b039092168252519081900360200190f35b6102206004803603602081101561042457600080fd5b50356001600160a01b0316610ae2565b6103f2610b3e565b6102206004803603604081101561045257600080fd5b50803590602001356001600160a01b0316610b4d565b610220610bc4565b6102206004803603602081101561048657600080fd5b5035610c80565b6103f2610cda565b6101f1600480360360208110156104ab57600080fd5b5035610ce9565b610220600480360360208110156104c857600080fd5b5035610cfb565b610358600480360360208110156104e557600080fd5b5035610d55565b6102206004803603604081101561050257600080fd5b5080359060200135610dbf565b6103f2610e1a565b6102206004803603604081101561052d57600080fd5b810190602081018135600160201b81111561054757600080fd5b82018360208201111561055957600080fd5b803590602001918460208302840111600160201b8311171561057a57600080fd5b919390929091602081019035600160201b81111561059757600080fd5b8201836020820111156105a957600080fd5b803590602001918460208302840111600160201b831117156105ca57600080fd5b509092509050610e29565b610220600480360360208110156105eb57600080fd5b5035610fc1565b6101f16004803603602081101561060857600080fd5b5035611021565b6102206004803603604081101561062557600080fd5b81359190810190604081016020820135600160201b81111561064657600080fd5b82018360208201111561065857600080fd5b803590602001918460018302840111600160201b8311171561067957600080fd5b509092509050611033565b6102206004803603604081101561069a57600080fd5b81359190810190604081016020820135600160201b8111156106bb57600080fd5b8201836020820111156106cd57600080fd5b803590602001918460018302840111600160201b831117156106ee57600080fd5b50909250905061109b565b60009081526007602052604090205490565b6002546001600160a01b031633146107545760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260056020526040902080546001600160a01b0319169055565b6002546001600160a01b031633146107bb5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60008181526006602052604081206107d291611148565b50565b6002546001600160a01b0316331461081e5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260076020526040812055565b6108376110fd565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60009081526008602052604090205460ff1690565b6002546001600160a01b031633146108e95760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526007602052604090912055565b6002546001600160a01b031633146109445760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526003602052604090912055565b6002546001600160a01b0316331461099f5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b6000908152600860205260409020805460ff19169055565b6002546001600160a01b03163314610a005760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600091825260086020526040909120805460ff1916911515919091179055565b60008181526006602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b50505050509050919050565b600a5481565b6000908152600560205260409020546001600160a01b031690565b610aea6110fd565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6002546001600160a01b03163314610b965760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526005602052604090912080546001600160a01b0319166001600160a01b03909216919091179055565b6001546001600160a01b03163314610c0d5760405162461bcd60e51b81526004018080602001828103825260358152602001806112286035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546001600160a01b03163314610cc95760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260096020526040812055565b6000546001600160a01b031681565b60009081526009602052604090205490565b6002546001600160a01b03163314610d445760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600090815260036020526040812055565b60008181526004602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845260609392830182828015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b6002546001600160a01b03163314610e085760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60009182526009602052604090912055565b6002546001600160a01b031681565b610e316110fd565b600a544210610e715760405162461bcd60e51b81526004018080602001828103825260298152602001806112c06029913960400191505060405180910390fd5b828114610eb7576040805162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b60005b60ff8116841115610fba5730633562fd20721b185cdd17d9995957ddda5d1a191c985dd85b606a1b878760ff8616818110610ef157fe5b905060200201356001600160a01b031660405160200180838152602001826001600160a01b03166001600160a01b031660601b8152601401925050506040516020818303038152906040528051906020012085858560ff16818110610f5257fe5b905060200201356040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015610f9657600080fd5b505af1158015610faa573d6000803e3d6000fd5b505060019092019150610eba9050565b5050505050565b6002546001600160a01b0316331461100a5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b60008181526004602052604081206107d291611148565b60009081526003602052604090205490565b6002546001600160a01b0316331461107c5760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600083815260066020526040902061109590838361118c565b50505050565b6002546001600160a01b031633146110e45760405162461bcd60e51b815260040180806020018281038252603481526020018061128c6034913960400191505060405180910390fd5b600083815260046020526040902061109590838361118c565b6000546001600160a01b031633146111465760405162461bcd60e51b815260040180806020018281038252602f81526020018061125d602f913960400191505060405180910390fd5b565b50805460018160011615610100020316600290046000825580601f1061116e57506107d2565b601f0160209004906000526020600020908101906107d2919061120a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106111cd5782800160ff198235161785556111fa565b828001600101855582156111fa579182015b828111156111fa5782358255916020019190600101906111df565b5061120692915061120a565b5090565b61122491905b808211156112065760008155600101611210565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a72315820bc2408e132378892a943047c5ca2be71aae590d0225714b4c76b87cd478feb8264736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x043106c0"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3cc1635c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x124f2418"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0c55d925"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8267a9ee"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xba69fcaa"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "deleteUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x93fe4248"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getAddressValue",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4c77e5ba"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBooleanValue",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x17e7dd22"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytes32Value",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x025ec81a"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getBytesValue",
					"outputs": [
						{
							"internalType": "bytes",
							"name": "",
							"type": "bytes"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x44bfa56e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getIntValue",
					"outputs": [
						{
							"internalType": "int256",
							"name": "",
							"type": "int256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9007127b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getStringValue",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa209a29c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						}
					],
					"name": "getUIntValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xbdc963d8"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "feePeriodIDs",
							"type": "uint256[]"
						}
					],
					"name": "importFeeWithdrawalData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb3ffbd9e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "value",
							"type": "address"
						}
					],
					"name": "setAddressValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5a2bf25a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "value",
							"type": "bool"
						}
					],
					"name": "setBooleanValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3eba9ed2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "value",
							"type": "bytes32"
						}
					],
					"name": "setBytes32Value",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x25cf512d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "bytes",
							"name": "value",
							"type": "bytes"
						}
					],
					"name": "setBytesValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc9a52d2c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "int256",
							"name": "value",
							"type": "int256"
						}
					],
					"name": "setIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa77aa49e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "string",
							"name": "value",
							"type": "string"
						}
					],
					"name": "setStringValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf5866066"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "record",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setUIntValue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3562fd20"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46ba2d90"
				}
			],
			"source": {
				"keccak256": "0x048ed15261de8c302211714977715533a39f8241af231cf114932738fc5bf56e",
				"urls": [
					"bzz-raw://3889142168bc3847966114e53bf0cbca0b55dd13b579cfe2cc640d13a98abacb",
					"dweb:/ipfs/QmSvPKxBHYxkUfK365nvKUdPrNH6hcPZkCYznp4y8NQzx3"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FeePoolEternalStorage.sol": "FeePoolEternalStorage"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FeePoolEternalStorage.sol": {
						"keccak256": "0x048ed15261de8c302211714977715533a39f8241af231cf114932738fc5bf56e",
						"urls": [
							"bzz-raw://3889142168bc3847966114e53bf0cbca0b55dd13b579cfe2cc640d13a98abacb",
							"dweb:/ipfs/QmSvPKxBHYxkUfK365nvKUdPrNH6hcPZkCYznp4y8NQzx3"
						]
					}
				},
				"version": 1
			}
		},
		"FeePool": {
			"bytecode": "6080604052631c1554d160e21b6008553480156200001c57600080fd5b50604051620054ce380380620054ce8339810160408190526200003f9162000221565b8080621baf8085856001600160a01b038116620000795760405162461bcd60e51b8152600401620000709062000343565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c69184906200030b565b60405180910390a1506000546001600160a01b0316620000fa5760405162461bcd60e51b8152600401620000709062000331565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9062000147908390620002fb565b60405180910390a1504201600555600680546001600160a01b0319166001600160a01b0392909216919091179055506001620001846000620001e2565b80546001600160401b0319166001600160401b039290921691909117905542620001af6000620001e2565b80546001600160401b0392909216600160801b02600160801b600160c01b0319909216919091179055506200039e915050565b60006009600260ff16836013540181620001f857fe5b06600281106200020457fe5b6005020192915050565b80516200021b8162000384565b92915050565b6000806000606084860312156200023757600080fd5b60006200024586866200020e565b935050602062000258868287016200020e565b92505060406200026b868287016200020e565b9150509250925092565b620002808162000370565b82525050565b62000280816200035e565b6000620002a060118362000355565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620002cf60198362000355565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b602081016200021b828462000275565b604081016200031b828562000275565b6200032a602083018462000286565b9392505050565b602080825281016200021b8162000291565b602080825281016200021b81620002c0565b90815260200190565b60006001600160a01b0382166200021b565b60006200021b8260006200021b826200035e565b6200038f816200035e565b81146200039b57600080fd5b50565b61512080620003ae6000396000f3fe608060405234801561001057600080fd5b50600436106102ff5760003560e01c80636683051b1161019c578063ac834193116100ee578063d294f09311610097578063eb1edd6111610071578063eb1edd61146105a3578063ec556889146105ab578063fd1f498d146105b3576102ff565b8063d294f0931461058b578063d67bdd2514610593578063e0e6393d1461059b576102ff565b8063bc67f832116100c8578063bc67f83214610543578063c2dc46b014610556578063cff2ddad14610576576102ff565b8063ac83419314610520578063b10090b814610528578063b410a0341461053b576102ff565b806386645274116101505780638da5cb5b1161012a5780638da5cb5b146104fd57806397107d6d146105055780639cbdaeb614610518576102ff565b806386645274146104c25780638844578a146104d5578063899ffef4146104e8576102ff565b80636de813f1116101815780636de813f1146104aa57806374185360146104b257806379ba5097146104ba576102ff565b80636683051b1461048f5780636841e9b414610497576102ff565b80633c41d1731161025557806353a47bb7116102095780635fe47778116101e35780635fe477781461046c57806362115496146104745780636466f45e1461047c576102ff565b806353a47bb71461043c578063569249d01461045157806359a2f19f14610459576102ff565b80633fcd22401161023a5780633fcd224014610406578063446530d11461042c57806346ba2d9014610434576102ff565b80633c41d173146103f65780633ebc457a146103fe576102ff565b80631627540c116102b7578063269652671161029157806326965267146103b95780632af64bd3146103c157806333140016146103d6576102ff565b80631627540c1461038b57806322425fa41461039e57806322bf55ef146103a6576102ff565b80630813071c116102e85780630813071c146103425780630de5861514610355578063131b0ae714610376576102ff565b806304f3bcec1461030457806307ea50cd14610322575b600080fd5b61030c6105c6565b6040516103199190614d4e565b60405180910390f35b610335610330366004613c5c565b6105d5565b6040516103199190614c6b565b610335610350366004613ca0565b6106aa565b610368610363366004613c5c565b6107f6565b604051610319929190614c87565b610389610384366004613c5c565b610878565b005b610389610399366004613c5c565b6108a2565b610335610900565b6103896103b4366004613d81565b610910565b610335610ac0565b6103c9610aca565b6040516103199190614c5d565b6103e96103e4366004613c5c565b610bfa565b6040516103199190614c3e565b6103c9610e5e565b610389610e6c565b610419610414366004613d81565b6111fa565b6040516103199796959493929190614f69565b6103356112a3565b6103356112a9565b6104446112af565b6040516103199190614b36565b6103356112be565b6103c9610467366004613c5c565b611319565b61038961132b565b610335611555565b6103c961048a366004613c5c565b61155b565b6103c9611685565b6103896104a5366004613d81565b61168e565b610335611931565b610389611986565b610389611ad8565b6103896104d0366004613cda565b611b74565b6103896104e3366004613d81565b611cb4565b6104f0611d5b565b6040516103199190614c4c565b61044461207b565b610389610513366004613c5c565b61208a565b61030c6120dd565b6103356120ec565b610389610536366004613dff565b61218c565b610335612386565b610389610551366004613c5c565b612390565b610569610564366004613d81565b6123ba565b6040516103199190614f4d565b61057e61244e565b6040516103199190614fd1565b6103c9612453565b6104446124ca565b6103356124d9565b6104446124e3565b61030c6124fb565b6103896105c1366004613d81565b61250a565b6006546001600160a01b031681565b60006105df612587565b6001600160a01b031663bdc963d87f6c6173745f6665655f7769746864726177616c0000000000000000000000000084604051602001610620929190614ac4565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016106529190614c6b565b60206040518083038186803b15801561066a57600080fd5b505afa15801561067e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106a29190810190613d45565b90505b919050565b6000816106d25760405162461bcd60e51b81526004016106c990614f1d565b60405180910390fd5b600282106106f25760405162461bcd60e51b81526004016106c990614ead565b6106fe600183036125b2565b5468010000000000000000900467ffffffffffffffff16610721575060006107f0565b60006107516001610734600186036125b2565b5468010000000000000000900467ffffffffffffffff16906125dc565b905060008061075e612604565b6001600160a01b031663d29c000a87856040518363ffffffff1660e01b815260040161078b929190614bc6565b604080518083038186803b1580156107a257600080fd5b505afa1580156107b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107da9190810190613dcf565b90925090506107ea83838361262f565b93505050505b92915050565b600080610801613b74565b61080a84610bfa565b905060008060015b600281101561086b5761083784826002811061082a57fe5b602002015151849061276e565b925061086184826002811061084857fe5b602002015160016020020151839063ffffffff61276e16565b9150600101610812565b509093509150505b915091565b610880612793565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6108aa612793565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906108f5908390614b36565b60405180910390a150565b600061090a6127bf565b90505b90565b600061091a612877565b6001600160a01b0316331490506000806109326128a2565b6001600160a01b031663c9a2f3ad336040518263ffffffff1660e01b815260040161095d9190614b44565b60206040518083038186803b15801561097557600080fd5b505afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109ad9190810190613d45565b1415905060006109bb6128b6565b6001600160a01b0316336001600160a01b031614905060006109db6128e1565b6001600160a01b031663b38988f7336040518263ffffffff1660e01b8152600401610a069190614b44565b60206040518083038186803b158015610a1e57600080fd5b505afa158015610a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a569190810190613d27565b90508380610a615750825b80610a695750815b80610a715750805b610a8d5760405162461bcd60e51b81526004016106c990614d7d565b610aab85610a9b60006125b2565b600101549063ffffffff61276e16565b610ab560006125b2565b600101555050505050565b600061090a61290c565b60006060610ad6611d5b565b905060005b8151811015610bf1576000828281518110610af257fe5b602090810291909101810151600081815260079092526040918290205460065492517f21f8a7210000000000000000000000000000000000000000000000000000000081529193506001600160a01b039081169216906321f8a72190610b5c908590600401614c6b565b60206040518083038186803b158015610b7457600080fd5b505afa158015610b88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bac9190810190613c82565b6001600160a01b0316141580610bd757506000818152600760205260409020546001600160a01b0316155b15610be8576000935050505061090d565b50600101610adb565b50600191505090565b610c02613b74565b6000806000610c0f612604565b6040517fb326f84e0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0382169063b326f84e90610c5a908890600090600401614b6d565b604080518083038186803b158015610c7157600080fd5b505afa158015610c85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ca99190810190613dcf565b909350915081158015610cba575082155b15610cd257610cc7613b74565b93506106a592505050565b600080610ce160008686612a2b565b8751829052875160200181905290925090506000610cfe886105d5565b905060015b8015610e525760001981016000610d19826125b2565b5468010000000000000000900467ffffffffffffffff1690508015801590610d535750610d45836125b2565b5467ffffffffffffffff1684105b15610e47576000610d6b82600163ffffffff6125dc16565b6040517fd29c000a0000000000000000000000000000000000000000000000000000000081529091506001600160a01b0389169063d29c000a90610db5908f908590600401614bc6565b604080518083038186803b158015610dcc57600080fd5b505afa158015610de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e049190810190613dcf565b909a509850610e14848b8b612a2b565b9097509550868b8560028110610e2657fe5b602002015152858b8560028110610e3957fe5b602002015160016020020152505b505060001901610d03565b50505050505050919050565b601454610100900460ff1690565b610e74612acd565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015610eac57600080fd5b505afa158015610ec0573d6000803e3d6000fd5b505050506000610ece6127bf565b11610eeb5760405162461bcd60e51b81526004016106c990614f2d565b610ef36127bf565b4203610eff60006125b2565b54600160801b900467ffffffffffffffff161115610f2f5760405162461bcd60e51b81526004016106c990614dad565b60145460ff1680610f475750601454610100900460ff165b610f635760405162461bcd60e51b81526004016106c990614eed565b6000610f6e816125b2565b90506000610f7c60016125b2565b9050610fad8260010154610fa1836002015484600101546125dc90919063ffffffff16565b9063ffffffff61276e16565b610fb760006125b2565b60010155600380830154600483015491830154610fde92610fa1919063ffffffff6125dc16565b610fe860006125b2565b60030155601354611025906002906110199060019061100d908463ffffffff61276e16565b9063ffffffff6125dc16565b9063ffffffff612af816565b60138190556009906002811061103757fe5b6005020180547fffffffffffffffff0000000000000000000000000000000000000000000000001681556000600180830182905560028301829055600383018290556004909201556110a39061108c816125b2565b5467ffffffffffffffff169063ffffffff61276e16565b6110ad60006125b2565b805467ffffffffffffffff191667ffffffffffffffff929092169190911790556110d5612b28565b6001600160a01b031663cd92eba96040518163ffffffff1660e01b815260040160206040518083038186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111459190810190613d45565b61114f60006125b2565b805467ffffffffffffffff9290921668010000000000000000026fffffffffffffffff0000000000000000199092169190911790554261118f60006125b2565b805467ffffffffffffffff92909216600160801b027fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff9092169190911790556014805461ffff191690556111f66111e660016125b2565b5467ffffffffffffffff16612b53565b5050565b600080600080600080600061120d613ba1565b611216896125b2565b6040805160e081018252825467ffffffffffffffff808216808452680100000000000000008304821660208501819052600160801b909304909116938301849052600185015460608401819052600286015460808501819052600387015460a0860181905260049097015460c0909501859052919f929e50939c50929a5091985091965090945092505050565b60165481565b60055481565b6001546001600160a01b031681565b60008060015b6002811015611313576112ea6112d9826125b2565b60010154839063ffffffff61276e16565b91506113096112f8826125b2565b60020154839063ffffffff6125dc16565b91506001016112c4565b50905090565b600061132482612c0b565b5092915050565b611333612dfa565b600061133d612e50565b6004546001600160a01b0390811691161490508061136d5760405162461bcd60e51b81526004016106c990614ecd565b60006113776127bf565b116113945760405162461bcd60e51b81526004016106c990614f2d565b61139c6127bf565b42036113a860006125b2565b54600160801b900467ffffffffffffffff1611156113d85760405162461bcd60e51b81526004016106c990614d9d565b60145460ff16156113fb5760405162461bcd60e51b81526004016106c990614efd565b6014805460ff19166001179055600061141261290c565b90506000811161142757506000601555611552565b61142f6128a2565b6001600160a01b03166357ad46636008546040518263ffffffff1660e01b815260040161145c9190614c6b565b60206040518083038186803b15801561147457600080fd5b505afa158015611488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114ac9190810190613d63565b6001600160a01b0316639dc29fac73feefeefeefeefeefeefeefeefeefeefeefeefeef836040518363ffffffff1660e01b81526004016114ed929190614bc6565b600060405180830381600087803b15801561150757600080fd5b505af115801561151b573d6000803e3d6000fd5b5050506015829055506115428161153260006125b2565b600101549063ffffffff6125dc16565b61154c60006125b2565b60010155505b50565b60155481565b6000611565612acd565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561159d57600080fd5b505afa1580156115b1573d6000803e3d6000fd5b505050506115bd612dfa565b6115c5612eca565b600480546040517f21f4ae570000000000000000000000000000000000000000000000000000000081526001600160a01b03938416936321f4ae579361161093889392169101614b52565b60206040518083038186803b15801561162857600080fd5b505afa15801561163c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116609190810190613d27565b61167c5760405162461bcd60e51b81526004016106c990614e3d565b6106a282612ef5565b60145460ff1690565b611696612dfa565b60006116a0612e50565b6004546001600160a01b039081169116149050806116d05760405162461bcd60e51b81526004016106c990614ecd565b60006116da6127bf565b116116f75760405162461bcd60e51b81526004016106c990614f2d565b6116ff6127bf565b420361170b60006125b2565b54600160801b900467ffffffffffffffff16111561173b5760405162461bcd60e51b81526004016106c990614ddd565b601454610100900460ff16156117635760405162461bcd60e51b81526004016106c990614dcd565b6014805461ff0019166101001790558161177c576111f6565b600061181661181161178c612fea565b6001600160a01b03166302760d946040518163ffffffff1660e01b815260040160206040518083038186803b1580156117c457600080fd5b505afa1580156117d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117fc9190810190613d45565b61180586613015565b9063ffffffff61302b16565b613044565b90506118206128a2565b6001600160a01b03166357ad46636008546040518263ffffffff1660e01b815260040161184d9190614c6b565b60206040518083038186803b15801561186557600080fd5b505afa158015611879573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061189d9190810190613d63565b6001600160a01b031663867904b473feefeefeefeefeefeefeefeefeefeefeefeefeef836040518363ffffffff1660e01b81526004016118de929190614bc6565b600060405180830381600087803b1580156118f857600080fd5b505af115801561190c573d6000803e3d6000fd5b5050505061191e81610a9b60006125b2565b61192860006125b2565b60010155505050565b60008060015b60028110156113135761195d61194c826125b2565b60030154839063ffffffff61276e16565b915061197c61196b826125b2565b60040154839063ffffffff6125dc16565b9150600101611937565b6060611990611d5b565b905060005b81518110156111f65760008282815181106119ac57fe5b602002602001015190506000600660009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016119ee9190614b20565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611a1a929190614c95565b60206040518083038186803b158015611a3257600080fd5b505afa158015611a46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a6a9190810190613c82565b6000838152600760205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890611ac69084908490614c79565b60405180910390a15050600101611995565b6001546001600160a01b03163314611b025760405162461bcd60e51b81526004016106c990614d8d565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92611b45926001600160a01b0391821692911690614b52565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000611b7e6128a2565b6001600160a01b0316336001600160a01b03161490506000611b9e612b28565b6001600160a01b0316336001600160a01b03161490508180611bbd5750805b611bd95760405162461bcd60e51b81526004016106c990614d6d565b611be1612604565b6001600160a01b03166394e1a448868686611bfc60006125b2565b5460405160e086901b7fffffffff00000000000000000000000000000000000000000000000000000000168152611c4f9493929168010000000000000000900467ffffffffffffffff1690600401614c09565b600060405180830381600087803b158015611c6957600080fd5b505af1158015611c7d573d6000803e3d6000fd5b50505050611cad858585611c9160006125b2565b5468010000000000000000900467ffffffffffffffff16613066565b5050505050565b611cbc612793565b73__$f9217daff40bcb29719cec84f7ab900933$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015611d0057600080fd5b505af4158015611d14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d389190810190613d45565b8110611d565760405162461bcd60e51b81526004016106c990614f3d565b601655565b606080611d66613135565b60408051600d8082526101c0820190925291925060609190602082016101a0803883390190505090507f53797374656d537461747573000000000000000000000000000000000000000081600081518110611dbd57fe5b6020026020010181815250507f5065726946696e616e636500000000000000000000000000000000000000000081600181518110611df757fe5b6020026020010181815250507f466565506f6f6c5374617465000000000000000000000000000000000000000081600281518110611e3157fe5b6020026020010181815250507f466565506f6f6c457465726e616c53746f72616765000000000000000000000081600381518110611e6b57fe5b6020026020010181815250507f45786368616e676572000000000000000000000000000000000000000000000081600481518110611ea557fe5b6020026020010181815250506524b9b9bab2b960d11b81600581518110611ec857fe5b6020026020010181815250507f5065726946696e616e636553746174650000000000000000000000000000000081600681518110611f0257fe5b6020026020010181815250507f526577617264457363726f77563200000000000000000000000000000000000081600781518110611f3c57fe5b6020026020010181815250507f44656c6567617465417070726f76616c7300000000000000000000000000000081600881518110611f7657fe5b6020026020010181815250507f4574686572436f6c6c61746572616c705553440000000000000000000000000081600981518110611fb057fe5b6020026020010181815250507f52657761726473446973747269627574696f6e0000000000000000000000000081600a81518110611fea57fe5b6020026020010181815250507f436f6c6c61746572616c4d616e6167657200000000000000000000000000000081600b8151811061202457fe5b6020026020010181815250507f43726f7373436861696e4d616e6167657200000000000000000000000000000081600c8151811061205e57fe5b6020026020010181815250506120748282613194565b9250505090565b6000546001600160a01b031681565b612092612793565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e906108f5908390614b44565b6003546001600160a01b031681565b600061090a6121786120fc613249565b73__$f9217daff40bcb29719cec84f7ab900933$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561214057600080fd5b505af4158015612154573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fa19190810190613d45565b6121806132b1565b9063ffffffff61331916565b612194613343565b60055442106121b55760405162461bcd60e51b81526004016106c990614ebd565b6121bd612b28565b6001600160a01b031663cd92eba96040518163ffffffff1660e01b815260040160206040518083038186803b1580156121f557600080fd5b505afa158015612209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061222d9190810190613d45565b86111561224c5760405162461bcd60e51b81526004016106c990614e9d565b6040518060e001604052808867ffffffffffffffff1681526020018767ffffffffffffffff1681526020018667ffffffffffffffff1681526020018581526020018481526020018381526020018281525060096122bc600260ff166110198c60135461276e90919063ffffffff16565b600281106122c657fe5b82516005919091029190910180546020840151604085015167ffffffffffffffff1990921667ffffffffffffffff948516176fffffffffffffffff000000000000000019166801000000000000000091851691909102177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b9390911692909202919091178155606082015160018201556080820151600282015560a0820151600382015560c0909101516004909101555050505050505050565b600061090a6132b1565b6123986133c8565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6123c2613ba1565b601354600990600290840106600281106123d857fe5b6040805160e08101825260059290920292909201805467ffffffffffffffff808216845268010000000000000000820481166020850152600160801b90910416928201929092526001820154606082015260028201546080820152600382015460a082015260049091015460c082015292915050565b600281565b600061245d612acd565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561249557600080fd5b505afa1580156124a9573d6000803e3d6000fd5b505050506124b5612dfa565b60045461090a906001600160a01b0316612ef5565b6004546001600160a01b031681565b600061090a613249565b73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6002546001600160a01b031681565b6000612514613407565b6004549091506001600160a01b038083169116148061253b5750336001600160a01b038216145b6125575760405162461bcd60e51b81526004016106c990614e4d565b6125758261256560006125b2565b600301549063ffffffff61276e16565b61257f60006125b2565b600301555050565b600061090a7f466565506f6f6c457465726e616c53746f72616765000000000000000000000061342e565b60006009600260ff168360135401816125c757fe5b06600281106125d257fe5b6005020192915050565b6000828211156125fe5760405162461bcd60e51b81526004016106c990614dfd565b50900390565b600061090a7f466565506f6f6c5374617465000000000000000000000000000000000000000061342e565b60008061263a612b28565b9050600061276285611805846001600160a01b03166308d95cd5886040518263ffffffff1660e01b81526004016126719190614c6b565b60206040518083038186803b15801561268957600080fd5b505afa15801561269d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126c19190810190613d45565b6040517f08d95cd50000000000000000000000000000000000000000000000000000000081526001600160a01b038716906308d95cd590612706908d90600401614c6b565b60206040518083038186803b15801561271e57600080fd5b505afa158015612732573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127569190810190613d45565b9063ffffffff61348b16565b925050505b9392505050565b6000828201838110156127675760405162461bcd60e51b81526004016106c990614ded565b6000546001600160a01b031633146127bd5760405162461bcd60e51b81526004016106c990614e5d565b565b60006127c96134a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f666565506572696f644475726174696f6e0000000000000000000000000000006040518363ffffffff1660e01b8152600401612827929190614c87565b60206040518083038186803b15801561283f57600080fd5b505afa158015612853573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061090a9190810190613d45565b600061090a7f45786368616e676572000000000000000000000000000000000000000000000061342e565b600061090a6524b9b9bab2b960d11b61342e565b600061090a7f4574686572436f6c6c61746572616c705553440000000000000000000000000061342e565b600061090a7f436f6c6c61746572616c4d616e6167657200000000000000000000000000000061342e565b600080612a0661291a612fea565b6001600160a01b03166302760d946040518163ffffffff1660e01b815260040160206040518083038186803b15801561295257600080fd5b505afa158015612966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061298a9190810190613d45565b73__$f9217daff40bcb29719cec84f7ab900933$__63d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186803b1580156129ce57600080fd5b505af41580156129e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061100d9190810190613d45565b9050612a2561181182611805612a1c60006125b2565b60010154613015565b91505090565b60008083612a3e57506000905080612ac5565b838515612a69576000612a58600161073460018a036125b2565b9050612a6581878761262f565b9150505b6000612a8882612a78896125b2565b600101549063ffffffff61331916565b90506000612aa983612a998a6125b2565b600301549063ffffffff61331916565b9050612ab482613044565b612abd82613044565b945094505050505b935093915050565b600061090a7f53797374656d537461747573000000000000000000000000000000000000000061342e565b600081612b175760405162461bcd60e51b81526004016106c990614e2d565b818381612b2057fe5b069392505050565b600061090a7f5065726946696e616e636553746174650000000000000000000000000000000061342e565b6002546040516001600160a01b039091169063907dff9790612b79908490602001614c6b565b6040516020818303038152906040526001604051612b9690614b2b565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168252612bdd93929160009081908190600401614cb5565b600060405180830381600087803b158015612bf757600080fd5b505af1158015611cad573d6000803e3d6000fd5b6000806000612c186128a2565b6001600160a01b0316639288e7048560008060016040518563ffffffff1660e01b8152600401612c4b9493929190614b88565b60206040518083038186803b158015612c6357600080fd5b505afa158015612c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612c9b9190810190613d45565b9050612cf2612cea60165473__$f9217daff40bcb29719cec84f7ab900933$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561214057600080fd5b6121806134cf565b811115612d06576000809250925050610873565b600080612d116128a2565b6001600160a01b031663ae3bbbbb876040518263ffffffff1660e01b8152600401612d3c9190614b36565b604080518083038186803b158015612d5357600080fd5b505afa158015612d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d8b9190810190613d9f565b915091506000612d996132b1565b905080831015612db25750600194509250610873915050565b6000612dcf612dc26120fc613249565b839063ffffffff61331916565b905080841115612dea57600083965096505050505050610873565b5060019550909350505050915091565b6002546001600160a01b03163314801590612e2057506003546001600160a01b03163314155b8015612e3757506004546001600160a01b03163314155b156127bd57600480546001600160a01b03191633179055565b6000612e5a612fea565b6001600160a01b03166360b3a0336040518163ffffffff1660e01b815260040160206040518083038186803b158015612e9257600080fd5b505afa158015612ea6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061090a9190810190613c82565b600061090a7f44656c6567617465417070726f76616c7300000000000000000000000000000061342e565b6000808080808080612f0688612c0b565b9150915081612f275760405162461bcd60e51b81526004016106c990614e6d565b8015612f455760405162461bcd60e51b81526004016106c990614e7d565b612f4e886107f6565b909450925083151580612f615750600083115b612f7d5760405162461bcd60e51b81526004016106c990614e1d565b612f9b88612f8b60016125b2565b5467ffffffffffffffff16613537565b8315612fb657612faa846135ea565b9450612fb688866136b6565b8215612fd157612fc583613852565b9550612fd1888761392c565b612fdc8886886139a6565b506001979650505050505050565b600061090a7f43726f7373436861696e4d616e6167657200000000000000000000000000000061342e565b60006106a282633b9aca0063ffffffff613a6b16565b600061276783836b033b2e3c9fd0803ce8000000613aa5565b60006305f5e10082046005600a82061061305c57600a015b600a900492915050565b6002546040516001600160a01b039091169063907dff979061309090869086908690602001614f5b565b60405160208183030381529060405260026040516130ad90614af5565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e086901b1682526130fd9392916001600160a01b038b16906000908190600401614d14565b600060405180830381600087803b15801561311757600080fd5b505af115801561312b573d6000803e3d6000fd5b5050505050505050565b604080516001808252818301909252606091602080830190803883390190505090507f466c657869626c6553746f7261676500000000000000000000000000000000008160008151811061318557fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156131c4578160200160208202803883390190505b50905060005b8351811015613206578381815181106131df57fe5b60200260200101518282815181106131f357fe5b60209081029190910101526001016131ca565b5060005b82518110156113245782818151811061321f57fe5b602002602001015182828651018151811061323657fe5b602090810291909101015260010161320a565b60006132536134a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7461726765745468726573686f6c6400000000000000000000000000000000006040518363ffffffff1660e01b8152600401612827929190614c87565b60006132bb6134a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f69737375616e6365526174696f000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401612827929190614c87565b6000670de0b6b3a7640000613334848463ffffffff613a6b16565b8161333b57fe5b049392505050565b6002546001600160a01b0316331480159061336957506003546001600160a01b03163314155b801561338057506004546001600160a01b03163314155b1561339857600480546001600160a01b031916331790555b6000546004546001600160a01b039081169116146127bd5760405162461bcd60e51b81526004016106c990614dbd565b6002546001600160a01b03163314806133eb57506003546001600160a01b031633145b6127bd5760405162461bcd60e51b81526004016106c990614f0d565b600061090a7f52657761726473446973747269627574696f6e000000000000000000000000005b60008181526007602090815260408083205490516001600160a01b03909116918215159161345e91869101614b00565b604051602081830303815290604052906113245760405162461bcd60e51b81526004016106c99190614d5c565b600061276783836b033b2e3c9fd0803ce8000000613ae2565b600061090a7f466c657869626c6553746f72616765000000000000000000000000000000000061342e565b60006134d96134a4565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f65787465726e616c546f6b656e51756f746100000000000000000000000000006040518363ffffffff1660e01b8152600401612827929190614c87565b61353f612587565b6001600160a01b0316633562fd207f6c6173745f6665655f7769746864726177616c0000000000000000000000000084604051602001613580929190614ac4565b60405160208183030381529060405280519060200120836040518363ffffffff1660e01b81526004016135b4929190614c87565b600060405180830381600087803b1580156135ce57600080fd5b505af11580156135e2573d6000803e3d6000fd5b505050505050565b6000818160015b60028110156136ae576000613605826125b2565b600201549050600061361a82611532856125b2565b905080156136a35760008582106136315785613633565b815b9050613645838263ffffffff61276e16565b61364e856125b2565b60020155613662868263ffffffff6125dc16565b9550613674858263ffffffff61276e16565b945085613689578496505050505050506106a5565b831580156136975750600086115b156136a157600095505b505b5050600019016135f1565b509392505050565b816001600160a01b03811673feefeefeefeefeefeefeefeefeefeefeefeefeef14156136f45760405162461bcd60e51b81526004016106c990614edd565b60006136fe6128a2565b6001600160a01b03166357ad46636008546040518263ffffffff1660e01b815260040161372b9190614c6b565b60206040518083038186803b15801561374357600080fd5b505afa158015613757573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061377b9190810190613d63565b6040517f9dc29fac0000000000000000000000000000000000000000000000000000000081529091506001600160a01b03821690639dc29fac906137d99073feefeefeefeefeefeefeefeefeefeefeefeefeef908790600401614bc6565b600060405180830381600087803b1580156137f357600080fd5b505af1158015613807573d6000803e3d6000fd5b50506040517f867904b40000000000000000000000000000000000000000000000000000000081526001600160a01b038416925063867904b491506130fd9087908790600401614bc6565b6000818160015b60028110156136ae57600061388d613870836125b2565b6004015461387d846125b2565b600301549063ffffffff6125dc16565b905080156139225760008482106138a457846138a6565b815b90506138c5816138b5856125b2565b600401549063ffffffff61276e16565b6138ce846125b2565b600401556138e2858263ffffffff6125dc16565b94506138f4848263ffffffff61276e16565b9350846139085783955050505050506106a5565b821580156139165750600085115b1561392057600094505b505b5060001901613859565b816001600160a01b03811673feefeefeefeefeefeefeefeefeefeefeefeefeef141561396a5760405162461bcd60e51b81526004016106c990614edd565b6301dfe200613977613b14565b6001600160a01b0316631bb47b448585846040518463ffffffff1660e01b81526004016130fd93929190614be1565b6002546040516001600160a01b039091169063907dff97906139d090869086908690602001614be1565b60405160208183030381529060405260016040516139ed90614aea565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e086901b168252613a3493929160009081908190600401614cb5565b600060405180830381600087803b158015613a4e57600080fd5b505af1158015613a62573d6000803e3d6000fd5b50505050505050565b600082613a7a575060006107f0565b82820282848281613a8757fe5b04146127675760405162461bcd60e51b81526004016106c990614e8d565b600080600a8304613abc868663ffffffff613a6b16565b81613ac357fe5b0490506005600a825b0610613ad657600a015b600a9004949350505050565b600080613b0884613afc87600a870263ffffffff613a6b16565b9063ffffffff613b3f16565b90506005600a82613acc565b600061090a7f526577617264457363726f77563200000000000000000000000000000000000061342e565b6000808211613b605760405162461bcd60e51b81526004016106c990614e0d565b6000828481613b6b57fe5b04949350505050565b60405180604001604052806002905b613b8b613bfc565b815260200190600190039081613b835790505090565b6040518060e00160405280600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff168152602001600081526020016000815260200160008152602001600081525090565b60405180604001604052806002906020820280388339509192915050565b80356107f0816150ae565b80516107f0816150ae565b80516107f0816150c2565b80516107f0816150cb565b80516107f0816150d4565b80356107f0816150cb565b600060208284031215613c6e57600080fd5b6000613c7a8484613c1a565b949350505050565b600060208284031215613c9457600080fd5b6000613c7a8484613c25565b60008060408385031215613cb357600080fd5b6000613cbf8585613c1a565b9250506020613cd085828601613c51565b9150509250929050565b600080600060608486031215613cef57600080fd5b6000613cfb8686613c1a565b9350506020613d0c86828701613c51565b9250506040613d1d86828701613c51565b9150509250925092565b600060208284031215613d3957600080fd5b6000613c7a8484613c30565b600060208284031215613d5757600080fd5b6000613c7a8484613c3b565b600060208284031215613d7557600080fd5b6000613c7a8484613c46565b600060208284031215613d9357600080fd5b6000613c7a8484613c51565b60008060408385031215613db257600080fd5b6000613dbe8585613c3b565b9250506020613cd085828601613c30565b60008060408385031215613de257600080fd5b6000613dee8585613c3b565b9250506020613cd085828601613c3b565b600080600080600080600080610100898b031215613e1c57600080fd5b6000613e288b8b613c51565b9850506020613e398b828c01613c51565b9750506040613e4a8b828c01613c51565b9650506060613e5b8b828c01613c51565b9550506080613e6c8b828c01613c51565b94505060a0613e7d8b828c01613c51565b93505060c0613e8e8b828c01613c51565b92505060e0613e9f8b828c01613c51565b9150509295985092959890939650565b6000613ebb8383613fa5565b505060400190565b6000613ecf8383613ffa565b505060200190565b613ee081615032565b82525050565b613ee081614ff8565b613ee0613efb82614ff8565b61508d565b613f0981614fe5565b613f1381846106a5565b9250613f1e8261090d565b8060005b838110156135e2578151613f368782613eaf565b9650613f4183614fdf565b925050600101613f22565b6000613f5782614feb565b613f618185614fef565b9350613f6c83614fdf565b8060005b83811015613f9a578151613f848882613ec3565b9750613f8f83614fdf565b925050600101613f70565b509495945050505050565b613fae81614fe5565b613fb881846106a5565b9250613fc38261090d565b8060005b838110156135e2578151613fdb8782613ec3565b9650613fe683614fdf565b925050600101613fc7565b613ee081615003565b613ee08161090d565b613ee061400f8261090d565b61090d565b600061401f82614feb565b6140298185614fef565b9350614039818560208601615061565b6140428161509e565b9093019392505050565b613ee081615008565b613ee08161503d565b613ee08161504b565b6000614074602083614fef565b7f49737375657220616e64205065726946696e616e63655374617465206f6e6c79815260200192915050565b60006140ad601783614fef565b7f4f6e6c7920496e7465726e616c20436f6e747261637473000000000000000000815260200192915050565b60006140e6603583614fef565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527f2063616e20616363657074206f776e6572736869700000000000000000000000602082015260400192915050565b6000614145602983614fef565b7f646973747269627574696e672066656520726577617264206e6f74207965742081527f617661696c61626c650000000000000000000000000000000000000000000000602082015260400192915050565b60006141a4601d83614fef565b7f546f6f206561726c7920746f20636c6f73652066656520706572696f64000000815260200192915050565b60006141dd601383614fef565b7f4f776e6572206f6e6c792066756e6374696f6e00000000000000000000000000815260200192915050565b60006142166024836106a5565b7f46656573436c61696d656428616464726573732c75696e743235362c75696e7481527f3235362900000000000000000000000000000000000000000000000000000000602082015260240192915050565b6000614275603883614fef565b7f416c6c6f636174696e6720666565207265776172647320697320706f7373696281527f6c65206f6e6c79206f6e636520696e206120706572696f640000000000000000602082015260400192915050565b60006142d4602783614fef565b7f616c6c6f636174696e672066656520726577617264206e6f742079657420617681527f61696c61626c6500000000000000000000000000000000000000000000000000602082015260400192915050565b60006143336037836106a5565b7f49737375616e636544656274526174696f456e74727928616464726573732c7581527f696e743235362c75696e743235362c75696e7432353629000000000000000000602082015260370192915050565b6000614392601b83614fef565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006143cb601e83614fef565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000614404601a83614fef565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061443d604083614fef565b7f4e6f2066656573206f72207265776172647320617661696c61626c6520666f7281527f20706572696f642c206f72206665657320616c726561647920636c61696d6564602082015260400192915050565b600061449c6011836106a5565b7f4d697373696e6720616464726573733a20000000000000000000000000000000815260110192915050565b60006144d5601883614fef565b7f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815260200192915050565b600061450e601f83614fef565b7f4e6f7420617070726f76656420746f20636c61696d206f6e20626568616c6600815260200192915050565b6000614547601e83614fef565b7f43616c6c6572206973206e6f742072657761726473417574686f726974790000815260200192915050565b6000614580602f83614fef565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681527f6f726d207468697320616374696f6e0000000000000000000000000000000000602082015260400192915050565b60006145df601f83614fef565b7f432d526174696f2062656c6f772070656e616c7479207468726573686f6c6400815260200192915050565b6000614618601f83614fef565b7f412070796e7468206f722050455249207261746520697320696e76616c696400815260200192915050565b6000614651602183614fef565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b60006146b0601683614fef565b7f43616e6e6f7420696d706f727420626164206461746100000000000000000000815260200192915050565b60006146e9601d83614fef565b7f4578636565647320746865204645455f504552494f445f4c454e475448000000815260200192915050565b6000614722602983614fef565b7f43616e206f6e6c7920706572666f726d207468697320616374696f6e2064757281527f696e672073657475700000000000000000000000000000000000000000000000602082015260400192915050565b60006147816019836106a5565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006147ba601183614fef565b7f64656274206d616e61676572206f6e6c79000000000000000000000000000000815260200192915050565b60006147f3601783614fef565b7f4665652061646472657373206e6f7420616c6c6f776564000000000000000000815260200192915050565b600061482c604483614fef565b7f66656520726577617264732073686f756c64206265206469737472696275746581527f64206f7220616c6c6f6361746564206265666f726520636c6f73696e6720706560208201527f72696f6400000000000000000000000000000000000000000000000000000000604082015260600192915050565b60006148b1603a83614fef565b7f446973747269627574696e6720666565207265776172647320697320706f737381527f69626c65206f6e6c79206f6e636520696e206120706572696f64000000000000602082015260400192915050565b60006149106018836106a5565b7f466565506572696f64436c6f7365642875696e74323536290000000000000000815260180192915050565b6000614949601783614fef565b7f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000815260200192915050565b6000614982602083614fef565b7f43757272656e7420706572696f64206973206e6f7420636c6f73656420796574815260200192915050565b60006149bb601b83614fef565b7f46656520506572696f64204475726174696f6e206e6f74207365740000000000815260200192915050565b60006149f4602083614fef565b7f546f6c6572616e63652076616c75652063616e6e6f7420657863656564732031815260200192915050565b805160e0830190614a318482614ab2565b506020820151614a446020850182614ab2565b506040820151614a576040850182614ab2565b506060820151614a6a6060850182613ffa565b506080820151614a7d6080850182613ffa565b5060a0820151614a9060a0850182613ffa565b5060c0820151614aa360c0850182613ffa565b50505050565b613ee081615056565b613ee08161501f565b613ee08161502c565b6000614ad08285614003565b602082019150614ae08284613eef565b5060140192915050565b60006107f082614209565b60006107f082614326565b6000614b0b8261448f565b9150614b178284614003565b50602001919050565b6000614b0b82614774565b60006107f082614903565b602081016107f08284613ee6565b602081016107f08284613ed7565b60408101614b608285613ee6565b6127676020830184613ee6565b60408101614b7b8285613ee6565b612767602083018461405e565b60808101614b968287613ee6565b614ba3602083018661405e565b614bb0604083018561405e565b614bbd6060830184613ff1565b95945050505050565b60408101614bd48285613ee6565b6127676020830184613ffa565b60608101614bef8286613ee6565b614bfc6020830185613ffa565b613c7a6040830184613ffa565b60808101614c178287613ee6565b614c246020830186613ffa565b614c316040830185613ffa565b614bbd6060830184614aa9565b608081016107f08284613f00565b602080825281016127678184613f4c565b602081016107f08284613ff1565b602081016107f08284613ffa565b60408101614b608285613ffa565b60408101614bd48285613ffa565b60408101614ca38285613ffa565b8181036020830152613c7a8184614014565b60c08082528101614cc68189614014565b9050614cd5602083018861405e565b614ce26040830187613ffa565b614cef6060830186614055565b614cfc6080830185614055565b614d0960a0830184614055565b979650505050505050565b60c08082528101614d258189614014565b9050614d34602083018861405e565b614d416040830187613ffa565b614cef6060830186613ffa565b602081016107f0828461404c565b602080825281016127678184614014565b602080825281016106a281614067565b602080825281016106a2816140a0565b602080825281016106a2816140d9565b602080825281016106a281614138565b602080825281016106a281614197565b602080825281016106a2816141d0565b602080825281016106a281614268565b602080825281016106a2816142c7565b602080825281016106a281614385565b602080825281016106a2816143be565b602080825281016106a2816143f7565b602080825281016106a281614430565b602080825281016106a2816144c8565b602080825281016106a281614501565b602080825281016106a28161453a565b602080825281016106a281614573565b602080825281016106a2816145d2565b602080825281016106a28161460b565b602080825281016106a281614644565b602080825281016106a2816146a3565b602080825281016106a2816146dc565b602080825281016106a281614715565b602080825281016106a2816147ad565b602080825281016106a2816147e6565b602080825281016106a28161481f565b602080825281016106a2816148a4565b602080825281016106a28161493c565b602080825281016106a281614975565b602080825281016106a2816149ae565b602080825281016106a2816149e7565b60e081016107f08284614a20565b60608101614bef8286613ffa565b60e08101614f77828a614ab2565b614f846020830189614ab2565b614f916040830188614ab2565b614f9e6060830187613ffa565b614fab6080830186613ffa565b614fb860a0830185613ffa565b614fc560c0830184613ffa565b98975050505050505050565b602081016107f08284614abb565b60200190565b50600290565b5190565b90815260200190565b60006106a282615013565b151590565b60006106a282614ff8565b6001600160a01b031690565b67ffffffffffffffff1690565b60ff1690565b60006106a282615008565b60006106a261400f8361090d565b60006106a28261090d565b60006106a28261501f565b60005b8381101561507c578181015183820152602001615064565b83811115614aa35750506000910152565b60006106a28260006106a2826150a8565b601f01601f191690565b60601b90565b6150b781614ff8565b811461155257600080fd5b6150b781615003565b6150b78161090d565b6150b78161500856fea365627a7a723158201dcd38594bd70678cdcfe6c7cbdf0384ae0802fc15aee76434f700e5bf45fc136c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "feePeriodId",
							"type": "uint256"
						}
					],
					"name": "FeePeriodClosed",
					"type": "event",
					"signature": "0xe2ca356e01eb0a4bb7caaf07d472b7d687db156713ffc3111c758e9fe0a17ea7"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "pUSDAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periRewards",
							"type": "uint256"
						}
					],
					"name": "FeesClaimed",
					"type": "event",
					"signature": "0x1ac537f0ad67b64ac68a04587ff3a4cb6977de22eb2c37ee560897a92c6d07c7"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "debtRatio",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "feePeriodStartingDebtIndex",
							"type": "uint256"
						}
					],
					"name": "IssuanceDebtRatioEntry",
					"type": "event",
					"signature": "0x28dcdf40e6b6196065d54760038ab1a8c0c1d9cfa58a99e6b0cb6022f7e24775"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event",
					"signature": "0xfc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_ADDRESS",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeb1edd61"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_PERIOD_LENGTH",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcff2ddad"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "allocateFeeRewards",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6841e9b4"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "allocatedOtherNetworkFeeRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x26965267"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "debtRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"name": "appendAccountIssuanceRecord",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x86645274"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "claimFees",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd294f093"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "claimingForAddress",
							"type": "address"
						}
					],
					"name": "claimOnBehalf",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6466f45e"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "closeCurrentFeePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3ebc457a"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "distributeFeeRewards",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5fe47778"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "period",
							"type": "uint256"
						}
					],
					"name": "effectiveDebtRatioForPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0813071c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "everAllocatedFeeRewards",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3c41d173"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "everDistributedFeeRewards",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6683051b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePeriodDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x22425fa4"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feeRewardsToBeAllocated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x62115496"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "feesAvailable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0de58615"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "feesByPeriod",
					"outputs": [
						{
							"internalType": "uint256[2][2]",
							"name": "results",
							"type": "uint256[2][2]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x33140016"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_claimingAddress",
							"type": "address"
						}
					],
					"name": "getLastFeeWithdrawal",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x07ea50cd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getPenaltyThresholdRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xac834193"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "feePeriodIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feePeriodId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "startingDebtIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "startTime",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feesToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feesClaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsClaimed",
							"type": "uint256"
						}
					],
					"name": "importFeePeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb10090b8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "integrationProxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9cbdaeb6"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "isFeesClaimable",
					"outputs": [
						{
							"internalType": "bool",
							"name": "feesClaimable",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x59a2f19f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb410a034"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd67bdd25"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xec556889"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "quotaTolerance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x446530d1"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "recentFeePeriods",
					"outputs": [
						{
							"internalType": "uint64",
							"name": "feePeriodId",
							"type": "uint64"
						},
						{
							"internalType": "uint64",
							"name": "startingDebtIndex",
							"type": "uint64"
						},
						{
							"internalType": "uint64",
							"name": "startTime",
							"type": "uint64"
						},
						{
							"internalType": "uint256",
							"name": "feesToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feesClaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsToDistribute",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rewardsClaimed",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3fcd2240"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "recentFeePeriodsStorage",
					"outputs": [
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "feePeriodId",
									"type": "uint64"
								},
								{
									"internalType": "uint64",
									"name": "startingDebtIndex",
									"type": "uint64"
								},
								{
									"internalType": "uint64",
									"name": "startTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "feesToDistribute",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "feesClaimed",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "rewardsToDistribute",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "rewardsClaimed",
									"type": "uint256"
								}
							],
							"internalType": "struct FeePool.FeePeriod",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc2dc46b0"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "recordFeePaid",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x22bf55ef"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_integrationProxy",
							"type": "address"
						}
					],
					"name": "setIntegrationProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x131b0ae7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbc67f832"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x97107d6d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_val",
							"type": "uint256"
						}
					],
					"name": "setQuotaTolerance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8844578a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setRewardsToDistribute",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xfd1f498d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46ba2d90"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "targetThreshold",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe0e6393d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalFeesAvailable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x569249d0"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalRewardsAvailable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6de813f1"
				}
			],
			"source": {
				"keccak256": "0xba3d82a23c0715db76b98e350b109f9e78a320f153585395f22b930d79d8821d",
				"urls": [
					"bzz-raw://c8749daf0db99ed1b1a85b1f67b9a4f89155bcfdd739f1fb3aa74f7947c6549a",
					"dweb:/ipfs/Qmey13m7ftHcAfZra2FzUEF9bVKNkWPcD91qgRRBTbyit5"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FeePool.sol": "FeePool"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 1500
					},
					"remappings": []
				},
				"sources": {
					"FeePool.sol": {
						"keccak256": "0xba3d82a23c0715db76b98e350b109f9e78a320f153585395f22b930d79d8821d",
						"urls": [
							"bzz-raw://c8749daf0db99ed1b1a85b1f67b9a4f89155bcfdd739f1fb3aa74f7947c6549a",
							"dweb:/ipfs/Qmey13m7ftHcAfZra2FzUEF9bVKNkWPcD91qgRRBTbyit5"
						]
					}
				},
				"version": 1
			}
		},
		"FeePoolState": {
			"bytecode": "608060405234801561001057600080fd5b50604051610c75380380610c758339818101604052604081101561003357600080fd5b50805160209091015162375f00826001600160a01b03811661009c576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1504201600255600380546001600160a01b0319166001600160a01b039290921691909117905550610b4b8061012a6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80637de655451161008c578063ae2e933b11610066578063ae2e933b146102b5578063b326f84e146102bd578063cff2ddad146102e9578063d29c000a14610307576100cf565b80637de65545146102305780638da5cb5b1461027557806394e1a4481461027d576100cf565b80631627540c146100d457806319db2228146100fc57806339a3f63f1461012257806346ba2d90146101ea57806353a47bb71461020457806379ba509714610228575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b0316610333565b005b6100fa6004803603602081101561011257600080fd5b50356001600160a01b031661038f565b6100fa6004803603608081101561013857600080fd5b81019060208101813564010000000081111561015357600080fd5b82018360208201111561016557600080fd5b8035906020019184602083028401116401000000008311171561018757600080fd5b9193909290916020810190356401000000008111156101a557600080fd5b8201836020820111156101b757600080fd5b803590602001918460208302840111640100000000831117156101d957600080fd5b9193509150803590602001356103b9565b6101f2610593565b60408051918252519081900360200190f35b61020c610599565b604080516001600160a01b039092168252519081900360200190f35b6100fa6105a8565b61025c6004803603604081101561024657600080fd5b506001600160a01b038135169060200135610664565b6040805192835260208301919091528051918290030190f35b61020c610691565b6100fa6004803603608081101561029357600080fd5b506001600160a01b0381351690602081013590604081013590606001356106a0565b61020c610739565b61025c600480360360408110156102d357600080fd5b506001600160a01b038135169060200135610748565b6102f16107e9565b6040805160ff9092168252519081900360200190f35b61025c6004803603604081101561031d57600080fd5b506001600160a01b0381351690602001356107ee565b61033b6108d1565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6103976108d1565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6103c16108d1565b60025442106104015760405162461bcd60e51b8152600401808060200182810382526029815260200180610aee6029913960400191505060405180910390fd5b848314610447576040805162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015290519081900360640190fd5b60005b8581101561058a5784848281811061045e57fe5b905060200201356004600089898581811061047557fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002084600681106104b057fe5b600202015581600460008989858181106104c657fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020846006811061050157fe5b600202016001018190555086868281811061051857fe5b905060200201356001600160a01b03166001600160a01b03167f3846bc3c5dca9c6ef89995aa7b28d43a5a99aa2e3ea230494da474b8d4b29aea86868481811061055e57fe5b9050602002013584604051808381526020018281526020019250505060405180910390a260010161044a565b50505050505050565b60025481565b6001546001600160a01b031681565b6001546001600160a01b031633146105f15760405162461bcd60e51b8152600401808060200182810382526035815260200180610a366035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6004602052816000526040600020816006811061067d57fe5b600202018054600190910154909250905082565b6000546001600160a01b031681565b6003546001600160a01b031633146106e95760405162461bcd60e51b8152600401808060200182810382526031815260200180610a8e6031913960400191505060405180910390fd5b6001600160a01b038416600090815260046020526040902060010154811115610715576107158461091c565b506001600160a01b0392909216600090815260046020526040902090815560010155565b6003546001600160a01b031681565b6000806006831061078a5760405162461bcd60e51b8152600401808060200182810382526023815260200180610a6b6023913960400191505060405180910390fd5b6001600160a01b038416600090815260046020526040902083600681106107ad57fe5b60020201546001600160a01b038516600090815260046020526040902090925083600681106107d857fe5b600202016001015490509250929050565b600681565b6000806107f96109ee565b6001600160a01b038516600090815260046020526040808220815160c081019092529091600690835b8282101561085e578382600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190610822565b509293506000925050505b60068110156108c75781816006811061087e57fe5b60200201516020015185106108bf5781816006811061089957fe5b6020020151518282600681106108ab57fe5b6020020151602001519350935050506108ca565b600101610869565b50505b9250929050565b6000546001600160a01b0316331461091a5760405162461bcd60e51b815260040180806020018281038252602f815260200180610abf602f913960400191505060405180910390fd5b565b60045b60068110156109ea576001600160a01b03821660009081526004602052604090206001820190826006811061095057fe5b60020201546001600160a01b0384166000908152600460205260409020826006811061097857fe5b60020201556001600160a01b038316600090815260046020526040902082600681106109a057fe5b600202016001015460046000856001600160a01b03166001600160a01b0316815260200190815260200160002082600681106109d857fe5b6002020160010155506000190161091f565b5050565b6040518060c001604052806006905b610a05610a1b565b8152602001906001900390816109fd5790505090565b60405180604001604052806000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970696e646578206578636565647320746865204645455f504552494f445f4c454e4754484f6e6c792074686520466565506f6f6c20636f6e74726163742063616e20706572666f726d207468697320616374696f6e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e43616e206f6e6c7920706572666f726d207468697320616374696f6e20647572696e67207365747570a265627a7a72315820c312bcb0abe2c9770c58bf8084202ca6c8b66fe731ab11c6a90444fc8624454064736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "debtRatio",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "feePeriodCloseIndex",
							"type": "uint256"
						}
					],
					"name": "IssuanceDebtRatioEntry",
					"type": "event",
					"signature": "0x3846bc3c5dca9c6ef89995aa7b28d43a5a99aa2e3ea230494da474b8d4b29aea"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_PERIOD_LENGTH",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcff2ddad"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountIssuanceLedger",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtPercentage",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7de65545"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "debtRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "currentPeriodStartDebtIndex",
							"type": "uint256"
						}
					],
					"name": "appendAccountIssuanceRecord",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x94e1a448"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "closingDebtIndex",
							"type": "uint256"
						}
					],
					"name": "applicableIssuanceData",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd29c000a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePool",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xae2e933b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getAccountsDebtEntry",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtPercentage",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "debtEntryIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb326f84e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "ratios",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256",
							"name": "periodToInsert",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "feePeriodCloseIndex",
							"type": "uint256"
						}
					],
					"name": "importIssuerData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x39a3f63f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IFeePool",
							"name": "_feePool",
							"type": "address"
						}
					],
					"name": "setFeePool",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x19db2228"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46ba2d90"
				}
			],
			"source": {
				"keccak256": "0x2d84670ef1c08043822f8f12996184b9fd163680712fbfc5424dea1acee5ed31",
				"urls": [
					"bzz-raw://1a9bfe40a64c79211212cd5d8fced2298ce5bbc3b2a5c648fa5e9a723f53cb37",
					"dweb:/ipfs/QmNR9r2P5K8deD2wBXXA395JUbb7kAX9TmZr6B6xyyqBMJ"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"FeePoolState.sol": "FeePoolState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"FeePoolState.sol": {
						"keccak256": "0x2d84670ef1c08043822f8f12996184b9fd163680712fbfc5424dea1acee5ed31",
						"urls": [
							"bzz-raw://1a9bfe40a64c79211212cd5d8fced2298ce5bbc3b2a5c648fa5e9a723f53cb37",
							"dweb:/ipfs/QmNR9r2P5K8deD2wBXXA395JUbb7kAX9TmZr6B6xyyqBMJ"
						]
					}
				},
				"version": 1
			}
		},
		"RewardsDistribution": {
			"bytecode": "608060405234801561001057600080fd5b5060405161129b38038061129b833981810160405260a081101561003357600080fd5b50805160208201516040830151606084015160809094015192939192909190846001600160a01b0381166100ae576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039586166001600160a01b031991821617909155600380549486169482169490941790935560048054928516928416929092179091556005805491909316911617905550611136806101656000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063817a6951116100a2578063c1b7ca1111610071578063c1b7ca11146102a7578063c9e9cc4d146102cd578063d12a701d146102d5578063d8297e44146102dd578063e54c16711461030357610116565b8063817a6951146102725780638da5cb5b1461028f578063a430be6c14610297578063bf7e214f1461029f57610116565b806359974e38116100e957806359974e38146101c15780635de39934146101f257806360eb3ff21461021857806379ba5097146102445780637a9e5e4b1461024c57610116565b8063060ca2501461011b5780631627540c146101355780634487d3df1461015d57806353a47bb71461019d575b600080fd5b610123610335565b60408051918252519081900360200190f35b61015b6004803603602081101561014b57600080fd5b50356001600160a01b031661033c565b005b61017a6004803603602081101561017357600080fd5b5035610398565b604080516001600160a01b03909316835260208301919091528051918290030190f35b6101a56103cd565b604080516001600160a01b039092168252519081900360200190f35b6101de600480360360208110156101d757600080fd5b50356103dc565b604080519115158252519081900360200190f35b61015b6004803603602081101561020857600080fd5b50356001600160a01b0316610a2f565b6101de6004803603604081101561022e57600080fd5b506001600160a01b038135169060200135610a59565b61015b610bfc565b61015b6004803603602081101561026257600080fd5b50356001600160a01b0316610cb8565b61015b6004803603602081101561028857600080fd5b5035610ce2565b6101a5610dcd565b6101a5610ddc565b6101a5610deb565b61015b600480360360208110156102bd57600080fd5b50356001600160a01b0316610dfa565b6101a5610e24565b6101a5610e33565b61015b600480360360208110156102f357600080fd5b50356001600160a01b0316610e42565b6101de6004803603606081101561031957600080fd5b508035906001600160a01b036020820135169060400135610e6c565b6006545b90565b610344610f38565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600681815481106103a557fe5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6001546001600160a01b031681565b600080821161042a576040805162461bcd60e51b81526020600482015260156024820152744e6f7468696e6720746f206469737472696275746560581b604482015290519081900360640190fd5b6002546001600160a01b03163314610489576040805162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420617574686f72697365640000000000000000604482015290519081900360640190fd5b6004546001600160a01b03166104e6576040805162461bcd60e51b815260206004820152601760248201527f526577617264457363726f77206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b6003546001600160a01b0316610543576040805162461bcd60e51b815260206004820152601b60248201527f5065726946696e616e636550726f7879206973206e6f74207365740000000000604482015290519081900360640190fd5b6005546001600160a01b03166105a0576040805162461bcd60e51b815260206004820152601760248201527f466565506f6f6c50726f7879206973206e6f7420736574000000000000000000604482015290519081900360640190fd5b600354604080516370a0823160e01b8152306004820152905184926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156105ea57600080fd5b505afa1580156105fe573d6000803e3d6000fd5b505050506040513d602081101561061457600080fd5b505110156106535760405162461bcd60e51b815260040180806020018281038252604681526020018061108d6046913960600191505060405180910390fd5b8160005b6006548110156109065760006001600160a01b03166006828154811061067957fe5b60009182526020909120600290910201546001600160a01b03161415806106bf5750600681815481106106a857fe5b906000526020600020906002020160010154600014155b156108fe576106f5600682815481106106d457fe5b90600052602060002090600202016001015483610f8390919063ffffffff16565b600354600680549294506001600160a01b039091169163a9059cbb91908490811061071c57fe5b6000918252602090912060029091020154600680546001600160a01b03909216918590811061074757fe5b9060005260206000209060020201600101546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107a857600080fd5b505af11580156107bc573d6000803e3d6000fd5b505050506040513d60208110156107d257600080fd5b50506006805460609190839081106107e657fe5b60009182526020808320600160029093020191909101546040805160248082019390935281518082039093018352604401905290810180516001600160e01b0316633c6b16ab60e01b17905260068054919350908490811061084457fe5b60009182526020918290206002909102015460405184516001600160a01b0390921692859282918401908083835b602083106108915780518252601f199092019160209182019101610872565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146108f3576040519150601f19603f3d011682016040523d82523d6000602084013e6108f8565b606091505b50505050505b600101610657565b50600354600480546040805163a9059cbb60e01b81526001600160a01b0392831693810193909352602483018590525192169163a9059cbb916044808201926020929091908290030181600087803b15801561096157600080fd5b505af1158015610975573d6000803e3d6000fd5b505050506040513d602081101561098b57600080fd5b50506005546040805163fd1f498d60e01b81526004810184905290516001600160a01b039092169163fd1f498d9160248082019260009290919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b50506040805186815290517f6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be4429350908190036020019150a150600192915050565b610a37610f38565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000610a63610f38565b6001600160a01b038316610abe576040805162461bcd60e51b815260206004820152601760248201527f43616e74206164642061207a65726f2061646472657373000000000000000000604482015290519081900360640190fd5b81610b09576040805162461bcd60e51b815260206004820152601660248201527510d85b9d081859190818481e995c9bc8185b5bdd5b9d60521b604482015290519081900360640190fd5b610b11610fe0565b506040805180820182526001600160a01b03858116808352602080840187815260068054600181018255600082905286517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f600290920291820180546001600160a01b031916919097161790955590517ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40909401939093559154845160001991909101815291820152808301859052915190917f08fff3cb767a84a8039ea0f84053799c5cdca0e8efb031eeb6b05b9c174aa208916060918190039190910190a15060019392505050565b6001546001600160a01b03163314610c455760405162461bcd60e51b81526004018080602001828103825260358152602001806110586035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b610cc0610f38565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b610cea610f38565b60065460001901811115610d3b576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b805b60065460001901811015610db55760068160010181548110610d5b57fe5b906000526020600020906002020160068281548110610d7657fe5b60009182526020909120825460029092020180546001600160a01b0319166001600160a01b039092169190911781556001918201549082015501610d3d565b506006805490610dc9906000198301610ff7565b5050565b6000546001600160a01b031681565b6004546001600160a01b031681565b6002546001600160a01b031681565b610e02610f38565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031681565b6003546001600160a01b031681565b610e4a610f38565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e76610f38565b60065460001901841115610ec7576040805162461bcd60e51b8152602060048201526013602482015272696e646578206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b8260068581548110610ed557fe5b906000526020600020906002020160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508160068581548110610f1857fe5b906000526020600020906002020160010181905550600190509392505050565b6000546001600160a01b03163314610f815760405162461bcd60e51b815260040180806020018281038252602f8152602001806110d3602f913960400191505060405180910390fd5b565b600082821115610fda576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b604080518082019091526000808252602082015290565b815481835581811115611023576002028160020283600052602060002091820191016110239190611028565b505050565b61033991905b808211156110535780546001600160a01b03191681556000600182015560020161102e565b509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697052657761726473446973747269627574696f6e20636f6e747261637420646f6573206e6f74206861766520656e6f75676820746f6b656e7320746f20646973747269627574654f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158209da9ce6c51eaf040a2abd781b76d2cd1a3abfd775f5314a7e6bb516d5f75a44564736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_authority",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_periFinanceProxy",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_rewardEscrow",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_feePoolProxy",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardDistributionAdded",
					"type": "event",
					"signature": "0x08fff3cb767a84a8039ea0f84053799c5cdca0e8efb031eeb6b05b9c174aa208"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardsDistributed",
					"type": "event",
					"signature": "0x6d1c76d614228b523baa4dcd9539e2c713b54ff4ab3ff2d1627e7f6cd32be442"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "addRewardDistribution",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x60eb3ff2"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "authority",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xbf7e214f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "distributeRewards",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x59974e38"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "distributions",
					"outputs": [
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4487d3df"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "distributionsLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x060ca250"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "destination",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "editRewardDistribution",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe54c1671"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "feePoolProxy",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc9e9cc4d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "periFinanceProxy",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd12a701d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "removeRewardDistribution",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x817a6951"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "rewardEscrow",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa430be6c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_authority",
							"type": "address"
						}
					],
					"name": "setAuthority",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7a9e5e4b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_feePoolProxy",
							"type": "address"
						}
					],
					"name": "setFeePoolProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd8297e44"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_periFinanceProxy",
							"type": "address"
						}
					],
					"name": "setPeriFinanceProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc1b7ca11"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_rewardEscrow",
							"type": "address"
						}
					],
					"name": "setRewardEscrow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5de39934"
				}
			],
			"source": {
				"keccak256": "0xaa9e3cfe4fa176d831eb81c86bb05e401e1e2d19ce6f25e1c4dd404474a67e78",
				"urls": [
					"bzz-raw://16c0aba978249eecab99dd90649db19e7768de0980170de508b6c35a8322c27b",
					"dweb:/ipfs/QmcbhRm88GSGhmgVHZCk2cy1MhuZNKghkD3SHGUSd4BHSj"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"RewardsDistribution.sol": "RewardsDistribution"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"RewardsDistribution.sol": {
						"keccak256": "0xaa9e3cfe4fa176d831eb81c86bb05e401e1e2d19ce6f25e1c4dd404474a67e78",
						"urls": [
							"bzz-raw://16c0aba978249eecab99dd90649db19e7768de0980170de508b6c35a8322c27b",
							"dweb:/ipfs/QmcbhRm88GSGhmgVHZCk2cy1MhuZNKghkD3SHGUSd4BHSj"
						]
					}
				},
				"version": 1
			}
		},
		"ProxyERC20": {
			"bytecode": "608060405234801561001057600080fd5b50604051610f7f380380610f7f8339818101604052602081101561003357600080fd5b505180806001600160a01b038116610092576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1505050610e83806100fc6000396000f3fe6080604052600436106100f35760003560e01c8063776d1a011161008a57806395d89b411161005957806395d89b4114610473578063a9059cbb14610488578063d4b83992146104c1578063dd62ed3e146104d6576100f3565b8063776d1a011461038157806379ba5097146103b45780638da5cb5b146103c9578063907dff97146103de576100f3565b806323b872dd116100c657806323b872dd146102af578063313ce567146102f257806353a47bb71461031d57806370a082311461034e576100f3565b806306fdde031461017c578063095ea7b3146102065780631627540c1461025357806318160ddd14610288575b60025460408051635e33fc1960e11b815233600482015290516001600160a01b039092169163bc67f8329160248082019260009290919082900301818387803b15801561013f57600080fd5b505af1158015610153573d6000803e3d6000fd5b5050505060405136600082376000803683346002545af13d6000833e80610178573d82fd5b3d82f35b34801561018857600080fd5b50610191610511565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101cb5781810151838201526020016101b3565b50505050905090810190601f1680156101f85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561021257600080fd5b5061023f6004803603604081101561022957600080fd5b506001600160a01b038135169060200135610648565b604080519115158252519081900360200190f35b34801561025f57600080fd5b506102866004803603602081101561027657600080fd5b50356001600160a01b0316610736565b005b34801561029457600080fd5b5061029d610792565b60408051918252519081900360200190f35b3480156102bb57600080fd5b5061023f600480360360608110156102d257600080fd5b506001600160a01b03813581169160208101359091169060400135610808565b3480156102fe57600080fd5b506103076108ff565b6040805160ff9092168252519081900360200190f35b34801561032957600080fd5b50610332610944565b604080516001600160a01b039092168252519081900360200190f35b34801561035a57600080fd5b5061029d6004803603602081101561037157600080fd5b50356001600160a01b0316610953565b34801561038d57600080fd5b50610286600480360360208110156103a457600080fd5b50356001600160a01b03166109d6565b3480156103c057600080fd5b50610286610a32565b3480156103d557600080fd5b50610332610aee565b3480156103ea57600080fd5b50610286600480360360c081101561040157600080fd5b81019060208101813564010000000081111561041c57600080fd5b82018360208201111561042e57600080fd5b8035906020019184600183028401116401000000008311171561045057600080fd5b919350915080359060208101359060408101359060608101359060800135610afd565b34801561047f57600080fd5b50610191610c06565b34801561049457600080fd5b5061023f600480360360408110156104ab57600080fd5b506001600160a01b038135169060200135610c4b565b3480156104cd57600080fd5b50610332610d04565b3480156104e257600080fd5b5061029d600480360360408110156104f957600080fd5b506001600160a01b0381358116916020013516610d13565b600254604080516306fdde0360e01b815290516060926001600160a01b0316916306fdde03916004808301926000929190829003018186803b15801561055657600080fd5b505afa15801561056a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561059357600080fd5b81019080805160405193929190846401000000008211156105b357600080fd5b9083019060208201858111156105c857600080fd5b82516401000000008111828201881017156105e257600080fd5b82525081516020918201929091019080838360005b8381101561060f5781810151838201526020016105f7565b50505050905090810190601f16801561063c5780820380516001836020036101000a031916815260200191505b50604052505050905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561069357600080fd5b505af11580156106a7573d6000803e3d6000fd5b50506002546040805163095ea7b360e01b81526001600160a01b03888116600483015260248201889052915191909216935063095ea7b3925060448083019260209291908290030181600087803b15801561070157600080fd5b505af1158015610715573d6000803e3d6000fd5b505050506040513d602081101561072b57600080fd5b506001949350505050565b61073e610d9f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600254604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b1580156107d757600080fd5b505afa1580156107eb573d6000803e3d6000fd5b505050506040513d602081101561080157600080fd5b5051905090565b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b15801561085357600080fd5b505af1158015610867573d6000803e3d6000fd5b5050600254604080516323b872dd60e01b81526001600160a01b03898116600483015288811660248301526044820188905291519190921693506323b872dd925060648083019260209291908290030181600087803b1580156108c957600080fd5b505af11580156108dd573d6000803e3d6000fd5b505050506040513d60208110156108f357600080fd5b50600195945050505050565b6002546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b1580156107d757600080fd5b6001546001600160a01b031681565b600254604080516370a0823160e01b81526001600160a01b038481166004830152915160009392909216916370a0823191602480820192602092909190829003018186803b1580156109a457600080fd5b505afa1580156109b8573d6000803e3d6000fd5b505050506040513d60208110156109ce57600080fd5b505192915050565b6109de610d9f565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e9181900360200190a150565b6001546001600160a01b03163314610a7b5760405162461bcd60e51b8152600401808060200182810382526035815260200180610deb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b03163314610b53576040805162461bcd60e51b8152602060048201526014602482015273135d5cdd081899481c1c9bde1e481d185c99d95d60621b604482015290519081900360640190fd5b604080516020601f89018190048102820181019092528781528791606091908a908490819084018382808284376000920191909152509293508992505081159050610bbd5760018114610bc85760028114610bd45760038114610be15760048114610bef57610bfa565b8260208301a0610bfa565b868360208401a1610bfa565b85878460208501a2610bfa565b8486888560208601a3610bfa565b838587898660208701a45b50505050505050505050565b600254604080516395d89b4160e01b815290516060926001600160a01b0316916395d89b41916004808301926000929190829003018186803b15801561055657600080fd5b60025460408051635e33fc1960e11b815233600482015290516000926001600160a01b03169163bc67f832916024808301928692919082900301818387803b158015610c9657600080fd5b505af1158015610caa573d6000803e3d6000fd5b50506002546040805163a9059cbb60e01b81526001600160a01b03888116600483015260248201889052915191909216935063a9059cbb925060448083019260209291908290030181600087803b15801561070157600080fd5b6002546001600160a01b031681565b60025460408051636eb1769f60e11b81526001600160a01b03858116600483015284811660248301529151600093929092169163dd62ed3e91604480820192602092909190829003018186803b158015610d6c57600080fd5b505afa158015610d80573d6000803e3d6000fd5b505050506040513d6020811015610d9657600080fd5b50519392505050565b6000546001600160a01b03163314610de85760405162461bcd60e51b815260040180806020018281038252602f815260200180610e20602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820980c4ae0869960802ea75cf74d11377416e916bb78d9e1dcce3f7740c567ae4c64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event",
					"signature": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "contract Proxyable",
							"name": "newTarget",
							"type": "address"
						}
					],
					"name": "TargetUpdated",
					"type": "event",
					"signature": "0x814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event",
					"signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes",
							"name": "callData",
							"type": "bytes"
						},
						{
							"internalType": "uint256",
							"name": "numTopics",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "topic1",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic2",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic3",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "topic4",
							"type": "bytes32"
						}
					],
					"name": "_emit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x907dff97"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdd62ed3e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x095ea7b3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x70a08231"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x313ce567"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x06fdde03"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract Proxyable",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "setTarget",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x776d1a01"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x95d89b41"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "target",
					"outputs": [
						{
							"internalType": "contract Proxyable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd4b83992"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x18160ddd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa9059cbb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x23b872dd"
				}
			],
			"source": {
				"keccak256": "0xd779b6db1780a4017fd7d037fa124f4048c0c142a4250ce4d67bd7493dba1365",
				"urls": [
					"bzz-raw://f5c8c23b67ff877875af0b5869737d40cd57f11498a87eb767befdbc5430f217",
					"dweb:/ipfs/Qmchkvs7eMu8hx7ak66D1YM3T3QU6tPuRqeMN3ZZ4SPgia"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ProxyERC20.sol": "ProxyERC20"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ProxyERC20.sol": {
						"keccak256": "0xd779b6db1780a4017fd7d037fa124f4048c0c142a4250ce4d67bd7493dba1365",
						"urls": [
							"bzz-raw://f5c8c23b67ff877875af0b5869737d40cd57f11498a87eb767befdbc5430f217",
							"dweb:/ipfs/Qmchkvs7eMu8hx7ak66D1YM3T3QU6tPuRqeMN3ZZ4SPgia"
						]
					}
				},
				"version": 1
			}
		},
		"TokenState": {
			"bytecode": "608060405234801561001057600080fd5b5060405161075d38038061075d8339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a15050506105b7806101a66000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c80638da5cb5b116100665780638da5cb5b14610155578063aefc4ccb1461015d578063b46310f614610165578063da46098c14610191578063dd62ed3e146101c75761009e565b80631627540c146100a357806352f445ca146100cb57806353a47bb7146100f157806370a082311461011557806379ba50971461014d575b600080fd5b6100c9600480360360208110156100b957600080fd5b50356001600160a01b03166101f5565b005b6100c9600480360360208110156100e157600080fd5b50356001600160a01b0316610251565b6100f96102ad565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603602081101561012b57600080fd5b50356001600160a01b03166102bc565b60408051918252519081900360200190f35b6100c96102ce565b6100f961038a565b6100f9610399565b6100c96004803603604081101561017b57600080fd5b506001600160a01b0381351690602001356103a8565b6100c9600480360360608110156101a757600080fd5b506001600160a01b0381358116916020810135909116906040013561040d565b61013b600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610482565b6101fd61049f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b61025961049f565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b60036020526000908152604090205481565b6001546001600160a01b031633146103175760405162461bcd60e51b81526004018080602001828103825260358152602001806104eb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6002546001600160a01b031633146103f15760405162461bcd60e51b815260040180806020018281038252603481526020018061054f6034913960400191505060405180910390fd5b6001600160a01b03909116600090815260036020526040902055565b6002546001600160a01b031633146104565760405162461bcd60e51b815260040180806020018281038252603481526020018061054f6034913960400191505060405180910390fd5b6001600160a01b0392831660009081526004602090815260408083209490951682529290925291902055565b600460209081526000928352604080842090915290825290205481565b6000546001600160a01b031633146104e85760405162461bcd60e51b815260040180806020018281038252602f815260200180610520602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a72315820192557c4053b574b4b66c7c20ea0c5252204e41d86cfe0509caae18199ee926564736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdd62ed3e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x70a08231"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "tokenOwner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setAllowance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xda46098c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "setBalanceOf",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb46310f6"
				}
			],
			"source": {
				"keccak256": "0xb00263af32f19bdeebe627e21a84394e5468c5867e63f4ce8aefb669cd2bbc21",
				"urls": [
					"bzz-raw://2810953b8718b3dfc3a1705d6c32be2c25a26c533da1d1deea4e45b5bea5fbbd",
					"dweb:/ipfs/QmNVGB5baWw47kVXwMSNHZp1SoL2pKAYxRDmgYtd5veNUj"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"TokenState.sol": "TokenState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"TokenState.sol": {
						"keccak256": "0xb00263af32f19bdeebe627e21a84394e5468c5867e63f4ce8aefb669cd2bbc21",
						"urls": [
							"bzz-raw://2810953b8718b3dfc3a1705d6c32be2c25a26c533da1d1deea4e45b5bea5fbbd",
							"dweb:/ipfs/QmNVGB5baWw47kVXwMSNHZp1SoL2pKAYxRDmgYtd5veNUj"
						]
					}
				},
				"version": 1
			}
		},
		"BlacklistManager": {
			"bytecode": "608060405234801561001057600080fd5b506040516106f63803806106f68339818101604052602081101561003357600080fd5b5051806001600160a01b038116610091576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150506105fc806100fa6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637fc42615116100665780637fc42615146101125780638da5cb5b14610138578063a39fac1214610140578063b563545f14610198578063cb2505cf146101b557610093565b80631627540c146100985780632c272456146100c057806353a47bb7146100e657806379ba50971461010a575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b03166101ef565b005b6100be600480360360208110156100d657600080fd5b50356001600160a01b031661024b565b6100ee61029c565b604080516001600160a01b039092168252519081900360200190f35b6100be6102ab565b6100be6004803603602081101561012857600080fd5b50356001600160a01b0316610367565b6100ee61046b565b61014861047a565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561018457818101518382015260200161016c565b505050509050019250505060405180910390f35b6100ee600480360360208110156101ae57600080fd5b50356104dc565b6101db600480360360208110156101cb57600080fd5b50356001600160a01b0316610503565b604080519115158252519081900360200190f35b6101f7610518565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610253610518565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f7534c63860313c46c473e4e98328f37017e9674e2162faf1a3ad7a96236c3b7b9190a250565b6001546001600160a01b031681565b6001546001600160a01b031633146102f45760405162461bcd60e51b81526004018080602001828103825260358152602001806105646035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b61036f610518565b6001600160a01b0381166000908152600260205260408120805460ff19166001179055805b6003548110156103e157826001600160a01b0316600382815481106103b557fe5b6000918252602090912001546001600160a01b031614156103d957600191506103e1565b600101610394565b508061043357600380546001810182556000919091527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180546001600160a01b0319166001600160a01b0384161790555b6040516001600160a01b038316907fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b85590600090a25050565b6000546001600160a01b031681565b606060038054806020026020016040519081016040528092919081815260200182805480156104d257602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104b4575b5050505050905090565b600381815481106104e957fe5b6000918252602090912001546001600160a01b0316905081565b60026020526000908152604090205460ff1681565b6000546001600160a01b031633146105615760405162461bcd60e51b815260040180806020018281038252602f815260200180610599602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a723158204e8e1daab64ed2b6b2088f16b104c2349ed56734baec0e4d9edf893aae27a00164736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "Blacklisted",
					"type": "event",
					"signature": "0xffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b855"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "Unblacklisted",
					"type": "event",
					"signature": "0x7534c63860313c46c473e4e98328f37017e9674e2162faf1a3ad7a96236c3b7b"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						}
					],
					"name": "flagAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7fc42615"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "flagged",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcb2505cf"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getAddresses",
					"outputs": [
						{
							"internalType": "address[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa39fac12"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "listedAddresses",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb563545f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						}
					],
					"name": "unflagAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2c272456"
				}
			],
			"source": {
				"keccak256": "0x4e30bb11fc1750dcdfec63374918cc10f12477e5b0671f71a368a205e5144fdf",
				"urls": [
					"bzz-raw://1e9b3185033718224e5eaf1c989f5c0e7237461b28cab6dd6cd942714843db6b",
					"dweb:/ipfs/QmbghJMt4uffafvqHbBp4wBiHr5dRBZz1AeTFq3q7BA7iz"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"BlacklistManager.sol": "BlacklistManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"BlacklistManager.sol": {
						"keccak256": "0x4e30bb11fc1750dcdfec63374918cc10f12477e5b0671f71a368a205e5144fdf",
						"urls": [
							"bzz-raw://1e9b3185033718224e5eaf1c989f5c0e7237461b28cab6dd6cd942714843db6b",
							"dweb:/ipfs/QmbghJMt4uffafvqHbBp4wBiHr5dRBZz1AeTFq3q7BA7iz"
						]
					}
				},
				"version": 1
			}
		},
		"PeriFinanceToEthereum": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162006204380380620062048339810160408190526200003491620003a4565b8787878787878787878787878786818686604051806040016040528060128152602001712832b934902334b730b731b2902a37b5b2b760711b815250604051806040016040528060048152602001635045524960e01b8152508760128a868160006001600160a01b0316816001600160a01b03161415620000d25760405162461bcd60e51b8152600401620000c99062000533565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c916200011f918490620004fb565b60405180910390a1506000546001600160a01b0316620001535760405162461bcd60e51b8152600401620000c99062000521565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e90620001a0908390620004eb565b60405180910390a150600580546001600160a01b0319166001600160a01b0388161790558451620001d9906006906020880190620002d2565b508351620001ef906007906020870190620002d2565b508260088190555081600960006101000a81548160ff021916908360ff1602179055505050505050505080600b60006101000a8154816001600160a01b0302191690836001600160a01b031602179055505080600d60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050505082600e60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080601060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050505050505050505050505050505050620005b1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200031557805160ff191683800117855562000345565b8280016001018555821562000345579182015b828111156200034557825182559160200191906001019062000328565b506200035392915062000357565b5090565b6200037491905b808211156200035357600081556001016200035e565b90565b8051620003848162000581565b92915050565b805162000384816200059b565b80516200038481620005a6565b600080600080600080600080610100898b031215620003c257600080fd5b6000620003d08b8b62000377565b9850506020620003e38b828c016200038a565b9750506040620003f68b828c0162000377565b9650506060620004098b828c0162000397565b95505060806200041c8b828c0162000377565b94505060a06200042f8b828c0162000377565b93505060c0620004428b828c0162000377565b92505060e0620004558b828c0162000377565b9150509295985092959890939650565b620004708162000574565b82525050565b62000470816200054e565b60006200049060118362000545565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620004bf60198362000545565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b6020810162000384828462000465565b604081016200050b828562000465565b6200051a602083018462000476565b9392505050565b60208082528101620003848162000481565b602080825281016200038481620004b0565b90815260200190565b6000620003848262000568565b600062000384826200054e565b6001600160a01b031690565b600062000384826200055b565b6200058c816200054e565b81146200059857600080fd5b50565b6200058c816200055b565b6200058c8162000374565b615c4380620005c16000396000f3fe6080604052600436106104895760003560e01c806391e56b6811610255578063d37c4d8b11610144578063e22760f7116100c1578063ec55688911610085578063ec55688914610d51578063edef719a14610820578063ee52a2f314610d66578063f084219e14610d86578063f5adc4f514610d9b578063f9eea80c14610db057610489565b8063e22760f714610cd2578063e3c3af9814610ce7578063e6203ed114610d07578063e90dd9e214610d27578063e9fad8ee14610d3c57610489565b8063d99947de11610108578063d99947de14610c48578063d9dbf65714610c5d578063dd62ed3e14610c72578063ddd03a3f14610c92578063e12c4cea14610cb257610489565b8063d37c4d8b14610bb3578063d3a7120214610bd3578063d67bdd2514610bf3578063d6980ba114610c08578063d8a1f76f14610c2857610489565b8063a311c7c2116101d2578063af5a5e4c11610196578063af5a5e4c14610b1d578063bc67f83214610b25578063becf5ff814610b45578063c836fa0a14610b73578063c9a2f3ad14610b9357610489565b8063a311c7c214610a7d578063a56c62cf14610a9d578063a5fdc5de14610abd578063a9059cbb14610add578063ace88afd14610afd57610489565b8063987757dd11610219578063987757dd146109f55780639a26669e14610a155780639cbdaeb614610a285780639df95f9f14610a3d5780639f76980714610a5d57610489565b806391e56b681461096057806392d5011f14610980578063945d1229146109a057806395d89b41146109c057806397107d6d146109d557610489565b80633b09280a1161037c5780636f01a986116102f95780637a725c68116102bd5780637a725c68146108cc578063842efb01146108e157806385d18d3614610901578063899ffef4146109215780638da5cb5b146109365780638e2ac0ea1461094b57610489565b80636f01a9861461084057806370a082311461086057806372cb051f1461088057806374185360146108a257806379ba5097146108b757610489565b8063534f079c11610340578063534f079c146107ab57806353a47bb7146107cb57806355182ccb146107e057806357ad466314610800578063666ed4f11461082057610489565b80633b09280a1461071257806340c10f1914610741578063440c6778146107615780634466ec2c1461078157806350d0573c1461079657610489565b80631fce304d1161040a5780632bc93ad6116103ce5780632bc93ad6146106795780632e0f2625146106a657806330ead760146106c8578063313ce567146106e8578063321ea17c146106fd57610489565b80631fce304d146105ef5780632190764c1461060f57806323b872dd1461062f5780632a9053181461064f5780632af64bd31461066457610489565b8063131b0ae711610451578063131b0ae7146105585780631627540c1461057857806318160ddd1461059857806318821400146105ba5780631b99084c146105cf57610489565b806304f3bcec1461048e57806306fdde03146104b9578063095ea7b3146104db5780630a057b76146105085780630e30963c1461052a575b600080fd5b34801561049a57600080fd5b506104a3610dc5565b6040516104b091906158bb565b60405180910390f35b3480156104c557600080fd5b506104ce610dd4565b6040516104b091906158c9565b3480156104e757600080fd5b506104fb6104f6366004614699565b610e62565b6040516104b09190615765565b34801561051457600080fd5b506105286105233660046149bd565b610ef0565b005b34801561053657600080fd5b5061054a610545366004614a51565b610f89565b6040516104b0929190615a8a565b34801561056457600080fd5b506105286105733660046145a6565b610f9d565b34801561058457600080fd5b506105286105933660046145a6565b610fc7565b3480156105a457600080fd5b506105ad611025565b6040516104b09190615773565b3480156105c657600080fd5b506104ce61102b565b3480156105db57600080fd5b506105286105ea3660046147e3565b611059565b3480156105fb57600080fd5b506104fb61060a366004614960565b61111b565b34801561061b57600080fd5b5061052861062a3660046145a6565b6111b0565b34801561063b57600080fd5b506104fb61064a36600461461c565b611220565b34801561065b57600080fd5b506104ce61127e565b34801561067057600080fd5b506104fb61129e565b34801561068557600080fd5b50610699610694366004614960565b6113b6565b6040516104b0919061551d565b3480156106b257600080fd5b506106bb6113c1565b6040516104b09190615ac1565b3480156106d457600080fd5b506105ad6106e33660046149dc565b6113c6565b3480156106f457600080fd5b506106bb611495565b34801561070957600080fd5b5061069961149e565b34801561071e57600080fd5b5061073261072d3660046145a6565b6114ad565b6040516104b093929190615ab3565b34801561074d57600080fd5b506104fb61075c366004614699565b611542565b34801561076d57600080fd5b5061052861077c3660046145a6565b6116ad565b34801561078d57600080fd5b506104a36116d7565b3480156107a257600080fd5b506105286116e6565b3480156107b757600080fd5b506105286107c63660046149bd565b611744565b3480156107d757600080fd5b506106996117a6565b3480156107ec57600080fd5b506105ad6107fb3660046145a6565b6117b5565b34801561080c57600080fd5b506104a361081b366004614960565b61183a565b34801561082c57600080fd5b5061052861083b366004614699565b6118bf565b34801561084c57600080fd5b5061052861085b3660046146c9565b6118cb565b34801561086c57600080fd5b506105ad61087b3660046145a6565b61194d565b34801561088c57600080fd5b5061089561197e565b6040516104b09190615754565b3480156108ae57600080fd5b50610528611a01565b3480156108c357600080fd5b50610528611b53565b3480156108d857600080fd5b506104fb611bef565b3480156108ed57600080fd5b506105286108fc3660046145a6565b612118565b34801561090d57600080fd5b5061052861091c366004614960565b612142565b34801561092d57600080fd5b506108956121d8565b34801561094257600080fd5b5061069961229e565b34801561095757600080fd5b506105286122ad565b34801561096c57600080fd5b506105ad61097b36600461475c565b61230b565b34801561098c57600080fd5b5061052861099b366004614669565b6123f5565b3480156109ac57600080fd5b506105286109bb3660046145a6565b612428565b3480156109cc57600080fd5b506104ce612452565b3480156109e157600080fd5b506105286109f03660046145a6565b6124ad565b348015610a0157600080fd5b50610732610a10366004614960565b612500565b610528610a23366004614b0f565b6125bd565b348015610a3457600080fd5b506104a3612882565b348015610a4957600080fd5b506104a3610a58366004614960565b612891565b348015610a6957600080fd5b50610528610a78366004614a91565b6128c6565b348015610a8957600080fd5b506105ad610a983660046145a6565b6128f5565b348015610aa957600080fd5b50610528610ab83660046145a6565b61292a565b348015610ac957600080fd5b506105ad610ad83660046145a6565b61297a565b348015610ae957600080fd5b506104fb610af8366004614699565b6129af565b348015610b0957600080fd5b50610528610b183660046146c9565b612a11565b610528612a5e565b348015610b3157600080fd5b50610528610b403660046145a6565b612c15565b348015610b5157600080fd5b50610b65610b603660046145a6565b612c3f565b6040516104b09291906157aa565b348015610b7f57600080fd5b506105ad610b8e3660046146fb565b612cce565b348015610b9f57600080fd5b506105ad610bae3660046145a6565b612d43565b348015610bbf57600080fd5b506105ad610bce366004614699565b612d78565b348015610bdf57600080fd5b506105ad610bee366004614960565b612e06565b348015610bff57600080fd5b50610699612e8d565b348015610c1457600080fd5b506105ad610c23366004614960565b612e9c565b348015610c3457600080fd5b50610528610c43366004614960565b612ed4565b348015610c5457600080fd5b506105ad612edc565b348015610c6957600080fd5b506104a3612f56565b348015610c7e57600080fd5b506105ad610c8d3660046145e2565b612f65565b348015610c9e57600080fd5b50610528610cad36600461499c565b612f98565b348015610cbe57600080fd5b50610528610ccd3660046145a6565b613014565b348015610cde57600080fd5b5061069961303e565b348015610cf357600080fd5b506105ad610d023660046145a6565b61304d565b348015610d1357600080fd5b506104fb610d22366004614699565b6130ff565b348015610d3357600080fd5b506104a36131ef565b348015610d4857600080fd5b506105286131fe565b348015610d5d57600080fd5b506104a361325c565b348015610d7257600080fd5b506105ad610d8136600461499c565b61326b565b348015610d9257600080fd5b50610699613334565b348015610da757600080fd5b506104fb613343565b348015610dbc57600080fd5b506105ad6133bd565b600b546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610e5a5780601f10610e2f57610100808354040283529160200191610e5a565b820191906000526020600020905b815481529060010190602001808311610e3d57829003601f168201915b505050505081565b6000610e6c6133c8565b60048054600554604051633691826360e21b81526001600160a01b0392831693919092169163da46098c91610ea79185918991899101615619565b600060405180830381600087803b158015610ec157600080fd5b505af1158015610ed5573d6000803e3d6000fd5b50505050610ee481858561341f565b60019150505b92915050565b610ef861349f565b610f006133c8565b6004546001600160a01b0316610f15816134f9565b610f1d6135be565b60048054604051631ab11c7160e21b81526001600160a01b0393841693636ac471c493610f529390911691889188910161564f565b600060405180830381600087803b158015610f6c57600080fd5b505af1158015610f80573d6000803e3d6000fd5b50505050505050565b600080610f946135d2565b94509492505050565b610fa56135ea565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610fcf6135ea565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061101a90839061551d565b60405180910390a150565b60085481565b604051806040016040528060128152602001712832b934902334b730b731b2902a37b5b2b760711b81525081565b611061613614565b6002546040516001600160a01b039091169063907dff979061108f90889088908890889088906020016157d8565b60405160208183030381529060405260026040516110ac906154a5565b60405180910390206110bd8b61364c565b6000806040518763ffffffff1660e01b81526004016110e19695949392919061583a565b600060405180830381600087803b1580156110fb57600080fd5b505af115801561110f573d6000803e3d6000fd5b50505050505050505050565b600080611126613658565b600480546040516301670a7b60e21b81526001600160a01b039384169363059c29ec936111599390911691889101615641565b60206040518083038186803b15801561117157600080fd5b505afa158015611185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111a9919081019061497e565b1192915050565b6111b86135ea565b6111c06135be565b6001600160a01b03166394955cec826040518263ffffffff1660e01b81526004016111eb919061551d565b600060405180830381600087803b15801561120557600080fd5b505af1158015611219573d6000803e3d6000fd5b5050505050565b600061122a6133c8565b61123261366f565b6004546001600160a01b0316611247816134f9565b84611251816134f9565b61125b86856136af565b50600454611274906001600160a01b031687878761388d565b9695505050505050565b604051806040016040528060048152602001635045524960e01b81525081565b600060606112aa6121d8565b905060005b81518110156113ac5760008282815181106112c657fe5b6020908102919091018101516000818152600c90925260409182902054600b5492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190611317908590600401615773565b60206040518083038186803b15801561132f57600080fd5b505afa158015611343573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061136791908101906145c4565b6001600160a01b031614158061139257506000818152600c60205260409020546001600160a01b0316155b156113a357600093505050506113b3565b506001016112af565b5060019150505b90565b6000610eea82613994565b601281565b600085846113d482826139f1565b6113dc6133c8565b6004546001600160a01b03166113f1816134f9565b6113f9613658565b600480546040516321aea91760e21b81526001600160a01b03938416936386baa45c9361143693909116918e918e918e9185918f918f91016156ac565b602060405180830381600087803b15801561145057600080fd5b505af1158015611464573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611488919081019061497e565b9998505050505050505050565b60095460ff1681565b600f546001600160a01b031681565b60008060006114ba6135be565b6001600160a01b0316633b09280a856040518263ffffffff1660e01b81526004016114e5919061551d565b60606040518083038186803b1580156114fd57600080fd5b505afa158015611511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115359190810190614b52565b9250925092509193909250565b600061154c6133c8565b600e546001600160a01b031661157d5760405162461bcd60e51b8152600401611574906159ca565b60405180910390fd5b600454600e546001600160a01b039081169116146115ad5760405162461bcd60e51b8152600401611574906159aa565b6005546040516370a0823160e01b81526001600160a01b039091169063b46310f690859061164990869085906370a08231906115ed90869060040161551d565b60206040518083038186803b15801561160557600080fd5b505afa158015611619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061163d919081019061497e565b9063ffffffff613a5216565b6040518363ffffffff1660e01b8152600401611666929190615641565b600060405180830381600087803b15801561168057600080fd5b505af1158015611694573d6000803e3d6000fd5b505050506116a460008484613a77565b50600192915050565b6116b56135ea565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6011546001600160a01b031681565b6116ee61349f565b6116f66133c8565b6004546001600160a01b031661170b816134f9565b6117136135be565b60048054604051632525573b60e21b81526001600160a01b03938416936394955cec936111eb93909116910161551d565b61174c61349f565b6117546133c8565b6004546001600160a01b0316611769816134f9565b6117716135be565b6004805460405163047cad3160e11b81526001600160a01b03938416936308f95a6293610f529390911691889188910161564f565b6001546001600160a01b031681565b60006117bf6135be565b6001600160a01b03166355182ccb836040518263ffffffff1660e01b81526004016117ea919061551d565b60206040518083038186803b15801561180257600080fd5b505afa158015611816573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610eea919081019061497e565b60006118446135be565b6001600160a01b03166357ad4663836040518263ffffffff1660e01b815260040161186f9190615773565b60206040518083038186803b15801561188757600080fd5b505afa15801561189b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610eea9190810190614a73565b6118c76135d2565b5050565b6118d3613614565b6002546040516001600160a01b039091169063907dff97906118fb90859085906020016157aa565b6040516020818303038152906040526002604051611918906154db565b60405180910390206119298861364c565b6000806040518763ffffffff1660e01b8152600401610f529695949392919061583a565b6005546040516370a0823160e01b81526000916001600160a01b0316906370a08231906117ea90859060040161551d565b60606119886135be565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b1580156119c057600080fd5b505afa1580156119d4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526119fc91908101906148d8565b905090565b6060611a0b6121d8565b905060005b81518110156118c7576000828281518110611a2757fe5b602002602001015190506000600b60009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001611a699190615507565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401611a959291906157b8565b60206040518083038186803b158015611aad57600080fd5b505afa158015611ac1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ae591908101906145c4565b6000838152600c60205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890611b419084908490615781565b60405180910390a15050600101611a10565b6001546001600160a01b03163314611b7d5760405162461bcd60e51b8152600401611574906158fa565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92611bc0926001600160a01b0391821692911690615554565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000611bf961349f565b600f546001600160a01b03163314611c235760405162461bcd60e51b8152600401611574906159aa565b6000611c2d613aba565b6001600160a01b03161415611c545760405162461bcd60e51b81526004016115749061592a565b6000611c5e613adb565b90506000611c6a613aba565b90506000611c76613af7565b6001600160a01b03166302760d946040518163ffffffff1660e01b815260040160206040518083038186803b158015611cae57600080fd5b505afa158015611cc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ce6919081019061497e565b90508073__$81d487db6750d281e0c17328cbb1b12196$__63d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186803b158015611d2d57600080fd5b505af4158015611d41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d65919081019061497e565b1015611d835760405162461bcd60e51b81526004016115749061597a565b6000836001600160a01b031663cc5c095c6040518163ffffffff1660e01b815260040160206040518083038186803b158015611dbe57600080fd5b505afa158015611dd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611df6919081019061497e565b9050611e19611e1483611e0884613b16565b9063ffffffff613b2c16565b613b45565b905060008111611e3b5760405162461bcd60e51b81526004016115749061596a565b604051637e7961d760e01b81526001600160a01b03851690637e7961d790611e67908490600401615773565b602060405180830381600087803b158015611e8157600080fd5b505af1158015611e95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611eb99190810190614942565b506000846001600160a01b0316639bdd7ac76040518163ffffffff1660e01b815260040160206040518083038186803b158015611ef557600080fd5b505afa158015611f09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f2d919081019061497e565b90506000611f41838363ffffffff613b6716565b6005546040516370a0823160e01b81529192506001600160a01b03169063b46310f6908790611f8290859085906370a08231906115ed90869060040161551d565b6040518363ffffffff1660e01b8152600401611f9f929190615641565b600060405180830381600087803b158015611fb957600080fd5b505af1158015611fcd573d6000803e3d6000fd5b50505050611fdc308683613a77565b604051630b32e9c760e31b81526001600160a01b038616906359974e3890612008908490600401615773565b602060405180830381600087803b15801561202257600080fd5b505af1158015612036573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061205a9190810190614942565b506005546040516370a0823160e01b81526001600160a01b039091169063b46310f690339061209b90869085906370a08231906115ed90869060040161552b565b6040518363ffffffff1660e01b81526004016120b8929190615539565b600060405180830381600087803b1580156120d257600080fd5b505af11580156120e6573d6000803e3d6000fd5b505050506120f5303384613a77565b600854612108908463ffffffff613a5216565b6008555060019550505050505090565b6121206135ea565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b61214a61349f565b6121526133c8565b6004546001600160a01b0316612167816134f9565b61216f6135be565b6004805460405163171af06360e01b81526001600160a01b039384169363171af063936121a29390911691879101615641565b600060405180830381600087803b1580156121bc57600080fd5b505af11580156121d0573d6000803e3d6000fd5b505050505050565b6060806121e3613b8f565b60408051600380825260808201909252919250606091906020820183803883390190505090506d2932bbb0b93222b9b1b937bbab1960911b8160008151811061222857fe5b6020026020010181815250506d537570706c795363686564756c6560901b8160018151811061225357fe5b6020026020010181815250507021b937b9b9a1b430b4b726b0b730b3b2b960791b8160028151811061228157fe5b6020026020010181815250506122978282613caf565b9250505090565b6000546001600160a01b031681565b6122b561349f565b6122bd6133c8565b6004546001600160a01b03166122d2816134f9565b6122da6135be565b6004805460405163f0617e5b60e01b81526001600160a01b039384169363f0617e5b936111eb93909116910161551d565b6000858461231982826139f1565b6123216133c8565b6004546001600160a01b0316612336816134f9565b89612340816134f9565b612348613658565b6001600160a01b031663dfffca768c600460009054906101000a90046001600160a01b03168d8d8d8d8d6040518863ffffffff1660e01b815260040161239497969594939291906155b1565b602060405180830381600087803b1580156123ae57600080fd5b505af11580156123c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506123e6919081019061497e565b9b9a5050505050505050505050565b6123fd6135ea565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6124306135ea565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6007805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610e5a5780601f10610e2f57610100808354040283529160200191610e5a565b6124b56135ea565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9061101a90839061552b565b600080600061250d6133c8565b6004546001600160a01b0316612522816134f9565b61252a613658565b600480546040516306c5a00b60e21b81526001600160a01b0393841693631b16802c9361255d93909116918a9101615641565b606060405180830381600087803b15801561257757600080fd5b505af115801561258b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125af9190810190614b52565b935093509350509193909250565b6125c56133c8565b600083116125e55760405162461bcd60e51b815260040161157490615a1a565b60006125ef6135be565b600480546005546040516370a0823160e01b81526001600160a01b0394851694638d542eb394938116939216916370a082319161262e9185910161551d565b60206040518083038186803b15801561264657600080fd5b505afa15801561265a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061267e919081019061497e565b6040518363ffffffff1660e01b815260040161269b929190615641565b604080518083038186803b1580156126b257600080fd5b505afa1580156126c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126ea9190810190614aaf565b5090508381101561270d5760405162461bcd60e51b815260040161157490615a3a565b612715613d64565b6001600160a01b031663962438036040518163ffffffff1660e01b815260040160206040518083038186803b15801561274d57600080fd5b505afa158015612761573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612785919081019061497e565b3410156127a45760405162461bcd60e51b815260040161157490615a5a565b6010546040516001600160a01b03909116903480156108fc02916000818181858888f193505050501580156127dd573d6000803e3d6000fd5b506004546127f4906001600160a01b031685613d80565b6128105760405162461bcd60e51b81526004016115749061595a565b601154600480546040516362f0c06b60e01b81526001600160a01b03938416936362f0c06b9361284a939091169189918991899101615716565b600060405180830381600087803b15801561286457600080fd5b505af1158015612878573d6000803e3d6000fd5b5050505050505050565b6003546001600160a01b031681565b600061289b6135be565b6001600160a01b0316639df95f9f836040518263ffffffff1660e01b815260040161186f9190615773565b6128ce613e1c565b600580546001600160a01b0319166001600160a01b0383161790556128f281613ea1565b50565b60006128ff6135be565b6001600160a01b031663a311c7c2836040518263ffffffff1660e01b81526004016117ea919061551d565b6129326135ea565b6001600160a01b0381166129585760405162461bcd60e51b8152600401611574906159ca565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b60006129846135be565b6001600160a01b031663a5fdc5de836040518263ffffffff1660e01b81526004016117ea919061551d565b60006129b96133c8565b6129c161366f565b6004546001600160a01b03166129d6816134f9565b6004546129ec906001600160a01b0316846136af565b50600454612a04906001600160a01b03168585613f13565b50600191505b5092915050565b612a19613614565b6002546040516001600160a01b039091169063907dff9790612a4190859085906020016157aa565b60405160208183030381529060405260026040516119189061549a565b612a666133c8565b60115460048054604051630145b42f60e31b81526060936001600160a01b0390811693630a2da17893612a9c939216910161551d565b60006040518083038186803b158015612ab457600080fd5b505afa158015612ac8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612af0919081019061490d565b90506000815111612b135760405162461bcd60e51b81526004016115749061593a565b612b1b613d64565b6001600160a01b03166387c24d346040518163ffffffff1660e01b815260040160206040518083038186803b158015612b5357600080fd5b505afa158015612b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b8b919081019061497e565b341015612baa5760405162461bcd60e51b815260040161157490615a5a565b6010546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015612be3573d6000803e3d6000fd5b5060005b81518110156118c757612c0c828281518110612bff57fe5b6020026020010151613f20565b50600101612be7565b612c1d614071565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600080612c4a6135be565b6001600160a01b031663becf5ff8846040518263ffffffff1660e01b8152600401612c75919061551d565b604080518083038186803b158015612c8c57600080fd5b505afa158015612ca0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612cc49190810190614adf565b9094909350915050565b60008382612cdc82826139f1565b612ce46133c8565b6004546001600160a01b0316612cf9816134f9565b87612d03816134f9565b612d0b613658565b60048054604051630d4388eb60e31b81526001600160a01b0393841693636a1c475893611436938f939216918e918e918e910161556f565b6000612d4d6135be565b6001600160a01b031663c9a2f3ad836040518263ffffffff1660e01b81526004016117ea919061551d565b6000612d826135be565b6001600160a01b031663d37c4d8b84846040518363ffffffff1660e01b8152600401612daf929190615641565b60206040518083038186803b158015612dc757600080fd5b505afa158015612ddb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612dff919081019061497e565b9392505050565b6000612e106135be565b6001600160a01b031663f023e8db8360006040518363ffffffff1660e01b8152600401612e3e92919061578f565b604080518083038186803b158015612e5557600080fd5b505afa158015612e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a0a9190810190614aaf565b6004546001600160a01b031681565b6000612ea66135be565b6001600160a01b031663f023e8db8360016040518363ffffffff1660e01b8152600401612e3e92919061578f565b6128f26135d2565b6000612ee66135be565b6001600160a01b031663d99947de6040518163ffffffff1660e01b815260040160206040518083038186803b158015612f1e57600080fd5b505afa158015612f32573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119fc919081019061497e565b600d546001600160a01b031681565b600554604051636eb1769f60e11b81526000916001600160a01b03169063dd62ed3e90612daf9086908690600401615554565b612fa0613614565b6002546040516001600160a01b039091169063907dff9790612fc890859085906020016157aa565b6040516020818303038152906040526002604051612fe5906154e6565b6040519081900381206001600160e01b031960e086901b168252610f529392918990600090819060040161583a565b61301c6135ea565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6010546001600160a01b031681565b60006130576135be565b6005546040516370a0823160e01b81526001600160a01b0392831692638d542eb39286929116906370a082319061309290849060040161551d565b60206040518083038186803b1580156130aa57600080fd5b505afa1580156130be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506130e2919081019061497e565b6040518363ffffffff1660e01b8152600401612e3e929190615641565b600061310961366f565b6131116133c8565b6004546001600160a01b0316613126816134f9565b6000806131316135be565b6004805460405163298f137d60e21b81526001600160a01b039384169363a63c4df493613166938c938c9390911691016156ee565b6040805180830381600087803b15801561317f57600080fd5b505af1158015613193573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131b79190810190614adf565b60045491935091506131d7908790849084906001600160a01b03166140b0565b6004546112749087906001600160a01b031684613f13565b6005546001600160a01b031681565b61320661349f565b61320e6133c8565b6004546001600160a01b0316613223816134f9565b61322b6135be565b6004805460405163b42652e960e01b81526001600160a01b039384169363b42652e9936111eb93909116910161551d565b6002546001600160a01b031681565b6000838261327982826139f1565b6132816133c8565b6004546001600160a01b0316613296816134f9565b61329e613658565b60048054604051630a1e187d60e01b81526001600160a01b0393841693630a1e187d936132d793909116918c918c918c9185910161566a565b602060405180830381600087803b1580156132f157600080fd5b505af1158015613305573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613329919081019061497e565b979650505050505050565b600e546001600160a01b031681565b600061334d6135be565b6001600160a01b031663f5adc4f56040518163ffffffff1660e01b815260040160206040518083038186803b15801561338557600080fd5b505afa158015613399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119fc9190810190614942565b631c1554d160e21b81565b6002546001600160a01b031633148015906133ee57506003546001600160a01b03163314155b801561340557506004546001600160a01b03163314155b1561341d57600480546001600160a01b031916331790555b565b6002546040516001600160a01b039091169063907dff9790613445908490602001615773565b6040516020818303038152906040526003604051613462906154d0565b60405180910390206134738861364c565b61347c8861364c565b60006040518763ffffffff1660e01b8152600401610f5296959493929190615874565b6134a761412c565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156134df57600080fd5b505afa1580156134f3573d6000803e3d6000fd5b50505050565b600d546001600160a01b03166135215760405162461bcd60e51b8152600401611574906158da565b600d5460405163cb2505cf60e01b81526001600160a01b039091169063cb2505cf9061355190849060040161551d565b60206040518083038186803b15801561356957600080fd5b505afa15801561357d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135a19190810190614942565b156128f25760405162461bcd60e51b815260040161157490615a6a565b60006119fc6524b9b9bab2b960d11b613994565b60405162461bcd60e51b81526004016115749061599a565b6000546001600160a01b0316331461341d5760405162461bcd60e51b8152600401611574906159fa565b61361c613658565b6001600160a01b0316336001600160a01b03161461341d5760405162461bcd60e51b8152600401611574906159ea565b6001600160a01b031690565b60006119fc6822bc31b430b733b2b960b91b613994565b61367761412c565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b1580156134df57600080fd5b6000806136ba614146565b6001600160a01b0316638b3f8088856040518263ffffffff1660e01b81526004016136e5919061551d565b604080518083038186803b1580156136fc57600080fd5b505afa158015613710573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137349190810190614adf565b5090508015610ee4576000806137486135be565b6005546040516370a0823160e01b81526001600160a01b0392831692638d542eb3928a929116906370a082319061378390849060040161551d565b60206040518083038186803b15801561379b57600080fd5b505afa1580156137af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506137d3919081019061497e565b6040518363ffffffff1660e01b81526004016137f0929190615641565b604080518083038186803b15801561380757600080fd5b505afa15801561381b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061383f9190810190614aaf565b91509150818511156138635760405162461bcd60e51b815260040161157490615a2a565b80156138815760405162461bcd60e51b8152600401611574906159ba565b50600195945050505050565b600554604051636eb1769f60e11b81526000916001600160a01b03169063da46098c908690889061392e908790869063dd62ed3e906138d29087908790600401615554565b60206040518083038186803b1580156138ea57600080fd5b505afa1580156138fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613922919081019061497e565b9063ffffffff613b6716565b6040518463ffffffff1660e01b815260040161394c93929190615619565b600060405180830381600087803b15801561396657600080fd5b505af115801561397a573d6000803e3d6000fd5b50505050613989848484614164565b90505b949350505050565b6000818152600c602090815260408083205490516001600160a01b0390911691821515916139c4918691016154b0565b60405160208183030381529060405290612a0a5760405162461bcd60e51b815260040161157491906158c9565b6139f961412c565b6001600160a01b0316632cb28bd883836040518363ffffffff1660e01b8152600401613a269291906157aa565b60006040518083038186803b158015613a3e57600080fd5b505afa1580156121d0573d6000803e3d6000fd5b600082820183811015612dff5760405162461bcd60e51b81526004016115749061594a565b6002546040516001600160a01b039091169063907dff9790613a9d908490602001615773565b604051602081830303815290604052600360405161346290615512565b60006119fc722932bbb0b93239a234b9ba3934b13aba34b7b760691b613994565b60006119fc6d537570706c795363686564756c6560901b613994565b60006119fc7021b937b9b9a1b430b4b726b0b730b3b2b960791b613994565b6000610eea82633b9aca0063ffffffff61431f16565b6000612dff83836b033b2e3c9fd0803ce8000000614359565b60006305f5e10082046005600a820610613b5d57600a015b600a900492915050565b600082821115613b895760405162461bcd60e51b81526004016115749061598a565b50900390565b60408051600680825260e082019092526060916020820160c0803883390190505090506f5065726946696e616e6365537461746560801b81600081518110613bd357fe5b6020026020010181815250506b53797374656d53746174757360a01b81600181518110613bfc57fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600281518110613c2257fe5b6020026020010181815250506524b9b9bab2b960d11b81600381518110613c4557fe5b602002602001018181525050722932bbb0b93239a234b9ba3934b13aba34b7b760691b81600481518110613c7557fe5b6020026020010181815250506d53797374656d53657474696e677360901b81600581518110613ca057fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015613cdf578160200160208202803883390190505b50905060005b8351811015613d2157838181518110613cfa57fe5b6020026020010151828281518110613d0e57fe5b6020908102919091010152600101613ce5565b5060005b8251811015612a0a57828181518110613d3a57fe5b6020026020010151828286510181518110613d5157fe5b6020908102919091010152600101613d25565b60006119fc6d53797374656d53657474696e677360901b613994565b6005546040516370a0823160e01b81526000916001600160a01b03169063b46310f6908590613dc190869085906370a08231906138d290869060040161551d565b6040518363ffffffff1660e01b8152600401613dde929190615641565b600060405180830381600087803b158015613df857600080fd5b505af1158015613e0c573d6000803e3d6000fd5b505050506116a483600084613a77565b6002546001600160a01b03163314801590613e4257506003546001600160a01b03163314155b8015613e5957506004546001600160a01b03163314155b15613e7157600480546001600160a01b031916331790555b6000546004546001600160a01b0390811691161461341d5760405162461bcd60e51b81526004016115749061590a565b6002546040516001600160a01b039091169063907dff9790613ec790849060200161551d565b6040516020818303038152906040526001604051613ee4906154f1565b6040519081900381206001600160e01b031960e086901b1682526111eb939291600090819081906004016157e6565b600061398c848484614164565b601154604051631e1d164f60e01b8152600091829182916001600160a01b031690631e1d164f90613f55908790600401615773565b6101006040518083038186803b158015613f6e57600080fd5b505afa158015613f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613fa6919081019061485d565b505060045493955091935050506001600160a01b03808416911614613fdd5760405162461bcd60e51b81526004016115749061591a565b60115460405163484f80c560e11b81526001600160a01b039091169063909f018a9061400f90879085906004016157aa565b600060405180830381600087803b15801561402957600080fd5b505af115801561403d573d6000803e3d6000fd5b5050505061404b8282614395565b6140675760405162461bcd60e51b8152600401611574906159da565b5060019392505050565b6002546001600160a01b031633148061409457506003546001600160a01b031633145b61341d5760405162461bcd60e51b815260040161157490615a4a565b6002546040516001600160a01b039091169063907dff97906140da90869086908690602001615aa5565b60405160208183030381529060405260026040516140f7906154fc565b60405180910390206141088961364c565b6000806040518763ffffffff1660e01b815260040161284a9695949392919061583a565b60006119fc6b53797374656d53746174757360a01b613994565b60006119fc6f5065726946696e616e6365537461746560801b613994565b60006001600160a01b0383161580159061418757506001600160a01b0383163014155b80156141a157506002546001600160a01b03848116911614155b6141bd5760405162461bcd60e51b8152600401611574906158ea565b6001600160a01b0384166000908152600a602052604090205460ff16156141f65760405162461bcd60e51b815260040161157490615a7a565b6005546040516370a0823160e01b81526001600160a01b039091169063b46310f690869061423690869085906370a08231906138d290869060040161551d565b6040518363ffffffff1660e01b8152600401614253929190615641565b600060405180830381600087803b15801561426d57600080fd5b505af1158015614281573d6000803e3d6000fd5b50506005546040516370a0823160e01b81526001600160a01b03909116925063b46310f6915085906142c590869085906370a08231906115ed90869060040161551d565b6040518363ffffffff1660e01b81526004016142e2929190615641565b600060405180830381600087803b1580156142fc57600080fd5b505af1158015614310573d6000803e3d6000fd5b50505050614067848484613a77565b60008261432e57506000610eea565b8282028284828161433b57fe5b0414612dff5760405162461bcd60e51b815260040161157490615a0a565b600080600a8304614370868663ffffffff61431f16565b8161437757fe5b0490506005600a82061061438957600a015b600a9004949350505050565b6005546040516370a0823160e01b81526000916001600160a01b03169063b46310f690859061164990869085906370a08231906115ed90869060040161551d565b8035610eea81615bc8565b8051610eea81615bc8565b600082601f8301126143fd57600080fd5b815161441061440b82615af6565b615acf565b9150818183526020840193506020810190508385602084028201111561443557600080fd5b60005b83811015614461578161444b88826144fc565b8452506020928301929190910190600101614438565b5050505092915050565b600082601f83011261447c57600080fd5b815161448a61440b82615af6565b915081818352602084019350602081019050838560208402820111156144af57600080fd5b60005b8381101561446157816144c588826144fc565b84525060209283019291909101906001016144b2565b8035610eea81615bdc565b8051610eea81615bdc565b8035610eea81615be5565b8051610eea81615be5565b8051610eea81615bee565b8035610eea81615bee565b60006060828403121561452f57600080fd5b50919050565b60006060828403121561454757600080fd5b6145516060615acf565b9050600061455f84846144fc565b8252506020614570848483016144fc565b60208301525060406145848482850161459b565b60408301525092915050565b8035610eea81615bf7565b8051610eea81615bf7565b6000602082840312156145b857600080fd5b600061398c84846143d6565b6000602082840312156145d657600080fd5b600061398c84846143e1565b600080604083850312156145f557600080fd5b600061460185856143d6565b9250506020614612858286016143d6565b9150509250929050565b60008060006060848603121561463157600080fd5b600061463d86866143d6565b935050602061464e868287016143d6565b925050604061465f868287016144f1565b9150509250925092565b6000806040838503121561467c57600080fd5b600061468885856143d6565b9250506020614612858286016144db565b600080604083850312156146ac57600080fd5b60006146b885856143d6565b9250506020614612858286016144f1565b6000806000606084860312156146de57600080fd5b60006146ea86866143d6565b935050602061464e868287016144f1565b6000806000806080858703121561471157600080fd5b600061471d87876143d6565b945050602061472e878288016144f1565b935050604061473f878288016144f1565b9250506060614750878288016144f1565b91505092959194509250565b60008060008060008060c0878903121561477557600080fd5b600061478189896143d6565b965050602061479289828a016144f1565b95505060406147a389828a016144f1565b94505060606147b489828a016144f1565b93505060806147c589828a016143d6565b92505060a06147d689828a016144f1565b9150509295509295509295565b60008060008060008060c087890312156147fc57600080fd5b600061480889896143d6565b965050602061481989828a016144f1565b955050604061482a89828a016144f1565b945050606061483b89828a016144f1565b935050608061484c89828a016144f1565b92505060a06147d689828a016143d6565b600080600080600080610100878903121561487757600080fd5b600061488389896143e1565b965050602061489489828a016144fc565b95505060406148a589828a016144fc565b94505060606148b689828a016144fc565b93505060806148c789828a016144e6565b92505060a06147d689828a01614535565b6000602082840312156148ea57600080fd5b815167ffffffffffffffff81111561490157600080fd5b61398c848285016143ec565b60006020828403121561491f57600080fd5b815167ffffffffffffffff81111561493657600080fd5b61398c8482850161446b565b60006020828403121561495457600080fd5b600061398c84846144e6565b60006020828403121561497257600080fd5b600061398c84846144f1565b60006020828403121561499057600080fd5b600061398c84846144fc565b6000806000606084860312156149b157600080fd5b60006146ea86866144f1565b600080604083850312156149d057600080fd5b60006146b885856144f1565b600080600080600060a086880312156149f457600080fd5b6000614a0088886144f1565b9550506020614a11888289016144f1565b9450506040614a22888289016144f1565b9350506060614a33888289016143d6565b9250506080614a44888289016144f1565b9150509295509295909350565b60008060008060808587031215614a6757600080fd5b600061471d87876144f1565b600060208284031215614a8557600080fd5b600061398c8484614507565b600060208284031215614aa357600080fd5b600061398c8484614512565b60008060408385031215614ac257600080fd5b6000614ace85856144fc565b9250506020614612858286016144e6565b60008060408385031215614af257600080fd5b6000614afe85856144fc565b9250506020614612858286016144fc565b600080600060a08486031215614b2457600080fd5b6000614b3086866144f1565b9350506020614b41868287016144f1565b925050604061465f8682870161451d565b600080600060608486031215614b6757600080fd5b6000614b7386866144fc565b9350506020614b84868287016144fc565b925050604061465f868287016144fc565b6000614ba18383614c23565b505060200190565b614bb281615b6e565b82525050565b614bb281615b4d565b6000614bcc82615b1d565b614bd68185615b21565b9350614be183615b17565b8060005b83811015614c0f578151614bf98882614b95565b9750614c0483615b17565b925050600101614be5565b509495945050505050565b614bb281615b58565b614bb2816113b3565b614bb2614c38826113b3565b6113b3565b6000614c4882615b1d565b614c528185615b21565b9350614c62818560208601615b92565b614c6b81615bbe565b9093019392505050565b614bb281615b5d565b614bb281615b79565b614bb281615b87565b6000614c9d601383615b21565b7210dbdb9d1c9858dd081b9bdd081cd95d1d1959606a1b815260200192915050565b6000614ccc601f83615b21565b7f43616e6e6f74207472616e7366657220746f2074686973206164647265737300815260200192915050565b6000614d05603583615b21565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000614d5c601383615b21565b7227bbb732b91037b7363c90333ab731ba34b7b760691b815260200192915050565b6000614d8b600c83615b21565b6b436865636b4164647265737360a01b815260200192915050565b6000614db3601683615b21565b752737902932bbb0b93239a234b9ba3934b13aba34b7b760511b815260200192915050565b6000614de5600b83615b21565b6a4e6f436c61696d61626c6560a81b815260200192915050565b6000614e0c601b83615b21565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000614e45600883615b21565b67109d5c9b91985a5b60c21b815260200192915050565b6000614e69601283615b21565b714e6f206d696e7461626c6520737570706c7960701b815260200192915050565b6000614e97601483615b21565b7313995d1ddbdc9ac81c985d19481a5b9d985b1a5960621b815260200192915050565b6000614ec7602883615b2a565b7f45786368616e67655265636c61696d28616464726573732c627974657333322c81526775696e743235362960c01b602082015260280192915050565b6000614f11603e83615b2a565b7f50796e746845786368616e676528616464726573732c627974657333322c756981527f6e743235362c627974657333322c75696e743235362c616464726573732900006020820152603e0192915050565b6000614f70601e83615b21565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000614fa9601183615b2a565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000614fd6600983615b21565b6821b0b713ba10393ab760b91b815260200192915050565b6000614ffb600a83615b21565b6937b7363ca6b4b73a32b960b11b815260200192915050565b6000615021600c83615b21565b6b14985d19481a5b9d985b1a5960a21b815260200192915050565b6000615049600983615b21565b6830206164647265737360b81b815260200192915050565b600061506e600883615b21565b67135a5b9d11985a5b60c21b815260200192915050565b6000615092600d83615b21565b6c27b7363ca2bc31b430b733b2b960991b815260200192915050565b60006150bb602f83615b21565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b600061510c602183615b2a565b7f417070726f76616c28616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b600061514f602183615b21565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000615192602783615b2a565b7f45786368616e676552656261746528616464726573732c627974657333322c75815266696e743235362960c81b602082015260270192915050565b60006151db602983615b2a565b7f45786368616e6765547261636b696e6728627974657333322c627974657333328152682c75696e743235362960b81b602082015260290192915050565b6000615226601a83615b2a565b7f546f6b656e5374617465557064617465642861646472657373290000000000008152601a0192915050565b600061525f603283615b2a565b7f4163636f756e744c69717569646174656428616464726573732c75696e743235815271362c75696e743235362c616464726573732960701b602082015260320192915050565b60006152b3600883615b21565b670c08185b5bdd5b9d60c21b815260200192915050565b60006152d7601983615b2a565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000615310601283615b21565b71436865636b205472616e7366657261626c6560701b815260200192915050565b600061533e600b83615b21565b6a10da1958dad05b5bdd5b9d60aa1b815260200192915050565b6000615365602183615b2a565b7f5472616e7366657228616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b60006153a8601783615b21565b7f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000815260200192915050565b60006153e1600583615b21565b644e6f46656560d81b815260200192915050565b6000615402600b83615b21565b6a109b1858dadb1a5cdd195960aa1b815260200192915050565b6000615429600f83615b21565b6e426c6f636b6564206164647265737360881b815260200192915050565b606082016154558280615b2f565b61545f8482614c23565b5061546d6020830183615b2f565b61547a6020850182614c23565b506154886040830183615b3e565b6134f360408501825b614bb281615b68565b6000610eea82614eba565b6000610eea82614f04565b60006154bb82614f9c565b91506154c78284614c2c565b50602001919050565b6000610eea826150ff565b6000610eea82615185565b6000610eea826151ce565b6000610eea82615219565b6000610eea82615252565b60006154bb826152ca565b6000610eea82615358565b60208101610eea8284614bb8565b60208101610eea8284614ba9565b604081016155478285614ba9565b612dff6020830184614c23565b604081016155628285614bb8565b612dff6020830184614bb8565b60a0810161557d8288614bb8565b61558a6020830187614bb8565b6155976040830186614c23565b6155a46060830185614c23565b6112746080830184614c23565b60e081016155bf828a614bb8565b6155cc6020830189614bb8565b6155d96040830188614c23565b6155e66060830187614c23565b6155f36080830186614c23565b61560060a0830185614bb8565b61560d60c0830184614c23565b98975050505050505050565b606081016156278286614bb8565b6156346020830185614bb8565b61398c6040830184614c23565b604081016155478285614bb8565b6060810161565d8286614bb8565b6156346020830185614c23565b60a081016156788288614bb8565b6156856020830187614c23565b6156926040830186614c23565b61569f6060830185614c23565b6112746080830184614bb8565b60e081016156ba828a614bb8565b6156c76020830189614c23565b6156d46040830188614c23565b6156e16060830187614c23565b6155f36080830186614bb8565b606081016156fc8286614bb8565b6157096020830185614c23565b61398c6040830184614bb8565b60c081016157248287614bb8565b6157316020830186614c23565b61573e6040830185614c23565b61574b6060830184615447565b95945050505050565b60208082528101612dff8184614bc1565b60208101610eea8284614c1a565b60208101610eea8284614c23565b604081016155628285614c23565b6040810161579d8285614c23565b612dff6020830184614c1a565b604081016155478285614c23565b604081016157c68285614c23565b818103602083015261398c8184614c3d565b60a081016156788288614c23565b60c080825281016157f78189614c3d565b90506158066020830188614c87565b6158136040830187614c23565b6158206060830186614c7e565b61582d6080830185614c7e565b61332960a0830184614c7e565b60c0808252810161584b8189614c3d565b905061585a6020830188614c87565b6158676040830187614c23565b6158206060830186614c23565b60c080825281016158858189614c3d565b90506158946020830188614c87565b6158a16040830187614c23565b6158ae6060830186614c23565b61582d6080830185614c23565b60208101610eea8284614c75565b60208082528101612dff8184614c3d565b60208082528101610eea81614c90565b60208082528101610eea81614cbf565b60208082528101610eea81614cf8565b60208082528101610eea81614d4f565b60208082528101610eea81614d7e565b60208082528101610eea81614da6565b60208082528101610eea81614dd8565b60208082528101610eea81614dff565b60208082528101610eea81614e38565b60208082528101610eea81614e5c565b60208082528101610eea81614e8a565b60208082528101610eea81614f63565b60208082528101610eea81614fc9565b60208082528101610eea81614fee565b60208082528101610eea81615014565b60208082528101610eea8161503c565b60208082528101610eea81615061565b60208082528101610eea81615085565b60208082528101610eea816150ae565b60208082528101610eea81615142565b60208082528101610eea816152a6565b60208082528101610eea81615303565b60208082528101610eea81615331565b60208082528101610eea8161539b565b60208082528101610eea816153d4565b60208082528101610eea816153f5565b60208082528101610eea8161541c565b60408101615a988285614c23565b612dff6020830184614c75565b606081016156fc8286614c23565b6060810161565d8286614c23565b60208101610eea8284615491565b60405181810167ffffffffffffffff81118282101715615aee57600080fd5b604052919050565b600067ffffffffffffffff821115615b0d57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b919050565b6000612dff60208401846144f1565b6000612dff6020840184614590565b6000610eea8261364c565b151590565b6000610eea82615b4d565b60ff1690565b6000610eea82615b5d565b6000610eea614c38836113b3565b6000610eea826113b3565b60005b83811015615bad578181015183820152602001615b95565b838111156134f35750506000910152565b601f01601f191690565b615bd181615b4d565b81146128f257600080fd5b615bd181615b58565b615bd1816113b3565b615bd181615b5d565b615bd181615b6856fea365627a7a723158209c86de89107ca035e278eac9a6400ef3436a1df836e7004e9f96f5d002ca2e6d6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_totalSupply",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_minterRole",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_blacklistManager",
							"type": "address"
						},
						{
							"internalType": "address payable",
							"name": "_bridgeValidator",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periRedeemed",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						}
					],
					"name": "AccountLiquidated",
					"type": "event",
					"signature": "0xaadb11d74982254be0fa96d24a08db29d68f446bc96b3092a9c9120b5c89caf2"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event",
					"signature": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "ExchangeRebate",
					"type": "event",
					"signature": "0x93751433c6897553c8950f14ccc193ccffb8f539f7421ffde9af83b9b7dae1a8"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "ExchangeReclaim",
					"type": "event",
					"signature": "0x491df6adf9cabe8ca514806effd6b6b6475572dc88fe4b8b58d0a20ecf45e105"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						}
					],
					"name": "ExchangeTracking",
					"type": "event",
					"signature": "0x9b39fce028952c685c9c73b2f5f825f8e369fbdaca2bec73c4abb52c2abc123c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event",
					"signature": "0xfc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "fromCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						}
					],
					"name": "PynthExchange",
					"type": "event",
					"signature": "0x4a0ae13ecb43c31fb105d00f9bb9bb573465fe44c0e86d51dc9b6c36090f6e28"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTokenState",
							"type": "address"
						}
					],
					"name": "TokenStateUpdated",
					"type": "event",
					"signature": "0xa538c4dcfe9fb148efee2952bafe34982d2d07d5fbb38ae5b44abf659a46bfd8"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event",
					"signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "DECIMALS",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2e0f2625"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TOKEN_NAME",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x18821400"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TOKEN_SYMBOL",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2a905318"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdd62ed3e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "amountsToFitClaimable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "burnAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exTokenAmountToUnstake",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xbecf5ff8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "anyPynthOrPERIRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf5adc4f5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x095ea7b3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableCurrencyKeys",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x72cb051f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availablePynthCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd99947de"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "availablePynths",
					"outputs": [
						{
							"internalType": "contract IPynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9df95f9f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x70a08231"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "blacklistManager",
					"outputs": [
						{
							"internalType": "contract IBlacklistManager",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd9dbf657"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "bridgeState",
					"outputs": [
						{
							"internalType": "contract IBridgeState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4466ec2c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "bridgeValidator",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe22760f7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_burnAmount",
							"type": "uint256"
						}
					],
					"name": "burnPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0a057b76"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "burnSecondary",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xedef719a"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "claimAllBridgedAmounts",
					"outputs": [],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0xaf5a5e4c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "collateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa5fdc5de"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa311c7c2"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "debtBalanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd37c4d8b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x313ce567"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "emitExchangeRebate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6f01a986"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "emitExchangeReclaim",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xace88afd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						}
					],
					"name": "emitExchangeTracking",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xddd03a3f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "fromCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "toCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						}
					],
					"name": "emitPynthExchange",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1b99084c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xee52a2f3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchangeOnBehalf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc836fa0a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "originator",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeOnBehalfWithTracking",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x91e56b68"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "originator",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithTracking",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x30ead760"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithVirtual",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "contract IVirtualPynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0e30963c"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "exit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe9fad8ee"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "fitToClaimable",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x50d0573c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_target",
							"type": "address"
						}
					],
					"name": "forceFitToClaimable",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2190764c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_contractName",
							"type": "bytes32"
						}
					],
					"name": "getRequiredAddress",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2bc93ad6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "inflationMinter",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x321ea17c"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "inflationalMint",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7a725c68"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "integrationProxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9cbdaeb6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "isWaitingPeriod",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1fce304d"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "issueMaxPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8e2ac0ea"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_issueAmount",
							"type": "uint256"
						}
					],
					"name": "issuePynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x534f079c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						}
					],
					"name": "issuePynthsToMaxQuota",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x85d18d36"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "pusdAmount",
							"type": "uint256"
						}
					],
					"name": "liquidateDelinquentAccount",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe6203ed1"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "maxIssuablePynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x55182ccb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd67bdd25"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_user",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "mint",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x40c10f19"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "mintSecondary",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x666ed4f1"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "mintSecondaryRewards",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd8a1f76f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minterRole",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf084219e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x06fdde03"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_destChainId",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "r",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "s",
									"type": "bytes32"
								},
								{
									"internalType": "uint8",
									"name": "v",
									"type": "uint8"
								}
							],
							"internalType": "struct IBridgeState.Signature",
							"name": "_sign",
							"type": "tuple"
						}
					],
					"name": "overchainTransfer",
					"outputs": [],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0x9a26669e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "pUSD",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf9eea80c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xec556889"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "pynths",
					"outputs": [
						{
							"internalType": "contract IPynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x57ad4663"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "pynthAddress",
							"type": "address"
						}
					],
					"name": "pynthsByAddress",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc9a2f3ad"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "remainingIssuablePynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyIssued",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalSystemDebt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3b09280a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_blacklistManager",
							"type": "address"
						}
					],
					"name": "setBlacklistManager",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa56c62cf"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_target",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "_set",
							"type": "bool"
						}
					],
					"name": "setBlockedAddress",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x92d5011f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_newBridgeState",
							"type": "address"
						}
					],
					"name": "setBridgeState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x440c6778"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_bridgeValidator",
							"type": "address"
						}
					],
					"name": "setBridgeValidator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x842efb01"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_newInflationMinter",
							"type": "address"
						}
					],
					"name": "setInflationMinter",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe12c4cea"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_integrationProxy",
							"type": "address"
						}
					],
					"name": "setIntegrationProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x131b0ae7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbc67f832"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_newMinter",
							"type": "address"
						}
					],
					"name": "setMinterRole",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x945d1229"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x97107d6d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						}
					],
					"name": "setTokenState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x9f769807"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "settle",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "refunded",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntriesSettled",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x987757dd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x95d89b41"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tokenState",
					"outputs": [
						{
							"internalType": "contract TokenState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe90dd9e2"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "totalIssuedPynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalIssued",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd3a71202"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "totalIssuedPynthsExcludeEtherCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalIssued",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd6980ba1"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x18160ddd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa9059cbb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x23b872dd"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "transferablePeriFinance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "transferable",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe3c3af98"
				}
			],
			"source": {
				"keccak256": "0xe73be95adef7269666719703c89f4b3199059bb043ba014185eb3a32d1b1e5c0",
				"urls": [
					"bzz-raw://3442d8b4eb698ae448a2698ead7f8c4ebd2c9d9b456f24078bb271bd051d0e2d",
					"dweb:/ipfs/QmXBqgAK4yy83w3b1qCZbzPc9kvkhwDYxuUZXKEmwzAnfU"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"PeriFinanceToEthereum.sol": "PeriFinanceToEthereum"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"PeriFinanceToEthereum.sol": {
						"keccak256": "0xe73be95adef7269666719703c89f4b3199059bb043ba014185eb3a32d1b1e5c0",
						"urls": [
							"bzz-raw://3442d8b4eb698ae448a2698ead7f8c4ebd2c9d9b456f24078bb271bd051d0e2d",
							"dweb:/ipfs/QmXBqgAK4yy83w3b1qCZbzPc9kvkhwDYxuUZXKEmwzAnfU"
						]
					}
				},
				"version": 1
			}
		},
		"BridgeState": {
			"bytecode": "6080604052600a600c5561012c600d556000600e556000600f553480156200002657600080fd5b5060405162002d8238038062002d828339810160408190526200004991620002d9565b80826001600160a01b0381166200007d5760405162461bcd60e51b81526004016200007490620003e6565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000ca918490620003ae565b60405180910390a1506000546001600160a01b0316620000fe5760405162461bcd60e51b81526004016200007490620003d4565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03906200014b9083906200039e565b60405180910390a150604051806080016040528060008152602001428152602001600060405190808252806020026020018201604052801562000198578160200160208202803883390190505b5081526000602091820181905280526008815281517f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7908155828201517f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c85560408301518051919262000231927f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c9929091019062000256565b50606091909101516003909101805460ff191691151591909117905550620004419050565b82805482825590600052602060002090810192821562000294579160200282015b828111156200029457825182559160200191906001019062000277565b50620002a2929150620002a6565b5090565b620002c391905b80821115620002a25760008155600101620002ad565b90565b8051620002d38162000427565b92915050565b60008060408385031215620002ed57600080fd5b6000620002fb8585620002c6565b92505060206200030e85828601620002c6565b9150509250929050565b620003238162000413565b82525050565b620003238162000401565b600062000343601183620003f8565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b600062000372601983620003f8565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60208101620002d3828462000329565b60408101620003be828562000318565b620003cd602083018462000329565b9392505050565b60208082528101620002d38162000334565b60208082528101620002d38162000363565b90815260200190565b60006001600160a01b038216620002d3565b6000620002d3826000620002d38262000401565b620004328162000401565b81146200043e57600080fd5b50565b61293180620004516000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c80636455c67f116101465780639c50a136116100c3578063da4172ef11610087578063da4172ef146104d6578063e650630d146104de578063eeaf19ad146104e6578063f8fc08b9146104ee578063fc9ff12114610501578063fe9e903f1461050957610253565b80639c50a13614610498578063aa200217146104ab578063aefc4ccb146104be578063b470aade146104c6578063b8c4dd57146104ce57610253565b80637c2d6e011161010a5780637c2d6e01146104445780637e3fd16a146104575780638da5cb5b1461046a578063909f018a1461047257806394a8b4191461048557610253565b80636455c67f146103fb578063663c2dae1461040e5780636a95131614610416578063735b8bbc1461042957806379ba50971461043c57610253565b80633a01662a116101d457806350db3a011161019857806350db3a011461039a57806352f445ca146103ad57806353a47bb7146103c057806359e045aa146103d557806362f0c06b146103e857610253565b80633a01662a1461033957806340a997b61461034c578063481dd7e8146103705780634a73d2311461025857806350b2e57d1461039257610253565b80631e1d164f1161021b5780631e1d164f146102d157806320c39d1c146102f657806336870f4d146102fe5780633711991e1461031e5780633851eb0a1461032657610253565b806303a97279146102585780630a2da178146102815780631627540c14610294578063186f44ed146102a95780631a8ec357146102c9575b600080fd5b61026b610266366004611c45565b61051c565b6040516102789190612645565b60405180910390f35b61026b61028f366004611c27565b610592565b6102a76102a2366004611c27565b6105ff565b005b6102bc6102b7366004611c7f565b61065d565b60405161027891906127e1565b61026b610698565b6102e46102df366004611f35565b6106f1565b6040516102789695949392919061259e565b6102bc61076f565b61031161030c366004611ea4565b610775565b6040516102789190612656565b6102bc6107a0565b61026b610334366004611f35565b6107a6565b610311610347366004611f83565b610809565b61035f61035a366004611f35565b610829565b6040516102789594939291906125f9565b61038361037e366004611f35565b610899565b6040516102789392919061280a565b6102bc6108bd565b6102a76103a8366004611d2d565b6108c3565b6102a76103bb366004611c27565b610946565b6103c8610999565b6040516102789190612575565b6102bc6103e3366004611f83565b6109a8565b6102a76103f6366004611ccc565b6109c5565b6102a7610409366004611f35565b610a0f565b6102bc610bed565b6102a7610424366004611ed4565b610bf3565b6102bc610437366004611c45565b610c5d565b6102a7610c8b565b6102a7610452366004611f35565b610d27565b6102a7610465366004611da2565b610d54565b6103c8610e70565b6102a7610480366004611f83565b610e7f565b6102bc610493366004611f83565b61109a565b6102a76104a6366004611f53565b6110b7565b6103116104b9366004611f35565b611117565b6103c861112c565b6102bc61113b565b6102bc611141565b6102bc611147565b6102a761114d565b6102bc6111c4565b6103116104fc366004611ea4565b6111ca565b6102bc6111ea565b6102a7610517366004611f35565b6111f0565b6001600160a01b038216600090815260056020908152604080832084845282529182902080548351818402810184019094528084526060939283018282801561058457602002820191906000526020600020905b815481526020019060010190808311610570575b505050505090505b92915050565b6001600160a01b0381166000908152600660209081526040918290208054835181840281018401909452808452606093928301828280156105f257602002820191906000526020600020905b8154815260200190600101908083116105de575b505050505090505b919050565b61060761121d565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610652908390612575565b60405180910390a150565b6005602052826000526040600020602052816000526040600020818154811061068257fe5b9060005260206000200160009250925050505481565b606060098054806020026020016040519081016040528092919081815260200182805480156106e657602002820191906000526020600020905b8154815260200190600101908083116106d2575b505050505090505b90565b600a81815481106106fe57fe5b600091825260209182902060089091020180546001820154600283015460038401546004850154604080516060810182526005880154815260068801549881019890985260079096015460ff908116968801969096526001600160a01b039094169650919490939192919091169086565b600a5490565b60009182526003602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600f5481565b6000818152600860209081526040918290206002018054835181840281018401909452808452606093928301828280156105f257602002820191906000526020600020908154815260200190600101908083116105de5750505050509050919050565b600760209081526000928352604080842090915290825290205460ff1681565b600b818154811061083657fe5b60009182526020918290206007909102018054600182015460028301546003840154604080516060810182526004870154815260058701549781019790975260069095015460ff16948601949094526001600160a01b0390921694509290919085565b60086020526000908152604090208054600182015460039092015490919060ff1683565b600b5490565b3360009081526000805160206128cf833981519152602052604090205460ff166109085760405162461bcd60e51b81526004016108ff906127c1565b60405180910390fd5b6109238585858561091e36879003870187611f17565b611247565b61093f5760405162461bcd60e51b81526004016108ff90612791565b5050505050565b61094e61121d565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390610652908390612575565b6001546001600160a01b031681565b601160209081526000928352604080842090915290825290205481565b6002546001600160a01b031633146109ef5760405162461bcd60e51b81526004016108ff90612751565b610a09848484610a0436869003860186611f17565b6114aa565b50505050565b3360009081526000805160206128cf833981519152602052604090205460ff16610a4b5760405162461bcd60e51b81526004016108ff906127c1565b600081815260086020526040902060010154610a795760405162461bcd60e51b81526004016108ff906126f1565b610a82816117ad565b610a9e5760405162461bcd60e51b81526004016108ff90612761565b60008181526008602052604090206003015460ff1615610ad05760405162461bcd60e51b81526004016108ff906127b1565b60096000805b8254811015610b0d5783838281548110610aec57fe5b90600052602060002001541415610b0557809150610b0d565b600101610ad6565b50815460001901811015610b6657805b825460001901811015610b6457828160010181548110610b3957fe5b9060005260206000200154838281548110610b5057fe5b600091825260209091200155600101610b1d565b505b815482906000198101908110610b7857fe5b60009182526020822001558154610b93836000198301611a6f565b5060008381526008602052604090819020600301805460ff19166001179055517f7ade90a30921855a6ca1079e6ef718e03ede0902f7ba6bc5db995b3259299c6090610be09085906127e1565b60405180910390a1505050565b600e5490565b610bfb61121d565b60008381526003602090815260408083206001600160a01b038616845290915290819020805460ff1916831515179055517f332a909457a11d98527bfc5a73912903b22c710ff0f6fd05d8fbec4330de728990610be090859085908590612664565b60066020528160005260406000208181548110610c7657fe5b90600052602060002001600091509150505481565b6001546001600160a01b03163314610cb55760405162461bcd60e51b81526004016108ff906126c1565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610cf8926001600160a01b0391821692911690612583565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b610d2f61121d565b60008111610d4f5760405162461bcd60e51b81526004016108ff90612721565b600d55565b3360009081526000805160206128cf833981519152602052604090205460ff16610d905760405162461bcd60e51b81526004016108ff906127c1565b8689148015610d9e57508489145b8015610da957508289145b8015610db457508089145b610dd05760405162461bcd60e51b81526004016108ff90612731565b60005b89811015610e6357610e5a8b8b83818110610dea57fe5b9050602002016020610dff9190810190611c27565b8a8a84818110610e0b57fe5b90506020020135898985818110610e1e57fe5b90506020020135888886818110610e3157fe5b90506020020135878787818110610e4457fe5b90506060020180360361091e9190810190611f17565b50600101610dd3565b5050505050505050505050565b6000546001600160a01b031681565b6002546001600160a01b03163314610ea95760405162461bcd60e51b81526004016108ff90612751565b6000600a8381548110610eb857fe5b60009182526020909120600890910201600481015490915060ff1615610ef05760405162461bcd60e51b81526004016108ff906127a1565b8054604051610f40916001600160a01b031690610f11908590602001612569565b60408051601f19818403018152919052805160209091012060058401546006850154600786015460ff166117f5565b610f5c5760405162461bcd60e51b81526004016108ff90612781565b60048101805460ff19166001179055600f54610f7e908363ffffffff61182216565b600f556040517f1dc67d0d3096a397c2e4b90881a4423dd7e4de587a85153ea174286382463c2790610fb19085906127e1565b60405180910390a180546001600160a01b0316600090815260066020526040812090805b825481101561100c5785838281548110610feb57fe5b906000526020600020015414156110045780915061100c565b600101610fd5565b5081546000190181101561106557805b8254600019018110156110635782816001018154811061103857fe5b906000526020600020015483828154811061104f57fe5b60009182526020909120015560010161101c565b505b81548290600019810190811061107757fe5b60009182526020822001558154611092836000198301611a6f565b505050505050565b600091825260116020908152604080842092845291905290205490565b6110bf61121d565b60008281526004602052604090819020805460ff1916831515179055517fa6159d868cefcb0936fdbddf19e6303992256944fd4ea432eb0d533309aaa58c9061110b90849084906127ef565b60405180910390a15050565b60046020526000908152604090205460ff1681565b6002546001600160a01b031681565b600d5481565b600c5481565b60105481565b3360009081526000805160206128cf833981519152602052604090205460ff166111895760405162461bcd60e51b81526004016108ff906127c1565b6010546000908152600860205260409020600201546111ba5760405162461bcd60e51b81526004016108ff906127d1565b6111c261184e565b565b600e5481565b600360209081526000928352604080842090915290825290205460ff1681565b600f5490565b6111f861121d565b600081116112185760405162461bcd60e51b81526004016108ff90612741565b600c55565b6000546001600160a01b031633146111c25760405162461bcd60e51b81526004016108ff90612711565b600083815260076020908152604080832085845290915281205460ff16156112815760405162461bcd60e51b81526004016108ff90612771565b600160076000868152602001908152602001600020600085815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600a805490509050600a6040518060c00160405280896001600160a01b03168152602001888152602001878152602001868152602001600015158152602001858152509080600181540180825580915050906001820390600052602060002090600802016000909192909190915060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555060a082015181600501600082015181600001556020820151816001015560408201518160020160006101000a81548160ff021916908360ff160217905550505050505060066000886001600160a01b03166001600160a01b0316815260200190815260200160002081908060018154018082558091505090600182039060005260206000200160009091929091909150555061146d866011600080600181111561143f57fe5b815260200190815260200160002060008881526020019081526020016000205461182290919063ffffffff16565b60008681527f4ad3b33220dddc71b994a52d72c06b10862965f7d926534c05c00fb7e819e7b7602052604090205550600190505b95945050505050565b60008281526004602052604090205460ff166114d85760405162461bcd60e51b81526004016108ff90612701565b600b80546001600160a01b03868116600081815260056020908152604080832060108054855290835281842080546001808201835591865284862001889055825160a0810184529586528584018c81528684018c8152925460608801908152608088018c81528b549384018c559a90965295517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9600790920291820180546001600160a01b031916919098161790965593517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dba86015592517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbb85015590517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbc840155935180517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbd840155938401517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbe83015592909201517f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01dbf909201805460ff191660ff90931692909217909155600e546116929085611822565b600e5560008381527f17bc176d2408558f6e4111feebc3cab4e16b63e967be91cde721f4c8a488b55260205260409020546116d3908563ffffffff61182216565b60008481527f17bc176d2408558f6e4111feebc3cab4e16b63e967be91cde721f4c8a488b55260209081526040808320939093556010548252600890522060020154611732576010546000908152600860205260409020426001909101555b60108054600090815260086020908152604080832060020180546001810182559084529190922001839055905490516001600160a01b038716917f87d832bd33d2f45e5e10d77d6bb119af690faef79aa2e4b36ca7b953baf472719161179d91889188918791612825565b60405180910390a261093f611950565b6000805b6009548110156117ec5782600982815481106117c957fe5b906000526020600020015414156117e45760019150506105fa565b6001016117b1565b50600092915050565b600061180385858585611965565b6001600160a01b0316866001600160a01b031614905095945050505050565b6000828201838110156118475760405162461bcd60e51b81526004016108ff906126d1565b9392505050565b601054600980546001810182556000919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af018190556040517f5263beccfd97c2947207bf7254d7c0c216431d4b9cea8c9b3371e8187020851b916118b4916127e1565b60405180910390a16010546118d090600163ffffffff61182216565b601081905560408051608081018252828152426020808301918252835160008082528183018652848601918252606085018190529586526008825293909420825181559051600182015591518051919361193292600285019290910190611a98565b50606091909101516003909101805460ff1916911515919091179055565b6119586119ec565b156111c2576111c261184e565b600080856040516020016119799190612549565b604051602081830303815290604052805190602001209050600181848787604051600081526020016040526040516119b4949392919061268c565b6020604051602081039080840390855afa1580156119d6573d6000803e3d6000fd5b505050602060405103519150505b949350505050565b60105460009081526008602052604081206001810154600c54600290920154909111611a1c5760019150506106ee565b600d54611a2f428363ffffffff611a4716565b1115611a3f5760019150506106ee565b600091505090565b600082821115611a695760405162461bcd60e51b81526004016108ff906126e1565b50900390565b815481835581811115611a9357600083815260209020611a93918101908301611ae3565b505050565b828054828255906000526020600020908101928215611ad3579160200282015b82811115611ad3578251825591602001919060010190611ab8565b50611adf929150611ae3565b5090565b6106ee91905b80821115611adf5760008155600101611ae9565b803561058c8161289c565b60008083601f840112611b1a57600080fd5b50813567ffffffffffffffff811115611b3257600080fd5b602083019150836020820283011115611b4a57600080fd5b9250929050565b60008083601f840112611b6357600080fd5b50813567ffffffffffffffff811115611b7b57600080fd5b602083019150836060820283011115611b4a57600080fd5b803561058c816128b3565b803561058c816128bc565b600060608284031215611bbb57600080fd5b50919050565b600060608284031215611bd357600080fd5b611bdd6060612840565b90506000611beb8484611b9e565b8252506020611bfc84848301611b9e565b6020830152506040611c1084828501611c1c565b60408301525092915050565b803561058c816128c5565b600060208284031215611c3957600080fd5b60006119e48484611afd565b60008060408385031215611c5857600080fd5b6000611c648585611afd565b9250506020611c7585828601611b9e565b9150509250929050565b600080600060608486031215611c9457600080fd5b6000611ca08686611afd565b9350506020611cb186828701611b9e565b9250506040611cc286828701611b9e565b9150509250925092565b60008060008060c08587031215611ce257600080fd5b6000611cee8787611afd565b9450506020611cff87828801611b9e565b9350506040611d1087828801611b9e565b9250506060611d2187828801611ba9565b91505092959194509250565b600080600080600060e08688031215611d4557600080fd5b6000611d518888611afd565b9550506020611d6288828901611b9e565b9450506040611d7388828901611b9e565b9350506060611d8488828901611b9e565b9250506080611d9588828901611ba9565b9150509295509295909350565b60008060008060008060008060008060a08b8d031215611dc157600080fd5b8a3567ffffffffffffffff811115611dd857600080fd5b611de48d828e01611b08565b9a509a505060208b013567ffffffffffffffff811115611e0357600080fd5b611e0f8d828e01611b08565b985098505060408b013567ffffffffffffffff811115611e2e57600080fd5b611e3a8d828e01611b08565b965096505060608b013567ffffffffffffffff811115611e5957600080fd5b611e658d828e01611b08565b945094505060808b013567ffffffffffffffff811115611e8457600080fd5b611e908d828e01611b51565b92509250509295989b9194979a5092959850565b60008060408385031215611eb757600080fd5b6000611ec38585611b9e565b9250506020611c7585828601611afd565b600080600060608486031215611ee957600080fd5b6000611ef58686611b9e565b9350506020611f0686828701611afd565b9250506040611cc286828701611b93565b600060608284031215611f2957600080fd5b60006119e48484611bc1565b600060208284031215611f4757600080fd5b60006119e48484611b9e565b60008060408385031215611f6657600080fd5b6000611f728585611b9e565b9250506020611c7585828601611b93565b60008060408385031215611f9657600080fd5b6000611c648585611b9e565b6000611fae8383612027565b505060200190565b611fbf8161287a565b82525050565b6000611fd08261286d565b611fda8185612871565b9350611fe583612867565b8060005b83811015612013578151611ffd8882611fa2565b975061200883612867565b925050600101611fe9565b509495945050505050565b611fbf81612885565b611fbf816106ee565b611fbf61203c826106ee565b6106ee565b600061204e603583612871565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006120a5601c836105fa565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c0192915050565b60006120de601b83612871565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000612117601e83612871565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000612150602183612871565b7f5468697320706572696f64206964206973206e6f7420737461727465642079658152601d60fa1b602082015260400192915050565b6000612193601683612871565b75496e76616c696420746172676574206e6574776f726b60501b815260200192915050565b60006121c5602f83612871565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000612216601383612871565b7254696d652063616e6e6f74206265207a65726f60681b815260200192915050565b6000612245601b83612871565b7f496e707574206c656e677468206973206e6f74206d6174636865640000000000815260200192915050565b600061227e601e83612871565b7f4e756d6265722073686f756c64206c6172676572207468616e207a65726f0000815260200192915050565b60006122b7603483612871565b7f4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e815273103832b93337b936903a3434b99030b1ba34b7b760611b602082015260400192915050565b600061230d602183612871565b7f506572696f64206973206e6f74206f6e207468652070726f63657373206c69738152601d60fa1b602082015260400192915050565b6000612350602b83612871565b7f5265717565737420696420697320616c7265616479207265676973746572656481526a081d1bc81a5b989bdd5b9960aa1b602082015260400192915050565b600061239d601d83612871565b7f746865207369676e6174757265206973206e6f74207665726966696564000000815260200192915050565b60006123d6601883612871565b7f417070656e6420696e626f756e64696e67206661696c65640000000000000000815260200192915050565b600061240f602883612871565b7f5468697320696e626f756e64696e672068617320616c7265616479206265656e8152670818db185a5b595960c21b602082015260400192915050565b6000612459602183612871565b7f506572696f642068617320616c7265616479206265656e2070726f63657373658152601960fa1b602082015260400192915050565b600061249c601783612871565b7f43616c6c6572206973206e6f742076616c696461746f72000000000000000000815260200192915050565b60006124d5602383612871565b7f4e6f206f7574626f756e64696e67207265717565737420697320696e207065728152621a5bd960ea1b602082015260400192915050565b8051606083019061251e8482612027565b5060208201516125316020850182612027565b506040820151610a0960408501825b611fbf81612896565b600061255482612098565b91506125608284612030565b50602001919050565b60006125608284612030565b6020810161058c8284611fb6565b604081016125918285611fb6565b6118476020830184611fb6565b61010081016125ad8289611fb6565b6125ba6020830188612027565b6125c76040830187612027565b6125d46060830186612027565b6125e1608083018561201e565b6125ee60a083018461250d565b979650505050505050565b60e081016126078288611fb6565b6126146020830187612027565b6126216040830186612027565b61262e6060830185612027565b61263b608083018461250d565b9695505050505050565b602080825281016118478184611fc5565b6020810161058c828461201e565b606081016126728286612027565b61267f6020830185611fb6565b6119e4604083018461201e565b6080810161269a8287612027565b6126a76020830186612540565b6126b46040830185612027565b6114a16060830184612027565b6020808252810161058c81612041565b6020808252810161058c816120d1565b6020808252810161058c8161210a565b6020808252810161058c81612143565b6020808252810161058c81612186565b6020808252810161058c816121b8565b6020808252810161058c81612209565b6020808252810161058c81612238565b6020808252810161058c81612271565b6020808252810161058c816122aa565b6020808252810161058c81612300565b6020808252810161058c81612343565b6020808252810161058c81612390565b6020808252810161058c816123c9565b6020808252810161058c81612402565b6020808252810161058c8161244c565b6020808252810161058c8161248f565b6020808252810161058c816124c8565b6020810161058c8284612027565b604081016127fd8285612027565b611847602083018461201e565b606081016128188286612027565b61267f6020830185612027565b608081016128338287612027565b6126a76020830186612027565b60405181810167ffffffffffffffff8111828210171561285f57600080fd5b604052919050565b60200190565b5190565b90815260200190565b600061058c8261288a565b151590565b6001600160a01b031690565b60ff1690565b6128a58161287a565b81146128b057600080fd5b50565b6128a581612885565b6128a5816106ee565b6128a58161289656fe6e26ed6241e2631dd5af774c1dcc7fd99eac19a8518cd3b9253a8b0c57950ec7a365627a7a7231582007ff990a075c098b41ab2be35a351672f15d014608952e7f7a4e182e1e0d8a336c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "srcChainId",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "srcOutboundingId",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "inboundId",
							"type": "uint256"
						}
					],
					"name": "InboundingAppended",
					"type": "event",
					"signature": "0x2ebeb3706ca5c1d47a81a4600f800f0a93e0504a8bae279764b4ef7bc7a83967"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "inboundId",
							"type": "uint256"
						}
					],
					"name": "InboundingClaimed",
					"type": "event",
					"signature": "0x1dc67d0d3096a397c2e4b90881a4423dd7e4de587a85153ea174286382463c27"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "chainId",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "changedTo",
							"type": "bool"
						}
					],
					"name": "NetworkStatusChanged",
					"type": "event",
					"signature": "0xa6159d868cefcb0936fdbddf19e6303992256944fd4ea432eb0d533309aaa58c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "destChainId",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "outboundId",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodId",
							"type": "uint256"
						}
					],
					"name": "OutboundingAppended",
					"type": "event",
					"signature": "0x87d832bd33d2f45e5e10d77d6bb119af690faef79aa2e4b36ca7b953baf47271"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodId",
							"type": "uint256"
						}
					],
					"name": "PeriodClosed",
					"type": "event",
					"signature": "0x5263beccfd97c2947207bf7254d7c0c216431d4b9cea8c9b3371e8187020851b"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodId",
							"type": "uint256"
						}
					],
					"name": "PeriodProcessed",
					"type": "event",
					"signature": "0x7ade90a30921855a6ca1079e6ef718e03ede0902f7ba6bc5db995b3259299c60"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "role",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "target",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bool",
							"name": "set",
							"type": "bool"
						}
					],
					"name": "SetRole",
					"type": "event",
					"signature": "0x332a909457a11d98527bfc5a73912903b22c710ff0f6fd05d8fbec4330de7289"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountInboundings",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x735b8bbc"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountOutboundings",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x186f44ed"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_period",
							"type": "uint256"
						}
					],
					"name": "accountOutboundingsInPeriod",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4a73d231"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_srcChainId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_srcOutboundingId",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "r",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "s",
									"type": "bytes32"
								},
								{
									"internalType": "uint8",
									"name": "v",
									"type": "uint8"
								}
							],
							"internalType": "struct BridgeState.Signature",
							"name": "_sign",
							"type": "tuple"
						}
					],
					"name": "appendInboundingRequest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x50db3a01"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "_accounts",
							"type": "address[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_amounts",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_srcChainIds",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_srcOutboundingIds",
							"type": "uint256[]"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "r",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "s",
									"type": "bytes32"
								},
								{
									"internalType": "uint8",
									"name": "v",
									"type": "uint8"
								}
							],
							"internalType": "struct BridgeState.Signature[]",
							"name": "_sign",
							"type": "tuple[]"
						}
					],
					"name": "appendMultipleInboundingRequests",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7e3fd16a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_destChainIds",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "r",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "s",
									"type": "bytes32"
								},
								{
									"internalType": "uint8",
									"name": "v",
									"type": "uint8"
								}
							],
							"internalType": "struct BridgeState.Signature",
							"name": "_sign",
							"type": "tuple"
						}
					],
					"name": "appendOutboundingRequest",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x62f0c06b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						}
					],
					"name": "applicableInboundIds",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0a2da178"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_index",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "claimInbound",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x909f018a"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "closeOutboundPeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe650630d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentOutboundPeriodId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xda4172ef"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_inboundOutbound",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "targetNetworkId",
							"type": "uint256"
						}
					],
					"name": "getMovedAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x94a8b419"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getTotalInboundAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfc9ff121"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getTotalOutboundAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x663c2dae"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "inboundings",
					"outputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "srcChainId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "srcOutboundingId",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "claimed",
							"type": "bool"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "r",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "s",
									"type": "bytes32"
								},
								{
									"internalType": "uint8",
									"name": "v",
									"type": "uint8"
								}
							],
							"internalType": "struct BridgeState.Signature",
							"name": "sign",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1e1d164f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "inboundingsLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x20c39d1c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_roleKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						}
					],
					"name": "isOnRole",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x36870f4d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "movedAmounts",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x59e045aa"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "networkOpened",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaa200217"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "numberOfOutboundPerPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb8c4dd57"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_outboundPeriodId",
							"type": "uint256"
						}
					],
					"name": "outboundIdsInPeriod",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3851eb0a"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "outboundPeriods",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "periodId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "startTime",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "processed",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x481dd7e8"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_periodId",
							"type": "uint256"
						}
					],
					"name": "outboundRequestIdsInPeriod",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x03a97279"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "outboundings",
					"outputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "destChainId",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "periodId",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "r",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "s",
									"type": "bytes32"
								},
								{
									"internalType": "uint8",
									"name": "v",
									"type": "uint8"
								}
							],
							"internalType": "struct BridgeState.Signature",
							"name": "sign",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x40a997b6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "outboundingsLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x50b2e57d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "periodDuration",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb470aade"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "periodIdsToProcess",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1a8ec357"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_outboundPeriodId",
							"type": "uint256"
						}
					],
					"name": "processOutboundPeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6455c67f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "roles",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf8fc08b9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_chainId",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "_setTo",
							"type": "bool"
						}
					],
					"name": "setNetworkStatus",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x9c50a136"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_number",
							"type": "uint256"
						}
					],
					"name": "setNumberOfOutboundPerPeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xfe9e903f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_time",
							"type": "uint256"
						}
					],
					"name": "setPeriodDuration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7c2d6e01"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_roleKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "_target",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "_set",
							"type": "bool"
						}
					],
					"name": "setRole",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6a951316"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "srcOutboundingIdRegistered",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3a01662a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalInboundAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3711991e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalOutboundAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeeaf19ad"
				}
			],
			"source": {
				"keccak256": "0xa5692622bc2d9a479a6a0ef279d70768286f58eeaed9442489430c8f4ca498c5",
				"urls": [
					"bzz-raw://5482c27f39e1bddb19164cca917cf7aeb650bf0f9f0fc5b4624dcebf6e0e3056",
					"dweb:/ipfs/QmXSrMghUFAz1V8yEFjHFfs5FJUpxrR9q8ZcHmNMarnUbh"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"BridgeState.sol": "BridgeState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"BridgeState.sol": {
						"keccak256": "0xa5692622bc2d9a479a6a0ef279d70768286f58eeaed9442489430c8f4ca498c5",
						"urls": [
							"bzz-raw://5482c27f39e1bddb19164cca917cf7aeb650bf0f9f0fc5b4624dcebf6e0e3056",
							"dweb:/ipfs/QmXSrMghUFAz1V8yEFjHFfs5FJUpxrR9q8ZcHmNMarnUbh"
						]
					}
				},
				"version": 1
			}
		},
		"DebtCache": {
			"bytecode": "60806040526007805460ff1916600117905534801561001d57600080fd5b5060405161261e38038061261e8339818101604052604081101561004057600080fd5b50805160209091015181818080836001600160a01b0381166100a9576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b031990921691909117905550505050506124e7806101376000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063dae3de981161007c578063dae3de98146103dd578063e3476cd41461044b578063f7cc999f14610453578063fa9f18d314610470578063fc524773146104de578063fca28f74146104e657610158565b80638da5cb5b146102e25780639f98fb49146102ea578063a5f27edb146103a8578063af5355d8146103b0578063d0fffafd146103b8578063d6576c84146103c057610158565b806353a47bb71161011557806353a47bb71461022e5780637418536014610236578063759076e51461023e57806379ba50971461025f5780638376a78214610267578063899ffef41461028a57610158565b806304bd11e51461015d57806304f3bcec1461017e57806305393262146101a25780631627540c146101bc5780632af64bd3146101e25780633a900a2e146101fe575b600080fd5b61017c6004803603602081101561017357600080fd5b503515156105b3565b005b6101866105c7565b604080516001600160a01b039092168252519081900360200190f35b6101aa6105d6565b60408051918252519081900360200190f35b61017c600480360360208110156101d257600080fd5b50356001600160a01b03166105dd565b6101ea610639565b604080519115158252519081900360200190f35b610206610743565b6040805194855260208501939093529015158383015215156060830152519081900360800190f35b610186610774565b61017c610783565b61024661094b565b6040805192835290151560208301528051918290030190f35b61017c61095e565b61017c6004803603604081101561027d57600080fd5b5080359060200135610a1a565b610292610aad565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102ce5781810151838201526020016102b6565b505050509050019250505060405180910390f35b610186610c17565b61017c6004803603604081101561030057600080fd5b810190602081018135600160201b81111561031a57600080fd5b82018360208201111561032c57600080fd5b803590602001918460208302840111600160201b8311171561034d57600080fd5b919390929091602081019035600160201b81111561036a57600080fd5b82018360208201111561037c57600080fd5b803590602001918460208302840111600160201b8311171561039d57600080fd5b509092509050610c26565b6101ea610c9b565b6101aa610ca4565b6101aa610cb3565b61017c600480360360208110156103d657600080fd5b5035610cb9565b610292600480360360208110156103f357600080fd5b810190602081018135600160201b81111561040d57600080fd5b82018360208201111561041f57600080fd5b803590602001918460208302840111600160201b8311171561044057600080fd5b509092509050610d95565b61017c610ddc565b6101aa6004803603602081101561046957600080fd5b503561106f565b61017c6004803603602081101561048657600080fd5b810190602081018135600160201b8111156104a057600080fd5b8201836020820111156104b257600080fd5b803590602001918460208302840111600160201b831117156104d357600080fd5b509092509050611081565b6101ea611216565b610554600480360360208110156104fc57600080fd5b810190602081018135600160201b81111561051657600080fd5b82018360208201111561052857600080fd5b803590602001918460208302840111600160201b8311171561054957600080fd5b509092509050611223565b604051808060200183151515158152602001828103825284818151815260200191508051906020019060200280838360005b8381101561059e578181015183820152602001610586565b50505050905001935050505060405180910390f35b6105bb61126e565b6105c48161137d565b50565b6002546001600160a01b031681565b6004545b90565b6105e56113ca565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60006060610645610aad565b905060005b815181101561073a57600082828151811061066157fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156106c957600080fd5b505afa1580156106dd573d6000803e3d6000fd5b505050506040513d60208110156106f357600080fd5b50516001600160a01b031614158061072057506000818152600360205260409020546001600160a01b0316155b1561073157600093505050506105da565b5060010161064a565b50600191505090565b6006546004546007546000928392839283929190829060ff1661076582611415565b94509450945094505090919293565b6001546001600160a01b031681565b606061078d610aad565b905060005b81518110156109475760008282815181106107a957fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561085f578181015183820152602001610847565b50505050905090810190601f16801561088c5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156108aa57600080fd5b505afa1580156108be573d6000803e3d6000fd5b505050506040513d60208110156108d457600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610792565b5050565b60008061095661142e565b915091509091565b6001546001600160a01b031633146109a75760405162461bcd60e51b81526004018080602001828103825260358152602001806124006035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b610a2261126e565b604080516001808252818301909252606091602080830190803883390190505090508281600081518110610a5257fe5b60209081029190910101526040805160018082528183019092526060918160200160208202803883390190505090508281600081518110610a8f57fe5b602002602001018181525050610aa78282600061162c565b50505050565b606080610ab86117e1565b6040805160078082526101008201909252919250606091906020820160e0803883390190505090506524b9b9bab2b960d11b81600081518110610af757fe5b6020026020010181815250506822bc31b430b733b2b960b91b81600181518110610b1d57fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110610b4757fe5b6020026020010181815250506b53797374656d53746174757360a01b81600381518110610b7057fe5b6020026020010181815250506e115d1a195c90dbdb1b185d195c985b608a1b81600481518110610b9c57fe5b60200260200101818152505072115d1a195c90dbdb1b185d195c985b1c1554d1606a1b81600581518110610bcc57fe5b6020026020010181815250507021b7b63630ba32b930b626b0b730b3b2b960791b81600681518110610bfa57fe5b602002602001018181525050610c108282611832565b9250505090565b6000546001600160a01b031681565b610c2e61126e565b610aa7848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208088028281018201909352878252909350879250869182918501908490808284376000920182905250925061162c915050565b60075460ff1690565b6000610cae6118ee565b905090565b60065490565b610cc16113ca565b6000610ccb61199d565b6001600160a01b03166357ad4663836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610d0e57600080fd5b505afa158015610d22573d6000803e3d6000fd5b505050506040513d6020811015610d3857600080fd5b50516001600160a01b031614610d84576040805162461bcd60e51b815260206004820152600c60248201526b50796e74682065786973747360a01b604482015290519081900360640190fd5b600090815260056020526040812055565b6060610dd38383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506119b192505050565b90505b92915050565b610de4611a41565b6060610dee61199d565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b158015610e2657600080fd5b505afa158015610e3a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610e6357600080fd5b8101908080516040519392919084600160201b821115610e8257600080fd5b908301906020820185811115610e9757600080fd5b82518660208202830111600160201b82111715610eb357600080fd5b82525081516020918201928201910280838360005b83811015610ee0578181015183820152602001610ec8565b50505050905001604052505050905060606000610efc83611aa7565b915091506000610f0a611c20565b6001600160a01b031663ad79a8586040518163ffffffff1660e01b8152600401604080518083038186803b158015610f4157600080fd5b505afa158015610f55573d6000803e3d6000fd5b505050506040513d6040811015610f6b57600080fd5b505183519091506000805b82811015610fe0576000868281518110610f8c57fe5b60200260200101519050610fa98184611c3f90919063ffffffff16565b925080600560008a8581518110610fbc57fe5b60209081029190910181015182528101919091526040016000205550600101610f76565b50610ff1818463ffffffff611c9916565b600455426006556040805182815290517f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be5999181900360200190a16040805142815290517fc481e742c89630d4b1a5ed3a0fc624c1c41ed463bd00ac26a7e93c71e932126f9181900360200190a16110678461137d565b505050505050565b60009081526005602052604090205490565b611089611a41565b60606000611095611cf6565b6001600160a01b031663c8e5bbd585856040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f820116905080830192505050935050505060006040518083038186803b15801561110757600080fd5b505afa15801561111b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101561114457600080fd5b8101908080516040519392919084600160201b82111561116357600080fd5b90830190602082018581111561117857600080fd5b82518660208202830111600160201b8211171561119457600080fd5b82525081516020918201928201910280838360005b838110156111c15781810151838201526020016111a9565b505050509190910160408181526020938401518a850280840186019092528a8352969850959650610aa795909450899350889283925085019084908082843760009201919091525086925085915061162c9050565b6000610cae600654611415565b60606000611263848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250611aa792505050565b915091509250929050565b600061127861199d565b6001600160a01b03166357ad4663631c1554d160e21b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156112c257600080fd5b505afa1580156112d6573d6000803e3d6000fd5b505050506040513d60208110156112ec57600080fd5b505190506112f861199d565b6001600160a01b0316336001600160a01b0316148061132f575061131a611d11565b6001600160a01b0316336001600160a01b0316145b806113425750336001600160a01b038216145b6105c45760405162461bcd60e51b815260040180806020018281038252602e815260200180612485602e913960400191505060405180910390fd5b60075460ff161515811515146105c4576007805460ff19168215159081179091556040517f8eebec690c34bbf0fe0d5b93e442beaf16bdaf99052569581de2dcb3e31a53a790600090a250565b6000546001600160a01b031633146114135760405162461bcd60e51b815260040180806020018281038252602f815260200180612435602f913960400191505060405180910390fd5b565b60008142036114226118ee565b1080610dd65750501590565b6000806060600061154461144061199d565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561147857600080fd5b505afa15801561148c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156114b557600080fd5b8101908080516040519392919084600160201b8211156114d457600080fd5b9083019060208201858111156114e957600080fd5b82518660208202830111600160201b8211171561150557600080fd5b82525081516020918201928201910280838360005b8381101561153257818101518382015260200161151a565b50505050905001604052505050611aa7565b815191935091506000805b828110156115875761157d85828151811061156657fe5b602002602001015183611c3f90919063ffffffff16565b915060010161154f565b50600080611593611c20565b6001600160a01b031663ad79a8586040518163ffffffff1660e01b8152600401604080518083038186803b1580156115ca57600080fd5b505afa1580156115de573d6000803e3d6000fd5b505050506040513d60408110156115f457600080fd5b5080516020909101519092509050611612838363ffffffff611c9916565b9250848061161d5750805b92975091955050505050509091565b825182518114611683576040805162461bcd60e51b815260206004820152601a60248201527f496e707574206172726179206c656e6774687320646966666572000000000000604482015290519081900360640190fd5b60008060606116928787611d28565b905060005b848110156117215760008882815181106116ad57fe5b6020026020010151905060008383815181106116c557fe5b602002602001015190506116f5600560008481526020019081526020016000205487611c3f90919063ffffffff16565b9550611707858263ffffffff611c3f16565b600092835260056020526040909220559250600101611697565b508183146117c9576004548084111561176b5760405162461bcd60e51b81526004018080602001828103825260238152602001806123dd6023913960400191505060405180910390fd5b61178b8361177f838763ffffffff611c9916565b9063ffffffff611c3f16565b60048190556040805182815290519192507f294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be599919081900360200190a1505b84156117d8576117d88561137d565b50505050505050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061182357fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611862578160200160208202803883390190505b50905060005b83518110156118a45783818151811061187d57fe5b602002602001015182828151811061189157fe5b6020908102919091010152600101611868565b5060005b82518110156118e7578281815181106118bd57fe5b60200260200101518282865101815181106118d457fe5b60209081029190910101526001016118a8565b5092915050565b60006118f86121eb565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7464656274536e617073686f745374616c6554696d6560581b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561196c57600080fd5b505afa158015611980573d6000803e3d6000fd5b505050506040513d602081101561199657600080fd5b5051905090565b6000610cae6524b9b9bab2b960d11b612204565b60606000825190506060816040519080825280602002602001820160405280156119e5578160200160208202803883390190505b50905060005b82811015611a395760056000868381518110611a0357fe5b6020026020010151815260200190815260200160002054828281518110611a2657fe5b60209081029190910101526001016119eb565b509392505050565b6000546001600160a01b0316331461141357611a5b6122e1565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b158015611a9357600080fd5b505afa158015610aa7573d6000803e3d6000fd5b6060600060606000611ab7611cf6565b6001600160a01b031663c8e5bbd5866040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015611b15578181015183820152602001611afd565b505050509050019250505060006040518083038186803b158015611b3857600080fd5b505afa158015611b4c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015611b7557600080fd5b8101908080516040519392919084600160201b821115611b9457600080fd5b908301906020820185811115611ba957600080fd5b82518660208202830111600160201b82111715611bc557600080fd5b82525081516020918201928201910280838360005b83811015611bf2578181015183820152602001611bda565b50505050919091016040525060200151929450919250611c16915086905083611d28565b9350915050915091565b6000610cae7021b7b63630ba32b930b626b0b730b3b2b960791b612204565b600082820183811015610dd3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115611cf0576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000610cae6c45786368616e6765526174657360981b612204565b6000610cae6822bc31b430b733b2b960b91b612204565b6060600083519050606081604051908082528060200260200182016040528015611d5c578160200160208202803883390190505b5090506060611d6961199d565b6001600160a01b0316631db63a33876040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015611dc7578181015183820152602001611daf565b505050509050019250505060006040518083038186803b158015611dea57600080fd5b505afa158015611dfe573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611e2757600080fd5b8101908080516040519392919084600160201b821115611e4657600080fd5b908301906020820185811115611e5b57600080fd5b82518660208202830111600160201b82111715611e7757600080fd5b82525081516020918201928201910280838360005b83811015611ea4578181015183820152602001611e8c565b50505050905001604052505050905060008090505b838110156121e0576000878281518110611ecf57fe5b602002602001015190506000838381518110611ee757fe5b6020026020010151905060006001600160a01b0316816001600160a01b03161415611f50576040805162461bcd60e51b8152602060048201526014602482015273141e5b9d1a08191bd95cc81b9bdd08195e1a5cdd60621b604482015290519081900360640190fd5b6000816001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611f8b57600080fd5b505afa158015611f9f573d6000803e3d6000fd5b505050506040513d6020811015611fb557600080fd5b50519050611fc1611c20565b6001600160a01b03166342e32f13846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561200457600080fd5b505afa158015612018573d6000803e3d6000fd5b505050506040513d602081101561202e57600080fd5b5051156120d657600061203f611c20565b6001600160a01b031663d2f00475856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208257600080fd5b505afa158015612096573d6000803e3d6000fd5b505050506040513d60208110156120ac57600080fd5b50519050818111156120c157600091506120d4565b6120d1828263ffffffff611c9916565b91505b505b631c1554d160e21b831480806120f25750630e08aa8960e31b84145b156121935760008161210b576121066122fb565b612113565b612113612318565b90506000816001600160a01b03166357b219206040518163ffffffff1660e01b815260040160206040518083038186803b15801561215057600080fd5b505afa158015612164573d6000803e3d6000fd5b505050506040513d602081101561217a57600080fd5b5051905061218e848263ffffffff611c9916565b935050505b6121b98a86815181106121a257fe5b60200260200101518361233990919063ffffffff16565b8786815181106121c557fe5b6020908102919091010152505060019092019150611eb99050565b509095945050505050565b6000610cae6e466c657869626c6553746f7261676560881b5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816118e75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156122a657818101518382015260200161228e565b50505050905090810190601f1680156122d35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000610cae6b53797374656d53746174757360a01b612204565b6000610cae6e115d1a195c90dbdb1b185d195c985b608a1b612204565b6000610cae72115d1a195c90dbdb1b185d195c985b1c1554d1606a1b612204565b6000610dd38383670de0b6b3a7640000848067016345785d8a000061235e8686612383565b8161236557fe5b0490506005600a82061061237757600a015b600a9004949350505050565b60008261239257506000610dd6565b8282028284828161239f57fe5b0414610dd35760405162461bcd60e51b81526004018080602001828103825260218152602001806124646021913960400191505060405180910390fdfe4361636865642070796e74682073756d206578636565647320746f74616c2064656274596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7753656e646572206973206e6f7420497373756572206f722045786368616e676572206f722070796e746870555344a265627a7a723158201255a1e8b8b81586db1e0d227fdf2a31ece8463f93252df7378453a2857bf43264736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "DebtCacheSnapshotTaken",
					"type": "event",
					"signature": "0xc481e742c89630d4b1a5ed3a0fc624c1c41ed463bd00ac26a7e93c71e932126f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "cachedDebt",
							"type": "uint256"
						}
					],
					"name": "DebtCacheUpdated",
					"type": "event",
					"signature": "0x294a7c394e53042c7d754779562747d93b41db019dd4b970dd9b531db71be599"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						}
					],
					"name": "DebtCacheValidityChanged",
					"type": "event",
					"signature": "0x8eebec690c34bbf0fe0d5b93e442beaf16bdaf99052569581de2dcb3e31a53a7"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheInfo",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "isInvalid",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "isStale",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3a900a2e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa5f27edb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheStale",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfc524773"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cacheTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd0fffafd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "cachedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x05393262"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "cachedPynthDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf7cc999f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "cachedPynthDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "periIssuedDebts",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdae3de98"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x759076e5"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "currentPynthDebts",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "debtValues",
							"type": "uint256[]"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfca28f74"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtSnapshotStaleTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaf5355d8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "purgeCachedPynthDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd6576c84"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "takeDebtSnapshot",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe3476cd4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "currencyRate",
							"type": "uint256"
						}
					],
					"name": "updateCachedPynthDebtWithRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8376a782"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "updateCachedPynthDebts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xfa9f18d3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "currencyRates",
							"type": "uint256[]"
						}
					],
					"name": "updateCachedPynthDebtsWithRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x9f98fb49"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "currentlyInvalid",
							"type": "bool"
						}
					],
					"name": "updateDebtCacheValidity",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x04bd11e5"
				}
			],
			"source": {
				"keccak256": "0x850da0bdf50e338a491a002d059f85f4c6ba02415b20dfadafb515971dbad3ae",
				"urls": [
					"bzz-raw://f1629988ddb23e1356f01ca96487fc01adea7087ea8db23e8a46824b2d05d1bf",
					"dweb:/ipfs/QmWaNxgH9xvDjtpvcDZZ5jvtyJ7MgnAuaGufEsKXZb3wGZ"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DebtCache.sol": "DebtCache"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DebtCache.sol": {
						"keccak256": "0x850da0bdf50e338a491a002d059f85f4c6ba02415b20dfadafb515971dbad3ae",
						"urls": [
							"bzz-raw://f1629988ddb23e1356f01ca96487fc01adea7087ea8db23e8a46824b2d05d1bf",
							"dweb:/ipfs/QmWaNxgH9xvDjtpvcDZZ5jvtyJ7MgnAuaGufEsKXZb3wGZ"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangerWithVirtualPynth": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200603938038062006039833981810160405260408110156200003757600080fd5b50805160209091015181818080836001600160a01b038116620000a1576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b03199092169190911790555050505050615f0980620001306000396000f3fe60806040523480156200001157600080fd5b5060043610620001fc5760003560e01c806357630a40116200011d578063899ffef411620000b1578063d6f32e06116200007b578063d6f32e061462000611578063dfffca761462000640578063f39952241462000693578063f450aa3414620006fd57620001fc565b8063899ffef414620005815780638da5cb5b14620005dd578063a4a9c26614620005e7578063c193f0d8146200060757620001fc565b806379ba509711620000f357806379ba509714620004fa5780637dd1a57a146200050457806386baa45c146200052457806389257117146200057757620001fc565b806357630a4014620004855780636a1c475814620004ab5780637418536014620004f057620001fc565b80631b16802c1162000195578063372a395a116200016b578063372a395a146200042c5780633fa70f4514620004365780634c268fc8146200044057806353a47bb7146200047b57620001fc565b80631b16802c146200036b57806324286df0146200039a5780632af64bd3146200040e57620001fc565b80630aed5b4611620001d75780630aed5b4614620002ad5780631627540c14620002cf57806319d5c66514620002f85780631a5c6095146200034557620001fc565b806304f3bcec1462000201578063059c29ec14620002275780630a1e187d1462000268575b600080fd5b6200020b62000729565b604080516001600160a01b039092168252519081900360200190f35b62000256600480360360408110156200023f57600080fd5b506001600160a01b03813516906020013562000738565b60408051918252519081900360200190f35b62000256600480360360a08110156200028057600080fd5b506001600160a01b03813581169160208101359160408201359160608101359160809091013516620007e3565b620002cd60048036036020811015620002c557600080fd5b5035620008ee565b005b620002cd60048036036020811015620002e757600080fd5b50356001600160a01b031662000b63565b62000327600480360360408110156200031057600080fd5b506001600160a01b03813516906020013562000bc1565b60408051938452602084019290925282820152519081900360600190f35b62000256600480360360408110156200035d57600080fd5b508035906020013562000be1565b62000327600480360360408110156200038357600080fd5b506001600160a01b03813516906020013562000bef565b620002cd60048036036020811015620003b257600080fd5b810190602081018135600160201b811115620003cd57600080fd5b820183602082011115620003e057600080fd5b803590602001918460208302840111600160201b831117156200040257600080fd5b50909250905062000c76565b6200041862000e84565b604080519115158252519081900360200190f35b6200025662000f9a565b6200025662000fab565b62000256600480360360808110156200045857600080fd5b506001600160a01b03813516906020810135906040810135906060013562000fb0565b6200020b620010dc565b620002cd600480360360408110156200049d57600080fd5b5080359060200135620010eb565b62000256600480360360a0811015620004c357600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060800135620011b7565b620002cd62001395565b620002cd62001568565b62000256600480360360208110156200051c57600080fd5b503562001626565b62000256600480360360e08110156200053c57600080fd5b506001600160a01b038135811691602081013591604082013591606081013591608082013581169160a08101359091169060c0013562001638565b6200025662001752565b6200058b6200175e565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015620005c9578181015183820152602001620005af565b505050509050019250505060405180910390f35b6200020b6200194a565b6200041860048036036020811015620005ff57600080fd5b503562001959565b62000418620019b6565b62000418600480360360408110156200062957600080fd5b506001600160a01b038135169060200135620019c2565b62000256600480360360e08110156200065857600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c00135620019fa565b620006dc600480360360c0811015620006ab57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a0013562001be5565b604080519283526001600160a01b0390911660208301528051918290030190f35b62000327600480360360608110156200071557600080fd5b508035906020810135906040013562001d0a565b6002546001600160a01b031681565b6000620007da6200074862001d2c565b6001600160a01b031663f1406dc885856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b158015620007a657600080fd5b505afa158015620007bb573d6000803e3d6000fd5b505050506040513d6020811015620007d257600080fd5b505162001d49565b90505b92915050565b600080620007f062001db3565b9050336001600160a01b03821614806200088157506040805163c9a2f3ad60e01b815233600482015290516000916001600160a01b0384169163c9a2f3ad91602480820192602092909190829003018186803b1580156200085057600080fd5b505afa15801562000865573d6000803e3d6000fd5b505050506040513d60208110156200087c57600080fd5b505114155b620008be5760405162461bcd60e51b815260040180806020018281038252604781526020018062005df96047913960600191505060405180910390fd5b6000620008d18888888888600062001dce565b509093509050620008e3818562002213565b505095945050505050565b620008f8620022cb565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b1580156200093157600080fd5b505afa15801562000946573d6000803e3d6000fd5b5050505060006001600160a01b03166200095f620022e7565b6001600160a01b03166357ad4663836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015620009a357600080fd5b505afa158015620009b8573d6000803e3d6000fd5b505050506040513d6020811015620009cf57600080fd5b50516001600160a01b0316141562000a1e576040805162461bcd60e51b815260206004820152600d60248201526c09cde40e6eac6d040e0f2dce8d609b1b604482015290519081900360640190fd5b62000aa58162000a2d620022fd565b6001600160a01b031663ac82f608846040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801562000a7157600080fd5b505afa15801562000a86573d6000803e3d6000fd5b505050506040513d602081101562000a9d57600080fd5b50516200231a565b62000aee576040805162461bcd60e51b8152602060048201526014602482015273141e5b9d1a081c1c9a58d9481a5cc81d985b1a5960621b604482015290519081900360640190fd5b62000af8620022cb565b6001600160a01b031663631070fc8260416040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b15801562000b4757600080fd5b505af115801562000b5c573d6000803e3d6000fd5b5050505050565b62000b6d62002584565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b600080600062000bd28585620025d1565b50919790965090945092505050565b6000620007da8383620028c6565b600080600062000bfe620022cb565b6001600160a01b0316631d7e7789856040518263ffffffff1660e01b81526004018082815260200191505060006040518083038186803b15801562000c4257600080fd5b505afa15801562000c57573d6000803e3d6000fd5b5050505062000c69858560016200298f565b9250925092509250925092565b62000c8062002584565b6060600062000c8e620022fd565b6001600160a01b031663c8e5bbd585856040518363ffffffff1660e01b815260040180806020018281038252848482818152602001925060200280828437600081840152601f19601f820116905080830192505050935050505060006040518083038186803b15801562000d0157600080fd5b505afa15801562000d16573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604090815281101562000d4057600080fd5b8101908080516040519392919084600160201b82111562000d6057600080fd5b90830190602082018581111562000d7657600080fd5b82518660208202830111600160201b8211171562000d9357600080fd5b82525081516020918201928201910280838360005b8381101562000dc257818101518382015260200162000da8565b50505050919091016040525060200151929450919250508115905062000e2f576040805162461bcd60e51b815260206004820181905260248201527f526174657320666f7220676976656e2073796e746873206e6f742076616c6964604482015290519081900360640190fd5b60005b8381101562000b5c5782818151811062000e4857fe5b60200260200101516004600087878581811062000e6157fe5b602090810292909201358352508101919091526040016000205560010162000e32565b6000606062000e926200175e565b905060005b815181101562000f9057600082828151811062000eb057fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b15801562000f1957600080fd5b505afa15801562000f2e573d6000803e3d6000fd5b505050506040513d602081101562000f4557600080fd5b50516001600160a01b031614158062000f7357506000818152600360205260409020546001600160a01b0316155b1562000f86576000935050505062000f97565b5060010162000e97565b5060019150505b90565b600062000fa662002d25565b905090565b604181565b81600062000fbd620022e7565b6001600160a01b03166357ad4663866040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200100157600080fd5b505afa15801562001016573d6000803e3d6000fd5b505050506040513d60208110156200102d57600080fd5b5051604080516370a0823160e01b81526001600160a01b038981166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156200107a57600080fd5b505afa1580156200108f573d6000803e3d6000fd5b505050506040513d6020811015620010a657600080fd5b5051905080821115620010b7578091505b8215620010d357620010d0828463ffffffff62002de116565b91505b50949350505050565b6001546001600160a01b031681565b6000620010f7620022fd565b9050336001600160a01b0382161462001157576040805162461bcd60e51b815260206004820152601b60248201527f5265737472696374656420746f2045786368616e676552617465730000000000604482015290519081900360640190fd5b60008211620011a4576040805162461bcd60e51b8152602060048201526014602482015273052617465206d7573742062652061626f766520360641b604482015290519081900360640190fd5b5060009182526004602052604090912055565b600080620011c462001db3565b9050336001600160a01b03821614806200125557506040805163c9a2f3ad60e01b815233600482015290516000916001600160a01b0384169163c9a2f3ad91602480820192602092909190829003018186803b1580156200122457600080fd5b505afa15801562001239573d6000803e3d6000fd5b505050506040513d60208110156200125057600080fd5b505114155b620012925760405162461bcd60e51b815260040180806020018281038252604781526020018062005df96047913960600191505060405180910390fd5b6200129c62002e3c565b6040805163faf431bb60e01b81526001600160a01b038a8116600483015289811660248301529151929091169163faf431bb91604480820192602092909190829003018186803b158015620012f057600080fd5b505afa15801562001305573d6000803e3d6000fd5b505050506040513d60208110156200131c57600080fd5b505162001370576040805162461bcd60e51b815260206004820152601d60248201527f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000604482015290519081900360640190fd5b600062001383888787878c600062001dce565b509093509050620008e3818962002213565b6060620013a16200175e565b905060005b815181101562001564576000828281518110620013bf57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015620014775781810151838201526020016200145d565b50505050905090810190601f168015620014a55780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015620014c457600080fd5b505afa158015620014d9573d6000803e3d6000fd5b505050506040513d6020811015620014f057600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101620013a6565b5050565b6001546001600160a01b03163314620015b35760405162461bcd60e51b815260040180806020018281038252603581526020018062005dc46035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60046020526000908152604090205481565b6000806200164562001db3565b9050336001600160a01b0382161480620016d657506040805163c9a2f3ad60e01b815233600482015290516000916001600160a01b0384169163c9a2f3ad91602480820192602092909190829003018186803b158015620016a557600080fd5b505afa158015620016ba573d6000803e3d6000fd5b505050506040513d6020811015620016d157600080fd5b505114155b620017135760405162461bcd60e51b815260040180806020018281038252604781526020018062005df96047913960600191505060405180910390fd5b6000620017268a8a8a8a8a600062001dce565b50909350905062001738818662002213565b6200174584888562002e5d565b5050979650505050505050565b600062000fa662002edb565b6060806200176b62002f58565b60408051600a80825261016082019092529192506060919060208201610140803883390190505090506b53797374656d53746174757360a01b81600081518110620017b257fe5b6020026020010181815250506c45786368616e6765537461746560981b81600181518110620017dd57fe5b6020026020010181815250506c45786368616e6765526174657360981b816002815181106200180857fe5b6020026020010181815250506a5065726946696e616e636560a81b816003815181106200183157fe5b60200260200101818152505066119959541bdbdb60ca1b816004815181106200185657fe5b6020026020010181815250506d54726164696e675265776172647360901b816005815181106200188257fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b81600681518110620018b157fe5b6020026020010181815250506524b9b9bab2b960d11b81600781518110620018d557fe5b6020026020010181815250506844656274436163686560b81b81600881518110620018fc57fe5b6020026020010181815250507021b937b9b9a1b430b4b726b0b730b3b2b960791b816009815181106200192b57fe5b60200260200101818152505062001943828262002faa565b9250505090565b6000546001600160a01b031681565b6000620019ae826200196a620022fd565b6001600160a01b031663ac82f608856040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801562000a7157600080fd5b90505b919050565b600062000fa66200306f565b6000620019d0838362000738565b15620019df57506001620007dd565b6000620019ed8484620025d1565b5050501515949350505050565b60008062001a0762001db3565b9050336001600160a01b038216148062001a9857506040805163c9a2f3ad60e01b815233600482015290516000916001600160a01b0384169163c9a2f3ad91602480820192602092909190829003018186803b15801562001a6757600080fd5b505afa15801562001a7c573d6000803e3d6000fd5b505050506040513d602081101562001a9357600080fd5b505114155b62001ad55760405162461bcd60e51b815260040180806020018281038252604781526020018062005df96047913960600191505060405180910390fd5b62001adf62002e3c565b6040805163faf431bb60e01b81526001600160a01b038c811660048301528b811660248301529151929091169163faf431bb91604480820192602092909190829003018186803b15801562001b3357600080fd5b505afa15801562001b48573d6000803e3d6000fd5b505050506040513d602081101562001b5f57600080fd5b505162001bb3576040805162461bcd60e51b815260206004820152601d60248201527f4e6f7420617070726f76656420746f20616374206f6e20626568616c66000000604482015290519081900360640190fd5b600062001bc68a8989898e600062001dce565b50909350905062001bd8818662002213565b6200174584878562002e5d565b600080600062001bf462001db3565b9050336001600160a01b038216148062001c8557506040805163c9a2f3ad60e01b815233600482015290516000916001600160a01b0384169163c9a2f3ad91602480820192602092909190829003018186803b15801562001c5457600080fd5b505afa15801562001c69573d6000803e3d6000fd5b505050506040513d602081101562001c8057600080fd5b505114155b62001cc25760405162461bcd60e51b815260040180806020018281038252604781526020018062005df96047913960600191505060405180910390fd5b600062001cd58a8a8a8a8a600162001dce565b919550909350905062001ce9818762002213565b841562001cfd5762001cfd85888662002e5d565b5050965096945050505050565b600080600062001d1c868686620030f0565b5092999198509650945050505050565b600062000fa66c45786368616e6765537461746560981b620031d5565b60008062001d5662002edb565b905082158062001d77575062001d73838263ffffffff62002de116565b4210155b1562001d88576000915050620019b1565b62001dac4262001d9f858463ffffffff62002de116565b9063ffffffff620032b616565b9392505050565b600062000fa66a5065726946696e616e636560a81b620031d5565b600080600062001de088888862003314565b600062001def888b8b620034fa565b90508062001e0857506000925082915081905062002207565b600080600062001e1a848d8c620030f0565b939a5091985094509250905062001e328c8362003537565b8062001e45575062001e458a8262003537565b1562001e605750600095508594508493506200220792505050565b62001e718c8e868d8b8e8e620035da565b94506001600160a01b0385161562001e87578498505b8515620020f65762001e98620022fd565b6001600160a01b031663654a60ac8b88631c1554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801562001ef357600080fd5b505afa15801562001f08573d6000803e3d6000fd5b505050506040513d602081101562001f1f57600080fd5b5051955062001f2d620022e7565b6001600160a01b03166357ad4663631c1554d160e21b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801562001f7857600080fd5b505afa15801562001f8d573d6000803e3d6000fd5b505050506040513d602081101562001fa457600080fd5b50516001600160a01b031663867904b462001fbe620038cf565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801562001ff757600080fd5b505afa1580156200200c573d6000803e3d6000fd5b505050506040513d60208110156200202357600080fd5b5051604080516001600160e01b031960e085901b1681526001600160a01b039092166004830152602482018a905251604480830192600092919082900301818387803b1580156200207357600080fd5b505af115801562002088573d6000803e3d6000fd5b5050505062002096620038cf565b6001600160a01b03166322bf55ef876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015620020dc57600080fd5b505af1158015620020f1573d6000803e3d6000fd5b505050505b6200212a60405180604001604052808e81526020018c815250604051806040016040528085815260200184815250620038e6565b6200213462001db3565b6001600160a01b0316631b99084c8e8e878e8c8f6040518763ffffffff1660e01b815260040180876001600160a01b03166001600160a01b03168152602001868152602001858152602001848152602001838152602001826001600160a01b03166001600160a01b031681526020019650505050505050600060405180830381600087803b158015620021c657600080fd5b505af1158015620021db573d6000803e3d6000fd5b505050506000620021eb62002edb565b1115620022025762002202898d868d8b8862003bbb565b505050505b96509650969350505050565b6000821180156200222c57506001600160a01b03811615155b80156200223e57506200223e6200306f565b1562001564576200224e62003dd8565b6001600160a01b03166321cad77483836040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b0316815260200192505050600060405180830381600087803b158015620022ae57600080fd5b505af1158015620022c3573d6000803e3d6000fd5b505050505050565b600062000fa66b53797374656d53746174757360a01b620031d5565b600062000fa66524b9b9bab2b960d11b620031d5565b600062000fa66c45786368616e6765526174657360981b620031d5565b6000816200232b57506001620007dd565b600083815260046020526040902054801562002356576200234d818462003df6565b915050620007dd565b606062002362620022fd565b6001600160a01b0316632d7371e18660046040518363ffffffff1660e01b8152600401808381526020018281526020019250505060006040518083038186803b158015620023af57600080fd5b505afa158015620023c4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015620023ee57600080fd5b8101908080516040519392919084600160201b8211156200240e57600080fd5b9083019060208201858111156200242457600080fd5b82518660208202830111600160201b821117156200244157600080fd5b82525081516020918201928201910280838360005b838110156200247057818101518382015260200162002456565b5050505090500160405260200180516040519392919084600160201b8211156200249957600080fd5b908301906020820185811115620024af57600080fd5b82518660208202830111600160201b82111715620024cc57600080fd5b82525081516020918201928201910280838360005b83811015620024fb578181015183820152602001620024e1565b505050509050016040525050505090506000600190505b8151811015620025785760008282815181106200252b57fe5b60200260200101511180156200255c57506200255c8282815181106200254d57fe5b60200260200101518662003df6565b156200256f5760019350505050620007dd565b60010162002512565b50600095945050505050565b6000546001600160a01b03163314620025cf5760405162461bcd60e51b815260040180806020018281038252602f81526020018062005e40602f913960400191505060405180910390fd5b565b60008060006060620025e262001d2c565b6001600160a01b031663b44e975387876040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b1580156200264057600080fd5b505afa15801562002655573d6000803e3d6000fd5b505050506040513d60208110156200266c57600080fd5b5051604080518281526020808402820101909152909250606090838015620026b157816020015b6200269d620049e1565b815260200190600190039081620026935790505b50905060005b83811015620028ba57600080620026cd620049e1565b620026da8b8b8662003e60565b9050600080620026ea8362003f82565b915091506000620026fa620022fd565b6001600160a01b031663266da16b85600001518660200151876040015187876040518663ffffffff1660e01b8152600401808681526020018581526020018481526020018381526020018281526020019550505050505060206040518083038186803b1580156200276a57600080fd5b505afa1580156200277f573d6000803e3d6000fd5b505050506040513d60208110156200279657600080fd5b50516080850151909150600090620027b0908390620040df565b9050620027c285606001518262003df6565b6200284357808560600151111562002807576060850151620027eb908263ffffffff620032b616565b9650620027ff8d8863ffffffff62002de116565b9c5062002843565b8460600151811115620028435760608501516200282c90829063ffffffff620032b616565b9550620028408c8763ffffffff62002de116565b9b505b6040518061010001604052808660000151815260200186602001518152602001866040015181526020018881526020018781526020018581526020018481526020018660a001518152508989815181106200289a57fe5b6020026020010181905250505050505050508080600101915050620026b7565b50905092959194509250565b6000620028d38262004178565b9050631c1554d160e21b831480620028f15750631c1554d160e21b82145b15620028fd57620007dd565b607360f81b6001600160f81b0319600085901a60f81b16148015620029365750606960f81b6001600160f81b0319600084901a60f81b16145b80620029765750606960f81b6001600160f81b0319600085901a60f81b16148015620029765750607360f81b6001600160f81b0319600084901a60f81b16145b15620007dd57620007da81600263ffffffff6200425516565b6000806000620029a0868662000738565b15620029de5760405162461bcd60e51b815260040180806020018281038252602381526020018062005eb26023913960400191505060405180910390fd5b60008060006060620029f18a8a620025d1565b93509350935093508284111562002a295762002a14848463ffffffff620032b616565b965062002a238a8a89620042b3565b62002a53565b8383111562002a535762002a44838563ffffffff620032b616565b955062002a538a8a886200452c565b871562002b425760408051600180825281830190925260609160208083019080388339019050509050898160008151811062002a8b57fe5b60200260200101818152505062002aa162004786565b6001600160a01b031663fa9f18d3826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b8381101562002b0157818101518382015260200162002ae7565b5050505090500192505050600060405180830381600087803b15801562002b2757600080fd5b505af115801562002b3c573d6000803e3d6000fd5b50505050505b60005b815181101562002c91578a6001600160a01b03167f8e3ad1f68bec55de3b6fa12ae2674a2a683a17c918a4cbf5157ac5d9ddc6e94083838151811062002b8757fe5b60200260200101516000015184848151811062002ba057fe5b60200260200101516020015185858151811062002bb957fe5b60200260200101516040015186868151811062002bd257fe5b60200260200101516060015187878151811062002beb57fe5b60200260200101516080015188888151811062002c0457fe5b602002602001015160a0015189898151811062002c1d57fe5b602002602001015160c001518a8a8151811062002c3657fe5b602002602001015160e00151604051808981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019850505050505050505060405180910390a260010162002b45565b5081945062002c9f62001d2c565b6001600160a01b031663d0d3d62a8b8b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801562002cff57600080fd5b505af115801562002d14573d6000803e3d6000fd5b505050505050505093509350939050565b600062002d316200479f565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7f7072696365446576696174696f6e5468726573686f6c64466163746f720000006040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801562002dae57600080fd5b505afa15801562002dc3573d6000803e3d6000fd5b505050506040513d602081101562002dda57600080fd5b5051905090565b600082820183811015620007da576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600062000fa67044656c6567617465417070726f76616c7360781b620031d5565b62002e6762001db3565b6001600160a01b031663ddd03a3f8484846040518463ffffffff1660e01b8152600401808481526020018381526020018281526020019350505050600060405180830381600087803b15801562002ebd57600080fd5b505af115801562002ed2573d6000803e3d6000fd5b50505050505050565b600062002ee76200479f565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7077616974696e67506572696f645365637360781b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801562002dae57600080fd5b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811062002f9b57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801562002fdb578160200160208202803883390190505b50905060005b8351811015620030215783818151811062002ff857fe5b60200260200101518282815181106200300d57fe5b602090810291909101015260010162002fe1565b5060005b825181101562003068578281815181106200303c57fe5b60200260200101518282865101815181106200305457fe5b602090810291909101015260010162003025565b5092915050565b60006200307b6200479f565b6001600160a01b031663d994502d6d53797374656d53657474696e677360901b741d1c98591a5b99d4995dd85c991cd15b98589b1959605a1b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801562002dae57600080fd5b60008060008060008062003103620022fd565b6001600160a01b0316638295016a898b8a6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060606040518083038186803b1580156200315757600080fd5b505afa1580156200316c573d6000803e3d6000fd5b505050506040513d60608110156200318357600080fd5b50805160208201516040909201519194509092509050620031a58888620028c6565b9350620031b38185620040df565b9550620031c7818763ffffffff620032b616565b945050939792965093509350565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081620030685760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200327a57818101518382015260200162003260565b50505050905090810190601f168015620032a85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000828211156200330e576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b8083141562003360576040805162461bcd60e51b8152602060048201526013602482015272086c2dc4ee840c4ca40e6c2daca40e0f2dce8d606b1b604482015290519081900360640190fd5b60008211620033a4576040805162461bcd60e51b815260206004820152600b60248201526a16995c9bc8185b5bdd5b9d60aa1b604482015290519081900360640190fd5b60408051600280825260608083018452926020830190803883390190505090508381600081518110620033d357fe5b6020026020010181815250508181600181518110620033ee57fe5b60200260200101818152505062003404620022fd565b6001600160a01b0316630a7d36d1826040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015620034645781810151838201526020016200344a565b505050509050019250505060206040518083038186803b1580156200348857600080fd5b505afa1580156200349d573d6000803e3d6000fd5b505050506040513d6020811015620034b457600080fd5b505115620034f45760405162461bcd60e51b815260040180806020018281038252602281526020018062005e906022913960400191505060405180910390fd5b50505050565b60008060006200350d858560006200298f565b88955090935091505080156200352e576200352b8585888562000fb0565b92505b50509392505050565b60006200354583836200231a565b15620035c75762003555620022cb565b6001600160a01b031663631070fc8460416040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015620035a457600080fd5b505af1158015620035b9573d6000803e3d6000fd5b5050505060019050620007dd565b6000928352600460205260409092205590565b6000620035e6620022e7565b6001600160a01b03166357ad4663896040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200362a57600080fd5b505afa1580156200363f573d6000803e3d6000fd5b505050506040513d60208110156200365657600080fd5b505160408051632770a7eb60e21b81526001600160a01b038a81166004830152602482018a905291519190921691639dc29fac91604480830192600092919082900301818387803b158015620036ab57600080fd5b505af1158015620036c0573d6000803e3d6000fd5b505050506000620036d0620022e7565b6001600160a01b03166357ad4663876040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200371457600080fd5b505afa15801562003729573d6000803e3d6000fd5b505050506040513d60208110156200374057600080fd5b50519050821562003848576000819050620037c5816001600160a01b031663ec5568896040518163ffffffff1660e01b815260040160206040518083038186803b1580156200378e57600080fd5b505afa158015620037a3573d6000803e3d6000fd5b505050506040513d6020811015620037ba57600080fd5b505186888a620047be565b9250816001600160a01b031663867904b484886040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156200382857600080fd5b505af11580156200383d573d6000803e3d6000fd5b5050505050620038c3565b806001600160a01b031663867904b485876040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015620038a957600080fd5b505af1158015620038be573d6000803e3d6000fd5b505050505b50979650505050505050565b600062000fa666119959541bdbdb60ca1b620031d5565b8151600090631c1554d160e21b14806200390a57506020830151631c1554d160e21b145b90506000816200391c5760036200391f565b60025b60ff16905060608160405190808252806020026020018201604052801562003951578160200160208202803883390190505b5090508460006020020151816000815181106200396a57fe5b60209081029190910101528460016020020151816001815181106200398b57fe5b602002602001018181525050606082604051908082528060200260200182016040528015620039c4578160200160208202803883390190505b509050846000602002015181600081518110620039dd57fe5b6020908102919091010152846001602002015181600181518110620039fe57fe5b6020026020010181815250508362003ac257631c1554d160e21b8260028151811062003a2657fe5b60200260200101818152505073__$4ebb82ca590d84b81fb31f12bec06880a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801562003a7757600080fd5b505af415801562003a8c573d6000803e3d6000fd5b505050506040513d602081101562003aa357600080fd5b505181518290600290811062003ab557fe5b6020026020010181815250505b62003acc62004786565b6001600160a01b0316639f98fb4983836040518363ffffffff1660e01b8152600401808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101562003b3157818101518382015260200162003b17565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101562003b7257818101518382015260200162003b58565b50505050905001945050505050600060405180830381600087803b15801562003b9a57600080fd5b505af115801562003baf573d6000803e3d6000fd5b50505050505050505050565b600062003bc7620022fd565b90506000816001600160a01b0316637a018a1e886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801562003c1057600080fd5b505afa15801562003c25573d6000803e3d6000fd5b505050506040513d602081101562003c3c57600080fd5b505160408051633d00c50f60e11b81526004810188905290519192506000916001600160a01b03851691637a018a1e916024808301926020929190829003018186803b15801562003c8c57600080fd5b505afa15801562003ca1573d6000803e3d6000fd5b505050506040513d602081101562003cb857600080fd5b5051905062003cc662001d2c565b60408051630f2a761760e21b81526001600160a01b038c81166004830152602482018c9052604482018b9052606482018a90526084820189905260a482018890524260c483015260e48201869052610104820185905291519290911691633ca9d85c916101248082019260009290919082900301818387803b15801562003d4c57600080fd5b505af115801562003d61573d6000803e3d6000fd5b5050604080518b8152602081018b90528082018a9052606081018990526080810188905260a0810186905260c0810185905290516001600160a01b038d1693507f62e40d554c7abcdd31074960d8347a2225daeb04d93bc748f049ba2ce946239892509081900360e00190a2505050505050505050565b600062000fa66d54726164696e675265776172647360901b620031d5565b600082158062003e04575081155b1562003e1357506001620007dd565b60008383111562003e385762003e30838563ffffffff620048f916565b905062003e4d565b62003e4a848463ffffffff620048f916565b90505b62003e5762002d25565b11159392505050565b62003e6a620049e1565b60008060008060008060008062003e8062001d2c565b6001600160a01b03166315987eb68d8d8d6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b0316815260200183815260200182815260200193505050506101006040518083038186803b15801562003ee757600080fd5b505afa15801562003efc573d6000803e3d6000fd5b505050506040513d61010081101562003f1457600080fd5b50805160208083015160408085015160608087015160808089015160a0808b015160c0808d015160e09d8e01518a5161010081018c529d8e529b8d019a909a52978b019690965293890192909252870152850152830152918101919091529c9b505050505050505050505050565b600080600062003f91620022fd565b9050600062003f9f62002edb565b9050816001600160a01b031663109e46a286600001518760c001518860a00151856040518563ffffffff1660e01b81526004018085815260200184815260200183815260200182815260200194505050505060206040518083038186803b1580156200400a57600080fd5b505afa1580156200401f573d6000803e3d6000fd5b505050506040513d60208110156200403657600080fd5b505160408087015160e088015160a0890151835163084f235160e11b81526004810193909352602483019190915260448201526064810184905290519195506001600160a01b0384169163109e46a291608480820192602092909190829003018186803b158015620040a757600080fd5b505afa158015620040bc573d6000803e3d6000fd5b505050506040513d6020811015620040d357600080fd5b50519395939450505050565b6000620007da6200416a8373__$4ebb82ca590d84b81fb31f12bec06880a9$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156200412f57600080fd5b505af415801562004144573d6000803e3d6000fd5b505050506040513d60208110156200415b57600080fd5b50519063ffffffff620032b616565b849063ffffffff6200492716565b6000620041846200479f565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6e65786368616e67654665655261746560881b856040516020018083815260200182815260200192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156200422157600080fd5b505afa15801562004236573d6000803e3d6000fd5b505050506040513d60208110156200424d57600080fd5b505192915050565b6000826200426657506000620007dd565b828202828482816200427457fe5b0414620007da5760405162461bcd60e51b815260040180806020018281038252602181526020018062005e6f6021913960400191505060405180910390fd5b620042bd620022e7565b6001600160a01b03166357ad4663836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200430157600080fd5b505afa15801562004316573d6000803e3d6000fd5b505050506040513d60208110156200432d57600080fd5b505160408051632770a7eb60e21b81526001600160a01b0386811660048301526024820185905291519190921691639dc29fac91604480830192600092919082900301818387803b1580156200438257600080fd5b505af115801562004397573d6000803e3d6000fd5b50505050620043a562001db3565b6001600160a01b031663ace88afd8484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156200440d57600080fd5b505af115801562004422573d6000803e3d6000fd5b50505050600062004432620022fd565b6001600160a01b031663654a60ac8484631c1554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156200448d57600080fd5b505afa158015620044a2573d6000803e3d6000fd5b505050506040513d6020811015620044b957600080fd5b50519050620044c762004954565b6001600160a01b0316632a222dfe826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156200450d57600080fd5b505af115801562004522573d6000803e3d6000fd5b5050505050505050565b62004536620022e7565b6001600160a01b03166357ad4663836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156200457a57600080fd5b505afa1580156200458f573d6000803e3d6000fd5b505050506040513d6020811015620045a657600080fd5b50516040805163219e412d60e21b81526001600160a01b038681166004830152602482018590529151919092169163867904b491604480830192600092919082900301818387803b158015620045fb57600080fd5b505af115801562004610573d6000803e3d6000fd5b505050506200461e62001db3565b6001600160a01b0316636f01a9868484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b1580156200468657600080fd5b505af11580156200469b573d6000803e3d6000fd5b505050506000620046ab620022fd565b6001600160a01b031663654a60ac8484631c1554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156200470657600080fd5b505afa1580156200471b573d6000803e3d6000fd5b505050506040513d60208110156200473257600080fd5b505190506200474062004954565b6001600160a01b03166315712139826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156200450d57600080fd5b600062000fa66844656274436163686560b81b620031d5565b600062000fa66e466c657869626c6553746f7261676560881b620031d5565b6000606960f81b6001600160f81b031983831a60f81b16141562004829576040805162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207669727475616c697a6520746869732070796e746800000000604482015290519081900360640190fd5b60025460405186916001600160a01b0316908690869086906200484c9062004a2c565b6001600160a01b0395861681529385166020850152919093166040808401919091526060830193909352608082015290519081900360a001906000f0801580156200489b573d6000803e3d6000fd5b50604080516001600160a01b03808416825260208201869052818301879052915192935081871692918816917f40d987c0a731a91929904e2b9a1a44b1aa1c6ab528b7ee2e35652fe1691cbd369181900360600190a3949350505050565b6000620007da826200491a85670de0b6b3a764000063ffffffff6200425516565b9063ffffffff6200497516565b6000670de0b6b3a764000062004944848463ffffffff6200425516565b816200494c57fe5b049392505050565b600062000fa67021b937b9b9a1b430b4b726b0b730b3b2b960791b620031d5565b6000808211620049cc576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481620049d857fe5b04949350505050565b60405180610100016040528060008019168152602001600081526020016000801916815260200160008152602001600081526020016000815260200160008152602001600081525090565b6113898062004a3b8339019056fe60806040526004805460ff60a01b1916905534801561001d57600080fd5b50604051611389380380611389833981810160405260a081101561004057600080fd5b508051602082015160408301516060840151608090940151600380546001600160a01b038087166001600160a01b03199283161790925560048054928616929091169190911790556007819055929391929091906100a783836001600160e01b036100b416565b506005555061020f915050565b6001600160a01b03821661010f576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b610128816002546101ae60201b610b011790919060201c565b6002556001600160a01b03821660009081526020818152604090912054610158918390610b016101ae821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b600082820183811015610208576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b61116b8061021e6000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80633db3dc9b116100b85780638f7758391161007c5780638f7758391461036657806395d89b411461036e578063a457c2d714610376578063a9059cbb146103a2578063dbd06c85146103ce578063dd62ed3e146103d657610142565b80633db3dc9b146103005780634be37cea146103085780636a256b291461031057806370a082311461033857806378f2ac261461035e57610142565b806323b872dd1161010a57806323b872dd1461024a5780632c4e722e14610280578063313ce56714610288578063378dc3dc146102a657806339509351146102ae5780633af9e669146102da57610142565b806304f3bcec1461014757806306fdde031461016b578063095ea7b3146101e857806318160ddd146102285780631d0cbc8b14610242575b600080fd5b61014f610404565b604080516001600160a01b039092168252519081900360200190f35b610173610413565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ad578181015183820152602001610195565b50505050905090810190601f1680156101da5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610214600480360360408110156101fe57600080fd5b506001600160a01b03813516906020013561044d565b604080519115158252519081900360200190f35b610230610464565b60408051918252519081900360200190f35b61014f61046a565b6102146004803603606081101561026057600080fd5b506001600160a01b03813581169160208101359091169060400135610479565b6102306104d0565b6102906104df565b6040805160ff9092168252519081900360200190f35b6102306104e4565b610214600480360360408110156102c457600080fd5b506001600160a01b0381351690602001356104ea565b610230600480360360208110156102f057600080fd5b50356001600160a01b0316610526565b610230610531565b610230610537565b6103366004803603602081101561032657600080fd5b50356001600160a01b0316610541565b005b6102306004803603602081101561034e57600080fd5b50356001600160a01b03166105f5565b610214610610565b610214610620565b610173610630565b6102146004803603604081101561038c57600080fd5b506001600160a01b03813516906020013561065c565b610214600480360360408110156103b857600080fd5b506001600160a01b038135169060200135610698565b6102306106a5565b610230600480360360408110156103ec57600080fd5b506001600160a01b03813581169160200135166106ab565b6004546001600160a01b031681565b600754604080516d02b34b93a3ab0b610283cb73a34160951b6020820152602e8082019390935281518082039093018352604e0190525b90565b600061045a3384846106d6565b5060015b92915050565b60025490565b6003546001600160a01b031681565b60006104868484846107c2565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104c69186916104c1908663ffffffff61090416565b6106d6565b5060019392505050565b60006104da610961565b905090565b601281565b60055481565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161045a9185906104c1908663ffffffff610b0116565b600061045e82610b62565b60065481565b60006104da610b88565b610549610c22565b6003546001600160a01b031663a9059cbb8261056481610b62565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156105b357600080fd5b505af11580156105c7573d6000803e3d6000fd5b505050506040513d60208110156105dd57600080fd5b506105f29050816105ed816105f5565b610da2565b50565b6001600160a01b031660009081526020819052604090205490565b600061061a610b88565b15905090565b600454600160a01b900460ff1681565b60075460408051603b60f91b602082015260218082019390935281518082039093018352604101905290565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161045a9185906104c1908663ffffffff61090416565b600061045a3384846107c2565b60075481565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661071b5760405162461bcd60e51b81526004018080602001828103825260248152602001806111136024913960400191505060405180910390fd5b6001600160a01b0382166107605760405162461bcd60e51b815260040180806020018281038252602281526020018061108a6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166108075760405162461bcd60e51b81526004018080602001828103825260258152602001806110ee6025913960400191505060405180910390fd5b6001600160a01b03821661084c5760405162461bcd60e51b81526004018080602001828103825260238152602001806110676023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610875908263ffffffff61090416565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546108aa908263ffffffff610b0116565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561095b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000600554600014156109765750600061044a565b600454600090600160a01b900460ff16610ae257600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156109d557600080fd5b505afa1580156109e9573d6000803e3d6000fd5b505050506040513d60208110156109ff57600080fd5b50519050600080610a0e610e7b565b6001600160a01b03166319d5c665306007546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060606040518083038186803b158015610a6d57600080fd5b505afa158015610a81573d6000803e3d6000fd5b505050506040513d6060811015610a9757600080fd5b50805160209091015190925090508115610ac257610abb838363ffffffff61090416565b9250610adb565b8015610adb57610ad8838263ffffffff610b0116565b92505b5050610ae7565b506006545b600554610afb90829063ffffffff610f0a16565b91505090565b600082820183811015610b5b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600080610b6e836105f5565b9050610b5b610b7b610961565b829063ffffffff610f1f16565b6000610b92610e7b565b6001600160a01b031663059c29ec306007546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b158015610bf157600080fd5b505afa158015610c05573d6000803e3d6000fd5b505050506040513d6020811015610c1b57600080fd5b5051905090565b600454600160a01b900460ff1615610c3957610da0565b6004805460ff60a01b1916600160a01b179055610c54610e7b565b6001600160a01b0316631b16802c306007546040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050606060405180830381600087803b158015610cb557600080fd5b505af1158015610cc9573d6000803e3d6000fd5b505050506040513d6060811015610cdf57600080fd5b5050600354604080516370a0823160e01b815230600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b158015610d2c57600080fd5b505afa158015610d40573d6000803e3d6000fd5b505050506040513d6020811015610d5657600080fd5b50516006557ff5b268a3ff315cc44ccceeef86259c9e8eef81ceecb14001543809115380dd62610d84610464565b6006546040805192835260208301919091528051918290030190a15b565b6001600160a01b038216610de75760405162461bcd60e51b81526004018080602001828103825260218152602001806110cd6021913960400191505060405180910390fd5b600254610dfa908263ffffffff61090416565b6002556001600160a01b038216600090815260208190526040902054610e26908263ffffffff61090416565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b600480546040805163dacb2d0160e01b81526822bc31b430b733b2b960b91b9381019390935260248301819052601c60448401527f45786368616e67657220636f6e7472616374206e6f7420666f756e64000000006064840152516000926001600160a01b039092169163dacb2d01916084808301926020929190829003018186803b158015610bf157600080fd5b6000610b5b8383670de0b6b3a7640000610f34565b6000610b5b8383670de0b6b3a7640000610f78565b600080610f5a84610f4e87600a870263ffffffff610fa316565b9063ffffffff610ffc16565b90506005600a825b0610610f6c57600a015b600a9004949350505050565b600080600a8304610f8f868663ffffffff610fa316565b81610f9657fe5b0490506005600a82610f62565b600082610fb25750600061045e565b82820282848281610fbf57fe5b0414610b5b5760405162461bcd60e51b81526004018080602001828103825260218152602001806110ac6021913960400191505060405180910390fd5b6000808211611052576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161105d57fe5b0494935050505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a265627a7a72315820ef43bb92953d59b0d8de183e233cb8fc811d4e400b00b2d246134bdc9e747dc964736f6c63430005100032596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e65727368697045786368616e6765723a204f6e6c79207065726946696e616e6365206f7220612070796e746820636f6e74726163742063616e20706572666f726d207468697320616374696f6e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775372632f64657374207261746520696e76616c6964206f72206e6f7420666f756e6443616e6e6f7420736574746c6520647572696e672077616974696e6720706572696f64a265627a7a72315820ca6dfa6d5187100b480c48980f97dfd6deab3db61a6900c844a76259c9234b8664736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"name": "ExchangeEntryAppended",
					"type": "event",
					"signature": "0x62e40d554c7abcdd31074960d8347a2225daeb04d93bc748f049ba2ce9462398"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "reclaim",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rebate",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "srcRoundIdAtPeriodEnd",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "destRoundIdAtPeriodEnd",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "exchangeTimestamp",
							"type": "uint256"
						}
					],
					"name": "ExchangeEntrySettled",
					"type": "event",
					"signature": "0x8e3ad1f68bec55de3b6fa12ae2674a2a683a17c918a4cbf5157ac5d9ddc6e940"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "pynth",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "recipient",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "vPynth",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "VirtualPynthCreated",
					"type": "event",
					"signature": "0x40d987c0a731a91929904e2b9a1a44b1aa1c6ab528b7ee2e35652fe1691cbd36"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CIRCUIT_BREAKER_SUSPENSION_REASON",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3fa70f45"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "refunded",
							"type": "uint256"
						}
					],
					"name": "calculateAmountAfterSettlement",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountAfterSettlement",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4c268fc8"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destinationAddress",
							"type": "address"
						}
					],
					"name": "exchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0a1e187d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "exchangeOnBehalf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6a1c4758"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "exchangeForAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "originator",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeOnBehalfWithTracking",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xdfffca76"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destinationAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "originator",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithTracking",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x86baa45c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "destinationAddress",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "trackingCode",
							"type": "bytes32"
						}
					],
					"name": "exchangeWithVirtual",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "contract IVirtualPynth",
							"name": "vPynth",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf3995224"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "feeRateForExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1a5c6095"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "sourceAmount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "sourceCurrencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "destinationCurrencyKey",
							"type": "bytes32"
						}
					],
					"name": "getAmountsForExchange",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "fee",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf450aa34"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "hasWaitingPeriodOrSettlementOwing",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd6f32e06"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "isPynthRateInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa4a9c266"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "lastExchangeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7dd1a57a"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "maxSecsLeftInWaitingPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x059c29ec"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "priceDeviationThresholdFactor",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x372a395a"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "resetLastExchangeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x24286df0"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "setLastExchangeRateForPynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x57630a40"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "settle",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "refunded",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntriesSettled",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1b16802c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "settlementOwing",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "reclaimAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "rebateAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numEntries",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x19d5c665"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "suspendPynthWithInvalidRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0aed5b46"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tradingRewardsEnabled",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc193f0d8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "waitingPeriodSecs",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x89257117"
				}
			],
			"source": {
				"keccak256": "0x387f89bc4222cbab30c531e898eebcb17f69040310b66c9c06c5748de7561a97",
				"urls": [
					"bzz-raw://2d568ace16ea27c4fc1d83c4df865a00b92b127e1ee92e64a8ccd0163c16e862",
					"dweb:/ipfs/QmQm7MPGAHwaHDeq5WFWpKoZsqeKJKR6o1k8PnZ4aNhUX4"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangerWithVirtualPynth.sol": "ExchangerWithVirtualPynth"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangerWithVirtualPynth.sol": {
						"keccak256": "0x387f89bc4222cbab30c531e898eebcb17f69040310b66c9c06c5748de7561a97",
						"urls": [
							"bzz-raw://2d568ace16ea27c4fc1d83c4df865a00b92b127e1ee92e64a8ccd0163c16e862",
							"dweb:/ipfs/QmQm7MPGAHwaHDeq5WFWpKoZsqeKJKR6o1k8PnZ4aNhUX4"
						]
					}
				},
				"version": 1
			}
		},
		"ExchangeState": {
			"bytecode": "6080604052600c60045534801561001557600080fd5b50604051610bc5380380610bc58339818101604052604081101561003857600080fd5b50805160209091015180826001600160a01b03811661009e576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610148576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a1505050610a1a806101ab6000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806379ba50971161008c578063b44e975311610066578063b44e975314610290578063cd8b94dc146102bc578063d0d3d62a146102d9578063f1406dc814610305576100ea565b806379ba5097146102785780638da5cb5b14610280578063aefc4ccb14610288576100ea565b80633ca9d85c116100c85780633ca9d85c146101a457806352f445ca146101fc57806353a47bb7146102225780636e13fe7614610246576100ea565b80630d40d0cf146100ef57806315987eb6146101095780631627540c1461017c575b600080fd5b6100f7610331565b60408051918252519081900360200190f35b61013b6004803603606081101561011f57600080fd5b506001600160a01b038135169060208101359060400135610337565b604080519889526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b6101a26004803603602081101561019257600080fd5b50356001600160a01b03166103dc565b005b6101a260048036036101208110156101bb57600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060a08101359060c08101359060e0810135906101000135610438565b6101a26004803603602081101561021257600080fd5b50356001600160a01b03166105aa565b61022a610606565b604080516001600160a01b039092168252519081900360200190f35b61013b6004803603606081101561025c57600080fd5b506001600160a01b038135169060208101359060400135610615565b6101a261067f565b61022a61073b565b61022a61074a565b6100f7600480360360408110156102a657600080fd5b506001600160a01b038135169060200135610759565b6101a2600480360360208110156102d257600080fd5b5035610781565b6101a2600480360360408110156102ef57600080fd5b506001600160a01b03813516906020013561078e565b6100f76004803603604081101561031b57600080fd5b506001600160a01b038135169060200135610807565b60045481565b6000806000806000806000806000600360008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008c81526020019081526020016000208a8154811061038657fe5b906000526020600020906008020190508060000154816001015482600201548360030154846004015485600501548660060154876007015498509850985098509850985098509850509397509397509397509397565b6103e461088d565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002546001600160a01b031633146104815760405162461bcd60e51b81526004018080602001828103825260348152602001806109b26034913960400191505060405180910390fd5b6004546001600160a01b038a1660009081526003602090815260408083208a8452909152902054106104fa576040805162461bcd60e51b815260206004820152601860248201527f4d6178207175657565206c656e67746820726561636865640000000000000000604482015290519081900360640190fd5b6001600160a01b03909816600090815260036020818152604080842089855282528084208151610100810183529b8c528b83019a8b52908b0198895260608b0197885260808b0196875260a08b0195865260c08b0194855260e08b019b8c5280546001818101835591855291909320995160089091029099019889559651908801559351600287015591519385019390935591516004840155905160058301555160068201559051600790910155565b6105b261088d565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6003602052826000526040600020602052816000526040600020818154811061063a57fe5b60009182526020909120600890910201805460018201546002830154600384015460048501546005860154600687015460079097015495995093975091955093909288565b6001546001600160a01b031633146106c85760405162461bcd60e51b815260040180806020018281038252603581526020018061094e6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6002546001600160a01b031681565b6001600160a01b03919091166000908152600360209081526040808320938352929052205490565b61078961088d565b600455565b6002546001600160a01b031633146107d75760405162461bcd60e51b81526004018080602001828103825260348152602001806109b26034913960400191505060405180910390fd5b6001600160a01b03821660009081526003602090815260408083208484529091528120610803916108d8565b5050565b6001600160a01b0382166000908152600360209081526040808320848452909152812081805b8254811015610884578183828154811061084357fe5b906000526020600020906008020160050154111561087c5782818154811061086757fe5b90600052602060002090600802016005015491505b60010161082d565b50949350505050565b6000546001600160a01b031633146108d65760405162461bcd60e51b815260040180806020018281038252602f815260200180610983602f913960400191505060405180910390fd5b565b50805460008255600802906000526020600020908101906108f991906108fc565b50565b61094a91905b808211156109465760008082556001820181905560028201819055600382018190556004820181905560058201819055600682018190556007820155600801610902565b5090565b9056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a723158204c8fb8d0e7f2791ee623febabfec4954899fdb15d39e2a6fd8b5381b04c9b66e64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"name": "appendExchangeEntry",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3ca9d85c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "exchanges",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6e13fe76"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getEntryAt",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "src",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "dest",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amountReceived",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exchangeFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForSrc",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "roundIdForDest",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x15987eb6"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getLengthOfEntries",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb44e9753"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getMaxTimestamp",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf1406dc8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxEntriesInQueue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0d40d0cf"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removeEntries",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd0d3d62a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxEntriesInQueue",
							"type": "uint256"
						}
					],
					"name": "setMaxEntriesInQueue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xcd8b94dc"
				}
			],
			"source": {
				"keccak256": "0xacc3338a9ac541bcb696a30aa024e8878b81f18fc7420b229944223a92d129bf",
				"urls": [
					"bzz-raw://8b10b4eaed164864720d3bbc8a2ff3e9679c5eccfe5b22e44c9a19b08662542f",
					"dweb:/ipfs/QmTZy1uuoBgyzpaPrhxH3f9F2Q6Kc2e2znPtWoh5mNRYqG"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExchangeState.sol": "ExchangeState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExchangeState.sol": {
						"keccak256": "0xacc3338a9ac541bcb696a30aa024e8878b81f18fc7420b229944223a92d129bf",
						"urls": [
							"bzz-raw://8b10b4eaed164864720d3bbc8a2ff3e9679c5eccfe5b22e44c9a19b08662542f",
							"dweb:/ipfs/QmTZy1uuoBgyzpaPrhxH3f9F2Q6Kc2e2znPtWoh5mNRYqG"
						]
					}
				},
				"version": 1
			}
		},
		"Issuer": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200603438038062006034833981810160405260408110156200003757600080fd5b5080516020909101518080836001600160a01b0381166200009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039092166001600160a01b0319909216919091179055505050615f08806200012c6000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80638d542eb311610130578063b42652e9116100b8578063d99947de1161007c578063d99947de146107ce578063dd3d2b2e146107d6578063f023e8db146107fc578063f0617e5b14610821578063f5adc4f51461084757610232565b8063b42652e9146106f2578063becf5ff814610718578063c29ea3141461073e578063c9a2f3ad1461077c578063d37c4d8b146107a257610232565b80639df95f9f116100ff5780639df95f9f14610614578063a311c7c214610631578063a5fdc5de14610657578063a63c4df41461067d578063ae3bbbbb146106cc57610232565b80638d542eb3146105675780638da5cb5b146105ac5780639288e704146105b457806394955cec146105ee57610232565b806353a47bb7116101be5780636ac471c4116101825780636ac471c41461051557806372cb051f14610547578063741853601461054f57806379ba509714610557578063899ffef41461055f57610232565b806353a47bb71461044257806355182ccb1461044a5780635543dadc1461048257806357ad4663146104f0578063614d08f81461050d57610232565b80631db63a33116102055780631db63a33146102e15780632ae78fdb1461039f5780632af64bd3146103d95780633b09280a146103e15780634c29b0af1461042557610232565b806304f3bcec1461023757806308f95a621461025b5780631627540c1461028f578063171af063146102b5575b600080fd5b61023f61084f565b604080516001600160a01b039092168252519081900360200190f35b61028d6004803603606081101561027157600080fd5b506001600160a01b03813516906020810135906040013561085e565b005b61028d600480360360208110156102a557600080fd5b50356001600160a01b0316610a6b565b61028d600480360360408110156102cb57600080fd5b506001600160a01b038135169060200135610ac7565b61034f600480360360208110156102f757600080fd5b810190602081018135600160201b81111561031157600080fd5b82018360208201111561032357600080fd5b803590602001918460208302840111600160201b8311171561034457600080fd5b509092509050610d8f565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561038b578181015183820152602001610373565b505050509050019250505060405180910390f35b6103c5600480360360208110156103b557600080fd5b50356001600160a01b0316610e3d565b604080519115158252519081900360200190f35b6103c5610e48565b610407600480360360208110156103f757600080fd5b50356001600160a01b0316610f53565b60408051938452602084019290925282820152519081900360600190f35b61028d6004803603602081101561043b57600080fd5b5035610f6f565b61023f611057565b6104706004803603602081101561046057600080fd5b50356001600160a01b0316611066565b60408051918252519081900360200190f35b61028d6004803603602081101561049857600080fd5b810190602081018135600160201b8111156104b257600080fd5b8201836020820111156104c457600080fd5b803590602001918460208302840111600160201b831117156104e557600080fd5b50909250905061107a565b61023f6004803603602081101561050657600080fd5b503561112a565b610470611145565b61028d6004803603606081101561052b57600080fd5b506001600160a01b038135169060208101359060400135611152565b61034f6112ad565b61028d6112be565b61028d611482565b61034f61153e565b6105936004803603604081101561057d57600080fd5b506001600160a01b038135169060200135611810565b6040805192835290151560208301528051918290030190f35b61023f611930565b610470600480360360808110156105ca57600080fd5b506001600160a01b038135169060208101359060408101359060600135151561193f565b61028d6004803603602081101561060457600080fd5b50356001600160a01b0316611a0a565b61023f6004803603602081101561062a57600080fd5b5035611c5c565b6104706004803603602081101561064757600080fd5b50356001600160a01b0316611c83565b6104706004803603602081101561066d57600080fd5b50356001600160a01b0316611c95565b6106b36004803603606081101561069357600080fd5b506001600160a01b03813581169160208101359160409091013516611ca0565b6040805192835260208301919091528051918290030190f35b610593600480360360208110156106e257600080fd5b50356001600160a01b031661259b565b61028d6004803603602081101561070857600080fd5b50356001600160a01b03166125b1565b6106b36004803603602081101561072e57600080fd5b50356001600160a01b0316612642565b61028d600480360360a081101561075457600080fd5b508035906001600160a01b0360208201351690604081013590606081013590608001356127c1565b6104706004803603602081101561079257600080fd5b50356001600160a01b0316612997565b610470600480360360408110156107b857600080fd5b506001600160a01b0381351690602001356129a9565b610470612a53565b610470600480360360208110156107ec57600080fd5b50356001600160a01b0316612a59565b6105936004803603604081101561081257600080fd5b50803590602001351515612a64565b61028d6004803603602081101561083757600080fd5b50356001600160a01b0316612a7c565b6103c5612abc565b6002546001600160a01b031681565b610866612c22565b61086f82612c7b565b635045524960e01b82146109aa57600061089761088a612cd0565b839063ffffffff612d7716565b905060006108a3612d93565b60408051631167f01160e31b81526001600160a01b0388811660048301528251931692638b3f808892602480840193919291829003018186803b1580156108e957600080fd5b505afa1580156108fd573d6000803e3d6000fd5b505050506040513d604081101561091357600080fd5b5051905061092081612db1565b610928612df9565b604080516304b1836b60e41b81526001600160a01b0388811660048301526024820186905260448201889052631c1554d160e21b606483015291519290911691634b1836b09160848082019260009290919082900301818387803b15801561098f57600080fd5b505af11580156109a3573d6000803e3d6000fd5b5050505050505b6000806000806109b987612e20565b93509350935093506109ca81612e88565b60006109db88878787876000612edb565b90506109e5612df9565b6040805163da224edd60e01b81526001600160a01b038b81166004830152602482018590526000604483018190526064830181905260016084840152925193169263da224edd9260a480840193919291829003018186803b158015610a4957600080fd5b505afa158015610a5d573d6000803e3d6000fd5b505050505050505050505050565b610a736130e0565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610acf612c22565b610ad881612c7b565b635045524960e01b811415610b1e5760405162461bcd60e51b8152600401808060200182810382526024815260200180615eb06024913960400191505060405180910390fd5b600080600080610b2d86612e20565b9350935093509350610b3e81612e88565b610b4783612db1565b6000610b51612df9565b6001600160a01b0316637a84b61788631c1554d160e21b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b158015610bb557600080fd5b505afa158015610bc9573d6000803e3d6000fd5b505050506040513d6020811015610bdf57600080fd5b50519050600080610bf28987858b613129565b91509150600082118015610c065750600081115b610c50576040805162461bcd60e51b81526020600482015260166024820152754e6f7420617661696c61626c6520746f207374616b6560501b604482015290519081900360640190fd5b610c58612df9565b604080516304b1836b60e41b81526001600160a01b038c8116600483015260248201859052604482018c9052631c1554d160e21b606483015291519290911691634b1836b09160848082019260009290919082900301818387803b158015610cbf57600080fd5b505af1158015610cd3573d6000803e3d6000fd5b50505050610cea82886132fe90919063ffffffff16565b96506000610cfd8a848a8a8a6000612edb565b9050610d07612df9565b6040805163da224edd60e01b81526001600160a01b038d81166004830152602482018590526000604483018190526064830181905260016084840152925193169263da224edd9260a480840193919291829003018186803b158015610d6b57600080fd5b505afa158015610d7f573d6000803e3d6000fd5b5050505050505050505050505050565b60408051828152602080840282010190915260609082908290828015610dbf578160200160208202803883390190505b50905060005b82811015610e325760056000878784818110610ddd57fe5b90506020020135815260200190815260200160002060009054906101000a90046001600160a01b0316828281518110610e1257fe5b6001600160a01b0390921660209283029190910190910152600101610dc5565b509150505b92915050565b6000610e3782613358565b60006060610e5461153e565b905060005b8151811015610f49576000828281518110610e7057fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610ed857600080fd5b505afa158015610eec573d6000803e3d6000fd5b505050506040513d6020811015610f0257600080fd5b50516001600160a01b0316141580610f2f57506000818152600360205260409020546001600160a01b0316155b15610f405760009350505050610f50565b50600101610e59565b5060019150505b90565b6000806000610f6184612e20565b509196909550909350915050565b610f776130e0565b6000610f81613383565b9050806001600160a01b0316638376a7828360006040518363ffffffff1660e01b81526004018083815260200182815260200192505050600060405180830381600087803b158015610fd257600080fd5b505af1158015610fe6573d6000803e3d6000fd5b5050604080516304bd11e560e01b81526001600482015290516001600160a01b03851693506304bd11e59250602480830192600092919082900301818387803b15801561103257600080fd5b505af1158015611046573d6000803e3d6000fd5b505050506110538261339a565b5050565b6001546001600160a01b031681565b60008061107283613616565b509392505050565b6110826130e0565b8060005b818110156110ba576110b284848381811061109d57fe5b905060200201356001600160a01b0316613780565b600101611086565b506110c3613383565b6001600160a01b03166304bd11e560016040518263ffffffff1660e01b81526004018082151515158152602001915050600060405180830381600087803b15801561110d57600080fd5b505af1158015611121573d6000803e3d6000fd5b50505050505050565b6005602052600090815260409020546001600160a01b031681565b6524b9b9bab2b960d11b81565b61115a612c22565b61116382612c7b565b635045524960e01b8214156112135761117a612df9565b6001600160a01b031663da224edd846111968685600080613923565b604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091526000604483018190526064830181905260848301819052905160a480840193829003018186803b1580156111f657600080fd5b505afa15801561120a573d6000803e3d6000fd5b505050506112a8565b61121b612df9565b6001600160a01b031663b23e505384611242611235612cd0565b859063ffffffff612d7716565b85631c1554d160e21b6040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b03168152602001848152602001838152602001828152602001945050505050600060405180830381600087803b15801561110d57600080fd5b505050565b60606112b96000613c24565b905090565b60606112c861153e565b905060005b81518110156110535760008282815181106112e457fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561139a578181015183820152602001611382565b50505050905090810190601f1680156113c75780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b1580156113e557600080fd5b505afa1580156113f9573d6000803e3d6000fd5b505050506040513d602081101561140f57600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016112cd565b6001546001600160a01b031633146114cb5760405162461bcd60e51b8152600401808060200182810382526035815260200180615dce6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080611549613d01565b60408051600f808252610200820190925291925060609190602082016101e0803883390190505090506a5065726946696e616e636560a81b8160008151811061158e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b816001815181106115b457fe5b6020026020010181815250506c45786368616e6765526174657360981b816002815181106115de57fe5b6020026020010181815250506f5065726946696e616e6365537461746560801b8160038151811061160b57fe5b60200260200101818152505066119959541bdbdb60ca1b8160048151811061162f57fe5b6020026020010181815250507044656c6567617465417070726f76616c7360781b8160058151811061165d57fe5b6020026020010181815250506e115d1a195c90dbdb1b185d195c985b608a1b8160068151811061168957fe5b60200260200101818152505072115d1a195c90dbdb1b185d195c985b1c1554d1606a1b816007815181106116b957fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b816008815181106116e457fe5b602002602001018181525050705065726946696e616e6365457363726f7760781b8160098151811061171257fe5b6020026020010181815250506b4c69717569646174696f6e7360a01b81600a8151811061173b57fe5b6020026020010181815250506844656274436163686560b81b81600b8151811061176157fe5b6020026020010181815250507021b7b63630ba32b930b626b0b730b3b2b960791b81600c8151811061178f57fe5b6020026020010181815250507822bc3a32b93730b62a37b5b2b729ba30b5b2a6b0b730b3b2b960391b81600d815181106117c557fe5b6020026020010181815250507021b937b9b9a1b430b4b726b0b730b3b2b960791b81600e815181106117f357fe5b6020026020010181815250506118098282613d52565b9250505090565b60008060008061182786635045524960e01b613e07565b92505091506000611846611839612cd0565b849063ffffffff612d7716565b90506000611852612df9565b6001600160a01b0316637a84b61789635045524960e01b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b1580156118b657600080fd5b505afa1580156118ca573d6000803e3d6000fd5b505050506040513d60208110156118e057600080fd5b5051905060008183116118f4576000611904565b611904838363ffffffff6140ea16565b9050878110156119215761191e888263ffffffff6140ea16565b96505b83955050505050509250929050565b6000546001600160a01b031681565b600080600061195587631c1554d160e21b613e07565b925050915061196381612e88565b61196b612df9565b60408051637036383d60e11b81526001600160a01b038a8116600483015260248201869052604482018a90526064820189905287151560848301529151929091169163e06c707a9160a480820192602092909190829003018186803b1580156119d357600080fd5b505afa1580156119e7573d6000803e3d6000fd5b505050506040513d60208110156119fd57600080fd5b5051979650505050505050565b611a12612c22565b600080611a2683631c1554d160e21b613e07565b92505091506000611a35612df9565b6001600160a01b0316637a84b61785631c1554d160e21b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b158015611a9957600080fd5b505afa158015611aad573d6000803e3d6000fd5b505050506040513d6020811015611ac357600080fd5b50519050600080611ad2614147565b6001600160a01b0316630c71cd23635045524960e01b6040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015611b1b57600080fd5b505afa158015611b2f573d6000803e3d6000fd5b505050506040513d6040811015611b4557600080fd5b5080516020909101519092509050611b648480611b5f5750815b612e88565b6000611b78611b7288614162565b846142c7565b9050611b8a848263ffffffff6132fe16565b611ba257611b9c876000600180613923565b50611121565b600080611bb08887856142d9565b91509150611bc2898360016000613923565b50611bcb612df9565b6001600160a01b031663adba5c688a83631c1554d160e21b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b158015611c3957600080fd5b505af1158015611c4d573d6000803e3d6000fd5b50505050505050505050505050565b60048181548110611c6957fe5b6000918252602090912001546001600160a01b0316905081565b6000611c8e826144ef565b5092915050565b6000610e3782614162565b600080611cab612c22565b611cb3614602565b6001600160a01b031663d6f32e0684631c1554d160e21b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b158015611d1757600080fd5b505afa158015611d2b573d6000803e3d6000fd5b505050506040513d6020811015611d4157600080fd5b505115611d95576040805162461bcd60e51b815260206004820152601860248201527f70555344206e6565647320746f20626520736574746c65640000000000000000604482015290519081900360640190fd5b611d9d614619565b6001600160a01b031663c49e80a6866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611df257600080fd5b505afa158015611e06573d6000803e3d6000fd5b505050506040513d6020811015611e1c57600080fd5b5051611e6f576040805162461bcd60e51b815260206004820181905260248201527f4163636f756e74206e6f74206f70656e20666f72206c69717569646174696f6e604482015290519081900360640190fd5b631c1554d160e21b60005260056020908152600080516020615e9083398151915254604080516370a0823160e01b81526001600160a01b0387811660048301529151889492909316926370a0823192602480840193919291829003018186803b158015611edb57600080fd5b505afa158015611eef573d6000803e3d6000fd5b505050506040513d6020811015611f0557600080fd5b50511015611f4c576040805162461bcd60e51b815260206004820152600f60248201526e139bdd08195b9bdd59da081c1554d1608a1b604482015290519081900360640190fd5b6060611f56612df9565b6001600160a01b031663273cbaa06040518163ffffffff1660e01b815260040160006040518083038186803b158015611f8e57600080fd5b505afa158015611fa2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611fcb57600080fd5b8101908080516040519392919084600160201b821115611fea57600080fd5b908301906020820185811115611fff57600080fd5b82518660208202830111600160201b8211171561201b57600080fd5b82525081516020918201928201910280838360005b83811015612048578181015183820152602001612030565b505050509050016040525050509050600080600061206d89631c1554d160e21b613e07565b92509250925060008061207e614147565b6001600160a01b0316630c71cd23635045524960e01b6040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b1580156120c757600080fd5b505afa1580156120db573d6000803e3d6000fd5b505050506040513d60408110156120f157600080fd5b508051602090910151909250905061210f8380611b5f575081612e88565b60006121a361211c614633565b6001600160a01b03166370a082318e6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561217157600080fd5b505afa158015612185573d6000803e3d6000fd5b505050506040513d602081101561219b57600080fd5b5051846142c7565b905060005b875181101561227e576122746121bc612df9565b6001600160a01b031663ad47ffc58f8b85815181106121d757fe5b6020026020010151631c1554d160e21b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001838152602001828152602001935050505060206040518083038186803b15801561223b57600080fd5b505afa15801561224f573d6000803e3d6000fd5b505050506040513d602081101561226557600080fd5b5051839063ffffffff6132fe16565b91506001016121a8565b506000612289614619565b6001600160a01b0316630ac045d588846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156122d457600080fd5b505afa1580156122e8573d6000803e3d6000fd5b505050506040513d60208110156122fe57600080fd5b505190508b811061230f578b612311565b805b9850600061241761240a612323614619565b6001600160a01b03166323f5589a6040518163ffffffff1660e01b815260040160206040518083038186803b15801561235b57600080fd5b505afa15801561236f573d6000803e3d6000fd5b505050506040513d602081101561238557600080fd5b505160408051630241ebdb60e61b8152905173__$595c53754087f91f9b1379b44678cc419e$__9163907af6c0916004808301926020929190829003018186803b1580156123d257600080fd5b505af41580156123e6573d6000803e3d6000fd5b505050506040513d60208110156123fc57600080fd5b50519063ffffffff6132fe16565b8b9063ffffffff61464c16565b90508281111561244157508161243e612431612323614619565b849063ffffffff61467616565b99505b612449612df9565b6001600160a01b0316635c833bfd8f838f6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001838152602001826001600160a01b03166001600160a01b031681526020019350505050602060405180830381600087803b1580156124c257600080fd5b505af11580156124d6573d6000803e3d6000fd5b505050506040513d60208110156124ec57600080fd5b505190506124fa81866146a0565b9a506125098e8d8c8b8b6146b2565b50818a141561258a5761251a614619565b6001600160a01b031663974e9e7f8f6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561257157600080fd5b505af1158015612585573d6000803e3d6000fd5b505050505b505050505050505050935093915050565b6000806125a7836144ef565b915091505b915091565b6125b9612c22565b6125c7816000600180613923565b506125d0612df9565b6001600160a01b031663b42652e9826040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b15801561262757600080fd5b505af115801561263b573d6000803e3d6000fd5b5050505050565b60008060008061265985631c1554d160e21b613e07565b92505091506000612668612df9565b6001600160a01b0316637a84b61787631c1554d160e21b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b1580156126cc57600080fd5b505afa1580156126e0573d6000803e3d6000fd5b505050506040513d60208110156126f657600080fd5b50519050600080612705614147565b6001600160a01b0316630c71cd23635045524960e01b6040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561274e57600080fd5b505afa158015612762573d6000803e3d6000fd5b505050506040513d604081101561277857600080fd5b50805160209091015190925090506000612794611b728a614162565b90506127a68580611b5f575082612e88565b6127b18685836142d9565b909a909950975050505050505050565b6127c96130e0565b60006127d3612d93565b905060006127e7858463ffffffff6132fe16565b905060006127fb868363ffffffff61497316565b905061281d82612811888863ffffffff6132fe16565b9063ffffffff61497316565b9050826001600160a01b031663a764eb4588836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561287f57600080fd5b505af1158015612893573d6000803e3d6000fd5b50505050826001600160a01b0316633d31e97b6129366129298473__$595c53754087f91f9b1379b44678cc419e$__63d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186803b1580156128f157600080fd5b505af4158015612905573d6000803e3d6000fd5b505050506040513d602081101561291b57600080fd5b50519063ffffffff6140ea16565b8b9063ffffffff61498c16565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561296c57600080fd5b505af1158015612980573d6000803e3d6000fd5b5050505061298d876149a5565b5050505050505050565b60066020526000908152604090205481565b6000806129b4612d93565b60408051631167f01160e31b81526001600160a01b038781166004830152825193945060009390851692638b3f80889260248082019391829003018186803b1580156129ff57600080fd5b505afa158015612a13573d6000803e3d6000fd5b505050506040513d6040811015612a2957600080fd5b5051905080612a3d57600092505050610e37565b612a478585613e07565b50909695505050505050565b60045490565b6000610e3782614a9d565b600080612a718484614b81565b909590945092505050565b612a84612c22565b600080600080612a9385612e20565b9350935093509350612aa481612e88565b612ab48560008686866001612edb565b505050505050565b6000612ac6614147565b6001600160a01b031663c8e5bbd5612ade6001613c24565b6040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b83811015612b2d578181015183820152602001612b15565b505050509050019250505060006040518083038186803b158015612b5057600080fd5b505afa158015612b64573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040908152811015612b8d57600080fd5b8101908080516040519392919084600160201b821115612bac57600080fd5b908301906020820185811115612bc157600080fd5b82518660208202830111600160201b82111715612bdd57600080fd5b82525081516020918201928201910280838360005b83811015612c0a578181015183820152602001612bf2565b50505050919091016040525060200151949350505050565b612c2a614633565b6001600160a01b0316336001600160a01b031614612c795760405162461bcd60e51b815260040180806020018281038252603d815260200180615e03603d913960400191505060405180910390fd5b565b631c1554d160e21b811415612ccd576040805162461bcd60e51b8152602060048201526013602482015272705553442069736e2774207374616b61626c6560681b604482015290519081900360640190fd5b50565b6000612cda614f26565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612d4657600080fd5b505afa158015612d5a573d6000803e3d6000fd5b505050506040513d6020811015612d7057600080fd5b5051905090565b6000612d8c8383670de0b6b3a7640000614f43565b9392505050565b60006112b96f5065726946696e616e6365537461746560801b614f7b565b60008111612ccd576040805162461bcd60e51b815260206004820152601060248201526f155cd95c881a185cc81b9bc81919589d60821b604482015290519081900360640190fd5b60006112b97822bc3a32b93730b62a37b5b2b729ba30b5b2a6b0b730b3b2b960391b614f7b565b600080600080612e3785631c1554d160e21b613e07565b91945092509050600080612e4a87613616565b915091508195508280612e5a5750805b9250858510612e6c5760009550612e7f565b612e7c868663ffffffff6140ea16565b95505b50509193509193565b8015612ccd576040805162461bcd60e51b815260206004820152601f60248201527f412070796e7468206f722050455249207261746520697320696e76616c696400604482015290519081900360640190fd5b600081612f2f5784861115612f2a576040805162461bcd60e51b815260206004820152601060248201526f416d6f756e7420746f6f206c6172676560801b604482015290519081900360640190fd5b612f33565b8495505b612f3f87878686615058565b612f4887615590565b631c1554d160e21b60009081526005602052600080516020615e90833981519152546040805163219e412d60e21b81526001600160a01b038b81166004830152602482018b90529151919092169263867904b4926044808201939182900301818387803b158015612fb857600080fd5b505af1158015612fcc573d6000803e3d6000fd5b50505050612fd8613383565b6001600160a01b0316638376a782631c1554d160e21b73__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561303257600080fd5b505af4158015613046573d6000803e3d6000fd5b505050506040513d602081101561305c57600080fd5b5051604080516001600160e01b031960e086901b1681526004810193909352602483019190915251604480830192600092919082900301818387803b1580156130a457600080fd5b505af11580156130b8573d6000803e3d6000fd5b505050506130c5876149a5565b6130d5848763ffffffff6132fe16565b979650505050505050565b6000546001600160a01b03163314612c795760405162461bcd60e51b815260040180806020018281038252602f815260200180615e40602f913960400191505060405180910390fd5b6000806000613136612cd0565b90506000613142615642565b905060006131668361315a8a8563ffffffff61464c16565b9063ffffffff61467616565b905080871061317f5750600093508392506132f5915050565b6131da6131ca8373__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156128f157600080fd5b61315a838a63ffffffff6140ea16565b935060006131e6612df9565b6001600160a01b031663b12e4410886040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561322957600080fd5b505afa15801561323d573d6000803e3d6000fd5b505050506040513d602081101561325357600080fd5b5051604080516370a0823160e01b81526001600160a01b038d81166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561329f57600080fd5b505afa1580156132b3573d6000803e3d6000fd5b505050506040513d60208110156132c957600080fd5b505190508481106132da57846132dc565b805b94506132ee858563ffffffff61464c16565b9550505050505b94509492505050565b600082820183811015612d8c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061337a6133656156bd565b61336e84614a9d565b9063ffffffff6132fe16565b42101592915050565b60006112b96844656274436163686560b81b614f7b565b6000818152600560205260409020546001600160a01b0316806133fa576040805162461bcd60e51b8152602060048201526013602482015272141e5b9d1a08191bd95cdb89dd08195e1a5cdd606a1b604482015290519081900360640190fd5b806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561343357600080fd5b505afa158015613447573d6000803e3d6000fd5b505050506040513d602081101561345d57600080fd5b5051156134a7576040805162461bcd60e51b815260206004820152601360248201527250796e746820737570706c792065786973747360681b604482015290519081900360640190fd5b631c1554d160e21b8214156134f9576040805162461bcd60e51b8152602060048201526013602482015272086c2dcdcdee840e4cadadeecca40e0f2dce8d606b1b604482015290519081900360640190fd5b60005b6004548110156135e057816001600160a01b03166004828154811061351d57fe5b6000918252602090912001546001600160a01b031614156135d8576004818154811061354557fe5b600091825260209091200180546001600160a01b031916905560048054600019810190811061357057fe5b600091825260209091200154600480546001600160a01b03909216918390811061359657fe5b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905560048054906135d2906000198301615d90565b506135e0565b6001016134fc565b506001600160a01b03166000908152600660209081526040808320839055928252600590522080546001600160a01b0319169055565b600080600080613624614147565b6001600160a01b0316630c71cd23635045524960e01b6040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b15801561366d57600080fd5b505afa158015613681573d6000803e3d6000fd5b505050506040513d604081101561369757600080fd5b508051602090910151909250905060006136af612df9565b6001600160a01b0316637a84b61787631c1554d160e21b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b15801561371357600080fd5b505afa158015613727573d6000803e3d6000fd5b505050506040513d602081101561373d57600080fd5b5051905060006137598261336e6137538a614162565b876142c7565b9050613773613766612cd0565b829063ffffffff61464c16565b9550919350505050915091565b6000816001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b1580156137bb57600080fd5b505afa1580156137cf573d6000803e3d6000fd5b505050506040513d60208110156137e557600080fd5b50516000818152600560205260409020549091506001600160a01b031615613843576040805162461bcd60e51b815260206004820152600c60248201526b50796e74682065786973747360a01b604482015290519081900360640190fd5b6001600160a01b038216600090815260066020526040902054156138ae576040805162461bcd60e51b815260206004820152601c60248201527f50796e7468206164647265737320616c72656164792065786973747300000000604482015290519081900360640190fd5b60048054600181019091557f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b039093166001600160a01b0319938416811790915560008281526005602090815260408083208054909616841790955591815260069091529190912055565b600082613ad65761393385613358565b613984576040805162461bcd60e51b815260206004820152601e60248201527f4d696e696d756d207374616b652074696d65206e6f7420726561636865640000604482015290519081900360640190fd5b60008061398f614602565b6001600160a01b0316631b16802c88631c1554d160e21b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050606060405180830381600087803b1580156139f557600080fd5b505af1158015613a09573d6000803e3d6000fd5b505050506040513d6060811015613a1f57600080fd5b50602081015160409091015190925090508015613ad357613a3e614602565b60408051630984d1f960e31b81526001600160a01b038a81166004830152631c1554d160e21b6024830152604482018a90526064820186905291519290911691634c268fc891608480820192602092909190829003018186803b158015613aa457600080fd5b505afa158015613ab8573d6000803e3d6000fd5b505050506040513d6020811015613ace57600080fd5b505195505b50505b6000806000613aec88631c1554d160e21b613e07565b925092509250600080613afe8a613616565b91509150613b128380611b5f575081612e88565b60008511613b5c576040805162461bcd60e51b81526020600482015260126024820152714e6f206465627420746f20666f726769766560701b604482015290519081900360640190fd5b8615613b66578498505b6000613b758b8c8c89896146b2565b9050613b87868b63ffffffff6140ea16565b9650808610158015613b995750828711155b15613c1657613ba6614619565b6001600160a01b031663974e9e7f8c6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015613bfd57600080fd5b505af1158015613c11573d6000803e3d6000fd5b505050505b505050505050949350505050565b60608082613c33576000613c36565b60015b60ff1660048054905001604051908082528060200260200182016040528015613c69578160200160208202803883390190505b50905060005b600454811015613cd0576006600060048381548110613c8a57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110613cbd57fe5b6020908102919091010152600101613c6f565b508215610e37576004548151635045524960e01b9183918110613cef57fe5b60200260200101818152505092915050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110613d4357fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015613d82578160200160208202803883390190505b50905060005b8351811015613dc457838181518110613d9d57fe5b6020026020010151828281518110613db157fe5b6020908102919091010152600101613d88565b5060005b8251811015611c8e57828181518110613ddd57fe5b6020026020010151828286510181518110613df457fe5b6020908102919091010152600101613dc8565b600080600080613e15612d93565b9050600080826001600160a01b0316638b3f8088896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050604080518083038186803b158015613e6f57600080fd5b505afa158015613e83573d6000803e3d6000fd5b505050506040513d6040811015613e9957600080fd5b5080516020909101519092509050613eaf615736565b6001600160a01b031663681c7811886040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015613ef157600080fd5b505afa158015613f05573d6000803e3d6000fd5b505050506040513d6040811015613f1b57600080fd5b508051602090910151909550935081613f3b5750600094506140e3915050565b6000836001600160a01b031663cd92eba96040518163ffffffff1660e01b815260040160206040518083038186803b158015613f7657600080fd5b505afa158015613f8a573d6000803e3d6000fd5b505050506040513d6020811015613fa057600080fd5b5051604080516308d95cd560e01b81526004810185905290519192506000916001600160a01b038716916308d95cd5916024808301926020929190829003018186803b158015613fef57600080fd5b505afa158015614003573d6000803e3d6000fd5b505050506040513d602081101561401957600080fd5b50519050600082158061402a575081155b15614037575060006140bf565b6140bc856140b084896001600160a01b031663463177126040518163ffffffff1660e01b815260040160206040518083038186803b15801561407857600080fd5b505afa15801561408c573d6000803e3d6000fd5b505050506040513d60208110156140a257600080fd5b50519063ffffffff61497316565b9063ffffffff61498c16565b90505b60006140ce826140b08b615755565b90506140d98161576b565b9950505050505050505b9250925092565b600082821115614141576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006112b96c45786368616e6765526174657360981b614f7b565b60008061416d614633565b6001600160a01b03166370a08231846040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156141c257600080fd5b505afa1580156141d6573d6000803e3d6000fd5b505050506040513d60208110156141ec57600080fd5b5051905060006141fa61578d565b6001600160a01b0316146142a4576142a161421361578d565b6001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561426857600080fd5b505afa15801561427c573d6000803e3d6000fd5b505050506040513d602081101561429257600080fd5b5051829063ffffffff6132fe16565b90505b60006142ae6157ac565b6001600160a01b031614610e3757612d8c6142136157ac565b6000612d8c838363ffffffff6157c816565b60008060006142e6612cd0565b905060006142f2615642565b90506000614316614309888863ffffffff6132fe16565b899063ffffffff61467616565b9050828111156143f457600061438a61437d6143708573__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156128f157600080fd5b859063ffffffff61467616565b889063ffffffff61464c16565b905080881161439a5760006143aa565b6143aa888263ffffffff6140ea16565b94506143ec6143df856143d3886143c78c8e63ffffffff6132fe16565b9063ffffffff6140ea16565b9063ffffffff61464c16565b8a9063ffffffff6140ea16565b9550506144e4565b600061440a8961315a8a8763ffffffff61464c16565b9050828111614460576040805162461bcd60e51b815260206004820152601c60248201527f4163636f756e7420697320616c726561647920636c61696d61626c6500000000604482015290519081900360640190fd5b6144ce6144ab8473__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156128f157600080fd5b61315a6144be8c8763ffffffff61464c16565b6143c78c8963ffffffff61464c16565b95506144e0868563ffffffff61467616565b9450505b505050935093915050565b60008060006144fd84614162565b90506000614509612df9565b6001600160a01b0316637a84b61786635045524960e01b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b031681526020018281526020019250505060206040518083038186803b15801561456d57600080fd5b505afa158015614581573d6000803e3d6000fd5b505050506040513d602081101561459757600080fd5b505190506000806145af87635045524960e01b613e07565b92505091508360001480156145c2575082155b156145d6576000955093506125ac92505050565b6145f66145e9858563ffffffff6132fe16565b839063ffffffff61467616565b95509350505050915091565b60006112b96822bc31b430b733b2b960b91b614f7b565b60006112b96b4c69717569646174696f6e7360a01b614f7b565b60006112b96a5065726946696e616e636560a81b614f7b565b6000670de0b6b3a7640000614667848463ffffffff6157dd16565b8161466e57fe5b049392505050565b6000612d8c8261469485670de0b6b3a764000063ffffffff6157dd16565b9063ffffffff61583616565b6000612d8c838363ffffffff612d7716565b600082841115614709576040805162461bcd60e51b815260206004820152601d60248201527f547279696e6720746f206275726e206d6f7265207468616e2064656274000000604482015290519081900360640190fd5b614715868585856158a0565b631c1554d160e21b600090815260056020908152600080516020615e9083398151915254604080516370a0823160e01b81526001600160a01b038a81166004830152915191909216926370a082319260248082019391829003018186803b15801561477f57600080fd5b505afa158015614793573d6000803e3d6000fd5b505050506040513d60208110156147a957600080fd5b5051905060008582106147cb576147c6828763ffffffff6140ea16565b6147db565b6147db868363ffffffff6140ea16565b9050600a8110156147ea578195505b631c1554d160e21b60009081526005602052600080516020615e908339815191525460408051632770a7eb60e21b81526001600160a01b038b81166004830152602482018b905291519190921692639dc29fac926044808201939182900301818387803b15801561485a57600080fd5b505af115801561486e573d6000803e3d6000fd5b5050505061487a613383565b6001600160a01b0316638376a782631c1554d160e21b73__$595c53754087f91f9b1379b44678cc419e$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156148d457600080fd5b505af41580156148e8573d6000803e3d6000fd5b505050506040513d60208110156148fe57600080fd5b5051604080516001600160e01b031960e086901b1681526004810193909352602483019190915251604480830192600092919082900301818387803b15801561494657600080fd5b505af115801561495a573d6000803e3d6000fd5b50505050614967886149a5565b50939695505050505050565b6000612d8c83836b033b2e3c9fd0803ce8000000614f43565b6000612d8c83836b033b2e3c9fd0803ce8000000615cf3565b6000806149b0612d93565b60408051631167f01160e31b81526001600160a01b0386811660048301528251931692638b3f808892602480840193919291829003018186803b1580156149f657600080fd5b505afa158015614a0a573d6000803e3d6000fd5b505050506040513d6040811015614a2057600080fd5b5080516020909101519092509050614a36615d1e565b6001600160a01b031663866452748484846040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561110d57600080fd5b6000614aa7614f26565b6001600160a01b03166323257c2b6524b9b9bab2b960d11b6d1b185cdd125cdcdd59515d995b9d60921b8560405160200180838152602001826001600160a01b03166001600160a01b031660601b815260140192505050604051602081830303815290604052805190602001206040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015614b4f57600080fd5b505afa158015614b63573d6000803e3d6000fd5b505050506040513d6020811015614b7957600080fd5b505192915050565b6000806000806000614b91613383565b6001600160a01b0316633a900a2e6040518163ffffffff1660e01b815260040160806040518083038186803b158015614bc957600080fd5b505afa158015614bdd573d6000803e3d6000fd5b505050506040513d6080811015614bf357600080fd5b508051604082015160609092015190945090925090508180614c125750805b93506000614c1e614147565b905086614e6257600080614c30615d33565b6001600160a01b0316631e33fc6b6040518163ffffffff1660e01b8152600401604080518083038186803b158015614c6757600080fd5b505afa158015614c7b573d6000803e3d6000fd5b505050506040513d6040811015614c9157600080fd5b5080516020909101519092509050614caf868363ffffffff6132fe16565b95508680614cba5750805b9650614d38614cc7615d52565b6001600160a01b03166357b219206040518163ffffffff1660e01b815260040160206040518083038186803b158015614cff57600080fd5b505afa158015614d13573d6000803e3d6000fd5b505050506040513d6020811015614d2957600080fd5b5051879063ffffffff6132fe16565b9550600080846001600160a01b0316630c71cd23630e08aa8960e31b6040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015614d8757600080fd5b505afa158015614d9b573d6000803e3d6000fd5b505050506040513d6040811015614db157600080fd5b50805160209091015190925090506000614e3d83614dcd615d73565b6001600160a01b03166357b219206040518163ffffffff1660e01b815260040160206040518083038186803b158015614e0557600080fd5b505afa158015614e19573d6000803e3d6000fd5b505050506040513d6020811015614e2f57600080fd5b50519063ffffffff6157c816565b9050614e4f898263ffffffff6132fe16565b98508980614e5a5750815b995050505050505b631c1554d160e21b881415614e7d5750919350614f1f915050565b600080826001600160a01b0316630c71cd238b6040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015614ec357600080fd5b505afa158015614ed7573d6000803e3d6000fd5b505050506040513d6040811015614eed57600080fd5b5080516020909101519092509050614f0b868363ffffffff612d7716565b8780614f145750815b975097505050505050505b9250929050565b60006112b96e466c657869626c6553746f7261676560881b614f7b565b600080614f5d8461469487600a870263ffffffff6157dd16565b90506005600a825b0610614f6f57600a015b600a9004949350505050565b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611c8e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561501d578181015183820152602001615005565b50505050905090810190601f16801561504a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000615062612d93565b90506000615076858463ffffffff6132fe16565b9050600061508a868363ffffffff61497316565b905060006150d68273__$595c53754087f91f9b1379b44678cc419e$__63d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186803b1580156128f157600080fd5b905085156150f9576150f283612811898963ffffffff6132fe16565b915061514d565b836001600160a01b0316631bfba5956040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561513457600080fd5b505af1158015615148573d6000803e3d6000fd5b505050505b836001600160a01b031663a764eb4589846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156151ad57600080fd5b505af11580156151c1573d6000803e3d6000fd5b505050506151cd615736565b6001600160a01b0316634e03d640886040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561521257600080fd5b505af1158015615226573d6000803e3d6000fd5b50505050615232615736565b6001600160a01b031663f2de2dee89866001600160a01b031663cd92eba96040518163ffffffff1660e01b815260040160206040518083038186803b15801561527a57600080fd5b505afa15801561528e573d6000803e3d6000fd5b505050506040513d60208110156152a457600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b1580156152f457600080fd5b505af1158015615308573d6000803e3d6000fd5b505050506000846001600160a01b031663cd92eba96040518163ffffffff1660e01b815260040160206040518083038186803b15801561534757600080fd5b505afa15801561535b573d6000803e3d6000fd5b505050506040513d602081101561537157600080fd5b50511180156153e35750836001600160a01b031663463177126040518163ffffffff1660e01b815260040160206040518083038186803b1580156153b457600080fd5b505afa1580156153c8573d6000803e3d6000fd5b505050506040513d60208110156153de57600080fd5b505115155b156154bf57836001600160a01b0316633d31e97b61546c83876001600160a01b031663463177126040518163ffffffff1660e01b815260040160206040518083038186803b15801561543457600080fd5b505afa158015615448573d6000803e3d6000fd5b505050506040513d602081101561545e57600080fd5b50519063ffffffff61498c16565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156154a257600080fd5b505af11580156154b6573d6000803e3d6000fd5b5050505061298d565b836001600160a01b0316633d31e97b73__$595c53754087f91f9b1379b44678cc419e$__63d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186803b15801561551257600080fd5b505af4158015615526573d6000803e3d6000fd5b505050506040513d602081101561553c57600080fd5b5051604080516001600160e01b031960e085901b168152600481019290925251602480830192600092919082900301818387803b15801561557c57600080fd5b505af1158015610a5d573d6000803e3d6000fd5b615598614f26565b604080516d1b185cdd125cdcdd59515d995b9d60921b6020808301919091526bffffffffffffffffffffffff19606086901b1682840152825160348184030181526054830180855281519190920120631d5b277f60e01b9091526524b9b9bab2b960d11b6058830152607882015242609882015290516001600160a01b039290921691631d5b277f9160b88082019260009290919082900301818387803b15801561262757600080fd5b600061564c614f26565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7165787465726e616c546f6b656e51756f746160701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612d4657600080fd5b60006156c7614f26565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6f6d696e696d756d5374616b6554696d6560801b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b158015612d4657600080fd5b60006112b97021b937b9b9a1b430b4b726b0b730b3b2b960791b614f7b565b6000610e3782633b9aca0063ffffffff6157dd16565b60006305f5e10082046005600a82061061578357600a015b600a900492915050565b60006112b9705065726946696e616e6365457363726f7760781b614f7b565b60006112b96d2932bbb0b93222b9b1b937bbab1960911b614f7b565b6000612d8c8383670de0b6b3a7640000615cf3565b6000826157ec57506000610e37565b828202828482816157f957fe5b0414612d8c5760405162461bcd60e51b8152600401808060200182810382526021815260200180615e6f6021913960400191505060405180910390fd5b600080821161588c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161589757fe5b04949350505050565b60006158aa612d93565b905060006158be838663ffffffff6140ea16565b9050600081156159285760006158da878463ffffffff61497316565b90506159248173__$595c53754087f91f9b1379b44678cc419e$__63d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186803b1580156123d257600080fd5b9150505b84861415615a66576040805163a764eb4560e01b81526001600160a01b03898116600483015260006024830181905292519086169263a764eb45926044808201939182900301818387803b15801561597f57600080fd5b505af1158015615993573d6000803e3d6000fd5b50505050826001600160a01b031663ba08f2996040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156159d257600080fd5b505af11580156159e6573d6000803e3d6000fd5b505050506159f2615736565b6001600160a01b03166340f68cdd886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015615a4957600080fd5b505af1158015615a5d573d6000803e3d6000fd5b50505050615beb565b6000615a78868863ffffffff6140ea16565b90506000615a8c828563ffffffff61497316565b9050846001600160a01b031663a764eb458a836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015615aee57600080fd5b505af1158015615b02573d6000803e3d6000fd5b50505050615b0e615736565b6001600160a01b031663f2de2dee8a876001600160a01b031663cd92eba96040518163ffffffff1660e01b815260040160206040518083038186803b158015615b5657600080fd5b505afa158015615b6a573d6000803e3d6000fd5b505050506040513d6020811015615b8057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b158015615bd057600080fd5b505af1158015615be4573d6000803e3d6000fd5b5050505050505b615bf3615736565b6001600160a01b031663d5495e06876040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015615c3857600080fd5b505af1158015615c4c573d6000803e3d6000fd5b50505050826001600160a01b0316633d31e97b615c9c83866001600160a01b031663463177126040518163ffffffff1660e01b815260040160206040518083038186803b15801561543457600080fd5b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015615cd257600080fd5b505af1158015615ce6573d6000803e3d6000fd5b5050505050505050505050565b600080600a8304615d0a868663ffffffff6157dd16565b81615d1157fe5b0490506005600a82614f65565b60006112b966119959541bdbdb60ca1b614f7b565b60006112b97021b7b63630ba32b930b626b0b730b3b2b960791b614f7b565b60006112b972115d1a195c90dbdb1b185d195c985b1c1554d1606a1b614f7b565b60006112b96e115d1a195c90dbdb1b185d195c985b608a1b614f7b565b8154818355818111156112a8576000838152602090206112a8918101908301610f5091905b80821115615dc95760008155600101615db5565b509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704973737565723a204f6e6c7920746865207065726946696e616e636520636f6e74726163742063616e20706572666f726d207468697320616374696f6e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77ab2931e6b2a3309efb1cd1e1ff687f87bc01e27560b68cf78de8eb3772ac922b4f6e6c792065787465726e616c20746f6b656e20616c6c6f77656420746f207374616b65a265627a7a723158206810a563f7b7a97c39ef0a1ac7023fbff6a4500ce4d998d3dc8a444a3a1e9b9564736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x614d08f8"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IPynth[]",
							"name": "pynthsToAdd",
							"type": "address[]"
						}
					],
					"name": "addPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5543dadc"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						}
					],
					"name": "amountsToFitClaimable",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "burnAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "exTokenAmountToUnstake",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xbecf5ff8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "anyPynthOrPERIRateIsInvalid",
					"outputs": [
						{
							"internalType": "bool",
							"name": "anyRateInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf5adc4f5"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availableCurrencyKeys",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x72cb051f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "availablePynthCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd99947de"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "availablePynths",
					"outputs": [
						{
							"internalType": "contract IPynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9df95f9f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_from",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_burnAmount",
							"type": "uint256"
						}
					],
					"name": "burnPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6ac471c4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "canBurnPynths",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2ae78fdb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "collateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa5fdc5de"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa311c7c2"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "collateralisationRatioAndAnyRatesInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xae3bbbbb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "debtBalanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "debtBalance",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd37c4d8b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_from",
							"type": "address"
						}
					],
					"name": "exit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb42652e9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_additionalpUSD",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_additionalExToken",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "_isIssue",
							"type": "bool"
						}
					],
					"name": "externalTokenQuota",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9288e704"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_from",
							"type": "address"
						}
					],
					"name": "fitToClaimable",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x94955cec"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "prevLedgerValue",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "existingDebt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalDebtIssued",
							"type": "uint256"
						}
					],
					"name": "fixDebtRegister",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc29ea314"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "currencyKeys",
							"type": "bytes32[]"
						}
					],
					"name": "getPynths",
					"outputs": [
						{
							"internalType": "contract IPynth[]",
							"name": "",
							"type": "address[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1db63a33"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "issueMaxPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf0617e5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_issueAmount",
							"type": "uint256"
						}
					],
					"name": "issuePynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x08f95a62"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						}
					],
					"name": "issuePynthsToMaxQuota",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x171af063"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "lastIssueEvent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdd3d2b2e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "pusdAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						}
					],
					"name": "liquidateDelinquentAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRedeemed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amountToLiquidate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa63c4df4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "maxIssuablePynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x55182ccb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "pynths",
					"outputs": [
						{
							"internalType": "contract IPynth",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x57ad4663"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "pynthsByAddress",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc9a2f3ad"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_issuer",
							"type": "address"
						}
					],
					"name": "remainingIssuablePynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "maxIssuable",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "alreadyIssued",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalSystemDebt",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3b09280a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "removePynth",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4c29b0af"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "excludeEtherCollateral",
							"type": "bool"
						}
					],
					"name": "totalIssuedPynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalIssued",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf023e8db"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "balance",
							"type": "uint256"
						}
					],
					"name": "transferablePeriFinanceAndAnyRateIsInvalid",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "transferable",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8d542eb3"
				}
			],
			"source": {
				"keccak256": "0xd4080dc71446a83a6d3af981a541ee3d181722554c22ef4a8b31bb9c8c30d0ee",
				"urls": [
					"bzz-raw://a6ede7fe2b853a0ab18f6697542f6fc1a2b1172f164c3fa342610c1ac17132d5",
					"dweb:/ipfs/QmcS9WKPXDHobAzyVS3fhcSP555AgMZ3LGkLmntUp4wtkh"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Issuer.sol": "Issuer"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Issuer.sol": {
						"keccak256": "0xd4080dc71446a83a6d3af981a541ee3d181722554c22ef4a8b31bb9c8c30d0ee",
						"urls": [
							"bzz-raw://a6ede7fe2b853a0ab18f6697542f6fc1a2b1172f164c3fa342610c1ac17132d5",
							"dweb:/ipfs/QmcS9WKPXDHobAzyVS3fhcSP555AgMZ3LGkLmntUp4wtkh"
						]
					}
				},
				"version": 1
			}
		},
		"TradingRewards": {
			"bytecode": "608060405234801561001057600080fd5b506040516122173803806122178339818101604052606081101561003357600080fd5b5080516020820151604090920151600160005590919080836001600160a01b0381166100a6576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0383169081179091556040805160008152602081019290925280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506001546001600160a01b0316610152576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b60048054610100600160a81b0319166101006001600160a01b039384160217905582166101c6576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420706572696f6420636f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b50600980546001600160a01b0319166001600160a01b039290921691909117905550612020806101f76000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063741853601161010f578063b225dbaa116100a2578063f32ffd6911610071578063f32ffd69146104e2578063f61f5df614610552578063f6b584791461057e578063fc9c99ac146105fe576101f0565b8063b225dbaa14610491578063ccb6e043146102c5578063ce7fccba146104ae578063dea021a5146104da576101f0565b806391b4ded9116100de57806391b4ded914610438578063937ffb8f146104405780639865fdb71461045d578063ae934a7a14610465576101f0565b806374185360146103c857806379ba5097146103d0578063899ffef4146103d85780638da5cb5b14610430576101f0565b80632af64bd31161018757806355aa41bf1161015657806355aa41bf1461037e5780635c975abb1461039b5780636fe4136b146103a3578063706848d2146103ab576101f0565b80632af64bd31461032257806338dfa8cf1461032a5780633dbf12fa1461035057806353a47bb714610376576101f0565b806316841952116101c3578063168419521461028957806316c38b3c146102a6578063175c5189146102c557806321cad774146102f6576101f0565b806304f3bcec146101f5578063056097ac14610219578063086146d2146102495780631627540c14610263575b600080fd5b6101fd610606565b604080516001600160a01b039092168252519081900360200190f35b6102476004803603604081101561022f57600080fd5b506001600160a01b038135811691602001351661061a565b005b6102516107c5565b60408051918252519081900360200190f35b6102476004803603602081101561027957600080fd5b50356001600160a01b03166107cc565b6102476004803603602081101561029f57600080fd5b5035610828565b610247600480360360208110156102bc57600080fd5b50351515610a51565b6102e2600480360360208110156102db57600080fd5b5035610acb565b604080519115158252519081900360200190f35b6102476004803603604081101561030c57600080fd5b50803590602001356001600160a01b0316610ae0565b6102e2610c0a565b6102476004803603602081101561034057600080fd5b50356001600160a01b0316610d1c565b6102476004803603602081101561036657600080fd5b50356001600160a01b0316610ed4565b6101fd610f8b565b6102516004803603602081101561039457600080fd5b5035610f9a565b6102e2610faf565b6101fd610fb8565b610251600480360360208110156103c157600080fd5b5035610fc7565b610247610fdc565b6102476111b9565b6103e0611275565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561041c578181015183820152602001610404565b505050509050019250505060405180910390f35b6101fd6112e6565b6102516112f5565b6102516004803603602081101561045657600080fd5b50356112fb565b610251611310565b6102476004803603604081101561047b57600080fd5b506001600160a01b0381351690602001356113ad565b610247600480360360208110156104a757600080fd5b503561151a565b610251600480360360408110156104c457600080fd5b506001600160a01b0381351690602001356115c7565b6101fd6115dc565b610247600480360360208110156104f857600080fd5b81019060208101813564010000000081111561051357600080fd5b82018360208201111561052557600080fd5b8035906020019184602083028401116401000000008311171561054757600080fd5b5090925090506115eb565b6102516004803603604081101561056857600080fd5b506001600160a01b0381351690602001356116c9565b6102516004803603604081101561059457600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156105bf57600080fd5b8201836020820111156105d157600080fd5b803590602001918460208302840111640100000000831117156105f357600080fd5b5090925090506116f4565b610251611744565b60045461010090046001600160a01b031681565b61062261174a565b61062b81611795565b610633611805565b6001600160a01b0316826001600160a01b03161415610699576040805162461bcd60e51b815260206004820152601960248201527f4d7573742075736520616e6f746865722066756e6374696f6e00000000000000604482015290519081900360640190fd5b604080516370a0823160e01b8152306004820152905183916000916001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106e457600080fd5b505afa1580156106f8573d6000803e3d6000fd5b505050506040513d602081101561070e57600080fd5b505190508061075b576040805162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b604482015290519081900360640190fd5b6107756001600160a01b038316848363ffffffff61181e16565b604080516001600160a01b0380871682528516602082015280820183905290517f401f439d865a766757ec78675925bd67198d5e78805aa41691b34b5d6a6cbbe69181900360600190a150505050565b6006545b90565b6107d461174a565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6009546001600160a01b03163314610887576040805162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206e6f7420706572696f6420636f6e74726f6c6c657200000000604482015290519081900360640190fd5b6000610891611805565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156108e657600080fd5b505afa1580156108fa573d6000803e3d6000fd5b505050506040513d602081101561091057600080fd5b505160075490915060009061092c90839063ffffffff61187016565b905080831115610983576040805162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742066726565207265776172647300000000000000604482015290519081900360640190fd5b60065460009081526008602052604090206002810184905560038101849055805460ff191660011781556007546109c0908563ffffffff6118cd16565b600755600654604080519182526020820186905280517ffa0492b63d7120c62ccb8708eb597813e6968a23d09adac98d54dd0085cb264f9281900390910190a1600654610a1490600163ffffffff6118cd16565b600681905560408051918252517f4368a9298adc0e57eceb11d0ef07022051a2feb5985d832be0764cde9a2307329181900360200190a150505050565b610a5961174a565b60045460ff1615158115151415610a6f57610ac8565b6004805460ff1916821515179081905560ff1615610a8c57426003555b6004546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60009081526008602052604090205460ff1690565b610ae8611927565b6001600160a01b0316336001600160a01b031614610b4d576040805162461bcd60e51b815260206004820152601e60248201527f4f6e6c792045786368616e6765722063616e20696e766f6b6520746869730000604482015290519081900360640190fd5b60065460009081526008602090815260408083206001600160a01b03851684526004810190925290912054610b88908463ffffffff6118cd16565b6001600160a01b03831660009081526004830160205260409020556001810154610bb8908463ffffffff6118cd16565b600182015560065460408051858152602081019290925280516001600160a01b038516927f927be3e95451b16be3f4586524834dfffa10e6f9ee4c1e26fe3c46140fbbf86692908290030190a2505050565b60006060610c16611275565b905060005b8151811015610d13576000828281518110610c3257fe5b602090810291909101810151600081815260058352604090819020546004805483516321f8a72160e01b815291820185905292519395506001600160a01b0391821694610100909304909116926321f8a72192602480840193919291829003018186803b158015610ca257600080fd5b505afa158015610cb6573d6000803e3d6000fd5b505050506040513d6020811015610ccc57600080fd5b50516001600160a01b0316141580610cf957506000818152600560205260409020546001600160a01b0316155b15610d0a57600093505050506107c9565b50600101610c1b565b50600191505090565b610d2461174a565b610d2d81611795565b6000610d37611805565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015610d8c57600080fd5b505afa158015610da0573d6000803e3d6000fd5b505050506040513d6020811015610db657600080fd5b5051905080610e03576040805162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b604482015290519081900360640190fd5b6000610e1a6007548361187090919063ffffffff16565b905060008111610e68576040805162461bcd60e51b81526020600482015260146024820152732737903a37b5b2b739903a37903932b1b7bb32b960611b604482015290519081900360640190fd5b610e8b8382610e75611805565b6001600160a01b0316919063ffffffff61181e16565b604080516001600160a01b03851681526020810183905281517f14e7312259d4851b8b6742ace55ac44b31d7929a6b2998b35ba22445859e5ee3929181900390910190a1505050565b610edc61174a565b6001600160a01b038116610f37576040805162461bcd60e51b815260206004820152601960248201527f496e76616c696420706572696f6420636f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b600980546001600160a01b0383166001600160a01b0319909116811790915560408051918252517fb81e5409e39d3d3d85951a2af3563e484cfe2e7b4af2500a0ecbe14035a9bddc9181900360200190a150565b6002546001600160a01b031681565b60009081526008602052604090206001015490565b60045460ff1681565b6000610fc2611805565b905090565b60009081526008602052604090206003015490565b6060610fe6611275565b905060005b81518110156111b557600082828151811061100257fe5b602002602001015190506000600460019054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200180807f5265736f6c766572206d697373696e67207461726765743a20000000000000008152506019018281526020019150506040516020818303038152906040526040518363ffffffff1660e01b81526004018083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156110cd5781810151838201526020016110b5565b50505050905090810190601f1680156110fa5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561111857600080fd5b505afa15801561112c573d6000803e3d6000fd5b505050506040513d602081101561114257600080fd5b505160008381526005602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610feb565b5050565b6002546001600160a01b031633146112025760405162461bcd60e51b8152600401808060200182810382526035815260200180611f016035913960400191505060405180910390fd5b600154600254604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160028054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60408051600280825260608083018452926020830190803883390190505090506822bc31b430b733b2b960b91b816000815181106112af57fe5b6020026020010181815250506a5065726946696e616e636560a81b816001815181106112d757fe5b60200260200101818152505090565b6001546001600160a01b031681565b60035481565b60009081526008602052604090206002015490565b6000610fc2600754611320611805565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561137557600080fd5b505afa158015611389573d6000803e3d6000fd5b505050506040513d602081101561139f57600080fd5b50519063ffffffff61187016565b6113b561174a565b6113be82611795565b6006548110611414576040805162461bcd60e51b815260206004820152601a60248201527f43616e6e6f74207265636f7665722066726f6d20616374697665000000000000604482015290519081900360640190fd5b60008181526008602052604090206003810154611478576040805162461bcd60e51b815260206004820152601f60248201527f4e6f207265776172647320617661696c61626c6520746f207265636f76657200604482015290519081900360640190fd5b600381015461148a8482610e75611805565b60075461149d908263ffffffff61187016565b6007556000838152600860209081526040808320805460ff1916815560018101849055600281018490556003019290925581516001600160a01b038716815290810183905280820185905290517f60f2caebb6d06055322fce1f0db429f6bc0a48534c8c9ba42359a80f36bb7f0c9181900360600190a150505050565b600080546001019081905560045460ff16156115675760405162461bcd60e51b815260040180806020018281038252603c815260200180611f86603c913960400191505060405180910390fd5b611571338361193e565b60005481146111b5576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60006115d38383611a9d565b90505b92915050565b6009546001600160a01b031690565b600080546001019081905560045460ff16156116385760405162461bcd60e51b815260040180806020018281038252603c815260200180611f86603c913960400191505060405180910390fd5b60005b8281101561166d57600084848381811061165157fe5b905060200201359050611664338261193e565b5060010161163b565b5060005481146116c4576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050565b60009081526008602090815260408083206001600160a01b0394909416835260049093019052205490565b6000805b8281101561173c57600084848381811061170e57fe5b9050602002013590506117316117248783611a9d565b849063ffffffff6118cd16565b9250506001016116f8565b509392505050565b60075490565b6001546001600160a01b031633146117935760405162461bcd60e51b815260040180806020018281038252602f815260200180611f36602f913960400191505060405180910390fd5b565b6001600160a01b03811615806117b357506001600160a01b03811630145b15610ac8576040805162461bcd60e51b815260206004820152601760248201527f496e76616c6964207265636f7665722061646472657373000000000000000000604482015290519081900360640190fd5b6000610fc26a5065726946696e616e636560a81b611b41565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526116c4908490611c25565b6000828211156118c7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156115d3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610fc26822bc31b430b733b2b960b91b611b41565b6000818152600860205260409020805460ff166119a2576040805162461bcd60e51b815260206004820152601760248201527f506572696f64206973206e6f742066696e616c697a6564000000000000000000604482015290519081900360640190fd5b60006119ae8484611a9d565b9050600081116119fc576040805162461bcd60e51b81526020600482015260146024820152734e6f207265776172647320617661696c61626c6560601b604482015290519081900360640190fd5b6001600160a01b03841660009081526004830160205260408120556003820154611a2c908263ffffffff61187016565b6003830155600754611a44908263ffffffff61187016565b600755611a548482610e75611805565b604080518281526020810185905281516001600160a01b038716927fdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e325928290030190a250505050565b600081815260086020526040812060038101541580611abe57506001810154155b80611acb5750805460ff16155b15611ada5760009150506115d6565b6001600160a01b038416600090815260048201602052604090205480611b05576000925050506115d6565b6000611b1e836001015483611de390919063ffffffff16565b9050611b37836002015482611e0d90919063ffffffff16565b9695505050505050565b600081815260056020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081611c1e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611be3578181015183820152602001611bcb565b50505050905090810190601f168015611c105780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b611c37826001600160a01b0316611e37565b611c88576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b60208310611cc65780518252601f199092019160209182019101611ca7565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611d28576040519150601f19603f3d011682016040523d82523d6000602084013e611d2d565b606091505b509150915081611d84576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b805115611ddd57808060200190516020811015611da057600080fd5b5051611ddd5760405162461bcd60e51b815260040180806020018281038252602a815260200180611fc2602a913960400191505060405180910390fd5b50505050565b60006115d382611e0185670de0b6b3a764000063ffffffff611e3d16565b9063ffffffff611e9616565b6000670de0b6b3a7640000611e28848463ffffffff611e3d16565b81611e2f57fe5b049392505050565b3b151590565b600082611e4c575060006115d6565b82820282848281611e5957fe5b04146115d35760405162461bcd60e51b8152600401808060200182810382526021815260200180611f656021913960400191505060405180910390fd5b6000808211611eec576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611ef757fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e7472616374206973207061757365645361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a265627a7a72315820fbbc5e0b38cccab1dd394d1e3c08ff0871855c4212a8281d875978ff47085d0c64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "periodController",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "AssignedRewardTokensRecovered",
					"type": "event",
					"signature": "0x60f2caebb6d06055322fce1f0db429f6bc0a48534c8c9ba42359a80f36bb7f0c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "ExchangeFeeRecorded",
					"type": "event",
					"signature": "0x927be3e95451b16be3f4586524834dfffa10e6f9ee4c1e26fe3c46140fbbf866"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "NewPeriodStarted",
					"type": "event",
					"signature": "0x4368a9298adc0e57eceb11d0ef07022051a2feb5985d832be0764cde9a230732"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event",
					"signature": "0x8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newPeriodController",
							"type": "address"
						}
					],
					"name": "PeriodControllerChanged",
					"type": "event",
					"signature": "0xb81e5409e39d3d3d85951a2af3563e484cfe2e7b4af2500a0ecbe14035a9bddc"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "rewards",
							"type": "uint256"
						}
					],
					"name": "PeriodFinalizedWithRewards",
					"type": "event",
					"signature": "0xfa0492b63d7120c62ccb8708eb597813e6968a23d09adac98d54dd0085cb264f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "RewardsClaimed",
					"type": "event",
					"signature": "0xdacbdde355ba930696a362ea6738feb9f8bd52dfb3d81947558fd3217e23e325"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "tokenAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "TokensRecovered",
					"type": "event",
					"signature": "0x401f439d865a766757ec78675925bd67198d5e78805aa41691b34b5d6a6cbbe6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "UnassignedRewardTokensRecovered",
					"type": "event",
					"signature": "0x14e7312259d4851b8b6742ace55ac44b31d7929a6b2998b35ba22445859e5ee3"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "claimRewardsForPeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb225dbaa"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256[]",
							"name": "periodIDs",
							"type": "uint256[]"
						}
					],
					"name": "claimRewardsForPeriods",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf32ffd69"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rewards",
							"type": "uint256"
						}
					],
					"name": "closeCurrentPeriodWithRewards",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x16841952"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getAvailableRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfc9c99ac"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getAvailableRewardsForAccountForPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xce7fccba"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256[]",
							"name": "periodIDs",
							"type": "uint256[]"
						}
					],
					"name": "getAvailableRewardsForAccountForPeriods",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalRewards",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf6b58479"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCurrentPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x086146d2"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodAvailableRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x706848d2"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getPeriodController",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdea021a5"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodIsClaimable",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x175c5189"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodIsFinalized",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xccb6e043"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodRecordedFees",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x55aa41bf"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getPeriodTotalRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x937ffb8f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getRewardsToken",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6fe4136b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "getUnaccountedFeesForAccountForPeriod",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf61f5df6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getUnassignedRewards",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9865fdb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x91b4ded9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5c975abb"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "usdFeeAmount",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "recordExchangeFeeForAccount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x21cad774"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "periodID",
							"type": "uint256"
						}
					],
					"name": "recoverAssignedRewardTokensAndDestroyPeriod",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xae934a7a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "tokenAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						}
					],
					"name": "recoverTokens",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x056097ac"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "recoverAddress",
							"type": "address"
						}
					],
					"name": "recoverUnassignedRewardTokens",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x38dfa8cf"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x16c38b3c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "newPeriodController",
							"type": "address"
						}
					],
					"name": "setPeriodController",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3dbf12fa"
				}
			],
			"source": {
				"keccak256": "0xa175ba7e5f81aab72bd044801a10efe1a4c768dfa1a3f51f2fc2d04329b61c30",
				"urls": [
					"bzz-raw://84c4addc33c9e0e9f6e6c8cae213b1e6dbbd6af49163ed5b621a584bf0c07ec9",
					"dweb:/ipfs/QmfDx4n2oWTkHi3gA8pJ4F4TexDr5nY4T3e3bCYqTpTRFm"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"TradingRewards.sol": "TradingRewards"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"TradingRewards.sol": {
						"keccak256": "0xa175ba7e5f81aab72bd044801a10efe1a4c768dfa1a3f51f2fc2d04329b61c30",
						"urls": [
							"bzz-raw://84c4addc33c9e0e9f6e6c8cae213b1e6dbbd6af49163ed5b621a584bf0c07ec9",
							"dweb:/ipfs/QmfDx4n2oWTkHi3gA8pJ4F4TexDr5nY4T3e3bCYqTpTRFm"
						]
					}
				},
				"version": 1
			}
		},
		"EscrowChecker": {
			"bytecode": "608060405234801561001057600080fd5b506040516103173803806103178339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b03199092169190911790556102b2806100656000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063449d0eb11461003b57806359bd89761461009a575b600080fd5b6100616004803603602081101561005157600080fd5b50356001600160a01b03166100be565b604051808261020080838360005b8381101561008757818101518382015260200161006f565b5050505090500191505060405180910390f35b6100a2610231565b604080516001600160a01b039092168252519081900360200190f35b6100c6610240565b6100ce610240565b6000805460408051631025b3b560e11b81526001600160a01b0387811660048301529151919092169163204b676a916024808301926020929190829003018186803b15801561011c57600080fd5b505afa158015610130573d6000803e3d6000fd5b505050506040513d602081101561014657600080fd5b5051905060005b818110156102285761015d61025f565b6000546040805163da7bd3e960e01b81526001600160a01b03898116600483015260248201869052825193169263da7bd3e992604480840193919291829003018186803b1580156101ad57600080fd5b505afa1580156101c1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525060408110156101e657600080fd5b5080519091508460028402601081106101fb57fe5b6020020152806001602002015184836002026001016010811061021a57fe5b60200201525060010161014d565b50909392505050565b6000546001600160a01b031681565b6040518061020001604052806010906020820280388339509192915050565b6040518060400160405280600290602082028038833950919291505056fea265627a7a72315820adbe823bfde7f9f1072b8b9905b86d212826bfeeb11629cee00de345b0fb08cd64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract IPeriFinanceEscrow",
							"name": "_esc",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "checkAccountSchedule",
					"outputs": [
						{
							"internalType": "uint256[16]",
							"name": "",
							"type": "uint256[16]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x449d0eb1"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "periFinance_escrow",
					"outputs": [
						{
							"internalType": "contract IPeriFinanceEscrow",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x59bd8976"
				}
			],
			"source": {
				"keccak256": "0x30aecc989dc5b5d530ec9e0f8186b16934d7b7117c6ce38dd5bbf4ab52e7e969",
				"urls": [
					"bzz-raw://6cd91f0a9d782b4621f4832cdfaa20eff856fee80e81bc29898f05177cb650c3",
					"dweb:/ipfs/QmWR2vcbpB7M8b9hdrRxHgrd6GzyKWthwQg8JfMNNkDwbd"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EscrowChecker.sol": "EscrowChecker"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EscrowChecker.sol": {
						"keccak256": "0x30aecc989dc5b5d530ec9e0f8186b16934d7b7117c6ce38dd5bbf4ab52e7e969",
						"urls": [
							"bzz-raw://6cd91f0a9d782b4621f4832cdfaa20eff856fee80e81bc29898f05177cb650c3",
							"dweb:/ipfs/QmWR2vcbpB7M8b9hdrRxHgrd6GzyKWthwQg8JfMNNkDwbd"
						]
					}
				},
				"version": 1
			}
		},
		"SupplySchedule": {
			"bytecode": "6080604052600060045534801561001557600080fd5b506040516110263803806110268339818101604052606081101561003857600080fd5b5080516020820151604090920151909190826001600160a01b0381166100a5576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15060029190915560035550610f0f806101176000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80637e1b823f116100de578063be801f0111610097578063d12a701d11610071578063d12a701d14610310578063d3bd4bde14610318578063dbd3a6a714610320578063df5a9fc11461032857610173565b8063be801f01146102da578063c1b7ca11146102e2578063cc5c095c1461030857610173565b80637e1b823f1461027a5780637e7961d7146102825780638da5cb5b1461029f5780639bdd7ac7146102a7578063b3b2bcc0146102af578063badef30a146102d257610173565b806346b45af71161013057806346b45af7146101f05780634ae265211461020c5780634e070f501461022957806353a47bb71461024657806379ba50971461026a5780637c0605571461027257610173565b80631627540c146101785780631de40e49146101a057806322af2bab146101ba578063251330f1146101c257806325542064146101e057806346872a23146101e8575b600080fd5b61019e6004803603602081101561018e57600080fd5b50356001600160a01b0316610330565b005b6101a861038c565b60408051918252519081900360200190f35b6101a8610397565b6101ca6103a4565b6040805160ff9092168252519081900360200190f35b6101a86103a9565b6101a86103b4565b6101f86103bb565b604080519115158252519081900360200190f35b61019e6004803603602081101561022257600080fd5b50356103db565b6101a86004803603602081101561023f57600080fd5b5035610466565b61024e610526565b604080516001600160a01b039092168252519081900360200190f35b61019e610535565b6101ca6105f1565b6101a86105f6565b6101f86004803603602081101561029857600080fd5b50356105fe565b61024e61076b565b6101a861077a565b6101a8600480360360408110156102c557600080fd5b5080359060200135610780565b6101a86108ba565b6101a86108c8565b61019e600480360360208110156102f857600080fd5b50356001600160a01b03166108ce565b6101a8610981565b61024e610ade565b6101a8610aed565b6101a8610af3565b6101a8610b48565b610338610b4f565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b662c68af0bb1400081565b680ad78ebc5ac620000081565b603481565b66b1a2bc2ec5000081565b6201518081565b600062093a80600254420311156103d4575060016103d8565b5060005b90565b6103e3610b4f565b680ad78ebc5ac620000081111561042b5760405162461bcd60e51b8152600401808060200182810382526026815260200180610eb56026913960400191505060405180910390fd5b60048190556040805182815290517f036e0c635f8b7d9314bb6f2a577046108ef0f8b5e3869fbd29fd5a448ed99d309181900360200190a150565b600080610500836104f4662c68af0bb1400073__$4162ccbd5d91574b6bbbe632a759499ba8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156104bc57600080fd5b505af41580156104d0573d6000803e3d6000fd5b505050506040513d60208110156104e657600080fd5b50519063ffffffff610b9a16565b9063ffffffff610bf716565b9050600061051e69104a18ef4d3b7a9a2b208363ffffffff610cb316565b949350505050565b6001546001600160a01b031681565b6001546001600160a01b0316331461057e5760405162461bcd60e51b8152600401808060200182810382526035815260200180610dfb6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60ac81565b6360e8e30081565b60055460408051636a5c1cc960e11b815290516000926001600160a01b03169163d4b83992916004808301926020929190829003018186803b15801561064357600080fd5b505afa158015610657573d6000803e3d6000fd5b505050506040513d602081101561066d57600080fd5b50516001600160a01b031633146106b55760405162461bcd60e51b8152600401808060200182810382526035815260200180610e306035913960400191505060405180910390fd5b60006106bf610af3565b6003549091506106d5908263ffffffff610cdd16565b600381905561071790620151809061070b906106fa9062093a8063ffffffff610d3716565b6360e8e3009063ffffffff610cdd16565b9063ffffffff610cdd16565b6002819055604080518581526020810184905280820192909252426060830152517f601e517d4811033fed8290c79b7823ce1ab70258da45400fe2391a3c7432edab9181900360800190a150600192915050565b6000546001600160a01b031681565b60045481565b60008061081e836104f46107a266b1a2bc2ec50000603463ffffffff610d9016565b73__$4162ccbd5d91574b6bbbe632a759499ba8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156107e657600080fd5b505af41580156107fa573d6000803e3d6000fd5b505050506040513d602081101561081057600080fd5b50519063ffffffff610cdd16565b90506108b06108a373__$4162ccbd5d91574b6bbbe632a759499ba8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561086a57600080fd5b505af415801561087e573d6000803e3d6000fd5b505050506040513d602081101561089457600080fd5b5051839063ffffffff610b9a16565b859063ffffffff610cb316565b9150505b92915050565b69104a18ef4d3b7a9a2b2081565b60025481565b6108d6610b4f565b6001600160a01b038116610927576040805162461bcd60e51b81526020600482015260136024820152720416464726573732063616e6e6f74206265203606c1b604482015290519081900360640190fd5b600580546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f4094b32859be9f48a78da629a4781a3dba62f3ac0c160db0d2b16fad5b7e4570916020908290030190a150565b60008061098c6103bb565b6109975790506103d8565b60006109a1610af3565b6003549091505b8115610ad65760010160348110156109e2576109d48369104a18ef4d3b7a9a2b2063ffffffff610cdd16565b925060001990910190610ad1565b60ac8111610a275760006109fd82603363ffffffff610b9a16565b9050610a18610a0b82610466565b859063ffffffff610cdd16565b93505060001990910190610ad1565b600554604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015610a6c57600080fd5b505afa158015610a80573d6000803e3d6000fd5b505050506040513d6020811015610a9657600080fd5b505190506000610aac828663ffffffff610cdd16565b9050610ac8610abb8286610780565b869063ffffffff610cdd16565b94506000935050505b6109a8565b509091505090565b6005546001600160a01b031681565b60035481565b600080600060025411610b1957610b14426360e8e30063ffffffff610b9a16565b610b2d565b600254610b2d90429063ffffffff610b9a16565b9050610b428162093a8063ffffffff610d9016565b91505090565b62093a8081565b6000546001600160a01b03163314610b985760405162461bcd60e51b815260040180806020018281038252602f815260200180610e65602f913960400191505060405180910390fd5b565b600082821115610bf1576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60008073__$4162ccbd5d91574b6bbbe632a759499ba8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3e57600080fd5b505af4158015610c52573d6000803e3d6000fd5b505050506040513d6020811015610c6857600080fd5b505190505b8215610cac576002830615610c8f57610c8c818563ffffffff610cb316565b90505b610c9f848063ffffffff610cb316565b9350600283049250610c6d565b9392505050565b6000670de0b6b3a7640000610cce848463ffffffff610d3716565b81610cd557fe5b049392505050565b600082820183811015610cac576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082610d46575060006108b4565b82820282848281610d5357fe5b0414610cac5760405162461bcd60e51b8152600401808060200182810382526021815260200180610e946021913960400191505060405180910390fd5b6000808211610de6576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610df157fe5b0494935050505056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c7920746865207065726946696e616e636520636f6e74726163742063616e20706572666f726d207468697320616374696f6e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775265776172642063616e6e6f7420657863656564206d6178206d696e74657220726577617264a265627a7a72315820efaad9c2adcee246888c80fdf7fdffc64cf5850082e3fa8a5f036700aa190c0564736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_lastMintEvent",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_currentWeek",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newRewardAmount",
							"type": "uint256"
						}
					],
					"name": "MinterRewardUpdated",
					"type": "event",
					"signature": "0x036e0c635f8b7d9314bb6f2a577046108ef0f8b5e3869fbd29fd5a448ed99d30"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newAddress",
							"type": "address"
						}
					],
					"name": "PeriFinanceProxyUpdated",
					"type": "event",
					"signature": "0x4094b32859be9f48a78da629a4781a3dba62f3ac0c160db0d2b16fad5b7e4570"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "supplyMinted",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "numberOfWeeksIssued",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "lastMintEvent",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "SupplyMinted",
					"type": "event",
					"signature": "0x601e517d4811033fed8290c79b7823ce1ab70258da45400fe2391a3c7432edab"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "DECAY_RATE",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1de40e49"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "INFLATION_START_DATE",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7e1b823f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "INITIAL_WEEKLY_SUPPLY",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xbadef30a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MAX_MINTER_REWARD",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x22af2bab"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MINT_BUFFER",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46872a23"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "MINT_PERIOD_DURATION",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdf5a9fc1"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SUPPLY_DECAY_END",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7c060557"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "SUPPLY_DECAY_START",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x251330f1"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "TERMINAL_SUPPLY_RATE_ANNUAL",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x25542064"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isMintable",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46b45af7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastMintEvent",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xbe801f01"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "mintableSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcc5c095c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minterReward",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9bdd7ac7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "periFinanceProxy",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd12a701d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "supplyMinted",
							"type": "uint256"
						}
					],
					"name": "recordMintEvent",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x7e7961d7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setMinterReward",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4ae26521"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract IPeriFinance",
							"name": "_periFinanceProxy",
							"type": "address"
						}
					],
					"name": "setPeriFinanceProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc1b7ca11"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "totalSupply",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "numOfWeeks",
							"type": "uint256"
						}
					],
					"name": "terminalInflationSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function",
					"signature": "0xb3b2bcc0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "counter",
							"type": "uint256"
						}
					],
					"name": "tokenDecaySupplyForWeek",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "pure",
					"type": "function",
					"signature": "0x4e070f50"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "weekCounter",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd3bd4bde"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "weeksSinceLastIssuance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdbd3a6a7"
				}
			],
			"source": {
				"keccak256": "0x5a93b1f907fa008fb39302f10372a45d4572c64e368d12fc536231ba27fdcf6c",
				"urls": [
					"bzz-raw://deceb29dc4e809850ca89e1ceb97c1a733fd61de0097d418d3804d3ec50c80b1",
					"dweb:/ipfs/QmRBoBh2zBBkP5Xhpgct8fGKx1dQCAaYsVAJc1KsfrPGkH"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"SupplySchedule.sol": "SupplySchedule"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"SupplySchedule.sol": {
						"keccak256": "0x5a93b1f907fa008fb39302f10372a45d4572c64e368d12fc536231ba27fdcf6c",
						"urls": [
							"bzz-raw://deceb29dc4e809850ca89e1ceb97c1a733fd61de0097d418d3804d3ec50c80b1",
							"dweb:/ipfs/QmRBoBh2zBBkP5Xhpgct8fGKx1dQCAaYsVAJc1KsfrPGkH"
						]
					}
				},
				"version": 1
			}
		},
		"MultiCollateralPynth": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200445d3803806200445d833981016040819052620000349162000383565b888888888888888880888888888660128a86816001600160a01b038116620000795760405162461bcd60e51b81526004016200007090620005dc565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000c691849062000580565b60405180910390a1506000546001600160a01b0316620000fa5760405162461bcd60e51b81526004016200007090620005ca565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e906200014790839062000570565b60405180910390a150600580546001600160a01b0319166001600160a01b03881617905584516200018090600690602088019062000255565b5083516200019690600790602087019062000255565b50506008919091556009805460ff191660ff9092169190911790555050600b80546001600160a01b0319166001600160a01b0394851617905550508816620001f25760405162461bcd60e51b81526004016200007090620005a6565b6001600160a01b0384166200021b5760405162461bcd60e51b81526004016200007090620005b8565b5050600d555050600e80546001600160a01b0319166001600160a01b03959095169490941790935550620006dc9950505050505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029857805160ff1916838001178555620002c8565b82800160010185558215620002c8579182015b82811115620002c8578251825591602001919060010190620002ab565b50620002d6929150620002da565b5090565b620002f791905b80821115620002d65760008155600101620002e1565b90565b80516200030781620006ac565b92915050565b80516200030781620006c6565b80516200030781620006d1565b600082601f8301126200033957600080fd5b8151620003506200034a8262000615565b620005ee565b915080825260208301602083018583830111156200036d57600080fd5b6200037a83828462000679565b50505092915050565b60008060008060008060008060006101208a8c031215620003a357600080fd5b6000620003b18c8c620002fa565b9950506020620003c48c828d016200031a565b98505060408a01516001600160401b03811115620003e157600080fd5b620003ef8c828d0162000327565b97505060608a01516001600160401b038111156200040c57600080fd5b6200041a8c828d0162000327565b96505060806200042d8c828d01620002fa565b95505060a0620004408c828d016200030d565b94505060c0620004538c828d016200030d565b93505060e0620004668c828d01620002fa565b9250506101006200047a8c828d01620002fa565b9150509295985092959850929598565b62000495816200066c565b82525050565b620004958162000646565b6000620004b56012836200063d565b7105f70726f78792063616e6e6f7420626520360741b815260200192915050565b6000620004e56012836200063d565b7105f6f776e65722063616e6e6f7420626520360741b815260200192915050565b6000620005156011836200063d565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620005446019836200063d565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b602081016200030782846200048a565b604081016200059082856200048a565b6200059f60208301846200049b565b9392505050565b602080825281016200030781620004a6565b602080825281016200030781620004d6565b60208082528101620003078162000506565b60208082528101620003078162000535565b6040518181016001600160401b03811182821017156200060d57600080fd5b604052919050565b60006001600160401b038211156200062c57600080fd5b506020601f91909101601f19160190565b90815260200190565b6000620003078262000660565b6000620003078262000646565b6001600160a01b031690565b6000620003078262000653565b60005b83811015620006965781810151838201526020016200067c565b83811115620006a6576000848401525b50505050565b620006b78162000646565b8114620006c357600080fd5b50565b620006b781620002f7565b620006b78162000653565b613d7180620006ec6000396000f3fe6080604052600436106102465760003560e01c80638da5cb5b11610139578063b014c3a3116100b6578063e22760f71161007a578063e22760f71461063c578063e73cced314610651578063e90dd9e214610671578063eb1edd6114610686578063ec5568891461069b578063f7ea7a3d146106b057610246565b8063b014c3a3146105b2578063bc67f832146105d2578063d67bdd25146105f2578063dbd06c8514610607578063dd62ed3e1461061c57610246565b80639cbdaeb6116100fd5780639cbdaeb6146105355780639dc29fac1461054a5780639f7698071461056a578063a9059cbb1461058a578063af5a5e4c146105aa57610246565b80638da5cb5b146104b857806392d5011f146104cd57806395d89b41146104ed57806397107d6d146105025780639a26669e1461052257610246565b8063440c6778116101c757806379ba50971161018b57806379ba5097146104215780637f4dab2f14610436578063842efb0114610456578063867904b414610476578063899ffef41461049657610246565b8063440c6778146103955780634466ec2c146103b557806353a47bb7146103ca57806370a08231146103ec578063741853601461040c57610246565b806318160ddd1161020e57806318160ddd1461030757806323b872dd146103295780632af64bd3146103495780632e0f26251461035e578063313ce5671461038057610246565b806304f3bcec1461024b57806306fdde0314610276578063095ea7b314610298578063131b0ae7146102c55780631627540c146102e7575b600080fd5b34801561025757600080fd5b506102606106d0565b60405161026d9190613ab5565b60405180910390f35b34801561028257600080fd5b5061028b6106df565b60405161026d9190613ac3565b3480156102a457600080fd5b506102b86102b3366004612eeb565b61076d565b60405161026d919061397d565b3480156102d157600080fd5b506102e56102e0366004612df0565b6107fb565b005b3480156102f357600080fd5b506102e5610302366004612df0565b610825565b34801561031357600080fd5b5061031c610883565b60405161026d919061398b565b34801561033557600080fd5b506102b8610344366004612e6e565b610889565b34801561035557600080fd5b506102b86108b2565b34801561036a57600080fd5b506103736109ca565b60405161026d9190613bf4565b34801561038c57600080fd5b506103736109cf565b3480156103a157600080fd5b506102e56103b0366004612df0565b6109d8565b3480156103c157600080fd5b50610260610a02565b3480156103d657600080fd5b506103df610a11565b60405161026d919061387c565b3480156103f857600080fd5b5061031c610407366004612df0565b610a20565b34801561041857600080fd5b506102e5610aa9565b34801561042d57600080fd5b506102e5610bff565b34801561044257600080fd5b5061031c610451366004612df0565b610ca4565b34801561046257600080fd5b506102e5610471366004612df0565b610de4565b34801561048257600080fd5b506102e5610491366004612eeb565b610e0e565b3480156104a257600080fd5b506104ab610f8e565b60405161026d919061396c565b3480156104c457600080fd5b506103df6110ac565b3480156104d957600080fd5b506102e56104e8366004612ebb565b6110bb565b3480156104f957600080fd5b5061028b6110ee565b34801561050e57600080fd5b506102e561051d366004612df0565b611149565b6102e5610530366004613050565b61119c565b34801561054157600080fd5b50610260611449565b34801561055657600080fd5b506102e5610565366004612eeb565b611458565b34801561057657600080fd5b506102e5610585366004612ff6565b6115d9565b34801561059657600080fd5b506102b86105a5366004612eeb565b611608565b6102e5611699565b3480156105be57600080fd5b506102b86105cd366004612eeb565b611893565b3480156105de57600080fd5b506102e56105ed366004612df0565b6119f3565b3480156105fe57600080fd5b506103df611a1d565b34801561061357600080fd5b5061031c611a2c565b34801561062857600080fd5b5061031c610637366004612e34565b611a32565b34801561064857600080fd5b506103df611ab5565b34801561065d57600080fd5b506102b861066c366004612e6e565b611ac4565b34801561067d57600080fd5b50610260611c0f565b34801561069257600080fd5b506103df611c1e565b3480156106a757600080fd5b50610260611c36565b3480156106bc57600080fd5b506102e56106cb366004613014565b611c45565b600b546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107655780601f1061073a57610100808354040283529160200191610765565b820191906000526020600020905b81548152906001019060200180831161074857829003601f168201915b505050505081565b6000610777611c52565b60048054600554604051633691826360e21b81526001600160a01b0392831693919092169163da46098c916107b291859189918991016138b3565b600060405180830381600087803b1580156107cc57600080fd5b505af11580156107e0573d6000803e3d6000fd5b505050506107ef818585611ca9565b60019150505b92915050565b610803611d29565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b61082d611d29565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061087890839061387c565b60405180910390a150565b60085481565b6000610893611c52565b61089d8483611d53565b6108a8848484611e88565b90505b9392505050565b600060606108be610f8e565b905060005b81518110156109c05760008282815181106108da57fe5b6020908102919091018101516000818152600c90925260409182902054600b5492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a7219061092b90859060040161398b565b60206040518083038186803b15801561094357600080fd5b505afa158015610957573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061097b9190810190612e16565b6001600160a01b03161415806109a657506000818152600c60205260409020546001600160a01b0316155b156109b757600093505050506109c7565b506001016108c3565b5060019150505b90565b601281565b60095460ff1681565b6109e0611d29565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b600f546001600160a01b031681565b6001546001600160a01b031681565b6005546040516370a0823160e01b81526000916001600160a01b0316906370a0823190610a5190859060040161387c565b60206040518083038186803b158015610a6957600080fd5b505afa158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa19190810190613032565b90505b919050565b6060610ab3610f8e565b905060005b8151811015610bfb576000828281518110610acf57fe5b602002602001015190506000600b60009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610b119190613866565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610b3d9291906139a7565b60206040518083038186803b158015610b5557600080fd5b505afa158015610b69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b8d9190810190612e16565b6000838152600c60205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610be99084908490613999565b60405180910390a15050600101610ab8565b5050565b6001546001600160a01b03163314610c325760405162461bcd60e51b8152600401610c2990613ae4565b60405180910390fd5b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92610c75926001600160a01b0391821692911690613898565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600080610caf612019565b6001600160a01b03166319d5c66584600d546040518363ffffffff1660e01b8152600401610cde9291906138db565b60606040518083038186803b158015610cf657600080fd5b505afa158015610d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d2e9190810190613093565b50506005546040516370a0823160e01b81529192506000916001600160a01b03909116906370a0823190610d6690879060040161387c565b60206040518083038186803b158015610d7e57600080fd5b505afa158015610d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610db69190810190613032565b905080821115610dcb57600092505050610aa4565b610ddb818363ffffffff61203516565b92505050610aa4565b610dec611d29565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610e1861205d565b6001600160a01b0316336001600160a01b03161490506000610e38612019565b6001600160a01b0316336001600160a01b03161490506000610e58612072565b6001600160a01b0316336001600160a01b03161490506000610e78612086565b6001600160a01b0316336001600160a01b03161490506000610e986120a3565b6001600160a01b0316336001600160a01b03161490506000610eb86120c4565b6001600160a01b031663b38988f7336040518263ffffffff1660e01b8152600401610ee3919061388a565b60206040518083038186803b158015610efb57600080fd5b505afa158015610f0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f339190810190612fd8565b90508580610f3e5750845b80610f465750835b80610f4e5750825b80610f565750815b80610f5e5750805b610f7a5760405162461bcd60e51b8152600401610c2990613b24565b610f8488886120e3565b5050505050505050565b606080610f996121fb565b60408051600580825260c08201909252919250606091906020820160a0803883390190505090507021b7b63630ba32b930b626b0b730b3b2b960791b81600081518110610fe257fe5b6020026020010181815250506e115d1a195c90dbdb1b185d195c985b608a1b8160018151811061100e57fe5b60200260200101818152505072115d1a195c90dbdb1b185d195c985b1c1554d1606a1b8160028151811061103e57fe5b6020026020010181815250506d53797374656d53657474696e677360901b8160038151811061106957fe5b6020026020010181815250506844656274436163686560b81b8160048151811061108f57fe5b6020026020010181815250506110a582826122b7565b9250505090565b6000546001600160a01b031681565b6110c3611d29565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156107655780601f1061073a57610100808354040283529160200191610765565b611151611d29565b600280546001600160a01b0319166001600160a01b0383161790556040517ffc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e9061087890839061388a565b6111a4611c52565b600f546001600160a01b03166111cc5760405162461bcd60e51b8152600401610c2990613ba4565b600083116111ec5760405162461bcd60e51b8152600401610c2990613bc4565b6111f4612373565b6001600160a01b031663962438036040518163ffffffff1660e01b815260040160206040518083038186803b15801561122c57600080fd5b505afa158015611240573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112649190810190613032565b3410156112835760405162461bcd60e51b8152600401610c2990613b64565b600e546040516001600160a01b03909116903480156108fc02916000818181858888f193505050501580156112bc573d6000803e3d6000fd5b506004546112d3906001600160a01b03168461238f565b6112ef5760405162461bcd60e51b8152600401610c2990613b44565b6112f7612455565b6001600160a01b0316638376a782631c1554d160e21b73__$403e5438a00a7d3d295861087c3305b322$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561135157600080fd5b505af4158015611365573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113899190810190613032565b6040518363ffffffff1660e01b81526004016113a69291906139c7565b600060405180830381600087803b1580156113c057600080fd5b505af11580156113d4573d6000803e3d6000fd5b5050600f54600480546040516362f0c06b60e01b81526001600160a01b0393841695506362f0c06b9450611412939091169188918891889101613937565b600060405180830381600087803b15801561142c57600080fd5b505af1158015611440573d6000803e3d6000fd5b50505050505050565b6003546001600160a01b031681565b600061146261205d565b6001600160a01b0316336001600160a01b03161490506000611482612019565b6001600160a01b0316336001600160a01b031614905060006114a2612072565b6001600160a01b0316336001600160a01b031614905060006114c2612086565b6001600160a01b0316336001600160a01b031614905060006114e26120a3565b6001600160a01b0316336001600160a01b031614905060006115026120c4565b6001600160a01b031663b38988f7336040518263ffffffff1660e01b815260040161152d919061388a565b60206040518083038186803b15801561154557600080fd5b505afa158015611559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061157d9190810190612fd8565b905085806115885750845b806115905750835b806115985750825b806115a05750815b806115a85750805b6115c45760405162461bcd60e51b8152600401610c2990613b24565b6115ce888861238f565b505050505050505050565b6115e161246c565b600580546001600160a01b0319166001600160a01b038316179055611605816124f1565b50565b6000611612611c52565b600454611628906001600160a01b031683611d53565b6001600160a01b03831673feefeefeefeefeefeefeefeefeefeefeefeefeef141561165e576116578383612598565b90506107f5565b6001600160a01b03831661168257600454611657906001600160a01b03168361238f565b6004546108ab906001600160a01b031684846126e5565b6116a1611c52565b600f546001600160a01b03166116c95760405162461bcd60e51b8152600401610c2990613ba4565b600f5460048054604051630145b42f60e31b81526060936001600160a01b0390811693630a2da178936116ff939216910161387c565b60006040518083038186803b15801561171757600080fd5b505afa15801561172b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117539190810190612fa3565b905060008151116117765760405162461bcd60e51b8152600401610c2990613b84565b61177e612373565b6001600160a01b03166387c24d346040518163ffffffff1660e01b815260040160206040518083038186803b1580156117b657600080fd5b505afa1580156117ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117ee9190810190613032565b34101561180d5760405162461bcd60e51b8152600401610c2990613b64565b600e546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015611846573d6000803e3d6000fd5b5060005b8151811015610bfb5761186f82828151811061186257fe5b60200260200101516128aa565b61188b5760405162461bcd60e51b8152600401610c2990613b74565b60010161184a565b600061189d611c52565b60006118a7612019565b60048054600d546040516306c5a00b60e21b81526001600160a01b0394851694631b16802c946118dc949091169291016138db565b606060405180830381600087803b1580156118f657600080fd5b505af115801561190a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061192e9190810190613093565b92508491505081156119c157600554600480546040516370a0823160e01b81526001600160a01b03938416936370a082319361196e93909116910161387c565b60206040518083038186803b15801561198657600080fd5b505afa15801561199a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119be9190810190613032565b90505b8084116119ce57836119d0565b805b6004549094506119ea906001600160a01b031686866126e5565b95945050505050565b6119fb612a8c565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6004546001600160a01b031681565b600d5481565b600554604051636eb1769f60e11b81526000916001600160a01b03169063dd62ed3e90611a659086908690600401613898565b60206040518083038186803b158015611a7d57600080fd5b505afa158015611a91573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108ab9190810190613032565b600e546001600160a01b031681565b6000611ace611c52565b6000611ad8612019565b6001600160a01b0316631b16802c86600d546040518363ffffffff1660e01b8152600401611b079291906138db565b606060405180830381600087803b158015611b2157600080fd5b505af1158015611b35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b599190810190613093565b9250849150508115611be8576005546040516370a0823160e01b81526001600160a01b03909116906370a0823190611b9590899060040161387c565b60206040518083038186803b158015611bad57600080fd5b505afa158015611bc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611be59190810190613032565b90505b80841015611bf65783611bf8565b805b9350611c05868686611e88565b9695505050505050565b6005546001600160a01b031681565b73feefeefeefeefeefeefeefeefeefeefeefeefeef81565b6002546001600160a01b031681565b611c4d61246c565b600855565b6002546001600160a01b03163314801590611c7857506003546001600160a01b03163314155b8015611c8f57506004546001600160a01b03163314155b15611ca757600480546001600160a01b031916331790555b565b6002546040516001600160a01b039091169063907dff9790611ccf90849060200161398b565b6040516020818303038152906040526003604051611cec90613845565b6040518091039020611cfd88612acb565b611d0688612acb565b60006040518763ffffffff1660e01b815260040161141296959493929190613a6e565b6000546001600160a01b03163314611ca75760405162461bcd60e51b8152600401610c2990613b54565b611d5b612019565b6001600160a01b031663059c29ec83600d546040518363ffffffff1660e01b8152600401611d8a9291906138db565b60206040518083038186803b158015611da257600080fd5b505afa158015611db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611dda9190810190613032565b15611df75760405162461bcd60e51b8152600401610c2990613bb4565b80611e0183610ca4565b1015611e1f5760405162461bcd60e51b8152600401610c2990613b14565b611e27612ad7565b6001600160a01b0316631d7e7789600d546040518263ffffffff1660e01b8152600401611e54919061398b565b60006040518083038186803b158015611e6c57600080fd5b505afa158015611e80573d6000803e3d6000fd5b505050505050565b60055460048054604051636eb1769f60e11b8152600093600019936001600160a01b039182169363dd62ed3e93611ec4938b9392169101613898565b60206040518083038186803b158015611edc57600080fd5b505afa158015611ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f149190810190613032565b1461200e5760055460048054604051636eb1769f60e11b81526001600160a01b039384169363da46098c93899390911691611fbd918891879163dd62ed3e91611f61918891889101613898565b60206040518083038186803b158015611f7957600080fd5b505afa158015611f8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611fb19190810190613032565b9063ffffffff61203516565b6040518463ffffffff1660e01b8152600401611fdb939291906138b3565b600060405180830381600087803b158015611ff557600080fd5b505af1158015612009573d6000803e3d6000fd5b505050505b6108a88484846126e5565b60006120306822bc31b430b733b2b960b91b612aed565b905090565b6000828211156120575760405162461bcd60e51b8152600401610c2990613b34565b50900390565b600061203066119959541bdbdb60ca1b612aed565b60006120306524b9b9bab2b960d11b612aed565b60006120306e115d1a195c90dbdb1b185d195c985b608a1b612aed565b600061203072115d1a195c90dbdb1b185d195c985b1c1554d1606a1b612aed565b60006120307021b7b63630ba32b930b626b0b730b3b2b960791b612aed565b6005546040516370a0823160e01b81526001600160a01b039091169063b46310f690849061217f90859085906370a082319061212390869060040161387c565b60206040518083038186803b15801561213b57600080fd5b505afa15801561214f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121739190810190613032565b9063ffffffff612b4a16565b6040518363ffffffff1660e01b815260040161219c9291906138db565b600060405180830381600087803b1580156121b657600080fd5b505af11580156121ca573d6000803e3d6000fd5b50506008546121e2925090508263ffffffff612b4a16565b6008556121f160008383612b6f565b610bfb8282612bb2565b60408051600480825260a08201909252606091602082016080803883390190505090506b53797374656d53746174757360a01b8160008151811061223b57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160018151811061226157fe5b6020026020010181815250506524b9b9bab2b960d11b8160028151811061228457fe5b60200260200101818152505066119959541bdbdb60ca1b816003815181106122a857fe5b60200260200101818152505090565b606081518351016040519080825280602002602001820160405280156122e7578160200160208202803883390190505b50905060005b83518110156123295783818151811061230257fe5b602002602001015182828151811061231657fe5b60209081029190910101526001016122ed565b5060005b825181101561236c5782818151811061234257fe5b602002602001015182828651018151811061235957fe5b602090810291909101015260010161232d565b5092915050565b60006120306d53797374656d53657474696e677360901b612aed565b6005546040516370a0823160e01b81526000916001600160a01b03169063b46310f69085906123d090869085906370a0823190611f6190869060040161387c565b6040518363ffffffff1660e01b81526004016123ed9291906138db565b600060405180830381600087803b15801561240757600080fd5b505af115801561241b573d6000803e3d6000fd5b5050600854612433925090508363ffffffff61203516565b60085561244283600084612b6f565b61244c8383612c58565b50600192915050565b60006120306844656274436163686560b81b612aed565b6002546001600160a01b0316331480159061249257506003546001600160a01b03163314155b80156124a957506004546001600160a01b03163314155b156124c157600480546001600160a01b031916331790555b6000546004546001600160a01b03908116911614611ca75760405162461bcd60e51b8152600401610c2990613af4565b6002546040516001600160a01b039091169063907dff979061251790849060200161387c565b604051602081830303815290604052600160405161253490613850565b6040519081900381206001600160e01b031960e086901b168252612563939291600090819081906004016139d5565b600060405180830381600087803b15801561257d57600080fd5b505af1158015612591573d6000803e3d6000fd5b5050505050565b600080600d54631c1554d160e21b14156125cc575060045482906125c6906001600160a01b031685836126e5565b50612676565b6125d4612019565b60048054600d54604051630a1e187d60e01b81526001600160a01b0394851694630a1e187d94612621949091169291899173feefeefeefeefeefeefeefeefeefeefeefeefeef91016138f6565b602060405180830381600087803b15801561263b57600080fd5b505af115801561264f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126739190810190613032565b90505b61267e61205d565b6001600160a01b03166322bf55ef826040518263ffffffff1660e01b81526004016126a9919061398b565b600060405180830381600087803b1580156126c357600080fd5b505af11580156126d7573d6000803e3d6000fd5b506001979650505050505050565b60006001600160a01b0383161580159061270857506001600160a01b0383163014155b801561272257506002546001600160a01b03848116911614155b61273e5760405162461bcd60e51b8152600401610c2990613ad4565b6001600160a01b0384166000908152600a602052604090205460ff16156127775760405162461bcd60e51b8152600401610c2990613be4565b6005546040516370a0823160e01b81526001600160a01b039091169063b46310f69086906127b790869085906370a0823190611f6190869060040161387c565b6040518363ffffffff1660e01b81526004016127d49291906138db565b600060405180830381600087803b1580156127ee57600080fd5b505af1158015612802573d6000803e3d6000fd5b50506005546040516370a0823160e01b81526001600160a01b03909116925063b46310f69150859061284690869085906370a082319061212390869060040161387c565b6040518363ffffffff1660e01b81526004016128639291906138db565b600060405180830381600087803b15801561287d57600080fd5b505af1158015612891573d6000803e3d6000fd5b505050506128a0848484612b6f565b5060019392505050565b600f54604051631e1d164f60e01b8152600091829182916001600160a01b031690631e1d164f906128df90879060040161398b565b6101006040518083038186803b1580156128f857600080fd5b505afa15801561290c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506129309190810190612f1b565b505060045493955091935050506001600160a01b038084169116146129675760405162461bcd60e51b8152600401610c2990613b94565b600f5460405163484f80c560e11b81526001600160a01b039091169063909f018a9061299990879085906004016139c7565b600060405180830381600087803b1580156129b357600080fd5b505af11580156129c7573d6000803e3d6000fd5b505050506129d582826120e3565b6129dd612455565b6001600160a01b0316638376a782631c1554d160e21b73__$403e5438a00a7d3d295861087c3305b322$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015612a3757600080fd5b505af4158015612a4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a6f9190810190613032565b6040518363ffffffff1660e01b81526004016126a99291906139c7565b6002546001600160a01b0316331480612aaf57506003546001600160a01b031633145b611ca75760405162461bcd60e51b8152600401610c2990613bd4565b6001600160a01b031690565b60006120306b53797374656d53746174757360a01b5b6000818152600c602090815260408083205490516001600160a01b039091169182151591612b1d9186910161381a565b6040516020818303038152906040529061236c5760405162461bcd60e51b8152600401610c299190613ac3565b6000828201838110156108ab5760405162461bcd60e51b8152600401610c2990613b04565b6002546040516001600160a01b039091169063907dff9790612b9590849060200161398b565b6040516020818303038152906040526003604051611cec90613871565b6002546040516001600160a01b039091169063907dff9790612bd890849060200161398b565b6040516020818303038152906040526002604051612bf59061385b565b6040518091039020612c0687612acb565b6000806040518763ffffffff1660e01b8152600401612c2a96959493929190613a34565b600060405180830381600087803b158015612c4457600080fd5b505af1158015611e80573d6000803e3d6000fd5b6002546040516001600160a01b039091169063907dff9790612c7e90849060200161398b565b6040516020818303038152906040526002604051612bf59061383a565b80356107f581613cf6565b80516107f581613cf6565b600082601f830112612cc257600080fd5b8151612cd5612cd082613c29565b613c02565b91508181835260208401935060208101905083856020840282011115612cfa57600080fd5b60005b83811015612d265781612d108882612d51565b8452506020928301929190910190600101612cfd565b5050505092915050565b80356107f581613d0a565b80516107f581613d0a565b80356107f581613d13565b80516107f581613d13565b80356107f581613d1c565b600060608284031215612d7957600080fd5b50919050565b600060608284031215612d9157600080fd5b612d9b6060613c02565b90506000612da98484612d51565b8252506020612dba84848301612d51565b6020830152506040612dce84828501612de5565b60408301525092915050565b80356107f581613d25565b80516107f581613d25565b600060208284031215612e0257600080fd5b6000612e0e8484612c9b565b949350505050565b600060208284031215612e2857600080fd5b6000612e0e8484612ca6565b60008060408385031215612e4757600080fd5b6000612e538585612c9b565b9250506020612e6485828601612c9b565b9150509250929050565b600080600060608486031215612e8357600080fd5b6000612e8f8686612c9b565b9350506020612ea086828701612c9b565b9250506040612eb186828701612d46565b9150509250925092565b60008060408385031215612ece57600080fd5b6000612eda8585612c9b565b9250506020612e6485828601612d30565b60008060408385031215612efe57600080fd5b6000612f0a8585612c9b565b9250506020612e6485828601612d46565b6000806000806000806101008789031215612f3557600080fd5b6000612f418989612ca6565b9650506020612f5289828a01612d51565b9550506040612f6389828a01612d51565b9450506060612f7489828a01612d51565b9350506080612f8589828a01612d3b565b92505060a0612f9689828a01612d7f565b9150509295509295509295565b600060208284031215612fb557600080fd5b815167ffffffffffffffff811115612fcc57600080fd5b612e0e84828501612cb1565b600060208284031215612fea57600080fd5b6000612e0e8484612d3b565b60006020828403121561300857600080fd5b6000612e0e8484612d5c565b60006020828403121561302657600080fd5b6000612e0e8484612d46565b60006020828403121561304457600080fd5b6000612e0e8484612d51565b600080600060a0848603121561306557600080fd5b60006130718686612d46565b935050602061308286828701612d46565b9250506040612eb186828701612d67565b6000806000606084860312156130a857600080fd5b60006130b48686612d51565b93505060206130c586828701612d51565b9250506040612eb186828701612d51565b60006130e28383613164565b505060200190565b6130f381613c9c565b82525050565b6130f381613c7b565b600061310d82613c50565b6131178185613c54565b935061312283613c4a565b8060005b8381101561315057815161313a88826130d6565b975061314583613c4a565b925050600101613126565b509495945050505050565b6130f381613c86565b6130f3816109c7565b6130f3613179826109c7565b6109c7565b600061318982613c50565b6131938185613c54565b93506131a3818560208601613cc0565b6131ac81613cec565b9093019392505050565b6130f381613c8b565b6130f381613ca7565b6130f381613cb5565b60006131de601f83613c54565b7f43616e6e6f74207472616e7366657220746f2074686973206164647265737300815260200192915050565b6000613217603583613c54565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b600061326e601383613c54565b7227bbb732b91037b7363c90333ab731ba34b7b760691b815260200192915050565b600061329d601b83613c54565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006132d6602f83613c54565b7f496e73756666696369656e742062616c616e636520616674657220616e79207381526e6574746c656d656e74206f77696e6760881b602082015260400192915050565b6000613327604483613c54565b7f4f6e6c7920466565506f6f6c2c2045786368616e6765722c204973737565722081527f6f72204d756c7469436f6c6c61746572616c20636f6e74726163747320616c6c6020820152631bddd95960e21b604082015260600192915050565b6000613393601e83613c54565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b60006133cc601183610aa4565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006133f9601783610aa4565b7f4275726e656428616464726573732c75696e7432353629000000000000000000815260170192915050565b6000613432600e83613c54565b6d189d5c9b9a5b99c819985a5b195960921b815260200192915050565b600061345c602f83613c54565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006134ad602183610aa4565b7f417070726f76616c28616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b60006134f0601583613c54565b74199959481a5cc81b9bdd081cdd59999a58da595b9d605a1b815260200192915050565b6000613521601a83610aa4565b7f546f6b656e5374617465557064617465642861646472657373290000000000008152601a0192915050565b600061355a601783610aa4565b7f49737375656428616464726573732c75696e7432353629000000000000000000815260170192915050565b631c1554d160e21b9052565b600061359f600f83613c54565b6e4661696c656420746f20636c61696d60881b815260200192915050565b60006135ca601983610aa4565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000613603600c83613c54565b6b4e6f20636c61696d61626c6560a01b815260200192915050565b600061362b601583613c54565b7410d85b1b195c881a5cc81b9bdd081b585d18da1959605a1b815260200192915050565b600061365c602e83613c54565b7f427269646765205374617465206d7573742062652073657420746f2063616c6c81526d103a3434b990333ab731ba34b7b760911b602082015260400192915050565b60006136ac602583613c54565b7f43616e6e6f74207472616e7366657220647572696e672077616974696e672070815264195c9a5bd960da1b602082015260400192915050565b60006136f3602183610aa4565b7f5472616e7366657228616464726573732c616464726573732c75696e743235368152602960f81b602082015260210192915050565b6000613736601483613c54565b7343616e6e6f74207472616e73666572207a65726f60601b815260200192915050565b6000613766601783613c54565b7f4f6e6c79207468652070726f78792063616e2063616c6c000000000000000000815260200192915050565b600061379f600f83613c54565b6e426c6f636b6564206164647265737360881b815260200192915050565b606082016137cb8280613c5d565b6137d58482613164565b506137e36020830183613c5d565b6137f06020850182613164565b506137fe6040830183613c6c565b61380b6040850182613811565b50505050565b6130f381613c96565b6000613825826133bf565b9150613831828461316d565b50602001919050565b60006107f5826133ec565b60006107f5826134a0565b60006107f582613514565b60006107f58261354d565b6000613825826135bd565b60006107f5826136e6565b602081016107f582846130f9565b602081016107f582846130ea565b604081016138a682856130f9565b6108ab60208301846130f9565b606081016138c182866130f9565b6138ce60208301856130f9565b612e0e6040830184613164565b604081016138e982856130f9565b6108ab6020830184613164565b60a0810161390482876130f9565b6139116020830186613164565b61391e6040830185613164565b61392a60608301613586565b6119ea60808301846130f9565b60c0810161394582876130f9565b6139526020830186613164565b61395f6040830185613164565b6119ea60608301846137bd565b602080825281016108ab8184613102565b602081016107f5828461315b565b602081016107f58284613164565b604081016138a68285613164565b604081016139b58285613164565b81810360208301526108a8818461317e565b604081016138e98285613164565b60c080825281016139e6818961317e565b90506139f560208301886131c8565b613a026040830187613164565b613a0f60608301866131bf565b613a1c60808301856131bf565b613a2960a08301846131bf565b979650505050505050565b60c08082528101613a45818961317e565b9050613a5460208301886131c8565b613a616040830187613164565b613a0f6060830186613164565b60c08082528101613a7f818961317e565b9050613a8e60208301886131c8565b613a9b6040830187613164565b613aa86060830186613164565b613a1c6080830185613164565b602081016107f582846131b6565b602080825281016108ab818461317e565b60208082528101610aa1816131d1565b60208082528101610aa18161320a565b60208082528101610aa181613261565b60208082528101610aa181613290565b60208082528101610aa1816132c9565b60208082528101610aa18161331a565b60208082528101610aa181613386565b60208082528101610aa181613425565b60208082528101610aa18161344f565b60208082528101610aa1816134e3565b60208082528101610aa181613592565b60208082528101610aa1816135f6565b60208082528101610aa18161361e565b60208082528101610aa18161364f565b60208082528101610aa18161369f565b60208082528101610aa181613729565b60208082528101610aa181613759565b60208082528101610aa181613792565b602081016107f58284613811565b60405181810167ffffffffffffffff81118282101715613c2157600080fd5b604052919050565b600067ffffffffffffffff821115613c4057600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b60006108ab6020840184612d46565b60006108ab6020840184612dda565b6000610aa182612acb565b151590565b6000610aa182613c7b565b60ff1690565b6000610aa182613c8b565b6000610aa1613179836109c7565b6000610aa1826109c7565b60005b83811015613cdb578181015183820152602001613cc3565b8381111561380b5750506000910152565b601f01601f191690565b613cff81613c7b565b811461160557600080fd5b613cff81613c86565b613cff816109c7565b613cff81613c8b565b613cff81613c9656fea365627a7a72315820b27d99af97632f917925ee31703b266a5b4f8bd46babb2d508fa49082de1f1fb6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						},
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						},
						{
							"internalType": "string",
							"name": "_tokenName",
							"type": "string"
						},
						{
							"internalType": "string",
							"name": "_tokenSymbol",
							"type": "string"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_totalSupply",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "address payable",
							"name": "_bridgeValidator",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Approval",
					"type": "event",
					"signature": "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Burned",
					"type": "event",
					"signature": "0x696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df7"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Issued",
					"type": "event",
					"signature": "0xa59f12e354e8cd10bb74c559844c2dd69a5458e31fe56c7594c62ca57480509a"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "proxyAddress",
							"type": "address"
						}
					],
					"name": "ProxyUpdated",
					"type": "event",
					"signature": "0xfc80377ca9c49cc11ae6982f390a42db976d5530af7c43889264b13fbbd7c57e"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newTokenState",
							"type": "address"
						}
					],
					"name": "TokenStateUpdated",
					"type": "event",
					"signature": "0xa538c4dcfe9fb148efee2952bafe34982d2d07d5fbb38ae5b44abf659a46bfd8"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "Transfer",
					"type": "event",
					"signature": "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "DECIMALS",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2e0f2625"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "FEE_ADDRESS",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeb1edd61"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						}
					],
					"name": "allowance",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdd62ed3e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "spender",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "approve",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x095ea7b3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "balanceOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x70a08231"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "bridgeState",
					"outputs": [
						{
							"internalType": "contract IBridgeState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4466ec2c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "bridgeValidator",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe22760f7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "burn",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x9dc29fac"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "claimAllBridgedAmounts",
					"outputs": [],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0xaf5a5e4c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currencyKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdbd06c85"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "decimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x313ce567"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "integrationProxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9cbdaeb6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "issue",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x867904b4"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "messageSender",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd67bdd25"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "name",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x06fdde03"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_destChainId",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "bytes32",
									"name": "r",
									"type": "bytes32"
								},
								{
									"internalType": "bytes32",
									"name": "s",
									"type": "bytes32"
								},
								{
									"internalType": "uint8",
									"name": "v",
									"type": "uint8"
								}
							],
							"internalType": "struct IBridgeState.Signature",
							"name": "_sign",
							"type": "tuple"
						}
					],
					"name": "overchainTransfer",
					"outputs": [],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0x9a26669e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "proxy",
					"outputs": [
						{
							"internalType": "contract Proxy",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xec556889"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_target",
							"type": "address"
						},
						{
							"internalType": "bool",
							"name": "_set",
							"type": "bool"
						}
					],
					"name": "setBlockedAddress",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x92d5011f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_newBridgeState",
							"type": "address"
						}
					],
					"name": "setBridgeState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x440c6778"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_bridgeValidator",
							"type": "address"
						}
					],
					"name": "setBridgeValidator",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x842efb01"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_integrationProxy",
							"type": "address"
						}
					],
					"name": "setIntegrationProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x131b0ae7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "sender",
							"type": "address"
						}
					],
					"name": "setMessageSender",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbc67f832"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_proxy",
							"type": "address"
						}
					],
					"name": "setProxy",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x97107d6d"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "contract TokenState",
							"name": "_tokenState",
							"type": "address"
						}
					],
					"name": "setTokenState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x9f769807"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setTotalSupply",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf7ea7a3d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "symbol",
					"outputs": [
						{
							"internalType": "string",
							"name": "",
							"type": "string"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x95d89b41"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "tokenState",
					"outputs": [
						{
							"internalType": "contract TokenState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe90dd9e2"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSupply",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x18160ddd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transfer",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa9059cbb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferAndSettle",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb014c3a3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFrom",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x23b872dd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "to",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "value",
							"type": "uint256"
						}
					],
					"name": "transferFromAndSettle",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe73cced3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "transferablePynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7f4dab2f"
				}
			],
			"source": {
				"keccak256": "0xbcdc723113b63a94656abbccaba4bc8320b34a82b05cc023d13842cc1550e31b",
				"urls": [
					"bzz-raw://22d060a9e3726c11e49136c60e5b4ab7921bca37880ca44ef08878b78cf11dc4",
					"dweb:/ipfs/QmPR35zQ496GW728yVgv6hCQFy1FntSDcByH4aY75PmNVX"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"MultiCollateralPynth.sol": "MultiCollateralPynth"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"MultiCollateralPynth.sol": {
						"keccak256": "0xbcdc723113b63a94656abbccaba4bc8320b34a82b05cc023d13842cc1550e31b",
						"urls": [
							"bzz-raw://22d060a9e3726c11e49136c60e5b4ab7921bca37880ca44ef08878b78cf11dc4",
							"dweb:/ipfs/QmPR35zQ496GW728yVgv6hCQFy1FntSDcByH4aY75PmNVX"
						]
					}
				},
				"version": 1
			}
		},
		"StakingState": {
			"bytecode": "608060405234801561001057600080fd5b506040516113af3803806113af8339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a1505050611209806101a66000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806377e15451116100ad57806397bb3ce91161007157806397bb3ce9146103c95780639d88955f146103e65780639ead72221461040b578063a98b9ff414610428578063aefc4ccb1461045a5761012c565b806377e154511461034d57806379ba50971461036a5780638547dbd9146103725780638c610c8d1461038f5780638da5cb5b146103c15761012c565b806344aedc5f116100f457806344aedc5f1461024c578063480310bb1461027f57806352f445ca146102ab57806353a47bb7146102d15780635b081237146102f55761012c565b80631627540c146101315780632c20fce21461015957806337092864146101885780633f6a1607146101d15780634020ed1414610206575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b0316610462565b005b6101766004803603602081101561016f57600080fd5b50356104be565b60408051918252519081900360200190f35b6101a56004803603602081101561019e57600080fd5b50356104d0565b604080516001600160a01b03909416845260ff9092166020840152151582820152519081900360600190f35b610157600480360360608110156101e757600080fd5b5080359060208101356001600160a01b0316906040013560ff16610501565b6102386004803603606081101561021c57600080fd5b508035906001600160a01b0360208201351690604001356106a1565b604080519115158252519081900360200190f35b6102696004803603602081101561026257600080fd5b50356107e7565b6040805160ff9092168252519081900360200190f35b6101766004803603604081101561029557600080fd5b50803590602001356001600160a01b0316610803565b610157600480360360208110156102c157600080fd5b50356001600160a01b0316610820565b6102d961087c565b604080516001600160a01b039092168252519081900360200190f35b6102fd61088b565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610339578181015183820152602001610321565b505050509050019250505060405180910390f35b6101766004803603602081101561036357600080fd5b50356108e3565b6101576108f5565b6102386004803603602081101561038857600080fd5b50356109b1565b610157600480360360608110156103a557600080fd5b508035906001600160a01b0360208201351690604001356109cd565b6102d9610b9b565b6102d9600480360360208110156103df57600080fd5b5035610baa565b610157600480360360408110156103fc57600080fd5b50803590602001351515610bc5565b6101766004803603602081101561042157600080fd5b5035610c01565b6101576004803603606081101561043e57600080fd5b508035906001600160a01b036020820135169060400135610c1f565b6102d9610e2a565b61046a610e39565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60056020526000908152604090205481565b6003602052600090815260409020546001600160a01b0381169060ff600160a01b8204811691600160a81b90041683565b610509610e39565b6001600160a01b038216610564576040805162461bcd60e51b815260206004820152601760248201527f416464726573732063616e6e6f7420626520656d707479000000000000000000604482015290519081900360640190fd5b6000838152600360205260409020546001600160a01b0316156105ce576040805162461bcd60e51b815260206004820152601b60248201527f546f6b656e20697320616c726561647920726567697374657265640000000000604482015290519081900360640190fd5b6000838152600360205260409020546001600160a01b031661062057600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688018390555b604080516060810182526001600160a01b03938416815260ff92831660208083019182526001838501908152600097885260039091529290952090518154955192516001600160a01b031990961694169390931760ff60a01b1916600160a01b91909216021760ff60a81b1916600160a81b92151592909202919091179055565b6002546000906001600160a01b031633146106ed5760405162461bcd60e51b815260040180806020018281038252603481526020018061117d6034913960400191505060405180910390fd5b6000848152600360205260408120546012600160a01b90910460ff1610610715576000610732565b600085815260036020526040902054600160a01b900460ff166012035b60ff16905061074085610e84565b6001600160a01b031663a9059cbb8561076386600a86900a63ffffffff610f0916565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b1580156107b257600080fd5b505af11580156107c6573d6000803e3d6000fd5b505050506040513d60208110156107dc57600080fd5b505195945050505050565b600090815260036020526040902054600160a01b900460ff1690565b600460209081526000928352604080842090915290825290205481565b610828610e39565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b606060078054806020026020016040519081016040528092919081815260200182805480156108d957602002820191906000526020600020905b8154815260200190600101908083116108c5575b5050505050905090565b60066020526000908152604090205481565b6001546001600160a01b0316331461093e5760405162461bcd60e51b81526004018080602001828103825260358152602001806110f06035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600090815260036020526040902054600160a81b900460ff1690565b6002546001600160a01b03163314610a165760405162461bcd60e51b815260040180806020018281038252603481526020018061117d6034913960400191505060405180910390fd5b610a1f83610f73565b600083815260036020526040902054600160a81b900460ff16610a89576040805162461bcd60e51b815260206004820152601d60248201527f54617267657420746f6b656e206973206e6f7420616374697661746564000000604482015290519081900360640190fd5b60008381526004602090815260408083206001600160a01b0386168452909152902054158015610ab95750600081115b15610ac757610ac783610fdf565b60008381526004602090815260408083206001600160a01b0386168452909152902054610afa908263ffffffff61101116565b60008481526004602090815260408083206001600160a01b0387168452825280832093909355858252600590522054610b39908263ffffffff61101116565b6000848152600560209081526040918290209290925580518581526001600160a01b03851692810192909252818101839052517ffba03de4f3817b65c8bbd83551b938ace8f4a72bfad6821d9b4088bd6a2079809181900360600190a1505050565b6000546001600160a01b031681565b6000908152600360205260409020546001600160a01b031690565b610bcd610e39565b610bd682610f73565b6000918252600360205260409091208054911515600160a81b0260ff60a81b19909216919091179055565b60078181548110610c0e57fe5b600091825260209091200154905081565b6002546001600160a01b03163314610c685760405162461bcd60e51b815260040180806020018281038252603481526020018061117d6034913960400191505060405180910390fd5b60008381526004602090815260408083206001600160a01b0386168452909152902054811115610cc95760405162461bcd60e51b81526004018080602001828103825260298152602001806111256029913960400191505060405180910390fd5b600083815260056020526040902054811115610d165760405162461bcd60e51b81526004018080602001828103825260248152602001806111b16024913960400191505060405180910390fd5b60008381526004602090815260408083206001600160a01b0386168452909152902054610d49908263ffffffff61107216565b610d5657610d56836110cf565b60008381526004602090815260408083206001600160a01b0386168452909152902054610d89908263ffffffff61107216565b60008481526004602090815260408083206001600160a01b0387168452825280832093909355858252600590522054610dc8908263ffffffff61107216565b6000848152600560209081526040918290209290925580518581526001600160a01b03851692810192909252818101839052517ffce1a9063ab422f6b95f8c9d5e2bee83ae07416cd5859af625809f3078f5d9589181900360600190a1505050565b6002546001600160a01b031681565b6000546001600160a01b03163314610e825760405162461bcd60e51b815260040180806020018281038252602f81526020018061114e602f913960400191505060405180910390fd5b565b6000818152600360205260408120546001600160a01b0316610eed576040805162461bcd60e51b815260206004820152601760248201527f546172676574206164647265737320697320656d707479000000000000000000604482015290519081900360640190fd5b506000908152600360205260409020546001600160a01b031690565b6000808211610f5f576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481610f6a57fe5b04949350505050565b6000818152600360205260409020546001600160a01b0316610fdc576040805162461bcd60e51b815260206004820152601e60248201527f54617267657420746f6b656e206973206e6f7420726567697374657265640000604482015290519081900360640190fd5b50565b600081815260066020526040902054610fff90600163ffffffff61101116565b60009182526006602052604090912055565b60008282018381101561106b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000828211156110c9576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600081815260066020526040902054610fff90600163ffffffff6110721656fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704163636f756e7420646f65736e2774206861766520656e6f756768207374616b656420616d6f756e744f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6e4e6f7420656e6f756768207374616b656420616d6f756e7420746f207769746864726177a265627a7a72315820fbc3ee56cfb331195cc6f7d5de2368ac522d07c5a7ea01362ed6afe017df099d64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Staking",
					"type": "event",
					"signature": "0xfba03de4f3817b65c8bbd83551b938ace8f4a72bfad6821d9b4088bd6a207980"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Unstaking",
					"type": "event",
					"signature": "0xfce1a9063ab422f6b95f8c9d5e2bee83ae07416cd5859af625809f3078f5d958"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getTokenCurrencyKeys",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5b081237"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "refund",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4020ed14"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "_tokenAddress",
							"type": "address"
						},
						{
							"internalType": "uint8",
							"name": "_decimals",
							"type": "uint8"
						}
					],
					"name": "setTargetToken",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3f6a1607"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bool",
							"name": "_activate",
							"type": "bool"
						}
					],
					"name": "setTokenActivation",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x9d88955f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "stake",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8c610c8d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "stakedAmountOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x480310bb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "targetTokens",
					"outputs": [
						{
							"internalType": "address",
							"name": "tokenAddress",
							"type": "address"
						},
						{
							"internalType": "uint8",
							"name": "decimals",
							"type": "uint8"
						},
						{
							"internalType": "bool",
							"name": "activated",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x37092864"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						}
					],
					"name": "tokenActivated",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8547dbd9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						}
					],
					"name": "tokenAddress",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x97bb3ce9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						}
					],
					"name": "tokenDecimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x44aedc5f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "tokenList",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9ead7222"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "totalStakedAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2c20fce2"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "totalStakerCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x77e15451"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "unstake",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa98b9ff4"
				}
			],
			"source": {
				"keccak256": "0xcd748d3aab9d0f442ebd9c4923586f486de1a5fc5e01a99ef4eb94609b9f7a59",
				"urls": [
					"bzz-raw://12a95416ee3a543f53ab3c4cf5e2724077e7f521a732a518d937e012c1d0e014",
					"dweb:/ipfs/QmWnGUgvFpqsjs8KTgRH5RkC1bm1T66Uojv3rdHcV3qMCA"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"StakingState.sol": "StakingState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"StakingState.sol": {
						"keccak256": "0xcd748d3aab9d0f442ebd9c4923586f486de1a5fc5e01a99ef4eb94609b9f7a59",
						"urls": [
							"bzz-raw://12a95416ee3a543f53ab3c4cf5e2724077e7f521a732a518d937e012c1d0e014",
							"dweb:/ipfs/QmWnGUgvFpqsjs8KTgRH5RkC1bm1T66Uojv3rdHcV3qMCA"
						]
					}
				},
				"version": 1
			}
		},
		"ExternalTokenStakeManager": {
			"bytecode": "608060405234801561001057600080fd5b50604051612bad380380612bad8339818101604052606081101561003357600080fd5b50805160208201516040909201519091906249d4008180856001600160a01b0381166100a6576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a150600280546001600160a01b039283166001600160a01b03199182161790915542909301600455600580549590911694909216939093179055505050612a64806101496000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80637a84b617116100de578063b12e441011610097578063da224edd11610071578063da224edd14610490578063e06c707a146104d0578063e082f1d414610510578063ff18cf46146105185761018e565b8063b12e44101461041e578063b23e50531461043b578063b25dfddb146104735761018e565b80637a84b61714610310578063899ffef41461033c5780638da5cb5b14610344578063a42ed21f1461034c578063ad47ffc5146103ba578063adba5c68146103ec5761018e565b806346ba2d901161014b5780635b6f3979116101255780635b6f3979146102db578063614d08f8146102f8578063741853601461030057806379ba5097146103085761018e565b806346ba2d90146102815780634b1836b01461029b57806353a47bb7146102d35761018e565b806304f3bcec1461019357806308dbc561146101b75780630fc3fc8c1461020f5780631627540c14610237578063273cbaa01461025d5780632af64bd314610265575b600080fd5b61019b61054b565b604080516001600160a01b039092168252519081900360200190f35b6101bf61055a565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156101fb5781810151838201526020016101e3565b505050509050019250505060405180910390f35b6102356004803603602081101561022557600080fd5b50356001600160a01b03166105b3565b005b6102356004803603602081101561024d57600080fd5b50356001600160a01b03166105dd565b6101bf610639565b61026d61074a565b604080519115158252519081900360200190f35b610289610854565b60408051918252519081900360200190f35b610235600480360360808110156102b157600080fd5b506001600160a01b03813516906020810135906040810135906060013561085a565b61019b610af7565b61026d600480360360208110156102f157600080fd5b5035610b06565b610289610b84565b610235610ba8565b610235610d70565b6102896004803603604081101561032657600080fd5b506001600160a01b038135169060200135610e2c565b6101bf610e41565b61019b610ece565b6102356004803603602081101561036257600080fd5b810190602081018135600160201b81111561037c57600080fd5b82018360208201111561038e57600080fd5b803590602001918460208302840111600160201b831117156103af57600080fd5b509092509050610edd565b610289600480360360608110156103d057600080fd5b506001600160a01b03813516906020810135906040013561107d565b6102356004803603606081101561040257600080fd5b506001600160a01b0381351690602081013590604001356111a4565b61019b6004803603602081101561043457600080fd5b50356115ca565b6102356004803603608081101561045157600080fd5b506001600160a01b038135169060208101359060408101359060600135611616565b6102896004803603602081101561048957600080fd5b503561163f565b610235600480360360a08110156104a657600080fd5b506001600160a01b038135169060208101359060408101359060608101359060800135151561165d565b610289600480360360a08110156104e657600080fd5b506001600160a01b03813516906020810135906040810135906060810135906080013515156118ac565b61019b6118c7565b6105356004803603602081101561052e57600080fd5b50356118d6565b6040805160ff9092168252519081900360200190f35b6002546001600160a01b031681565b606060068054806020026020016040519081016040528092919081815260200182805480156105a857602002820191906000526020600020905b815481526020019060010190808311610594575b505050505090505b90565b6105bb611922565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6105e5611922565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60055460408051635b08123760e01b815290516060926001600160a01b031691635b081237916004808301926000929190829003018186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156106bb57600080fd5b8101908080516040519392919084600160201b8211156106da57600080fd5b9083019060208201858111156106ef57600080fd5b82518660208202830111600160201b8211171561070b57600080fd5b82525081516020918201928201910280838360005b83811015610738578181015183820152602001610720565b50505050905001604052505050905090565b60006060610756610e41565b905060005b815181101561084b57600082828151811061077257fe5b6020908102919091018101516000818152600383526040908190205460025482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156107da57600080fd5b505afa1580156107ee573d6000803e3d6000fd5b505050506040513d602081101561080457600080fd5b50516001600160a01b031614158061083157506000818152600360205260409020546001600160a01b0316155b1561084257600093505050506105b0565b5060010161075b565b50600191505090565b60045481565b61086261196d565b600061086f8284866119d1565b600554604080516344aedc5f60e01b81526004810187905290519293506000926001600160a01b03909216916344aedc5f91602480820192602092909190829003018186803b1580156108c157600080fd5b505afa1580156108d5573d6000803e3d6000fd5b505050506040513d60208110156108eb57600080fd5b505160ff1690506012811115610941576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103232b1b4b6b0b610373ab6b132b960511b604482015290519081900360640190fd5b600061096461095760128463ffffffff611b5b16565b849063ffffffff611bb816565b905061096f85611c0f565b6005546001600160a01b03918216916323b872dd918a91166109ab61099b60128863ffffffff611b5b16565b8690600a0a63ffffffff611c9a16565b6040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b03168152602001836001600160a01b03166001600160a01b031681526020018281526020019350505050602060405180830381600087803b158015610a1357600080fd5b505af1158015610a27573d6000803e3d6000fd5b505050506040513d6020811015610a3d57600080fd5b5051610a7a5760405162461bcd60e51b815260040180806020018281038252602a8152602001806129d5602a913960400191505060405180910390fd5b60055460408051638c610c8d60e01b8152600481018890526001600160a01b038a811660248301526044820185905291519190921691638c610c8d91606480830192600092919082900301818387803b158015610ad657600080fd5b505af1158015610aea573d6000803e3d6000fd5b5050505050505050505050565b6001546001600160a01b031681565b60055460408051638547dbd960e01b81526004810184905290516000926001600160a01b031691638547dbd9916024808301926020929190829003018186803b158015610b5257600080fd5b505afa158015610b66573d6000803e3d6000fd5b505050506040513d6020811015610b7c57600080fd5b505192915050565b7f45787465726e616c546f6b656e5374616b654d616e616765720000000000000081565b6060610bb2610e41565b905060005b8151811015610d6c576000828281518110610bce57fe5b602090810291909101810151600254604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b83811015610c84578181015183820152602001610c6c565b50505050905090810190601f168015610cb15780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b158015610ccf57600080fd5b505afa158015610ce3573d6000803e3d6000fd5b505050506040513d6020811015610cf957600080fd5b505160008381526003602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101610bb7565b5050565b6001546001600160a01b03163314610db95760405162461bcd60e51b81526004018080602001828103825260358152602001806129076035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000610e388383611d04565b90505b92915050565b606080610e4c611f28565b6040805160028082526060808301845293945090916020830190803883390190505090506524b9b9bab2b960d11b81600081518110610e8757fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110610eb157fe5b602002602001018181525050610ec78282611f79565b9250505090565b6000546001600160a01b031681565b610ee5611922565b60055460408051635b08123760e01b815290516060926001600160a01b031691635b081237916004808301926000929190829003018186803b158015610f2a57600080fd5b505afa158015610f3e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610f6757600080fd5b8101908080516040519392919084600160201b821115610f8657600080fd5b908301906020820185811115610f9b57600080fd5b82518660208202830111600160201b82111715610fb757600080fd5b82525081516020918201928201910280838360005b83811015610fe4578181015183820152602001610fcc565b5050505090500160405250505090506110308184848080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061203592505050565b61106b5760405162461bcd60e51b815260040180806020018281038252602581526020018061293c6025913960400191505060405180910390fd5b611077600684846128a1565b50505050565b60008183141561110e576005546040805163480310bb60e01b8152600481018690526001600160a01b0387811660248301529151919092169163480310bb916044808301926020929190829003018186803b1580156110db57600080fd5b505afa1580156110ef573d6000803e3d6000fd5b505050506040513d602081101561110557600080fd5b5051905061119d565b6005546040805163480310bb60e01b8152600481018690526001600160a01b038781166024830152915161119a938793879391169163480310bb91604480820192602092909190829003018186803b15801561116957600080fd5b505afa15801561117d573d6000803e3d6000fd5b505050506040513d602081101561119357600080fd5b50516119d1565b90505b9392505050565b6111ac61196d565b60055460408051635b08123760e01b815290516060926001600160a01b031691635b081237916004808301926000929190829003018186803b1580156111f157600080fd5b505afa158015611205573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561122e57600080fd5b8101908080516040519392919084600160201b82111561124d57600080fd5b90830190602082018581111561126257600080fd5b82518660208202830111600160201b8211171561127e57600080fd5b82525081516020918201928201910280838360005b838110156112ab578181015183820152602001611293565b505050509050016040525050509050606061131682600680548060200260200160405190810160405280929190818152602001828054801561130c57602002820191906000526020600020905b8154815260200190600101908083116112f8575b5050505050612035565b611321575080611375565b600680548060200260200160405190810160405280929190818152602001828054801561136d57602002820191906000526020600020905b815481526020019060010190808311611359575b505050505090505b60006113818685611d04565b9050848110156113c25760405162461bcd60e51b81526004018080602001828103825260248152602001806129b16024913960400191505060405180910390fd5b606082516040519080825280602002602001820160405280156113ef578160200160208202803883390190505b50905060005b83518110156115595760055484516000916001600160a01b03169063480310bb9087908590811061142257fe5b60200260200101518b6040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b15801561147857600080fd5b505afa15801561148c573d6000803e3d6000fd5b505050506040513d60208110156114a257600080fd5b505185519091506000906114cc9089908890869081106114be57fe5b60200260200101518b6119d1565b90508082101561152557818484815181106114e357fe5b60209081029190910101526114fe818363ffffffff611b5b16565b905061151e86848151811061150f57fe5b602002602001015189836119d1565b9850611543565b8084848151811061153257fe5b602002602001018181525050600098505b8861154f575050611559565b50506001016113f5565b5060005b83518110156115c05781818151811061157257fe5b602002602001015160001415611587576115b8565b6115b88883838151811061159757fe5b60200260200101518684815181106115ab57fe5b60200260200101516120c4565b60010161155d565b5050505050505050565b600554604080516397bb3ce960e01b81526004810184905290516000926001600160a01b0316916397bb3ce9916024808301926020929190829003018186803b158015610b5257600080fd5b61161e61196d565b600061162b8284866119d1565b90506116388582856120c4565b5050505050565b6006818154811061164c57fe5b600091825260209091200154905081565b600061166c868686868661230e565b90506060600560009054906101000a90046001600160a01b03166001600160a01b0316635b0812376040518163ffffffff1660e01b815260040160006040518083038186803b1580156116be57600080fd5b505afa1580156116d2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156116fb57600080fd5b8101908080516040519392919084600160201b82111561171a57600080fd5b90830190602082018581111561172f57600080fd5b82518660208202830111600160201b8211171561174b57600080fd5b82525081516020918201928201910280838360005b83811015611778578181015183820152602001611760565b5050505091909101604052509293506012925060009150505b82518110156118455760055483516000916001600160a01b0316906344aedc5f908690859081106117be57fe5b60200260200101516040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156117fa57600080fd5b505afa15801561180e573d6000803e3d6000fd5b505050506040513d602081101561182457600080fd5b505160ff169050828110611838578261183a565b805b925050600101611791565b5061184e6123c5565b61186f61186260128463ffffffff611b5b16565b859063ffffffff61247116565b11156115c05760405162461bcd60e51b81526004018080602001828103825260318152602001806129ff6031913960400191505060405180910390fd5b60006118bb868686868661230e565b90505b95945050505050565b6005546001600160a01b031681565b600554604080516344aedc5f60e01b81526004810184905290516000926001600160a01b0316916344aedc5f916024808301926020929190829003018186803b158015610b5257600080fd5b6000546001600160a01b0316331461196b5760405162461bcd60e51b815260040180806020018281038252602f815260200180612961602f913960400191505060405180910390fd5b565b61197561248b565b6001600160a01b0316336001600160a01b03161461196b576040805162461bcd60e51b815260206004820152601460248201527329b2b73232b91034b9903737ba1024b9b9bab2b960611b604482015290519081900360640190fd5b6000828414156119e257508061119d565b6000631c1554d160e21b8514156119fa575081611a9d565b600080611a056124a4565b6001600160a01b0316630c71cd23886040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015611a4757600080fd5b505afa158015611a5b573d6000803e3d6000fd5b505050506040513d6040811015611a7157600080fd5b5080516020909101519092509050611a88816124bf565b611a98858363ffffffff61251516565b925050505b631c1554d160e21b841415611ab357905061119d565b600080611abe6124a4565b6001600160a01b0316630c71cd23876040518263ffffffff1660e01b815260040180828152602001915050604080518083038186803b158015611b0057600080fd5b505afa158015611b14573d6000803e3d6000fd5b505050506040513d6040811015611b2a57600080fd5b5080516020909101519092509050611b41816124bf565b611b51838363ffffffff61252a16565b935050505061119d565b600082821115611bb2576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000600a82900a81818581611bc957fe5b061115611be757611be484600a85900a63ffffffff61253f16565b93505b611c0781611bfb868263ffffffff611c9a16565b9063ffffffff61259916565b949350505050565b600081611c1b816125f2565b600554604080516397bb3ce960e01b81526004810186905290516001600160a01b03909216916397bb3ce991602480820192602092909190829003018186803b158015611c6757600080fd5b505afa158015611c7b573d6000803e3d6000fd5b505050506040513d6020811015611c9157600080fd5b50519392505050565b6000808211611cf0576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481611cfb57fe5b04949350505050565b60006060600560009054906101000a90046001600160a01b03166001600160a01b0316635b0812376040518163ffffffff1660e01b815260040160006040518083038186803b158015611d5657600080fd5b505afa158015611d6a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015611d9357600080fd5b8101908080516040519392919084600160201b821115611db257600080fd5b908301906020820185811115611dc757600080fd5b82518660208202830111600160201b82111715611de357600080fd5b82525081516020918201928201910280838360005b83811015611e10578181015183820152602001611df8565b50505050905001604052505050905060008090505b8151811015611f205760055482516000916001600160a01b03169063480310bb90859085908110611e5257fe5b6020026020010151886040518363ffffffff1660e01b815260040180838152602001826001600160a01b03166001600160a01b031681526020019250505060206040518083038186803b158015611ea857600080fd5b505afa158015611ebc573d6000803e3d6000fd5b505050506040513d6020811015611ed257600080fd5b5051905080611ee15750611f18565b6000611f01848481518110611ef257fe5b602002602001015187846119d1565b9050611f13858263ffffffff61253f16565b945050505b600101611e25565b505092915050565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110611f6a57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015611fa9578160200160208202803883390190505b50905060005b8351811015611feb57838181518110611fc457fe5b6020026020010151828281518110611fd857fe5b6020908102919091010152600101611faf565b5060005b825181101561202e5782818151811061200457fe5b602002602001015182828651018151811061201b57fe5b6020908102919091010152600101611fef565b5092915050565b6000815183511461204857506000610e3b565b60005b83518110156120ba576000805b85518110156120a05784818151811061206d57fe5b602002602001015186848151811061208157fe5b6020026020010151141561209857600191506120a0565b600101612058565b50806120b157600092505050610e3b565b5060010161204b565b5060019392505050565b806120ce816125f2565b600554604080516344aedc5f60e01b81526004810185905290516000926001600160a01b0316916344aedc5f916024808301926020929190829003018186803b15801561211a57600080fd5b505afa15801561212e573d6000803e3d6000fd5b505050506040513d602081101561214457600080fd5b505160ff169050601281111561219a576040805162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103232b1b4b6b0b610373ab6b132b960511b604482015290519081900360640190fd5b60006121bd6121b060128463ffffffff611b5b16565b869063ffffffff611bb816565b60055460408051632a62e7fd60e21b8152600481018890526001600160a01b038a8116602483015260448201859052915193945091169163a98b9ff49160648082019260009290919082900301818387803b15801561221b57600080fd5b505af115801561222f573d6000803e3d6000fd5b5050600554604080516310083b4560e21b8152600481018990526001600160a01b038b81166024830152604482018790529151919092169350634020ed14925060648083019260209291908290030181600087803b15801561229057600080fd5b505af11580156122a4573d6000803e3d6000fd5b505050506040513d60208110156122ba57600080fd5b5051612306576040805162461bcd60e51b81526020600482015260166024820152751499599d5b99081a185cc81899595b8819985a5b195960521b604482015290519081900360640190fd5b505050505050565b60008061232287631c1554d160e21b611d04565b905085158061232f575080155b1561233e5760009150506118be565b821561236d57612354868663ffffffff61253f16565b9550612366818563ffffffff61253f16565b9050612392565b61237d868663ffffffff611b5b16565b955061238f818563ffffffff611b5b16565b90505b6123ba6123ad6123a06126c6565b889063ffffffff61252a16565b829063ffffffff61252a16565b979650505050505050565b60006123cf61273c565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b7165787465726e616c546f6b656e51756f746160701b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561244057600080fd5b505afa158015612454573d6000803e3d6000fd5b505050506040513d602081101561246a57600080fd5b5051905090565b6000610e38600a83900a611bfb858263ffffffff611c9a16565b600061249f6524b9b9bab2b960d11b612755565b905090565b600061249f6c45786368616e6765526174657360981b612755565b8015612512576040805162461bcd60e51b815260206004820152601f60248201527f412070796e7468206f722050455249207261746520697320696e76616c696400604482015290519081900360640190fd5b50565b6000610e388383670de0b6b3a7640000612832565b6000610e388383670de0b6b3a764000061286f565b600082820183811015610e38576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000826125a857506000610e3b565b828202828482816125b557fe5b0414610e385760405162461bcd60e51b81526004018080602001828103825260218152602001806129906021913960400191505060405180910390fd5b600554604080516397bb3ce960e01b81526004810184905290516000926001600160a01b0316916397bb3ce9916024808301926020929190829003018186803b15801561263e57600080fd5b505afa158015612652573d6000803e3d6000fd5b505050506040513d602081101561266857600080fd5b50516001600160a01b03161415612512576040805162461bcd60e51b815260206004820152601e60248201527f54617267657420746f6b656e206973206e6f7420726567697374657265640000604482015290519081900360640190fd5b60006126d061273c565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b6c69737375616e6365526174696f60981b6040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561244057600080fd5b600061249f6e466c657869626c6553746f7261676560881b5b600081815260036020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b0316908161202e5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156127f75781810151838201526020016127df565b50505050905090810190601f1680156128245780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b600080600a8304612849868663ffffffff61259916565b8161285057fe5b0490506005600a825b061061286357600a015b600a9004949350505050565b6000806128958461288987600a870263ffffffff61259916565b9063ffffffff611c9a16565b90506005600a82612859565b8280548282559060005260206000209081019282156128dc579160200282015b828111156128dc5782358255916020019190600101906128c1565b506128e89291506128ec565b5090565b6105b091905b808211156128e857600081556001016128f256fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970476976656e2063757272656e6379206b65797320617265206e6f7420617661696c61626c654f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6d62696e6564207374616b656420616d6f756e74206973206e6f7420656e6f7567685472616e7366657272696e67207374616b696e6720746f6b656e20686173206265656e206661696c656445787465726e616c20746f6b656e207374616b696e6720616d6f756e7420657863656564732071756f7461206c696d6974a265627a7a723158207f342e049ee0bb9a77c4de02a4cbb1972f8d2ab6011d42dc6fa3417af0d2c15b64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_stakingState",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x614d08f8"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_user",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_unitCurrency",
							"type": "bytes32"
						}
					],
					"name": "combinedStakedAmountOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7a84b617"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "currencyKeyOrder",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb25dfddb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_debtBalance",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_additionalpUSD",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_additionalExToken",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "_isIssue",
							"type": "bool"
						}
					],
					"name": "externalTokenQuota",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe06c707a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCurrencyKeyOrder",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x08dbc561"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getTokenActivation",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5b6f3979"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getTokenAddress",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb12e4410"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getTokenDecimals",
					"outputs": [
						{
							"internalType": "uint8",
							"name": "",
							"type": "uint8"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xff18cf46"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getTokenList",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x273cbaa0"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_debtBalance",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_additionalpUSD",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_additionalExToken",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "_isIssue",
							"type": "bool"
						}
					],
					"name": "requireNotExceedsQuotaLimit",
					"outputs": [],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xda224edd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_stakingState",
							"type": "address"
						}
					],
					"name": "setStakingState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0fc3fc8c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_order",
							"type": "bytes32[]"
						}
					],
					"name": "setUnstakingOrder",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa42ed21f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "setupExpiryTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x46ba2d90"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_staker",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "_targetCurrency",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "_inputCurrency",
							"type": "bytes32"
						}
					],
					"name": "stake",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4b1836b0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_user",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_currencyKey",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "_unitCurrency",
							"type": "bytes32"
						}
					],
					"name": "stakedAmountOf",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xad47ffc5"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "stakingState",
					"outputs": [
						{
							"internalType": "contract IStakingState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe082f1d4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_unstaker",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "_targetCurrency",
							"type": "bytes32"
						},
						{
							"internalType": "bytes32",
							"name": "_inputCurrency",
							"type": "bytes32"
						}
					],
					"name": "unstake",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb23e5053"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_unstaker",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "_inputCurrency",
							"type": "bytes32"
						}
					],
					"name": "unstakeMultipleTokens",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xadba5c68"
				}
			],
			"source": {
				"keccak256": "0xed373356aeff57f8634fb5b5521ddece39b7fe79e08ce78256bc6705ecfab3c2",
				"urls": [
					"bzz-raw://20dd368af6fda70ed19f0e84126ca166a5df172da752a54e62649561a44f8ecf",
					"dweb:/ipfs/QmaPYNamRZXm4G9cLfa4PpF52AmxzZ5gEZkUoPQD9Pr9BK"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"ExternalTokenStakeManager.sol": "ExternalTokenStakeManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"ExternalTokenStakeManager.sol": {
						"keccak256": "0xed373356aeff57f8634fb5b5521ddece39b7fe79e08ce78256bc6705ecfab3c2",
						"urls": [
							"bzz-raw://20dd368af6fda70ed19f0e84126ca166a5df172da752a54e62649561a44f8ecf",
							"dweb:/ipfs/QmaPYNamRZXm4G9cLfa4PpF52AmxzZ5gEZkUoPQD9Pr9BK"
						]
					}
				},
				"version": 1
			}
		},
		"CrossChainState": {
			"bytecode": "608060405234801561001057600080fd5b50604051611dfc380380611dfc8339818101604052604081101561003357600080fd5b50805160209091015180826001600160a01b038116610099576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316610143576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a1505050611c56806101a66000396000f3fe608060405234801561001057600080fd5b50600436106102535760003560e01c80635d7fb53f116101465780639a8a0592116100c3578063b46b3cb911610087578063b46b3cb91461094c578063c6682bc514610969578063cc76032d1461098c578063ceb83c6f146109a9578063d3864cc4146109c6578063fac0d541146109e357610253565b80639a8a0592146108fa5780639f15385b14610902578063a7fbcba91461091f578063aefc4ccb1461093c578063b076f08b1461094457610253565b80637f5535131161010a5780637f553513146107f25780637fe24d5c146107fa578063826022e21461081757806384a6ca2a146108d55780638da5cb5b146108f257610253565b80635d7fb53f146106ad578063619c88c7146106ec5780636bc60d041461070f5780636eafeb801461072c57806379ba5097146107ea57610253565b80633eb76715116101d457806352f445ca1161019857806352f445ca1461057a57806353a47bb7146105a05780635483fe04146105c4578063564b81ef14610682578063585075e51461068a57610253565b80633eb76715146104f85780634374d398146105005780634e53bb6d1461051d5780634f70a87a1461053a578063517257a81461055d57610253565b80632646d3f21161021b5780632646d3f2146104735780632a3d64c0146104965780633227918f1461049e5780633c988906146104c45780633d43eee5146104cc57610253565b80630cbc31411461025857806312250dd6146102b05780631627540c146102d55780631c1b64f9146102fb5780631e1c37c014610459575b600080fd5b6102606109eb565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561029c578181015183820152602001610284565b505050509050019250505060405180910390f35b6102d3600480360360408110156102c657600080fd5b5080359060200135610a44565b005b6102d3600480360360208110156102eb57600080fd5b50356001600160a01b0316610a83565b6102d36004803603608081101561031157600080fd5b810190602081018135600160201b81111561032b57600080fd5b82018360208201111561033d57600080fd5b803590602001918460208302840111600160201b8311171561035e57600080fd5b919390929091602081019035600160201b81111561037b57600080fd5b82018360208201111561038d57600080fd5b803590602001918460208302840111600160201b831117156103ae57600080fd5b919390929091602081019035600160201b8111156103cb57600080fd5b8201836020820111156103dd57600080fd5b803590602001918460208302840111600160201b831117156103fe57600080fd5b919390929091602081019035600160201b81111561041b57600080fd5b82018360208201111561042d57600080fd5b803590602001918460208302840111600160201b8311171561044e57600080fd5b509092509050610adf565b610461610c16565b60408051918252519081900360200190f35b6102d36004803603604081101561048957600080fd5b5080359060200135610c72565b610461610ce4565b6102d3600480360360208110156104b457600080fd5b50356001600160a01b0316610cf3565b610461610d9a565b6102d3600480360360408110156104e257600080fd5b506001600160a01b038135169060200135610da0565b610461610e68565b6102d36004803603602081101561051657600080fd5b5035610eb1565b6104616004803603602081101561053357600080fd5b5035610f6c565b6102d36004803603604081101561055057600080fd5b5080359060200135610f95565b6102d36004803603602081101561057357600080fd5b5035611031565b6102d36004803603602081101561059057600080fd5b50356001600160a01b031661112f565b6105a861118b565b604080516001600160a01b039092168252519081900360200190f35b6102d3600480360360408110156105da57600080fd5b810190602081018135600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460208302840111600160201b8311171561062757600080fd5b919390929091602081019035600160201b81111561064457600080fd5b82018360208201111561065657600080fd5b803590602001918460208302840111600160201b8311171561067757600080fd5b50909250905061119a565b610461611255565b6102d3600480360360408110156106a057600080fd5b508035906020013561125b565b6106d3600480360360208110156106c357600080fd5b50356001600160a01b031661129c565b6040805192835260208301919091528051918290030190f35b6102d36004803603604081101561070257600080fd5b50803590602001356112bf565b6102d36004803603602081101561072557600080fd5b503561135b565b6102d36004803603604081101561074257600080fd5b810190602081018135600160201b81111561075c57600080fd5b82018360208201111561076e57600080fd5b803590602001918460208302840111600160201b8311171561078f57600080fd5b919390929091602081019035600160201b8111156107ac57600080fd5b8201836020820111156107be57600080fd5b803590602001918460208302840111600160201b831117156107df57600080fd5b5090925090506113ce565b6102d3611482565b61046161153e565b6104616004803603602081101561081057600080fd5b5035611587565b6102d36004803603604081101561082d57600080fd5b810190602081018135600160201b81111561084757600080fd5b82018360208201111561085957600080fd5b803590602001918460208302840111600160201b8311171561087a57600080fd5b919390929091602081019035600160201b81111561089757600080fd5b8201836020820111156108a957600080fd5b803590602001918460208302840111600160201b831117156108ca57600080fd5b5090925090506115a7565b610461600480360360208110156108eb57600080fd5b503561165b565b6105a8611679565b610461611688565b6104616004803603602081101561091857600080fd5b503561168e565b6102d36004803603602081101561093557600080fd5b503561169f565b6105a8611758565b610461611767565b6102d36004803603602081101561096257600080fd5b503561177c565b6102d36004803603604081101561097f57600080fd5b5080359060200135611804565b610461600480360360208110156109a257600080fd5b50356118a0565b6102d3600480360360208110156109bf57600080fd5b50356118b2565b610461600480360360208110156109dc57600080fd5b5035611951565b610461611971565b60606007805480602002602001604051908101604052809291908181526020018280548015610a3957602002820191906000526020600020905b815481526020019060010190808311610a25575b505050505090505b90565b600082815260056020526040902054811115610a6a576000828152600560205260408120555b6000918252600560205260409091208054919091039055565b610a8b61199e565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6002546001600160a01b03163314610b285760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b60005b87811015610c0b57600854898983818110610b4257fe5b9050602002013514610c0357868682818110610b5a57fe5b90506020020135600560008b8b85818110610b7157fe5b90506020020135815260200190815260200160002081905550848482818110610b9657fe5b90506020020135600660008b8b85818110610bad57fe5b90506020020135815260200190815260200160002081905550828282818110610bd257fe5b90506020020135600960008b8b85818110610be957fe5b905060200201358152602001908152602001600020819055505b600101610b2b565b505050505050505050565b600080805b600754811015610c6c57610c626009600060078481548110610c3957fe5b9060005260206000200154815260200190815260200160002054836119e990919063ffffffff16565b9150600101610c1b565b50905090565b6002546001600160a01b03163314610cbb5760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b6000828152600a6020526040902054610ce0576000828152600a602052604090208190555b5050565b6000610cee611a4a565b905090565b6002546001600160a01b03163314610d3c5760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b6001600160a01b0381166000818152600360209081526040808320838155600101929092558151928352429083015280517f15f7ff433d91071c434676dab84c273aa22740a24cca6eedd0e5ccf087b0d29b9281900390910190a150565b60045490565b6002546001600160a01b03163314610de95760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b60408051808201825260045460001901815260208082018481526001600160a01b0386166000818152600384528590209351845590516001939093019290925582519182528101839052428183015290517f68118327cdb176990e8a3f014947ea047c4656d017e2cd73f8c6406784ee55079181900360600190a15050565b600080805b600754811015610c6c576005600060078381548110610e8857fe5b906000526020600020015481526020019081526020016000205482019150806001019050610e6d565b6002546001600160a01b03163314610efa5760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018190556040805182815242602082015281517fda0d1bfbcafff93cb70f28903b5234028da095a195bc8d469b7f15ac44f6a984929181900390910190a150565b60006008548214610f8c5750600081815260096020526040902054610f90565b5060005b919050565b6002546001600160a01b03163314610fde5760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b60085482141561101f5760405162461bcd60e51b8152600401808060200182810382526031815260200180611bbd6031913960400191505060405180910390fd5b60009182526009602052604090912055565b6002546001600160a01b0316331461107a5760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b6004546110f557600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b018190556040805182815242602082015281517fda0d1bfbcafff93cb70f28903b5234028da095a195bc8d469b7f15ac44f6a984929181900390910190a161112c565b61110d81611101611a4a565b9063ffffffff6119e916565b60048054600019810190811061111f57fe5b6000918252602090912001555b50565b61113761199e565b600280546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e039181900360200190a150565b6001546001600160a01b031681565b6002546001600160a01b031633146111e35760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b60005b8381101561124e576008548585838181106111fd57fe5b90506020020135146112465782828281811061121557fe5b905060200201356009600087878581811061122c57fe5b905060200201358152602001908152602001600020819055505b6001016111e6565b5050505050565b60085490565b600082815260056020526040902054611284576000828152600560205260409020819055610ce0565b60008281526005602052604090208054820190555050565b6001600160a01b0316600090815260036020526040902080546001909101549091565b6002546001600160a01b031633146113085760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b6008548214156113495760405162461bcd60e51b8152600401808060200182810382526031815260200180611b5d6031913960400191505060405180910390fd5b60009182526005602052604090912055565b6002546001600160a01b031633146113a45760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b60085460009081526005602052604090205461112c57600854600090815260056020526040902055565b6002546001600160a01b031633146114175760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b60005b8381101561124e5760085485858381811061143157fe5b905060200201351461147a5782828281811061144957fe5b905060200201356006600087878581811061146057fe5b905060200201358152602001908152602001600020819055505b60010161141a565b6001546001600160a01b031633146114cb5760405162461bcd60e51b8152600401808060200182810382526035815260200180611afd6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600080805b600754811015610c6c57600560006007838154811061155e57fe5b906000526020600020015481526020019081526020016000205482019150806001019050611543565b60006008548214610f8c5750600081815260066020526040902054610f90565b6002546001600160a01b031633146115f05760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b60005b8381101561124e5760085485858381811061160a57fe5b90506020020135146116535782828281811061162257fe5b905060200201356005600087878581811061163957fe5b905060200201358152602001908152602001600020819055505b6001016115f3565b6007818154811061166857fe5b600091825260209091200154905081565b6000546001600160a01b031681565b60085481565b600061169982611a7e565b92915050565b6002546001600160a01b031633146116e85760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b60005b60075481101561172257816007828154811061170357fe5b9060005260206000200154141561171a575061112c565b6001016116eb565b50600780546001810182556000919091527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880155565b6002546001600160a01b031681565b60085460009081526005602052604090205490565b6002546001600160a01b031633146117c55760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b600881905560005b6007548110156117225781600782815481106117e557fe5b906000526020600020015414156117fc575061112c565b6001016117cd565b6002546001600160a01b0316331461184d5760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b60085482141561188e5760405162461bcd60e51b8152600401808060200182810382526031815260200180611bbd6031913960400191505060405180910390fd5b60009182526006602052604090912055565b6000908152600a602052604090205490565b6002546001600160a01b031633146118fb5760405162461bcd60e51b8152600401808060200182810382526034815260200180611bee6034913960400191505060405180910390fd5b6004546119395760405162461bcd60e51b815260040180806020018281038252602b815260200180611b32602b913960400191505060405180910390fd5b61110d81611945611a4a565b9063ffffffff611a9f16565b60006008548214610f8c5750600081815260056020526040902054610f90565b600080805b600754811015610c6c576119946006600060078481548110610c3957fe5b9150600101611976565b6000546001600160a01b031633146119e75760405162461bcd60e51b815260040180806020018281038252602f815260200180611b8e602f913960400191505060405180910390fd5b565b600082820183811015611a43576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600454600090611a5c57506000610a41565b600480546000198101908110611a6e57fe5b9060005260206000200154905090565b600060048281548110611a8d57fe5b90600052602060002001549050919050565b600082821115611af6576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970746f74616c206e6574776f726b20646562742073686f756c6420626520617070656e646564206669727374696d706f737369626c6520746f207365742069737375656444656274206f66207468652063757272656e7420636861696e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e696d706f737369626c6520746f207365742061637469766544656274206f66207468652063757272656e7420636861696e4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e20706572666f726d207468697320616374696f6ea265627a7a7231582083fc20a3b3762d5cddc208d33c7c827371ba8d9cd990ede8ff8e15fd8086a1eb64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "totalNetworkDebt",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "TotalNetworkDebtAdded",
					"type": "event",
					"signature": "0xda0d1bfbcafff93cb70f28903b5234028da095a195bc8d469b7f15ac44f6a984"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "UserCrossNetworkDataRemoved",
					"type": "event",
					"signature": "0x15f7ff433d91071c434676dab84c273aa22740a24cca6eedd0e5ccf087b0d29b"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "userStateDebtLedgerIndex",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "timestamp",
							"type": "uint256"
						}
					],
					"name": "UserCrossNetworkDataUpdated",
					"type": "event",
					"signature": "0x68118327cdb176990e8a3f014947ea047c4656d017e2cd73f8c6406784ee5507"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "addCrosschain",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa7fbcba9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "addIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x585075e5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_networkId",
							"type": "uint256"
						}
					],
					"name": "addNetworkId",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2646d3f2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "addTotalNetworkDebtLedger",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x517257a8"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "totalNetworkDebt",
							"type": "uint256"
						}
					],
					"name": "appendTotalNetworkDebtLedger",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4374d398"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "chainId",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9a8a0592"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						}
					],
					"name": "clearCrossNetworkUserData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3227918f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "crossChainIds",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x84a6ca2a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getChainID",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x564b81ef"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCrossChainIds",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0cbc3141"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "getCrossNetworkActiveDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7fe24d5c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCrossNetworkActiveDebtAll",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfac0d541"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "getCrossNetworkInbound",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4e53bb6d"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCrossNetworkInboundAll",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1e1c37c0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "getCrossNetworkIssuedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd3864cc4"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCrossNetworkIssuedDebtAll",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3eb76715"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getCrossNetworkUserData",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "crossChainDebtEntryIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "userStateDebtLedgerIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5d7fb53f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCurrentNetworkIssuedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb076f08b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "getNetworkId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcc76032d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getTotalNetworkDebtEntryAtIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9f15385b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getTotalNetworkIssuedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7f553513"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastTotalNetworkDebtLedgerEntry",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2a3d64c0"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setCrossNetworkActiveDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc6682bc5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_chainIDs",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_amounts",
							"type": "uint256[]"
						}
					],
					"name": "setCrossNetworkActiveDebtAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6eafeb80"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_chainIDs",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_debts",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_activeDebts",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_inbounds",
							"type": "uint256[]"
						}
					],
					"name": "setCrossNetworkDebtsAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1c1b64f9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setCrossNetworkInbound",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4f70a87a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_chainIDs",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_amounts",
							"type": "uint256[]"
						}
					],
					"name": "setCrossNetworkInboundAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5483fe04"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "setCrossNetworkIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x619c88c7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_chainIDs",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_amounts",
							"type": "uint256[]"
						}
					],
					"name": "setCrossNetworkIssuedDebtAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x826022e2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "from",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "userStateDebtLedgerIndex",
							"type": "uint256"
						}
					],
					"name": "setCrossNetworkUserData",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3d43eee5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "setCrosschain",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb46b3cb9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "setInitialCurrentIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6bc60d04"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "subtractIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x12250dd6"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "subtractTotalNetworkDebtLedger",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xceb83c6f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalNetworkDebtLedgerLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3c988906"
				}
			],
			"source": {
				"keccak256": "0x5b7f978dd52fbd421bf565f7730a1aadbc7d411bf1e6a4c183e0ae55632db878",
				"urls": [
					"bzz-raw://9031ea5d561c041218263f63a0045f7fc7b191be4e1a5f3df577f05a80360a10",
					"dweb:/ipfs/QmRZRjJ5d2tReXahry3GR5AxKPMsJFm1V1kKiynGkuNhMb"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CrossChainState.sol": "CrossChainState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CrossChainState.sol": {
						"keccak256": "0x5b7f978dd52fbd421bf565f7730a1aadbc7d411bf1e6a4c183e0ae55632db878",
						"urls": [
							"bzz-raw://9031ea5d561c041218263f63a0045f7fc7b191be4e1a5f3df577f05a80360a10",
							"dweb:/ipfs/QmRZRjJ5d2tReXahry3GR5AxKPMsJFm1V1kKiynGkuNhMb"
						]
					}
				},
				"version": 1
			}
		},
		"CrossChainManager": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162002d4d38038062002d4d833981016040819052620000349162000115565b82846001600160a01b038116620000685760405162461bcd60e51b81526004016200005f90620001fc565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b5918490620001d6565b60405180910390a150600280546001600160a01b03199081166001600160a01b03938416179091556004805482169483169490941790935560058054909316911617905550620002579050565b80516200010f816200023d565b92915050565b600080600080608085870312156200012c57600080fd5b60006200013a878762000102565b94505060206200014d8782880162000102565b9350506040620001608782880162000102565b9250506060620001738782880162000102565b91505092959194509250565b6200018a8162000229565b82525050565b6200018a8162000217565b6000620001aa6019836200020e565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001e682856200017f565b620001f5602083018462000190565b9392505050565b602080825281016200010f816200019b565b90815260200190565b60006001600160a01b0382166200010f565b60006200010f8260006200010f8262000217565b620002488162000217565b81146200025457600080fd5b50565b612ae680620002676000396000f3fe608060405234801561001057600080fd5b50600436106102bb5760003560e01c8063619c88c711610182578063a7fbcba9116100e9578063d3864cc4116100a2578063ef36910f1161007c578063ef36910f146105c4578063f27aa4fb146105cc578063f2de2dee146105df578063fac0d541146105f2576102bb565b8063d3864cc414610596578063d5495e06146105a9578063d5bec488146105bc576102bb565b8063a7fbcba91461053a578063b076f08b1461054d578063b46b3cb914610555578063bad52f5914610568578063c6682bc514610570578063cc76032d14610583576102bb565b80637fe24d5c1161013b5780637fe24d5c146104d1578063826022e2146104e4578063899ffef4146104f75780638bfc007c1461050c5780638da5cb5b1461051f57806394a8b41914610527576102bb565b8063619c88c714610472578063681c78111461048557806369e9a1d9146104a65780636eafeb80146104ae57806374185360146104c157806379ba5097146104c9576102bb565b80632af64bd3116102265780635082fa3f116101df5780635082fa3f1461041457806353a47bb7146104295780635483fe0414610431578063585075e51461044457806359784ac91461045757806360b3a0331461046a576102bb565b80632af64bd3146103b657806332a76d46146103cb5780633eb76715146103de57806340f68cdd146103e65780634798b320146103f95780634e03d64014610401576102bb565b80631b9a7239116102785780631b9a7239146103415780631be6b176146103545780631c1b64f9146103755780631e1c37c0146103885780632646d3f2146103905780632a222dfe146103a3576102bb565b806302760d94146102c057806304f3bcec146102de57806312250dd6146102f357806313cf458414610308578063157121391461031b5780631627540c1461032e575b600080fd5b6102c86105fa565b6040516102d591906128e1565b60405180910390f35b6102e661060a565b6040516102d59190612946565b61030661030136600461238e565b610619565b005b610306610316366004612192565b610684565b610306610329366004612352565b6106ae565b61030661033c366004612192565b61071e565b6102c861034f366004612352565b61077c565b610367610362366004612192565b610807565b6040516102d5929190612938565b610306610383366004612280565b610896565b6102c8610a14565b61030661039e36600461238e565b610a8e565b6103066103b1366004612352565b610acb565b6103be610b06565b6040516102d591906128d3565b6103066103d9366004612210565b610c1d565b6102c8610ce6565b6103066103f4366004612192565b610d28565b610306610d63565b61030661040f366004612352565b610e12565b61041c610ebe565b6040516102d5919061284d565b61041c610ecd565b61030661043f366004612210565b610edc565b61030661045236600461238e565b610f77565b610306610465366004612352565b610fac565b61041c611009565b61030661048036600461238e565b611018565b610498610493366004612352565b611077565b6040516102d59291906128fd565b6102c86111b4565b6103066104bc366004612210565b6111f6565b610306611259565b6103066113af565b6102c86104df366004612352565b61144b565b6103066104f2366004612210565b611480565b6104ff6114e3565b6040516102d591906128c2565b61030661051a366004612192565b6115ce565b61041c6115f8565b6102c861053536600461238e565b611607565b610306610548366004612352565b611695565b6102c86116d0565b610306610563366004612352565b611712565b6102c861174d565b61030661057e36600461238e565b61190a565b6102c8610591366004612352565b611969565b6102c86105a4366004612352565b61199e565b6103066105b7366004612352565b6119d3565b6104986119f1565b6102c8611a04565b6104986105da366004612352565b611a46565b6103066105ed3660046121d6565b611a6a565b6102c8611aa7565b6000610604611ae9565b90505b90565b6002546001600160a01b031681565b610621610ebe565b6001600160a01b03166312250dd683836040518363ffffffff1660e01b815260040161064e929190612938565b600060405180830381600087803b15801561066857600080fd5b505af115801561067c573d6000803e3d6000fd5b505050505050565b61068c611b75565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6106b6611ba1565b6106be610ebe565b6001600160a01b031663517257a8826040518263ffffffff1660e01b81526004016106e991906128e1565b600060405180830381600087803b15801561070357600080fd5b505af1158015610717573d6000803e3d6000fd5b5050505050565b610726611b75565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061077190839061284d565b60405180910390a150565b6000610786610ebe565b6001600160a01b0316639f15385b836040518263ffffffff1660e01b81526004016107b191906128e1565b60206040518083038186803b1580156107c957600080fd5b505afa1580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108019190810190612370565b92915050565b600080610812610ebe565b6001600160a01b0316635d7fb53f846040518263ffffffff1660e01b815260040161083d919061284d565b604080518083038186803b15801561085457600080fd5b505afa158015610868573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061088c91908101906123dd565b9094909350915050565b6005546001600160a01b031633146108c95760405162461bcd60e51b81526004016108c0906129b5565b60405180910390fd5b6108d1610ebe565b6001600160a01b031663826022e2898989896040518563ffffffff1660e01b81526004016109029493929190612891565b600060405180830381600087803b15801561091c57600080fd5b505af1158015610930573d6000803e3d6000fd5b5050505061093c610ebe565b6001600160a01b0316636eafeb80898987876040518563ffffffff1660e01b815260040161096d9493929190612891565b600060405180830381600087803b15801561098757600080fd5b505af115801561099b573d6000803e3d6000fd5b505050506109a7610ebe565b6001600160a01b0316635483fe04898985856040518563ffffffff1660e01b81526004016109d89493929190612891565b600060405180830381600087803b1580156109f257600080fd5b505af1158015610a06573d6000803e3d6000fd5b505050505050505050505050565b6000610a1e610ebe565b6001600160a01b0316631e1c37c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5657600080fd5b505afa158015610a6a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106049190810190612370565b610a96611b75565b610a9e610ebe565b6001600160a01b0316632646d3f283836040518363ffffffff1660e01b815260040161064e929190612938565b610ad3611ba1565b610adb610ebe565b6001600160a01b031663ceb83c6f826040518263ffffffff1660e01b81526004016106e991906128e1565b60006060610b126114e3565b905060005b8151811015610c14576000828281518110610b2e57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610b7f9085906004016128e1565b60206040518083038186803b158015610b9757600080fd5b505afa158015610bab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bcf91908101906121b8565b6001600160a01b0316141580610bfa57506000818152600360205260409020546001600160a01b0316155b15610c0b5760009350505050610607565b50600101610b17565b50600191505090565b610c25611b75565b828114610c445760405162461bcd60e51b81526004016108c090612965565b60005b8381101561071757610c57610ebe565b6001600160a01b0316632646d3f2868684818110610c7157fe5b90506020020135858585818110610c8457fe5b905060200201356040518363ffffffff1660e01b8152600401610ca8929190612938565b600060405180830381600087803b158015610cc257600080fd5b505af1158015610cd6573d6000803e3d6000fd5b505060019092019150610c479050565b6000610cf0610ebe565b6001600160a01b0316633eb767156040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5657600080fd5b610d30611ba1565b610d38610ebe565b6001600160a01b0316633227918f826040518263ffffffff1660e01b81526004016106e9919061284d565b6000610d6d611c06565b6001600160a01b031663053932626040518163ffffffff1660e01b815260040160206040518083038186803b158015610da557600080fd5b505afa158015610db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ddd9190810190612370565b9050610de7610ebe565b6001600160a01b0316636bc60d04826040518263ffffffff1660e01b81526004016106e991906128e1565b610e1a610ebe565b6001600160a01b031663585075e5610e30610ebe565b6001600160a01b031663564b81ef6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ea09190810190612370565b836040518363ffffffff1660e01b81526004016106e9929190612938565b6004546001600160a01b031690565b6001546001600160a01b031681565b6005546001600160a01b03163314610f065760405162461bcd60e51b81526004016108c0906129b5565b610f0e610ebe565b6001600160a01b0316635483fe04858585856040518563ffffffff1660e01b8152600401610f3f9493929190612891565b600060405180830381600087803b158015610f5957600080fd5b505af1158015610f6d573d6000803e3d6000fd5b5050505050505050565b610f7f610ebe565b6001600160a01b031663585075e583836040518363ffffffff1660e01b815260040161064e929190612938565b6005546001600160a01b03163314610fd65760405162461bcd60e51b81526004016108c0906129b5565b610fde610ebe565b6001600160a01b0316634374d398826040518263ffffffff1660e01b81526004016106e991906128e1565b6005546001600160a01b031690565b6005546001600160a01b031633146110425760405162461bcd60e51b81526004016108c0906129b5565b61104a610ebe565b6001600160a01b031663619c88c783836040518363ffffffff1660e01b815260040161064e929190612938565b60008060009050306001600160a01b031663bad52f596040518163ffffffff1660e01b815260040160206040518083038186803b1580156110b757600080fd5b505afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110ef9190810190612370565b9150631c1554d160e21b831415611105576111af565b600080611110611c1d565b6001600160a01b0316630c71cd23866040518263ffffffff1660e01b815260040161113b91906128e1565b604080518083038186803b15801561115257600080fd5b505afa158015611166573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061118a91908101906123ad565b909250905061119f848363ffffffff611c3816565b83806111a85750815b9350935050505b915091565b60006111be610ebe565b6001600160a01b0316633c9889066040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5657600080fd5b6005546001600160a01b031633146112205760405162461bcd60e51b81526004016108c0906129b5565b611228610ebe565b6001600160a01b0316636eafeb80858585856040518563ffffffff1660e01b8152600401610f3f9493929190612891565b60606112636114e3565b905060005b81518110156113ab57600082828151811061127f57fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016112c19190612842565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016112ed929190612918565b60206040518083038186803b15801561130557600080fd5b505afa158015611319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061133d91908101906121b8565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa689061139990849084906128ef565b60405180910390a15050600101611268565b5050565b6001546001600160a01b031633146113d95760405162461bcd60e51b81526004016108c090612975565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261141c926001600160a01b039182169291169061285b565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000611455610ebe565b6001600160a01b0316637fe24d5c836040518263ffffffff1660e01b81526004016107b191906128e1565b6005546001600160a01b031633146114aa5760405162461bcd60e51b81526004016108c0906129b5565b6114b2610ebe565b6001600160a01b031663826022e2858585856040518563ffffffff1660e01b8152600401610f3f9493929190612891565b60408051600580825260c082019092526060916020820160a0803883390190505090506524b9b9bab2b960d11b8160008151811061151d57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160018151811061154357fe5b6020026020010181815250506e109c9a5919d954dd185d195c1554d1608a1b8160028151811061156f57fe5b6020026020010181815250506c45786368616e6765526174657360981b8160038151811061159957fe5b6020026020010181815250506844656274436163686560b81b816004815181106115bf57fe5b60200260200101818152505090565b6115d6611b75565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031681565b6000611611611c4d565b6001600160a01b03166394a8b41984846040518363ffffffff1660e01b815260040161163e929190612938565b60206040518083038186803b15801561165657600080fd5b505afa15801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061168e9190810190612370565b9392505050565b61169d611b75565b6116a5610ebe565b6001600160a01b031663a7fbcba9826040518263ffffffff1660e01b81526004016106e991906128e1565b60006116da610ebe565b6001600160a01b031663b076f08b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5657600080fd5b61171a611b75565b611722610ebe565b6001600160a01b031663b46b3cb9826040518263ffffffff1660e01b81526004016106e991906128e1565b600080611758610ebe565b6001600160a01b031663b076f08b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561179057600080fd5b505afa1580156117a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117c89190810190612370565b905060006117d4610ebe565b6001600160a01b0316637f5535136040518163ffffffff1660e01b815260040160206040518083038186803b15801561180c57600080fd5b505afa158015611820573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118449190810190612370565b90508061185657600092505050610607565b6000611860611c6a565b50905060008161186e610ebe565b6001600160a01b031663fac0d5416040518163ffffffff1660e01b815260040160206040518083038186803b1580156118a657600080fd5b505afa1580156118ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118de9190810190612370565b019050611901836118f5838763ffffffff611e2e16565b9063ffffffff611c3816565b94505050505090565b6005546001600160a01b031633146119345760405162461bcd60e51b81526004016108c0906129b5565b61193c610ebe565b6001600160a01b031663c6682bc583836040518363ffffffff1660e01b815260040161064e929190612938565b6000611973610ebe565b6001600160a01b031663cc76032d836040518263ffffffff1660e01b81526004016107b191906128e1565b60006119a8610ebe565b6001600160a01b031663d3864cc4836040518263ffffffff1660e01b81526004016107b191906128e1565b6119db610ebe565b6001600160a01b03166312250dd6610e30610ebe565b6000806119fc611c6a565b915091509091565b6000611a0e610ebe565b6001600160a01b0316632a3d64c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5657600080fd5b600080611a51611c6a565b9092509050631c1554d160e21b831415611105576111af565b611a72611ba1565b611a7a610ebe565b6001600160a01b0316633d43eee583836040518363ffffffff1660e01b815260040161064e929190612876565b6000611ab1610ebe565b6001600160a01b031663fac0d5416040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5657600080fd5b600080611af4610ebe565b6001600160a01b0316633eb767156040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2c57600080fd5b505afa158015611b40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b649190810190612370565b9050611b6f81611e58565b91505090565b6000546001600160a01b03163314611b9f5760405162461bcd60e51b81526004016108c0906129c5565b565b6000611bab611f59565b6001600160a01b0316336001600160a01b03161490506000611bcb611f6d565b6001600160a01b0316336001600160a01b03161490508180611bea5750805b6113ab5760405162461bcd60e51b81526004016108c0906129e5565b60006106046844656274436163686560b81b611f80565b60006106046c45786368616e6765526174657360981b611f80565b600061168e8383670de0b6b3a7640000611fe4565b60006106046e109c9a5919d954dd185d195c1554d1608a1b611f80565b600080611c75611f59565b6001600160a01b031663f023e8db631c1554d160e21b60016040518363ffffffff1660e01b8152600401611caa9291906128fd565b604080518083038186803b158015611cc157600080fd5b505afa158015611cd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611cf991908101906123ad565b90925090506000611d08611c4d565b6001600160a01b031663663c2dae6040518163ffffffff1660e01b815260040160206040518083038186803b158015611d4057600080fd5b505afa158015611d54573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d789190810190612370565b90506000611d84611c4d565b6001600160a01b031663fc9ff1216040518163ffffffff1660e01b815260040160206040518083038186803b158015611dbc57600080fd5b505afa158015611dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611df49190810190612370565b90508115611e0f57611e0c848363ffffffff61202716565b93505b8015611e2857611e25848263ffffffff61204c16565b93505b50509091565b6000670de0b6b3a7640000611e49848463ffffffff61207416565b81611e5057fe5b049392505050565b600080611e63610ebe565b6001600160a01b031663b076f08b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e9b57600080fd5b505afa158015611eaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ed39190810190612370565b90508215611f0157611efc611ee7846120ae565b611ef0836120ae565b9063ffffffff6120c416565b61168e565b73__$ab44aa4d03cf506e3f86b9d3e8fcef9ff5$__63d5e5e6e66040518163ffffffff1660e01b815260040160206040518083038186803b158015611f4557600080fd5b505af415801561166a573d6000803e3d6000fd5b60006106046524b9b9bab2b960d11b611f80565b60006106046822bc31b430b733b2b960b91b5b60008181526003602090815260408083205490516001600160a01b039091169182151591611fb091869101612822565b60405160208183030381529060405290611fdd5760405162461bcd60e51b81526004016108c09190612954565b5092915050565b60008061200a84611ffe87600a870263ffffffff61207416565b9063ffffffff6120dd16565b90506005600a82061061201b57600a015b600a9004949350505050565b60008282018381101561168e5760405162461bcd60e51b81526004016108c090612985565b60008282111561206e5760405162461bcd60e51b81526004016108c090612995565b50900390565b60008261208357506000610801565b8282028284828161209057fe5b041461168e5760405162461bcd60e51b81526004016108c0906129d5565b600061080182633b9aca0063ffffffff61207416565b600061168e83836b033b2e3c9fd0803ce8000000611fe4565b60008082116120fe5760405162461bcd60e51b81526004016108c0906129a5565b600082848161210957fe5b04949350505050565b803561080181612a7a565b805161080181612a7a565b60008083601f84011261213a57600080fd5b50813567ffffffffffffffff81111561215257600080fd5b60208301915083602082028301111561216a57600080fd5b9250929050565b805161080181612a91565b803561080181612a9a565b805161080181612a9a565b6000602082840312156121a457600080fd5b60006121b08484612112565b949350505050565b6000602082840312156121ca57600080fd5b60006121b0848461211d565b600080604083850312156121e957600080fd5b60006121f58585612112565b92505060206122068582860161217c565b9150509250929050565b6000806000806040858703121561222657600080fd5b843567ffffffffffffffff81111561223d57600080fd5b61224987828801612128565b9450945050602085013567ffffffffffffffff81111561226857600080fd5b61227487828801612128565b95989497509550505050565b6000806000806000806000806080898b03121561229c57600080fd5b883567ffffffffffffffff8111156122b357600080fd5b6122bf8b828c01612128565b9850985050602089013567ffffffffffffffff8111156122de57600080fd5b6122ea8b828c01612128565b9650965050604089013567ffffffffffffffff81111561230957600080fd5b6123158b828c01612128565b9450945050606089013567ffffffffffffffff81111561233457600080fd5b6123408b828c01612128565b92509250509295985092959890939650565b60006020828403121561236457600080fd5b60006121b0848461217c565b60006020828403121561238257600080fd5b60006121b08484612187565b600080604083850312156123a157600080fd5b60006121f5858561217c565b600080604083850312156123c057600080fd5b60006123cc8585612187565b925050602061220685828601612171565b600080604083850312156123f057600080fd5b60006123fc8585612187565b925050602061220685828601612187565b600061241983836124cb565b505060200190565b61242a81612a0d565b82525050565b600061243c83856129ff565b93506001600160fb1b0383111561245257600080fd5b602083029250612463838584612a34565b50500190565b6000612474826129fb565b61247e81856129ff565b9350612489836129f5565b8060005b838110156124b75781516124a1888261240d565b97506124ac836129f5565b92505060010161248d565b509495945050505050565b61242a81612a18565b61242a81610607565b61242a6124e082610607565b610607565b61242a81612a29565b60006124f9826129fb565b61250381856129ff565b9350612513818560208601612a40565b61251c81612a70565b9093019392505050565b60006125336017836129ff565b7f706172616d206c656e67746873206e6f74206d61746368000000000000000000815260200192915050565b600061256c6035836129ff565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006125c3601b836129ff565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006125fc601e836129ff565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000612635601a836129ff565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061266e601183612a08565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b600061269b602d836129ff565b7f4f6e6c79207468652064656274206d616e61676572206d617920706572666f7281526c36903a3434b99030b1ba34b7b760991b602082015260400192915050565b60006126ea602f836129ff565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b600061273b6021836129ff565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b600061277e601983612a08565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b60006127b76050836129ff565b7f43726f7373436861696e4d616e616765723a204f6e6c7920746865206973737581527f6572206f722065786368616e67657220636f6e74726163742063616e2070657260208201526f3337b936903a3434b99030b1ba34b7b760811b604082015260600192915050565b600061282d82612661565b915061283982846124d4565b50602001919050565b600061282d82612771565b602081016108018284612421565b604081016128698285612421565b61168e6020830184612421565b604081016128848285612421565b61168e60208301846124cb565b604080825281016128a3818688612430565b905081810360208301526128b8818486612430565b9695505050505050565b6020808252810161168e8184612469565b6020810161080182846124c2565b6020810161080182846124cb565b6040810161286982856124cb565b6040810161290b82856124cb565b61168e60208301846124c2565b6040810161292682856124cb565b81810360208301526121b081846124ee565b6040810161288482856124cb565b6020810161080182846124e5565b6020808252810161168e81846124ee565b6020808252810161080181612526565b602080825281016108018161255f565b60208082528101610801816125b6565b60208082528101610801816125ef565b6020808252810161080181612628565b602080825281016108018161268e565b60208082528101610801816126dd565b602080825281016108018161272e565b60208082528101610801816127aa565b60200190565b5190565b90815260200190565b919050565b600061080182612a1d565b151590565b6001600160a01b031690565b600061080182612a0d565b82818337506000910152565b60005b83811015612a5b578181015183820152602001612a43565b83811115612a6a576000848401525b50505050565b601f01601f191690565b612a8381612a0d565b8114612a8e57600080fd5b50565b612a8381612a18565b612a838161060756fea365627a7a723158201221c318cf91b1ccb3a44c1979879dca1763f49a65a4dee8a0c4eb77486bccf06c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_crossChainStateAddress",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_debtManagerAddress",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "addCrosschain",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa7fbcba9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "addCurrentNetworkIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4e03d640"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "addIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x585075e5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_networkId",
							"type": "uint256"
						}
					],
					"name": "addNetworkId",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2646d3f2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_chainIDs",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_networkIds",
							"type": "uint256[]"
						}
					],
					"name": "addNetworkIds",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x32a76d46"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "addTotalNetworkDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x15712139"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "totalNetworkDebt",
							"type": "uint256"
						}
					],
					"name": "appendTotalNetworkDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x59784ac9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "clearCrossNetworkUserDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x40f68cdd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "crossChainState",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5082fa3f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentNetworkDebtPercentage",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x02760d94"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "currentTotalNetworkDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xef36910f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "debtManager",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x60b3a033"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "getCrossNetworkActiveDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7fe24d5c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCrossNetworkActiveDebtAll",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfac0d541"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCrossNetworkInboundAll",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1e1c37c0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "getCrossNetworkIssuedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd3864cc4"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCrossNetworkIssuedDebtAll",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3eb76715"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCurrentNetworkActiveDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xbad52f59"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getCurrentNetworkAdaptedActiveDebtValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalSystemValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x681c7811"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCurrentNetworkDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "currentNetworkDebt",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd5bec488"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getCurrentNetworkIssuedDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb076f08b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_inboundOutbound",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "targetNetworkId",
							"type": "uint256"
						}
					],
					"name": "getMovedAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x94a8b419"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "getNetworkId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcc76032d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "getTotalNetworkAdaptedTotalSystemValue",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "totalSystemValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf27aa4fb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "crossChainStateAddress",
							"type": "address"
						}
					],
					"name": "setCrossChainState",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x13cf4584"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "setCrossNetworkActiveDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xc6682bc5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_chainIDs",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_amounts",
							"type": "uint256[]"
						}
					],
					"name": "setCrossNetworkActiveDebtAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6eafeb80"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_chainIDs",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_issuedDebts",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_activeDebts",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_inbounds",
							"type": "uint256[]"
						}
					],
					"name": "setCrossNetworkDebtsAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1c1b64f9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_chainIDs",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_amounts",
							"type": "uint256[]"
						}
					],
					"name": "setCrossNetworkInboundAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5483fe04"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "setCrossNetworkIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x619c88c7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_chainIDs",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "_amounts",
							"type": "uint256[]"
						}
					],
					"name": "setCrossNetworkIssuedDebtAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x826022e2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "userStateDebtLedgerIndex",
							"type": "uint256"
						}
					],
					"name": "setCrossNetworkUserDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf2de2dee"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						}
					],
					"name": "setCrosschain",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb46b3cb9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "debtManagerAddress",
							"type": "address"
						}
					],
					"name": "setDebtManager",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8bfc007c"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "setInitialCurrentIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4798b320"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "subtractCurrentNetworkIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd5495e06"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "_chainID",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "subtractIssuedDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x12250dd6"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "subtractTotalNetworkDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2a222dfe"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "totalNetworkDebtAtIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1b9a7239"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalNetworkDebtEntryLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x69e9a1d9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "userIssuanceDataForTotalNetwork",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "crossChainDebtEntryIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "userStateDebtLedgerIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1be6b176"
				}
			],
			"source": {
				"keccak256": "0xb727564727648389e3b33e04c703d23901ac380919d94ca9114fa1320511de6b",
				"urls": [
					"bzz-raw://edc8c471c9f597d3bc4698bfe46f01fe7f4a6b57bfe3213033f54a6f64e75ab3",
					"dweb:/ipfs/QmNNaEvo2WC4aWmeU4WoNQPj5Pt3b3vT8PQpE7i6jAx27D"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CrossChainManager.sol": "CrossChainManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CrossChainManager.sol": {
						"keccak256": "0xb727564727648389e3b33e04c703d23901ac380919d94ca9114fa1320511de6b",
						"urls": [
							"bzz-raw://edc8c471c9f597d3bc4698bfe46f01fe7f4a6b57bfe3213033f54a6f64e75ab3",
							"dweb:/ipfs/QmNNaEvo2WC4aWmeU4WoNQPj5Pt3b3vT8PQpE7i6jAx27D"
						]
					}
				},
				"version": 1
			}
		},
		"Depot": {
			"bytecode": "60806040819052630241ebdb60e61b815273__$5b1a0139898c1861867d128118276f8f0f$__9063907af6c09060849060209060048186803b1580156200004557600080fd5b505af41580156200005a573d6000803e3d6000fd5b505050506040513d60208110156200007157600080fd5b5051603202600c5560408051630241ebdb60e61b8152905173__$5b1a0139898c1861867d128118276f8f0f$__9163907af6c0916004808301926020929190829003018186803b158015620000c557600080fd5b505af4158015620000da573d6000803e3d6000fd5b505050506040513d6020811015620000f157600080fd5b50516101f402600d553480156200010757600080fd5b50604051620033d3380380620033d3833981810160405260608110156200012d57600080fd5b508051602082015160409092015190919080836001600160a01b0381166200019c576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b031662000247576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6001600455600580546001600160a01b039283166001600160a01b03199182161790915560078054949092169316929092179091555050613145806200028e6000396000f3fe6080604052600436106101f95760003560e01c806379ba50971161010d578063ae4133b2116100a0578063c3969b341161006f578063c3969b3414610774578063c6abb7c71461079e578063ce727e41146107d1578063dcaa3e9f146107fb578063fd12167f14610818576101f9565b8063ae4133b2146106be578063b02c43d0146106e8578063b1338cc414610735578063bb7df1721461074a576101f9565b8063a2c90838116100dc578063a2c908381461062c578063a705a8341461065c578063a8f984461461067f578063aab483d614610694576101f9565b806379ba509714610588578063899ffef41461059d5780638da5cb5b1461060257806391b4ded914610617576101f9565b80634d0387fb1161019057806364e39b871161015f57806364e39b871461051b5780636d5ab4a91461054e5780636fd62e8c14610563578063741853601461056b57806376569fbf14610580576101f9565b80634d0387fb146104b257806353a47bb7146104c75780635a81c346146104dc5780635c975abb14610506576101f9565b80632194f3a2116101cc5780632194f3a2146104205780632af64bd31461043557806334d2e0f21461045e57806343de4fd014610488576101f9565b806304f3bcec14610367578063080c279a146103985780631627540c146103bf57806316c38b3c146103f4575b60048054600101908190556208aa8960eb1b61021361082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561025657600080fd5b505afa15801561026a573d6000803e3d6000fd5b505050506040513d602081101561028057600080fd5b5051156102c2576040805162461bcd60e51b815260206004820152601b6024820152600080516020612f98833981519152604482015290519081900360640190fd5b60035460ff16156103045760405162461bcd60e51b815260040180806020018281038252603c8152602001806130b0603c913960400191505060405180910390fd5b61030c61084e565b50506004548114610364576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b50005b34801561037357600080fd5b5061037c61103e565b604080516001600160a01b039092168252519081900360200190f35b3480156103a457600080fd5b506103ad61104d565b60408051918252519081900360200190f35b3480156103cb57600080fd5b506103f2600480360360208110156103e257600080fd5b50356001600160a01b0316611053565b005b34801561040057600080fd5b506103f26004803603602081101561041757600080fd5b503515156110af565b34801561042c57600080fd5b5061037c611129565b34801561044157600080fd5b5061044a611138565b604080519115158252519081900360200190f35b34801561046a57600080fd5b506103ad6004803603602081101561048157600080fd5b5035611242565b34801561049457600080fd5b506103ad600480360360208110156104ab57600080fd5b50356112d7565b3480156104be57600080fd5b506103ad6113ea565b3480156104d357600080fd5b5061037c6113f0565b3480156104e857600080fd5b506103f2600480360360208110156104ff57600080fd5b50356113ff565b34801561051257600080fd5b5061044a6115c3565b34801561052757600080fd5b506103f26004803603602081101561053e57600080fd5b50356001600160a01b03166115cc565b34801561055a57600080fd5b506103ad61162e565b6103ad611634565b34801561057757600080fd5b506103f2611804565b6103ad6119cc565b34801561059457600080fd5b506103f2611b3f565b3480156105a957600080fd5b506105b2611bfb565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105ee5781810151838201526020016105d6565b505050509050019250505060405180910390f35b34801561060e57600080fd5b5061037c611c98565b34801561062357600080fd5b506103ad611ca7565b34801561063857600080fd5b506103ad6004803603604081101561064f57600080fd5b5080359060200135611cad565b6103ad6004803603604081101561067257600080fd5b5080359060200135611e7c565b34801561068b57600080fd5b506103f26121c3565b3480156106a057600080fd5b506103f2600480360360208110156106b757600080fd5b50356123fd565b3480156106ca57600080fd5b506103ad600480360360208110156106e157600080fd5b50356124ed565b3480156106f457600080fd5b506107126004803603602081101561070b57600080fd5b5035612588565b604080516001600160a01b03909316835260208301919091528051918290030190f35b34801561074157600080fd5b506103ad6125ad565b34801561075657600080fd5b506103f26004803603602081101561076d57600080fd5b50356125b3565b34801561078057600080fd5b506103ad6004803603602081101561079757600080fd5b50356125f6565b3480156107aa57600080fd5b506103ad600480360360208110156107c157600080fd5b50356001600160a01b0316612686565b3480156107dd57600080fd5b506103f2600480360360208110156107f457600080fd5b5035612698565b6103ad6004803603602081101561081157600080fd5b5035612730565b34801561082457600080fd5b506103ad6128f4565b60006108486c45786368616e6765526174657360981b6128fa565b90505b90565b6000600d543411156108915760405162461bcd60e51b815260040180806020018281038252602581526020018061305b6025913960400191505060405180910390fd5b60008061092161089f61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156108e857600080fd5b505afa1580156108fc573d6000803e3d6000fd5b505050506040513d602081101561091257600080fd5b5051349063ffffffff6129de16565b60095490915081905b60008211801561093b5750600a5481105b15610ee957610948612f20565b50600081815260086020908152604091829020825180840190935280546001600160a01b03168084526001909101549183019190915261099e5760095461099690600163ffffffff612a0816565b600955610ee0565b8281602001511115610c425760208101516000906109c2908563ffffffff612a6216565b60408051808201825284516001600160a01b039081168252602080830185815260008981526008909252939020915182546001600160a01b03191691161781559051600190910155600b54909150610a1a9085612a62565b600b55610aaa610a2861082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a7157600080fd5b505afa158015610a85573d6000803e3d6000fd5b505050506040513d6020811015610a9b57600080fd5b5051859063ffffffff612abf16565b82516040519197506001600160a01b03169087156108fc029088906000818181858888f19350505050610b58576007546040516001600160a01b039091169087156108fc029088906000818181858888f19350505050158015610b11573d6000803e3d6000fd5b5081516040805188815290516001600160a01b03909216917ff2435d3901399daa085f8b58d2409fff9b83ce4ca97c1f144b532f5a08b1c96c9181900360200190a2610ba4565b81516040805188815260208101879052815186936001600160a01b03169233927f6d957e9e816107f67cb7118461e3c259e96896f80223c9af2972596c2fdd401c929081900390910190a45b610bac612ae9565b6001600160a01b031663a9059cbb33866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610c0b57600080fd5b505af1158015610c1f573d6000803e3d6000fd5b505050506040513d6020811015610c3557600080fd5b5060009450610ee0915050565b82816020015111610ee057600082815260086020526040812080546001600160a01b0319168155600190810191909155600954610c849163ffffffff612a0816565b6009556020810151600b54610c9e9163ffffffff612a6216565b600b55610d32610cac61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610cf557600080fd5b505afa158015610d09573d6000803e3d6000fd5b505050506040513d6020811015610d1f57600080fd5b505160208301519063ffffffff612abf16565b81516040519196506001600160a01b03169086156108fc029087906000818181858888f19350505050610de0576007546040516001600160a01b039091169086156108fc029087906000818181858888f19350505050158015610d99573d6000803e3d6000fd5b5080516040805187815290516001600160a01b03909216917ff2435d3901399daa085f8b58d2409fff9b83ce4ca97c1f144b532f5a08b1c96c9181900360200190a2610e30565b80516020808301516040805189815292830191909152805185936001600160a01b03169233927f6d957e9e816107f67cb7118461e3c259e96896f80223c9af2972596c2fdd401c92918290030190a45b610e38612ae9565b6001600160a01b031663a9059cbb3383602001516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e9b57600080fd5b505af1158015610eaf573d6000803e3d6000fd5b505050506040513d6020811015610ec557600080fd5b50506020810151610edd90849063ffffffff612a6216565b92505b5060010161092a565b508015610fab57336108fc610f81610eff61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610f4857600080fd5b505afa158015610f5c573d6000803e3d6000fd5b505050506040513d6020811015610f7257600080fd5b5051849063ffffffff612abf16565b6040518115909202916000818181858888f19350505050158015610fa9573d6000803e3d6000fd5b505b6000610fbd838363ffffffff612a6216565b9050801561103657604080513460208201526060810183905260808082526003908201526208aa8960eb1b60a082015260c0818301819052600490820152631c1554d160e21b60e082015290517fdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd918190036101000190a15b935050505090565b6005546001600160a01b031681565b600c5481565b61105b612b00565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6110b7612b00565b60035460ff16151581151514156110cd57611126565b6003805460ff1916821515179081905560ff16156110ea57426002555b6003546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b6007546001600160a01b031681565b60006060611144611bfb565b905060005b815181101561123957600082828151811061116057fe5b6020908102919091018101516000818152600683526040908190205460055482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b1580156111c857600080fd5b505afa1580156111dc573d6000803e3d6000fd5b505050506040513d60208110156111f257600080fd5b50516001600160a01b031614158061121f57506000818152600660205260409020546001600160a01b0316155b15611230576000935050505061084b565b50600101611149565b50600191505090565b60006112d161124f61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561129857600080fd5b505afa1580156112ac573d6000803e3d6000fd5b505050506040513d60208110156112c257600080fd5b5051839063ffffffff6129de16565b92915050565b6000635045524960e01b6112e961082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561132c57600080fd5b505afa158015611340573d6000803e3d6000fd5b505050506040513d602081101561135657600080fd5b505115611398576040805162461bcd60e51b815260206004820152601b6024820152600080516020612f98833981519152604482015290519081900360640190fd5b60035460ff16156113da5760405162461bcd60e51b815260040180806020018281038252603c8152602001806130b0603c913960400191505060405180910390fd5b6113e383612b4b565b9392505050565b600b5481565b6001546001600160a01b031681565b611407612ae9565b604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b0392909216916323b872dd916064808201926020929091908290030181600087803b15801561145f57600080fd5b505af1158015611473573d6000803e3d6000fd5b505050506040513d602081101561148957600080fd5b5050600c5481101561151257336000908152600e60205260409020546114b5908263ffffffff612a0816565b336000818152600e602090815260409182902093909355600c5481519283529282018490528181019290925290517fa53e8531fc7a8d8cd1aeccdc1b953e2b1bfcbeb6f5acb3a8fd571b8c57a5fd3d9181900360600190a1611126565b604080518082018252338082526020808301858152600a8054600090815260088452869020945185546001600160a01b0319166001600160a01b039091161785559051600190940193909355915483518581529351909391927f55037147ed62d28238c4ff02e6d4053961a9fdba94b336f5e2f1c94daf2732a0928290030190a3600a546115a790600163ffffffff612a0816565b600a55600b546115bd908263ffffffff612a0816565b600b5550565b60035460ff1681565b6115d4612b00565b600780546001600160a01b0319166001600160a01b03838116919091179182905560408051929091168252517f4deb077bf9c4bc824cc2c989e01a5e53b0a4ecc44c5039d46abc9ffc88f8a050916020908290030190a150565b60095481565b6000635045524960e01b61164661082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561168957600080fd5b505afa15801561169d573d6000803e3d6000fd5b505050506040513d60208110156116b357600080fd5b5051156116f5576040805162461bcd60e51b815260206004820152601b6024820152600080516020612f98833981519152604482015290519081900360640190fd5b6208aa8960eb1b61170461082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561174757600080fd5b505afa15801561175b573d6000803e3d6000fd5b505050506040513d602081101561177157600080fd5b5051156117b3576040805162461bcd60e51b815260206004820152601b6024820152600080516020612f98833981519152604482015290519081900360640190fd5b60035460ff16156117f55760405162461bcd60e51b815260040180806020018281038252603c8152602001806130b0603c913960400191505060405180910390fd5b6117fd612cf5565b9250505090565b606061180e611bfb565b905060005b81518110156119c857600082828151811061182a57fe5b602090810291909101810151600554604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b838110156118e05781810151838201526020016118c8565b50505050905090810190601f16801561190d5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561192b57600080fd5b505afa15801561193f573d6000803e3d6000fd5b505050506040513d602081101561195557600080fd5b505160008381526006602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101611813565b5050565b60048054600101908190556000906208aa8960eb1b6119e961082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611a2c57600080fd5b505afa158015611a40573d6000803e3d6000fd5b505050506040513d6020811015611a5657600080fd5b505115611a98576040805162461bcd60e51b815260206004820152601b6024820152600080516020612f98833981519152604482015290519081900360640190fd5b60035460ff1615611ada5760405162461bcd60e51b815260040180806020018281038252603c8152602001806130b0603c913960400191505060405180910390fd5b611ae261084e565b9250506004548114611b3b576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5090565b6001546001600160a01b03163314611b885760405162461bcd60e51b8152600401808060200182810382526035815260200180612f636035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6040805160038082526080820190925260609160208201838038833901905050905068141e5b9d1a1c1554d160ba1b81600081518110611c3757fe5b6020026020010181815250506c45786368616e6765526174657360981b81600181518110611c6157fe5b6020026020010181815250506a5065726946696e616e636560a81b81600281518110611c8957fe5b60200260200101818152505090565b6000546001600160a01b031681565b60025481565b6000635045524960e01b611cbf61082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611d0257600080fd5b505afa158015611d16573d6000803e3d6000fd5b505050506040513d6020811015611d2c57600080fd5b505115611d6e576040805162461bcd60e51b815260206004820152601b6024820152600080516020612f98833981519152604482015290519081900360640190fd5b60035460ff1615611db05760405162461bcd60e51b815260040180806020018281038252603c8152602001806130b0603c913960400191505060405180910390fd5b611db861082d565b6001600160a01b031663ac82f608635045524960e01b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611e0257600080fd5b505afa158015611e16573d6000803e3d6000fd5b505050506040513d6020811015611e2c57600080fd5b50518314611e6b5760405162461bcd60e51b81526004018080602001828103825260258152602001806130ec6025913960400191505060405180910390fd5b611e7484612b4b565b949350505050565b6000635045524960e01b611e8e61082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611ed157600080fd5b505afa158015611ee5573d6000803e3d6000fd5b505050506040513d6020811015611efb57600080fd5b505115611f3d576040805162461bcd60e51b815260206004820152601b6024820152600080516020612f98833981519152604482015290519081900360640190fd5b6208aa8960eb1b611f4c61082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015611f8f57600080fd5b505afa158015611fa3573d6000803e3d6000fd5b505050506040513d6020811015611fb957600080fd5b505115611ffb576040805162461bcd60e51b815260206004820152601b6024820152600080516020612f98833981519152604482015290519081900360640190fd5b60035460ff161561203d5760405162461bcd60e51b815260040180806020018281038252603c8152602001806130b0603c913960400191505060405180910390fd5b61204561082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561208e57600080fd5b505afa1580156120a2573d6000803e3d6000fd5b505050506040513d60208110156120b857600080fd5b505185146120f75760405162461bcd60e51b815260040180806020018281038252602b815260200180612f38602b913960400191505060405180910390fd5b6120ff61082d565b6001600160a01b031663ac82f608635045524960e01b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561214957600080fd5b505afa15801561215d573d6000803e3d6000fd5b505050506040513d602081101561217357600080fd5b505184146121b25760405162461bcd60e51b8152600401808060200182810382526032815260200180612fb86032913960400191505060405180910390fd5b6121ba612cf5565b95945050505050565b6009546000905b600a548110156122a6576121dc612f20565b50600081815260086020908152604091829020825180840190935280546001600160a01b03168084526001909101549183019190915233141561229d57602081015161222f90849063ffffffff612a0816565b600083815260086020908152604080832080546001600160a01b0319168155600101929092558351848201518351908152925193965085936001600160a01b03909116927fa3192e28d63900a325ec19d7b4c6a3690995015d92e4483f4b3ec54dea5e598492908290030190a35b506001016121ca565b50600b546122ba908263ffffffff612a6216565b600b55336000908152600e60205260409020546122de90829063ffffffff612a0816565b336000908152600e602052604081205590508061232c5760405162461bcd60e51b8152600401808060200182810382526021815260200180612fea6021913960400191505060405180910390fd5b612334612ae9565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561239357600080fd5b505af11580156123a7573d6000803e3d6000fd5b505050506040513d60208110156123bd57600080fd5b5050604080513381526020810183905281517f561ed20453aa36ac35f599e6b1f20818af8d303c090fb9ffc306da39814757b2929181900390910190a150565b612405612b00565b73__$5b1a0139898c1861867d128118276f8f0f$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561244957600080fd5b505af415801561245d573d6000803e3d6000fd5b505050506040513d602081101561247357600080fd5b505181116124b25760405162461bcd60e51b81526004018080602001828103825260308152602001806130806030913960400191505060405180910390fd5b600c8190556040805182815290517fa39eacd162ee82c70b2b030a1bc8fe89adcccc61122fad4821a8772dbcc542679181900360200190a150565b60008061257d6124fb61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561254457600080fd5b505afa158015612558573d6000803e3d6000fd5b505050506040513d602081101561256e57600080fd5b5051849063ffffffff6129de16565b90506113e3816125f6565b600860205260009081526040902080546001909101546001600160a01b039091169082565b600d5481565b6125bb612b00565b600d8190556040805182815290517fdc2be810a133e01cb21a41082f15b2863d96f9fe79d1f84d7e2d5b810c5c82439181900360200190a150565b60006112d161260361082d565b6001600160a01b031663ac82f608635045524960e01b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561264d57600080fd5b505afa158015612661573d6000803e3d6000fd5b505050506040513d602081101561267757600080fd5b5051839063ffffffff612abf16565b600e6020526000908152604090205481565b6126a0612b00565b6126a8612e44565b600080546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018690529051939091169263a9059cbb92604480840193602093929083900390910190829087803b15801561270157600080fd5b505af1158015612715573d6000803e3d6000fd5b505050506040513d602081101561272b57600080fd5b505050565b60006208aa8960eb1b61274161082d565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561278457600080fd5b505afa158015612798573d6000803e3d6000fd5b505050506040513d60208110156127ae57600080fd5b5051156127f0576040805162461bcd60e51b815260206004820152601b6024820152600080516020612f98833981519152604482015290519081900360640190fd5b60035460ff16156128325760405162461bcd60e51b815260040180806020018281038252603c8152602001806130b0603c913960400191505060405180910390fd5b61283a61082d565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561288357600080fd5b505afa158015612897573d6000803e3d6000fd5b505050506040513d60208110156128ad57600080fd5b505183146128ec5760405162461bcd60e51b81526004018080602001828103825260258152602001806130ec6025913960400191505060405180910390fd5b6113e361084e565b600a5481565b600081815260066020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816129d75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561299c578181015183820152602001612984565b50505050905090810190601f1680156129c95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b6000670de0b6b3a76400006129f9848463ffffffff612e5d16565b81612a0057fe5b049392505050565b6000828201838110156113e3576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600082821115612ab9576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60006113e382612add85670de0b6b3a764000063ffffffff612e5d16565b9063ffffffff612eb616565b600061084868141e5b9d1a1c1554d160ba1b6128fa565b6000546001600160a01b03163314612b495760405162461bcd60e51b815260040180806020018281038252602f81526020018061300b602f913960400191505060405180910390fd5b565b600080612b57836125f6565b9050612b61612ae9565b600754604080516323b872dd60e01b81523360048201526001600160a01b03928316602482015260448101879052905192909116916323b872dd916064808201926020929091908290030181600087803b158015612bbe57600080fd5b505af1158015612bd2573d6000803e3d6000fd5b505050506040513d6020811015612be857600080fd5b50612bf39050612e44565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612c5257600080fd5b505af1158015612c66573d6000803e3d6000fd5b505050506040513d6020811015612c7c57600080fd5b505060408051602081018590526060810183905260808082526004908201819052631c1554d160e21b60a083015260c0828401819052820152635045524960e01b60e082015290517fdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd918190036101000190a192915050565b600080612d01346124ed565b6007546040519192506001600160a01b0316903480156108fc02916000818181858888f19350505050158015612d3b573d6000803e3d6000fd5b50612d44612e44565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612da357600080fd5b505af1158015612db7573d6000803e3d6000fd5b505050506040513d6020811015612dcd57600080fd5b5050604080513460208201526060810183905260808082526003908201526208aa8960eb1b60a082015260c0818301819052600490820152635045524960e01b60e082015290517fdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd918190036101000190a1905090565b60006108486a5065726946696e616e636560a81b6128fa565b600082612e6c575060006112d1565b82820282848281612e7957fe5b04146113e35760405162461bcd60e51b815260040180806020018281038252602181526020018061303a6021913960400191505060405180910390fd5b6000808211612f0c576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481612f1757fe5b04949350505050565b60408051808201909152600080825260208201529056fe47756172616e74656564206574686572207261746520776f756c64206e6f74206265207265636569766564596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869705261746520696e76616c6964206f72206e6f7420612070796e7468000000000047756172616e7465656420706572692066696e616e6365207261746520776f756c64206e6f74206265207265636569766564596f752068617665206e6f206465706f7369747320746f2077697468647261772e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745544820616d6f756e742061626f7665206d61784574685075726368617365206c696d69744d696e696d756d206465706f73697420616d6f756e74206d7573742062652067726561746572207468616e20554e49545468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e74726163742069732070617573656447756172616e74656564207261746520776f756c64206e6f74206265207265636569766564a265627a7a72315820f09bd8db36bb397b4e20d49ac03af3355f57b49c1e62d129eac41e3c0a67474364736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address payable",
							"name": "_fundsWallet",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "fromAddress",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "toAddress",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fromETHAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "uint256",
							"name": "depositIndex",
							"type": "uint256"
						}
					],
					"name": "ClearedDeposit",
					"type": "event",
					"signature": "0x6d957e9e816107f67cb7118461e3c259e96896f80223c9af2972596c2fdd401c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "string",
							"name": "fromCurrency",
							"type": "string"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "fromAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "string",
							"name": "toCurrency",
							"type": "string"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "toAmount",
							"type": "uint256"
						}
					],
					"name": "Exchange",
					"type": "event",
					"signature": "0xdb1741ffc6844b04a9284bb6337fb0ccfe543a493ef0ac8e725242201e93d4bd"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newFundsWallet",
							"type": "address"
						}
					],
					"name": "FundsWalletUpdated",
					"type": "event",
					"signature": "0x4deb077bf9c4bc824cc2c989e01a5e53b0a4ecc44c5039d46abc9ffc88f8a050"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "MaxEthPurchaseUpdated",
					"type": "event",
					"signature": "0xdc2be810a133e01cb21a41082f15b2863d96f9fe79d1f84d7e2d5b810c5c8243"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "MinimumDepositAmountUpdated",
					"type": "event",
					"signature": "0xa39eacd162ee82c70b2b030a1bc8fe89adcccc61122fad4821a8772dbcc54267"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "receiver",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "NonPayableContract",
					"type": "event",
					"signature": "0xf2435d3901399daa085f8b58d2409fff9b83ce4ca97c1f144b532f5a08b1c96c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event",
					"signature": "0x8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "uint256",
							"name": "depositIndex",
							"type": "uint256"
						}
					],
					"name": "PynthDeposit",
					"type": "event",
					"signature": "0x55037147ed62d28238c4ff02e6d4053961a9fdba94b336f5e2f1c94daf2732a0"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minimum",
							"type": "uint256"
						}
					],
					"name": "PynthDepositNotAccepted",
					"type": "event",
					"signature": "0xa53e8531fc7a8d8cd1aeccdc1b953e2b1bfcbeb6f5acb3a8fd571b8c57a5fd3d"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "uint256",
							"name": "depositIndex",
							"type": "uint256"
						}
					],
					"name": "PynthDepositRemoved",
					"type": "event",
					"signature": "0xa3192e28d63900a325ec19d7b4c6a3690995015d92e4483f4b3ec54dea5e5984"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "user",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "PynthWithdrawal",
					"type": "event",
					"signature": "0x561ed20453aa36ac35f599e6b1f20818af8d303c090fb9ffc306da39814757b2"
				},
				{
					"payable": true,
					"stateMutability": "payable",
					"type": "fallback"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "depositEndIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfd12167f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "depositPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5a81c346"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "depositStartIndex",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x6d5ab4a9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "deposits",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "user",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb02c43d0"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "exchangeEtherForPERI",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0x6fd62e8c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "guaranteedEtherRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "guaranteedPeriFinanceRate",
							"type": "uint256"
						}
					],
					"name": "exchangeEtherForPERIAtRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0xa705a834"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "exchangeEtherForPynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0x76569fbf"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "guaranteedRate",
							"type": "uint256"
						}
					],
					"name": "exchangeEtherForPynthsAtRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0xdcaa3e9f"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "pynthAmount",
							"type": "uint256"
						}
					],
					"name": "exchangePynthsForPERI",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x43de4fd0"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "pynthAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "guaranteedRate",
							"type": "uint256"
						}
					],
					"name": "exchangePynthsForPERIAtRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa2c90838"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "fundsWallet",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2194f3a2"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x91b4ded9"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxEthPurchase",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb1338cc4"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minimumDepositAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x080c279a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5c975abb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "periFinanceReceivedForEther",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xae4133b2"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "periFinanceReceivedForPynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc3969b34"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "pynthsReceivedForEther",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x34d2e0f2"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address payable",
							"name": "_fundsWallet",
							"type": "address"
						}
					],
					"name": "setFundsWallet",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x64e39b87"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxEthPurchase",
							"type": "uint256"
						}
					],
					"name": "setMaxEthPurchase",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbb7df172"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_amount",
							"type": "uint256"
						}
					],
					"name": "setMinimumDepositAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xaab483d6"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x16c38b3c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "smallDeposits",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc6abb7c7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalSellableDeposits",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4d0387fb"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "withdrawMyDepositedPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa8f98446"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdrawPeriFinance",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xce727e41"
				}
			],
			"source": {
				"keccak256": "0xd534904f559e37ce943cc0d5382bac29594c8a34cb85e09f37e8b88e0f5c81f8",
				"urls": [
					"bzz-raw://844eb09862d463f110a4fac5a6c5e2aaa97f3846a41dd499f49f8abaa94530aa",
					"dweb:/ipfs/QmbCNYSkhscoL6zPgwcYXPCyUUJEJGrNH8zk6dGH4sUgGv"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"Depot.sol": "Depot"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"Depot.sol": {
						"keccak256": "0xd534904f559e37ce943cc0d5382bac29594c8a34cb85e09f37e8b88e0f5c81f8",
						"urls": [
							"bzz-raw://844eb09862d463f110a4fac5a6c5e2aaa97f3846a41dd499f49f8abaa94530aa",
							"dweb:/ipfs/QmbCNYSkhscoL6zPgwcYXPCyUUJEJGrNH8zk6dGH4sUgGv"
						]
					}
				},
				"version": 1
			}
		},
		"EtherCollateral": {
			"bytecode": "60806040819052630241ebdb60e61b815273__$09231a05ed34b6851f1018822ecfa0dcb8$__9063907af6c09060849060209060048186803b1580156200004557600080fd5b505af41580156200005a573d6000803e3d6000fd5b505050506040513d60208110156200007157600080fd5b5051607d0260075560408051630241ebdb60e61b8152905160649173__$09231a05ed34b6851f1018822ecfa0dcb8$__9163907af6c091600480820192602092909190829003018186803b158015620000c957600080fd5b505af4158015620000de573d6000803e3d6000fd5b505050506040513d6020811015620000f557600080fd5b5051600502816200010257fe5b04600855620001266301e133806008546200042f60201b620021111790919060201c565b6009556103e873__$09231a05ed34b6851f1018822ecfa0dcb8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156200017157600080fd5b505af415801562000186573d6000803e3d6000fd5b505050506040513d60208110156200019d57600080fd5b505160050281620001aa57fe5b04600a5573__$09231a05ed34b6851f1018822ecfa0dcb8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f357600080fd5b505af415801562000208573d6000803e3d6000fd5b505050506040513d60208110156200021f57600080fd5b505161138802600b5560408051630241ebdb60e61b8152905173__$09231a05ed34b6851f1018822ecfa0dcb8$__9163907af6c0916004808301926020929190829003018186803b1580156200027457600080fd5b505af415801562000289573d6000803e3d6000fd5b505050506040513d6020811015620002a057600080fd5b5051600c556032600d55600e805460ff19169055348015620002c157600080fd5b50604051620033343803806200333483398181016040526040811015620002e757600080fd5b50805160209091015180826001600160a01b0381166200034e576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b0316620003f9576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6001600455600580546001600160a01b0319166001600160a01b039290921691909117905550504262794a0001600f556200049b565b600080821162000486576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816200049257fe5b04949350505050565b612e8980620004ab6000396000f3fe6080604052600436106102725760003560e01c80637cc1f8671161014f578063ab6a34fa116100c1578063e220a8111161007a578063e220a8111461090a578063e3c1e58c14610943578063e40108ed14610958578063e5829d201461096d578063eea8f5da14610997578063f53dfb84146109ac57610272565b8063ab6a34fa146107ff578063b410a03414610875578063bb8c6d6c1461088a578063cf09b4ae146108b6578063d05951a0146108cb578063dcaf9c44146108f557610272565b80638fdc8f3b116101135780638fdc8f3b146106cd57806391b4ded9146106f75780639f7d56881461070c578063a1c5158614610721578063a2e17342146107a5578063a76cdfa5146107d557610272565b80637cc1f867146105b5578063899ffef41461063157806389c937de146106465780638c4638691461067f5780638da5cb5b146106b857610272565b80634f069f66116101e85780635d1a2229116101ac5780635d1a22291461051a5780635f84f302146105445780636b2319381461056e578063741853601461057657806379ba50971461058b5780637c3a00fd146105a057610272565b80634f069f661461048757806350e3b2e7146104b157806353a47bb7146104db57806357b21920146104f05780635c975abb1461050557610272565b806323aa7f0f1161023a57806323aa7f0f1461036357806327cff2e5146103785780632af64bd3146103b15780632f2bf15b146103da578063361e20861461045d5780634189bb491461047257610272565b806304f3bcec14610277578063089f7fb4146102a85780631474b279146102ed5780631627540c1461030257806316c38b3c14610337575b600080fd5b34801561028357600080fd5b5061028c6109d6565b604080516001600160a01b039092168252519081900360200190f35b3480156102b457600080fd5b506102db600480360360208110156102cb57600080fd5b50356001600160a01b03166109e5565b60408051918252519081900360200190f35b3480156102f957600080fd5b506102db6109f7565b34801561030e57600080fd5b506103356004803603602081101561032557600080fd5b50356001600160a01b03166109fd565b005b34801561034357600080fd5b506103356004803603602081101561035a57600080fd5b50351515610a59565b34801561036f57600080fd5b506102db610ad3565b34801561038457600080fd5b506102db6004803603604081101561039b57600080fd5b506001600160a01b038135169060200135610ad9565b3480156103bd57600080fd5b506103c6610b02565b604080519115158252519081900360200190f35b3480156103e657600080fd5b5061040d600480360360208110156103fd57600080fd5b50356001600160a01b0316610c0d565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610449578181015183820152602001610431565b505050509050019250505060405180910390f35b34801561046957600080fd5b506102db610dcb565b34801561047e57600080fd5b506102db610dd1565b34801561049357600080fd5b50610335600480360360208110156104aa57600080fd5b5035610dd7565b3480156104bd57600080fd5b50610335600480360360208110156104d457600080fd5b5035610e1a565b3480156104e757600080fd5b5061028c610e5d565b3480156104fc57600080fd5b506102db610e6c565b34801561051157600080fd5b506103c6610e72565b34801561052657600080fd5b506103356004803603602081101561053d57600080fd5b5035610e7b565b34801561055057600080fd5b506103356004803603602081101561056757600080fd5b5035610f00565b6102db61104c565b34801561058257600080fd5b506103356114e2565b34801561059757600080fd5b506103356116aa565b3480156105ac57600080fd5b506102db611766565b3480156105c157600080fd5b506105ca61176c565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e0880152610100870152610120860152610140850152610160840152151561018083015251908190036101a00190f35b34801561063d57600080fd5b5061040d6117d7565b34801561065257600080fd5b506102db6004803603604081101561066957600080fd5b506001600160a01b0381351690602001356118be565b34801561068b57600080fd5b506102db600480360360408110156106a257600080fd5b506001600160a01b0381351690602001356118f8565b3480156106c457600080fd5b5061028c611917565b3480156106d957600080fd5b506102db600480360360208110156106f057600080fd5b5035611926565b34801561070357600080fd5b506102db611940565b34801561071857600080fd5b506102db611946565b34801561072d57600080fd5b5061075a6004803603604081101561074457600080fd5b506001600160a01b03813516906020013561194c565b604080516001600160a01b0390991689526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b3480156107b157600080fd5b506102db600480360360408110156107c857600080fd5b50803590602001356119d3565b3480156107e157600080fd5b50610335600480360360208110156107f857600080fd5b5035611a01565b34801561080b57600080fd5b506108386004803603604081101561082257600080fd5b506001600160a01b038135169060200135611a44565b604080516001600160a01b0390971687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b34801561088157600080fd5b506102db611a9f565b34801561089657600080fd5b50610335600480360360208110156108ad57600080fd5b50351515611ac4565b3480156108c257600080fd5b506102db611b6e565b3480156108d757600080fd5b50610335600480360360208110156108ee57600080fd5b5035611b74565b34801561090157600080fd5b506102db611caf565b34801561091657600080fd5b506103356004803603604081101561092d57600080fd5b506001600160a01b038135169060200135611cb5565b34801561094f57600080fd5b506103c6611e8e565b34801561096457600080fd5b506102db611e97565b34801561097957600080fd5b506103356004803603602081101561099057600080fd5b5035611e9d565b3480156109a357600080fd5b506102db611f71565b3480156109b857600080fd5b506102db600480360360208110156109cf57600080fd5b5035611f77565b6005546001600160a01b031681565b60146020526000908152604090205481565b600d5481565b610a05611f9a565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610a61611f9a565b60035460ff1615158115151415610a7757610ad0565b6003805460ff1916821515179081905560ff1615610a9457426002555b6003546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60115481565b6000610ae3612bda565b610aed8484611fe5565b9050610af8816120f6565b9150505b92915050565b60006060610b0e6117d7565b905060005b8151811015610c03576000828281518110610b2a57fe5b6020908102919091018101516000818152600683526040908190205460055482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610b9257600080fd5b505afa158015610ba6573d6000803e3d6000fd5b505050506040513d6020811015610bbc57600080fd5b50516001600160a01b0316141580610be957506000818152600660205260409020546001600160a01b0316155b15610bfa5760009350505050610c0a565b50600101610b13565b5060019150505b90565b6001600160a01b03811660009081526013602090815260408083208054825181850281018501909352808352606094859484015b82821015610cb25760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a08301529083529092019101610c41565b50505050905060608151604051908082528060200260200182016040528015610ce5578160200160208202803883390190505b5090506000805b8351811015610d5357838181518110610d0157fe5b602002602001015160a0015160001415610d4b57838181518110610d2157fe5b602002602001015160800151838381518110610d3957fe5b60209081029190910101526001909101905b600101610cec565b50606081604051908082528060200260200182016040528015610d80578160200160208202803883390190505b50905060005b82811015610dc157838181518110610d9a57fe5b6020026020010151828281518110610dae57fe5b6020908102919091010152600101610d86565b5095945050505050565b600a5481565b60125481565b610ddf611f9a565b600b8190556040805182815290517fbb72ce8874020b3b98429d653df927cac6618ac1932384b1446bf04bf9a1b7e59181900360200190a150565b610e22611f9a565b600c8190556040805182815290517f8640e538c9503bd8d11554fc26280efe867c12195c0eee0aeede5f4a8d5288399181900360200190a150565b6001546001600160a01b031681565b60105481565b60035460ff1681565b610e83611f9a565b6103e8808210610ec45760405162461bcd60e51b8152600401808060200182810382526025815260200180612c8d6025913960400191505060405180910390fd5b600d8290556040805183815290517f59822dc2d999f6f0618e8b0db5cfc8496084574c769b09609d9b5f4394a310b69181900360200190a15050565b610f08611f9a565b6301e133808111610f4a5760405162461bcd60e51b8152600401808060200182810382526037815260200180612e1e6037913960400191505060405180910390fd5b73__$09231a05ed34b6851f1018822ecfa0dcb8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8e57600080fd5b505af4158015610fa2573d6000803e3d6000fd5b505050506040513d6020811015610fb857600080fd5b5051811115610ff85760405162461bcd60e51b8152600401808060200182810382526025815260200180612df96025913960400191505060405180910390fd5b6008819055611011816301e1338063ffffffff61211116565b60095560085460408051918252517fa90e14be5aa57b910aa6dc16c31ff1b5cda380ae25a793b0d3f74df6131a7d749181900360200190a150565b60035460009060ff16156110915760405162461bcd60e51b815260040180806020018281038252603c815260200180612dbd603c913960400191505060405180910390fd5b60048054600101908190556110a461217b565b6001600160a01b0316632528f0fe6040518163ffffffff1660e01b81526004018080630e08aa8960e31b815250602001905060206040518083038186803b1580156110ee57600080fd5b505afa158015611102573d6000803e3d6000fd5b505050506040513d602081101561111857600080fd5b50511561116c576040805162461bcd60e51b815260206004820152601f60248201527f426c6f636b65642061732070455448207261746520697320696e76616c696400604482015290519081900360640190fd5b611174612196565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156111ac57600080fd5b505afa1580156111c0573d6000803e3d6000fd5b50505050600c543410156112055760405162461bcd60e51b815260040180806020018281038252603e815260200180612d7f603e913960400191505060405180910390fd5b600e5460ff161561125d576040805162461bcd60e51b815260206004820152601e60248201527f4c6f616e7320617265206e6f77206265696e67206c6971756964617465640000604482015290519081900360640190fd5b600d5433600090815260136020526040902054106112ac5760405162461bcd60e51b8152600401808060200182810382526022815260200180612cea6022913960400191505060405180910390fd5b60006112b734611926565b9050600b546112d1826010546121b090919063ffffffff16565b1061130d5760405162461bcd60e51b8152600401808060200182810382526023815260200180612d0c6023913960400191505060405180910390fd5b61131561220a565b925061131f612bda565b506040805160c081018252338082523460208084019182528385018681524260608601908152608086018a8152600060a0880181815296815260138552978820805460018082018355918a5294909820875160069095020180546001600160a01b0319166001600160a01b0390951694909417845593519683019690965551600282015593516003850155516004840155516005909201919091556010546113c790836121b0565b6010556113d2612242565b6001600160a01b031663867904b433846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561143157600080fd5b505af1158015611445573d6000803e3d6000fd5b5050604080518781526020810186905281513394507f58d170de3a12438e22d81380f353b2fcac86f0a708a1374deaa5c6322a95992f93509081900390910190a2505060045481146114de576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b5090565b60606114ec6117d7565b905060005b81518110156116a657600082828151811061150857fe5b602090810291909101810151600554604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b838110156115be5781810151838201526020016115a6565b50505050905090810190601f1680156115eb5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561160957600080fd5b505afa15801561161d573d6000803e3d6000fd5b505050506040513d602081101561163357600080fd5b505160008381526006602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a150506001016114f1565b5050565b6001546001600160a01b031633146116f35760405162461bcd60e51b8152600401808060200182810382526035815260200180612c1a6035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60085481565b60075460008080808080808080808080611784611a9f565b9b506008549a506009549950600a549850600b549750600c549650601054955060115494506012549350479250600f549150600e60009054906101000a900460ff169050909192939495969798999a9b9c565b60408051600580825260c082019092526060916020820160a0803883390190505090506b53797374656d53746174757360a01b8160008151811061181757fe5b602002602001018181525050680a0f2dce8d0e08aa8960bb1b8160018151811061183d57fe5b60200260200101818152505068141e5b9d1a1c1554d160ba1b8160028151811061186357fe5b6020026020010181815250506411195c1bdd60da1b8160038151811061188557fe5b6020026020010181815250506c45786368616e6765526174657360981b816004815181106118af57fe5b60200260200101818152505090565b60006118c8612bda565b6118d28484611fe5565b905060006118df82612259565b90506118ef8260400151826119d3565b95945050505050565b6000611902612bda565b61190c8484611fe5565b9050610af881612259565b6000546001600160a01b031681565b6000610afc611933611a9f565b839063ffffffff61229c16565b60025481565b600f5481565b600080600080600080600080611960612bda565b61196a8b8b611fe5565b8051602082015160408301516060840151608085015160a0860151949e50929c50909a5098509650945090506119a8876119a383612259565b6119d3565b92506119c36119b6826120f6565b849063ffffffff6121b016565b9150509295985092959890939650565b60006119fa6119ed836009546122c690919063ffffffff16565b849063ffffffff61231f16565b9392505050565b611a09611f9a565b600a8190556040805182815290517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c9181900360200190a150565b60136020528160005260406000208181548110611a5d57fe5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501546001600160a01b03909416965091945092909186565b6000611abf60075468056bc75e2d6310000061233490919063ffffffff16565b905090565b611acc611f9a565b600f544211611b22576040805162461bcd60e51b815260206004820152601b60248201527f4265666f7265206c69717569646174696f6e20646561646c696e650000000000604482015290519081900360640190fd5b600e805460ff191682151517908190556040805160ff90921615158252517faa52cf15c1fbb778214c66f64726e141551158858d1c06ca0392c6c5869c8567916020908290030190a150565b600c5481565b6004805460010190819055611b8761217b565b6001600160a01b0316632528f0fe6040518163ffffffff1660e01b81526004018080630e08aa8960e31b815250602001905060206040518083038186803b158015611bd157600080fd5b505afa158015611be5573d6000803e3d6000fd5b505050506040513d6020811015611bfb57600080fd5b505115611c4f576040805162461bcd60e51b815260206004820152601f60248201527f426c6f636b65642061732070455448207261746520697320696e76616c696400604482015290519081900360640190fd5b611c593383612349565b60045481146116a6576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60075481565b6004805460010190819055611cc861217b565b6001600160a01b0316632528f0fe6040518163ffffffff1660e01b81526004018080630e08aa8960e31b815250602001905060206040518083038186803b158015611d1257600080fd5b505afa158015611d26573d6000803e3d6000fd5b505050506040513d6020811015611d3c57600080fd5b505115611d90576040805162461bcd60e51b815260206004820152601f60248201527f426c6f636b65642061732070455448207261746520697320696e76616c696400604482015290519081900360640190fd5b600e5460ff16611de7576040805162461bcd60e51b815260206004820152601760248201527f4c69717569646174696f6e206973206e6f74206f70656e000000000000000000604482015290519081900360640190fd5b611df18383612349565b6040805183815233602082015281516001600160a01b038616927fde21b2a43b0a2c2109c049fb1e4bb8653fd67d0ffd74fdcb662db381f1eeab38928290030190a26004548114611e89576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b505050565b600e5460ff1681565b60095481565b611ea5611f9a565b683635c9adc5dea00000811115611eee576040805162461bcd60e51b81526020600482015260086024820152670a8dede40d0d2ced60c31b604482015290519081900360640190fd5b68056bc75e2d63100000811015611f36576040805162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b604482015290519081900360640190fd5b60078190556040805182815290517ffb0ebe8c7316e6a251494c38876d13d9a3a029273fce7964c12aa2ce078695309181900360200190a150565b600b5481565b6000610afc61193368056bc75e2d6310000060075461233490919063ffffffff16565b6000546001600160a01b03163314611fe35760405162461bcd60e51b815260040180806020018281038252602f815260200180612d2f602f913960400191505060405180910390fd5b565b611fed612bda565b6001600160a01b0383166000908152601360209081526040808320805482518185028101850190935280835260609492939192909184015b828210156120965760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a08301529083529092019101612025565b509293506000925050505b81518110156120ee57838282815181106120b757fe5b60200260200101516080015114156120e6578181815181106120d557fe5b602002602001015192505050610afc565b6001016120a1565b505092915050565b6000610afc600a54836040015161231f90919063ffffffff16565b6000808211612167576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161217257fe5b04949350505050565b6000611abf6c45786368616e6765526174657360981b61296c565b6000611abf6b53797374656d53746174757360a01b61296c565b6000828201838110156119fa576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60125460009061222190600163ffffffff6121b016565b60125560115461223890600163ffffffff6121b016565b6011819055905090565b6000611abf680a0f2dce8d0e08aa8960bb1b61296c565b60a081015160009015158061228357606083015161227e90429063ffffffff612a5016565b6119fa565b606083015160a08401516119fa9163ffffffff612a5016565b6000670de0b6b3a76400006122b7848463ffffffff6122c616565b816122be57fe5b049392505050565b6000826122d557506000610afc565b828202828482816122e257fe5b04146119fa5760405162461bcd60e51b8152600401808060200182810382526021815260200180612d5e6021913960400191505060405180910390fd5b60006119fa8383670de0b6b3a7640000612aad565b60006119fa8383670de0b6b3a7640000612aea565b612351612196565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561238957600080fd5b505afa15801561239d573d6000803e3d6000fd5b505050506123a9612bda565b6123b38383611fe5565b90506000816080015111612404576040805162461bcd60e51b8152602060048201526013602482015272131bd85b88191bd95cc81b9bdd08195e1a5cdd606a1b604482015290519081900360640190fd5b60a081015115612451576040805162461bcd60e51b8152602060048201526013602482015272131bd85b88185b1c9958591e4818db1bdcd959606a1b604482015290519081900360640190fd5b806040015161245e612242565b6001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156124b357600080fd5b505afa1580156124c7573d6000803e3d6000fd5b505050506040513d60208110156124dd57600080fd5b5051101561251c5760405162461bcd60e51b815260040180806020018281038252603e815260200180612c4f603e913960400191505060405180910390fd5b61252581612b1c565b604081015160105461253c9163ffffffff612a5016565b6010556040810151600090612554906119a384612259565b90506000612561836120f6565b90506000612575838363ffffffff6121b016565b905061257f612242565b6001600160a01b0316639dc29fac3386604001516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156125e257600080fd5b505af11580156125f6573d6000803e3d6000fd5b50505050612602612bb0565b6001600160a01b03166334d2e0f2826040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561264557600080fd5b505afa158015612659573d6000803e3d6000fd5b505050506040513d602081101561266f57600080fd5b5051612679612bc3565b6001600160a01b03166370a0823161268f612bb0565b6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156126d557600080fd5b505afa1580156126e9573d6000803e3d6000fd5b505050506040513d60208110156126ff57600080fd5b5051101561273e5760405162461bcd60e51b8152600401808060200182810382526038815260200180612cb26038913960400191505060405180910390fd5b612746612bb0565b6001600160a01b03166376569fbf826040518263ffffffff1660e01b81526004016020604051808303818588803b15801561278057600080fd5b505af1158015612794573d6000803e3d6000fd5b50505050506040513d60208110156127ab57600080fd5b506127b69050612bc3565b6001600160a01b031663a9059cbb73feefeefeefeefeefeefeefeefeefeefeefeefeef6127e1612bc3565b6001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561283657600080fd5b505afa15801561284a573d6000803e3d6000fd5b505050506040513d602081101561286057600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b03909316600484015260248301919091525160448083019260209291908290030181600087803b1580156128b157600080fd5b505af11580156128c5573d6000803e3d6000fd5b505050506040513d60208110156128db57600080fd5b5050602084015133906108fc906128f8908463ffffffff612a5016565b6040518115909202916000818181858888f19350505050158015612920573d6000803e3d6000fd5b50604080518681526020810183905281516001600160a01b038916927f3cc9f5d298758bad94536f27fa6a3033c2793e0a387a2d78e72550a3b8dacf1e928290030190a2505050505050565b600081815260066020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b03169081612a495760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a0e5781810151838201526020016129f6565b50505050905090810190601f168015612a3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b600082821115612aa7576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600080600a8304612ac4868663ffffffff6122c616565b81612acb57fe5b0490506005600a825b0610612ade57600a015b600a9004949350505050565b600080612b1084612b0487600a870263ffffffff6122c616565b9063ffffffff61211116565b90506005600a82612ad4565b80516001600160a01b03166000908152601360205260408120905b8154811015612b94578260800151828281548110612b5157fe5b9060005260206000209060060201600401541415612b8c5742828281548110612b7657fe5b9060005260206000209060060201600501819055505b600101612b37565b50601254612ba990600163ffffffff612a5016565b6012555050565b6000611abf6411195c1bdd60da1b61296c565b6000611abf68141e5b9d1a1c1554d160ba1b61296c565b6040518060c0016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152509056fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970596f7520646f206e6f742068617665207468652072657175697265642050796e74682062616c616e636520746f20636c6f73652074686973206c6f616e2e4f776e65722063616e6e6f742073657420686967686572207468616e20484152445f4341505468652070555344204465706f7420646f6573206e6f74206861766520656e6f756768207055534420746f2062757920666f72206665657345616368206163636f756e74206973206c696d74656420746f203530206c6f616e734c6f616e20416d6f756e7420657863656564732074686520737570706c79206361702e4f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774e6f7420656e6f7567682045544820746f206372656174652074686973206c6f616e2e20506c656173652073656520746865206d696e4c6f616e53697a655468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e747261637420697320706175736564496e7465726573742063616e6e6f74206265206d6f7265207468616e203130302520415052496e74657265737420726174652063616e6e6f74206265206c657373207468617420746865205345434f4e44535f494e5f415f59454152a265627a7a72315820ca69e0def0f0aac15a18571f1c7f99bb5a2c2f337d7f9d495061f4432d9b624d64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanLimit",
							"type": "uint256"
						}
					],
					"name": "AccountLoanLimitUpdated",
					"type": "event",
					"signature": "0x59822dc2d999f6f0618e8b0db5cfc8496084574c769b09609d9b5f4394a310b6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "ratio",
							"type": "uint256"
						}
					],
					"name": "CollateralizationRatioUpdated",
					"type": "event",
					"signature": "0xfb0ebe8c7316e6a251494c38876d13d9a3a029273fce7964c12aa2ce07869530"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "interestRate",
							"type": "uint256"
						}
					],
					"name": "InterestRateUpdated",
					"type": "event",
					"signature": "0xa90e14be5aa57b910aa6dc16c31ff1b5cda380ae25a793b0d3f74df6131a7d74"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event",
					"signature": "0xe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueLimit",
							"type": "uint256"
						}
					],
					"name": "IssueLimitUpdated",
					"type": "event",
					"signature": "0xbb72ce8874020b3b98429d653df927cac6618ac1932384b1446bf04bf9a1b7e5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "feesPaid",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event",
					"signature": "0x3cc9f5d298758bad94536f27fa6a3033c2793e0a387a2d78e72550a3b8dacf1e"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event",
					"signature": "0x58d170de3a12438e22d81380f353b2fcac86f0a708a1374deaa5c6322a95992f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						}
					],
					"name": "LoanLiquidated",
					"type": "event",
					"signature": "0xde21b2a43b0a2c2109c049fb1e4bb8653fd67d0ffd74fdcb662db381f1eeab38"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "loanLiquidationOpen",
							"type": "bool"
						}
					],
					"name": "LoanLiquidationOpenUpdated",
					"type": "event",
					"signature": "0xaa52cf15c1fbb778214c66f64726e141551158858d1c06ca0392c6c5869c8567"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minLoanSize",
							"type": "uint256"
						}
					],
					"name": "MinLoanSizeUpdated",
					"type": "event",
					"signature": "0x8640e538c9503bd8d11554fc26280efe867c12195c0eee0aeede5f4a8d528839"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event",
					"signature": "0x8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountLoanLimit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1474b279"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "accountOpenLoanCounter",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x089f7fb4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountsPynthLoans",
					"outputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateralAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "loanAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timeCreated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timeClosed",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xab6a34fa"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_loanAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_seconds",
							"type": "uint256"
						}
					],
					"name": "accruedInterestOnLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "interestAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa2e17342"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "calculateMintingFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x27cff2e5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						}
					],
					"name": "closeLoan",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd05951a0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "loanAmount",
							"type": "uint256"
						}
					],
					"name": "collateralAmountForLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf53dfb84"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralizationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdcaf9c44"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "currentInterestOnLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x89c937de"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getContractInfo",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "_collateralizationRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_issuanceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_interestRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_interestPerSecond",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_issueLimit",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minLoanSize",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_totalIssuedPynths",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_totalLoansCreated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_totalOpenLoanCount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_ethBalance",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_liquidationDeadline",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "_loanLiquidationOpen",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7cc1f867"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "getLoan",
					"outputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateralAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "loanAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timeCreated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timeClosed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "interest",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalFees",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa1c51586"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "interestPerSecond",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe40108ed"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "interestRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7c3a00fd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb410a034"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x361e2086"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueLimit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeea8f5da"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x91b4ded9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_loanCreatorsAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "liquidateUnclosedLoan",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe220a811"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationDeadline",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9f7d5688"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateralAmount",
							"type": "uint256"
						}
					],
					"name": "loanAmountFromCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8fdc8f3b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "loanLifeSpan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "loanLifeSpanResult",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8c463869"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "loanLiquidationOpen",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe3c1e58c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minLoanSize",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcf09b4ae"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "openLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0x6b231938"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						}
					],
					"name": "openLoanIDsByAccount",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2f2bf15b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5c975abb"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_loanLimit",
							"type": "uint256"
						}
					],
					"name": "setAccountLoanLimit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5d1a2229"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "ratio",
							"type": "uint256"
						}
					],
					"name": "setCollateralizationRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe5829d20"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_interestRate",
							"type": "uint256"
						}
					],
					"name": "setInterestRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5f84f302"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa76cdfa5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueLimit",
							"type": "uint256"
						}
					],
					"name": "setIssueLimit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4f069f66"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_loanLiquidationOpen",
							"type": "bool"
						}
					],
					"name": "setLoanLiquidationOpen",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbb8c6d6c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minLoanSize",
							"type": "uint256"
						}
					],
					"name": "setMinLoanSize",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x50e3b2e7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x16c38b3c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalIssuedPynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x57b21920"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLoansCreated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x23aa7f0f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalOpenLoanCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4189bb49"
				}
			],
			"source": {
				"keccak256": "0xc6348d51e3290450d0e4ebcf389276f4281355edefc7c133998802337a8d392f",
				"urls": [
					"bzz-raw://3b26126d943ba4a4f459231839cde8958975a80c1458cf98c0c03e5bc4be6e9f",
					"dweb:/ipfs/QmXDNTBb9BzQUK6FswKpp6S8xCRfAanXrF96X7uqrg68PQ"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EtherCollateral.sol": "EtherCollateral"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EtherCollateral.sol": {
						"keccak256": "0xc6348d51e3290450d0e4ebcf389276f4281355edefc7c133998802337a8d392f",
						"urls": [
							"bzz-raw://3b26126d943ba4a4f459231839cde8958975a80c1458cf98c0c03e5bc4be6e9f",
							"dweb:/ipfs/QmXDNTBb9BzQUK6FswKpp6S8xCRfAanXrF96X7uqrg68PQ"
						]
					}
				},
				"version": 1
			}
		},
		"EtherCollateralpUSD": {
			"bytecode": "60806040819052630241ebdb60e61b815273__$17dde3ba6158fad0cde918737687de0a85$__9063907af6c09060849060209060048186803b1580156200004557600080fd5b505af41580156200005a573d6000803e3d6000fd5b505050506040513d60208110156200007157600080fd5b505160960260075560408051630241ebdb60e61b8152905160649173__$17dde3ba6158fad0cde918737687de0a85$__9163907af6c091600480820192602092909190829003018186803b158015620000c957600080fd5b505af4158015620000de573d6000803e3d6000fd5b505050506040513d6020811015620000f557600080fd5b5051600502816200010257fe5b04600855620001266301e133806008546200053e60201b62003f8b1790919060201c565b6009556103e873__$17dde3ba6158fad0cde918737687de0a85$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156200017157600080fd5b505af415801562000186573d6000803e3d6000fd5b505050506040513d60208110156200019d57600080fd5b505160050281620001aa57fe5b04600a5573__$17dde3ba6158fad0cde918737687de0a85$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015620001f357600080fd5b505af415801562000208573d6000803e3d6000fd5b505050506040513d60208110156200021f57600080fd5b50516298968002600b5560408051630241ebdb60e61b8152905173__$17dde3ba6158fad0cde918737687de0a85$__9163907af6c0916004808301926020929190829003018186803b1580156200027557600080fd5b505af41580156200028a573d6000803e3d6000fd5b505050506040513d6020811015620002a157600080fd5b5051600c556032600d55600e805460ff1916905560408051630241ebdb60e61b8152905160649173__$17dde3ba6158fad0cde918737687de0a85$__9163907af6c091600480820192602092909190829003018186803b1580156200030557600080fd5b505af41580156200031a573d6000803e3d6000fd5b505050506040513d60208110156200033157600080fd5b5051609602816200033e57fe5b04601055600a73__$17dde3ba6158fad0cde918737687de0a85$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038957600080fd5b505af41580156200039e573d6000803e3d6000fd5b505050506040513d6020811015620003b557600080fd5b505181620003bf57fe5b04601155348015620003d057600080fd5b50604051620050e2380380620050e283398181016040526040811015620003f657600080fd5b50805160209091015180826001600160a01b0381166200045d576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1506000546001600160a01b031662000508576040805162461bcd60e51b815260206004820152601160248201527013dddb995c881b5d5cdd081899481cd95d607a1b604482015290519081900360640190fd5b6001600455600580546001600160a01b0319166001600160a01b039290921691909117905550504262794a0001600f55620005aa565b600080821162000595576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481620005a157fe5b04949350505050565b614b2880620005ba6000396000f3fe60806040526004361061036b5760003560e01c8063767a7b05116101c6578063a5d5db0c116100f7578063e220a81111610095578063e5829d201161006f578063e5829d2014610c64578063eea8f5da14610c8e578063f45f08fb14610ca3578063f53dfb8414610cdc5761036b565b8063e220a81114610c01578063e3c1e58c14610c3a578063e40108ed14610c4f5761036b565b8063b410a034116100d1578063b410a03414610b81578063bb8c6d6c14610b96578063d05951a014610bc2578063dcaf9c4414610bec5761036b565b8063a5d5db0c14610a91578063a76cdfa514610abd578063ab6a34fa14610ae75761036b565b80638da5cb5b11610164578063946ce8cd1161013e578063946ce8cd1461099e5780639f7d5688146109c8578063a1c51586146109dd578063a2e1734214610a615761036b565b80638da5cb5b1461094a5780638fdc8f3b1461095f57806391b4ded9146109895761036b565b80637cc1f867116101a05780637cc1f8671461084157806380a5d3d8146108bd578063899ffef4146108fc57806389c937de146109115761036b565b8063767a7b05146107e757806379ba5097146108175780637c3a00fd1461082c5761036b565b806339735e37116102a057806357b219201161023e5780635f84f302116102185780635f84f3021461074157806360655ba71461076b578063675969be146107bd57806374185360146107d25761036b565b806357b21920146106ed5780635c975abb146107025780635d1a2229146107175761036b565b80634f069f661161027a5780634f069f66146106585780634f11815c1461068257806353a47bb7146106bb57806354e3e70d146106d05761036b565b806339735e37146105da5780634189bb491461060a578063462b97251461061f5761036b565b806323aa7f0f1161030d5780632af64bd3116102e75780632af64bd3146104da5780632f2bf15b14610503578063361e208614610586578063384585711461059b5761036b565b806323aa7f0f1461049b57806323f5589a146104b057806324bbab8b146104c55761036b565b80631627540c116103495780631627540c146103fb57806316c38b3c146104305780631775765f1461045c57806317da255e146104715761036b565b806304f3bcec14610370578063089f7fb4146103a15780631474b279146103e6575b600080fd5b34801561037c57600080fd5b50610385610d06565b604080516001600160a01b039092168252519081900360200190f35b3480156103ad57600080fd5b506103d4600480360360208110156103c457600080fd5b50356001600160a01b0316610d15565b60408051918252519081900360200190f35b3480156103f257600080fd5b506103d4610d27565b34801561040757600080fd5b5061042e6004803603602081101561041e57600080fd5b50356001600160a01b0316610d2d565b005b34801561043c57600080fd5b5061042e6004803603602081101561045357600080fd5b50351515610d89565b34801561046857600080fd5b506103d4610e03565b34801561047d57600080fd5b5061042e6004803603602081101561049457600080fd5b5035610e09565b3480156104a757600080fd5b506103d4610e4c565b3480156104bc57600080fd5b506103d4610e52565b3480156104d157600080fd5b506103d4610e58565b3480156104e657600080fd5b506104ef610e62565b604080519115158252519081900360200190f35b34801561050f57600080fd5b506105366004803603602081101561052657600080fd5b50356001600160a01b0316610f6d565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561057257818101518382015260200161055a565b505050509050019250505060405180910390f35b34801561059257600080fd5b506103d461115d565b3480156105a757600080fd5b5061042e600480360360608110156105be57600080fd5b506001600160a01b038135169060208101359060400135611163565b3480156105e657600080fd5b506103d4600480360360408110156105fd57600080fd5b508035906020013561173e565b34801561061657600080fd5b506103d4611831565b34801561062b57600080fd5b506103d46004803603604081101561064257600080fd5b506001600160a01b038135169060200135611837565b34801561066457600080fd5b5061042e6004803603602081101561067b57600080fd5b5035611857565b34801561068e57600080fd5b506103d4600480360360408110156106a557600080fd5b506001600160a01b03813516906020013561189a565b3480156106c757600080fd5b506103856118c1565b6103d4600480360360208110156106e657600080fd5b50356118d0565b3480156106f957600080fd5b506103d4611f13565b34801561070e57600080fd5b506104ef611f19565b34801561072357600080fd5b5061042e6004803603602081101561073a57600080fd5b5035611f22565b34801561074d57600080fd5b5061042e6004803603602081101561076457600080fd5b5035611fa5565b34801561077757600080fd5b506107a46004803603604081101561078e57600080fd5b506001600160a01b0381351690602001356120f1565b6040805192835260208301919091528051918290030190f35b3480156107c957600080fd5b506103d4612161565b3480156107de57600080fd5b5061042e612167565b3480156107f357600080fd5b5061042e6004803603604081101561080a57600080fd5b508035906020013561232f565b34801561082357600080fd5b5061042e612687565b34801561083857600080fd5b506103d4612743565b34801561084d57600080fd5b50610856612749565b604080519d8e5260208e019c909c528c8c019a909a5260608c019890985260808b019690965260a08a019490945260c089019290925260e0880152610100870152610120860152610140850152610160840152151561018083015251908190036101a00190f35b3480156108c957600080fd5b5061042e600480360360608110156108e057600080fd5b506001600160a01b0381351690602081013590604001356127b4565b34801561090857600080fd5b50610536612b15565b34801561091d57600080fd5b506103d46004803603604081101561093457600080fd5b506001600160a01b038135169060200135612bd8565b34801561095657600080fd5b50610385612c3a565b34801561096b57600080fd5b506103d46004803603602081101561098257600080fd5b5035612c49565b34801561099557600080fd5b506103d4612cef565b3480156109aa57600080fd5b5061042e600480360360208110156109c157600080fd5b5035612cf5565b3480156109d457600080fd5b506103d4612df2565b3480156109e957600080fd5b50610a1660048036036040811015610a0057600080fd5b506001600160a01b038135169060200135612df8565b604080516001600160a01b0390991689526020890197909752878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b348015610a6d57600080fd5b506103d460048036036040811015610a8457600080fd5b5080359060200135612e9f565b61042e60048036036040811015610aa757600080fd5b506001600160a01b038135169060200135612ecd565b348015610ac957600080fd5b5061042e60048036036020811015610ae057600080fd5b5035613093565b348015610af357600080fd5b50610b2060048036036040811015610b0a57600080fd5b506001600160a01b0381351690602001356130d6565b604080516001600160a01b03909b168b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015264ffffffffff1661012083015251908190036101400190f35b348015610b8d57600080fd5b506103d4613154565b348015610ba257600080fd5b5061042e60048036036020811015610bb957600080fd5b50351515613179565b348015610bce57600080fd5b5061042e60048036036020811015610be557600080fd5b5035613223565b348015610bf857600080fd5b506103d461333b565b348015610c0d57600080fd5b5061042e60048036036040811015610c2457600080fd5b506001600160a01b038135169060200135613341565b348015610c4657600080fd5b506104ef6134f2565b348015610c5b57600080fd5b506103d46134fb565b348015610c7057600080fd5b5061042e60048036036020811015610c8757600080fd5b5035613501565b348015610c9a57600080fd5b506103d46135d5565b348015610caf57600080fd5b506103d460048036036040811015610cc657600080fd5b506001600160a01b0381351690602001356135db565b348015610ce857600080fd5b506103d460048036036020811015610cff57600080fd5b5035613605565b6005546001600160a01b031681565b60166020526000908152604090205481565b600d5481565b610d356136b2565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b610d916136b2565b60035460ff1615158115151415610da757610e00565b6003805460ff1916821515179081905560ff1615610dc457426002555b6003546040805160ff90921615158252517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec59181900360200190a15b50565b60105481565b610e116136b2565b600c8190556040805182815290517f9f45df4d81199bea8f20e88707b6f7d36b8e8f20a7def01c113746f67557ffb69181900360200190a150565b60135481565b60115481565b6208aa8960eb1b81565b60006060610e6e612b15565b905060005b8151811015610f63576000828281518110610e8a57fe5b6020908102919091018101516000818152600683526040908190205460055482516321f8a72160e01b81526004810185905292519395506001600160a01b03918216949116926321f8a721926024808201939291829003018186803b158015610ef257600080fd5b505afa158015610f06573d6000803e3d6000fd5b505050506040513d6020811015610f1c57600080fd5b50516001600160a01b0316141580610f4957506000818152600660205260409020546001600160a01b0316155b15610f5a5760009350505050610f6a565b50600101610e73565b5060019150505b90565b6001600160a01b03811660009081526015602090815260408083208054825181850281018501909352808352606094859484015b828210156110445760008481526020908190206040805161014081018252600a860290920180546001600160a01b03168352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e084015260088101546101008401526009015464ffffffffff166101208301529083529092019101610fa1565b50505050905060608151604051908082528060200260200182016040528015611077578160200160208202803883390190505b5090506000805b83518110156110e55783818151811061109357fe5b602002602001015160c00151600014156110dd578381815181106110b357fe5b602002602001015160a001518383815181106110cb57fe5b60209081029190910101526001909101905b60010161107e565b50606081604051908082528060200260200182016040528015611112578160200160208202803883390190505b50905060005b828110156111535783818151811061112c57fe5b602002602001015182828151811061114057fe5b6020908102919091010152600101611118565b5095945050505050565b600a5481565b60048054600101908190556111766136fd565b6001600160a01b0316632528f0fe6208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156111bf57600080fd5b505afa1580156111d3573d6000803e3d6000fd5b505050506040513d60208110156111e957600080fd5b50511561122b576040805162461bcd60e51b815260206004820152601e602482015260008051602061492b833981519152604482015290519081900360640190fd5b611233613718565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b15801561126b57600080fd5b505afa15801561127f573d6000803e3d6000fd5b505050508161128c613732565b6001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156112e157600080fd5b505afa1580156112f5573d6000803e3d6000fd5b505050506040513d602081101561130b57600080fd5b5051101561135a576040805162461bcd60e51b81526020600482015260176024820152764e6f7420656e6f75676820705553442062616c616e636560481b604482015290519081900360640190fd5b611362614766565b61136c8585613749565b90506113778161388c565b600080600061138584613928565b92509250925060105483106113cb5760405162461bcd60e51b81526004018080602001828103825260288152602001806147ca6028913960400191505060405180910390fd5b60006114026113fc836113f08861010001518960400151613a1890919063ffffffff16565b9063ffffffff613a1816565b8461173e565b905060008782106114135787611415565b815b905061141f613732565b6001600160a01b0316639dc29fac33836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561147e57600080fd5b505af1158015611492573d6000803e3d6000fd5b5050505060008060006114c1846114b7888c6101000151613a1890919063ffffffff16565b8b60400151613a72565b509250925092506114d28383613aeb565b60006114dc6136fd565b6001600160a01b031663654a60ac631c1554d160e21b876208aa8960eb1b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561153c57600080fd5b505afa158015611550573d6000803e3d6000fd5b505050506040513d602081101561156657600080fd5b505160115460408051630241ebdb60e61b8152905192935060009261160b926115fe92909173__$17dde3ba6158fad0cde918737687de0a85$__9163907af6c0916004808301926020929190829003018186803b1580156115c657600080fd5b505af41580156115da573d6000803e3d6000fd5b505050506040513d60208110156115f057600080fd5b50519063ffffffff613a1816565b839063ffffffff613c0a16565b905061162f8b611628868e60400151613c3490919063ffffffff16565b8542613c91565b61164f8b61164a838e60200151613c3490919063ffffffff16565b613d71565b50604051339082156108fc029083906000818181858888f1935050505015801561167d573d6000803e3d6000fd5b508e6001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c58f33898560405180858152602001846001600160a01b03166001600160a01b0316815260200183815260200182815260200194505050505060405180910390a250505050505050505050506004548114611738576040805162461bcd60e51b815260206004820152601f6024820152600080516020614823833981519152604482015290519081900360640190fd5b50505050565b60008073__$17dde3ba6158fad0cde918737687de0a85$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561178557600080fd5b505af4158015611799573d6000803e3d6000fd5b505050506040513d60208110156117af57600080fd5b505160105490915060006117d96117cc868463ffffffff613e9616565b879063ffffffff613c3416565b90506000611812611805846117f960115488613a1890919063ffffffff16565b9063ffffffff613e9616565b859063ffffffff613c3416565b9050611824828263ffffffff613e9616565b9450505050505b92915050565b60145481565b6000611841614766565b61184b8484613749565b60600151949350505050565b61185f6136b2565b600b8190556040805182815290517fbb72ce8874020b3b98429d653df927cac6618ac1932384b1446bf04bf9a1b7e59181900360200190a150565b60006118a4614766565b6118ae8484613749565b90506118b981613ec0565b949350505050565b6001546001600160a01b031681565b60035460009060ff16156119155760405162461bcd60e51b815260040180806020018281038252603c815260200180614a14603c913960400191505060405180910390fd5b60048054600101908190556119286136fd565b6001600160a01b0316632528f0fe6208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561197157600080fd5b505afa158015611985573d6000803e3d6000fd5b505050506040513d602081101561199b57600080fd5b5051156119dd576040805162461bcd60e51b815260206004820152601e602482015260008051602061492b833981519152604482015290519081900360640190fd5b6119e5613718565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015611a1d57600080fd5b505afa158015611a31573d6000803e3d6000fd5b50505050600c54341015611a765760405162461bcd60e51b8152600401808060200182810382526048815260200180614aac6048913960600191505060405180910390fd5b600e5460ff1615611ace576040805162461bcd60e51b815260206004820152601e60248201527f4c6f616e7320617265206e6f77206265696e67206c6971756964617465640000604482015290519081900360640190fd5b600d543360009081526015602052604090205410611b1d5760405162461bcd60e51b81526004018080602001828103825260238152602001806149a16023913960400191505060405180910390fd5b6000611b2834612c49565b905080841115611b695760405162461bcd60e51b81526004018080602001828103825260278152602001806148db6027913960400191505060405180910390fd5b6000611b7485613f27565b90506000611b88868363ffffffff613c3416565b9050600b54611ba287601254613a1890919063ffffffff16565b1115611bdf5760405162461bcd60e51b815260040180806020018281038252602381526020018061497e6023913960400191505060405180910390fd5b611be7613f3e565b9450611bf1614766565b5060408051610140810182523381523460208201529081018790526060810183905242608082015260a08101869052600060c0820181905260085460e083015261010082018190526101208201528215611d3e57611c4d613732565b6001600160a01b031663867904b473feefeefeefeefeefeefeefeefeefeefeefeefeef856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611cc057600080fd5b505af1158015611cd4573d6000803e3d6000fd5b50505050611ce0613f76565b6001600160a01b03166322bf55ef846040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611d2557600080fd5b505af1158015611d39573d6000803e3d6000fd5b505050505b336000908152601560209081526040808320805460018082018355918552938390208551600a9095020180546001600160a01b0319166001600160a01b0390951694909417845591840151918301919091558201516002820155606082015160038201556080820151600482015560a0820151600582015560c0820151600682015560e0820151600782015561010082015160088201556101208201516009909101805464ffffffffff191664ffffffffff909216919091179055601254611e069088613a18565b601255611e11613732565b6001600160a01b031663867904b433846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015611e7057600080fd5b505af1158015611e84573d6000803e3d6000fd5b505060408051898152602081018b905281513394507f58d170de3a12438e22d81380f353b2fcac86f0a708a1374deaa5c6322a95992f93509081900390910190a2505050506004548114611f0d576040805162461bcd60e51b815260206004820152601f6024820152600080516020614823833981519152604482015290519081900360640190fd5b50919050565b60125481565b60035460ff1681565b611f2a6136b2565b6103e88110611f6a5760405162461bcd60e51b815260040180806020018281038252603381526020018061494b6033913960400191505060405180910390fd5b600d8190556040805182815290517f59822dc2d999f6f0618e8b0db5cfc8496084574c769b09609d9b5f4394a310b69181900360200190a150565b611fad6136b2565b6301e133808111611fef5760405162461bcd60e51b8152600401808060200182810382526037815260200180614a756037913960400191505060405180910390fd5b73__$17dde3ba6158fad0cde918737687de0a85$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561203357600080fd5b505af4158015612047573d6000803e3d6000fd5b505050506040513d602081101561205d57600080fd5b505181111561209d5760405162461bcd60e51b8152600401808060200182810382526025815260200180614a506025913960400191505060405180910390fd5b60088190556120b6816301e1338063ffffffff613f8b16565b60095560085460408051918252517fa90e14be5aa57b910aa6dc16c31ff1b5cda380ae25a793b0d3f74df6131a7d749181900360200190a150565b6000806120fc614766565b6121068585613749565b905060006121268261010001518360400151613a1890919063ffffffff16565b905061214f61213d8261213885613ec0565b612e9f565b6101008401519063ffffffff613a1816565b93508160600151925050509250929050565b600c5481565b6060612171612b15565b905060005b815181101561232b57600082828151811061218d57fe5b602090810291909101810151600554604080517f5265736f6c766572206d697373696e67207461726765743a2000000000000000818601526039808201859052825180830390910181526059820180845263dacb2d0160e01b9052605d8201858152607d83019384528151609d84015281519597506000966001600160a01b039095169563dacb2d01958995939492939260bd0191908501908083838c5b8381101561224357818101518382015260200161222b565b50505050905090810190601f1680156122705780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561228e57600080fd5b505afa1580156122a2573d6000803e3d6000fd5b505050506040513d60208110156122b857600080fd5b505160008381526006602090815260409182902080546001600160a01b0319166001600160a01b03851690811790915582518681529182015281519293507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68929081900390910190a15050600101612176565b5050565b60035460ff16156123715760405162461bcd60e51b815260040180806020018281038252603c815260200180614a14603c913960400191505060405180910390fd5b60048054600101908190556123846136fd565b6001600160a01b0316632528f0fe6208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156123cd57600080fd5b505afa1580156123e1573d6000803e3d6000fd5b505050506040513d60208110156123f757600080fd5b505115612439576040805162461bcd60e51b815260206004820152601e602482015260008051602061492b833981519152604482015290519081900360640190fd5b600082116124785760405162461bcd60e51b81526004018080602001828103825260298152602001806149026029913960400191505060405180910390fd5b612480613718565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156124b857600080fd5b505afa1580156124cc573d6000803e3d6000fd5b5050600e5460ff1615915061252a9050576040805162461bcd60e51b815260206004820152601e60248201527f4c6f616e7320617265206e6f77206265696e67206c6971756964617465640000604482015290519081900360640190fd5b612532614766565b61253c3385613749565b90506125478161388c565b602081015160009061255f908563ffffffff613c3416565b9050612569614766565b6125738383613d71565b9050600061258082613928565b5050905060105481116125c45760405162461bcd60e51b81526004018080602001828103825260318152602001806147f26031913960400191505060405180910390fd5b604051339087156108fc029088906000818181858888f193505050501580156125f1573d6000803e3d6000fd5b50602080830151604080518a8152928301899052828101919091525133917ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f3303919081900360600190a2505050506004548114612682576040805162461bcd60e51b815260206004820152601f6024820152600080516020614823833981519152604482015290519081900360640190fd5b505050565b6001546001600160a01b031633146126d05760405162461bcd60e51b81526004018080602001828103825260358152602001806148436035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60085481565b60075460008080808080808080808080612761613154565b9b506008549a506009549950600a549850600b549750600c549650601254955060135494506014549350479250600f549150600e60009054906101000a900460ff169050909192939495969798999a9b9c565b6127bc6136fd565b6001600160a01b0316632528f0fe6208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561280557600080fd5b505afa158015612819573d6000803e3d6000fd5b505050506040513d602081101561282f57600080fd5b505115612871576040805162461bcd60e51b815260206004820152601e602482015260008051602061492b833981519152604482015290519081900360640190fd5b612879613718565b6001600160a01b031663086dabd16040518163ffffffff1660e01b815260040160006040518083038186803b1580156128b157600080fd5b505afa1580156128c5573d6000803e3d6000fd5b50505050806128d2613732565b6001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561292757600080fd5b505afa15801561293b573d6000803e3d6000fd5b505050506040513d602081101561295157600080fd5b505110156129a0576040805162461bcd60e51b81526020600482015260176024820152764e6f7420656e6f75676820705553442062616c616e636560481b604482015290519081900360640190fd5b6129a8614766565b6129b28484613749565b90506129bd8161388c565b60006129db8261010001518360400151613a1890919063ffffffff16565b905060006129ec8261213885613ec0565b90506000612a0882856101000151613a1890919063ffffffff16565b9050600080600080612a1f89868a60400151613a72565b9350935093509350612a2f613732565b6001600160a01b0316639dc29fac338b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015612a8e57600080fd5b505af1158015612aa2573d6000803e3d6000fd5b50505050612ab08484613aeb565b612abc88828442613c91565b604080518b8152602081018b905280820183905290516001600160a01b038d16917f2cebe3c4a7e8e81ca2035a6cb3ee450bb6401d9b6636652e183583f047049572919081900360600190a25050505050505050505050565b60408051600480825260a08201909252606091602082016080803883390190505090506b53797374656d53746174757360a01b81600081518110612b5557fe5b60200260200101818152505068141e5b9d1a1c1554d160ba1b81600181518110612b7b57fe5b6020026020010181815250506c45786368616e6765526174657360981b81600281518110612ba557fe5b60200260200101818152505066119959541bdbdb60ca1b81600381518110612bc957fe5b60200260200101818152505090565b6000612be2614766565b612bec8484613749565b90506000612c18612c0f8361010001518460400151613a1890919063ffffffff16565b61213884613ec0565b610100830151909150612c31908263ffffffff613a1816565b95945050505050565b6000546001600160a01b031681565b600061182b612c566136fd565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015612c9f57600080fd5b505afa158015612cb3573d6000803e3d6000fd5b505050506040513d6020811015612cc957600080fd5b5051612ce3612cd6613154565b859063ffffffff613c0a16565b9063ffffffff613c0a16565b60025481565b612cfd6136b2565b73__$17dde3ba6158fad0cde918737687de0a85$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015612d4157600080fd5b505af4158015612d55573d6000803e3d6000fd5b505050506040513d6020811015612d6b57600080fd5b50518111612db7576040805162461bcd60e51b8152602060048201526014602482015273526174696f206c657373207468616e203130302560601b604482015290519081900360640190fd5b60108190556040805182815290517f5568be83e5cf7405adf8fb39305e2cdf49c43336606d23c3e0d3fe54e205150a9181900360200190a150565b600f5481565b600080600080600080600080612e0c614766565b612e168b8b613749565b9050806000015198508060200151975080604001519650806080015195508060a0015194508060c001519350612e76612e64612c0f8361010001518460400151613a1890919063ffffffff16565b6101008301519063ffffffff613a1816565b9250612e8f816060015184613a1890919063ffffffff16565b9150509295985092959890939650565b6000612ec6612eb983600954613ff590919063ffffffff16565b849063ffffffff61404e16565b9392505050565b60035460ff1615612f0f5760405162461bcd60e51b815260040180806020018281038252603c815260200180614a14603c913960400191505060405180910390fd5b60003411612f4e5760405162461bcd60e51b81526004018080602001828103825260258152602001806148b66025913960400191505060405180910390fd5b612f56613718565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015612f8e57600080fd5b505afa158015612fa2573d6000803e3d6000fd5b5050600e5460ff161591506130009050576040805162461bcd60e51b815260206004820152601e60248201527f4c6f616e7320617265206e6f77206265696e67206c6971756964617465640000604482015290519081900360640190fd5b613008614766565b6130128383613749565b905061301d8161388c565b6020810151600090613035903463ffffffff613a1816565b90506130418282613d71565b506040805184815234602082015280820183905290516001600160a01b038616917f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c919081900360600190a250505050565b61309b6136b2565b600a8190556040805182815290517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c9181900360200190a150565b601560205281600052604060002081815481106130ef57fe5b60009182526020909120600a909102018054600182015460028301546003840154600485015460058601546006870154600788015460088901546009909901546001600160a01b039098169a50959850939692959194909392909164ffffffffff168a565b600061317460075468056bc75e2d6310000061406390919063ffffffff16565b905090565b6131816136b2565b600f5442116131d7576040805162461bcd60e51b815260206004820152601b60248201527f4265666f7265206c69717569646174696f6e20646561646c696e650000000000604482015290519081900360640190fd5b600e805460ff191682151517908190556040805160ff90921615158252517faa52cf15c1fbb778214c66f64726e141551158858d1c06ca0392c6c5869c8567916020908290030190a150565b60048054600101908190556132366136fd565b6001600160a01b0316632528f0fe6208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561327f57600080fd5b505afa158015613293573d6000803e3d6000fd5b505050506040513d60208110156132a957600080fd5b5051156132eb576040805162461bcd60e51b815260206004820152601e602482015260008051602061492b833981519152604482015290519081900360640190fd5b6132f733836000614078565b600454811461232b576040805162461bcd60e51b815260206004820152601f6024820152600080516020614823833981519152604482015290519081900360640190fd5b60075481565b60048054600101908190556133546136fd565b6001600160a01b0316632528f0fe6208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561339d57600080fd5b505afa1580156133b1573d6000803e3d6000fd5b505050506040513d60208110156133c757600080fd5b505115613409576040805162461bcd60e51b815260206004820152601e602482015260008051602061492b833981519152604482015290519081900360640190fd5b600e5460ff16613460576040805162461bcd60e51b815260206004820152601760248201527f4c69717569646174696f6e206973206e6f74206f70656e000000000000000000604482015290519081900360640190fd5b61346c83836001614078565b6040805183815233602082015281516001600160a01b038616927fde21b2a43b0a2c2109c049fb1e4bb8653fd67d0ffd74fdcb662db381f1eeab38928290030190a26004548114612682576040805162461bcd60e51b815260206004820152601f6024820152600080516020614823833981519152604482015290519081900360640190fd5b600e5460ff1681565b60095481565b6135096136b2565b683635c9adc5dea00000811115613552576040805162461bcd60e51b81526020600482015260086024820152670a8dede40d0d2ced60c31b604482015290519081900360640190fd5b68056bc75e2d6310000081101561359a576040805162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b604482015290519081900360640190fd5b60078190556040805182815290517ffb0ebe8c7316e6a251494c38876d13d9a3a029273fce7964c12aa2ce078695309181900360200190a150565b600b5481565b60006135e5614766565b6135ef8484613749565b90506135fa81613928565b509095945050505050565b600061182b68056bc75e2d631000006136a6612cd66136226136fd565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561366b57600080fd5b505afa15801561367f573d6000803e3d6000fd5b505050506040513d602081101561369557600080fd5b50516007549063ffffffff61406316565b9063ffffffff61406316565b6000546001600160a01b031633146136fb5760405162461bcd60e51b815260040180806020018281038252602f8152602001806149c4602f913960400191505060405180910390fd5b565b60006131746c45786368616e6765526174657360981b61458b565b60006131746b53797374656d53746174757360a01b61458b565b600061317468141e5b9d1a1c1554d160ba1b61458b565b613751614766565b6001600160a01b0383166000908152601560209081526040808320805482518185028101850190935280835260609492939192909184015b8282101561382c5760008481526020908190206040805161014081018252600a860290920180546001600160a01b03168352600180820154848601526002820154928401929092526003810154606084015260048101546080840152600581015460a0840152600681015460c0840152600781015460e084015260088101546101008401526009015464ffffffffff166101208301529083529092019101613789565b509293506000925050505b8151811015613884578382828151811061384d57fe5b602002602001015160a00151141561387c5781818151811061386b57fe5b60200260200101519250505061182b565b600101613837565b505092915050565b60008160a00151116138db576040805162461bcd60e51b8152602060048201526013602482015272131bd85b88191bd95cc81b9bdd08195e1a5cdd606a1b604482015290519081900360640190fd5b60c081015115610e00576040805162461bcd60e51b8152602060048201526013602482015272131bd85b88185b1c9958591e4818db1bdcd959606a1b604482015290519081900360640190fd5b60008060008061394a8561010001518660400151613a1890919063ffffffff16565b90506139598161213887613ec0565b91506139ec6139666136fd565b6001600160a01b031663ac82f6086208aa8960eb1b6040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156139af57600080fd5b505afa1580156139c3573d6000803e3d6000fd5b505050506040513d60208110156139d957600080fd5b505160208701519063ffffffff613c0a16565b9250613a0e613a01828463ffffffff613a1816565b849063ffffffff613e9616565b9350509193909250565b600082820183811015612ec6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000808381868015801590613a875750600087115b15613ac257868111613a995780613a9b565b865b9450613aad838663ffffffff613c3416565b9250613abf818663ffffffff613c3416565b90505b8591508015613ae157613adb828263ffffffff613c3416565b91508093505b5093509350935093565b8115613bea57613af9613732565b6001600160a01b031663867904b473feefeefeefeefeefeefeefeefeefeefeefeefeef846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015613b6c57600080fd5b505af1158015613b80573d6000803e3d6000fd5b50505050613b8c613f76565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015613bd157600080fd5b505af1158015613be5573d6000803e3d6000fd5b505050505b801561232b57601254613c03908263ffffffff613c3416565b6012555050565b6000670de0b6b3a7640000613c25848463ffffffff613ff516565b81613c2c57fe5b049392505050565b600082821115613c8b576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b83516001600160a01b03166000908152601560205260408120905b8154811015613d69578560a00151828281548110613cc657fe5b90600052602060002090600a0201600501541415613d615784828281548110613ceb57fe5b90600052602060002090600a02016002018190555083828281548110613d0d57fe5b90600052602060002090600a02016008018190555082828281548110613d2f57fe5b90600052602060002090600a020160090160006101000a81548164ffffffffff021916908364ffffffffff1602179055505b600101613cac565b505050505050565b613d79614766565b82516001600160a01b03166000908152601560205260408120905b8154811015613884578460a00151828281548110613dae57fe5b90600052602060002090600a0201600501541415613e8e5783828281548110613dd357fe5b90600052602060002090600a020160010181905550818181548110613df457fe5b60009182526020918290206040805161014081018252600a90930290910180546001600160a01b031683526001810154938301939093526002830154908201526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260099091015464ffffffffff16610120820152925061182b915050565b600101613d94565b6000612ec682613eb485670de0b6b3a764000063ffffffff613ff516565b9063ffffffff613f8b16565b600080600083610120015164ffffffffff1611613ee1578260800151613eef565b82610120015164ffffffffff165b905060008360c0015111613f1257613f0d428263ffffffff613c3416565b612ec6565b60c0830151612ec6908263ffffffff613c3416565b600061182b600a548361404e90919063ffffffff16565b601454600090613f5590600163ffffffff613a1816565b601455601354613f6c90600163ffffffff613a1816565b6013819055905090565b600061317466119959541bdbdb60ca1b61458b565b6000808211613fe1576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b6000828481613fec57fe5b04949350505050565b6000826140045750600061182b565b8282028284828161401157fe5b0414612ec65760405162461bcd60e51b81526004018080602001828103825260218152602001806149f36021913960400191505060405180910390fd5b6000612ec68383670de0b6b3a764000061466f565b6000612ec68383670de0b6b3a76400006146ac565b614080613718565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156140b857600080fd5b505afa1580156140cc573d6000803e3d6000fd5b505050506140d8614766565b6140e28484613749565b90506140ed8161388c565b600061410e612c0f8361010001518460400151613a1890919063ffffffff16565b90506000614129828460400151613a1890919063ffffffff16565b9050600061414583856101000151613a1890919063ffffffff16565b905081614150613732565b6001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156141a557600080fd5b505afa1580156141b9573d6000803e3d6000fd5b505050506040513d60208110156141cf57600080fd5b5051101561420e5760405162461bcd60e51b815260040180806020018281038252603e815260200180614878603e913960400191505060405180910390fd5b614217846146d2565b6142456142368561010001518660400151613c3490919063ffffffff16565b6012549063ffffffff613c3416565b601255614250613732565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156142af57600080fd5b505af11580156142c3573d6000803e3d6000fd5b505050506142cf613732565b6001600160a01b031663867904b473feefeefeefeefeefeefeefeefeefeefeefeefeef836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b15801561434257600080fd5b505af1158015614356573d6000803e3d6000fd5b50505050614362613f76565b6001600160a01b03166322bf55ef826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156143a757600080fd5b505af11580156143bb573d6000803e3d6000fd5b50505050602084015185156145045760006143d46136fd565b6001600160a01b031663654a60ac631c1554d160e21b866208aa8960eb1b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b15801561443457600080fd5b505afa158015614448573d6000803e3d6000fd5b505050506040513d602081101561445e57600080fd5b505160115460408051630241ebdb60e61b815290519293506000926144be926115fe92909173__$17dde3ba6158fad0cde918737687de0a85$__9163907af6c0916004808301926020929190829003018186803b1580156115c657600080fd5b90506144d0838263ffffffff613c3416565b604051909350339082156108fc029083906000818181858888f19350505050158015614500573d6000803e3d6000fd5b5050505b84516040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561453d573d6000803e3d6000fd5b50604080518881526020810184905281516001600160a01b038b16927f3cc9f5d298758bad94536f27fa6a3033c2793e0a387a2d78e72550a3b8dacf1e928290030190a25050505050505050565b600081815260066020908152604080832054815170026b4b9b9b4b7339030b2323932b9b99d1607d1b9381019390935260318084018690528251808503909101815260519093019091526001600160a01b031690816146685760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561462d578181015183820152602001614615565b50505050905090810190601f16801561465a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5092915050565b600080600a8304614686868663ffffffff613ff516565b8161468d57fe5b0490506005600a825b06106146a057600a015b600a9004949350505050565b6000806146c684613eb487600a870263ffffffff613ff516565b90506005600a82614696565b80516001600160a01b03166000908152601560205260408120905b815481101561474a578260a0015182828154811061470757fe5b90600052602060002090600a0201600501541415614742574282828154811061472c57fe5b90600052602060002090600a0201600601819055505b6001016146ed565b5060145461475f90600163ffffffff613c3416565b6014555050565b60405180610140016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600064ffffffffff168152509056fe436f6c6c61746572616c20726174696f2061626f7665206c69717569646174696f6e20726174696f436f6c6c61746572616c20726174696f2062656c6f77206c69717569646174696f6e2061667465722077697468647261775265656e7472616e637947756172643a207265656e7472616e742063616c6c00596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e657273686970596f7520646f206e6f742068617665207468652072657175697265642050796e74682062616c616e636520746f20636c6f73652074686973206c6f616e2e4465706f73697420616d6f756e74206d7573742062652067726561746572207468616e20304c6f616e20616d6f756e742065786365656473206d617820626f72726f77696e6720706f776572416d6f756e7420746f207769746864726177206d7573742062652067726561746572207468616e2030426c6f636b656420617320455448207261746520697320696e76616c696400004f776e65722063616e6e6f742073657420686967686572207468616e204143434f554e545f4c4f414e5f4c494d49545f4341504c6f616e20416d6f756e7420657863656564732074686520737570706c79206361702e45616368206163636f756e74206973206c696d6974656420746f203530206c6f616e734f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775468697320616374696f6e2063616e6e6f7420626520706572666f726d6564207768696c652074686520636f6e747261637420697320706175736564496e7465726573742063616e6e6f74206265206d6f7265207468616e203130302520415052496e74657265737420726174652063616e6e6f74206265206c657373207468617420746865205345434f4e44535f494e5f415f594541524e6f7420656e6f7567682045544820746f206372656174652074686973206c6f616e2e20506c656173652073656520746865206d696e4c6f616e436f6c6c61746572616c53697a65a265627a7a7231582098ec679046a4ca22752ce8243171e17700bd9206bd2e9e1f6d963be02424466264736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanLimit",
							"type": "uint256"
						}
					],
					"name": "AccountLoanLimitUpdated",
					"type": "event",
					"signature": "0x59822dc2d999f6f0618e8b0db5cfc8496084574c769b09609d9b5f4394a310b6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralDeposited",
					"type": "event",
					"signature": "0x0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountWithdrawn",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralWithdrawn",
					"type": "event",
					"signature": "0xfae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f3303"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "ratio",
							"type": "uint256"
						}
					],
					"name": "CollateralizationRatioUpdated",
					"type": "event",
					"signature": "0xfb0ebe8c7316e6a251494c38876d13d9a3a029273fce7964c12aa2ce07869530"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "interestRate",
							"type": "uint256"
						}
					],
					"name": "InterestRateUpdated",
					"type": "event",
					"signature": "0xa90e14be5aa57b910aa6dc16c31ff1b5cda380ae25a793b0d3f74df6131a7d74"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event",
					"signature": "0xe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueLimit",
							"type": "uint256"
						}
					],
					"name": "IssueLimitUpdated",
					"type": "event",
					"signature": "0xbb72ce8874020b3b98429d653df927cac6618ac1932384b1446bf04bf9a1b7e5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "ratio",
							"type": "uint256"
						}
					],
					"name": "LiquidationRatioUpdated",
					"type": "event",
					"signature": "0x5568be83e5cf7405adf8fb39305e2cdf49c43336606d23c3e0d3fe54e205150a"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "feesPaid",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event",
					"signature": "0x3cc9f5d298758bad94536f27fa6a3033c2793e0a387a2d78e72550a3b8dacf1e"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event",
					"signature": "0x58d170de3a12438e22d81380f353b2fcac86f0a708a1374deaa5c6322a95992f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						}
					],
					"name": "LoanLiquidated",
					"type": "event",
					"signature": "0xde21b2a43b0a2c2109c049fb1e4bb8653fd67d0ffd74fdcb662db381f1eeab38"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "loanLiquidationOpen",
							"type": "bool"
						}
					],
					"name": "LoanLiquidationOpenUpdated",
					"type": "event",
					"signature": "0xaa52cf15c1fbb778214c66f64726e141551158858d1c06ca0392c6c5869c8567"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "liquidatedAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "liquidatedCollateral",
							"type": "uint256"
						}
					],
					"name": "LoanPartiallyLiquidated",
					"type": "event",
					"signature": "0xb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "repaidAmount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "newLoanAmount",
							"type": "uint256"
						}
					],
					"name": "LoanRepaid",
					"type": "event",
					"signature": "0x2cebe3c4a7e8e81ca2035a6cb3ee450bb6401d9b6636652e183583f047049572"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minLoanCollateralSize",
							"type": "uint256"
						}
					],
					"name": "MinLoanCollateralSizeUpdated",
					"type": "event",
					"signature": "0x9f45df4d81199bea8f20e88707b6f7d36b8e8f20a7def01c113746f67557ffb6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event",
					"signature": "0x8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "COLLATERAL",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x24bbab8b"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "accountLoanLimit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1474b279"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "accountOpenLoanCounter",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x089f7fb4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "accountsPynthLoans",
					"outputs": [
						{
							"internalType": "address payable",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateralAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "loanAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "mintingFee",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timeCreated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timeClosed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "loanInterestRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "accruedInterest",
							"type": "uint256"
						},
						{
							"internalType": "uint40",
							"name": "lastInterestAccrued",
							"type": "uint40"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xab6a34fa"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_loanAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_seconds",
							"type": "uint256"
						}
					],
					"name": "accruedInterestOnLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "interestAmount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa2e17342"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "debtBalance",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"name": "calculateAmountToLiquidate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x39735e37"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						}
					],
					"name": "closeLoan",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd05951a0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "loanAmount",
							"type": "uint256"
						}
					],
					"name": "collateralAmountForLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf53dfb84"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralizationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdcaf9c44"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "currentInterestOnLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x89c937de"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						}
					],
					"name": "depositCollateral",
					"outputs": [],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0xa5d5db0c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getContractInfo",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "_collateralizationRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_issuanceRatio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_interestRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_interestPerSecond",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_issueLimit",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minLoanCollateralSize",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_totalIssuedPynths",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_totalLoansCreated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_totalOpenLoanCount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_ethBalance",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_liquidationDeadline",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "_loanLiquidationOpen",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7cc1f867"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "getLoan",
					"outputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateralAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "loanAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timeCreated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "timeClosed",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "accruedInterest",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "totalFees",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa1c51586"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "getLoanCollateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "loanCollateralRatio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf45f08fb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "getMintingFee",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x462b9725"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "interestPerSecond",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe40108ed"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "interestRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7c3a00fd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issuanceRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb410a034"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x361e2086"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueLimit",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeea8f5da"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x91b4ded9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_loanCreatorsAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_debtToCover",
							"type": "uint256"
						}
					],
					"name": "liquidateLoan",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x38458571"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_loanCreatorsAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "liquidateUnclosedLoan",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe220a811"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationDeadline",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x9f7d5688"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationPenalty",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x23f5589a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "liquidationRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1775765f"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateralAmount",
							"type": "uint256"
						}
					],
					"name": "loanAmountFromCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8fdc8f3b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "loanLiquidationOpen",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe3c1e58c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minLoanCollateralSize",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x675969be"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_loanAmount",
							"type": "uint256"
						}
					],
					"name": "openLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						}
					],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0x54e3e70d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						}
					],
					"name": "openLoanIDsByAccount",
					"outputs": [
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2f2bf15b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5c975abb"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_loanCreatorsAddress",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_repayAmount",
							"type": "uint256"
						}
					],
					"name": "repayLoan",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x80a5d3d8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_loanLimit",
							"type": "uint256"
						}
					],
					"name": "setAccountLoanLimit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5d1a2229"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "ratio",
							"type": "uint256"
						}
					],
					"name": "setCollateralizationRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe5829d20"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_interestRate",
							"type": "uint256"
						}
					],
					"name": "setInterestRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5f84f302"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa76cdfa5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueLimit",
							"type": "uint256"
						}
					],
					"name": "setIssueLimit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4f069f66"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_liquidationRatio",
							"type": "uint256"
						}
					],
					"name": "setLiquidationRatio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x946ce8cd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_loanLiquidationOpen",
							"type": "bool"
						}
					],
					"name": "setLoanLiquidationOpen",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbb8c6d6c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minLoanCollateralSize",
							"type": "uint256"
						}
					],
					"name": "setMinLoanCollateralSize",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x17da255e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x16c38b3c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "timeSinceInterestAccrualOnLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4f11815c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "_account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_loanID",
							"type": "uint256"
						}
					],
					"name": "totalFeesOnLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "interestAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "mintingFee",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x60655ba7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalIssuedPynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x57b21920"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLoansCreated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x23aa7f0f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalOpenLoanCount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4189bb49"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "withdrawAmount",
							"type": "uint256"
						}
					],
					"name": "withdrawCollateral",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x767a7b05"
				}
			],
			"source": {
				"keccak256": "0x4b577ca10693789ff39b8f7cf14ffc45ccbc3de178d80ff22383aeec4e5a7a2c",
				"urls": [
					"bzz-raw://f777139205941113e8c132fc9d30d529a8fa6f739ed7a1c43a59e116b802e4e4",
					"dweb:/ipfs/QmPY8T7NHuccgVmRERgMf1vEEMLieEEWJzE9tdxrGtbs8w"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"EtherCollateralpUSD.sol": "EtherCollateralpUSD"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"EtherCollateralpUSD.sol": {
						"keccak256": "0x4b577ca10693789ff39b8f7cf14ffc45ccbc3de178d80ff22383aeec4e5a7a2c",
						"urls": [
							"bzz-raw://f777139205941113e8c132fc9d30d529a8fa6f739ed7a1c43a59e116b802e4e4",
							"dweb:/ipfs/QmPY8T7NHuccgVmRERgMf1vEEMLieEEWJzE9tdxrGtbs8w"
						]
					}
				},
				"version": 1
			}
		},
		"PeriFinanceBridgeToOptimism": {
			"bytecode": "60806040523480156200001157600080fd5b506040516200238038038062002380833981016040819052620000349162000108565b8080836001600160a01b038116620000695760405162461bcd60e51b81526004016200006090620001c4565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b69184906200019e565b60405180910390a150600280546001600160a01b0319166001600160a01b039290921691909117905550506004805460ff19166001179055506200021f565b8051620001028162000205565b92915050565b600080604083850312156200011c57600080fd5b60006200012a8585620000f5565b92505060206200013d85828601620000f5565b9150509250929050565b6200015281620001f1565b82525050565b6200015281620001df565b600062000172601983620001d6565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620001ae828562000147565b620001bd602083018462000158565b9392505050565b60208082528101620001028162000163565b90815260200190565b60006001600160a01b03821662000102565b6000620001028260006200010282620001df565b6200021081620001df565b81146200021c57600080fd5b50565b612151806200022f6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806379ba509711610097578063cb82747411610066578063cb827474146101d0578063ccce9506146101e3578063d7f5b359146101f6578063e2ff2d431461020957610100565b806379ba509714610198578063899ffef4146101a05780638da5cb5b146101b5578063a18e2307146101bd57610100565b80633c6b16ab116100d35780633c6b16ab1461015557806353a47bb7146101685780636bfd78351461017d578063741853601461019057610100565b806304f3bcec146101055780631627540c14610123578063186601ca146101385780632af64bd31461014d575b600080fd5b61010d61021c565b60405161011a9190611f2b565b60405180910390f35b61013661013136600461170a565b61022b565b005b610140610289565b60405161011a9190611ed3565b610140610292565b6101366101633660046117db565b6103aa565b6101706103ff565b60405161011a9190611da2565b61013661018b366004611788565b61040e565b610136610427565b61013661057d565b6101a8610619565b60405161011a9190611ec2565b610170610766565b6101366101cb366004611817565b610775565b6101366101de3660046117db565b6107a4565b6101366101f13660046117db565b6107bd565b61013661020436600461170a565b610858565b61013661021736600461174e565b6109e6565b6002546001600160a01b031681565b610233610ba2565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061027e908390611da2565b60405180910390a150565b60045460ff1681565b6000606061029e610619565b905060005b81518110156103a05760008282815181106102ba57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a7219061030b908590600401611ee1565b60206040518083038186803b15801561032357600080fd5b505afa158015610337573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061035b9190810190611730565b6001600160a01b031614158061038657506000818152600360205260409020546001600160a01b0316155b1561039757600093505050506103a7565b506001016102a3565b5060019150505b90565b6103b2610bce565b6103ba610bf0565b6001600160a01b0316336001600160a01b0316146103f35760405162461bcd60e51b81526004016103ea90611fba565b60405180910390fd5b6103fc81610c16565b50565b6001546001600160a01b031681565b610416610bce565b61041e610d29565b6103fc81610dc9565b6060610431610619565b905060005b815181101561057957600082828151811061044d57fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d01838460405160200161048f9190611d97565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016104bb929190611f0b565b60206040518083038186803b1580156104d357600080fd5b505afa1580156104e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061050b9190810190611730565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906105679084908490611eef565b60405180910390a15050600101610436565b5050565b6001546001600160a01b031633146105a75760405162461bcd60e51b81526004016103ea90611f4a565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926105ea926001600160a01b0391821692911690611e6a565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b606080610624610fdb565b60408051600680825260e08201909252919250606091906020820160c0803883390190505090506c32bc3a1d26b2b9b9b2b733b2b960991b8160008151811061066957fe5b6020026020010181815250506a5065726946696e616e636560a81b8160018151811061069157fe5b6020026020010181815250506524b9b9bab2b960d11b816002815181106106b457fe5b602002602001018181525050722932bbb0b93239a234b9ba3934b13aba34b7b760691b816003815181106106e457fe5b6020026020010181815250507f6f766d3a5065726946696e616e6365427269646765546f4261736500000000008160048151811061071e57fe5b6020026020010181815250506d2932bbb0b93222b9b1b937bbab1960911b8160058151811061074957fe5b60200260200101818152505061075f828261102c565b9250505090565b6000546001600160a01b031681565b61077d610bce565b610785610d29565b8051156107955761079581610dc9565b811561057957610579826110e8565b6107ac610bce565b6107b4610d29565b6103fc816110e8565b6107c5610bce565b6107cd61127a565b6001600160a01b03166323b872dd3330846040518463ffffffff1660e01b81526004016107fc93929190611db0565b602060405180830381600087803b15801561081657600080fd5b505af115801561082a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061084e91908101906117bd565b506103fc81610c16565b610860610ba2565b610868610bce565b6001600160a01b03811661088e5760405162461bcd60e51b81526004016103ea90611fca565b6004805460ff1916905560006108a261127a565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108d29190611da2565b60206040518083038186803b1580156108ea57600080fd5b505afa1580156108fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061092291908101906117f9565b60405163a9059cbb60e01b81529091506001600160a01b0383169063a9059cbb906109539086908590600401611e12565b602060405180830381600087803b15801561096d57600080fd5b505af1158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109a591908101906117bd565b507fa1bbeeb6860c5db529c582b6bdbc57a2e9862ef771e5bed3a082f7d9da54904a3084836040516109d993929190611e85565b60405180910390a1505050565b6109ee610bce565b6109f6611293565b6001600160a01b0316336001600160a01b031614610a265760405162461bcd60e51b81526004016103ea90611faa565b610a2e6112ae565b6001600160a01b0316610a3f611293565b6001600160a01b0316636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7757600080fd5b505afa158015610a8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aaf9190810190611730565b6001600160a01b031614610ad55760405162461bcd60e51b81526004016103ea90611f5a565b610add61127a565b6001600160a01b031663a9059cbb83836040518363ffffffff1660e01b8152600401610b0a929190611e12565b602060405180830381600087803b158015610b2457600080fd5b505af1158015610b38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b5c91908101906117bd565b50816001600160a01b03167f1a39b9c5044b9f0ff56c5951e30c1ebe24911353aafcceb9250e83a24fe158c482604051610b969190611ee1565b60405180910390a25050565b6000546001600160a01b03163314610bcc5760405162461bcd60e51b81526004016103ea90611f9a565b565b60045460ff16610bcc5760405162461bcd60e51b81526004016103ea90611f7a565b6000610c11722932bbb0b93239a234b9ba3934b13aba34b7b760691b6112d5565b905090565b60405160009060609063f69053c560e01b90610c36908590602401611ee1565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610c72611293565b6001600160a01b0316633dbb202b610c886112ae565b83610c93600261133b565b6040518463ffffffff1660e01b8152600401610cb193929190611e93565b600060405180830381600087803b158015610ccb57600080fd5b505af1158015610cdf573d6000803e3d6000fd5b50505050336001600160a01b03167f95bf5847357310d24f8d03d8bad76c8ee329dfd3a3cb200df21c7bd1619e93bd84604051610d1c9190611ee1565b60405180910390a2505050565b610d316113e1565b6001600160a01b031663d37c4d8b336040518263ffffffff1660e01b8152600401610d5c9190611df8565b60206040518083038186803b158015610d7457600080fd5b505afa158015610d88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dac91908101906117f9565b15610bcc5760405162461bcd60e51b81526004016103ea90611f8a565b60005b815181101561057957601a60ff16828281518110610de657fe5b6020026020010151511115610e0d5760405162461bcd60e51b81526004016103ea90611f6a565b60006060610e196113f5565b6001600160a01b03166380d46f5833868681518110610e3457fe5b60200260200101516040518363ffffffff1660e01b8152600401610e59929190611dd8565b600060405180830381600087803b158015610e7357600080fd5b505af1158015610e87573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eaf919081019061185f565b90925090508115610fd15760405160009060609063355bf0e160e11b90610ede90339087908790602401611e34565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610f1a611293565b6001600160a01b0316633dbb202b610f306112ae565b83610f3b600161133b565b6040518463ffffffff1660e01b8152600401610f5993929190611e93565b600060405180830381600087803b158015610f7357600080fd5b505af1158015610f87573d6000803e3d6000fd5b50505050336001600160a01b03167f4dc5956ab6218a4dfa2cc5e5c50d98d039dde03aabfc504c54b601b6f56226968585604051610fc6929190611fea565b60405180910390a250505b5050600101610dcc565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061101d57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561105c578160200160208202803883390190505b50905060005b835181101561109e5783818151811061107757fe5b602002602001015182828151811061108b57fe5b6020908102919091010152600101611062565b5060005b82518110156110e1578281815181106110b757fe5b60200260200101518282865101815181106110ce57fe5b60209081029190910101526001016110a2565b5092915050565b6110f061127a565b6001600160a01b03166323b872dd3330846040518463ffffffff1660e01b815260040161111f93929190611db0565b602060405180830381600087803b15801561113957600080fd5b505af115801561114d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061117191908101906117bd565b506040516000906060906309853aff60e11b906111949033908690602401611e12565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290506111d0611293565b6001600160a01b0316633dbb202b6111e66112ae565b836111f1600061133b565b6040518463ffffffff1660e01b815260040161120f93929190611e93565b600060405180830381600087803b15801561122957600080fd5b505af115801561123d573d6000803e3d6000fd5b50505050336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c84604051610d1c9190611ee1565b6000610c116a5065726946696e616e636560a81b6112d5565b6000610c116c32bc3a1d26b2b9b9b2b733b2b960991b6112d5565b6000610c117f6f766d3a5065726946696e616e6365427269646765546f4261736500000000005b60008181526003602090815260408083205490516001600160a01b03909116918215159161130591869101611d77565b604051602081830303815290604052906113325760405162461bcd60e51b81526004016103ea9190611f39565b5090505b919050565b6000611345611411565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b61136e8561142e565b6040518363ffffffff1660e01b815260040161138b929190611efd565b60206040518083038186803b1580156113a357600080fd5b505afa1580156113b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506113db91908101906117f9565b92915050565b6000610c116524b9b9bab2b960d11b6112d5565b6000610c116d2932bbb0b93222b9b1b937bbab1960911b6112d5565b6000610c116e466c657869626c6553746f7261676560881b6112d5565b60008082600381111561143d57fe5b141561146a57507f63726f7373446f6d61696e4465706f7369744761734c696d6974000000000000611336565b600182600381111561147857fe5b14156114a557507f63726f7373446f6d61696e457363726f774761734c696d697400000000000000611336565b60028260038111156114b357fe5b14156114e057507f63726f7373446f6d61696e5265776172644761734c696d697400000000000000611336565b60038260038111156114ee57fe5b141561151b57507f63726f7373446f6d61696e5769746864726177616c4761734c696d6974000000611336565b60405162461bcd60e51b81526004016103ea90611fda565b80356113db816120df565b80516113db816120df565b600082601f83011261155a57600080fd5b813561156d61156882612031565b61200a565b81815260209384019390925082018360005b838110156115ab57813586016115958882611627565b845250602092830192919091019060010161157f565b5050505092915050565b600082601f8301126115c657600080fd5b81516115d461156882612031565b915081818352602084019350602081019050838560408402820111156115f957600080fd5b60005b838110156115ab578161160f88826116a2565b845250602090920191604091909101906001016115fc565b600082601f83011261163857600080fd5b813561164661156882612031565b9150818183526020840193506020810190508385602084028201111561166b57600080fd5b60005b838110156115ab578161168188826116e9565b845250602092830192919091019060010161166e565b80516113db816120f3565b6000604082840312156116b457600080fd5b6116be604061200a565b905060006116cc84846116ff565b82525060206116dd848483016116f4565b60208301525092915050565b80356113db816120fc565b80516113db816120fc565b80516113db81612105565b60006020828403121561171c57600080fd5b60006117288484611533565b949350505050565b60006020828403121561174257600080fd5b6000611728848461153e565b6000806040838503121561176157600080fd5b600061176d8585611533565b925050602061177e858286016116e9565b9150509250929050565b60006020828403121561179a57600080fd5b813567ffffffffffffffff8111156117b157600080fd5b61172884828501611549565b6000602082840312156117cf57600080fd5b60006117288484611697565b6000602082840312156117ed57600080fd5b600061172884846116e9565b60006020828403121561180b57600080fd5b600061172884846116f4565b6000806040838503121561182a57600080fd5b600061183685856116e9565b925050602083013567ffffffffffffffff81111561185357600080fd5b61177e85828601611549565b6000806040838503121561187257600080fd5b600061187e85856116f4565b925050602083015167ffffffffffffffff81111561189b57600080fd5b61177e858286016115b5565b60006118b383836119e5565b505060200190565b60006118c78383611d3b565b505060400190565b6118d881612097565b82525050565b6118d881612065565b60006118f282612058565b6118fc818561205c565b935061190783612052565b8060005b8381101561193557815161191f88826118a7565b975061192a83612052565b92505060010161190b565b509495945050505050565b600061194b82612058565b611955818561205c565b935061196083612052565b8060005b8381101561193557815161197888826118bb565b975061198383612052565b925050600101611964565b600061199982612058565b6119a3818561205c565b93506119ae83612052565b8060005b838110156119355781516119c688826118a7565b97506119d183612052565b9250506001016119b2565b6118d881612070565b6118d8816103a7565b6118d86119fa826103a7565b6103a7565b6000611a0a82612058565b611a14818561205c565b9350611a248185602086016120a9565b611a2d816120d5565b9093019392505050565b6118d88161209e565b6000611a4d60358361205c565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000611aa4601d8361205c565b7f4f6e6c7920746865204c32206272696467652063616e20696e766f6b65000000815260200192915050565b6000611add60218361205c565b7f45786365656473206d617820656e747269657320706572206d6967726174696f8152603760f91b602082015260400192915050565b6000611b2060148361205c565b73119d5b98dd1a5bdb8819195858dd1a5d985d195960621b815260200192915050565b6000611b50601183611336565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000611b7d60238361205c565b7f43616e6e6f74206465706f736974206f72206d6967726174652077697468206481526219589d60ea1b602082015260400192915050565b6000611bc2602f8361205c565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b631c1554d160e21b9052565b6000611c1f601e8361205c565b7f4f6e6c79207468652072656c617965722063616e2063616c6c20746869730000815260200192915050565b6000611c58601983611336565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000611c91602a8361205c565b7f43616c6c6572206973206e6f742052657761726473446973747269627574696f8152691b8818dbdb9d1c9858dd60b21b602082015260400192915050565b6000611cdd601b8361205c565b7f43616e6e6f74206d69677261746520746f206164647265737320300000000000815260200192915050565b6000611d1660168361205c565b75556e6b6e6f776e20676173206c696d6974207479706560501b815260200192915050565b80516040830190611d4c8482611d6e565b506020820151611d5f60208501826119e5565b50505050565b6118d881612081565b6118d88161208a565b6000611d8282611b43565b9150611d8e82846119ee565b50602001919050565b6000611d8282611c4b565b602081016113db82846118de565b60608101611dbe82866118cf565b611dcb60208301856118de565b61172860408301846119e5565b60408101611de682856118cf565b8181036020830152611728818461198e565b60408101611e0682846118cf565b6113db60208301611c06565b60408101611e2082856118de565b611e2d60208301846119e5565b9392505050565b60608101611e4282866118de565b611e4f60208301856119e5565b8181036040830152611e618184611940565b95945050505050565b60408101611e7882856118de565b611e2d60208301846118de565b60608101611dbe82866118de565b60608101611ea182866118de565b8181036020830152611eb381856119ff565b90506117286040830184611d65565b60208082528101611e2d81846118e7565b602081016113db82846119dc565b602081016113db82846119e5565b60408101611e7882856119e5565b60408101611e2082856119e5565b60408101611f1982856119e5565b818103602083015261172881846119ff565b602081016113db8284611a37565b60208082528101611e2d81846119ff565b602080825281016113db81611a40565b602080825281016113db81611a97565b602080825281016113db81611ad0565b602080825281016113db81611b13565b602080825281016113db81611b70565b602080825281016113db81611bb5565b602080825281016113db81611c12565b602080825281016113db81611c84565b602080825281016113db81611cd0565b602080825281016113db81611d09565b60408101611ff882856119e5565b81810360208301526117288184611940565b60405181810167ffffffffffffffff8111828210171561202957600080fd5b604052919050565b600067ffffffffffffffff82111561204857600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b60006113db82612075565b151590565b6001600160a01b031690565b63ffffffff1690565b67ffffffffffffffff1690565b60006113db825b60006113db82612065565b60005b838110156120c45781810151838201526020016120ac565b83811115611d5f5750506000910152565b601f01601f191690565b6120e881612065565b81146103fc57600080fd5b6120e881612070565b6120e8816103a7565b6120e88161208a56fea365627a7a72315820c36d0c1326364d44c8835762bd6938f3946ab6b5e19e6c1c11cac0eb690dc64a6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldBridge",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newBridge",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "BridgeMigrated",
					"type": "event",
					"signature": "0xa1bbeeb6860c5db529c582b6bdbc57a2e9862ef771e5bed3a082f7d9da54904a"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "Deposit",
					"type": "event",
					"signature": "0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "escrowedAccountBalance",
							"type": "uint256"
						},
						{
							"components": [
								{
									"internalType": "uint64",
									"name": "endTime",
									"type": "uint64"
								},
								{
									"internalType": "uint256",
									"name": "escrowAmount",
									"type": "uint256"
								}
							],
							"indexed": false,
							"internalType": "struct VestingEntries.VestingEntry[]",
							"name": "vestingEntries",
							"type": "tuple[]"
						}
					],
					"name": "ExportedVestingEntries",
					"type": "event",
					"signature": "0x4dc5956ab6218a4dfa2cc5e5c50d98d039dde03aabfc504c54b601b6f5622696"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "RewardDeposit",
					"type": "event",
					"signature": "0x95bf5847357310d24f8d03d8bad76c8ee329dfd3a3cb200df21c7bd1619e93bd"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "WithdrawalCompleted",
					"type": "event",
					"signature": "0x1a39b9c5044b9f0ff56c5951e30c1ebe24911353aafcceb9250e83a24fe158c4"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "activated",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x186601ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "completeWithdrawal",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe2ff2d43"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "depositAmount",
							"type": "uint256"
						},
						{
							"internalType": "uint256[][]",
							"name": "entryIDs",
							"type": "uint256[][]"
						}
					],
					"name": "depositAndMigrateEscrow",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa18e2307"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "depositAmount",
							"type": "uint256"
						}
					],
					"name": "initiateDeposit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xcb827474"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256[][]",
							"name": "entryIDs",
							"type": "uint256[][]"
						}
					],
					"name": "initiateEscrowMigration",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6bfd7835"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "initiateRewardDeposit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xccce9506"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "newBridge",
							"type": "address"
						}
					],
					"name": "migrateBridge",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd7f5b359"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "notifyRewardAmount",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x3c6b16ab"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				}
			],
			"source": {
				"keccak256": "0xc7188d453ea4b1d8f106d0615d2523e22dcc07dd7a5dc1d9da1ba79a33c9c474",
				"urls": [
					"bzz-raw://56718b980c32497564ba3cd45163ca1dd9ca942a3ea54536203a18d225eb03eb",
					"dweb:/ipfs/Qmc8tkciqdkmbgXMajzok2TRYrWcyuDmJYsVC9pW1UZV6A"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"PeriFinanceBridgeToOptimism.sol": "PeriFinanceBridgeToOptimism"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"PeriFinanceBridgeToOptimism.sol": {
						"keccak256": "0xc7188d453ea4b1d8f106d0615d2523e22dcc07dd7a5dc1d9da1ba79a33c9c474",
						"urls": [
							"bzz-raw://56718b980c32497564ba3cd45163ca1dd9ca942a3ea54536203a18d225eb03eb",
							"dweb:/ipfs/Qmc8tkciqdkmbgXMajzok2TRYrWcyuDmJYsVC9pW1UZV6A"
						]
					}
				},
				"version": 1
			}
		},
		"PynthUtil": {
			"bytecode": "608060405234801561001057600080fd5b5060405161136b38038061136b8339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055611306806100656000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80632ebf118b14610067578063597ece84146100bf578063b2637a91146101c3578063ca2577e1146101cb578063d18ab37614610209578063d55415231461022d575b600080fd5b61006f6102ce565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100ab578181015183820152602001610093565b505050509050019250505060405180910390f35b6100e5600480360360208110156100d557600080fd5b50356001600160a01b0316610578565b60405180806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561012d578181015183820152602001610115565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561016c578181015183820152602001610154565b50505050905001848103825285818151815260200191508051906020019060200280838360005b838110156101ab578181015183820152602001610193565b50505050905001965050505050505060405180910390f35b6100e561090f565b6101f7600480360360408110156101e157600080fd5b506001600160a01b038135169060200135610c88565b60408051918252519081900360200190f35b610211610f07565b604080516001600160a01b039092168252519081900360200190f35b610235610f16565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610279578181015183820152602001610261565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156102b85781810151838201526020016102a0565b5050505090500194505050505060405180910390f35b606060006102da611182565b905060006102e6611241565b90506000826001600160a01b031663d99947de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561032357600080fd5b505afa158015610337573d6000803e3d6000fd5b505050506040513d602081101561034d57600080fd5b505160408051828152602080840282010190915290915060609082801561037e578160200160208202803883390190505b50905060005b8281101561056f576000856001600160a01b0316639df95f9f836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156103d257600080fd5b505afa1580156103e6573d6000803e3d6000fd5b505050506040513d60208110156103fc57600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b038088169263af3aea86929185169163dbd06c85916004808301926020929190829003018186803b15801561044c57600080fd5b505afa158015610460573d6000803e3d6000fd5b505050506040513d602081101561047657600080fd5b5051604080516001600160e01b031960e085901b1681526004810192909252516024808301926020929190829003018186803b1580156104b557600080fd5b505afa1580156104c9573d6000803e3d6000fd5b505050506040513d60208110156104df57600080fd5b50511561056657806001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561051f57600080fd5b505afa158015610533573d6000803e3d6000fd5b505050506040513d602081101561054957600080fd5b5051835184908490811061055957fe5b6020026020010181815250505b50600101610384565b50935050505090565b60608060606000610587611182565b90506000610593611241565b90506000826001600160a01b031663d99947de6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105d057600080fd5b505afa1580156105e4573d6000803e3d6000fd5b505050506040513d60208110156105fa57600080fd5b505160408051828152602080840282010190915290915060609082801561062b578160200160208202803883390190505b50905060608260405190808252806020026020018201604052801561065a578160200160208202803883390190505b509050606083604051908082528060200260200182016040528015610689578160200160208202803883390190505b50905060005b848110156108fe576000876001600160a01b0316639df95f9f836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b1580156106dd57600080fd5b505afa1580156106f1573d6000803e3d6000fd5b505050506040513d602081101561070757600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b0383169163dbd06c8591600480820192602092909190829003018186803b15801561074d57600080fd5b505afa158015610761573d6000803e3d6000fd5b505050506040513d602081101561077757600080fd5b5051855186908490811061078757fe5b602002602001018181525050806001600160a01b03166370a082318d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156107e957600080fd5b505afa1580156107fd573d6000803e3d6000fd5b505050506040513d602081101561081357600080fd5b5051845185908490811061082357fe5b602002602001018181525050866001600160a01b031663654a60ac86848151811061084a57fe5b602002602001015186858151811061085e57fe5b6020026020010151631c1554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b1580156108b057600080fd5b505afa1580156108c4573d6000803e3d6000fd5b505050506040513d60208110156108da57600080fd5b505183518490849081106108ea57fe5b60209081029190910101525060010161068f565b509199909850909650945050505050565b6060806060600061091e611182565b9050600061092a611241565b90506000826001600160a01b031663d99947de6040518163ffffffff1660e01b815260040160206040518083038186803b15801561096757600080fd5b505afa15801561097b573d6000803e3d6000fd5b505050506040513d602081101561099157600080fd5b50516040805182815260208084028201019091529091506060908280156109c2578160200160208202803883390190505b5090506060826040519080825280602002602001820160405280156109f1578160200160208202803883390190505b509050606083604051908082528060200260200182016040528015610a20578160200160208202803883390190505b50905060005b84811015610c78576000876001600160a01b0316639df95f9f836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610a7457600080fd5b505afa158015610a88573d6000803e3d6000fd5b505050506040513d6020811015610a9e57600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b0383169163dbd06c8591600480820192602092909190829003018186803b158015610ae457600080fd5b505afa158015610af8573d6000803e3d6000fd5b505050506040513d6020811015610b0e57600080fd5b50518551869084908110610b1e57fe5b602002602001018181525050806001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015610b6357600080fd5b505afa158015610b77573d6000803e3d6000fd5b505050506040513d6020811015610b8d57600080fd5b50518451859084908110610b9d57fe5b602002602001018181525050866001600160a01b031663654a60ac868481518110610bc457fe5b6020026020010151868581518110610bd857fe5b6020026020010151631c1554d160e21b6040518463ffffffff1660e01b815260040180848152602001838152602001828152602001935050505060206040518083038186803b158015610c2a57600080fd5b505afa158015610c3e573d6000803e3d6000fd5b505050506040513d6020811015610c5457600080fd5b50518351849084908110610c6457fe5b602090810291909101015250600101610a26565b5091975095509350505050909192565b600080610c93611182565b90506000610c9f611241565b90506000826001600160a01b031663d99947de6040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdc57600080fd5b505afa158015610cf0573d6000803e3d6000fd5b505050506040513d6020811015610d0657600080fd5b5051905060005b81811015610efd576000846001600160a01b0316639df95f9f836040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b158015610d5b57600080fd5b505afa158015610d6f573d6000803e3d6000fd5b505050506040513d6020811015610d8557600080fd5b50516040805163dbd06c8560e01b815290519192506001600160a01b038087169263654a60ac929185169163dbd06c85916004808301926020929190829003018186803b158015610dd557600080fd5b505afa158015610de9573d6000803e3d6000fd5b505050506040513d6020811015610dff57600080fd5b5051604080516370a0823160e01b81526001600160a01b038d811660048301529151918616916370a0823191602480820192602092909190829003018186803b158015610e4b57600080fd5b505afa158015610e5f573d6000803e3d6000fd5b505050506040513d6020811015610e7557600080fd5b5051604080516001600160e01b031960e086901b16815260048101939093526024830191909152604482018b9052516064808301926020929190829003018186803b158015610ec357600080fd5b505afa158015610ed7573d6000803e3d6000fd5b505050506040513d6020811015610eed57600080fd5b5051959095019450600101610d0d565b5050505092915050565b6000546001600160a01b031681565b6060806060610f23611182565b6001600160a01b03166372cb051f6040518163ffffffff1660e01b815260040160006040518083038186803b158015610f5b57600080fd5b505afa158015610f6f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526020811015610f9857600080fd5b8101908080516040519392919084640100000000821115610fb857600080fd5b908301906020820185811115610fcd57600080fd5b8251866020820283011164010000000082111715610fea57600080fd5b82525081516020918201928201910280838360005b83811015611017578181015183820152602001610fff565b5050505090500160405250505090508061102f611241565b6001600160a01b031663c2c8a676836040518263ffffffff1660e01b81526004018080602001828103825283818151815260200191508051906020019060200280838360005b8381101561108d578181015183820152602001611075565b505050509050019250505060006040518083038186803b1580156110b057600080fd5b505afa1580156110c4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156110ed57600080fd5b810190808051604051939291908464010000000082111561110d57600080fd5b90830190602082018581111561112257600080fd5b825186602082028301116401000000008211171561113f57600080fd5b82525081516020918201928201910280838360005b8381101561116c578181015183820152602001611154565b5050505090500160405250505092509250509091565b600080546040805163dacb2d0160e01b81526a5065726946696e616e636560a81b600482015260248101829052601b60448201527f4d697373696e67205065726946696e616e636520616464726573730000000000606482015290516001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561121057600080fd5b505afa158015611224573d6000803e3d6000fd5b505050506040513d602081101561123a57600080fd5b5051905090565b600080546040805163dacb2d0160e01b81526c45786368616e6765526174657360981b600482015260248101829052601d60448201527f4d697373696e672045786368616e676552617465732061646472657373000000606482015290516001600160a01b039092169163dacb2d0191608480820192602092909190829003018186803b15801561121057600080fdfea265627a7a72315820c34e480413cd126c6cb8280ab1ac0043b73ae3243de9fddab1e80a70ba4c9c6c64736f6c63430005100032",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "resolver",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "addressResolverProxy",
					"outputs": [
						{
							"internalType": "contract IAddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd18ab376"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "frozenPynths",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2ebf118b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "pynthsBalances",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x597ece84"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "pynthsRates",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd5541523"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "pynthsTotalSupplies",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "",
							"type": "bytes32[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						},
						{
							"internalType": "uint256[]",
							"name": "",
							"type": "uint256[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb2637a91"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "totalPynthsInKey",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "total",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xca2577e1"
				}
			],
			"source": {
				"keccak256": "0xaee20b8e8c1385dcad01a72b26a1868b7675265c5b5c2a5f58ad5924c580a82a",
				"urls": [
					"bzz-raw://54e4d8f83cd118a5fe0f5d304325f1fca62d97ef76ca66e124d1a6e9d58414dd",
					"dweb:/ipfs/Qma7X3NrioXAHKMnkuWa9oT8yeCwBXH8XTU2gWrswyXr9X"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"PynthUtil.sol": "PynthUtil"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"PynthUtil.sol": {
						"keccak256": "0xaee20b8e8c1385dcad01a72b26a1868b7675265c5b5c2a5f58ad5924c580a82a",
						"urls": [
							"bzz-raw://54e4d8f83cd118a5fe0f5d304325f1fca62d97ef76ca66e124d1a6e9d58414dd",
							"dweb:/ipfs/Qma7X3NrioXAHKMnkuWa9oT8yeCwBXH8XTU2gWrswyXr9X"
						]
					}
				},
				"version": 1
			}
		},
		"DappMaintenance": {
			"bytecode": "60806040526001805461ffff60a01b1916905534801561001e57600080fd5b506040516106d13803806106d18339818101604052602081101561004157600080fd5b5051806001600160a01b03811661009f576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280516000805160206106b18339815191529281900390910190a1506001600160a01b038116610141576040805162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825560408051928352602083019190915280516000805160206106b18339815191529281900390910190a15061051a806101976000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80638da5cb5b116100665780638da5cb5b1461010b57806393c2212514610113578063b33a5a001461012f578063c65a0ea21461014e578063ee02f27c1461015657610093565b80631627540c146100985780631d008652146100c057806353a47bb7146100df57806379ba509714610103575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610175565b005b6100be600480360360208110156100d657600080fd5b503515156101d1565b6100e7610270565b604080516001600160a01b039092168252519081900360200190f35b6100be61027f565b6100e761033b565b61011b61034a565b604080519115158252519081900360200190f35b6100be6004803603602081101561014557600080fd5b5035151561035a565b61011b6103c0565b6100be6004803603602081101561016c57600080fd5b503515156103d0565b61017d610436565b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b6101d9610436565b6001805460ff60a01b1916600160a01b8315159081029190911760ff60a81b1916600160a81b82021790915560408051918252517f628bebe481126673e44b33fd8b7525b2e3a2e356838e838fb2934a82c79aea32916020908290030190a160408051821515815290517f5c1a8bee0278c3d0a78882d64b2152ae4cacfea1789f447025658aead92331c69181900360200190a150565b6001546001600160a01b031681565b6001546001600160a01b031633146102c85760405162461bcd60e51b81526004018080602001828103825260358152602001806104826035913960400191505060405180910390fd5b600054600154604080516001600160a01b03938416815292909116602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b600154600160a81b900460ff1681565b610362610436565b60018054821515600160a01b90810260ff60a01b199092169190911791829055604080519190920460ff161515815290517f628bebe481126673e44b33fd8b7525b2e3a2e356838e838fb2934a82c79aea329181900360200190a150565b600154600160a01b900460ff1681565b6103d8610436565b60018054821515600160a81b90810260ff60a81b199092169190911791829055604080519190920460ff161515815290517f5c1a8bee0278c3d0a78882d64b2152ae4cacfea1789f447025658aead92331c69181900360200190a150565b6000546001600160a01b0316331461047f5760405162461bcd60e51b815260040180806020018281038252602f8152602001806104b7602f913960400191505060405180910390fd5b56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6ea265627a7a72315820097f698fd64c79ab6c2c4a2857b00fb253df8bc00e2c989b5826311be9e7c8e564736f6c63430005100032b532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "SXMaintenance",
					"type": "event",
					"signature": "0x5c1a8bee0278c3d0a78882d64b2152ae4cacfea1789f447025658aead92331c6"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "StakingMaintenance",
					"type": "event",
					"signature": "0x628bebe481126673e44b33fd8b7525b2e3a2e356838e838fb2934a82c79aea32"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isPausedSX",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x93c22125"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isPausedStaking",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc65a0ea2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "setMaintenanceModeAll",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1d008652"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "setMaintenanceModeSX",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xee02f27c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "setMaintenanceModeStaking",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb33a5a00"
				}
			],
			"source": {
				"keccak256": "0xd0229588eaf22545c09416f1f68c0dd8a59b7499dd9622935f0dac983f6c62b2",
				"urls": [
					"bzz-raw://f1600c66b66ce4efe7e828d869ea7def066f0b98efdba4a5e0d0396aaf84b446",
					"dweb:/ipfs/QmeoLaH74FC9iMkYPS4kumT2TcjSVpvc7fnZCx5XzZFERT"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"DappMaintenance.sol": "DappMaintenance"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"DappMaintenance.sol": {
						"keccak256": "0xd0229588eaf22545c09416f1f68c0dd8a59b7499dd9622935f0dac983f6c62b2",
						"urls": [
							"bzz-raw://f1600c66b66ce4efe7e828d869ea7def066f0b98efdba4a5e0d0396aaf84b446",
							"dweb:/ipfs/QmeoLaH74FC9iMkYPS4kumT2TcjSVpvc7fnZCx5XzZFERT"
						]
					}
				},
				"version": 1
			}
		},
		"BinaryOptionMarketData": {
			"bytecode": "608060405234801561001057600080fd5b506112f7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80631216fc7b14610046578063a30c302d1461006f578063dca5f5c31461008f575b600080fd5b610059610054366004610e75565b6100af565b60405161006691906111f1565b60405180910390f35b61008261007d366004610e75565b61047c565b60405161006691906111e2565b6100a261009d366004610e93565b610a61565b60405161006691906111d4565b6100b7610c44565b600080836001600160a01b0316631069143a6040518163ffffffff1660e01b8152600401604080518083038186803b1580156100f257600080fd5b505afa158015610106573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061012a9190810190610ecd565b915091506000806000866001600160a01b0316639e3b34bf6040518163ffffffff1660e01b815260040160606040518083038186803b15801561016c57600080fd5b505afa158015610180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506101a49190810190610e28565b9250925092506000806000896001600160a01b03166398508ecd6040518163ffffffff1660e01b815260040160606040518083038186803b1580156101e857600080fd5b505afa1580156101fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506102209190810190610e28565b92509250925060008060008c6001600160a01b0316639af1d35a6040518163ffffffff1660e01b815260040160606040518083038186803b15801561026457600080fd5b505afa158015610278573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061029c9190810190610e28565b9250925092506102aa610c44565b6040518060c001604052808f6001600160a01b03166302d05d3f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156102ee57600080fd5b505afa158015610302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103269190810190610de4565b6001600160a01b0316815260200160405180604001604052808f6001600160a01b031681526020018e6001600160a01b0316815250815260200160405180606001604052808d81526020018c81526020018b815250815260200160405180606001604052808a81526020018981526020018881525081526020016040518060600160405280878152602001868152602001858152508152602001604051806040016040528060008152602001600081525081525090506000808f6001600160a01b031663be5af9fe6040518163ffffffff1660e01b8152600401604080518083038186803b15801561041757600080fd5b505afa15801561042b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061044f9190810190610f57565b60408051808201909152918252602082015260a084015250909c505050505050505050505050505b919050565b610484610ca0565b600080836001600160a01b031663c7a5bdc86040518163ffffffff1660e01b8152600401604080518083038186803b1580156104bf57600080fd5b505afa1580156104d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104f79190810190610f57565b91509150600080856001600160a01b0316633d7a783b6040518163ffffffff1660e01b8152600401604080518083038186803b15801561053657600080fd5b505afa15801561054a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061056e9190810190610f57565b91509150600080876001600160a01b031663d068cdc56040518163ffffffff1660e01b8152600401604080518083038186803b1580156105ad57600080fd5b505afa1580156105c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105e59190810190610f57565b91509150600080896001600160a01b0316638b0341366040518163ffffffff1660e01b8152600401604080518083038186803b15801561062457600080fd5b505afa158015610638573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061065c9190810190610f57565b915091506000808b6001600160a01b031663d3419bf36040518163ffffffff1660e01b8152600401604080518083038186803b15801561069b57600080fd5b505afa1580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106d39190810190610f57565b9150915060405180610120016040528060405180604001604052808d81526020018c8152508152602001604051806040016040528085815260200184815250815260200160405180604001604052808f6001600160a01b031663eef49ee36040518163ffffffff1660e01b815260040160206040518083038186803b15801561075b57600080fd5b505afa15801561076f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107939190810190610f39565b81526020018f6001600160a01b0316632115e3036040518163ffffffff1660e01b815260040160206040518083038186803b1580156107d157600080fd5b505afa1580156107e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108099190810190610f39565b815250815260200160405180604001604052808f6001600160a01b0316633f6fa6556040518163ffffffff1660e01b815260040160206040518083038186803b15801561085557600080fd5b505afa158015610869573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061088d9190810190610e0a565b151581526020018f6001600160a01b031663ac3791e36040518163ffffffff1660e01b815260040160206040518083038186803b1580156108cd57600080fd5b505afa1580156108e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109059190810190610e0a565b151581525081526020018d6001600160a01b031663b1c9fe6e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561094857600080fd5b505afa15801561095c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109809190810190610efd565b600381111561098b57fe5b81526020018d6001600160a01b031663653721476040518163ffffffff1660e01b815260040160206040518083038186803b1580156109c957600080fd5b505afa1580156109dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a019190810190610f1b565b6001811115610a0c57fe5b81526040805180820182529687526020878101969096528582019690965285518087018752998a5289850198909852848801989098525050815180830190925292815291820152606090910152949350505050565b610a69610d03565b600080846001600160a01b03166329e77b5d856040518263ffffffff1660e01b8152600401610a9891906111c6565b604080518083038186803b158015610aaf57600080fd5b505afa158015610ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ae79190810190610f57565b91509150600080866001600160a01b031663408e82af876040518263ffffffff1660e01b8152600401610b1a91906111c6565b604080518083038186803b158015610b3157600080fd5b505afa158015610b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b699190810190610f57565b91509150600080886001600160a01b0316636392a51f896040518263ffffffff1660e01b8152600401610b9c91906111c6565b604080518083038186803b158015610bb357600080fd5b505afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610beb9190810190610f57565b6040805160a08101825260608101998a5260808101989098529787528751808901895295865260208681019590955284870195909552865180880188529081529283019390935250928201929092529150505b92915050565b6040518060c0016040528060006001600160a01b03168152602001610c67610d16565b8152602001610c74610d2d565b8152602001610c81610d4e565b8152602001610c8e610d2d565b8152602001610c9b610d72565b905290565b604051806101200160405280610cb4610d72565b8152602001610cc1610d72565b8152602001610cce610d72565b8152602001610cdb610d16565b81526020016000815260200160008152602001610cf6610d72565b8152602001610c8e610d72565b6040518060600160405280610cf6610d72565b604080518082019091526000808252602082015290565b60405180606001604052806000815260200160008152602001600081525090565b60405180606001604052806000801916815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b8035610c3e8161126b565b8051610c3e8161126b565b8051610c3e8161127f565b8051610c3e81611288565b8035610c3e81611291565b8051610c3e81611291565b8051610c3e8161129a565b8051610c3e816112a7565b600060208284031215610df657600080fd5b6000610e028484610d97565b949350505050565b600060208284031215610e1c57600080fd5b6000610e028484610da2565b600080600060608486031215610e3d57600080fd5b6000610e498686610dad565b9350506020610e5a86828701610dad565b9250506040610e6b86828701610dad565b9150509250925092565b600060208284031215610e8757600080fd5b6000610e028484610db8565b60008060408385031215610ea657600080fd5b6000610eb28585610db8565b9250506020610ec385828601610d8c565b9150509250929050565b60008060408385031215610ee057600080fd5b6000610eec8585610dc3565b9250506020610ec385828601610dc3565b600060208284031215610f0f57600080fd5b6000610e028484610dce565b600060208284031215610f2d57600080fd5b6000610e028484610dd9565b600060208284031215610f4b57600080fd5b6000610e028484610dad565b60008060408385031215610f6a57600080fd5b6000610f768585610dad565b9250506020610ec385828601610dad565b610f9081611200565b82525050565b610f908161120b565b610f9081611210565b610f9081611213565b610f908161123e565b610f9081611249565b805160c0830190610fd48482611000565b506020820151610fe76040850182611000565b506040820151610ffa6080850182611000565b50505050565b805160408301906110118482610f9f565b506020820151610ffa6020850182610f9f565b805160608301906110358482610f9f565b5060208201516110486020850182610f9f565b506040820151610ffa6040850182610f9f565b805161020083019061106d8482611000565b5060208201516110806040850182611000565b5060408201516110936080850182611000565b5060608201516110a660c08501826111a2565b5060808201516110ba610100850182610fb1565b5060a08201516110ce610120850182610fba565b5060c08201516110e2610140850182611000565b5060e08201516110f6610180850182611000565b50610100820151610ffa6101c0850182611000565b80516101c083019061111d8482610f87565b506020820151611130602085018261117e565b5060408201516111436060850182611024565b50606082015161115660c0850182611024565b50608082015161116a610120850182611024565b5060a0820151610ffa610180850182611000565b8051604083019061118f8482610fa8565b506020820151610ffa6020850182610fa8565b805160408301906111b38482610f96565b506020820151610ffa6020850182610f96565b60208101610c3e8284610f87565b60c08101610c3e8284610fc3565b6102008101610c3e828461105b565b6101c08101610c3e828461110b565b6000610c3e82611232565b151590565b90565b6000610c3e82611200565b8061047781611254565b8061047781611261565b6001600160a01b031690565b6000610c3e8261121e565b6000610c3e82611228565b6004811061125e57fe5b50565b6002811061125e57fe5b61127481611200565b811461125e57600080fd5b6112748161120b565b61127481611210565b61127481611213565b6004811061125e57600080fd5b6002811061125e57600080fdfea365627a7a723158208e3807d97b00c8e3cbcf53d9ce226be41dcca0f0d0e19fed09436f5fc87b7d236c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract BinaryOptionMarket",
							"name": "market",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getAccountMarketData",
					"outputs": [
						{
							"components": [
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "long",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "short",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketData.OptionValues",
									"name": "bids",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "long",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "short",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketData.OptionValues",
									"name": "claimable",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "long",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "short",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketData.OptionValues",
									"name": "balances",
									"type": "tuple"
								}
							],
							"internalType": "struct BinaryOptionMarketData.AccountData",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdca5f5c3"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract BinaryOptionMarket",
							"name": "market",
							"type": "address"
						}
					],
					"name": "getMarketData",
					"outputs": [
						{
							"components": [
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "price",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "updatedAt",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketData.OraclePriceAndTimestamp",
									"name": "oraclePriceAndTimestamp",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "long",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "short",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarket.Prices",
									"name": "prices",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "deposited",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "exercisableDeposits",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketData.Deposits",
									"name": "deposits",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "bool",
											"name": "resolved",
											"type": "bool"
										},
										{
											"internalType": "bool",
											"name": "canResolve",
											"type": "bool"
										}
									],
									"internalType": "struct BinaryOptionMarketData.Resolution",
									"name": "resolution",
									"type": "tuple"
								},
								{
									"internalType": "enum IBinaryOptionMarket.Phase",
									"name": "phase",
									"type": "uint8"
								},
								{
									"internalType": "enum IBinaryOptionMarket.Side",
									"name": "result",
									"type": "uint8"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "long",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "short",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketData.OptionValues",
									"name": "totalBids",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "long",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "short",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketData.OptionValues",
									"name": "totalClaimableSupplies",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "long",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "short",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketData.OptionValues",
									"name": "totalSupplies",
									"type": "tuple"
								}
							],
							"internalType": "struct BinaryOptionMarketData.MarketData",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa30c302d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "contract BinaryOptionMarket",
							"name": "market",
							"type": "address"
						}
					],
					"name": "getMarketParameters",
					"outputs": [
						{
							"components": [
								{
									"internalType": "address",
									"name": "creator",
									"type": "address"
								},
								{
									"components": [
										{
											"internalType": "contract BinaryOption",
											"name": "long",
											"type": "address"
										},
										{
											"internalType": "contract BinaryOption",
											"name": "short",
											"type": "address"
										}
									],
									"internalType": "struct BinaryOptionMarket.Options",
									"name": "options",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "biddingEnd",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "maturity",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "expiry",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarket.Times",
									"name": "times",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "bytes32",
											"name": "key",
											"type": "bytes32"
										},
										{
											"internalType": "uint256",
											"name": "strikePrice",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "finalPrice",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarket.OracleDetails",
									"name": "oracleDetails",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "poolFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "creatorFee",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "refundFee",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketManager.Fees",
									"name": "fees",
									"type": "tuple"
								},
								{
									"components": [
										{
											"internalType": "uint256",
											"name": "capitalRequirement",
											"type": "uint256"
										},
										{
											"internalType": "uint256",
											"name": "skewLimit",
											"type": "uint256"
										}
									],
									"internalType": "struct BinaryOptionMarketManager.CreatorLimits",
									"name": "creatorLimits",
									"type": "tuple"
								}
							],
							"internalType": "struct BinaryOptionMarketData.MarketParameters",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1216fc7b"
				}
			],
			"source": {
				"keccak256": "0x417bad50b6ec06ceef8cba202ff07fb240364b3cfed3f3bb40ba531c84dfa8b6",
				"urls": [
					"bzz-raw://8dabe2e3aa5009c259418d85dc6ca4000eec5855503051ddfbb392bd74e2050b",
					"dweb:/ipfs/QmUoHR5PhmdXVw94CnvzwTuadCbw4M9p6XnuEjUvQ7Xz4H"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"BinaryOptionMarketData.sol": "BinaryOptionMarketData"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"BinaryOptionMarketData.sol": {
						"keccak256": "0x417bad50b6ec06ceef8cba202ff07fb240364b3cfed3f3bb40ba531c84dfa8b6",
						"urls": [
							"bzz-raw://8dabe2e3aa5009c259418d85dc6ca4000eec5855503051ddfbb392bd74e2050b",
							"dweb:/ipfs/QmUoHR5PhmdXVw94CnvzwTuadCbw4M9p6XnuEjUvQ7Xz4H"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralManagerState": {
			"bytecode": "60806040523480156200001157600080fd5b50604051620011b2380380620011b2833981016040819052620000349162000190565b80826001600160a01b038116620000685760405162461bcd60e51b81526004016200005f906200029d565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b591849062000265565b60405180910390a1506000546001600160a01b0316620000e95760405162461bcd60e51b81526004016200005f906200028b565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03906200013690839062000255565b60405180910390a150506004805460018101825560009182527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b01555042600555620002f8565b80516200018a81620002de565b92915050565b60008060408385031215620001a457600080fd5b6000620001b285856200017d565b9250506020620001c5858286016200017d565b9150509250929050565b620001da81620002ca565b82525050565b620001da81620002b8565b6000620001fa601183620002af565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b600062000229601983620002af565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b602081016200018a8284620001e0565b60408101620002758285620001cf565b620002846020830184620001e0565b9392505050565b602080825281016200018a81620001eb565b602080825281016200018a816200021a565b90815260200190565b60006001600160a01b0382166200018a565b60006200018a8260006200018a82620002b8565b620002e981620002b8565b8114620002f557600080fd5b50565b610eaa80620003086000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638da5cb5b11610104578063d2f00475116100a2578063e50a31b311610071578063e50a31b31461038f578063eb94bbde146103a2578063ed039154146103b5578063f53037b6146103c8576101cf565b8063d2f0047514610335578063d3a7120214610348578063e31f27c114610369578063e32261fe1461037c576101cf565b8063aefc4ccb116100de578063aefc4ccb146102ff578063af07aa9d14610307578063b52e0dc81461031a578063cc952b571461032d576101cf565b80638da5cb5b146102d1578063a0356f6e146102d9578063a29fe7b8146102ec576101cf565b806352f445ca116101715780636431e0bd1161014b5780636431e0bd146102a6578063781dc0e2146102b957806379ba5097146102c15780638c582503146102c9576101cf565b806352f445ca1461026b57806353a47bb71461027e5780635537479914610293576101cf565b806322e07b7a116101ad57806322e07b7a14610235578063246206391461023d578063381c5cb5146102505780635246f2b914610258576101cf565b806303f048b0146101d45780631627540c14610200578063173fcb4114610215575b600080fd5b6101e76101e2366004610b70565b6103db565b6040516101f79493929190610df2565b60405180910390f35b61021361020e366004610b4a565b610415565b005b610228610223366004610b8e565b610473565b6040516101f79190610dc9565b6102286104a1565b61021361024b366004610b8e565b6104a7565b61022861050d565b610213610266366004610b8e565b610514565b610213610279366004610b4a565b610579565b6102866105cc565b6040516101f79190610d50565b6102286102a1366004610b70565b6105db565b6102136102b4366004610b70565b6105ed565b610228610631565b610213610637565b6102286106d3565b61028661071e565b6102286102e7366004610b70565b61072d565b6102286102fa366004610b70565b61073f565b61028661075d565b6101e7610315366004610b8e565b61076c565b610228610328366004610b70565b6107ac565b6102286107cd565b610228610343366004610b70565b6107d3565b61035b610356366004610b70565b610813565b6040516101f7929190610dd7565b610213610377366004610b8e565b61082c565b61022861038a366004610b70565b610878565b61021361039d366004610b8e565b6108bb565b6102136103b0366004610b8e565b61091a565b6102136103c3366004610b70565b610963565b6102136103d6366004610b70565b6109d6565b6000806000806103e961050d565b90506103f4856107ac565b9350610402600182036107ac565b925061040c610631565b91509193509193565b61041d610a39565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce2290610468908390610d50565b60405180910390a150565b6006602052816000526040600020818154811061048c57fe5b90600052602060002001600091509150505481565b60055481565b6002546001600160a01b031633146104da5760405162461bcd60e51b81526004016104d190610db9565b60405180910390fd5b60008281526006602090815260408083208054600181018255908452828420019390935592815260079092529020429055565b6004545b90565b6002546001600160a01b0316331461053e5760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902060010154610560908263ffffffff610a6516565b6000928352600860205260409092206001019190915550565b610581610a39565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390610468908390610d50565b6001546001600160a01b031681565b60076020526000908152604090205481565b6002546001600160a01b031633146106175760405162461bcd60e51b81526004016104d190610db9565b600081815260066020526040812061062e91610afd565b50565b60055490565b6001546001600160a01b031633146106615760405162461bcd60e51b81526004016104d190610d79565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926106a4926001600160a01b0391821692911690610d5e565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6002546000906001600160a01b031633146107005760405162461bcd60e51b81526004016104d190610db9565b60035461071490600163ffffffff610a9216565b6003819055905090565b6000546001600160a01b031681565b60009081526006602052604090205490565b6004818154811061074c57fe5b600091825260209091200154905081565b6002546001600160a01b031681565b60008060008061077b8661072d565b90506107878686610abe565b93506107968660018303610abe565b92506107a186610aeb565b915092959194509250565b6000600482815481106107bb57fe5b90600052602060002001549050919050565b60035481565b6002546000906001600160a01b031633146108005760405162461bcd60e51b81526004016104d190610db9565b5060009081526008602052604090205490565b6008602052600090815260409020805460019091015482565b6002546001600160a01b031633146108565760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902060010154610560908263ffffffff610a9216565b6002546000906001600160a01b031633146108a55760405162461bcd60e51b81526004016104d190610db9565b5060009081526008602052604090206001015490565b6002546001600160a01b031633146108e55760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902054610904908263ffffffff610a6516565b6000928352600860205260409092209190915550565b6002546001600160a01b031633146109445760405162461bcd60e51b81526004016104d190610db9565b600082815260086020526040902054610904908263ffffffff610a9216565b6002546001600160a01b0316331461098d5760405162461bcd60e51b81526004016104d190610db9565b600081815260066020526040902054156109a65761062e565b60008181526006602090815260408083208054600181018255908452828420018390559282526007905220429055565b6002546001600160a01b03163314610a005760405162461bcd60e51b81526004016104d190610db9565b600480546001810182556000919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b015542600555565b6000546001600160a01b03163314610a635760405162461bcd60e51b81526004016104d190610da9565b565b600082821115610a875760405162461bcd60e51b81526004016104d190610d99565b508082035b92915050565b600082820183811015610ab75760405162461bcd60e51b81526004016104d190610d89565b9392505050565b6000828152600660205260408120805483908110610ad857fe5b9060005260206000200154905092915050565b60009081526007602052604090205490565b508054600082559060005260206000209081019061062e919061051191905b80821115610b305760008155600101610b1c565b5090565b8035610a8c81610e4a565b8035610a8c81610e5e565b600060208284031215610b5c57600080fd5b6000610b688484610b34565b949350505050565b600060208284031215610b8257600080fd5b6000610b688484610b3f565b60008060408385031215610ba157600080fd5b6000610bad8585610b3f565b9250506020610bbe85828601610b3f565b9150509250929050565b610bd181610e39565b82525050565b6000610be4603583610e30565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000610c3b601b83610e30565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000610c74601e83610e30565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000610cad602f83610e30565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000610cfe603483610e30565b7f4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e815273103832b93337b936903a3434b99030b1ba34b7b760611b602082015260400192915050565b610bd181610511565b60208101610a8c8284610bc8565b60408101610d6c8285610bc8565b610ab76020830184610bc8565b60208082528101610a8c81610bd7565b60208082528101610a8c81610c2e565b60208082528101610a8c81610c67565b60208082528101610a8c81610ca0565b60208082528101610a8c81610cf1565b60208101610a8c8284610d47565b60408101610de58285610d47565b610ab76020830184610d47565b60808101610e008287610d47565b610e0d6020830186610d47565b610e1a6040830185610d47565b610e276060830184610d47565b95945050505050565b90815260200190565b60006001600160a01b038216610a8c565b610e5381610e39565b811461062e57600080fd5b610e538161051156fea365627a7a72315820c4530702f0529956ec75ef7fba3f3eb307aa1b8030167142453bdcabfc919e176c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "addShortCurrency",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xed039154"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "borrowRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa29fe7b8"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "borrowRatesLastUpdated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x22e07b7a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe50a31b3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5246f2b9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getRateAt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb52e0dc8"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x03f048b0"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getRatesLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x381c5cb5"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getShortRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaf07aa9d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "getShortRatesLength",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa0356f6e"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xeb94bbde"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe31f27c1"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "incrementTotalLoans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8c582503"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "long",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd2f00475"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "ratesLastUpdated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x781dc0e2"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "removeShortCurrency",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6431e0bd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "short",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe32261fe"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "shortRates",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x173fcb41"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortRatesLastUpdated",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x55374799"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "totalIssuedPynths",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "long",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "short",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd3a71202"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLoans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcc952b57"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateBorrowRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf53037b6"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateShortRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x24620639"
				}
			],
			"source": {
				"keccak256": "0xe4efb0a8882c2b34a76242fa66a744be8d65871f81285e4a34ea331c44857541",
				"urls": [
					"bzz-raw://482e548eceb4a80a1e2cfc18c7fbf13f09d1782b5f4a0a0d027c456fd5c6a0de",
					"dweb:/ipfs/QmaxTpGhanc4jbBbq2gmMTGLbz8SjXVbafcUCi5jtZmb5V"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralManagerState.sol": "CollateralManagerState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralManagerState.sol": {
						"keccak256": "0xe4efb0a8882c2b34a76242fa66a744be8d65871f81285e4a34ea331c44857541",
						"urls": [
							"bzz-raw://482e548eceb4a80a1e2cfc18c7fbf13f09d1782b5f4a0a0d027c456fd5c6a0de",
							"dweb:/ipfs/QmaxTpGhanc4jbBbq2gmMTGLbz8SjXVbafcUCi5jtZmb5V"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralManager": {
			"bytecode": "670de0b6b3a7640000600e5560c06040526524b9b9bab2b960d11b60809081526c45786368616e6765526174657360981b60a052620000439060129060026200030a565b503480156200005157600080fd5b5060405162003c7938038062003c7983398101604081905262000074916200039a565b83856001600160a01b038116620000a85760405162461bcd60e51b81526004016200009f90620005a9565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000f59184906200054d565b60405180910390a1506000546001600160a01b0316620001295760405162461bcd60e51b81526004016200009f9062000597565b60038054610100600160a81b0319166101006001600160a01b039384160217905560008054336001600160a01b031991821617909155600580549091169188169190911790556200017a83620001cf565b6200018e826001600160e01b036200024716565b620001a2816001600160e01b036200029116565b5050600080546001600160a01b0319166001600160a01b0394909416939093179092555062000637915050565b620001e26001600160e01b03620002db16565b60008111620002055760405162461bcd60e51b81526004016200009f9062000573565b600f8190556040517f3620cc91bd75c6d3d752b529a1b98b38789dd2b81a13ece55801abc83531a77f906200023c908390620005bb565b60405180910390a150565b6200025a6001600160e01b03620002db16565b60108190556040517f08f9599493340b8255c7698bded59e30079641f4a9531613ec02055739247004906200023c908390620005bb565b620002a46001600160e01b03620002db16565b60118190556040517fe2695216766f2a627e90e17041ac2f085fd60ea503345b039f815c69bcbcccc9906200023c908390620005bb565b6000546001600160a01b03163314620003085760405162461bcd60e51b81526004016200009f9062000585565b565b82601881019282156200033b579160200282015b828111156200033b5782518255916020019190600101906200031e565b50620003499291506200034d565b5090565b6200036a91905b8082111562000349576000815560010162000354565b90565b80516200037a8162000607565b92915050565b80516200037a8162000621565b80516200037a816200062c565b60008060008060008060c08789031215620003b457600080fd5b6000620003c2898962000380565b9650506020620003d589828a016200036d565b9550506040620003e889828a016200036d565b9450506060620003fb89828a016200038d565b93505060806200040e89828a016200038d565b92505060a06200042189828a016200038d565b9150509295509295509295565b6200043981620005fa565b82525050565b6200043981620005d4565b600062000459601683620005cb565b7f4d7573742062652067726561746572207468616e203000000000000000000000815260200192915050565b600062000494602f83620005cb565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000620004e7601183620005cb565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b600062000516601983620005cb565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b62000439816200036a565b604081016200055d82856200042e565b6200056c60208301846200043f565b9392505050565b602080825281016200037a816200044a565b602080825281016200037a8162000485565b602080825281016200037a81620004d8565b602080825281016200037a8162000507565b602081016200037a828462000542565b90815260200190565b60006200037a82620005ee565b60006200037a82620005d4565b6001600160a01b031690565b60006200037a82620005e1565b6200061281620005d4565b81146200061e57600080fd5b50565b6200061281620005e1565b62000612816200036a565b61363280620006476000396000f3fe608060405234801561001057600080fd5b50600436106102d65760003560e01c80638da5cb5b11610182578063c9e18015116100e9578063e32261fe116100a2578063ee81f7901161007c578063ee81f790146105ec578063f53037b6146105ff578063fb5aa1e114610612578063ffa749cd14610625576102d6565b8063e32261fe146105b3578063e50a31b3146105c6578063eb94bbde146105d9576102d6565b8063c9e1801514610557578063cc7ae6631461055f578063cd28502014610572578063d0064c0014610585578063d2f004751461058d578063e31f27c1146105a0576102d6565b8063b3b467321161013b578063b3b4673214610503578063b4d6cb401461050b578063ba1c5e801461052c578063bbb601cd14610534578063bf38668214610547578063c19d93fb1461054f576102d6565b80638da5cb5b146104b257806391b4ded9146104ba5780639f7eac37146104c2578063ad79a858146104d5578063af07aa9d146104dd578063b38988f7146104f0576102d6565b80634db7764c116102415780636526941b116101fa578063744d646e116101d4578063744d646e1461046f57806379ba509714610482578063899ffef41461048a5780638b173e811461049f576102d6565b80636526941b146104415780637060f9e8146104545780637418536014610467576102d6565b80634db7764c146103e15780635246f2b9146103f657806353a47bb71461040957806355bd615c1461041e5780635c975abb14610431578063614d08f814610439576102d6565b806316c38b3c1161029357806316c38b3c146103775780631e33fc6b1461038a57806324620639146103a05780632af64bd3146103b35780632e5de389146103bb57806342e32f13146103ce576102d6565b806303f048b0146102db57806304f3bcec146103075780630692b1701461031c5780630c9c81a1146103315780630e54a19b146103445780631627540c14610364575b600080fd5b6102ee6102e9366004612e43565b610638565b6040516102fe94939291906134d3565b60405180910390f35b61030f6106cf565b6040516102fe9190613414565b61032f61032a366004612d5e565b6106e3565b005b61032f61033f366004612e43565b610867565b610357610352366004612dce565b6108af565b6040516102fe919061335e565b61032f610372366004612cab565b610960565b61032f610385366004612e07565b6109b3565b610392610a28565b6040516102fe9291906133a3565b61032f6103ae366004612e7f565b610d1b565b610357610dae565b61032f6103c9366004612dce565b610ecb565b6103576103dc366004612e43565b610f9a565b6103e9610fb1565b6040516102fe9190613387565b61032f610404366004612e7f565b610fb7565b610411611013565b6040516102fe9190613324565b61032f61042c366004612dce565b611022565b6103576110de565b6103e96110e7565b61032f61044f366004612e43565b6110ff565b6103e9610462366004612e43565b61115c565b61032f61116e565b61035761047d366004612d29565b6112c4565b61032f61130c565b6104926113a8565b6040516102fe919061334d565b61032f6104ad366004612e43565b611560565b61041161159d565b6103e96115ac565b61032f6104d0366004612e43565b6115b2565b6103926115df565b6102ee6104eb366004612e7f565b6117c0565b6103576104fe366004612cab565b61185b565b6103e9611874565b61051e610519366004612e7f565b61192d565b6040516102fe92919061336c565b610392611a20565b61032f610542366004612ce7565b611b43565b6103e9611c23565b61030f611c29565b6103e9611c38565b61032f61056d366004612ce7565b611c3e565b6103e9610580366004612e43565b611e0e565b6103e9611e20565b6103e961059b366004612e43565b611e26565b61032f6105ae366004612e7f565b611ea7565b6103e96105c1366004612e43565b611f03565b61032f6105d4366004612e7f565b611f34565b61032f6105e7366004612e7f565b611f90565b6103926105fa366004612e43565b611fec565b61032f61060d366004612e43565b612306565b610357610620366004612dce565b612396565b61032f610633366004612ce7565b6124e1565b600554604051623f048b60e41b81526000918291829182916001600160a01b03909116906303f048b090610670908890600401613387565b60806040518083038186803b15801561068857600080fd5b505afa15801561069c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106c09190810190612ee9565b92989197509550909350915050565b60035461010090046001600160a01b031681565b6106eb61259a565b8281146107135760405162461bcd60e51b815260040161070a90613433565b60405180910390fd5b60005b8381101561085857600085858381811061072c57fe5b90506040020160006002811061073e57fe5b60200201359050600086868481811061075357fe5b90506040020160016002811061076557fe5b6020020135905061077d600b8363ffffffff6125c616565b61084e57610792600b8363ffffffff61261616565b6000828152600d602052604090819020829055517f228eebae23ce843c98c840591345820f72bfe22ac0ba807deebe0ee7d467ebd3906107d3908490613387565b60405180910390a16005546001600160a01b031663ed0391548686868181106107f857fe5b905060200201356040518263ffffffff1660e01b815260040161081b9190613387565b600060405180830381600087803b15801561083557600080fd5b505af1158015610849573d6000803e3d6000fd5b505050505b5050600101610716565b5061086161116e565b50505050565b61086f61259a565b60108190556040517f08f9599493340b8255c7698bded59e30079641f4a9531613ec02055739247004906108a4908390613387565b60405180910390a150565b60085460009084146108c357506000610958565b60005b84811015610952576108f48686838181106108dd57fe5b9050602002013560086125c690919063ffffffff16565b610902576000915050610958565b85858281811061090e57fe5b90506020020135600a600086868581811061092557fe5b905060200201358152602001908152602001600020541461094a576000915050610958565b6001016108c6565b50600190505b949350505050565b61096861259a565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906108a4908390613324565b6109bb61259a565b60035460ff16151581151514156109d157610a25565b6003805460ff1916821515179081905560ff16156109ee57426002555b6003546040517f8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5916108a49160ff9091169061335e565b50565b60088054604080516020808402820181019092528281526000938493606093830182828015610a7657602002820191906000526020600020905b815481526020019060010190808311610a62575b50505050509050600081511115610d165760005b8151811015610d14576000610ab1838381518110610aa457fe5b602002602001015161264e565b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b158015610ae957600080fd5b505afa158015610afd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b219190810190612e61565b9050631c1554d160e21b811415610bc85760055460405163d2f0047560e01b8152610bc1916001600160a01b03169063d2f0047590610b64908590600401613387565b60206040518083038186803b158015610b7c57600080fd5b505afa158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bb49190810190612e61565b869063ffffffff61265916565b9450610d0b565b600080610bd3612685565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b8152600401610bfe9190613387565b604080518083038186803b158015610c1557600080fd5b505afa158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c4d9190810190612eb9565b60055460405163d2f0047560e01b8152929450909250600091610ce89185916001600160a01b039091169063d2f0047590610c8c908990600401613387565b60206040518083038186803b158015610ca457600080fd5b505afa158015610cb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610cdc9190810190612e61565b9063ffffffff6126a516565b9050610cfa888263ffffffff61265916565b97508115610d0757600196505b5050505b50600101610a8a565b505b509091565b6000610d263361185b565b905080610d455760405162461bcd60e51b815260040161070a906134c3565b600554604051632462063960e01b81526001600160a01b0390911690632462063990610d7790869086906004016133d1565b600060405180830381600087803b158015610d9157600080fd5b505af1158015610da5573d6000803e3d6000fd5b50505050505050565b60006060610dba6113a8565b905060005b8151811015610ec1576000828281518110610dd657fe5b60209081029190910181015160008181526004928390526040908190205460035491516321f8a72160e01b81529294506001600160a01b039081169361010090920416916321f8a72191610e2c91869101613387565b60206040518083038186803b158015610e4457600080fd5b505afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610e7c9190810190612cc9565b6001600160a01b0316141580610ea757506000818152600460205260409020546001600160a01b0316155b15610eb85760009350505050610ec8565b50600101610dbf565b5060019150505b90565b610ed361259a565b60005b83811015610f9357610eed8585838181106108dd57fe5b15610f8b57610f18858583818110610f0157fe5b9050602002013560086126cf90919063ffffffff16565b600a6000848484818110610f2857fe5b905060200201358152602001908152602001600020600090557f7ff80d3b3127593365b40f9f83c5c8739a8d47febe308d40e9390839b5335cf1858583818110610f6e57fe5b90506020020135604051610f829190613387565b60405180910390a15b600101610ed6565b5050505050565b6000818152600a602052604090205415155b919050565b60115481565b6000610fc23361185b565b905080610fe15760405162461bcd60e51b815260040161070a906134c3565b600554604051635246f2b960e01b81526001600160a01b0390911690635246f2b990610d7790869086906004016133d1565b6001546001600160a01b031681565b61102a61259a565b60005b83811015610f93576110448585838181106108dd57fe5b6110d657600085858381811061105657fe5b90506020020135905061107381600861261690919063ffffffff16565b80600a600086868681811061108457fe5b905060200201358152602001908152602001600020819055507fab4de7cb0edc2a9cbd9d540b749091def16b96cfc8a28853eba7fd3d74f71840816040516110cc9190613387565b60405180910390a1505b60010161102d565b60035460ff1681565b7021b7b63630ba32b930b626b0b730b3b2b960791b81565b61110761259a565b600081116111275760405162461bcd60e51b815260040161070a90613493565b600f8190556040517f3620cc91bd75c6d3d752b529a1b98b38789dd2b81a13ece55801abc83531a77f906108a4908390613387565b600d6020526000908152604090205481565b60606111786113a8565b905060005b81518110156112c057600082828151811061119457fe5b602002602001015190506000600360019054906101000a90046001600160a01b03166001600160a01b031663dacb2d0183846040516020016111d69190613319565b6040516020818303038152906040526040518363ffffffff1660e01b81526004016112029291906133b1565b60206040518083038186803b15801561121a57600080fd5b505afa15801561122e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506112529190810190612cc9565b6000838152600460205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68906112ae9084908490613395565b60405180910390a1505060010161117d565b5050565b6000805b8251811015611303576112ed8382815181106112e057fe5b602002602001015161185b565b6112fb576000915050610fac565b6001016112c8565b50600192915050565b6001546001600160a01b031633146113365760405162461bcd60e51b815260040161070a90613443565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c92611379926001600160a01b0391821692911690613332565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6040805160028082526060808301845292839291906020830190803883390190505090506524b9b9bab2b960d11b816000815181106113e357fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061140d57fe5b6020908102919091010152600b5460609080156114e15780600202604051908082528060200260200182016040528015611451578160200160208202803883390190505b50915060005b818110156114df57600b80548290811061146d57fe5b906000526020600020015483828151811061148457fe5b602002602001018181525050600d6000600b60000183815481106114a457fe5b906000526020600020015481526020019081526020016000205483838301815181106114cc57fe5b6020908102919091010152600101611457565b505b600880546040805160208084028201810190925282815260609361153a93879383018282801561153057602002820191906000526020600020905b81548152602001906001019080831161151c575b50505050506127a3565b8051909150156115555761154e81856127a3565b9450611559565b8394505b5050505090565b61156861259a565b60118190556040517fe2695216766f2a627e90e17041ac2f085fd60ea503345b039f815c69bcbcccc9906108a4908390613387565b6000546001600160a01b031681565b60025481565b6115ba61259a565b600081116115da5760405162461bcd60e51b815260040161070a90613493565b600e55565b600b805460408051602080840282018101909252828152600093849360609383018282801561162d57602002820191906000526020600020905b815481526020019060010190808311611619575b50505050509050600081511115610d165760005b8151811015610d1457600061165b838381518110610aa457fe5b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561169357600080fd5b505afa1580156116a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116cb9190810190612e61565b90506000806116d8612685565b6001600160a01b0316630c71cd23846040518263ffffffff1660e01b81526004016117039190613387565b604080518083038186803b15801561171a57600080fd5b505afa15801561172e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117529190810190612eb9565b60055460405163719130ff60e11b81529294509092506000916117919185916001600160a01b039091169063e32261fe90610c8c908990600401613387565b90506117a3888263ffffffff61265916565b975081156117b057600196505b5050600190920191506116419050565b60055460405163af07aa9d60e01b81526000918291829182916001600160a01b039091169063af07aa9d906117fb90899089906004016133d1565b60806040518083038186803b15801561181357600080fd5b505afa158015611827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061184b9190810190612ee9565b9299919850965090945092505050565b600061186e60068363ffffffff61285f16565b92915050565b6000806118803361185b565b90508061189f5760405162461bcd60e51b815260040161070a906134c3565b600560009054906101000a90046001600160a01b03166001600160a01b0316638c5825036040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156118ef57600080fd5b505af1158015611903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119279190810190612e61565b91505090565b600080600061193a612685565b6001600160a01b031663654a60ac8587631c1554d160e21b6040518463ffffffff1660e01b8152600401611970939291906133ec565b60206040518083038186803b15801561198857600080fd5b505afa15801561199c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119c09190810190612e61565b90506000806119cd610a28565b915091506000806119dc6115df565b9150915082806119e95750805b600f54909650611a0f86611a03878663ffffffff61265916565b9063ffffffff61265916565b1115965050505050505b9250929050565b6000806000611a2d6128cc565b6001600160a01b031663f023e8db631c1554d160e21b60016040518363ffffffff1660e01b8152600401611a629291906133a3565b604080518083038186803b158015611a7957600080fd5b505afa158015611a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ab19190810190612eb9565b509050600080611abf610a28565b90925090506000611ad6848463ffffffff61265916565b90506000611b056a1a1a7062e5185d7e380000611af9868563ffffffff6128e016565b9063ffffffff6128e016565b90506000611b1e600e54836126a590919063ffffffff16565b9050611b356010548261265990919063ffffffff16565b989397509295505050505050565b611b4b61259a565b60005b81811015611c1e57611b88838383818110611b6557fe5b9050602002016020611b7a9190810190612cab565b60069063ffffffff61285f16565b611c1657611bbe838383818110611b9b57fe5b9050602002016020611bb09190810190612cab565b60069063ffffffff61290a16565b7f7db05e63d635a68c62fd7fd8f3107ae8ab584a383e102d1bd8a40f4c977e465f838383818110611beb57fe5b9050602002016020611c009190810190612cab565b604051611c0d9190613324565b60405180910390a15b600101611b4e565b505050565b60105481565b6005546001600160a01b031681565b600e5481565b611c4661259a565b60005b81811015611c1e57611c77838383818110611c6057fe5b90506020020135600b6125c690919063ffffffff16565b15611e0657611ca2838383818110611c8b57fe5b90506020020135600b6126cf90919063ffffffff16565b6000611cbf848484818110611cb357fe5b9050602002013561264e565b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf757600080fd5b505afa158015611d0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d2f9190810190612e61565b600554604051636431e0bd60e01b81529192506001600160a01b031690636431e0bd90611d60908490600401613387565b600060405180830381600087803b158015611d7a57600080fd5b505af1158015611d8e573d6000803e3d6000fd5b50505050600d6000858585818110611da257fe5b905060200201358152602001908152602001600020600090557fc82c7ce2215189b78c42565fd1d25136f008aab037634d9db1f1b801ac025248848484818110611de857fe5b90506020020135604051611dfc9190613387565b60405180910390a1505b600101611c49565b600a6020526000908152604090205481565b600f5481565b60055460405163d2f0047560e01b81526000916001600160a01b03169063d2f0047590611e57908590600401613387565b60206040518083038186803b158015611e6f57600080fd5b505afa158015611e83573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061186e9190810190612e61565b6000611eb23361185b565b905080611ed15760405162461bcd60e51b815260040161070a906134c3565b60055460405163e31f27c160e01b81526001600160a01b039091169063e31f27c190610d7790869086906004016133d1565b60055460405163719130ff60e11b81526000916001600160a01b03169063e32261fe90611e57908590600401613387565b6000611f3f3361185b565b905080611f5e5760405162461bcd60e51b815260040161070a906134c3565b60055460405163e50a31b360e01b81526001600160a01b039091169063e50a31b390610d7790869086906004016133d1565b6000611f9b3361185b565b905080611fba5760405162461bcd60e51b815260040161070a906134c3565b6005546040516375ca5def60e11b81526001600160a01b039091169063eb94bbde90610d7790869086906004016133d1565b6000806000611ffa8461264e565b6001600160a01b031663dbd06c856040518163ffffffff1660e01b815260040160206040518083038186803b15801561203257600080fd5b505afa158015612046573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061206a9190810190612e61565b9050612074612685565b6001600160a01b0316632528f0fe826040518263ffffffff1660e01b815260040161209f9190613387565b60206040518083038186803b1580156120b757600080fd5b505afa1580156120cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120ef9190810190612e25565b915060006120fc8561264e565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561213457600080fd5b505afa158015612148573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061216c9190810190612e61565b6000868152600d6020526040812054919250906121889061264e565b6001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156121c057600080fd5b505afa1580156121d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121f89190810190612e61565b60055460405163719130ff60e11b81529192506000916122849184916001600160a01b039091169063e32261fe90612234908990600401613387565b60206040518083038186803b15801561224c57600080fd5b505afa158015612260573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a039190810190612e61565b90508083111561229c57506000945061230192505050565b60006122ae828563ffffffff61295c16565b905060006122e16a1a1a7062e5185d7e380000611af96122d4888763ffffffff61265916565b859063ffffffff6128e016565b90506122f86011548261265990919063ffffffff16565b97505050505050505b915091565b60006123113361185b565b9050806123305760405162461bcd60e51b815260040161070a906134c3565b600554604051637a981bdb60e11b81526001600160a01b039091169063f53037b690612360908590600401613387565b600060405180830381600087803b15801561237a57600080fd5b505af115801561238e573d6000803e3d6000fd5b505050505050565b60008382146123b75760405162461bcd60e51b815260040161070a90613433565b600b5484146123c857506000610958565b60005b8481101561242f5760008686838181106123e157fe5b9050602002013590506123fe81600b6125c690919063ffffffff16565b158061241657506000818152600d6020526040902054155b1561242657600092505050610958565b506001016123cb565b5060005b82811015610952576005546001600160a01b031663a0356f6e85858481811061245857fe5b905060200201356040518263ffffffff1660e01b815260040161247b9190613387565b60206040518083038186803b15801561249357600080fd5b505afa1580156124a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124cb9190810190612e61565b6124d9576000915050610958565b600101612433565b6124e961259a565b60005b81811015611c1e57612503838383818110611b6557fe5b156125925761253a83838381811061251757fe5b905060200201602061252c9190810190612cab565b60069063ffffffff61298416565b7fd89d2ee68ab04dca0193f48a4aff55e20fa5ec0429a8a8c1c51b8dad6178a59383838381811061256757fe5b905060200201602061257c9190810190612cab565b6040516125899190613324565b60405180910390a15b6001016124ec565b6000546001600160a01b031633146125c45760405162461bcd60e51b815260040161070a906134a3565b565b81546000906125d75750600061186e565b6000828152600184016020526040902054801515806109585750828460000160008154811061260257fe5b906000526020600020015414949350505050565b61262082826125c6565b6112c05781546000828152600180850160209081526040832084905590830185558482529020018190555050565b600061186e82612a9a565b60008282018381101561267e5760405162461bcd60e51b815260040161070a90613453565b9392505050565b60006126a06c45786368616e6765526174657360981b612a9a565b905090565b6000670de0b6b3a76400006126c0848463ffffffff612af716565b816126c757fe5b049392505050565b6126d982826125c6565b6126f55760405162461bcd60e51b815260040161070a90613463565b600081815260018301602052604090205482546000190180821461276357600084600001828154811061272457fe5b906000526020600020015490508085600001848154811061274157fe5b6000918252602080832090910192909255918252600186019052604090208290555b835484908061276e57fe5b600190038181906000526020600020016000905590558360010160008481526020019081526020016000206000905550505050565b606081518351016040519080825280602002602001820160405280156127d3578160200160208202803883390190505b50905060005b8351811015612815578381815181106127ee57fe5b602002602001015182828151811061280257fe5b60209081029190910101526001016127d9565b5060005b82518110156128585782818151811061282e57fe5b602002602001015182828651018151811061284557fe5b6020908102919091010152600101612819565b5092915050565b81546000906128705750600061186e565b6001600160a01b0382166000908152600184016020526040902054801515806109585750826001600160a01b0316846000016000815481106128ae57fe5b6000918252602090912001546001600160a01b031614949350505050565b60006126a06524b9b9bab2b960d11b612a9a565b600061267e826128fe85670de0b6b3a764000063ffffffff612af716565b9063ffffffff612b3116565b612914828261285f565b6112c05781546001600160a01b038216600081815260018086016020908152604083208590559084018655858252902090910180546001600160a01b03191690911790555050565b60008282111561297e5760405162461bcd60e51b815260040161070a90613473565b50900390565b61298e828261285f565b6129aa5760405162461bcd60e51b815260040161070a90613463565b6001600160a01b0381166000908152600183016020526040902054825460001901808214612a495760008460000182815481106129e357fe5b60009182526020909120015485546001600160a01b0390911691508190869085908110612a0c57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018601909152604090208290555b8354849080612a5457fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0394909416815260019490940190925250506040812055565b60008181526004602090815260408083205490516001600160a01b039091169182151591612aca918691016132f9565b604051602081830303815290604052906128585760405162461bcd60e51b815260040161070a9190613422565b600082612b065750600061186e565b82820282848281612b1357fe5b041461267e5760405162461bcd60e51b815260040161070a906134b3565b6000808211612b525760405162461bcd60e51b815260040161070a90613483565b6000828481612b5d57fe5b04949350505050565b803561186e816135c9565b805161186e816135c9565b60008083601f840112612b8e57600080fd5b50813567ffffffffffffffff811115612ba657600080fd5b602083019150836020820283011115611a1957600080fd5b600082601f830112612bcf57600080fd5b8135612be2612bdd82613538565b613511565b91508181835260208401935060208101905083856020840282011115612c0757600080fd5b60005b83811015612c335781612c1d8882612b66565b8452506020928301929190910190600101612c0a565b5050505092915050565b60008083601f840112612c4f57600080fd5b50813567ffffffffffffffff811115612c6757600080fd5b602083019150836040820283011115611a1957600080fd5b803561186e816135dd565b805161186e816135dd565b803561186e816135e6565b805161186e816135e6565b600060208284031215612cbd57600080fd5b60006109588484612b66565b600060208284031215612cdb57600080fd5b60006109588484612b71565b60008060208385031215612cfa57600080fd5b823567ffffffffffffffff811115612d1157600080fd5b612d1d85828601612b7c565b92509250509250929050565b600060208284031215612d3b57600080fd5b813567ffffffffffffffff811115612d5257600080fd5b61095884828501612bbe565b60008060008060408587031215612d7457600080fd5b843567ffffffffffffffff811115612d8b57600080fd5b612d9787828801612c3d565b9450945050602085013567ffffffffffffffff811115612db657600080fd5b612dc287828801612b7c565b95989497509550505050565b60008060008060408587031215612de457600080fd5b843567ffffffffffffffff811115612dfb57600080fd5b612d9787828801612b7c565b600060208284031215612e1957600080fd5b60006109588484612c7f565b600060208284031215612e3757600080fd5b60006109588484612c8a565b600060208284031215612e5557600080fd5b60006109588484612c95565b600060208284031215612e7357600080fd5b60006109588484612ca0565b60008060408385031215612e9257600080fd5b6000612e9e8585612c95565b9250506020612eaf85828601612c95565b9150509250929050565b60008060408385031215612ecc57600080fd5b6000612ed88585612ca0565b9250506020612eaf85828601612c8a565b60008060008060808587031215612eff57600080fd5b6000612f0b8787612ca0565b9450506020612f1c87828801612ca0565b9350506040612f2d87828801612ca0565b9250506060612f3e87828801612ca0565b91505092959194509250565b6000612f568383612fcf565b505060200190565b612f678161356c565b82525050565b6000612f788261355f565b612f828185613563565b9350612f8d83613559565b8060005b83811015612fbb578151612fa58882612f4a565b9750612fb083613559565b925050600101612f91565b509495945050505050565b612f6781613577565b612f6781610ec8565b612f67612fe482610ec8565b610ec8565b612f6781613588565b6000612ffd8261355f565b6130078185613563565b9350613017818560208601613593565b613020816135bf565b9093019392505050565b6000613037601b83613563565b7f496e707574206172726179206c656e677468206d69736d617463680000000000815260200192915050565b6000613070603583613563565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b60006130c7601b83613563565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000613100601383613563565b7222b632b6b2b73a103737ba1034b71039b2ba1760691b815260200192915050565b600061312f601e83613563565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000613168601a83613563565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b60006131a1601183610fac565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006131ce601683613563565b7504d7573742062652067726561746572207468616e20360541b815260200192915050565b6000613200602f83613563565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b6000613251602183613563565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000613294601983613563565b7f4f6e6c7920636f6c6c61746572616c20636f6e74726163747300000000000000815260200192915050565b60006132cd601983610fac565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b600061330482613194565b91506133108284612fd8565b50602001919050565b6000613304826132c0565b6020810161186e8284612f5e565b604081016133408285612f5e565b61267e6020830184612f5e565b6020808252810161267e8184612f6d565b6020810161186e8284612fc6565b6040810161337a8285612fc6565b61267e6020830184612fc6565b6020810161186e8284612fcf565b604081016133408285612fcf565b6040810161337a8285612fcf565b604081016133bf8285612fcf565b81810360208301526109588184612ff2565b604081016133df8285612fcf565b61267e6020830184612fcf565b606081016133fa8286612fcf565b6134076020830185612fcf565b6109586040830184612fcf565b6020810161186e8284612fe9565b6020808252810161267e8184612ff2565b6020808252810161186e8161302a565b6020808252810161186e81613063565b6020808252810161186e816130ba565b6020808252810161186e816130f3565b6020808252810161186e81613122565b6020808252810161186e8161315b565b6020808252810161186e816131c1565b6020808252810161186e816131f3565b6020808252810161186e81613244565b6020808252810161186e81613287565b608081016134e18287612fcf565b6134ee6020830186612fcf565b6134fb6040830185612fcf565b6135086060830184612fcf565b95945050505050565b60405181810167ffffffffffffffff8111828210171561353057600080fd5b604052919050565b600067ffffffffffffffff82111561354f57600080fd5b5060209081020190565b60200190565b5190565b90815260200190565b600061186e8261357c565b151590565b6001600160a01b031690565b600061186e8261356c565b60005b838110156135ae578181015183820152602001613596565b838111156108615750506000910152565b601f01601f191690565b6135d28161356c565b8114610a2557600080fd5b6135d281613577565b6135d281610ec856fea365627a7a72315820a0e725547214f8a9c363eddb3d119536a2340560fe7b47d887300807427385ca6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract CollateralManagerState",
							"name": "_state",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_maxDebt",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_baseBorrowRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_baseShortRate",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "baseBorrowRate",
							"type": "uint256"
						}
					],
					"name": "BaseBorrowRateUpdated",
					"type": "event",
					"signature": "0x08f9599493340b8255c7698bded59e30079641f4a9531613ec02055739247004"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "baseShortRate",
							"type": "uint256"
						}
					],
					"name": "BaseShortRateUpdated",
					"type": "event",
					"signature": "0xe2695216766f2a627e90e17041ac2f085fd60ea503345b039f815c69bcbcccc9"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "CollateralAdded",
					"type": "event",
					"signature": "0x7db05e63d635a68c62fd7fd8f3107ae8ab584a383e102d1bd8a40f4c977e465f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "CollateralRemoved",
					"type": "event",
					"signature": "0xd89d2ee68ab04dca0193f48a4aff55e20fa5ec0429a8a8c1c51b8dad6178a593"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "liquidationPenalty",
							"type": "uint256"
						}
					],
					"name": "LiquidationPenaltyUpdated",
					"type": "event",
					"signature": "0xbfb22c07314f4682bba789860ceb851eb8cea2d867920332b2a42cf56be5b2e9"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxDebt",
							"type": "uint256"
						}
					],
					"name": "MaxDebtUpdated",
					"type": "event",
					"signature": "0x3620cc91bd75c6d3d752b529a1b98b38789dd2b81a13ece55801abc83531a77f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "isPaused",
							"type": "bool"
						}
					],
					"name": "PauseChanged",
					"type": "event",
					"signature": "0x8fb6c181ee25a520cf3dd6565006ef91229fcfe5a989566c2a3b8c115570cec5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "PynthAdded",
					"type": "event",
					"signature": "0xab4de7cb0edc2a9cbd9d540b749091def16b96cfc8a28853eba7fd3d74f71840"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "PynthRemoved",
					"type": "event",
					"signature": "0x7ff80d3b3127593365b40f9f83c5c8739a8d47febe308d40e9390839b5335cf1"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "ShortablePynthAdded",
					"type": "event",
					"signature": "0x228eebae23ce843c98c840591345820f72bfe22ac0ba807deebe0ee7d467ebd3"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "ShortablePynthRemoved",
					"type": "event",
					"signature": "0xc82c7ce2215189b78c42565fd1d25136f008aab037634d9db1f1b801ac025248"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "CONTRACT_NAME",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x614d08f8"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "collaterals",
							"type": "address[]"
						}
					],
					"name": "addCollaterals",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xbbb601cd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "pynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x55bd615c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[2][]",
							"name": "requiredPynthAndInverseNamesInResolver",
							"type": "bytes32[2][]"
						},
						{
							"internalType": "bytes32[]",
							"name": "pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addShortablePynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0692b170"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "requiredPynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "arePynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0e54a19b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "requiredPynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "areShortablePynthsSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xfb5aa1e1"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "baseBorrowRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xbf386682"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "baseShortRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4db7764c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe50a31b3"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "decrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5246f2b9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "exceedsDebtLimit",
					"outputs": [
						{
							"internalType": "bool",
							"name": "canIssue",
							"type": "bool"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb4d6cb40"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "getBorrowRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "borrowRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xba1c5e80"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "getNewLoanId",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xb3b46732"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x03f048b0"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "getShortRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "shortRate",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "rateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xee81f790"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "index",
							"type": "uint256"
						}
					],
					"name": "getShortRatesAndTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "entryRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastRate",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastUpdated",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "newIndex",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaf07aa9d"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "collaterals",
							"type": "address[]"
						}
					],
					"name": "hasAllCollaterals",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x744d646e"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "collateral",
							"type": "address"
						}
					],
					"name": "hasCollateral",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb38988f7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementLongs",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xeb94bbde"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "incrementShorts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xe31f27c1"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currencyKey",
							"type": "bytes32"
						}
					],
					"name": "isPynthManaged",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x42e32f13"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "lastPauseTime",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x91b4ded9"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "long",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd2f00475"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxDebt",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xd0064c00"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "paused",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x5c975abb"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "pynthToInversePynth",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7060f9e8"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "pynthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcd285020"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address[]",
							"name": "collaterals",
							"type": "address[]"
						}
					],
					"name": "removeCollaterals",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xffa749cd"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "pynths",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "removePynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x2e5de389"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "pynths",
							"type": "bytes32[]"
						}
					],
					"name": "removeShortablePynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xcc7ae663"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_baseBorrowRate",
							"type": "uint256"
						}
					],
					"name": "setBaseBorrowRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0c9c81a1"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_baseShortRate",
							"type": "uint256"
						}
					],
					"name": "setBaseShortRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8b173e81"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_maxDebt",
							"type": "uint256"
						}
					],
					"name": "setMaxDebt",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x6526941b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_paused",
							"type": "bool"
						}
					],
					"name": "setPaused",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x16c38b3c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_utilisationMultiplier",
							"type": "uint256"
						}
					],
					"name": "setUtilisationMultiplier",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x9f7eac37"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "short",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe32261fe"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "state",
					"outputs": [
						{
							"internalType": "contract CollateralManagerState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc19d93fb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalLong",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "pusdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x1e33fc6b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "totalShort",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "pusdValue",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "anyRateIsInvalid",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xad79a858"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateBorrowRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf53037b6"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "rate",
							"type": "uint256"
						}
					],
					"name": "updateShortRates",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x24620639"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "utilisationMultiplier",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc9e18015"
				}
			],
			"source": {
				"keccak256": "0x007a408d694b3aadbe51582ef929e758db97bfeb65e82663802bba7b8faa00fd",
				"urls": [
					"bzz-raw://04ea9c3b5a3c9e60328fda15c57eb50c5bae55023349eb58c7ec43f1fbd6f3ad",
					"dweb:/ipfs/QmUo2gPpYPGMow85bzEX6ju89vK3TqpoaU7PUv1egyVQsp"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralManager.sol": "CollateralManager"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralManager.sol": {
						"keccak256": "0x007a408d694b3aadbe51582ef929e758db97bfeb65e82663802bba7b8faa00fd",
						"urls": [
							"bzz-raw://04ea9c3b5a3c9e60328fda15c57eb50c5bae55023349eb58c7ec43f1fbd6f3ad",
							"dweb:/ipfs/QmUo2gPpYPGMow85bzEX6ju89vK3TqpoaU7PUv1egyVQsp"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralState": {
			"bytecode": "60806040523480156200001157600080fd5b5060405162000f6c38038062000f6c83398101604081905262000034916200015a565b80826001600160a01b038116620000685760405162461bcd60e51b81526004016200005f9062000267565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000b59184906200022f565b60405180910390a1506000546001600160a01b0316620000e95760405162461bcd60e51b81526004016200005f9062000255565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e0390620001369083906200021f565b60405180910390a1505050620002c2565b80516200015481620002a8565b92915050565b600080604083850312156200016e57600080fd5b60006200017c858562000147565b92505060206200018f8582860162000147565b9150509250929050565b620001a48162000294565b82525050565b620001a48162000282565b6000620001c460118362000279565b7013dddb995c881b5d5cdd081899481cd95d607a1b815260200192915050565b6000620001f360198362000279565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60208101620001548284620001aa565b604081016200023f828562000199565b6200024e6020830184620001aa565b9392505050565b602080825281016200015481620001b5565b602080825281016200015481620001e4565b90815260200190565b60006001600160a01b03821662000154565b600062000154826000620001548262000282565b620002b38162000282565b8114620002bf57600080fd5b50565b610c9a80620002d26000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c806379ba50971161007157806379ba50971461011a5780638da5cb5b1461012257806398c61c371461012a578063a1c5158614610152578063aefc4ccb14610172578063e0b6adbc1461017a576100a9565b80631627540c146100ae57806344dce41c146100c357806352f445ca146100d657806353a47bb7146100e95780635c33120414610107575b600080fd5b6100c16100bc36600461088c565b61019a565b005b6100c16100d13660046108ec565b6101f8565b6100c16100e436600461088c565b610352565b6100f16103a5565b6040516100fe9190610adc565b60405180910390f35b6100c16101153660046108ec565b6103b4565b6100c161048d565b6100f1610529565b61013d6101383660046108b2565b610538565b6040516100fe99989796959493929190610b59565b6101656101603660046108b2565b6105ad565b6040516100fe9190610b3c565b6100f16106e4565b61018d61018836600461088c565b6106f3565b6040516100fe9190610b4b565b6101a261070e565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906101ed908390610adc565b60405180910390a150565b6002546001600160a01b0316331461022b5760405162461bcd60e51b815260040161022290610b2c565b60405180910390fd5b6020808201516001600160a01b03166000908152600390915260408120905b815481101561034d57826000015182828154811061026457fe5b906000526020600020906009020160000154141561034557826003600085602001516001600160a01b03166001600160a01b0316815260200190815260200160002082815481106102b157fe5b6000918252602091829020835160099290920201908155908201516001820180546001600160a01b0319166001600160a01b0390921691909117905560408201516002820155606082015160038201556080820151600482015560a082015160058201805460ff191691151591909117905560c0820151600682015560e08201516007820155610100909101516008909101555b60010161024a565b505050565b61035a61070e565b600280546001600160a01b0319166001600160a01b0383161790556040517f73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03906101ed908390610adc565b6001546001600160a01b031681565b6002546001600160a01b031633146103de5760405162461bcd60e51b815260040161022290610b2c565b602081810180516001600160a01b03908116600090815260038085526040808320805460018082018355918552969093208751600990970201958655935191850180546001600160a01b03191692909316919091179091559083015160028301556060830151908201556080820151600482015560a082015160058201805460ff191691151591909117905560c0820151600682015560e0820151600782015561010090910151600890910155565b6001546001600160a01b031633146104b75760405162461bcd60e51b815260040161022290610b0c565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926104fa926001600160a01b0391821692911690610aea565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6000546001600160a01b031681565b6003602052816000526040600020818154811061055157fe5b60009182526020909120600990910201805460018201546002830154600384015460048501546005860154600687015460078801546008909801549699506001600160a01b03909516975092959194909360ff90931692919089565b6105b561073a565b6001600160a01b0383166000908152600360209081526040808320805482518185028101850190935280835260609492939192909184015b82821015610683576000848152602090819020604080516101208101825260098602909201805483526001808201546001600160a01b0316848601526002820154928401929092526003810154606084015260048101546080840152600581015460ff16151560a0840152600681015460c0840152600781015460e08401526008015461010083015290835290920191016105ed565b509293506000925050505b81518110156106db57838282815181106106a457fe5b60200260200101516000015114156106d3578181815181106106c257fe5b6020026020010151925050506106de565b60010161068e565b50505b92915050565b6002546001600160a01b031681565b6001600160a01b031660009081526003602052604090205490565b6000546001600160a01b031633146107385760405162461bcd60e51b815260040161022290610b1c565b565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b80356106de81610c2e565b80356106de81610c45565b80356106de81610c4e565b600061012082840312156107c857600080fd5b6107d3610120610bdf565b905060006107e184846107aa565b82525060206107f284848301610794565b6020830152506040610806848285016107aa565b604083015250606061081a848285016107aa565b606083015250608061082e848285016107aa565b60808301525060a06108428482850161079f565b60a08301525060c0610856848285016107aa565b60c08301525060e061086a848285016107aa565b60e08301525061010061087f848285016107aa565b6101008301525092915050565b60006020828403121561089e57600080fd5b60006108aa8484610794565b949350505050565b600080604083850312156108c557600080fd5b60006108d18585610794565b92505060206108e2858286016107aa565b9150509250929050565b600061012082840312156108ff57600080fd5b60006108aa84846107b5565b61091481610c0f565b82525050565b61091481610c1a565b61091481610c1f565b6000610939603583610c06565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000610990602f83610c06565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006109e1603483610c06565b7f4f6e6c7920746865206173736f63696174656420636f6e74726163742063616e815273103832b93337b936903a3434b99030b1ba34b7b760611b602082015260400192915050565b8051610120830190610a3c8482610923565b506020820151610a4f602085018261090b565b506040820151610a626040850182610923565b506060820151610a756060850182610923565b506080820151610a886080850182610923565b5060a0820151610a9b60a085018261091a565b5060c0820151610aae60c0850182610923565b5060e0820151610ac160e0850182610923565b50610100820151610ad6610100850182610923565b50505050565b602081016106de828461090b565b60408101610af8828561090b565b610b05602083018461090b565b9392505050565b602080825281016106de8161092c565b602080825281016106de81610983565b602080825281016106de816109d4565b61012081016106de8284610a2a565b602081016106de8284610923565b6101208101610b68828c610923565b610b75602083018b61090b565b610b82604083018a610923565b610b8f6060830189610923565b610b9c6080830188610923565b610ba960a083018761091a565b610bb660c0830186610923565b610bc360e0830185610923565b610bd1610100830184610923565b9a9950505050505050505050565b60405181810167ffffffffffffffff81118282101715610bfe57600080fd5b604052919050565b90815260200190565b60006106de82610c22565b151590565b90565b6001600160a01b031690565b610c3781610c0f565b8114610c4257600080fd5b50565b610c3781610c1a565b610c3781610c1f56fea365627a7a72315820b8d9901f803f139700c40648bd3b4bc5847bfe803e3c5e01b7c633e4e1b9231f6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "associatedContract",
							"type": "address"
						}
					],
					"name": "AssociatedContractUpdated",
					"type": "event",
					"signature": "0x73f20cff579e8a4086fa607db83867595f1b6a798e718c0bfa0b94a404128e03"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "associatedContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xaefc4ccb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						}
					],
					"name": "createLoan",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5c331204"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "loanID",
							"type": "uint256"
						}
					],
					"name": "getLoan",
					"outputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "",
							"type": "tuple"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xa1c51586"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getNumLoans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "numLoans",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe0b6adbc"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "loans",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "address payable",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bool",
							"name": "short",
							"type": "bool"
						},
						{
							"internalType": "uint256",
							"name": "accruedInterest",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "interestIndex",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "lastInteraction",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x98c61c37"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_associatedContract",
							"type": "address"
						}
					],
					"name": "setAssociatedContract",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x52f445ca"
				},
				{
					"constant": false,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						}
					],
					"name": "updateLoan",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x44dce41c"
				}
			],
			"source": {
				"keccak256": "0xa2401c1d574ce471060177b1112a623398a50bed69b142f522f5419a6862af65",
				"urls": [
					"bzz-raw://5b97eb1c74cb874422f5e35ec1c5e6d75d038bfe294751e4bca29e8054fbcc44",
					"dweb:/ipfs/QmRHPP95pj3WfYrFC7DkXncT1S2HGme1B4NnkVyzcoWTdw"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralState.sol": "CollateralState"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralState.sol": {
						"keccak256": "0xa2401c1d574ce471060177b1112a623398a50bed69b142f522f5419a6862af65",
						"urls": [
							"bzz-raw://5b97eb1c74cb874422f5e35ec1c5e6d75d038bfe294751e4bca29e8054fbcc44",
							"dweb:/ipfs/QmRHPP95pj3WfYrFC7DkXncT1S2HGme1B4NnkVyzcoWTdw"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralEth": {
			"bytecode": "60806040526032600d5561012c600e55600f805460ff191660011790553480156200002957600080fd5b5060405162005eac38038062005eac8339810160408190526200004c916200016c565b868686868686868380876001600160a01b038116620000885760405162461bcd60e51b81526004016200007f9062000294565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000d59184906200026e565b60405180910390a150600280546001600160a01b03199081166001600160a01b03938416179091556006805482169883169890981790975560058054909716981697909717909455600491909155600a5550600b5550506001601055506200031595505050505050565b80516200014c81620002e5565b92915050565b80516200014c81620002ff565b80516200014c816200030a565b600080600080600080600060e0888a0312156200018857600080fd5b6000620001968a8a6200015f565b9750506020620001a98a828b016200013f565b9650506040620001bc8a828b016200013f565b9550506060620001cf8a828b016200013f565b9450506080620001e28a828b0162000152565b93505060a0620001f58a828b0162000152565b92505060c0620002088a828b0162000152565b91505092959891949750929550565b6200022281620002d8565b82525050565b6200022281620002af565b600062000242601983620002a6565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b604081016200027e828562000217565b6200028d602083018462000228565b9392505050565b602080825281016200014c8162000233565b90815260200190565b60006200014c82620002cc565b90565b60006200014c82620002af565b6001600160a01b031690565b60006200014c82620002bf565b620002f081620002af565b8114620002fc57600080fd5b50565b620002f081620002bc565b620002f081620002bf565b615b8780620003256000396000f3fe6080604052600436106102465760003560e01c80635eb2ad0111610139578063b562a1ab116100b6578063d2b8035a1161007a578063d2b8035a14610638578063dac8cf6814610658578063de81eda914610678578063e74337c614610698578063eb8e3b65146106b8578063f3f43703146106cd57610246565b8063b562a1ab146105b9578063ba2de9bc146105ce578063c19d93fb146105e3578063cd285020146105f8578063d0ebdbe71461061857610246565b80638cd2e0c7116100fd5780638cd2e0c71461052f5780638da5cb5b1461054f57806390abb4d914610564578063925ead1114610584578063a76cdfa51461059957610246565b80635eb2ad01146104a357806374185360146104c357806379ba5097146104d85780637e132355146104ed578063899ffef41461050d57610246565b8063361e2086116101c757806347e7ef241161018b57806347e7ef2414610419578063481c6a751461042c5780634c17ace41461044e57806353a47bb71461046e57806355bd615c1461048357610246565b8063361e20861461038f57806337551ec6146103a4578063379607f5146103c45780634065b81b146103e4578063441a3e70146103f957610246565b80630cdd1c651161020e5780630cdd1c65146102f85780630e54a19b1461031857806315aaf4dd146103455780631627540c1461035a5780632af64bd31461037a57610246565b806304f3bcec1461024b57806306c19e3f146102765780630710285c1461028b5780630a153c97146102ab5780630aebeb4e146102d8575b600080fd5b34801561025757600080fd5b506102606106ed565b60405161026d91906157e3565b60405180910390f35b610289610284366004614d35565b6106fc565b005b34801561029757600080fd5b506102896102a6366004614bee565b61070e565b3480156102b757600080fd5b506102cb6102c6366004614d35565b610754565b60405161026d9190615771565b3480156102e457600080fd5b506102896102f3366004614d17565b610890565b34801561030457600080fd5b50610289610313366004614d17565b6108d3565b34801561032457600080fd5b50610338610333366004614c3b565b6109be565b60405161026d9190615763565b34801561035157600080fd5b506102cb610a80565b34801561036657600080fd5b50610289610375366004614b78565b610a86565b34801561038657600080fd5b50610338610ad9565b34801561039b57600080fd5b506102cb610bf1565b3480156103b057600080fd5b506102cb6103bf366004614d17565b610bf7565b3480156103d057600080fd5b506102896103df366004614d17565b610c15565b3480156103f057600080fd5b50610338610cea565b34801561040557600080fd5b50610289610414366004614d35565b610cf3565b610289610427366004614bb4565b610d37565b34801561043857600080fd5b50610441610d42565b60405161026d91906156f2565b34801561045a57600080fd5b50610289610469366004614d17565b610d51565b34801561047a57600080fd5b50610441610e2d565b34801561048f57600080fd5b5061028961049e366004614c3b565b610e3c565b3480156104af57600080fd5b506102896104be366004614bb4565b610f02565b3480156104cf57600080fd5b50610289610f38565b3480156104e457600080fd5b5061028961108a565b3480156104f957600080fd5b506102cb610508366004614d35565b611126565b34801561051957600080fd5b506105226111cf565b60405161026d9190615752565b34801561053b57600080fd5b5061028961054a366004614bee565b611334565b34801561055b57600080fd5b50610441611340565b34801561057057600080fd5b5061028961057f366004614cab565b61134f565b34801561059057600080fd5b506102cb61139b565b3480156105a557600080fd5b506102896105b4366004614d17565b6113a1565b3480156105c557600080fd5b506102cb6113de565b3480156105da57600080fd5b506102cb6113e4565b3480156105ef57600080fd5b506102606113ea565b34801561060457600080fd5b506102cb610613366004614d17565b6113f9565b34801561062457600080fd5b50610289610633366004614b78565b61140b565b34801561064457600080fd5b50610289610653366004614d35565b611464565b34801561066457600080fd5b506102cb610673366004614d54565b61146e565b34801561068457600080fd5b50610441610693366004614d17565b6115c7565b3480156106a457600080fd5b506102cb6106b3366004614d54565b6115e2565b3480156106c457600080fd5b506102cb6118cc565b3480156106d957600080fd5b506102cb6106e8366004614b78565b6118d2565b6002546001600160a01b031681565b61070934838360006118e4565b505050565b600061071b848484612073565b3360009081526011602052604090205490915061073e908263ffffffff61243e16565b3360009081526011602052604090205550505050565b60008061075f61246c565b905061076961251e565b6001600160a01b031663654a60ac85856004546040518463ffffffff1660e01b815260040161079a939291906157bb565b60206040518083038186803b1580156107b257600080fd5b505afa1580156107c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107ea9190810190614d92565b915061088861087b8273__$1d392f176c99aac414d39c3c003a086de8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561083757600080fd5b505af415801561084b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061086f9190810190614d92565b9063ffffffff61243e16565b839063ffffffff61253916565b949350505050565b600061089c3383612563565b336000908152601160205260409020549091506108bf908263ffffffff61243e16565b336000908152601160205260409020555050565b6108db612a2e565b73__$1d392f176c99aac414d39c3c003a086de8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561091f57600080fd5b505af4158015610933573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109579190810190614d92565b811161097e5760405162461bcd60e51b815260040161097590615812565b60405180910390fd5b600a8190556040517f813a44586e8ecb9390b2568dbe810e193087f80e415c8845340ef06d4cbb42a5906109b3908390615771565b60405180910390a150565b60075460009084146109d257506000610888565b60005b84811015610a745760008686838181106109eb57fe5b9050602002013590508060078381548110610a0257fe5b906000526020600020015414610a1d57600092505050610888565b60078281548110610a2a57fe5b906000526020600020015460086000878786818110610a4557fe5b9050602002013581526020019081526020016000205414610a6b57600092505050610888565b506001016109d5565b50600195945050505050565b600e5481565b610a8e612a2e565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906109b39083906156f2565b60006060610ae56111cf565b905060005b8151811015610be7576000828281518110610b0157fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610b52908590600401615771565b60206040518083038186803b158015610b6a57600080fd5b505afa158015610b7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610ba29190810190614b96565b6001600160a01b0316141580610bcd57506000818152600360205260409020546001600160a01b0316155b15610bde5760009350505050610bee565b50600101610aea565b5060019150505b90565b600c5481565b60078181548110610c0457fe5b600091825260209091200154905081565b601080546001019081905533600090815260116020526040902054610c40908363ffffffff612a5a16565b336000818152601160205260408082209390935591518490610c61906156e7565b60006040518083038185875af1925050503d8060008114610c9e576040519150601f19603f3d011682016040523d82523d6000602084013e610ca3565b606091505b5050905080610cc45760405162461bcd60e51b815260040161097590615852565b506010548114610ce65760405162461bcd60e51b8152600401610975906159b2565b5050565b600f5460ff1681565b6000610cff8383612a82565b33600090815260116020526040902054909150610d22908263ffffffff61243e16565b33600090815260116020526040902055505050565b610ce6828234612c85565b6006546001600160a01b031681565b610d59612a2e565b73__$1d392f176c99aac414d39c3c003a086de8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9d57600080fd5b505af4158015610db1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610dd59190810190614d92565b610e1002811115610df85760405162461bcd60e51b815260040161097590615922565b600e8190556040517f4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c2361906109b3908390615771565b6001546001600160a01b031681565b610e44612a2e565b828114610e635760405162461bcd60e51b815260040161097590615802565b60005b83811015610ef3576000858583818110610e7c57fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018190559250829160089150868686818110610ed057fe5b602090810292909201358352508101919091526040016000205550600101610e66565b50610efc610f38565b50505050565b610f0a612a2e565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6060610f426111cf565b905060005b8151811015610ce6576000828281518110610f5e57fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610fa091906156dc565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610fcc92919061579b565b60206040518083038186803b158015610fe457600080fd5b505afa158015610ff8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061101c9190810190614b96565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890611078908490849061577f565b60405180910390a15050600101610f47565b6001546001600160a01b031633146110b45760405162461bcd60e51b815260040161097590615842565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926110f7926001600160a01b0391821692911690615729565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006111c861113361251e565b6001600160a01b031663654a60ac60045486866040518463ffffffff1660e01b8152600401611164939291906157bb565b60206040518083038186803b15801561117c57600080fd5b505afa158015611190573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506111b49190810190614d92565b6111bc612e7c565b9063ffffffff61253916565b9392505050565b6060806111da612f0c565b60408051600580825260c08201909252919250606091906020820160a08038833901905050905066119959541bdbdb60ca1b8160008151811061121957fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061124357fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160028151811061126957fe5b6020026020010181815250506b53797374656d53746174757360a01b8160038151811061129257fe5b60200260200101818152505068141e5b9d1a1c1554d160ba1b816004815181106112b857fe5b60200260200101818152505060606112d08383612f5d565b905061132c81600780548060200260200160405190810160405280929190818152602001828054801561132257602002820191906000526020600020905b81548152602001906001019080831161130e575b5050505050612f5d565b935050505090565b61070983338484613019565b6000546001600160a01b031681565b611357612a2e565b600f805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916109b39160ff90911690615763565b600a5481565b6113a9612a2e565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c906109b3908390615771565b60045481565b600b5481565b6005546001600160a01b031681565b60086020526000908152604090205481565b611413612a2e565b600680546001600160a01b0319166001600160a01b0383811691909117918290556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d926109b39216906156f2565b610ce6828261333a565b60008061147961251e565b6001600160a01b031663654a60ac6004548560400151631c1554d160e21b6040518463ffffffff1660e01b81526004016114b5939291906157bb565b60206040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115059190810190614d92565b9050600061151161251e565b6001600160a01b031663654a60ac856060015161153f8760c00151886080015161243e90919063ffffffff16565b631c1554d160e21b6040518463ffffffff1660e01b8152600401611565939291906157bb565b60206040518083038186803b15801561157d57600080fd5b505afa158015611591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115b59190810190614d92565b9050610888828263ffffffff61386016565b6009602052600090815260409020546001600160a01b031681565b6000806115ed61246c565b905060006115f961251e565b6001600160a01b031663654a60ac85606001516116278760c00151886080015161243e90919063ffffffff16565b631c1554d160e21b6040518463ffffffff1660e01b815260040161164d939291906157bb565b60206040518083038186803b15801561166557600080fd5b505afa158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061169d9190810190614d92565b905060006116a961251e565b6001600160a01b031663654a60ac6004548760400151631c1554d160e21b6040518463ffffffff1660e01b81526004016116e5939291906157bb565b60206040518083038186803b1580156116fd57600080fd5b505afa158015611711573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117359190810190614d92565b9050600073__$1d392f176c99aac414d39c3c003a086de8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561177d57600080fd5b505af4158015611791573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117b59190810190614d92565b905060006117de6117d1600a548561386090919063ffffffff16565b859063ffffffff612a5a16565b9050600061181761180a600a546117fe898761243e90919063ffffffff16565b9063ffffffff61386016565b849063ffffffff612a5a16565b9050600061182b838363ffffffff61386016565b905061183561251e565b6001600160a01b031663654a60ac631c1554d160e21b838c606001516040518463ffffffff1660e01b815260040161186f939291906157bb565b60206040518083038186803b15801561188757600080fd5b505afa15801561189b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118bf9190810190614d92565b9998505050505050505050565b600d5481565b60116020526000908152604090205481565b60006118ee61388a565b6118f661392c565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561192e57600080fd5b505afa158015611942573d6000803e3d6000fd5b5050600f5460ff16915061196a90505760405162461bcd60e51b815260040161097590615912565b6000838152600860205260409020546119955760405162461bcd60e51b815260040161097590615972565b61199d61251e565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b81526004016119c89190615771565b60206040518083038186803b1580156119e057600080fd5b505afa1580156119f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a189190810190614cc9565b15611a355760405162461bcd60e51b8152600401610975906158c2565b600b54851015611a575760405162461bcd60e51b8152600401610975906158b2565b600d5460055460405163382dab6f60e21b81526001600160a01b039091169063e0b6adbc90611a8a903390600401615700565b60206040518083038186803b158015611aa257600080fd5b505afa158015611ab6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ada9190810190614d92565b10611af75760405162461bcd60e51b815260040161097590615892565b600080611b02613946565b6001600160a01b031663b4d6cb4087876040518363ffffffff1660e01b8152600401611b2f92919061578d565b604080518083038186803b158015611b4657600080fd5b505afa158015611b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611b7e9190810190614ce7565b91509150818015611b8d575080155b611ba95760405162461bcd60e51b815260040161097590615992565b611bb38786611126565b861115611bd25760405162461bcd60e51b815260040161097590615942565b6000611be9600c548861395590919063ffffffff16565b90506000611bfd888363ffffffff612a5a16565b9050611c07613946565b6001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b158015611c4157600080fd5b505af1158015611c55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c799190810190614d92565b9450611c836148f2565b604051806101200160405280878152602001336001600160a01b031681526020018b81526020018981526020018a815260200188151581526020016000815260200160008152602001428152509050611cdb8161396a565b60055460405163170cc48160e21b81529192506001600160a01b031690635c33120490611d0c9084906004016159e2565b600060405180830381600087803b158015611d2657600080fd5b505af1158015611d3a573d6000803e3d6000fd5b50505050611d488389613e56565b8615611f3e57611d56614042565b6001600160a01b031663867904b433611d6d61251e565b6001600160a01b031663654a60ac8c87631c1554d160e21b6040518463ffffffff1660e01b8152600401611da3939291906157bb565b60206040518083038186803b158015611dbb57600080fd5b505afa158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611df39190810190614d92565b6040518363ffffffff1660e01b8152600401611e1092919061570e565b600060405180830381600087803b158015611e2a57600080fd5b505af1158015611e3e573d6000803e3d6000fd5b50505050611e4a613946565b6001600160a01b031663e31f27c1898b6040518363ffffffff1660e01b8152600401611e7792919061578d565b600060405180830381600087803b158015611e9157600080fd5b505af1158015611ea5573d6000803e3d6000fd5b5050506000898152600960205260409020546001600160a01b0316159050611f39576000888152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a5190611f069033908d9060040161570e565b600060405180830381600087803b158015611f2057600080fd5b505af1158015611f34573d6000803e3d6000fd5b505050505b61201d565b600088815260086020526040902054611f5690614059565b6001600160a01b031663867904b433846040518363ffffffff1660e01b8152600401611f8392919061570e565b600060405180830381600087803b158015611f9d57600080fd5b505af1158015611fb1573d6000803e3d6000fd5b50505050611fbd613946565b6001600160a01b031663eb94bbde898b6040518363ffffffff1660e01b8152600401611fea92919061578d565b600060405180830381600087803b15801561200457600080fd5b505af1158015612018573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a878b8d8c8860405161205e959493929190615a2f565b60405180910390a25050505050949350505050565b600061207d61388a565b61208561392c565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156120bd57600080fd5b505afa1580156120d1573d6000803e3d6000fd5b50505050600082116120f55760405162461bcd60e51b815260040161097590615872565b6120fd6148f2565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c515869061212f9088908890600401615744565b6101206040518083038186803b15801561214857600080fd5b505afa15801561215c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506121809190810190614d73565b905061218b81614064565b6121948161396a565b90506121a5338260600151856140c4565b600a546121b18261146e565b106121ce5760405162461bcd60e51b8152600401610975906158a2565b60006121d9826115e2565b905060008482106121ea57846121ec565b815b9050600061220b8460c00151856080015161243e90919063ffffffff16565b905080821061222a5761221f883386614177565b9450505050506111c8565b6122348483614546565b9350612244846060015183610754565b604085015190955061225c908663ffffffff612a5a16565b604085015242610100850152612270614769565b6001600160a01b031663d6f32e063386606001516040518363ffffffff1660e01b81526004016122a192919061570e565b60206040518083038186803b1580156122b957600080fd5b505afa1580156122cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506122f19190810190614cc9565b1561230e5760405162461bcd60e51b8152600401610975906159d2565b606084015160009081526008602052604090205461232b90614059565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b815260040161235892919061570e565b600060405180830381600087803b15801561237257600080fd5b505af1158015612386573d6000803e3d6000fd5b5050600554604051631137390760e21b81526001600160a01b0390911692506344dce41c91506123ba9087906004016159e2565b600060405180830381600087803b1580156123d457600080fd5b505af11580156123e8573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c58833858960405161242b94939291906159f1565b60405180910390a2505050509392505050565b6000828201838110156124635760405162461bcd60e51b815260040161097590615882565b90505b92915050565b6000612476614780565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b81526004016124c992919061578d565b60206040518083038186803b1580156124e157600080fd5b505afa1580156124f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506125199190810190614d92565b905090565b60006125196c45786368616e6765526174657360981b614799565b6000670de0b6b3a7640000612554848463ffffffff6147f616565b8161255b57fe5b049392505050565b600061256d61388a565b61257561392c565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156125ad57600080fd5b505afa1580156125c1573d6000803e3d6000fd5b505050506125cd6148f2565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c51586906125ff9087908790600401615744565b6101206040518083038186803b15801561261857600080fd5b505afa15801561262c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126509190810190614d73565b905061265b81614064565b6126648161396a565b905060006126838260c00151836080015161243e90919063ffffffff16565b905061269882602001518360600151836140c4565b6126a0614769565b6001600160a01b031663d6f32e068684606001516040518363ffffffff1660e01b81526004016126d1929190615744565b60206040518083038186803b1580156126e957600080fd5b505afa1580156126fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506127219190810190614cc9565b1561273e5760405162461bcd60e51b8152600401610975906158d2565b606082015160009081526008602052604090205461275b90614059565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b8152600401612788929190615744565b600060405180830381600087803b1580156127a257600080fd5b505af11580156127b6573d6000803e3d6000fd5b505050508160a00151156128d4576127cc613946565b6001600160a01b0316635246f2b9836060015184608001516040518363ffffffff1660e01b815260040161280192919061578d565b600060405180830381600087803b15801561281b57600080fd5b505af115801561282f573d6000803e3d6000fd5b5050505060608201516000908152600960205260409020546001600160a01b0316156128cf57606082015160009081526009602052604090819020546080840151915163f3fef3a360e01b81526001600160a01b039091169163f3fef3a39161289c918991600401615744565b600060405180830381600087803b1580156128b657600080fd5b505af11580156128ca573d6000803e3d6000fd5b505050505b612944565b6128dc613946565b6001600160a01b031663e50a31b3836060015184608001516040518363ffffffff1660e01b815260040161291192919061578d565b600060405180830381600087803b15801561292b57600080fd5b505af115801561293f573d6000803e3d6000fd5b505050505b8160400151925061295d8260c001518360600151613e56565b600060808301819052604080840182905260c0840182905260e0840191909152426101008401526005549051631137390760e21b81526001600160a01b03909116906344dce41c906129b39085906004016159e2565b600060405180830381600087803b1580156129cd57600080fd5b505af11580156129e1573d6000803e3d6000fd5b50505050846001600160a01b03167fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f85604051612a1e9190615771565b60405180910390a2505092915050565b6000546001600160a01b03163314612a585760405162461bcd60e51b815260040161097590615952565b565b600082821115612a7c5760405162461bcd60e51b8152600401610975906158e2565b50900390565b6000612a8c61388a565b612a9461392c565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015612acc57600080fd5b505afa158015612ae0573d6000803e3d6000fd5b50505050612aec6148f2565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c5158690612b1e903390889060040161570e565b6101206040518083038186803b158015612b3757600080fd5b505afa158015612b4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b6f9190810190614d73565b9050612b7a81614064565b612b838161396a565b6040810151909150612b9b908463ffffffff612a5a16565b604082015242610100820152600a54612bb38261146e565b11612bd05760405162461bcd60e51b815260040161097590615822565b600554604051631137390760e21b81526001600160a01b03909116906344dce41c90612c009084906004016159e2565b600060405180830381600087803b158015612c1a57600080fd5b505af1158015612c2e573d6000803e3d6000fd5b50505050829150336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f330385858460400151604051612c76939291906157bb565b60405180910390a25092915050565b612c8d61388a565b612c9561392c565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015612ccd57600080fd5b505afa158015612ce1573d6000803e3d6000fd5b5050505060008111612d055760405162461bcd60e51b815260040161097590615982565b612d0d6148f2565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c5158690612d3f9087908790600401615744565b6101206040518083038186803b158015612d5857600080fd5b505afa158015612d6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d909190810190614d73565b9050612d9b81614064565b612da48161396a565b6040810151909150612dbc908363ffffffff61243e16565b604080830191909152426101008301526005549051631137390760e21b81526001600160a01b03909116906344dce41c90612dfb9084906004016159e2565b600060405180830381600087803b158015612e1557600080fd5b505af1158015612e29573d6000803e3d6000fd5b50505050836001600160a01b03167f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c84848460400151604051612e6e939291906157bb565b60405180910390a250505050565b6000612519600a5473__$1d392f176c99aac414d39c3c003a086de8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015612ec857600080fd5b505af4158015612edc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f009190810190614d92565b9063ffffffff61483016565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b81600081518110612f4e57fe5b60200260200101818152505090565b60608151835101604051908082528060200260200182016040528015612f8d578160200160208202803883390190505b50905060005b8351811015612fcf57838181518110612fa857fe5b6020026020010151828281518110612fbc57fe5b6020908102919091010152600101612f93565b5060005b825181101561301257828181518110612fe857fe5b6020026020010151828286510181518110612fff57fe5b6020908102919091010152600101612fd3565b5092915050565b61302161388a565b61302961392c565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561306157600080fd5b505afa158015613075573d6000803e3d6000fd5b50505050600081116130995760405162461bcd60e51b815260040161097590615872565b6130a16148f2565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c51586906130d39088908790600401615744565b6101206040518083038186803b1580156130ec57600080fd5b505afa158015613100573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131249190810190614d73565b905061312f81614064565b6131388161396a565b9050613149848260600151846140c4565b6131538183614546565b426101008201529050613164614769565b6001600160a01b031663d6f32e068583606001516040518363ffffffff1660e01b8152600401613195929190615744565b60206040518083038186803b1580156131ad57600080fd5b505afa1580156131c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506131e59190810190614cc9565b156132025760405162461bcd60e51b8152600401610975906159d2565b606081015160009081526008602052604090205461321f90614059565b6001600160a01b0316639dc29fac85846040518363ffffffff1660e01b815260040161324c929190615744565b600060405180830381600087803b15801561326657600080fd5b505af115801561327a573d6000803e3d6000fd5b5050600554604051631137390760e21b81526001600160a01b0390911692506344dce41c91506132ae9084906004016159e2565b600060405180830381600087803b1580156132c857600080fd5b505af11580156132dc573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f8585856080015160405161332b939291906157bb565b60405180910390a35050505050565b61334261388a565b61334a61392c565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561338257600080fd5b505afa158015613396573d6000803e3d6000fd5b505050506133a26148f2565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c51586906133d4903390879060040161570e565b6101206040518083038186803b1580156133ed57600080fd5b505afa158015613401573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134259190810190614d73565b905061343081614064565b6134398161396a565b6080810151909150613451908363ffffffff61243e16565b6080820152600a546134628261146e565b1161347f5760405162461bcd60e51b815260040161097590615832565b6000613496600c548461395590919063ffffffff16565b905060006134aa848363ffffffff612a5a16565b90508260a00151156136b7576134be613946565b6001600160a01b031663e31f27c18460600151866040518363ffffffff1660e01b81526004016134ef92919061578d565b600060405180830381600087803b15801561350957600080fd5b505af115801561351d573d6000803e3d6000fd5b50505050613529614042565b6001600160a01b031663867904b43361354061251e565b6001600160a01b031663654a60ac876060015186631c1554d160e21b6040518463ffffffff1660e01b815260040161357a939291906157bb565b60206040518083038186803b15801561359257600080fd5b505afa1580156135a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135ca9190810190614d92565b6040518363ffffffff1660e01b81526004016135e792919061570e565b600060405180830381600087803b15801561360157600080fd5b505af1158015613615573d6000803e3d6000fd5b5050505060608301516000908152600960205260409020546001600160a01b0316156136b25760608301516000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a519061367f903390889060040161570e565b600060405180830381600087803b15801561369957600080fd5b505af11580156136ad573d6000803e3d6000fd5b505050505b61379f565b6136bf613946565b6001600160a01b031663eb94bbde8460600151866040518363ffffffff1660e01b81526004016136f092919061578d565b600060405180830381600087803b15801561370a57600080fd5b505af115801561371e573d6000803e3d6000fd5b505050606084015160009081526008602052604090205461373f9150614059565b6001600160a01b031663867904b433836040518363ffffffff1660e01b815260040161376c92919061570e565b600060405180830381600087803b15801561378657600080fd5b505af115801561379a573d6000803e3d6000fd5b505050505b6137ad828460600151613e56565b42610100840152600554604051631137390760e21b81526001600160a01b03909116906344dce41c906137e49086906004016159e2565b600060405180830381600087803b1580156137fe57600080fd5b505af1158015613812573d6000803e3d6000fd5b50505050336001600160a01b03167f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf358310654868660405161385192919061578d565b60405180910390a25050505050565b60006111c88261387e85670de0b6b3a764000063ffffffff6147f616565b9063ffffffff61484516565b61389261251e565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b81526004016138bf9190615771565b60206040518083038186803b1580156138d757600080fd5b505afa1580156138eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061390f9190810190614cc9565b15612a585760405162461bcd60e51b815260040161097590615932565b60006125196b53797374656d53746174757360a01b614799565b6006546001600160a01b031690565b60006111c88383670de0b6b3a764000061487a565b6139726148f2565b8190506000806000808560a00151613a105761398c613946565b6001600160a01b03166303f048b08760e001516040518263ffffffff1660e01b81526004016139bb9190615771565b60806040518083038186803b1580156139d357600080fd5b505afa1580156139e7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613a0b9190810190614dcf565b613a9d565b613a18613946565b6001600160a01b031663af07aa9d87606001518860e001516040518363ffffffff1660e01b8152600401613a4d92919061578d565b60806040518083038186803b158015613a6557600080fd5b505afa158015613a79573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613a9d9190810190614dcf565b93509350935093506000808760a00151613b2d57613ab9613946565b6001600160a01b031663ba1c5e806040518163ffffffff1660e01b8152600401604080518083038186803b158015613af057600080fd5b505afa158015613b04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613b289190810190614db0565b613bc5565b613b35613946565b606089015160009081526008602052604090819020549051630ee81f7960e41b81526001600160a01b03929092169163ee81f79091613b7691600401615771565b604080518083038186803b158015613b8d57600080fd5b505afa158015613ba1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613bc59190810190614db0565b915091508015613be75760405162461bcd60e51b815260040161097590615902565b6000613c8473__$1d392f176c99aac414d39c3c003a086de8$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015613c3057600080fd5b505af4158015613c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613c689190810190614d92565b613c78428863ffffffff612a5a16565b9063ffffffff6147f616565b90506000613ca8613c9b858463ffffffff61253916565b889063ffffffff61243e16565b905060008a60e00151600014613ce157613cdc613ccb838b63ffffffff612a5a16565b60808d01519063ffffffff61253916565b613ce4565b60005b90508a60a00151613d5957613cf7613946565b6001600160a01b031663f53037b6836040518263ffffffff1660e01b8152600401613d229190615771565b600060405180830381600087803b158015613d3c57600080fd5b505af1158015613d50573d6000803e3d6000fd5b50505050613dc5565b613d61613946565b6001600160a01b031663246206398c60600151846040518363ffffffff1660e01b8152600401613d9292919061578d565b600060405180830381600087803b158015613dac57600080fd5b505af1158015613dc0573d6000803e3d6000fd5b505050505b60c08b0151613dda908263ffffffff61243e16565b60c08b015260e08a01869052600554604051631137390760e21b81526001600160a01b03909116906344dce41c90613e16908d906004016159e2565b600060405180830381600087803b158015613e3057600080fd5b505af1158015613e44573d6000803e3d6000fd5b50505050505050505050505050919050565b8115610ce657631c1554d160e21b8114613efb57613e7261251e565b6001600160a01b031663654a60ac8284631c1554d160e21b6040518463ffffffff1660e01b8152600401613ea8939291906157bb565b60206040518083038186803b158015613ec057600080fd5b505afa158015613ed4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613ef89190810190614d92565b91505b613f03614042565b6001600160a01b031663867904b4613f196148b7565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b158015613f5157600080fd5b505afa158015613f65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613f899190810190614b96565b846040518363ffffffff1660e01b8152600401613fa7929190615744565b600060405180830381600087803b158015613fc157600080fd5b505af1158015613fd5573d6000803e3d6000fd5b50505050613fe16148b7565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b815260040161400c9190615771565b600060405180830381600087803b15801561402657600080fd5b505af115801561403a573d6000803e3d6000fd5b505050505050565b600061251968141e5b9d1a1c1554d160ba1b614799565b600061246682614799565b60008160e00151116140885760405162461bcd60e51b8152600401610975906159a2565b426140a3600e5483610100015161243e90919063ffffffff16565b11156140c15760405162461bcd60e51b815260040161097590615862565b50565b60008281526008602052604090205481906140de90614059565b6001600160a01b03166370a08231856040518263ffffffff1660e01b815260040161410991906156f2565b60206040518083038186803b15801561412157600080fd5b505afa158015614135573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506141599190810190614d92565b10156107095760405162461bcd60e51b8152600401610975906159c2565b6000806141958360c00151846080015161243e90919063ffffffff16565b6080840151604085015193509091506141ac614769565b6001600160a01b031663d6f32e068686606001516040518363ffffffff1660e01b81526004016141dd929190615744565b60206040518083038186803b1580156141f557600080fd5b505afa158015614209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061422d9190810190614cc9565b1561424a5760405162461bcd60e51b8152600401610975906159d2565b606084015160009081526008602052604090205461426790614059565b6001600160a01b0316639dc29fac86846040518363ffffffff1660e01b8152600401614294929190615744565b600060405180830381600087803b1580156142ae57600080fd5b505af11580156142c2573d6000803e3d6000fd5b505050508360a00151156143e0576142d8613946565b6001600160a01b0316635246f2b9856060015186608001516040518363ffffffff1660e01b815260040161430d92919061578d565b600060405180830381600087803b15801561432757600080fd5b505af115801561433b573d6000803e3d6000fd5b5050505060608401516000908152600960205260409020546001600160a01b0316156143db57606084015160009081526009602052604090819020546080860151915163f3fef3a360e01b81526001600160a01b039091169163f3fef3a3916143a8918a91600401615744565b600060405180830381600087803b1580156143c257600080fd5b505af11580156143d6573d6000803e3d6000fd5b505050505b614450565b6143e8613946565b6001600160a01b031663e50a31b3856060015186608001516040518363ffffffff1660e01b815260040161441d92919061578d565b600060405180830381600087803b15801561443757600080fd5b505af115801561444b573d6000803e3d6000fd5b505050505b6144628460c001518560600151613e56565b600060808501819052604080860182905260c0860182905260e0860191909152426101008601526005549051631137390760e21b81526001600160a01b03909116906344dce41c906144b89087906004016159e2565b600060405180830381600087803b1580156144d257600080fd5b505af11580156144e6573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb86600001518487604051614535939291906157bb565b60405180910390a350509392505050565b61454e6148f2565b50818115801590614563575060008360c00151115b156145c05760008360c00151831161457b5782614581565b8360c001515b60c0850151909150614599908263ffffffff612a5a16565b60c08301526145ae838263ffffffff612a5a16565b92506145be818560600151613e56565b505b81156124665760808301516145db908363ffffffff612a5a16565b608082015260a0810151156146f8576145f2613946565b6001600160a01b0316635246f2b98260600151846040518363ffffffff1660e01b815260040161462392919061578d565b600060405180830381600087803b15801561463d57600080fd5b505af1158015614651573d6000803e3d6000fd5b5050505060608101516000908152600960205260409020546001600160a01b0316156146f35760608101516000908152600960209081526040918290205490830151915163f3fef3a360e01b81526001600160a01b039091169163f3fef3a3916146c09190869060040161570e565b600060405180830381600087803b1580156146da57600080fd5b505af11580156146ee573d6000803e3d6000fd5b505050505b612466565b614700613946565b6001600160a01b031663e50a31b38260600151846040518363ffffffff1660e01b815260040161473192919061578d565b600060405180830381600087803b15801561474b57600080fd5b505af115801561475f573d6000803e3d6000fd5b5050505092915050565b60006125196822bc31b430b733b2b960b91b614799565b60006125196e466c657869626c6553746f7261676560881b5b60008181526003602090815260408083205490516001600160a01b0390911691821515916147c9918691016156bc565b604051602081830303815290604052906130125760405162461bcd60e51b815260040161097591906157f1565b60008261480557506000612466565b8282028284828161481257fe5b04146124635760405162461bcd60e51b815260040161097590615962565b60006111c88383670de0b6b3a76400006148cc565b60008082116148665760405162461bcd60e51b8152600401610975906158f2565b600082848161487157fe5b04949350505050565b600080600a8304614891868663ffffffff6147f616565b8161489857fe5b0490506005600a825b06106148ab57600a015b600a9004949350505050565b600061251966119959541bdbdb60ca1b614799565b6000806148e68461387e87600a870263ffffffff6147f616565b90506005600a826148a1565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b803561246681615b1e565b805161246681615b1e565b60008083601f84011261497457600080fd5b50813567ffffffffffffffff81111561498c57600080fd5b6020830191508360208202830111156149a457600080fd5b9250929050565b803561246681615b32565b805161246681615b32565b803561246681615b3b565b805161246681615b3b565b600061012082840312156149ea57600080fd5b6149f5610120615a7b565b90506000614a0384846149c1565b8252506020614a148484830161494c565b6020830152506040614a28848285016149c1565b6040830152506060614a3c848285016149c1565b6060830152506080614a50848285016149c1565b60808301525060a0614a64848285016149ab565b60a08301525060c0614a78848285016149c1565b60c08301525060e0614a8c848285016149c1565b60e083015250610100614aa1848285016149c1565b6101008301525092915050565b60006101208284031215614ac157600080fd5b614acc610120615a7b565b90506000614ada84846149cc565b8252506020614aeb84848301614957565b6020830152506040614aff848285016149cc565b6040830152506060614b13848285016149cc565b6060830152506080614b27848285016149cc565b60808301525060a0614b3b848285016149b6565b60a08301525060c0614b4f848285016149cc565b60c08301525060e0614b63848285016149cc565b60e083015250610100614aa1848285016149cc565b600060208284031215614b8a57600080fd5b6000610888848461494c565b600060208284031215614ba857600080fd5b60006108888484614957565b60008060408385031215614bc757600080fd5b6000614bd3858561494c565b9250506020614be4858286016149c1565b9150509250929050565b600080600060608486031215614c0357600080fd5b6000614c0f868661494c565b9350506020614c20868287016149c1565b9250506040614c31868287016149c1565b9150509250925092565b60008060008060408587031215614c5157600080fd5b843567ffffffffffffffff811115614c6857600080fd5b614c7487828801614962565b9450945050602085013567ffffffffffffffff811115614c9357600080fd5b614c9f87828801614962565b95989497509550505050565b600060208284031215614cbd57600080fd5b600061088884846149ab565b600060208284031215614cdb57600080fd5b600061088884846149b6565b60008060408385031215614cfa57600080fd5b6000614d0685856149b6565b9250506020614be4858286016149b6565b600060208284031215614d2957600080fd5b600061088884846149c1565b60008060408385031215614d4857600080fd5b6000614bd385856149c1565b60006101208284031215614d6757600080fd5b600061088884846149d7565b60006101208284031215614d8657600080fd5b60006108888484614aae565b600060208284031215614da457600080fd5b600061088884846149cc565b60008060408385031215614dc357600080fd5b6000614d0685856149cc565b60008060008060808587031215614de557600080fd5b6000614df187876149cc565b9450506020614e02878288016149cc565b9350506040614e13878288016149cc565b9250506060614e24878288016149cc565b91505092959194509250565b6000614e3c8383614ebe565b505060200190565b614e4d81615ad6565b82525050565b614e4d81615aba565b6000614e6782615aa8565b614e718185615aac565b9350614e7c83615aa2565b8060005b83811015614eaa578151614e948882614e30565b9750614e9f83615aa2565b925050600101614e80565b509495945050505050565b614e4d81615ac5565b614e4d81610bee565b614e4d614ed382610bee565b610bee565b614e4d81615add565b6000614eec82615aa8565b614ef68185615aac565b9350614f06818560208601615ae8565b614f0f81615b14565b9093019392505050565b6000614f26601b83615aac565b7f496e707574206172726179206c656e677468206d69736d617463680000000000815260200192915050565b6000614f5f601683615aac565b754d7573742062652067726561746572207468616e203160501b815260200192915050565b6000614f91600e83615aac565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b6000614fbb601583615aac565b74086c2dcdcdee840c8e4c2ee40e8d0d2e640daeac6d605b1b815260200192915050565b6000614fec603583615aac565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000615043600f83615aac565b6e151c985b9cd9995c8819985a5b1959608a1b815260200192915050565b600061506e601d83615aac565b7f4c6f616e20726563656e746c7920696e74657261637465642077697468000000815260200192915050565b60006150a7601e83615aac565b7f5061796d656e74206d7573742062652067726561746572207468616e20300000815260200192915050565b60006150e0601b83615aac565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000615119601283615aac565b7113585e081b1bd85b9cc8195e18d95959195960721b815260200192915050565b6000615147601e83615aac565b7f43726174696f2061626f7665206c69717569646174696f6e20726174696f0000815260200192915050565b6000615180601d83615aac565b7f4e6f7420656e6f75676820636f6c6c61746572616c20746f206f70656e000000815260200192915050565b60006151b9601883615aac565b7f43757272656e6379207261746520697320696e76616c69640000000000000000815260200192915050565b60006151f2602083615aac565b7f57616974696e672073656373206f7220736574746c656d656e74206f77696e67815260200192915050565b600061522b601e83615aac565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000615264601a83615aac565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b600061529d601183615ab5565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006152ca601183615aac565b7014985d195cc8185c99481a5b9d985b1a59607a1b815260200192915050565b60006152f7601383615aac565b7213dc195b9a5b99c81a5cc8191a5cd8589b1959606a1b815260200192915050565b6000615326600a83615aac565b6926b0bc1018903437bab960b11b815260200192915050565b600061534c601a83615aac565b7f436f6c6c61746572616c207261746520697320696e76616c6964000000000000815260200192915050565b6000615385601b83615aac565b7f45786365656473206d617820626f72726f77696e6720706f7765720000000000815260200192915050565b60006153be602f83615aac565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b600061540f602183615aac565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b6000615452601f83615aac565b7f4e6f7420616c6c6f77656420746f20697373756520746869732070796e746800815260200192915050565b600061548b601e83615aac565b7f4465706f736974206d7573742062652067726561746572207468616e20300000815260200192915050565b60006154c4601a83615aac565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b60006154fd601983615ab5565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000612466600083615ab5565b6000615543601383615aac565b72131bd85b88191bd95cc81b9bdd08195e1a5cdd606a1b815260200192915050565b6000615572601f83615aac565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00815260200192915050565b60006155ab601883615aac565b7f4e6f7420656e6f7567682070796e74682062616c616e63650000000000000000815260200192915050565b60006155e4601b83615aac565b7f57616974696e67206f7220736574746c656d656e74206f77696e670000000000815260200192915050565b80516101208301906156228482614ebe565b5060208201516156356020850182614e53565b5060408201516156486040850182614ebe565b50606082015161565b6060850182614ebe565b50608082015161566e6080850182614ebe565b5060a082015161568160a0850182614eb5565b5060c082015161569460c0850182614ebe565b5060e08201516156a760e0850182614ebe565b50610100820151610efc610100850182614ebe565b60006156c782615290565b91506156d38284614ec7565b50602001919050565b60006156c7826154f0565b600061246682615529565b602081016124668284614e53565b602081016124668284614e44565b6040810161571c8285614e44565b6111c86020830184614ebe565b604081016157378285614e53565b6111c86020830184614e53565b6040810161571c8285614e53565b602080825281016111c88184614e5c565b602081016124668284614eb5565b602081016124668284614ebe565b604081016157378285614ebe565b6040810161571c8285614ebe565b604081016157a98285614ebe565b81810360208301526108888184614ee1565b606081016157c98286614ebe565b6157d66020830185614ebe565b6108886040830184614ebe565b602081016124668284614ed8565b602080825281016111c88184614ee1565b6020808252810161246681614f19565b6020808252810161246681614f52565b6020808252810161246681614f84565b6020808252810161246681614fae565b6020808252810161246681614fdf565b6020808252810161246681615036565b6020808252810161246681615061565b602080825281016124668161509a565b60208082528101612466816150d3565b602080825281016124668161510c565b602080825281016124668161513a565b6020808252810161246681615173565b60208082528101612466816151ac565b60208082528101612466816151e5565b602080825281016124668161521e565b6020808252810161246681615257565b60208082528101612466816152bd565b60208082528101612466816152ea565b6020808252810161246681615319565b602080825281016124668161533f565b6020808252810161246681615378565b60208082528101612466816153b1565b6020808252810161246681615402565b6020808252810161246681615445565b602080825281016124668161547e565b60208082528101612466816154b7565b6020808252810161246681615536565b6020808252810161246681615565565b602080825281016124668161559e565b60208082528101612466816155d7565b61012081016124668284615610565b608081016159ff8287614ebe565b615a0c6020830186614e44565b615a196040830185614ebe565b615a266060830184614ebe565b95945050505050565b60a08101615a3d8288614ebe565b615a4a6020830187614ebe565b615a576040830186614ebe565b615a646060830185614ebe565b615a716080830184614ebe565b9695505050505050565b60405181810167ffffffffffffffff81118282101715615a9a57600080fd5b604052919050565b60200190565b5190565b90815260200190565b919050565b600061246682615aca565b151590565b6001600160a01b031690565b6000612466825b600061246682615aba565b60005b83811015615b03578181015183820152602001615aeb565b83811115610efc5750506000910152565b601f01601f191690565b615b2781615aba565b81146140c157600080fd5b615b2781615ac5565b615b2781610bee56fea365627a7a72315820ed62be7973553ce40230a4da808f547c3c16b68a62539b39f4d919cb3c5050616c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract CollateralState",
							"name": "_state",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_manager",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_collateralKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canOpenLoans",
							"type": "bool"
						}
					],
					"name": "CanOpenLoansUpdated",
					"type": "event",
					"signature": "0x261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountDeposited",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralDeposited",
					"type": "event",
					"signature": "0x0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountWithdrawn",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralWithdrawn",
					"type": "event",
					"signature": "0xfae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f3303"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "interactionDelay",
							"type": "uint256"
						}
					],
					"name": "InteractionDelayUpdated",
					"type": "event",
					"signature": "0x4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c2361"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event",
					"signature": "0xe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event",
					"signature": "0xcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByLiquidation",
					"type": "event",
					"signature": "0x697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issuanceFee",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event",
					"signature": "0x604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanDrawnDown",
					"type": "event",
					"signature": "0x5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf358310654"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanPartiallyLiquidated",
					"type": "event",
					"signature": "0xb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "repayer",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountAfter",
							"type": "uint256"
						}
					],
					"name": "LoanRepaymentMade",
					"type": "event",
					"signature": "0xdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "manager",
							"type": "address"
						}
					],
					"name": "ManagerUpdated",
					"type": "event",
					"signature": "0x2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxLoansPerAccount",
							"type": "uint256"
						}
					],
					"name": "MaxLoansPerAccountUpdated",
					"type": "event",
					"signature": "0x6a5107c7de25c5b210323f3c6c2caea6502583fbe45acdca57e75a4dc9534e8c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCollateral",
							"type": "uint256"
						}
					],
					"name": "MinCollateralUpdated",
					"type": "event",
					"signature": "0xd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCratio",
							"type": "uint256"
						}
					],
					"name": "MinCratioRatioUpdated",
					"type": "event",
					"signature": "0x813a44586e8ecb9390b2568dbe810e193087f80e415c8845340ef06d4cbb42a5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_pynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x55bd615c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "rewardsContract",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "addRewardsContracts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5eb2ad01"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_pynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "arePynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0e54a19b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "canOpenLoans",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4065b81b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "claim",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x379607f5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "close",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0aebeb4e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb562a1ab"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						}
					],
					"name": "collateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdac8cf68"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "collateralRedeemed",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0a153c97"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "deposit",
					"outputs": [],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0x47e7ef24"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "draw",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd2b8035a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "interactionDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x15aaf4dd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x361e2086"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "liquidate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0710285c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe74337c6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "manager",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x481c6a75"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7e132355"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxLoansPerAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeb8e3b65"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xba2de9bc"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCratio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x925ead11"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "open",
					"outputs": [],
					"payable": true,
					"stateMutability": "payable",
					"type": "function",
					"signature": "0x06c19e3f"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"name": "pendingWithdrawals",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xf3f43703"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "pynths",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x37551ec6"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "pynthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcd285020"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8cd2e0c7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_canOpenLoans",
							"type": "bool"
						}
					],
					"name": "setCanOpenLoans",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x90abb4d9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_interactionDelay",
							"type": "uint256"
						}
					],
					"name": "setInteractionDelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4c17ace4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa76cdfa5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_newManager",
							"type": "address"
						}
					],
					"name": "setManager",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd0ebdbe7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						}
					],
					"name": "setMinCratio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0cdd1c65"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortingRewards",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xde81eda9"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "state",
					"outputs": [
						{
							"internalType": "contract CollateralState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc19d93fb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "withdrawAmount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x441a3e70"
				}
			],
			"source": {
				"keccak256": "0xfafaeecb7bde633126a8933c5c6649a7f5b51ce5165095e08ea4a7d18f32d96c",
				"urls": [
					"bzz-raw://757ccf3a314d75f7097ef7f42bdbdc6b38e444c3f218911ca9a46ac3d782f598",
					"dweb:/ipfs/QmWQp3y8BmBBnWHCiNDdzARGaqrnpwQaPvbsGPCmk6mgYy"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralEth.sol": "CollateralEth"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralEth.sol": {
						"keccak256": "0xfafaeecb7bde633126a8933c5c6649a7f5b51ce5165095e08ea4a7d18f32d96c",
						"urls": [
							"bzz-raw://757ccf3a314d75f7097ef7f42bdbdc6b38e444c3f218911ca9a46ac3d782f598",
							"dweb:/ipfs/QmWQp3y8BmBBnWHCiNDdzARGaqrnpwQaPvbsGPCmk6mgYy"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralErc20": {
			"bytecode": "60806040526032600d5561012c600e55600f805460ff191660011790553480156200002957600080fd5b5060405162005fbc38038062005fbc8339810160408190526200004c916200018c565b888888888888888380876001600160a01b038116620000885760405162461bcd60e51b81526004016200007f90620002e0565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000d5918490620002ba565b60405180910390a150600280546001600160a01b039283166001600160a01b0319918216179091556006805498831698821698909817909755600580549982169990971698909817909555600492909255600a55600b555050600f80549490921661010002610100600160a81b031990941693909317905560105550620003619650505050505050565b80516200016c8162000331565b92915050565b80516200016c816200034b565b80516200016c8162000356565b60008060008060008060008060006101208a8c031215620001ac57600080fd5b6000620001ba8c8c6200017f565b9950506020620001cd8c828d016200015f565b9850506040620001e08c828d016200015f565b9750506060620001f38c828d016200015f565b9650506080620002068c828d0162000172565b95505060a0620002198c828d0162000172565b94505060c06200022c8c828d0162000172565b93505060e06200023f8c828d016200015f565b925050610100620002538c828d0162000172565b9150509295985092959850929598565b6200026e8162000324565b82525050565b6200026e81620002fb565b60006200028e601983620002f2565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b60408101620002ca828562000263565b620002d9602083018462000274565b9392505050565b602080825281016200016c816200027f565b90815260200190565b60006200016c8262000318565b90565b60006200016c82620002fb565b6001600160a01b031690565b60006200016c826200030b565b6200033c81620002fb565b81146200034857600080fd5b50565b6200033c8162000308565b6200033c816200030b565b615c4b80620003716000396000f3fe608060405234801561001057600080fd5b50600436106102695760003560e01c80637418536011610151578063b562a1ab116100c3578063d2b8035a11610087578063d2b8035a146104be578063dac8cf68146104d1578063de81eda9146104e4578063e74337c6146104f7578063eb8e3b651461050a578063f93451ed1461051257610269565b8063b562a1ab14610480578063ba2de9bc14610488578063c19d93fb14610490578063cd28502014610498578063d0ebdbe7146104ab57610269565b80638cd2e0c7116101155780638cd2e0c7146104245780638da5cb5b1461043757806390abb4d91461043f578063925ead1114610452578063a76cdfa51461045a578063b094f2c41461046d57610269565b806374185360146103d957806379ba5097146103e15780637e132355146103e9578063883a2209146103fc578063899ffef41461040f57610269565b80632af64bd3116101ea578063441a3e70116101ae578063441a3e701461037d578063481c6a75146103905780634c17ace41461039857806353a47bb7146103ab57806355bd615c146103b35780635eb2ad01146103c657610269565b80632af64bd31461034a578063361e20861461035257806337551ec61461035a5780633cc3ffc71461036d5780634065b81b1461037557610269565b80630e54a19b116102315780630e54a19b146102e75780630efe6a8b1461030757806310cfe9061461031a57806315aaf4dd1461032f5780631627540c1461033757610269565b806304f3bcec1461026e5780630710285c1461028c5780630a153c97146102a15780630aebeb4e146102c15780630cdd1c65146102d4575b600080fd5b610276610525565b60405161028391906158b7565b60405180910390f35b61029f61029a366004614cbb565b610534565b005b6102b46102af366004614e02565b6105e0565b6040516102839190615852565b61029f6102cf366004614de4565b61071c565b61029f6102e2366004614de4565b6107c5565b6102fa6102f5366004614d08565b6108b0565b6040516102839190615844565b61029f610315366004614cbb565b610972565b610322610aba565b604051610283919061579d565b6102b4610ace565b61029f610345366004614c45565b610ad4565b6102fa610b27565b6102b4610c3f565b6102b4610368366004614de4565b610c45565b6102b4610c63565b6102fa610c69565b61029f61038b366004614e02565b610c72565b610322610c8b565b61029f6103a6366004614de4565b610c9a565b610322610d76565b61029f6103c1366004614d08565b610d85565b61029f6103d4366004614c81565b610e45565b61029f610e7b565b61029f610fd1565b6102b46103f7366004614e02565b61106d565b6102b461040a366004614de4565b611116565b61041761113b565b6040516102839190615833565b61029f610432366004614cbb565b6112a0565b6103226112b1565b61029f61044d366004614d78565b6112c0565b6102b461130c565b61029f610468366004614de4565b611312565b6102b461047b366004614de4565b61134f565b6102b4611374565b6102b461137a565b610276611380565b6102b46104a6366004614de4565b61138f565b61029f6104b9366004614c45565b6113a1565b61029f6104cc366004614e02565b6113fa565b6102b46104df366004614e21565b611404565b6103226104f2366004614de4565b61155d565b6102b4610505366004614e21565b611578565b6102b4611862565b61029f610520366004614e9c565b611868565b6002546001600160a01b031681565b60006105418484846119b9565b9050600061054e8261134f565b600f5460405163a9059cbb60e01b815291925061010090046001600160a01b03169063a9059cbb9061058690339085906004016157fc565b602060405180830381600087803b1580156105a057600080fd5b505af11580156105b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105d89190810190614d96565b505050505050565b6000806105eb611d84565b90506105f5611e36565b6001600160a01b031663654a60ac85856004546040518463ffffffff1660e01b81526004016106269392919061589c565b60206040518083038186803b15801561063e57600080fd5b505afa158015610652573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106769190810190614e5f565b91506107146107078273__$8ca298e948825c2140bbad776f3eeba336$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156106c357600080fd5b505af41580156106d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106fb9190810190614e5f565b9063ffffffff611e5116565b839063ffffffff611e7f16565b949350505050565b60006107283383611ea9565b905060006107358261134f565b600f5460405163a9059cbb60e01b815291925061010090046001600160a01b03169063a9059cbb9061076d90339085906004016157fc565b602060405180830381600087803b15801561078757600080fd5b505af115801561079b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107bf9190810190614d96565b50505050565b6107cd612374565b73__$8ca298e948825c2140bbad776f3eeba336$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561081157600080fd5b505af4158015610825573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506108499190810190614e5f565b81116108705760405162461bcd60e51b8152600401610867906158e6565b60405180910390fd5b600a8190556040517f813a44586e8ecb9390b2568dbe810e193087f80e415c8845340ef06d4cbb42a5906108a5908390615852565b60405180910390a150565b60075460009084146108c457506000610714565b60005b848110156109665760008686838181106108dd57fe5b90506020020135905080600783815481106108f457fe5b90600052602060002001541461090f57600092505050610714565b6007828154811061091c57fe5b90600052602060002001546008600087878681811061093757fe5b905060200201358152602001908152602001600020541461095d57600092505050610714565b506001016108c7565b50600195945050505050565b600f54604051636eb1769f60e11b81526101009091046001600160a01b03169063dd62ed3e906109a890339030906004016157b9565b60206040518083038186803b1580156109c057600080fd5b505afa1580156109d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109f89190810190614e5f565b811115610a175760405162461bcd60e51b815260040161086790615926565b600f546040516323b872dd60e01b81526101009091046001600160a01b0316906323b872dd90610a4f903390309086906004016157d4565b602060405180830381600087803b158015610a6957600080fd5b505af1158015610a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610aa19190810190614d96565b506000610aad82611116565b90506107bf8484836123a0565b600f5461010090046001600160a01b031681565b600e5481565b610adc612374565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22906108a590839061579d565b60006060610b3361113b565b905060005b8151811015610c35576000828281518110610b4f57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610ba0908590600401615852565b60206040518083038186803b158015610bb857600080fd5b505afa158015610bcc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610bf09190810190614c63565b6001600160a01b0316141580610c1b57506000818152600360205260409020546001600160a01b0316155b15610c2c5760009350505050610c3c565b50600101610b38565b5060019150505b90565b600c5481565b60078181548110610c5257fe5b600091825260209091200154905081565b60105481565b600f5460ff1681565b6000610c7d82611116565b905060006105418483612597565b6006546001600160a01b031681565b610ca2612374565b73__$8ca298e948825c2140bbad776f3eeba336$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610ce657600080fd5b505af4158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d1e9190810190614e5f565b610e1002811115610d415760405162461bcd60e51b8152600401610867906159f6565b600e8190556040517f4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c2361906108a5908390615852565b6001546001600160a01b031681565b610d8d612374565b828114610dac5760405162461bcd60e51b8152600401610867906158d6565b60005b83811015610e3c576000858583818110610dc557fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018190559250829160089150868686818110610e1957fe5b602090810292909201358352508101919091526040016000205550600101610daf565b506107bf610e7b565b610e4d612374565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6060610e8561113b565b905060005b8151811015610fcd576000828281518110610ea157fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610ee39190615792565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610f0f92919061587c565b60206040518083038186803b158015610f2757600080fd5b505afa158015610f3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610f5f9190810190614c63565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890610fbb9084908490615860565b60405180910390a15050600101610e8a565b5050565b6001546001600160a01b03163314610ffb5760405162461bcd60e51b815260040161086790615916565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9261103e926001600160a01b0391821692911690615817565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b600061110f61107a611e36565b6001600160a01b031663654a60ac60045486866040518463ffffffff1660e01b81526004016110ab9392919061589c565b60206040518083038186803b1580156110c357600080fd5b505afa1580156110d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506110fb9190810190614e5f565b61110361279a565b9063ffffffff611e7f16565b9392505050565b600080611126601260105461282a565b600a0a905061110f838263ffffffff61285216565b60608061114661288c565b60408051600580825260c08201909252919250606091906020820160a08038833901905050905066119959541bdbdb60ca1b8160008151811061118557fe5b6020026020010181815250506c45786368616e6765526174657360981b816001815181106111af57fe5b6020026020010181815250506822bc31b430b733b2b960b91b816002815181106111d557fe5b6020026020010181815250506b53797374656d53746174757360a01b816003815181106111fe57fe5b60200260200101818152505068141e5b9d1a1c1554d160ba1b8160048151811061122457fe5b602002602001018181525050606061123c83836128dd565b905061129881600780548060200260200160405190810160405280929190818152602001828054801561128e57602002820191906000526020600020905b81548152602001906001019080831161127a575b50505050506128dd565b935050505090565b6112ac83338484612999565b505050565b6000546001600160a01b031681565b6112c8612374565b600f805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916108a59160ff90911690615844565b600a5481565b61131a612374565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c906108a5908390615852565b60008061135f601260105461282a565b600a0a905061110f838263ffffffff612cba16565b60045481565b600b5481565b6005546001600160a01b031681565b60086020526000908152604090205481565b6113a9612374565b600680546001600160a01b0319166001600160a01b0383811691909117918290556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d926108a592169061579d565b610fcd8282612cef565b60008061140f611e36565b6001600160a01b031663654a60ac6004548560400151631c1554d160e21b6040518463ffffffff1660e01b815260040161144b9392919061589c565b60206040518083038186803b15801561146357600080fd5b505afa158015611477573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061149b9190810190614e5f565b905060006114a7611e36565b6001600160a01b031663654a60ac85606001516114d58760c001518860800151611e5190919063ffffffff16565b631c1554d160e21b6040518463ffffffff1660e01b81526004016114fb9392919061589c565b60206040518083038186803b15801561151357600080fd5b505afa158015611527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061154b9190810190614e5f565b9050610714828263ffffffff61321516565b6009602052600090815260409020546001600160a01b031681565b600080611583611d84565b9050600061158f611e36565b6001600160a01b031663654a60ac85606001516115bd8760c001518860800151611e5190919063ffffffff16565b631c1554d160e21b6040518463ffffffff1660e01b81526004016115e39392919061589c565b60206040518083038186803b1580156115fb57600080fd5b505afa15801561160f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116339190810190614e5f565b9050600061163f611e36565b6001600160a01b031663654a60ac6004548760400151631c1554d160e21b6040518463ffffffff1660e01b815260040161167b9392919061589c565b60206040518083038186803b15801561169357600080fd5b505afa1580156116a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116cb9190810190614e5f565b9050600073__$8ca298e948825c2140bbad776f3eeba336$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561171357600080fd5b505af4158015611727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061174b9190810190614e5f565b90506000611774611767600a548561321590919063ffffffff16565b859063ffffffff61282a16565b905060006117ad6117a0600a546117948987611e5190919063ffffffff16565b9063ffffffff61321516565b849063ffffffff61282a16565b905060006117c1838363ffffffff61321516565b90506117cb611e36565b6001600160a01b031663654a60ac631c1554d160e21b838c606001516040518463ffffffff1660e01b81526004016118059392919061589c565b60206040518083038186803b15801561181d57600080fd5b505afa158015611831573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118559190810190614e5f565b9998505050505050505050565b600d5481565b600f54604051636eb1769f60e11b81526101009091046001600160a01b03169063dd62ed3e9061189e90339030906004016157b9565b60206040518083038186803b1580156118b657600080fd5b505afa1580156118ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506118ee9190810190614e5f565b83111561190d5760405162461bcd60e51b815260040161086790615926565b600f546040516323b872dd60e01b81526101009091046001600160a01b0316906323b872dd90611945903390309088906004016157d4565b602060405180830381600087803b15801561195f57600080fd5b505af1158015611973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119979190810190614d96565b5060006119a384611116565b90506119b2818484600061323f565b5050505050565b60006119c36139ce565b6119cb613a70565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015611a0357600080fd5b505afa158015611a17573d6000803e3d6000fd5b5050505060008211611a3b5760405162461bcd60e51b815260040161086790615946565b611a436149bf565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c5158690611a759088908890600401615825565b6101206040518083038186803b158015611a8e57600080fd5b505afa158015611aa2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611ac69190810190614e40565b9050611ad181613a8a565b611ada81613aea565b9050611aeb33826060015185613fd6565b600a54611af782611404565b10611b145760405162461bcd60e51b815260040161086790615976565b6000611b1f82611578565b90506000848210611b305784611b32565b815b90506000611b518460c001518560800151611e5190919063ffffffff16565b9050808210611b7057611b65883386614089565b94505050505061110f565b611b7a8483614458565b9350611b8a8460600151836105e0565b6040850151909550611ba2908663ffffffff61282a16565b604085015242610100850152611bb661467b565b6001600160a01b031663d6f32e063386606001516040518363ffffffff1660e01b8152600401611be79291906157fc565b60206040518083038186803b158015611bff57600080fd5b505afa158015611c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c379190810190614d96565b15611c545760405162461bcd60e51b815260040161086790615a96565b6060840151600090815260086020526040902054611c7190614692565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b8152600401611c9e9291906157fc565b600060405180830381600087803b158015611cb857600080fd5b505af1158015611ccc573d6000803e3d6000fd5b5050600554604051631137390760e21b81526001600160a01b0390911692506344dce41c9150611d00908790600401615aa6565b600060405180830381600087803b158015611d1a57600080fd5b505af1158015611d2e573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c588338589604051611d719493929190615ab5565b60405180910390a2505050509392505050565b6000611d8e61469d565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401611de192919061586e565b60206040518083038186803b158015611df957600080fd5b505afa158015611e0d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611e319190810190614e5f565b905090565b6000611e316c45786368616e6765526174657360981b6146b6565b600082820183811015611e765760405162461bcd60e51b815260040161086790615956565b90505b92915050565b6000670de0b6b3a7640000611e9a848463ffffffff61285216565b81611ea157fe5b049392505050565b6000611eb36139ce565b611ebb613a70565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015611ef357600080fd5b505afa158015611f07573d6000803e3d6000fd5b50505050611f136149bf565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c5158690611f459087908790600401615825565b6101206040518083038186803b158015611f5e57600080fd5b505afa158015611f72573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f969190810190614e40565b9050611fa181613a8a565b611faa81613aea565b90506000611fc98260c001518360800151611e5190919063ffffffff16565b9050611fde8260200151836060015183613fd6565b611fe661467b565b6001600160a01b031663d6f32e068684606001516040518363ffffffff1660e01b8152600401612017929190615825565b60206040518083038186803b15801561202f57600080fd5b505afa158015612043573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506120679190810190614d96565b156120845760405162461bcd60e51b8152600401610867906159a6565b60608201516000908152600860205260409020546120a190614692565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b81526004016120ce929190615825565b600060405180830381600087803b1580156120e857600080fd5b505af11580156120fc573d6000803e3d6000fd5b505050508160a001511561221a57612112614713565b6001600160a01b0316635246f2b9836060015184608001516040518363ffffffff1660e01b815260040161214792919061586e565b600060405180830381600087803b15801561216157600080fd5b505af1158015612175573d6000803e3d6000fd5b5050505060608201516000908152600960205260409020546001600160a01b03161561221557606082015160009081526009602052604090819020546080840151915163f3fef3a360e01b81526001600160a01b039091169163f3fef3a3916121e2918991600401615825565b600060405180830381600087803b1580156121fc57600080fd5b505af1158015612210573d6000803e3d6000fd5b505050505b61228a565b612222614713565b6001600160a01b031663e50a31b3836060015184608001516040518363ffffffff1660e01b815260040161225792919061586e565b600060405180830381600087803b15801561227157600080fd5b505af1158015612285573d6000803e3d6000fd5b505050505b816040015192506122a38260c001518360600151614722565b600060808301819052604080840182905260c0840182905260e0840191909152426101008401526005549051631137390760e21b81526001600160a01b03909116906344dce41c906122f9908590600401615aa6565b600060405180830381600087803b15801561231357600080fd5b505af1158015612327573d6000803e3d6000fd5b50505050846001600160a01b03167fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f856040516123649190615852565b60405180910390a2505092915050565b6000546001600160a01b0316331461239e5760405162461bcd60e51b815260040161086790615a26565b565b6123a86139ce565b6123b0613a70565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156123e857600080fd5b505afa1580156123fc573d6000803e3d6000fd5b50505050600081116124205760405162461bcd60e51b815260040161086790615a56565b6124286149bf565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c515869061245a9087908790600401615825565b6101206040518083038186803b15801561247357600080fd5b505afa158015612487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124ab9190810190614e40565b90506124b681613a8a565b6124bf81613aea565b60408101519091506124d7908363ffffffff611e5116565b604080830191909152426101008301526005549051631137390760e21b81526001600160a01b03909116906344dce41c90612516908490600401615aa6565b600060405180830381600087803b15801561253057600080fd5b505af1158015612544573d6000803e3d6000fd5b50505050836001600160a01b03167f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c848484604001516040516125899392919061589c565b60405180910390a250505050565b60006125a16139ce565b6125a9613a70565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156125e157600080fd5b505afa1580156125f5573d6000803e3d6000fd5b505050506126016149bf565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c515869061263390339088906004016157fc565b6101206040518083038186803b15801561264c57600080fd5b505afa158015612660573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126849190810190614e40565b905061268f81613a8a565b61269881613aea565b60408101519091506126b0908463ffffffff61282a16565b604082015242610100820152600a546126c882611404565b116126e55760405162461bcd60e51b8152600401610867906158f6565b600554604051631137390760e21b81526001600160a01b03909116906344dce41c90612715908490600401615aa6565b600060405180830381600087803b15801561272f57600080fd5b505af1158015612743573d6000803e3d6000fd5b50505050829150336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f33038585846040015160405161278b9392919061589c565b60405180910390a25092915050565b6000611e31600a5473__$8ca298e948825c2140bbad776f3eeba336$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156127e657600080fd5b505af41580156127fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061281e9190810190614e5f565b9063ffffffff61490616565b60008282111561284c5760405162461bcd60e51b8152600401610867906159b6565b50900390565b60008261286157506000611e79565b8282028284828161286e57fe5b0414611e765760405162461bcd60e51b815260040161086790615a36565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b816000815181106128ce57fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561290d578160200160208202803883390190505b50905060005b835181101561294f5783818151811061292857fe5b602002602001015182828151811061293c57fe5b6020908102919091010152600101612913565b5060005b82518110156129925782818151811061296857fe5b602002602001015182828651018151811061297f57fe5b6020908102919091010152600101612953565b5092915050565b6129a16139ce565b6129a9613a70565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156129e157600080fd5b505afa1580156129f5573d6000803e3d6000fd5b5050505060008111612a195760405162461bcd60e51b815260040161086790615946565b612a216149bf565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c5158690612a539088908790600401615825565b6101206040518083038186803b158015612a6c57600080fd5b505afa158015612a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612aa49190810190614e40565b9050612aaf81613a8a565b612ab881613aea565b9050612ac984826060015184613fd6565b612ad38183614458565b426101008201529050612ae461467b565b6001600160a01b031663d6f32e068583606001516040518363ffffffff1660e01b8152600401612b15929190615825565b60206040518083038186803b158015612b2d57600080fd5b505afa158015612b41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612b659190810190614d96565b15612b825760405162461bcd60e51b815260040161086790615a96565b6060810151600090815260086020526040902054612b9f90614692565b6001600160a01b0316639dc29fac85846040518363ffffffff1660e01b8152600401612bcc929190615825565b600060405180830381600087803b158015612be657600080fd5b505af1158015612bfa573d6000803e3d6000fd5b5050600554604051631137390760e21b81526001600160a01b0390911692506344dce41c9150612c2e908490600401615aa6565b600060405180830381600087803b158015612c4857600080fd5b505af1158015612c5c573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f85858560800151604051612cab9392919061589c565b60405180910390a35050505050565b6000808211612cdb5760405162461bcd60e51b8152600401610867906159c6565b6000828481612ce657fe5b04949350505050565b612cf76139ce565b612cff613a70565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015612d3757600080fd5b505afa158015612d4b573d6000803e3d6000fd5b50505050612d576149bf565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c5158690612d8990339087906004016157fc565b6101206040518083038186803b158015612da257600080fd5b505afa158015612db6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612dda9190810190614e40565b9050612de581613a8a565b612dee81613aea565b6080810151909150612e06908363ffffffff611e5116565b6080820152600a54612e1782611404565b11612e345760405162461bcd60e51b815260040161086790615906565b6000612e4b600c548461491b90919063ffffffff16565b90506000612e5f848363ffffffff61282a16565b90508260a001511561306c57612e73614713565b6001600160a01b031663e31f27c18460600151866040518363ffffffff1660e01b8152600401612ea492919061586e565b600060405180830381600087803b158015612ebe57600080fd5b505af1158015612ed2573d6000803e3d6000fd5b50505050612ede614930565b6001600160a01b031663867904b433612ef5611e36565b6001600160a01b031663654a60ac876060015186631c1554d160e21b6040518463ffffffff1660e01b8152600401612f2f9392919061589c565b60206040518083038186803b158015612f4757600080fd5b505afa158015612f5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612f7f9190810190614e5f565b6040518363ffffffff1660e01b8152600401612f9c9291906157fc565b600060405180830381600087803b158015612fb657600080fd5b505af1158015612fca573d6000803e3d6000fd5b5050505060608301516000908152600960205260409020546001600160a01b0316156130675760608301516000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a519061303490339088906004016157fc565b600060405180830381600087803b15801561304e57600080fd5b505af1158015613062573d6000803e3d6000fd5b505050505b613154565b613074614713565b6001600160a01b031663eb94bbde8460600151866040518363ffffffff1660e01b81526004016130a592919061586e565b600060405180830381600087803b1580156130bf57600080fd5b505af11580156130d3573d6000803e3d6000fd5b50505060608401516000908152600860205260409020546130f49150614692565b6001600160a01b031663867904b433836040518363ffffffff1660e01b81526004016131219291906157fc565b600060405180830381600087803b15801561313b57600080fd5b505af115801561314f573d6000803e3d6000fd5b505050505b613162828460600151614722565b42610100840152600554604051631137390760e21b81526001600160a01b03909116906344dce41c90613199908690600401615aa6565b600060405180830381600087803b1580156131b357600080fd5b505af11580156131c7573d6000803e3d6000fd5b50505050336001600160a01b03167f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf358310654868660405161320692919061586e565b60405180910390a25050505050565b600061110f8261323385670de0b6b3a764000063ffffffff61285216565b9063ffffffff612cba16565b60006132496139ce565b613251613a70565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561328957600080fd5b505afa15801561329d573d6000803e3d6000fd5b5050600f5460ff1691506132c590505760405162461bcd60e51b8152600401610867906159e6565b6000838152600860205260409020546132f05760405162461bcd60e51b815260040161086790615a46565b6132f8611e36565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b81526004016133239190615852565b60206040518083038186803b15801561333b57600080fd5b505afa15801561334f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133739190810190614d96565b156133905760405162461bcd60e51b815260040161086790615996565b600b548510156133b25760405162461bcd60e51b815260040161086790615986565b600d5460055460405163382dab6f60e21b81526001600160a01b039091169063e0b6adbc906133e59033906004016157ab565b60206040518083038186803b1580156133fd57600080fd5b505afa158015613411573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134359190810190614e5f565b106134525760405162461bcd60e51b815260040161086790615966565b60008061345d614713565b6001600160a01b031663b4d6cb4087876040518363ffffffff1660e01b815260040161348a92919061586e565b604080518083038186803b1580156134a157600080fd5b505afa1580156134b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506134d99190810190614db4565b915091508180156134e8575080155b6135045760405162461bcd60e51b815260040161086790615a66565b61350e878661106d565b86111561352d5760405162461bcd60e51b815260040161086790615a16565b6000613544600c548861491b90919063ffffffff16565b90506000613558888363ffffffff61282a16565b9050613562614713565b6001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561359c57600080fd5b505af11580156135b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135d49190810190614e5f565b94506135de6149bf565b604051806101200160405280878152602001336001600160a01b031681526020018b81526020018981526020018a81526020018815158152602001600081526020016000815260200142815250905061363681613aea565b60055460405163170cc48160e21b81529192506001600160a01b031690635c33120490613667908490600401615aa6565b600060405180830381600087803b15801561368157600080fd5b505af1158015613695573d6000803e3d6000fd5b505050506136a38389614722565b8615613899576136b1614930565b6001600160a01b031663867904b4336136c8611e36565b6001600160a01b031663654a60ac8c87631c1554d160e21b6040518463ffffffff1660e01b81526004016136fe9392919061589c565b60206040518083038186803b15801561371657600080fd5b505afa15801561372a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061374e9190810190614e5f565b6040518363ffffffff1660e01b815260040161376b9291906157fc565b600060405180830381600087803b15801561378557600080fd5b505af1158015613799573d6000803e3d6000fd5b505050506137a5614713565b6001600160a01b031663e31f27c1898b6040518363ffffffff1660e01b81526004016137d292919061586e565b600060405180830381600087803b1580156137ec57600080fd5b505af1158015613800573d6000803e3d6000fd5b5050506000898152600960205260409020546001600160a01b0316159050613894576000888152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906138619033908d906004016157fc565b600060405180830381600087803b15801561387b57600080fd5b505af115801561388f573d6000803e3d6000fd5b505050505b613978565b6000888152600860205260409020546138b190614692565b6001600160a01b031663867904b433846040518363ffffffff1660e01b81526004016138de9291906157fc565b600060405180830381600087803b1580156138f857600080fd5b505af115801561390c573d6000803e3d6000fd5b50505050613918614713565b6001600160a01b031663eb94bbde898b6040518363ffffffff1660e01b815260040161394592919061586e565b600060405180830381600087803b15801561395f57600080fd5b505af1158015613973573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a878b8d8c886040516139b9959493929190615af3565b60405180910390a25050505050949350505050565b6139d6611e36565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b8152600401613a039190615852565b60206040518083038186803b158015613a1b57600080fd5b505afa158015613a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613a539190810190614d96565b1561239e5760405162461bcd60e51b815260040161086790615a06565b6000611e316b53797374656d53746174757360a01b6146b6565b60008160e0015111613aae5760405162461bcd60e51b815260040161086790615a76565b42613ac9600e54836101000151611e5190919063ffffffff16565b1115613ae75760405162461bcd60e51b815260040161086790615936565b50565b613af26149bf565b8190506000806000808560a00151613b9057613b0c614713565b6001600160a01b03166303f048b08760e001516040518263ffffffff1660e01b8152600401613b3b9190615852565b60806040518083038186803b158015613b5357600080fd5b505afa158015613b67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613b8b9190810190614ebd565b613c1d565b613b98614713565b6001600160a01b031663af07aa9d87606001518860e001516040518363ffffffff1660e01b8152600401613bcd92919061586e565b60806040518083038186803b158015613be557600080fd5b505afa158015613bf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613c1d9190810190614ebd565b93509350935093506000808760a00151613cad57613c39614713565b6001600160a01b031663ba1c5e806040518163ffffffff1660e01b8152600401604080518083038186803b158015613c7057600080fd5b505afa158015613c84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613ca89190810190614e7d565b613d45565b613cb5614713565b606089015160009081526008602052604090819020549051630ee81f7960e41b81526001600160a01b03929092169163ee81f79091613cf691600401615852565b604080518083038186803b158015613d0d57600080fd5b505afa158015613d21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613d459190810190614e7d565b915091508015613d675760405162461bcd60e51b8152600401610867906159d6565b6000613e0473__$8ca298e948825c2140bbad776f3eeba336$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015613db057600080fd5b505af4158015613dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613de89190810190614e5f565b613df8428863ffffffff61282a16565b9063ffffffff61285216565b90506000613e28613e1b858463ffffffff611e7f16565b889063ffffffff611e5116565b905060008a60e00151600014613e6157613e5c613e4b838b63ffffffff61282a16565b60808d01519063ffffffff611e7f16565b613e64565b60005b90508a60a00151613ed957613e77614713565b6001600160a01b031663f53037b6836040518263ffffffff1660e01b8152600401613ea29190615852565b600060405180830381600087803b158015613ebc57600080fd5b505af1158015613ed0573d6000803e3d6000fd5b50505050613f45565b613ee1614713565b6001600160a01b031663246206398c60600151846040518363ffffffff1660e01b8152600401613f1292919061586e565b600060405180830381600087803b158015613f2c57600080fd5b505af1158015613f40573d6000803e3d6000fd5b505050505b60c08b0151613f5a908263ffffffff611e5116565b60c08b015260e08a01869052600554604051631137390760e21b81526001600160a01b03909116906344dce41c90613f96908d90600401615aa6565b600060405180830381600087803b158015613fb057600080fd5b505af1158015613fc4573d6000803e3d6000fd5b50505050505050505050505050919050565b6000828152600860205260409020548190613ff090614692565b6001600160a01b03166370a08231856040518263ffffffff1660e01b815260040161401b919061579d565b60206040518083038186803b15801561403357600080fd5b505afa158015614047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061406b9190810190614e5f565b10156112ac5760405162461bcd60e51b815260040161086790615a86565b6000806140a78360c001518460800151611e5190919063ffffffff16565b6080840151604085015193509091506140be61467b565b6001600160a01b031663d6f32e068686606001516040518363ffffffff1660e01b81526004016140ef929190615825565b60206040518083038186803b15801561410757600080fd5b505afa15801561411b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061413f9190810190614d96565b1561415c5760405162461bcd60e51b815260040161086790615a96565b606084015160009081526008602052604090205461417990614692565b6001600160a01b0316639dc29fac86846040518363ffffffff1660e01b81526004016141a6929190615825565b600060405180830381600087803b1580156141c057600080fd5b505af11580156141d4573d6000803e3d6000fd5b505050508360a00151156142f2576141ea614713565b6001600160a01b0316635246f2b9856060015186608001516040518363ffffffff1660e01b815260040161421f92919061586e565b600060405180830381600087803b15801561423957600080fd5b505af115801561424d573d6000803e3d6000fd5b5050505060608401516000908152600960205260409020546001600160a01b0316156142ed57606084015160009081526009602052604090819020546080860151915163f3fef3a360e01b81526001600160a01b039091169163f3fef3a3916142ba918a91600401615825565b600060405180830381600087803b1580156142d457600080fd5b505af11580156142e8573d6000803e3d6000fd5b505050505b614362565b6142fa614713565b6001600160a01b031663e50a31b3856060015186608001516040518363ffffffff1660e01b815260040161432f92919061586e565b600060405180830381600087803b15801561434957600080fd5b505af115801561435d573d6000803e3d6000fd5b505050505b6143748460c001518560600151614722565b600060808501819052604080860182905260c0860182905260e0860191909152426101008601526005549051631137390760e21b81526001600160a01b03909116906344dce41c906143ca908790600401615aa6565b600060405180830381600087803b1580156143e457600080fd5b505af11580156143f8573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb866000015184876040516144479392919061589c565b60405180910390a350509392505050565b6144606149bf565b50818115801590614475575060008360c00151115b156144d25760008360c00151831161448d5782614493565b8360c001515b60c08501519091506144ab908263ffffffff61282a16565b60c08301526144c0838263ffffffff61282a16565b92506144d0818560600151614722565b505b8115611e795760808301516144ed908363ffffffff61282a16565b608082015260a08101511561460a57614504614713565b6001600160a01b0316635246f2b98260600151846040518363ffffffff1660e01b815260040161453592919061586e565b600060405180830381600087803b15801561454f57600080fd5b505af1158015614563573d6000803e3d6000fd5b5050505060608101516000908152600960205260409020546001600160a01b0316156146055760608101516000908152600960209081526040918290205490830151915163f3fef3a360e01b81526001600160a01b039091169163f3fef3a3916145d2919086906004016157fc565b600060405180830381600087803b1580156145ec57600080fd5b505af1158015614600573d6000803e3d6000fd5b505050505b611e79565b614612614713565b6001600160a01b031663e50a31b38260600151846040518363ffffffff1660e01b815260040161464392919061586e565b600060405180830381600087803b15801561465d57600080fd5b505af1158015614671573d6000803e3d6000fd5b5050505092915050565b6000611e316822bc31b430b733b2b960b91b6146b6565b6000611e79826146b6565b6000611e316e466c657869626c6553746f7261676560881b5b60008181526003602090815260408083205490516001600160a01b0390911691821515916146e691869101615772565b604051602081830303815290604052906129925760405162461bcd60e51b815260040161086791906158c5565b6006546001600160a01b031690565b8115610fcd57631c1554d160e21b81146147c75761473e611e36565b6001600160a01b031663654a60ac8284631c1554d160e21b6040518463ffffffff1660e01b81526004016147749392919061589c565b60206040518083038186803b15801561478c57600080fd5b505afa1580156147a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506147c49190810190614e5f565b91505b6147cf614930565b6001600160a01b031663867904b46147e5614947565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b15801561481d57600080fd5b505afa158015614831573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506148559190810190614c63565b846040518363ffffffff1660e01b8152600401614873929190615825565b600060405180830381600087803b15801561488d57600080fd5b505af11580156148a1573d6000803e3d6000fd5b505050506148ad614947565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b81526004016148d89190615852565b600060405180830381600087803b1580156148f257600080fd5b505af11580156105d8573d6000803e3d6000fd5b600061110f8383670de0b6b3a764000061495c565b600061110f8383670de0b6b3a7640000614994565b6000611e3168141e5b9d1a1c1554d160ba1b6146b6565b6000611e3166119959541bdbdb60ca1b6146b6565b6000806149768461323387600a870263ffffffff61285216565b90506005600a825b061061498857600a015b600a9004949350505050565b600080600a83046149ab868663ffffffff61285216565b816149b257fe5b0490506005600a8261497e565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035611e7981615be2565b8051611e7981615be2565b60008083601f840112614a4157600080fd5b50813567ffffffffffffffff811115614a5957600080fd5b602083019150836020820283011115614a7157600080fd5b9250929050565b8035611e7981615bf6565b8051611e7981615bf6565b8035611e7981615bff565b8051611e7981615bff565b60006101208284031215614ab757600080fd5b614ac2610120615b3f565b90506000614ad08484614a8e565b8252506020614ae184848301614a19565b6020830152506040614af584828501614a8e565b6040830152506060614b0984828501614a8e565b6060830152506080614b1d84828501614a8e565b60808301525060a0614b3184828501614a78565b60a08301525060c0614b4584828501614a8e565b60c08301525060e0614b5984828501614a8e565b60e083015250610100614b6e84828501614a8e565b6101008301525092915050565b60006101208284031215614b8e57600080fd5b614b99610120615b3f565b90506000614ba78484614a99565b8252506020614bb884848301614a24565b6020830152506040614bcc84828501614a99565b6040830152506060614be084828501614a99565b6060830152506080614bf484828501614a99565b60808301525060a0614c0884828501614a83565b60a08301525060c0614c1c84828501614a99565b60c08301525060e0614c3084828501614a99565b60e083015250610100614b6e84828501614a99565b600060208284031215614c5757600080fd5b60006107148484614a19565b600060208284031215614c7557600080fd5b60006107148484614a24565b60008060408385031215614c9457600080fd5b6000614ca08585614a19565b9250506020614cb185828601614a8e565b9150509250929050565b600080600060608486031215614cd057600080fd5b6000614cdc8686614a19565b9350506020614ced86828701614a8e565b9250506040614cfe86828701614a8e565b9150509250925092565b60008060008060408587031215614d1e57600080fd5b843567ffffffffffffffff811115614d3557600080fd5b614d4187828801614a2f565b9450945050602085013567ffffffffffffffff811115614d6057600080fd5b614d6c87828801614a2f565b95989497509550505050565b600060208284031215614d8a57600080fd5b60006107148484614a78565b600060208284031215614da857600080fd5b60006107148484614a83565b60008060408385031215614dc757600080fd5b6000614dd38585614a83565b9250506020614cb185828601614a83565b600060208284031215614df657600080fd5b60006107148484614a8e565b60008060408385031215614e1557600080fd5b6000614ca08585614a8e565b60006101208284031215614e3457600080fd5b60006107148484614aa4565b60006101208284031215614e5357600080fd5b60006107148484614b7b565b600060208284031215614e7157600080fd5b60006107148484614a99565b60008060408385031215614e9057600080fd5b6000614dd38585614a99565b600080600060608486031215614eb157600080fd5b6000614cdc8686614a8e565b60008060008060808587031215614ed357600080fd5b6000614edf8787614a99565b9450506020614ef087828801614a99565b9350506040614f0187828801614a99565b9250506060614f1287828801614a99565b91505092959194509250565b6000614f2a8383614fac565b505060200190565b614f3b81615b9a565b82525050565b614f3b81615b7e565b6000614f5582615b6c565b614f5f8185615b70565b9350614f6a83615b66565b8060005b83811015614f98578151614f828882614f1e565b9750614f8d83615b66565b925050600101614f6e565b509495945050505050565b614f3b81615b89565b614f3b81610c3c565b614f3b614fc182610c3c565b610c3c565b614f3b81615ba1565b6000614fda82615b6c565b614fe48185615b70565b9350614ff4818560208601615bac565b614ffd81615bd8565b9093019392505050565b6000615014601b83615b70565b7f496e707574206172726179206c656e677468206d69736d617463680000000000815260200192915050565b600061504d601683615b70565b754d7573742062652067726561746572207468616e203160501b815260200192915050565b600061507f600e83615b70565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b60006150a9601583615b70565b74086c2dcdcdee840c8e4c2ee40e8d0d2e640daeac6d605b1b815260200192915050565b60006150da603583615b70565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000615131601983615b70565b7f416c6c6f77616e6365206e6f74206869676820656e6f75676800000000000000815260200192915050565b600061516a601d83615b70565b7f4c6f616e20726563656e746c7920696e74657261637465642077697468000000815260200192915050565b60006151a3601e83615b70565b7f5061796d656e74206d7573742062652067726561746572207468616e20300000815260200192915050565b60006151dc601b83615b70565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b6000615215601283615b70565b7113585e081b1bd85b9cc8195e18d95959195960721b815260200192915050565b6000615243601e83615b70565b7f43726174696f2061626f7665206c69717569646174696f6e20726174696f0000815260200192915050565b600061527c601d83615b70565b7f4e6f7420656e6f75676820636f6c6c61746572616c20746f206f70656e000000815260200192915050565b60006152b5601883615b70565b7f43757272656e6379207261746520697320696e76616c69640000000000000000815260200192915050565b60006152ee602083615b70565b7f57616974696e672073656373206f7220736574746c656d656e74206f77696e67815260200192915050565b6000615327601e83615b70565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b6000615360601a83615b70565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000615399601183615b79565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b60006153c6601183615b70565b7014985d195cc8185c99481a5b9d985b1a59607a1b815260200192915050565b60006153f3601383615b70565b7213dc195b9a5b99c81a5cc8191a5cd8589b1959606a1b815260200192915050565b6000615422600a83615b70565b6926b0bc1018903437bab960b11b815260200192915050565b6000615448601a83615b70565b7f436f6c6c61746572616c207261746520697320696e76616c6964000000000000815260200192915050565b6000615481601b83615b70565b7f45786365656473206d617820626f72726f77696e6720706f7765720000000000815260200192915050565b60006154ba602f83615b70565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b600061550b602183615b70565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b600061554e601f83615b70565b7f4e6f7420616c6c6f77656420746f20697373756520746869732070796e746800815260200192915050565b6000615587601e83615b70565b7f4465706f736974206d7573742062652067726561746572207468616e20300000815260200192915050565b60006155c0601a83615b70565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b60006155f9601983615b79565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000615632601383615b70565b72131bd85b88191bd95cc81b9bdd08195e1a5cdd606a1b815260200192915050565b6000615661601883615b70565b7f4e6f7420656e6f7567682070796e74682062616c616e63650000000000000000815260200192915050565b600061569a601b83615b70565b7f57616974696e67206f7220736574746c656d656e74206f77696e670000000000815260200192915050565b80516101208301906156d88482614fac565b5060208201516156eb6020850182614f41565b5060408201516156fe6040850182614fac565b5060608201516157116060850182614fac565b5060808201516157246080850182614fac565b5060a082015161573760a0850182614fa3565b5060c082015161574a60c0850182614fac565b5060e082015161575d60e0850182614fac565b506101008201516107bf610100850182614fac565b600061577d8261538c565b91506157898284614fb5565b50602001919050565b600061577d826155ec565b60208101611e798284614f41565b60208101611e798284614f32565b604081016157c78285614f32565b61110f6020830184614f41565b606081016157e28286614f32565b6157ef6020830185614f41565b6107146040830184614fac565b6040810161580a8285614f32565b61110f6020830184614fac565b604081016157c78285614f41565b6040810161580a8285614f41565b6020808252810161110f8184614f4a565b60208101611e798284614fa3565b60208101611e798284614fac565b604081016157c78285614fac565b6040810161580a8285614fac565b6040810161588a8285614fac565b81810360208301526107148184614fcf565b606081016158aa8286614fac565b6157ef6020830185614fac565b60208101611e798284614fc6565b6020808252810161110f8184614fcf565b60208082528101611e7981615007565b60208082528101611e7981615040565b60208082528101611e7981615072565b60208082528101611e798161509c565b60208082528101611e79816150cd565b60208082528101611e7981615124565b60208082528101611e798161515d565b60208082528101611e7981615196565b60208082528101611e79816151cf565b60208082528101611e7981615208565b60208082528101611e7981615236565b60208082528101611e798161526f565b60208082528101611e79816152a8565b60208082528101611e79816152e1565b60208082528101611e798161531a565b60208082528101611e7981615353565b60208082528101611e79816153b9565b60208082528101611e79816153e6565b60208082528101611e7981615415565b60208082528101611e798161543b565b60208082528101611e7981615474565b60208082528101611e79816154ad565b60208082528101611e79816154fe565b60208082528101611e7981615541565b60208082528101611e798161557a565b60208082528101611e79816155b3565b60208082528101611e7981615625565b60208082528101611e7981615654565b60208082528101611e798161568d565b6101208101611e7982846156c6565b60808101615ac38287614fac565b615ad06020830186614f32565b615add6040830185614fac565b615aea6060830184614fac565b95945050505050565b60a08101615b018288614fac565b615b0e6020830187614fac565b615b1b6040830186614fac565b615b286060830185614fac565b615b356080830184614fac565b9695505050505050565b60405181810167ffffffffffffffff81118282101715615b5e57600080fd5b604052919050565b60200190565b5190565b90815260200190565b919050565b6000611e7982615b8e565b151590565b6001600160a01b031690565b6000611e79825b6000611e7982615b7e565b60005b83811015615bc7578181015183820152602001615baf565b838111156107bf5750506000910152565b601f01601f191690565b615beb81615b7e565b8114613ae757600080fd5b615beb81615b89565b615beb81610c3c56fea365627a7a723158202db26021dd13f8b58f65369276aaa9392975ac9a777981b885aef5795d7168416c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract CollateralState",
							"name": "_state",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_manager",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_collateralKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						},
						{
							"internalType": "address",
							"name": "_underlyingContract",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "_underlyingDecimals",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canOpenLoans",
							"type": "bool"
						}
					],
					"name": "CanOpenLoansUpdated",
					"type": "event",
					"signature": "0x261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountDeposited",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralDeposited",
					"type": "event",
					"signature": "0x0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountWithdrawn",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralWithdrawn",
					"type": "event",
					"signature": "0xfae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f3303"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "interactionDelay",
							"type": "uint256"
						}
					],
					"name": "InteractionDelayUpdated",
					"type": "event",
					"signature": "0x4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c2361"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event",
					"signature": "0xe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event",
					"signature": "0xcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByLiquidation",
					"type": "event",
					"signature": "0x697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issuanceFee",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event",
					"signature": "0x604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanDrawnDown",
					"type": "event",
					"signature": "0x5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf358310654"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanPartiallyLiquidated",
					"type": "event",
					"signature": "0xb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "repayer",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountAfter",
							"type": "uint256"
						}
					],
					"name": "LoanRepaymentMade",
					"type": "event",
					"signature": "0xdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "manager",
							"type": "address"
						}
					],
					"name": "ManagerUpdated",
					"type": "event",
					"signature": "0x2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxLoansPerAccount",
							"type": "uint256"
						}
					],
					"name": "MaxLoansPerAccountUpdated",
					"type": "event",
					"signature": "0x6a5107c7de25c5b210323f3c6c2caea6502583fbe45acdca57e75a4dc9534e8c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCollateral",
							"type": "uint256"
						}
					],
					"name": "MinCollateralUpdated",
					"type": "event",
					"signature": "0xd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCratio",
							"type": "uint256"
						}
					],
					"name": "MinCratioRatioUpdated",
					"type": "event",
					"signature": "0x813a44586e8ecb9390b2568dbe810e193087f80e415c8845340ef06d4cbb42a5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_pynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x55bd615c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "rewardsContract",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "addRewardsContracts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5eb2ad01"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_pynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "arePynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0e54a19b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "canOpenLoans",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4065b81b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "close",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0aebeb4e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb562a1ab"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						}
					],
					"name": "collateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdac8cf68"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "collateralRedeemed",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0a153c97"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "deposit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0efe6a8b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "draw",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd2b8035a"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "interactionDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x15aaf4dd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x361e2086"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "liquidate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0710285c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe74337c6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "manager",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x481c6a75"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7e132355"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxLoansPerAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeb8e3b65"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xba2de9bc"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCratio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x925ead11"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "open",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf93451ed"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "pynths",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x37551ec6"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "pynthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcd285020"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8cd2e0c7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"name": "scaleDownCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "scaledDown",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb094f2c4"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"name": "scaleUpCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "scaledUp",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x883a2209"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_canOpenLoans",
							"type": "bool"
						}
					],
					"name": "setCanOpenLoans",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x90abb4d9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_interactionDelay",
							"type": "uint256"
						}
					],
					"name": "setInteractionDelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4c17ace4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa76cdfa5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_newManager",
							"type": "address"
						}
					],
					"name": "setManager",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd0ebdbe7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						}
					],
					"name": "setMinCratio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0cdd1c65"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortingRewards",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xde81eda9"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "state",
					"outputs": [
						{
							"internalType": "contract CollateralState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc19d93fb"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "underlyingContract",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x10cfe906"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "underlyingContractDecimals",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x3cc3ffc7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x441a3e70"
				}
			],
			"source": {
				"keccak256": "0x7d16a47285cff69c5967ce06ae90d6bb4f2bbb7e047287276de9833f4fdd11c3",
				"urls": [
					"bzz-raw://eae4ea7213234a549d9946d400dc8e0833ef490a16bc2faff51dfab233479252",
					"dweb:/ipfs/QmQ8oAVXECWDtNAVY4Qfv6Nx7PVv3EZtSd7zeb3BUUBecx"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralErc20.sol": "CollateralErc20"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralErc20.sol": {
						"keccak256": "0x7d16a47285cff69c5967ce06ae90d6bb4f2bbb7e047287276de9833f4fdd11c3",
						"urls": [
							"bzz-raw://eae4ea7213234a549d9946d400dc8e0833ef490a16bc2faff51dfab233479252",
							"dweb:/ipfs/QmQ8oAVXECWDtNAVY4Qfv6Nx7PVv3EZtSd7zeb3BUUBecx"
						]
					}
				},
				"version": 1
			}
		},
		"CollateralShort": {
			"bytecode": "60806040526032600d5561012c600e55600f805460ff191660011790553480156200002957600080fd5b5060405162005f3a38038062005f3a8339810160408190526200004c9162000167565b868686868686868380876001600160a01b038116620000885760405162461bcd60e51b81526004016200007f906200028f565b60405180910390fd5b600080546001600160a01b0319166001600160a01b0383161781556040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c91620000d591849062000269565b60405180910390a150600280546001600160a01b03199081166001600160a01b03938416179091556006805482169883169890981790975560058054909716981697909717909455600491909155600a5550600b555062000310975050505050505050565b80516200014781620002e0565b92915050565b80516200014781620002fa565b8051620001478162000305565b600080600080600080600060e0888a0312156200018357600080fd5b6000620001918a8a6200015a565b9750506020620001a48a828b016200013a565b9650506040620001b78a828b016200013a565b9550506060620001ca8a828b016200013a565b9450506080620001dd8a828b016200014d565b93505060a0620001f08a828b016200014d565b92505060c0620002038a828b016200014d565b91505092959891949750929550565b6200021d81620002d3565b82525050565b6200021d81620002aa565b60006200023d601983620002a1565b7f4f776e657220616464726573732063616e6e6f74206265203000000000000000815260200192915050565b6040810162000279828562000212565b62000288602083018462000223565b9392505050565b6020808252810162000147816200022e565b90815260200190565b60006200014782620002c7565b90565b60006200014782620002aa565b6001600160a01b031690565b60006200014782620002ba565b620002eb81620002aa565b8114620002f757600080fd5b50565b620002eb81620002b7565b620002eb81620002ba565b615c1a80620003206000396000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c8063741853601161013b578063ba2de9bc116100b8578063dac8cf681161007c578063dac8cf681461048d578063de81eda9146104a0578063e74337c6146104b3578063eb8e3b65146104c6578063f93451ed146104ce57610248565b8063ba2de9bc14610444578063c19d93fb1461044c578063cd28502014610454578063d0ebdbe714610467578063d2b8035a1461047a57610248565b80638da5cb5b116100ff5780638da5cb5b1461040657806390abb4d91461040e578063925ead1114610421578063a76cdfa514610429578063b562a1ab1461043c57610248565b806374185360146103bb57806379ba5097146103c35780637e132355146103cb578063899ffef4146103de5780638cd2e0c7146103f357610248565b8063361e2086116101c95780634c17ace41161018d5780634c17ace41461036757806353a47bb71461037a57806355bd615c1461038257806356dc04a1146103955780635eb2ad01146103a857610248565b8063361e20861461031c57806337551ec6146103245780634065b81b14610337578063441a3e701461033f578063481c6a751461035257610248565b80630e54a19b116102105780630e54a19b146102c65780630efe6a8b146102e657806315aaf4dd146102f95780631627540c146103015780632af64bd31461031457610248565b806304f3bcec1461024d5780630710285c1461026b5780630a153c97146102805780630aebeb4e146102a05780630cdd1c65146102b3575b600080fd5b6102556104e1565b6040516102629190615886565b60405180910390f35b61027e610279366004614c5a565b6104f0565b005b61029361028e366004614dd1565b61058d565b6040516102629190615821565b61027e6102ae366004614d83565b6106c9565b61027e6102c1366004614d83565b610763565b6102d96102d4366004614ca7565b61084e565b6040516102629190615813565b61027e6102f4366004614c5a565b610910565b610293610a49565b61027e61030f366004614be4565b610a4f565b6102d9610aa2565b610293610bba565b610293610332366004614d83565b610bc0565b6102d9610bde565b61027e61034d366004614dd1565b610be7565b61035a610c82565b604051610262919061576c565b61027e610375366004614d83565b610c91565b61035a610d6d565b61027e610390366004614ca7565b610d7c565b61027e6103a3366004614da1565b610e3c565b61027e6103b6366004614c20565b610ecd565b61027e610f03565b61027e611055565b6102936103d9366004614dd1565b6110f1565b6103e661119a565b6040516102629190615802565b61027e610401366004614c5a565b6112ff565b61035a61130b565b61027e61041c366004614d17565b61131a565b610293611366565b61027e610437366004614d83565b61136c565b6102936113a9565b6102936113af565b6102556113b5565b610293610462366004614d83565b6113c4565b61027e610475366004614be4565b6113d6565b61027e610488366004614dd1565b61142f565b61029361049b366004614df0565b611439565b61035a6104ae366004614d83565b611592565b6102936104c1366004614df0565b6115ad565b610293611897565b61027e6104dc366004614e6b565b61189d565b6002546001600160a01b031681565b60006104fd848484611986565b9050610507611d51565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b81526004016105349291906157cb565b602060405180830381600087803b15801561054e57600080fd5b505af1158015610562573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105869190810190614d35565b5050505050565b600080610598611d6d565b90506105a2611e1a565b6001600160a01b031663654a60ac85856004546040518463ffffffff1660e01b81526004016105d39392919061586b565b60206040518083038186803b1580156105eb57600080fd5b505afa1580156105ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106239190810190614e2e565b91506106c16106b48273__$d87271791b9c544797764b55a2068dac47$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561067057600080fd5b505af4158015610684573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106a89190810190614e2e565b9063ffffffff611e3516565b839063ffffffff611e6316565b949350505050565b60006106d53383611e8d565b90506106df611d51565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b815260040161070c9291906157cb565b602060405180830381600087803b15801561072657600080fd5b505af115801561073a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061075e9190810190614d35565b505050565b61076b612358565b73__$d87271791b9c544797764b55a2068dac47$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156107af57600080fd5b505af41580156107c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506107e79190810190614e2e565b811161080e5760405162461bcd60e51b8152600401610805906158b5565b60405180910390fd5b600a8190556040517f813a44586e8ecb9390b2568dbe810e193087f80e415c8845340ef06d4cbb42a590610843908390615821565b60405180910390a150565b6007546000908414610862575060006106c1565b60005b8481101561090457600086868381811061087b57fe5b905060200201359050806007838154811061089257fe5b9060005260206000200154146108ad576000925050506106c1565b600782815481106108ba57fe5b9060005260206000200154600860008787868181106108d557fe5b90506020020135815260200190815260200160002054146108fb576000925050506106c1565b50600101610865565b50600195945050505050565b610918611d51565b6001600160a01b031663dd62ed3e33306040518363ffffffff1660e01b8152600401610945929190615788565b60206040518083038186803b15801561095d57600080fd5b505afa158015610971573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109959190810190614e2e565b8111156109b45760405162461bcd60e51b8152600401610805906158f5565b6109bc611d51565b6001600160a01b03166323b872dd3330846040518463ffffffff1660e01b81526004016109eb939291906157a3565b602060405180830381600087803b158015610a0557600080fd5b505af1158015610a19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610a3d9190810190614d35565b5061075e838383612384565b600e5481565b610a57612358565b600180546001600160a01b0319166001600160a01b0383161790556040517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229061084390839061576c565b60006060610aae61119a565b905060005b8151811015610bb0576000828281518110610aca57fe5b602090810291909101810151600081815260039092526040918290205460025492516321f8a72160e01b81529193506001600160a01b039081169216906321f8a72190610b1b908590600401615821565b60206040518083038186803b158015610b3357600080fd5b505afa158015610b47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b6b9190810190614c02565b6001600160a01b0316141580610b9657506000818152600360205260409020546001600160a01b0316155b15610ba75760009350505050610bb7565b50600101610ab3565b5060019150505b90565b600c5481565b60078181548110610bcd57fe5b600091825260209091200154905081565b600f5460ff1681565b6000610bf3838361257b565b9050610bfd611d51565b6001600160a01b031663a9059cbb33836040518363ffffffff1660e01b8152600401610c2a9291906157cb565b602060405180830381600087803b158015610c4457600080fd5b505af1158015610c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c7c9190810190614d35565b50505050565b6006546001600160a01b031681565b610c99612358565b73__$d87271791b9c544797764b55a2068dac47$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdd57600080fd5b505af4158015610cf1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610d159190810190614e2e565b610e1002811115610d385760405162461bcd60e51b8152600401610805906159c5565b600e8190556040517f4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c236190610843908390615821565b6001546001600160a01b031681565b610d84612358565b828114610da35760405162461bcd60e51b8152600401610805906158a5565b60005b83811015610e33576000858583818110610dbc57fe5b600780546001810182556000918252602090920293909301357fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6889091018190559250829160089150868686818110610e1057fe5b602090810292909201358352508101919091526040016000205550600101610da6565b50610c7c610f03565b6000828152600960205260409020546001600160a01b031615610ec95760008281526009602052604090819020549051630c00007b60e41b81526001600160a01b039091169063c00007b090610e9690849060040161576c565b600060405180830381600087803b158015610eb057600080fd5b505af1158015610ec4573d6000803e3d6000fd5b505050505b5050565b610ed5612358565b600090815260096020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6060610f0d61119a565b905060005b8151811015610ec9576000828281518110610f2957fe5b602002602001015190506000600260009054906101000a90046001600160a01b03166001600160a01b031663dacb2d018384604051602001610f6b9190615761565b6040516020818303038152906040526040518363ffffffff1660e01b8152600401610f9792919061584b565b60206040518083038186803b158015610faf57600080fd5b505afa158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610fe79190810190614c02565b6000838152600360205260409081902080546001600160a01b0319166001600160a01b038416179055519091507f88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa6890611043908490849061582f565b60405180910390a15050600101610f12565b6001546001600160a01b0316331461107f5760405162461bcd60e51b8152600401610805906158e5565b6000546001546040517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c926110c2926001600160a01b03918216929116906157e6565b60405180910390a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60006111936110fe611e1a565b6001600160a01b031663654a60ac60045486866040518463ffffffff1660e01b815260040161112f9392919061586b565b60206040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061117f9190810190614e2e565b61118761277e565b9063ffffffff611e6316565b9392505050565b6060806111a561280e565b60408051600580825260c08201909252919250606091906020820160a08038833901905050905066119959541bdbdb60ca1b816000815181106111e457fe5b6020026020010181815250506c45786368616e6765526174657360981b8160018151811061120e57fe5b6020026020010181815250506822bc31b430b733b2b960b91b8160028151811061123457fe5b6020026020010181815250506b53797374656d53746174757360a01b8160038151811061125d57fe5b60200260200101818152505068141e5b9d1a1c1554d160ba1b8160048151811061128357fe5b602002602001018181525050606061129b838361285f565b90506112f78160078054806020026020016040519081016040528092919081815260200182805480156112ed57602002820191906000526020600020905b8154815260200190600101908083116112d9575b505050505061285f565b935050505090565b61075e8333848461291b565b6000546001600160a01b031681565b611322612358565b600f805460ff191682151517908190556040517f261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2916108439160ff90911690615813565b600a5481565b611374612358565b600c8190556040517fe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c90610843908390615821565b60045481565b600b5481565b6005546001600160a01b031681565b60086020526000908152604090205481565b6113de612358565b600680546001600160a01b0319166001600160a01b0383811691909117918290556040517f2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d9261084392169061576c565b610ec98282612c3c565b600080611444611e1a565b6001600160a01b031663654a60ac6004548560400151631c1554d160e21b6040518463ffffffff1660e01b81526004016114809392919061586b565b60206040518083038186803b15801561149857600080fd5b505afa1580156114ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506114d09190810190614e2e565b905060006114dc611e1a565b6001600160a01b031663654a60ac856060015161150a8760c001518860800151611e3590919063ffffffff16565b631c1554d160e21b6040518463ffffffff1660e01b81526004016115309392919061586b565b60206040518083038186803b15801561154857600080fd5b505afa15801561155c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506115809190810190614e2e565b90506106c1828263ffffffff61316216565b6009602052600090815260409020546001600160a01b031681565b6000806115b8611d6d565b905060006115c4611e1a565b6001600160a01b031663654a60ac85606001516115f28760c001518860800151611e3590919063ffffffff16565b631c1554d160e21b6040518463ffffffff1660e01b81526004016116189392919061586b565b60206040518083038186803b15801561163057600080fd5b505afa158015611644573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506116689190810190614e2e565b90506000611674611e1a565b6001600160a01b031663654a60ac6004548760400151631c1554d160e21b6040518463ffffffff1660e01b81526004016116b09392919061586b565b60206040518083038186803b1580156116c857600080fd5b505afa1580156116dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117009190810190614e2e565b9050600073__$d87271791b9c544797764b55a2068dac47$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b15801561174857600080fd5b505af415801561175c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117809190810190614e2e565b905060006117a961179c600a548561316290919063ffffffff16565b859063ffffffff61318c16565b905060006117e26117d5600a546117c98987611e3590919063ffffffff16565b9063ffffffff61316216565b849063ffffffff61318c16565b905060006117f6838363ffffffff61316216565b9050611800611e1a565b6001600160a01b031663654a60ac631c1554d160e21b838c606001516040518463ffffffff1660e01b815260040161183a9392919061586b565b60206040518083038186803b15801561185257600080fd5b505afa158015611866573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061188a9190810190614e2e565b9998505050505050505050565b600d5481565b6118a5611d51565b6001600160a01b031663dd62ed3e33306040518363ffffffff1660e01b81526004016118d2929190615788565b60206040518083038186803b1580156118ea57600080fd5b505afa1580156118fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506119229190810190614e2e565b8311156119415760405162461bcd60e51b8152600401610805906158f5565b61194e83838360016131b4565b50611957611d51565b6001600160a01b03166323b872dd3330866040518463ffffffff1660e01b8152600401610c2a939291906157a3565b6000611990613943565b6119986139e5565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156119d057600080fd5b505afa1580156119e4573d6000803e3d6000fd5b5050505060008211611a085760405162461bcd60e51b815260040161080590615915565b611a1061495e565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c5158690611a4290889088906004016157f4565b6101206040518083038186803b158015611a5b57600080fd5b505afa158015611a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611a939190810190614e0f565b9050611a9e816139ff565b611aa781613a5f565b9050611ab833826060015185613f4b565b600a54611ac482611439565b10611ae15760405162461bcd60e51b815260040161080590615945565b6000611aec826115ad565b90506000848210611afd5784611aff565b815b90506000611b1e8460c001518560800151611e3590919063ffffffff16565b9050808210611b3d57611b32883386613ffe565b945050505050611193565b611b4784836143cd565b9350611b5784606001518361058d565b6040850151909550611b6f908663ffffffff61318c16565b604085015242610100850152611b836145f0565b6001600160a01b031663d6f32e063386606001516040518363ffffffff1660e01b8152600401611bb49291906157cb565b60206040518083038186803b158015611bcc57600080fd5b505afa158015611be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611c049190810190614d35565b15611c215760405162461bcd60e51b815260040161080590615a65565b6060840151600090815260086020526040902054611c3e90614607565b6001600160a01b0316639dc29fac33846040518363ffffffff1660e01b8152600401611c6b9291906157cb565b600060405180830381600087803b158015611c8557600080fd5b505af1158015611c99573d6000803e3d6000fd5b5050600554604051631137390760e21b81526001600160a01b0390911692506344dce41c9150611ccd908790600401615a75565b600060405180830381600087803b158015611ce757600080fd5b505af1158015611cfb573d6000803e3d6000fd5b50505050876001600160a01b03167fb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c588338589604051611d3e9493929190615a84565b60405180910390a2505050509392505050565b6000611d6868141e5b9d1a1c1554d160ba1b61460e565b905090565b6000611d7761466b565b6001600160a01b03166323257c2b6d53797374656d53657474696e677360901b716c69717569646174696f6e50656e616c747960701b6040518363ffffffff1660e01b8152600401611dca92919061583d565b60206040518083038186803b158015611de257600080fd5b505afa158015611df6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611d689190810190614e2e565b6000611d686c45786368616e6765526174657360981b61460e565b600082820183811015611e5a5760405162461bcd60e51b815260040161080590615925565b90505b92915050565b6000670de0b6b3a7640000611e7e848463ffffffff61468816565b81611e8557fe5b049392505050565b6000611e97613943565b611e9f6139e5565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015611ed757600080fd5b505afa158015611eeb573d6000803e3d6000fd5b50505050611ef761495e565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c5158690611f2990879087906004016157f4565b6101206040518083038186803b158015611f4257600080fd5b505afa158015611f56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250611f7a9190810190614e0f565b9050611f85816139ff565b611f8e81613a5f565b90506000611fad8260c001518360800151611e3590919063ffffffff16565b9050611fc28260200151836060015183613f4b565b611fca6145f0565b6001600160a01b031663d6f32e068684606001516040518363ffffffff1660e01b8152600401611ffb9291906157f4565b60206040518083038186803b15801561201357600080fd5b505afa158015612027573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061204b9190810190614d35565b156120685760405162461bcd60e51b815260040161080590615975565b606082015160009081526008602052604090205461208590614607565b6001600160a01b0316639dc29fac86836040518363ffffffff1660e01b81526004016120b29291906157f4565b600060405180830381600087803b1580156120cc57600080fd5b505af11580156120e0573d6000803e3d6000fd5b505050508160a00151156121fe576120f66146c2565b6001600160a01b0316635246f2b9836060015184608001516040518363ffffffff1660e01b815260040161212b92919061583d565b600060405180830381600087803b15801561214557600080fd5b505af1158015612159573d6000803e3d6000fd5b5050505060608201516000908152600960205260409020546001600160a01b0316156121f957606082015160009081526009602052604090819020546080840151915163f3fef3a360e01b81526001600160a01b039091169163f3fef3a3916121c69189916004016157f4565b600060405180830381600087803b1580156121e057600080fd5b505af11580156121f4573d6000803e3d6000fd5b505050505b61226e565b6122066146c2565b6001600160a01b031663e50a31b3836060015184608001516040518363ffffffff1660e01b815260040161223b92919061583d565b600060405180830381600087803b15801561225557600080fd5b505af1158015612269573d6000803e3d6000fd5b505050505b816040015192506122878260c0015183606001516146d1565b600060808301819052604080840182905260c0840182905260e0840191909152426101008401526005549051631137390760e21b81526001600160a01b03909116906344dce41c906122dd908590600401615a75565b600060405180830381600087803b1580156122f757600080fd5b505af115801561230b573d6000803e3d6000fd5b50505050846001600160a01b03167fcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f856040516123489190615821565b60405180910390a2505092915050565b6000546001600160a01b031633146123825760405162461bcd60e51b8152600401610805906159f5565b565b61238c613943565b6123946139e5565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156123cc57600080fd5b505afa1580156123e0573d6000803e3d6000fd5b50505050600081116124045760405162461bcd60e51b815260040161080590615a25565b61240c61495e565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c515869061243e90879087906004016157f4565b6101206040518083038186803b15801561245757600080fd5b505afa15801561246b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061248f9190810190614e0f565b905061249a816139ff565b6124a381613a5f565b60408101519091506124bb908363ffffffff611e3516565b604080830191909152426101008301526005549051631137390760e21b81526001600160a01b03909116906344dce41c906124fa908490600401615a75565b600060405180830381600087803b15801561251457600080fd5b505af1158015612528573d6000803e3d6000fd5b50505050836001600160a01b03167f0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c8484846040015160405161256d9392919061586b565b60405180910390a250505050565b6000612585613943565b61258d6139e5565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156125c557600080fd5b505afa1580156125d9573d6000803e3d6000fd5b505050506125e561495e565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c515869061261790339088906004016157cb565b6101206040518083038186803b15801561263057600080fd5b505afa158015612644573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506126689190810190614e0f565b9050612673816139ff565b61267c81613a5f565b6040810151909150612694908463ffffffff61318c16565b604082015242610100820152600a546126ac82611439565b116126c95760405162461bcd60e51b8152600401610805906158c5565b600554604051631137390760e21b81526001600160a01b03909116906344dce41c906126f9908490600401615a75565b600060405180830381600087803b15801561271357600080fd5b505af1158015612727573d6000803e3d6000fd5b50505050829150336001600160a01b03167ffae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f33038585846040015160405161276f9392919061586b565b60405180910390a25092915050565b6000611d68600a5473__$d87271791b9c544797764b55a2068dac47$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b1580156127ca57600080fd5b505af41580156127de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506128029190810190614e2e565b9063ffffffff61488716565b604080516001808252818301909252606091602080830190803883390190505090506e466c657869626c6553746f7261676560881b8160008151811061285057fe5b60200260200101818152505090565b6060815183510160405190808252806020026020018201604052801561288f578160200160208202803883390190505b50905060005b83518110156128d1578381815181106128aa57fe5b60200260200101518282815181106128be57fe5b6020908102919091010152600101612895565b5060005b8251811015612914578281815181106128ea57fe5b602002602001015182828651018151811061290157fe5b60209081029190910101526001016128d5565b5092915050565b612923613943565b61292b6139e5565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b15801561296357600080fd5b505afa158015612977573d6000803e3d6000fd5b505050506000811161299b5760405162461bcd60e51b815260040161080590615915565b6129a361495e565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c51586906129d590889087906004016157f4565b6101206040518083038186803b1580156129ee57600080fd5b505afa158015612a02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612a269190810190614e0f565b9050612a31816139ff565b612a3a81613a5f565b9050612a4b84826060015184613f4b565b612a5581836143cd565b426101008201529050612a666145f0565b6001600160a01b031663d6f32e068583606001516040518363ffffffff1660e01b8152600401612a979291906157f4565b60206040518083038186803b158015612aaf57600080fd5b505afa158015612ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ae79190810190614d35565b15612b045760405162461bcd60e51b815260040161080590615a65565b6060810151600090815260086020526040902054612b2190614607565b6001600160a01b0316639dc29fac85846040518363ffffffff1660e01b8152600401612b4e9291906157f4565b600060405180830381600087803b158015612b6857600080fd5b505af1158015612b7c573d6000803e3d6000fd5b5050600554604051631137390760e21b81526001600160a01b0390911692506344dce41c9150612bb0908490600401615a75565b600060405180830381600087803b158015612bca57600080fd5b505af1158015612bde573d6000803e3d6000fd5b50505050836001600160a01b0316856001600160a01b03167fdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f85858560800151604051612c2d9392919061586b565b60405180910390a35050505050565b612c44613943565b612c4c6139e5565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b158015612c8457600080fd5b505afa158015612c98573d6000803e3d6000fd5b50505050612ca461495e565b6005546040516350e28ac360e11b81526001600160a01b039091169063a1c5158690612cd690339087906004016157cb565b6101206040518083038186803b158015612cef57600080fd5b505afa158015612d03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612d279190810190614e0f565b9050612d32816139ff565b612d3b81613a5f565b6080810151909150612d53908363ffffffff611e3516565b6080820152600a54612d6482611439565b11612d815760405162461bcd60e51b8152600401610805906158d5565b6000612d98600c548461489c90919063ffffffff16565b90506000612dac848363ffffffff61318c16565b90508260a0015115612fb957612dc06146c2565b6001600160a01b031663e31f27c18460600151866040518363ffffffff1660e01b8152600401612df192919061583d565b600060405180830381600087803b158015612e0b57600080fd5b505af1158015612e1f573d6000803e3d6000fd5b50505050612e2b611d51565b6001600160a01b031663867904b433612e42611e1a565b6001600160a01b031663654a60ac876060015186631c1554d160e21b6040518463ffffffff1660e01b8152600401612e7c9392919061586b565b60206040518083038186803b158015612e9457600080fd5b505afa158015612ea8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250612ecc9190810190614e2e565b6040518363ffffffff1660e01b8152600401612ee99291906157cb565b600060405180830381600087803b158015612f0357600080fd5b505af1158015612f17573d6000803e3d6000fd5b5050505060608301516000908152600960205260409020546001600160a01b031615612fb45760608301516000908152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a5190612f8190339088906004016157cb565b600060405180830381600087803b158015612f9b57600080fd5b505af1158015612faf573d6000803e3d6000fd5b505050505b6130a1565b612fc16146c2565b6001600160a01b031663eb94bbde8460600151866040518363ffffffff1660e01b8152600401612ff292919061583d565b600060405180830381600087803b15801561300c57600080fd5b505af1158015613020573d6000803e3d6000fd5b50505060608401516000908152600860205260409020546130419150614607565b6001600160a01b031663867904b433836040518363ffffffff1660e01b815260040161306e9291906157cb565b600060405180830381600087803b15801561308857600080fd5b505af115801561309c573d6000803e3d6000fd5b505050505b6130af8284606001516146d1565b42610100840152600554604051631137390760e21b81526001600160a01b03909116906344dce41c906130e6908690600401615a75565b600060405180830381600087803b15801561310057600080fd5b505af1158015613114573d6000803e3d6000fd5b50505050336001600160a01b03167f5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf358310654868660405161315392919061583d565b60405180910390a25050505050565b60006111938261318085670de0b6b3a764000063ffffffff61468816565b9063ffffffff6148b116565b6000828211156131ae5760405162461bcd60e51b815260040161080590615985565b50900390565b60006131be613943565b6131c66139e5565b6001600160a01b0316637c3125416040518163ffffffff1660e01b815260040160006040518083038186803b1580156131fe57600080fd5b505afa158015613212573d6000803e3d6000fd5b5050600f5460ff16915061323a90505760405162461bcd60e51b8152600401610805906159b5565b6000838152600860205260409020546132655760405162461bcd60e51b815260040161080590615a15565b61326d611e1a565b6001600160a01b0316632528f0fe846040518263ffffffff1660e01b81526004016132989190615821565b60206040518083038186803b1580156132b057600080fd5b505afa1580156132c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506132e89190810190614d35565b156133055760405162461bcd60e51b815260040161080590615965565b600b548510156133275760405162461bcd60e51b815260040161080590615955565b600d5460055460405163382dab6f60e21b81526001600160a01b039091169063e0b6adbc9061335a90339060040161577a565b60206040518083038186803b15801561337257600080fd5b505afa158015613386573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506133aa9190810190614e2e565b106133c75760405162461bcd60e51b815260040161080590615935565b6000806133d26146c2565b6001600160a01b031663b4d6cb4087876040518363ffffffff1660e01b81526004016133ff92919061583d565b604080518083038186803b15801561341657600080fd5b505afa15801561342a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061344e9190810190614d53565b9150915081801561345d575080155b6134795760405162461bcd60e51b815260040161080590615a35565b61348387866110f1565b8611156134a25760405162461bcd60e51b8152600401610805906159e5565b60006134b9600c548861489c90919063ffffffff16565b905060006134cd888363ffffffff61318c16565b90506134d76146c2565b6001600160a01b031663b3b467326040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561351157600080fd5b505af1158015613525573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506135499190810190614e2e565b945061355361495e565b604051806101200160405280878152602001336001600160a01b031681526020018b81526020018981526020018a8152602001881515815260200160008152602001600081526020014281525090506135ab81613a5f565b60055460405163170cc48160e21b81529192506001600160a01b031690635c331204906135dc908490600401615a75565b600060405180830381600087803b1580156135f657600080fd5b505af115801561360a573d6000803e3d6000fd5b5050505061361883896146d1565b861561380e57613626611d51565b6001600160a01b031663867904b43361363d611e1a565b6001600160a01b031663654a60ac8c87631c1554d160e21b6040518463ffffffff1660e01b81526004016136739392919061586b565b60206040518083038186803b15801561368b57600080fd5b505afa15801561369f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506136c39190810190614e2e565b6040518363ffffffff1660e01b81526004016136e09291906157cb565b600060405180830381600087803b1580156136fa57600080fd5b505af115801561370e573d6000803e3d6000fd5b5050505061371a6146c2565b6001600160a01b031663e31f27c1898b6040518363ffffffff1660e01b815260040161374792919061583d565b600060405180830381600087803b15801561376157600080fd5b505af1158015613775573d6000803e3d6000fd5b5050506000898152600960205260409020546001600160a01b0316159050613809576000888152600960205260409081902054905163db454a5160e01b81526001600160a01b039091169063db454a51906137d69033908d906004016157cb565b600060405180830381600087803b1580156137f057600080fd5b505af1158015613804573d6000803e3d6000fd5b505050505b6138ed565b60008881526008602052604090205461382690614607565b6001600160a01b031663867904b433846040518363ffffffff1660e01b81526004016138539291906157cb565b600060405180830381600087803b15801561386d57600080fd5b505af1158015613881573d6000803e3d6000fd5b5050505061388d6146c2565b6001600160a01b031663eb94bbde898b6040518363ffffffff1660e01b81526004016138ba92919061583d565b600060405180830381600087803b1580156138d457600080fd5b505af11580156138e8573d6000803e3d6000fd5b505050505b336001600160a01b03167f604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a878b8d8c8860405161392e959493929190615ac2565b60405180910390a25050505050949350505050565b61394b611e1a565b6001600160a01b0316632528f0fe6004546040518263ffffffff1660e01b81526004016139789190615821565b60206040518083038186803b15801561399057600080fd5b505afa1580156139a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506139c89190810190614d35565b156123825760405162461bcd60e51b8152600401610805906159d5565b6000611d686b53797374656d53746174757360a01b61460e565b60008160e0015111613a235760405162461bcd60e51b815260040161080590615a45565b42613a3e600e54836101000151611e3590919063ffffffff16565b1115613a5c5760405162461bcd60e51b815260040161080590615905565b50565b613a6761495e565b8190506000806000808560a00151613b0557613a816146c2565b6001600160a01b03166303f048b08760e001516040518263ffffffff1660e01b8152600401613ab09190615821565b60806040518083038186803b158015613ac857600080fd5b505afa158015613adc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613b009190810190614e8c565b613b92565b613b0d6146c2565b6001600160a01b031663af07aa9d87606001518860e001516040518363ffffffff1660e01b8152600401613b4292919061583d565b60806040518083038186803b158015613b5a57600080fd5b505afa158015613b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613b929190810190614e8c565b93509350935093506000808760a00151613c2257613bae6146c2565b6001600160a01b031663ba1c5e806040518163ffffffff1660e01b8152600401604080518083038186803b158015613be557600080fd5b505afa158015613bf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613c1d9190810190614e4c565b613cba565b613c2a6146c2565b606089015160009081526008602052604090819020549051630ee81f7960e41b81526001600160a01b03929092169163ee81f79091613c6b91600401615821565b604080518083038186803b158015613c8257600080fd5b505afa158015613c96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613cba9190810190614e4c565b915091508015613cdc5760405162461bcd60e51b8152600401610805906159a5565b6000613d7973__$d87271791b9c544797764b55a2068dac47$__63907af6c06040518163ffffffff1660e01b815260040160206040518083038186803b158015613d2557600080fd5b505af4158015613d39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613d5d9190810190614e2e565b613d6d428863ffffffff61318c16565b9063ffffffff61468816565b90506000613d9d613d90858463ffffffff611e6316565b889063ffffffff611e3516565b905060008a60e00151600014613dd657613dd1613dc0838b63ffffffff61318c16565b60808d01519063ffffffff611e6316565b613dd9565b60005b90508a60a00151613e4e57613dec6146c2565b6001600160a01b031663f53037b6836040518263ffffffff1660e01b8152600401613e179190615821565b600060405180830381600087803b158015613e3157600080fd5b505af1158015613e45573d6000803e3d6000fd5b50505050613eba565b613e566146c2565b6001600160a01b031663246206398c60600151846040518363ffffffff1660e01b8152600401613e8792919061583d565b600060405180830381600087803b158015613ea157600080fd5b505af1158015613eb5573d6000803e3d6000fd5b505050505b60c08b0151613ecf908263ffffffff611e3516565b60c08b015260e08a01869052600554604051631137390760e21b81526001600160a01b03909116906344dce41c90613f0b908d90600401615a75565b600060405180830381600087803b158015613f2557600080fd5b505af1158015613f39573d6000803e3d6000fd5b50505050505050505050505050919050565b6000828152600860205260409020548190613f6590614607565b6001600160a01b03166370a08231856040518263ffffffff1660e01b8152600401613f90919061576c565b60206040518083038186803b158015613fa857600080fd5b505afa158015613fbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250613fe09190810190614e2e565b101561075e5760405162461bcd60e51b815260040161080590615a55565b60008061401c8360c001518460800151611e3590919063ffffffff16565b6080840151604085015193509091506140336145f0565b6001600160a01b031663d6f32e068686606001516040518363ffffffff1660e01b81526004016140649291906157f4565b60206040518083038186803b15801561407c57600080fd5b505afa158015614090573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506140b49190810190614d35565b156140d15760405162461bcd60e51b815260040161080590615a65565b60608401516000908152600860205260409020546140ee90614607565b6001600160a01b0316639dc29fac86846040518363ffffffff1660e01b815260040161411b9291906157f4565b600060405180830381600087803b15801561413557600080fd5b505af1158015614149573d6000803e3d6000fd5b505050508360a00151156142675761415f6146c2565b6001600160a01b0316635246f2b9856060015186608001516040518363ffffffff1660e01b815260040161419492919061583d565b600060405180830381600087803b1580156141ae57600080fd5b505af11580156141c2573d6000803e3d6000fd5b5050505060608401516000908152600960205260409020546001600160a01b03161561426257606084015160009081526009602052604090819020546080860151915163f3fef3a360e01b81526001600160a01b039091169163f3fef3a39161422f918a916004016157f4565b600060405180830381600087803b15801561424957600080fd5b505af115801561425d573d6000803e3d6000fd5b505050505b6142d7565b61426f6146c2565b6001600160a01b031663e50a31b3856060015186608001516040518363ffffffff1660e01b81526004016142a492919061583d565b600060405180830381600087803b1580156142be57600080fd5b505af11580156142d2573d6000803e3d6000fd5b505050505b6142e98460c0015185606001516146d1565b600060808501819052604080860182905260c0860182905260e0860191909152426101008601526005549051631137390760e21b81526001600160a01b03909116906344dce41c9061433f908790600401615a75565b600060405180830381600087803b15801561435957600080fd5b505af115801561436d573d6000803e3d6000fd5b50505050846001600160a01b0316866001600160a01b03167f697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb866000015184876040516143bc9392919061586b565b60405180910390a350509392505050565b6143d561495e565b508181158015906143ea575060008360c00151115b156144475760008360c0015183116144025782614408565b8360c001515b60c0850151909150614420908263ffffffff61318c16565b60c0830152614435838263ffffffff61318c16565b92506144458185606001516146d1565b505b8115611e5d576080830151614462908363ffffffff61318c16565b608082015260a08101511561457f576144796146c2565b6001600160a01b0316635246f2b98260600151846040518363ffffffff1660e01b81526004016144aa92919061583d565b600060405180830381600087803b1580156144c457600080fd5b505af11580156144d8573d6000803e3d6000fd5b5050505060608101516000908152600960205260409020546001600160a01b03161561457a5760608101516000908152600960209081526040918290205490830151915163f3fef3a360e01b81526001600160a01b039091169163f3fef3a391614547919086906004016157cb565b600060405180830381600087803b15801561456157600080fd5b505af1158015614575573d6000803e3d6000fd5b505050505b611e5d565b6145876146c2565b6001600160a01b031663e50a31b38260600151846040518363ffffffff1660e01b81526004016145b892919061583d565b600060405180830381600087803b1580156145d257600080fd5b505af11580156145e6573d6000803e3d6000fd5b5050505092915050565b6000611d686822bc31b430b733b2b960b91b61460e565b6000611e5d825b60008181526003602090815260408083205490516001600160a01b03909116918215159161463e91869101615741565b604051602081830303815290604052906129145760405162461bcd60e51b81526004016108059190615894565b6000611d686e466c657869626c6553746f7261676560881b61460e565b60008261469757506000611e5d565b828202828482816146a457fe5b0414611e5a5760405162461bcd60e51b815260040161080590615a05565b6006546001600160a01b031690565b8115610ec957631c1554d160e21b8114614776576146ed611e1a565b6001600160a01b031663654a60ac8284631c1554d160e21b6040518463ffffffff1660e01b81526004016147239392919061586b565b60206040518083038186803b15801561473b57600080fd5b505afa15801561474f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506147739190810190614e2e565b91505b61477e611d51565b6001600160a01b031663867904b46147946148e6565b6001600160a01b031663eb1edd616040518163ffffffff1660e01b815260040160206040518083038186803b1580156147cc57600080fd5b505afa1580156147e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506148049190810190614c02565b846040518363ffffffff1660e01b81526004016148229291906157f4565b600060405180830381600087803b15801561483c57600080fd5b505af1158015614850573d6000803e3d6000fd5b5050505061485c6148e6565b6001600160a01b03166322bf55ef836040518263ffffffff1660e01b8152600401610e969190615821565b60006111938383670de0b6b3a76400006148fb565b60006111938383670de0b6b3a7640000614933565b60008082116148d25760405162461bcd60e51b815260040161080590615995565b60008284816148dd57fe5b04949350505050565b6000611d6866119959541bdbdb60ca1b61460e565b6000806149158461318087600a870263ffffffff61468816565b90506005600a825b061061492757600a015b600a9004949350505050565b600080600a830461494a868663ffffffff61468816565b8161495157fe5b0490506005600a8261491d565b6040518061012001604052806000815260200160006001600160a01b031681526020016000815260200160008019168152602001600081526020016000151581526020016000815260200160008152602001600081525090565b8035611e5d81615bb1565b8051611e5d81615bb1565b60008083601f8401126149e057600080fd5b50813567ffffffffffffffff8111156149f857600080fd5b602083019150836020820283011115614a1057600080fd5b9250929050565b8035611e5d81615bc5565b8051611e5d81615bc5565b8035611e5d81615bce565b8051611e5d81615bce565b60006101208284031215614a5657600080fd5b614a61610120615b0e565b90506000614a6f8484614a2d565b8252506020614a80848483016149b8565b6020830152506040614a9484828501614a2d565b6040830152506060614aa884828501614a2d565b6060830152506080614abc84828501614a2d565b60808301525060a0614ad084828501614a17565b60a08301525060c0614ae484828501614a2d565b60c08301525060e0614af884828501614a2d565b60e083015250610100614b0d84828501614a2d565b6101008301525092915050565b60006101208284031215614b2d57600080fd5b614b38610120615b0e565b90506000614b468484614a38565b8252506020614b57848483016149c3565b6020830152506040614b6b84828501614a38565b6040830152506060614b7f84828501614a38565b6060830152506080614b9384828501614a38565b60808301525060a0614ba784828501614a22565b60a08301525060c0614bbb84828501614a38565b60c08301525060e0614bcf84828501614a38565b60e083015250610100614b0d84828501614a38565b600060208284031215614bf657600080fd5b60006106c184846149b8565b600060208284031215614c1457600080fd5b60006106c184846149c3565b60008060408385031215614c3357600080fd5b6000614c3f85856149b8565b9250506020614c5085828601614a2d565b9150509250929050565b600080600060608486031215614c6f57600080fd5b6000614c7b86866149b8565b9350506020614c8c86828701614a2d565b9250506040614c9d86828701614a2d565b9150509250925092565b60008060008060408587031215614cbd57600080fd5b843567ffffffffffffffff811115614cd457600080fd5b614ce0878288016149ce565b9450945050602085013567ffffffffffffffff811115614cff57600080fd5b614d0b878288016149ce565b95989497509550505050565b600060208284031215614d2957600080fd5b60006106c18484614a17565b600060208284031215614d4757600080fd5b60006106c18484614a22565b60008060408385031215614d6657600080fd5b6000614d728585614a22565b9250506020614c5085828601614a22565b600060208284031215614d9557600080fd5b60006106c18484614a2d565b60008060408385031215614db457600080fd5b6000614dc08585614a2d565b9250506020614c50858286016149b8565b60008060408385031215614de457600080fd5b6000614c3f8585614a2d565b60006101208284031215614e0357600080fd5b60006106c18484614a43565b60006101208284031215614e2257600080fd5b60006106c18484614b1a565b600060208284031215614e4057600080fd5b60006106c18484614a38565b60008060408385031215614e5f57600080fd5b6000614d728585614a38565b600080600060608486031215614e8057600080fd5b6000614c7b8686614a2d565b60008060008060808587031215614ea257600080fd5b6000614eae8787614a38565b9450506020614ebf87828801614a38565b9350506040614ed087828801614a38565b9250506060614ee187828801614a38565b91505092959194509250565b6000614ef98383614f7b565b505060200190565b614f0a81615b69565b82525050565b614f0a81615b4d565b6000614f2482615b3b565b614f2e8185615b3f565b9350614f3983615b35565b8060005b83811015614f67578151614f518882614eed565b9750614f5c83615b35565b925050600101614f3d565b509495945050505050565b614f0a81615b58565b614f0a81610bb7565b614f0a614f9082610bb7565b610bb7565b614f0a81615b70565b6000614fa982615b3b565b614fb38185615b3f565b9350614fc3818560208601615b7b565b614fcc81615ba7565b9093019392505050565b6000614fe3601b83615b3f565b7f496e707574206172726179206c656e677468206d69736d617463680000000000815260200192915050565b600061501c601683615b3f565b754d7573742062652067726561746572207468616e203160501b815260200192915050565b600061504e600e83615b3f565b6d43726174696f20746f6f206c6f7760901b815260200192915050565b6000615078601583615b3f565b74086c2dcdcdee840c8e4c2ee40e8d0d2e640daeac6d605b1b815260200192915050565b60006150a9603583615b3f565b7f596f75206d757374206265206e6f6d696e61746564206265666f726520796f7581527402063616e20616363657074206f776e65727368697605c1b602082015260400192915050565b6000615100601983615b3f565b7f416c6c6f77616e6365206e6f74206869676820656e6f75676800000000000000815260200192915050565b6000615139601d83615b3f565b7f4c6f616e20726563656e746c7920696e74657261637465642077697468000000815260200192915050565b6000615172601e83615b3f565b7f5061796d656e74206d7573742062652067726561746572207468616e20300000815260200192915050565b60006151ab601b83615b3f565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000815260200192915050565b60006151e4601283615b3f565b7113585e081b1bd85b9cc8195e18d95959195960721b815260200192915050565b6000615212601e83615b3f565b7f43726174696f2061626f7665206c69717569646174696f6e20726174696f0000815260200192915050565b600061524b601d83615b3f565b7f4e6f7420656e6f75676820636f6c6c61746572616c20746f206f70656e000000815260200192915050565b6000615284601883615b3f565b7f43757272656e6379207261746520697320696e76616c69640000000000000000815260200192915050565b60006152bd602083615b3f565b7f57616974696e672073656373206f7220736574746c656d656e74206f77696e67815260200192915050565b60006152f6601e83615b3f565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815260200192915050565b600061532f601a83615b3f565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000815260200192915050565b6000615368601183615b48565b70026b4b9b9b4b7339030b2323932b9b99d1607d1b815260110192915050565b6000615395601183615b3f565b7014985d195cc8185c99481a5b9d985b1a59607a1b815260200192915050565b60006153c2601383615b3f565b7213dc195b9a5b99c81a5cc8191a5cd8589b1959606a1b815260200192915050565b60006153f1600a83615b3f565b6926b0bc1018903437bab960b11b815260200192915050565b6000615417601a83615b3f565b7f436f6c6c61746572616c207261746520697320696e76616c6964000000000000815260200192915050565b6000615450601b83615b3f565b7f45786365656473206d617820626f72726f77696e6720706f7765720000000000815260200192915050565b6000615489602f83615b3f565b7f4f6e6c792074686520636f6e7472616374206f776e6572206d6179207065726681526e37b936903a3434b99030b1ba34b7b760891b602082015260400192915050565b60006154da602183615b3f565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f8152607760f81b602082015260400192915050565b600061551d601f83615b3f565b7f4e6f7420616c6c6f77656420746f20697373756520746869732070796e746800815260200192915050565b6000615556601e83615b3f565b7f4465706f736974206d7573742062652067726561746572207468616e20300000815260200192915050565b600061558f601a83615b3f565b7f44656274206c696d6974206f7220696e76616c69642072617465000000000000815260200192915050565b60006155c8601983615b48565b7f5265736f6c766572206d697373696e67207461726765743a2000000000000000815260190192915050565b6000615601601383615b3f565b72131bd85b88191bd95cc81b9bdd08195e1a5cdd606a1b815260200192915050565b6000615630601883615b3f565b7f4e6f7420656e6f7567682070796e74682062616c616e63650000000000000000815260200192915050565b6000615669601b83615b3f565b7f57616974696e67206f7220736574746c656d656e74206f77696e670000000000815260200192915050565b80516101208301906156a78482614f7b565b5060208201516156ba6020850182614f10565b5060408201516156cd6040850182614f7b565b5060608201516156e06060850182614f7b565b5060808201516156f36080850182614f7b565b5060a082015161570660a0850182614f72565b5060c082015161571960c0850182614f7b565b5060e082015161572c60e0850182614f7b565b50610100820151610c7c610100850182614f7b565b600061574c8261535b565b91506157588284614f84565b50602001919050565b600061574c826155bb565b60208101611e5d8284614f10565b60208101611e5d8284614f01565b604081016157968285614f01565b6111936020830184614f10565b606081016157b18286614f01565b6157be6020830185614f10565b6106c16040830184614f7b565b604081016157d98285614f01565b6111936020830184614f7b565b604081016157968285614f10565b604081016157d98285614f10565b602080825281016111938184614f19565b60208101611e5d8284614f72565b60208101611e5d8284614f7b565b604081016157968285614f7b565b604081016157d98285614f7b565b604081016158598285614f7b565b81810360208301526106c18184614f9e565b606081016158798286614f7b565b6157be6020830185614f7b565b60208101611e5d8284614f95565b602080825281016111938184614f9e565b60208082528101611e5d81614fd6565b60208082528101611e5d8161500f565b60208082528101611e5d81615041565b60208082528101611e5d8161506b565b60208082528101611e5d8161509c565b60208082528101611e5d816150f3565b60208082528101611e5d8161512c565b60208082528101611e5d81615165565b60208082528101611e5d8161519e565b60208082528101611e5d816151d7565b60208082528101611e5d81615205565b60208082528101611e5d8161523e565b60208082528101611e5d81615277565b60208082528101611e5d816152b0565b60208082528101611e5d816152e9565b60208082528101611e5d81615322565b60208082528101611e5d81615388565b60208082528101611e5d816153b5565b60208082528101611e5d816153e4565b60208082528101611e5d8161540a565b60208082528101611e5d81615443565b60208082528101611e5d8161547c565b60208082528101611e5d816154cd565b60208082528101611e5d81615510565b60208082528101611e5d81615549565b60208082528101611e5d81615582565b60208082528101611e5d816155f4565b60208082528101611e5d81615623565b60208082528101611e5d8161565c565b6101208101611e5d8284615695565b60808101615a928287614f7b565b615a9f6020830186614f01565b615aac6040830185614f7b565b615ab96060830184614f7b565b95945050505050565b60a08101615ad08288614f7b565b615add6020830187614f7b565b615aea6040830186614f7b565b615af76060830185614f7b565b615b046080830184614f7b565b9695505050505050565b60405181810167ffffffffffffffff81118282101715615b2d57600080fd5b604052919050565b60200190565b5190565b90815260200190565b919050565b6000611e5d82615b5d565b151590565b6001600160a01b031690565b6000611e5d825b6000611e5d82615b4d565b60005b83811015615b96578181015183820152602001615b7e565b83811115610c7c5750506000910152565b601f01601f191690565b615bba81615b4d565b8114613a5c57600080fd5b615bba81615b58565b615bba81610bb756fea365627a7a7231582043bbffa04081da5275006b47a7ad31ca8a7542a51aa876d0a3d63aa2541c7eff6c6578706572696d656e74616cf564736f6c63430005100040",
			"abi": [
				{
					"inputs": [
						{
							"internalType": "contract CollateralState",
							"name": "_state",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_manager",
							"type": "address"
						},
						{
							"internalType": "address",
							"name": "_resolver",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "_collateralKey",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "_minCollateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "constructor",
					"signature": "constructor"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "name",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "destination",
							"type": "address"
						}
					],
					"name": "CacheUpdated",
					"type": "event",
					"signature": "0x88a93678a3692f6789d9546fc621bf7234b101ddb7d4fe479455112831b8aa68"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "bool",
							"name": "canOpenLoans",
							"type": "bool"
						}
					],
					"name": "CanOpenLoansUpdated",
					"type": "event",
					"signature": "0x261991749e1b2436706a31bde8bf184bb37fe21e303709b78d3b881afacadaa2"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountDeposited",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralDeposited",
					"type": "event",
					"signature": "0x0b1992dffc262be88559dcaf96464e9d661d8bfca7e82f2bb73e31932a82187c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountWithdrawn",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralAfter",
							"type": "uint256"
						}
					],
					"name": "CollateralWithdrawn",
					"type": "event",
					"signature": "0xfae26280bca25d80f1501a9e363c73d3845e651c9aaae54f1fc09a9dcd5f3303"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "interactionDelay",
							"type": "uint256"
						}
					],
					"name": "InteractionDelayUpdated",
					"type": "event",
					"signature": "0x4d71c92b0a9dc236066597b95637bb04d58cd135e9165aee13eb68e3199c2361"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "IssueFeeRateUpdated",
					"type": "event",
					"signature": "0xe7bd72551c54d568cd97b00dc52d2787b5c5d4f0070d3582c1e8ba25141f799c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "LoanClosed",
					"type": "event",
					"signature": "0xcab22a4e95d29d40da2ace3f6ec72b49954a9bc7b2584f8fd47bf7f357a3ed6f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanClosedByLiquidation",
					"type": "event",
					"signature": "0x697721ed1b9d4866cb1aaa0692f62bb3abc1b01c2dafeaad053ffd4532aa7dbb"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "issuanceFee",
							"type": "uint256"
						}
					],
					"name": "LoanCreated",
					"type": "event",
					"signature": "0x604952b18be5fed608cbdd28101dc57bd667055c9678ec6d44fb1d8e4c7c172a"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "LoanDrawnDown",
					"type": "event",
					"signature": "0x5754fe57f36ac0f121901d7555aba517e6608590429d86a81c662cf358310654"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "liquidator",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountLiquidated",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "collateralLiquidated",
							"type": "uint256"
						}
					],
					"name": "LoanPartiallyLiquidated",
					"type": "event",
					"signature": "0xb6e43890aeea54fbe6c0ed628e78172a0ff30bbcb1d70d8b130b12c366bac4c5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": true,
							"internalType": "address",
							"name": "account",
							"type": "address"
						},
						{
							"indexed": true,
							"internalType": "address",
							"name": "repayer",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountRepaid",
							"type": "uint256"
						},
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "amountAfter",
							"type": "uint256"
						}
					],
					"name": "LoanRepaymentMade",
					"type": "event",
					"signature": "0xdf10512219e869922340b1b24b21d7d79bf71f411a6391cc7c3ef5dd2fe89e7f"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "manager",
							"type": "address"
						}
					],
					"name": "ManagerUpdated",
					"type": "event",
					"signature": "0x2c1c11af44aa5608f1dca38c00275c30ea091e02417d36e70e9a1538689c433d"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "maxLoansPerAccount",
							"type": "uint256"
						}
					],
					"name": "MaxLoansPerAccountUpdated",
					"type": "event",
					"signature": "0x6a5107c7de25c5b210323f3c6c2caea6502583fbe45acdca57e75a4dc9534e8c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCollateral",
							"type": "uint256"
						}
					],
					"name": "MinCollateralUpdated",
					"type": "event",
					"signature": "0xd19fe8ad9152af12b174a60210fb798db0767d63973ebb97298dc44d67a5c82d"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "uint256",
							"name": "minCratio",
							"type": "uint256"
						}
					],
					"name": "MinCratioRatioUpdated",
					"type": "event",
					"signature": "0x813a44586e8ecb9390b2568dbe810e193087f80e415c8845340ef06d4cbb42a5"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "oldOwner",
							"type": "address"
						},
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerChanged",
					"type": "event",
					"signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c"
				},
				{
					"anonymous": false,
					"inputs": [
						{
							"indexed": false,
							"internalType": "address",
							"name": "newOwner",
							"type": "address"
						}
					],
					"name": "OwnerNominated",
					"type": "event",
					"signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "acceptOwnership",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x79ba5097"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_pynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "addPynths",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x55bd615c"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "rewardsContract",
							"type": "address"
						},
						{
							"internalType": "bytes32",
							"name": "pynth",
							"type": "bytes32"
						}
					],
					"name": "addRewardsContracts",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x5eb2ad01"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32[]",
							"name": "_pynthNamesInResolver",
							"type": "bytes32[]"
						},
						{
							"internalType": "bytes32[]",
							"name": "_pynthKeys",
							"type": "bytes32[]"
						}
					],
					"name": "arePynthsAndCurrenciesSet",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0e54a19b"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "canOpenLoans",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x4065b81b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						}
					],
					"name": "close",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0aebeb4e"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "collateralKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xb562a1ab"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						}
					],
					"name": "collateralRatio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "cratio",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xdac8cf68"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "collateralRedeemed",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x0a153c97"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "deposit",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0efe6a8b"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "draw",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd2b8035a"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						},
						{
							"internalType": "address",
							"name": "account",
							"type": "address"
						}
					],
					"name": "getReward",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x56dc04a1"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "interactionDelay",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x15aaf4dd"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "isResolverCached",
					"outputs": [
						{
							"internalType": "bool",
							"name": "",
							"type": "bool"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x2af64bd3"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "issueFeeRate",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x361e2086"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "liquidate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0710285c"
				},
				{
					"constant": true,
					"inputs": [
						{
							"components": [
								{
									"internalType": "uint256",
									"name": "id",
									"type": "uint256"
								},
								{
									"internalType": "address payable",
									"name": "account",
									"type": "address"
								},
								{
									"internalType": "uint256",
									"name": "collateral",
									"type": "uint256"
								},
								{
									"internalType": "bytes32",
									"name": "currency",
									"type": "bytes32"
								},
								{
									"internalType": "uint256",
									"name": "amount",
									"type": "uint256"
								},
								{
									"internalType": "bool",
									"name": "short",
									"type": "bool"
								},
								{
									"internalType": "uint256",
									"name": "accruedInterest",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "interestIndex",
									"type": "uint256"
								},
								{
									"internalType": "uint256",
									"name": "lastInteraction",
									"type": "uint256"
								}
							],
							"internalType": "struct ICollateralLoan.Loan",
							"name": "loan",
							"type": "tuple"
						}
					],
					"name": "liquidationAmount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xe74337c6"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "manager",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x481c6a75"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "maxLoan",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "max",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x7e132355"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "maxLoansPerAccount",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xeb8e3b65"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCollateral",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xba2de9bc"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "minCratio",
					"outputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x925ead11"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_owner",
							"type": "address"
						}
					],
					"name": "nominateNewOwner",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x1627540c"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "nominatedOwner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x53a47bb7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "collateral",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						},
						{
							"internalType": "bytes32",
							"name": "currency",
							"type": "bytes32"
						}
					],
					"name": "open",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xf93451ed"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "owner",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x8da5cb5b"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "",
							"type": "uint256"
						}
					],
					"name": "pynths",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x37551ec6"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "pynthsByKey",
					"outputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xcd285020"
				},
				{
					"constant": false,
					"inputs": [],
					"name": "rebuildCache",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x74185360"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "borrower",
							"type": "address"
						},
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "repay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x8cd2e0c7"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolver",
					"outputs": [
						{
							"internalType": "contract AddressResolver",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x04f3bcec"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "resolverAddressesRequired",
					"outputs": [
						{
							"internalType": "bytes32[]",
							"name": "addresses",
							"type": "bytes32[]"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0x899ffef4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "bool",
							"name": "_canOpenLoans",
							"type": "bool"
						}
					],
					"name": "setCanOpenLoans",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x90abb4d9"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_interactionDelay",
							"type": "uint256"
						}
					],
					"name": "setInteractionDelay",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x4c17ace4"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_issueFeeRate",
							"type": "uint256"
						}
					],
					"name": "setIssueFeeRate",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xa76cdfa5"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "address",
							"name": "_newManager",
							"type": "address"
						}
					],
					"name": "setManager",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0xd0ebdbe7"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "_minCratio",
							"type": "uint256"
						}
					],
					"name": "setMinCratio",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x0cdd1c65"
				},
				{
					"constant": true,
					"inputs": [
						{
							"internalType": "bytes32",
							"name": "",
							"type": "bytes32"
						}
					],
					"name": "shortingRewards",
					"outputs": [
						{
							"internalType": "address",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xde81eda9"
				},
				{
					"constant": true,
					"inputs": [],
					"name": "state",
					"outputs": [
						{
							"internalType": "contract CollateralState",
							"name": "",
							"type": "address"
						}
					],
					"payable": false,
					"stateMutability": "view",
					"type": "function",
					"signature": "0xc19d93fb"
				},
				{
					"constant": false,
					"inputs": [
						{
							"internalType": "uint256",
							"name": "id",
							"type": "uint256"
						},
						{
							"internalType": "uint256",
							"name": "amount",
							"type": "uint256"
						}
					],
					"name": "withdraw",
					"outputs": [],
					"payable": false,
					"stateMutability": "nonpayable",
					"type": "function",
					"signature": "0x441a3e70"
				}
			],
			"source": {
				"keccak256": "0xb349115089550fbe9e59fc0aeb3a4f6c5ca3399f14bb6a1bef36966b91644627",
				"urls": [
					"bzz-raw://3854d83708566c7524861c8c3b6478939a20c328464ac5ffe0513d2c82ca75e7",
					"dweb:/ipfs/QmYXaEjbs8Z3xUCe5ukduRfiHVn9cxk4xt4XXG7ztiY1Ya"
				]
			},
			"metadata": {
				"compiler": {
					"version": "0.5.16+commit.9c3226ce"
				},
				"language": "Solidity",
				"settings": {
					"compilationTarget": {
						"CollateralShort.sol": "CollateralShort"
					},
					"evmVersion": "istanbul",
					"libraries": {},
					"optimizer": {
						"enabled": true,
						"runs": 200
					},
					"remappings": []
				},
				"sources": {
					"CollateralShort.sol": {
						"keccak256": "0xb349115089550fbe9e59fc0aeb3a4f6c5ca3399f14bb6a1bef36966b91644627",
						"urls": [
							"bzz-raw://3854d83708566c7524861c8c3b6478939a20c328464ac5ffe0513d2c82ca75e7",
							"dweb:/ipfs/QmYXaEjbs8Z3xUCe5ukduRfiHVn9cxk4xt4XXG7ztiY1Ya"
						]
					}
				},
				"version": 1
			}
		}
	}
}
