{
    "abi": [
        {
            "constant": false,
            "inputs": [
                {
                    "name": "alerter",
                    "type": "address"
                }
            ],
            "name": "removeAlerter",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x01a12fd3"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "pendingAdmin",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x26782247"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getOperators",
            "outputs": [
                {
                    "name": "",
                    "type": "address[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x27a099d8"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "sendTo",
                    "type": "address"
                }
            ],
            "name": "withdrawToken",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x3ccdbb28"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newAlerter",
                    "type": "address"
                }
            ],
            "name": "addAlerter",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x408ee7fe"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "kyberNetworkContract",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x4f61ff8b"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newAdmin",
                    "type": "address"
                }
            ],
            "name": "transferAdmin",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x75829def"
        },
        {
            "constant": false,
            "inputs": [],
            "name": "claimAdmin",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x77f50f97"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newAdmin",
                    "type": "address"
                }
            ],
            "name": "transferAdminQuickly",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x7acc8678"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "getAlerters",
            "outputs": [
                {
                    "name": "",
                    "type": "address[]"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x7c423f54"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "newOperator",
                    "type": "address"
                }
            ],
            "name": "addOperator",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x9870d7fe"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "operator",
                    "type": "address"
                }
            ],
            "name": "removeOperator",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0xac8a584a"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "name": "sendTo",
                    "type": "address"
                }
            ],
            "name": "withdrawEther",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0xce56c454"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "user",
                    "type": "address"
                }
            ],
            "name": "getBalance",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0xd4fac45d"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "admin",
            "outputs": [
                {
                    "name": "",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0xf851a440"
        },
        {
            "inputs": [
                {
                    "name": "_admin",
                    "type": "address"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "constructor",
            "signature": "constructor"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "name": "trader",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "src",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "dest",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "actualSrcAmount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "actualDestAmount",
                    "type": "uint256"
                }
            ],
            "name": "ExecuteTrade",
            "type": "event",
            "signature": "0x1849bd6a030a1bca28b83437fd3de96f3d27a5d172fa7e9c78e7b61468928a39"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "newNetworkContract",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "oldNetworkContract",
                    "type": "address"
                }
            ],
            "name": "KyberNetworkSet",
            "type": "event",
            "signature": "0x8936e1f096bf0a8c9df862b3d1d5b82774cad78116200175f00b5b7ba3010b02"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "token",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "sendTo",
                    "type": "address"
                }
            ],
            "name": "TokenWithdraw",
            "type": "event",
            "signature": "0x72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "amount",
                    "type": "uint256"
                },
                {
                    "indexed": false,
                    "name": "sendTo",
                    "type": "address"
                }
            ],
            "name": "EtherWithdraw",
            "type": "event",
            "signature": "0xec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "pendingAdmin",
                    "type": "address"
                }
            ],
            "name": "TransferAdminPending",
            "type": "event",
            "signature": "0x3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc40"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "newAdmin",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "previousAdmin",
                    "type": "address"
                }
            ],
            "name": "AdminClaimed",
            "type": "event",
            "signature": "0x65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "newAlerter",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "isAdd",
                    "type": "bool"
                }
            ],
            "name": "AlerterAdded",
            "type": "event",
            "signature": "0x5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": false,
                    "name": "newOperator",
                    "type": "address"
                },
                {
                    "indexed": false,
                    "name": "isAdd",
                    "type": "bool"
                }
            ],
            "name": "OperatorAdded",
            "type": "event",
            "signature": "0x091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "src",
                    "type": "address"
                },
                {
                    "name": "srcAmount",
                    "type": "uint256"
                },
                {
                    "name": "dest",
                    "type": "address"
                },
                {
                    "name": "destAddress",
                    "type": "address"
                },
                {
                    "name": "maxDestAmount",
                    "type": "uint256"
                },
                {
                    "name": "minConversionRate",
                    "type": "uint256"
                },
                {
                    "name": "walletId",
                    "type": "address"
                }
            ],
            "name": "trade",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": true,
            "stateMutability": "payable",
            "type": "function",
            "signature": "0xcb3c28c7"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "src",
                    "type": "address"
                },
                {
                    "name": "srcAmount",
                    "type": "uint256"
                },
                {
                    "name": "dest",
                    "type": "address"
                },
                {
                    "name": "minConversionRate",
                    "type": "uint256"
                }
            ],
            "name": "swapTokenToToken",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x7409e2eb"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "minConversionRate",
                    "type": "uint256"
                }
            ],
            "name": "swapEtherToToken",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": true,
            "stateMutability": "payable",
            "type": "function",
            "signature": "0x7a2a0456"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "token",
                    "type": "address"
                },
                {
                    "name": "srcAmount",
                    "type": "uint256"
                },
                {
                    "name": "minConversionRate",
                    "type": "uint256"
                }
            ],
            "name": "swapTokenToEther",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0x3bba21dc"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "src",
                    "type": "address"
                },
                {
                    "name": "srcAmount",
                    "type": "uint256"
                },
                {
                    "name": "dest",
                    "type": "address"
                },
                {
                    "name": "destAddress",
                    "type": "address"
                },
                {
                    "name": "maxDestAmount",
                    "type": "uint256"
                },
                {
                    "name": "minConversionRate",
                    "type": "uint256"
                },
                {
                    "name": "walletId",
                    "type": "address"
                },
                {
                    "name": "hint",
                    "type": "bytes"
                }
            ],
            "name": "tradeWithHint",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": true,
            "stateMutability": "payable",
            "type": "function",
            "signature": "0x29589f61"
        },
        {
            "constant": false,
            "inputs": [
                {
                    "name": "_kyberNetworkContract",
                    "type": "address"
                }
            ],
            "name": "setKyberNetworkContract",
            "outputs": [],
            "payable": false,
            "stateMutability": "nonpayable",
            "type": "function",
            "signature": "0xabd188a8"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "src",
                    "type": "address"
                },
                {
                    "name": "dest",
                    "type": "address"
                },
                {
                    "name": "srcQty",
                    "type": "uint256"
                }
            ],
            "name": "getExpectedRate",
            "outputs": [
                {
                    "name": "expectedRate",
                    "type": "uint256"
                },
                {
                    "name": "slippageRate",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x809a9e55"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "user",
                    "type": "address"
                }
            ],
            "name": "getUserCapInWei",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x6432679f"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "user",
                    "type": "address"
                },
                {
                    "name": "token",
                    "type": "address"
                }
            ],
            "name": "getUserCapInTokenWei",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x8eaaeecf"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "maxGasPrice",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x3de39c11"
        },
        {
            "constant": true,
            "inputs": [],
            "name": "enabled",
            "outputs": [
                {
                    "name": "",
                    "type": "bool"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0x238dafe0"
        },
        {
            "constant": true,
            "inputs": [
                {
                    "name": "field",
                    "type": "bytes32"
                }
            ],
            "name": "info",
            "outputs": [
                {
                    "name": "",
                    "type": "uint256"
                }
            ],
            "payable": false,
            "stateMutability": "view",
            "type": "function",
            "signature": "0xb64a097e"
        }
    ],
    "bytecode": "0x608060405234801561001057600080fd5b506040516020806132e983398101806040528101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156100af57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506131ea806100ff6000396000f30060806040526004361061015f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301a12fd314610164578063238dafe0146101a757806326782247146101d657806327a099d81461022d57806329589f61146102995780633bba21dc146103a75780633ccdbb28146104125780633de39c111461047f578063408ee7fe146104aa5780634f61ff8b146104ed5780636432679f146105445780637409e2eb1461059b57806375829def1461062657806377f50f97146106695780637a2a0456146106805780637acc8678146106d45780637c423f5414610717578063809a9e55146107835780638eaaeecf1461080b5780639870d7fe14610882578063abd188a8146108c5578063ac8a584a14610908578063b64a097e1461094b578063cb3c28c714610990578063ce56c45414610a58578063d4fac45d14610aa5578063f851a44014610b1c575b600080fd5b34801561017057600080fd5b506101a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b73565b005b3480156101b357600080fd5b506101bc610e32565b604051808215151515815260200191505060405180910390f35b3480156101e257600080fd5b506101eb610efa565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023957600080fd5b50610242610f20565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561028557808201518184015260208101905061026a565b505050509050019250505060405180910390f35b610391600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610fae565b6040518082815260200191505060405180910390f35b3480156103b357600080fd5b506103fc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611559565b6040518082815260200191505060405180910390f35b34801561041e57600080fd5b5061047d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611598565b005b34801561048b57600080fd5b50610494611780565b6040518082815260200191505060405180910390f35b3480156104b657600080fd5b506104eb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611848565b005b3480156104f957600080fd5b50610502611a41565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055057600080fd5b50610585600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a67565b6040518082815260200191505060405180910390f35b3480156105a757600080fd5b50610610600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b68565b6040518082815260200191505060405180910390f35b34801561063257600080fd5b50610667600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b94565b005b34801561067557600080fd5b5061067e611cf4565b005b6106be600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ed0565b6040518082815260200191505060405180910390f35b3480156106e057600080fd5b50610715600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f0e565b005b34801561072357600080fd5b5061072c612103565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561076f578082015181840152602081019050610754565b505050509050019250505060405180910390f35b34801561078f57600080fd5b506107ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612191565b604051808381526020018281526020019250505060405180910390f35b34801561081757600080fd5b5061086c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122dd565b6040518082815260200191505060405180910390f35b34801561088e57600080fd5b506108c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612413565b005b3480156108d157600080fd5b50610906600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061260c565b005b34801561091457600080fd5b50610949600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127a0565b005b34801561095757600080fd5b5061097a6004803603810190808035600019169060200190929190505050612a62565b6040518082815260200191505060405180910390f35b610a42600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b3f565b6040518082815260200191505060405180910390f35b348015610a6457600080fd5b50610aa360048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b61565b005b348015610ab157600080fd5b50610b06600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c72565b6040518082815260200191505060405180910390f35b348015610b2857600080fd5b50610b31612dba565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd057600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c2857600080fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600090505b600580549050811015610e2e578173ffffffffffffffffffffffffffffffffffffffff16600582815481101515610cb857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610e23576005600160058054905003815481101515610d1657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481101515610d5057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005805480919060019003610dad9190613131565b507f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762826000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1610e2e565b806001019050610c85565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663238dafe06040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610eba57600080fd5b505af1158015610ece573d6000803e3d6000fd5b505050506040513d6020811015610ee457600080fd5b8101908080519060200190929190505050905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805480602002602001604051908101604052809291908181526020018280548015610fa457602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610f5a575b5050505050905090565b6000610fb861315d565b6000610fc2613177565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614806110105750600034145b151561101b57600080fd5b6110258c33612c72565b8360000181815250506110388a8a612c72565b83602001818152505073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16141561109e57348360000181815101915081815250506111de565b8b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168e6040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561119757600080fd5b505af11580156111ab573d6000803e3d6000fd5b505050506040513d60208110156111c157600080fd5b810190808051906020019092919050505015156111dd57600080fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663088322ef34338f8f8f8f8f8f8f8f6040518b63ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018881526020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561139d578082015181840152602081019050611382565b50505050905090810190601f1680156113ca5780820380516001836020036101000a031916815260200191505b509a50505050505050505050506020604051808303818588803b1580156113f057600080fd5b505af1158015611404573d6000803e3d6000fd5b50505050506040513d602081101561141b57600080fd5b81019080805190602001909291905050509150611443836000015184602001518e8d8d612ddf565b905080602001518214151561145757600080fd5b8781602001511115151561146a57600080fd5b8681604001511015151561147d57600080fd5b3373ffffffffffffffffffffffffffffffffffffffff167f1849bd6a030a1bca28b83437fd3de96f3d27a5d172fa7e9c78e7b61468928a398d8c84600001518560200151604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200194505050505060405180910390a28060200151935050505098975050505050505050565b6000606061158e858573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee336b204fce5e3e2502611000000088600088610fae565b9150509392505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115f357600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb82846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561169657600080fd5b505af11580156116aa573d6000803e3d6000fd5b505050506040513d60208110156116c057600080fd5b810190808051906020019092919050505015156116dc57600080fd5b7f72cb8a894ddb372ceec3d2a7648d86f17d5a15caae0e986c53109b8a9a9385e6838383604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001935050505060405180910390a1505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16633de39c116040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561180857600080fd5b505af115801561181c573d6000803e3d6000fd5b505050506040513d602081101561183257600080fd5b8101908080519060200190929190505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118a357600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156118fc57600080fd5b603260058054905010151561191057600080fd5b7f5611bf3e417d124f97bf2c788843ea8bb502b66079fbee02158ef30b172cb762816001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a16001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636432679f836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b2657600080fd5b505af1158015611b3a573d6000803e3d6000fd5b505050506040513d6020811015611b5057600080fd5b81019080805190602001909291905050509050919050565b60006060611b89868686336b204fce5e3e2502611000000088600088610fae565b915050949350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bef57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611c2b57600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc40600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a180600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611d5057600080fd5b7f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006060611f0573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3486336b204fce5e3e2502611000000088600088610fae565b91505092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611f6957600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515611fa557600080fd5b7f3b81caf78fa51ecbc8acb482fd7012a277b428d9b80f9d156e8a54107496cc4081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a17f65da1cfc2c2e81576ad96afb24a581f8e109b7a403b35cbd3243a1c99efdb9ed816000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a1806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600580548060200260200160405190810160405280929190818152602001828054801561218757602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161213d575b5050505050905090565b600080600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663809a9e558686866040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040805180830381600087803b15801561228c57600080fd5b505af11580156122a0573d6000803e3d6000fd5b505050506040513d60408110156122b657600080fd5b81019080805190602001909291908051906020019092919050505091509150935093915050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638eaaeecf84846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505050506040513d60208110156123fa57600080fd5b8101908080519060200190929190505050905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561246e57600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156124c757600080fd5b60326004805490501015156124db57600080fd5b7f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b816001604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a16001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060048190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561266757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156126a357600080fd5b7f8936e1f096bf0a8c9df862b3d1d5b82774cad78116200175f00b5b7ba3010b0281600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a180600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156127fd57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561285557600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600090505b600480549050811015612a5e578173ffffffffffffffffffffffffffffffffffffffff166004828154811015156128e557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612a5357600460016004805490500381548110151561294357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660048281548110151561297d57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016004818180549050039150816129dd9190613131565b507f091a7a4b85135fdd7e8dbc18b12fabe5cc191ea867aa3c2e1a24a102af61d58b826000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001821515151581526020019250505060405180910390a1612a5e565b8060010190506128b2565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b64a097e836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808260001916600019168152602001915050602060405180830381600087803b158015612afd57600080fd5b505af1158015612b11573d6000803e3d6000fd5b505050506040513d6020811015612b2757600080fd5b81019080805190602001909291905050509050919050565b60006060612b538989898989898988610fae565b915050979650505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bbc57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f19350505050158015612c02573d6000803e3d6000fd5b507fec47e7ed86c86774d1a72c19f35c639911393fe7c1a34031fdbd260890da90de8282604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612cdb578173ffffffffffffffffffffffffffffffffffffffff16319050612db4565b8273ffffffffffffffffffffffffffffffffffffffff166370a08231836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015612d7657600080fd5b505af1158015612d8a573d6000803e3d6000fd5b505050506040513d6020811015612da057600080fd5b810190808051906020019092919050505090505b92915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612de7613177565b600080612df48633612c72565b9150612e008585612c72565b90508681111515612e1057600080fd5b8188111515612e1e57600080fd5b868103836020018181525050818803836000018181525050612e5a83600001518460200151612e4c89612e6e565b612e5589612e6e565b612f08565b836040018181525050505095945050505050565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415612ec157612ec082612fb9565b5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006b204fce5e3e250261100000008511151515612f2557600080fd5b6b204fce5e3e250261100000008411151515612f4057600080fd5b8282101515612f7f57601283830311151515612f5b57600080fd5b84838303600a0a02670de0b6b3a76400008502811515612f7757fe5b049050612fb1565b601282840311151515612f9157600080fd5b84828403600a0a670de0b6b3a7640000860202811515612fad57fe5b0490505b949350505050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561304b576012600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061312e565b8073ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1580156130af57600080fd5b505af11580156130c3573d6000803e3d6000fd5b505050506040513d60208110156130d957600080fd5b8101908080519060200190929190505050600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b50565b815481835581811115613158578183600052602060002091820191016131579190613199565b5b505050565b604080519081016040528060008152602001600081525090565b6060604051908101604052806000815260200160008152602001600081525090565b6131bb91905b808211156131b757600081600090555060010161319f565b5090565b905600a165627a7a723058205e883428c349126658866fa88fe6d9ac694cf1ded6fbe004203b772a3f3287190029"
}
