UNPKG

jcc-solidity-utils

Version:
490 lines 766 kB
{ "contractName": "ERC20Factory", "abi": [ { "constant": false, "inputs": [], "name": "renounceOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "newAdmin", "type": "address" } ], "name": "transferAdministrator", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "admin", "outputs": [ { "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "inputs": [ { "name": "name", "type": "string" }, { "name": "symbol", "type": "string" }, { "name": "decimals", "type": "uint8" }, { "name": "totalSupply", "type": "uint256" }, { "name": "minable", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "payable": false, "stateMutability": "nonpayable", "type": "fallback" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "from", "type": "address" }, { "indexed": true, "name": "to", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "owner", "type": "address" }, { "indexed": true, "name": "spender", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "account", "type": "address" }, { "indexed": false, "name": "value", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousOwner", "type": "address" }, { "indexed": true, "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "name": "previousAdmin", "type": "address" }, { "indexed": true, "name": "newAdmin", "type": "address" } ], "name": "AdministratorTransferred", "type": "event" }, { "constant": true, "inputs": [], "name": "name", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "symbol", "outputs": [ { "name": "", "type": "string" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "totalSupply", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_who", "type": "address" } ], "name": "balanceOf", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "_owner", "type": "address" }, { "name": "_spender", "type": "address" } ], "name": "allowance", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "name": "_spender", "type": "address" }, { "name": "_value", "type": "uint256" } ], "name": "approve", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_to", "type": "address" }, { "name": "_value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_from", "type": "address" }, { "name": "_to", "type": "address" }, { "name": "_value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_spender", "type": "address" }, { "name": "_addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "_spender", "type": "address" }, { "name": "_subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "mint", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "account", "type": "address" }, { "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [], "name": "kill", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.4.24+commit.e67f0147\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"kill\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"transferAdministrator\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"},{\"name\":\"decimals\",\"type\":\"uint8\"},{\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"name\":\"minable\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdministratorTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"renounceOwnership()\":{\"details\":\"\\u653e\\u5f03\\u5408\\u7ea6\\u7684\\u6240\\u6709\\u6743\\uff0c\\u6ce8\\u610f\\uff0c\\u5408\\u7ea6\\u6ca1\\u6709\\u4efb\\u4f55\\u4eba\\u53ef\\u4ee5\\u62e5\\u6709\\u4e86\\uff0c\\u90a3\\u4e48\\u5f88\\u591a\\u62e5\\u6709\\u8005\\u5e94\\u8be5\\u6709\\u7684\\u80fd\\u529b\\uff0c\\u90fd\\u4e0d\\u80fd\\u8bbf\\u95ee\\u4e86\"}}},\"userdoc\":{\"methods\":{\"decimals()\":{\"notice\":\"\\u4e0d\\u662f\\u6240\\u6709\\u7684ERC20\\u90fd\\u9075\\u5faauint8\\uff0c\\u6bd4\\u5982USDT\\u662fuint256\\uff0c\\u5bf9\\u4e8e\\u4e0d\\u540c\\u7c7b\\u578b\\uff0c\\u9700\\u8981\\u505a\\u8f6c\\u6362\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/erc/ERC20Factory.sol\":\"ERC20Factory\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/erc/ERC20Factory.sol\":{\"keccak256\":\"0x0f62545e57e99f3d71d7459854f2ff0a4ef0a09098ade7d0ceef0b352a78a58a\",\"urls\":[\"bzzr://14dbef792b06788cb0efad2c81fce1abad1f3b558625b2c402b27fcb05621958\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/interface/IExtendedERC20.sol\":{\"keccak256\":\"0x7b172880d91aa7133aa9eddca6bc7689f9f0f496fdde9c750b7aa5160d54fe20\",\"urls\":[\"bzzr://c5e6f43fc570c4bf3ac3b68c2340f6028071d4cd0c48da2507b8ee072d61dcf5\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x239546071316c89d3bbc9e61b2ccae270a4493bbd2f7c240052f533807d50ab7\",\"urls\":[\"bzzr://267bf48e0a30f7b671aa3c98a6b27ffe7bc64efd6533f49e54188b520baa94c5\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/owner/Administrative.sol\":{\"keccak256\":\"0xca1f191b7611b7fec06b5c299eaf62dcca56dbbf9f6e3d3eaa7114466df35440\",\"urls\":[\"bzzr://74c8c8a8d3e19a60d6bfe9c7dc3b4c4b037876d5fc4b842ddce6c894e3f0f575\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/utils/AddressUtils.sol\":{\"keccak256\":\"0xe78f03563026c72cf447b8ce7839eb34f512b4698e52253da52d568094f20c89\",\"urls\":[\"bzzr://15282c513ef8c6bb7000a0abf864675306e22ec0425639eb0f0c1f91bb2a4b92\"]},\"/Users/chtian/Documents/01_work/01_develope/jcc/jcc-solidity-utils/contracts/utils/Payload.sol\":{\"keccak256\":\"0xcff48caf52a1e4aa55e18c617391c052f9d9068705c3e2b62864d2c95672164d\",\"urls\":[\"bzzr://e46eebd7041f5157373aeb55ad2ad3e8c4d1a3af4004609a76ae79e74d834521\"]}},\"version\":1}", "bytecode": "0x60806040523480156200001157600080fd5b5060405162001948380380620019488339810160408181528251602084015191840151606085015160808601516000805433600160a060020a0319918216811780845560018054909316909117909155948801979590950195929491939092600160a060020a0390911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600154604051600160a060020a03909116906000907f399b55200f7f639a63d76efe3dcfa9156ce367058d6b673041b84a628885f5a7908290a38451620000f1906007906020880190620001ff565b50835162000107906008906020870190620001ff565b506004805460ff858116600a81900a860260065561ff00199092166101009092029190911760ff1916831515179182905516156200014a576000600555620001e4565b60065460058190556002600062000169640100000000620001ef810204565b600160a060020a0316815260208101919091526040016000205562000196640100000000620001ef810204565b600160a060020a03166000600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a35b5050505050620002a1565b600054600160a060020a03165b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200024257805160ff191683800117855562000272565b8280016001018555821562000272579182015b828111156200027257825182559160200191906001019062000255565b506200028092915062000284565b5090565b620001fc91905b808211156200028057600081556001016200028b565b61169780620002b16000396000f3006080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610165578063095ea7b3146101ef57806318160ddd1461022757806323b872dd1461024e578063313ce5671461027857806339509351146102a357806340c10f19146102c757806341c0e1b5146102eb57806370a0823114610300578063715018a6146103215780638da5cb5b1461033657806395d89b41146103675780639dc29fac1461037c578063a457c2d7146103a0578063a9059cbb146103c4578063c648a3a2146103e8578063dd62ed3e14610409578063f2fde38b14610430578063f851a44014610451575b34801561011257600080fd5b506040805160e560020a62461bcd02815260206004820152601360248201527f6e6576657220726563656976652066756e642e00000000000000000000000000604482015290519081900360640190fd5b005b34801561017157600080fd5b5061017a610466565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b457818101518382015260200161019c565b50505050905090810190601f1680156101e15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101fb57600080fd5b50610213600160a060020a03600435166024356104fc565b604080519115158252519081900360200190f35b34801561023357600080fd5b5061023c610633565b60408051918252519081900360200190f35b34801561025a57600080fd5b50610213600160a060020a0360043581169060243516604435610639565b34801561028457600080fd5b5061028d61076d565b6040805160ff9092168252519081900360200190f35b3480156102af57600080fd5b50610213600160a060020a036004351660243561077b565b3480156102d357600080fd5b50610213600160a060020a03600435166024356108b5565b3480156102f757600080fd5b50610163610b97565b34801561030c57600080fd5b5061023c600160a060020a0360043516610bbd565b34801561032d57600080fd5b50610163610bd8565b34801561034257600080fd5b5061034b610c91565b60408051600160a060020a039092168252519081900360200190f35b34801561037357600080fd5b5061017a610ca0565b34801561038857600080fd5b50610213600160a060020a0360043516602435610d01565b3480156103ac57600080fd5b50610213600160a060020a0360043516602435610fd1565b3480156103d057600080fd5b50610213600160a060020a03600435166024356110a5565b3480156103f457600080fd5b50610163600160a060020a0360043516611105565b34801561041557600080fd5b5061023c600160a060020a0360043581169060243516611293565b34801561043c57600080fd5b50610163600160a060020a03600435166112be565b34801561045d57600080fd5b5061034b61140e565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f25780601f106104c7576101008083540402835291602001916104f2565b820191906000526020600020905b8154815290600101906020018083116104d557829003601f168201915b5050505050905090565b600060406044361015610547576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b8215806105755750336000908152600360209081526040808320600160a060020a0388168452909152902054155b15156105cb576040805160e560020a62461bcd02815260206004820152601a60248201527f636865636b2076616c7565206e6f7420657175616c207a65726f000000000000604482015290519081900360640190fd5b336000818152600360209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60055490565b600060606064361015610684576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b600160a060020a03851660009081526003602090815260408083203384529091529020548311156106ff576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f7420656e6f7567682076616c756500000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0385166000908152600360209081526040808320338452909152902054610733908463ffffffff61141d16565b600160a060020a038616600090815260036020908152604080832033845290915290205561076285858561142f565b506001949350505050565b600454610100900460ff1690565b6000604060443610156107c6576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b6107d884600160a060020a0316611608565b1561081b576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b336000908152600360209081526040808320600160a060020a038816845290915290205461084f908463ffffffff61161516565b336000818152600360209081526040808320600160a060020a038a168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a35060019392505050565b60008054600160a060020a03163314806108d95750600154600160a060020a031633145b1515610955576040805160e560020a62461bcd02815260206004820152602b60248201527f6f6e6c79206f776e6572206f722061646d696e6973747261746f722063616e2060448201527f6d6f646966792074686973000000000000000000000000000000000000000000606482015290519081900360840190fd5b6040604436101561099e576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b6109b084600160a060020a0316611608565b156109f3576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b60045460ff161515610a4f576040805160e560020a62461bcd02815260206004820152601460248201527f6d696e61626c65206d7573742062652074727565000000000000000000000000604482015290519081900360640190fd5b600654600554610a65908563ffffffff61161516565b1115610abb576040805160e560020a62461bcd02815260206004820152601660248201527f4d6f7265207468616e20746f74616c20737570706c7900000000000000000000604482015290519081900360640190fd5b600554610ace908463ffffffff61161516565b600555600160a060020a038416600090815260026020526040902054610afa908463ffffffff61161516565b600160a060020a038516600081815260026020908152604091829020939093558051868152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518481529051600160a060020a038616916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019392505050565b610b9f610c91565b600160a060020a031633600160a060020a03161415610bbb5733ff5b565b600160a060020a031660009081526002602052604090205490565b600054600160a060020a03163314610c3a576040805160e560020a62461bcd02815260206004820152601a60248201527f6f6e6c79206f776e65722063616e206d6f646966792074686973000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031690565b60088054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f25780601f106104c7576101008083540402835291602001916104f2565b60008054600160a060020a0316331480610d255750600154600160a060020a031633145b1515610da1576040805160e560020a62461bcd02815260206004820152602b60248201527f6f6e6c79206f776e6572206f722061646d696e6973747261746f722063616e2060448201527f6d6f646966792074686973000000000000000000000000000000000000000000606482015290519081900360840190fd5b60406044361015610dea576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b610dfc84600160a060020a0316611608565b15610e3f576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b60045460ff161515610e9b576040805160e560020a62461bcd02815260206004820152601460248201527f6d696e61626c65206d7573742062652074727565000000000000000000000000604482015290519081900360640190fd5b600554831115610ef5576040805160e560020a62461bcd02815260206004820152601660248201527f4d6f7265207468616e20746f74616c20737570706c7900000000000000000000604482015290519081900360640190fd5b600554610f08908463ffffffff61141d16565b600555600160a060020a038416600090815260026020526040902054610f34908463ffffffff61141d16565b600160a060020a038516600081815260026020908152604091829020939093558051868152905191927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592918290030190a2604080518481529051600091600160a060020a038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019392505050565b60006040604436101561101c576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b61102e84600160a060020a0316611608565b15611071576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b336000908152600360209081526040808320600160a060020a038816845290915290205461084f908463ffffffff61141d16565b6000604060443610156110f0576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b6110fb33858561142f565b5060019392505050565b600054600160a060020a03163314806111285750600154600160a060020a031633145b15156111a4576040805160e560020a62461bcd02815260206004820152602b60248201527f6f6e6c79206f776e6572206f722061646d696e6973747261746f722063616e2060448201527f6d6f646966792074686973000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116151561122a576040805160e560020a62461bcd02815260206004820152602e60248201527f43616e206e6f74207472616e736665722061646d696e6973747261746f72207460448201527f6f207a65726f2061646472657373000000000000000000000000000000000000606482015290519081900360840190fd5b600154604051600160a060020a038084169216907f399b55200f7f639a63d76efe3dcfa9156ce367058d6b673041b84a628885f5a790600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600054600160a060020a03163314611320576040805160e560020a62461bcd02815260206004820152601a60248201527f6f6e6c79206f776e65722063616e206d6f646966792074686973000000000000604482015290519081900360640190fd5b600160a060020a03811615156113a6576040805160e560020a62461bcd02815260206004820152602660248201527f43616e206e6f74207472616e73666572206f776e657220746f207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031690565b60008282111561142957fe5b50900390565b61144182600160a060020a0316611608565b15611484576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b6006548111156114de576040805160e560020a62461bcd02815260206004820152601660248201527f4d6f7265207468616e20746f74616c20737570706c7900000000000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526002602052604090205481111561154e576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f7420656e6f7567682076616c756500000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054611577908263ffffffff61141d16565b600160a060020a0380851660009081526002602052604080822093909355908416815220546115ac908263ffffffff61161516565b600160a060020a0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a03161590565b60008282018381101561162457fe5b939250505056007061796c6f61642073697a6520696e7661696c6400000000000000000000000063616e206e6f742073656e6420746f207a65726f206163636f756e7400000000a165627a7a723058202803f6b7febc9d556342ab1429a9308e9304d159238c6e7dbde5452a6553d7120029", "deployedBytecode": "0x6080604052600436106101065763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde038114610165578063095ea7b3146101ef57806318160ddd1461022757806323b872dd1461024e578063313ce5671461027857806339509351146102a357806340c10f19146102c757806341c0e1b5146102eb57806370a0823114610300578063715018a6146103215780638da5cb5b1461033657806395d89b41146103675780639dc29fac1461037c578063a457c2d7146103a0578063a9059cbb146103c4578063c648a3a2146103e8578063dd62ed3e14610409578063f2fde38b14610430578063f851a44014610451575b34801561011257600080fd5b506040805160e560020a62461bcd02815260206004820152601360248201527f6e6576657220726563656976652066756e642e00000000000000000000000000604482015290519081900360640190fd5b005b34801561017157600080fd5b5061017a610466565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101b457818101518382015260200161019c565b50505050905090810190601f1680156101e15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101fb57600080fd5b50610213600160a060020a03600435166024356104fc565b604080519115158252519081900360200190f35b34801561023357600080fd5b5061023c610633565b60408051918252519081900360200190f35b34801561025a57600080fd5b50610213600160a060020a0360043581169060243516604435610639565b34801561028457600080fd5b5061028d61076d565b6040805160ff9092168252519081900360200190f35b3480156102af57600080fd5b50610213600160a060020a036004351660243561077b565b3480156102d357600080fd5b50610213600160a060020a03600435166024356108b5565b3480156102f757600080fd5b50610163610b97565b34801561030c57600080fd5b5061023c600160a060020a0360043516610bbd565b34801561032d57600080fd5b50610163610bd8565b34801561034257600080fd5b5061034b610c91565b60408051600160a060020a039092168252519081900360200190f35b34801561037357600080fd5b5061017a610ca0565b34801561038857600080fd5b50610213600160a060020a0360043516602435610d01565b3480156103ac57600080fd5b50610213600160a060020a0360043516602435610fd1565b3480156103d057600080fd5b50610213600160a060020a03600435166024356110a5565b3480156103f457600080fd5b50610163600160a060020a0360043516611105565b34801561041557600080fd5b5061023c600160a060020a0360043581169060243516611293565b34801561043c57600080fd5b50610163600160a060020a03600435166112be565b34801561045d57600080fd5b5061034b61140e565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f25780601f106104c7576101008083540402835291602001916104f2565b820191906000526020600020905b8154815290600101906020018083116104d557829003601f168201915b5050505050905090565b600060406044361015610547576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b8215806105755750336000908152600360209081526040808320600160a060020a0388168452909152902054155b15156105cb576040805160e560020a62461bcd02815260206004820152601a60248201527f636865636b2076616c7565206e6f7420657175616c207a65726f000000000000604482015290519081900360640190fd5b336000818152600360209081526040808320600160a060020a03891680855290835292819020879055805187815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b60055490565b600060606064361015610684576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b600160a060020a03851660009081526003602090815260408083203384529091529020548311156106ff576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f7420656e6f7567682076616c756500000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0385166000908152600360209081526040808320338452909152902054610733908463ffffffff61141d16565b600160a060020a038616600090815260036020908152604080832033845290915290205561076285858561142f565b506001949350505050565b600454610100900460ff1690565b6000604060443610156107c6576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b6107d884600160a060020a0316611608565b1561081b576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b336000908152600360209081526040808320600160a060020a038816845290915290205461084f908463ffffffff61161516565b336000818152600360209081526040808320600160a060020a038a168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a35060019392505050565b60008054600160a060020a03163314806108d95750600154600160a060020a031633145b1515610955576040805160e560020a62461bcd02815260206004820152602b60248201527f6f6e6c79206f776e6572206f722061646d696e6973747261746f722063616e2060448201527f6d6f646966792074686973000000000000000000000000000000000000000000606482015290519081900360840190fd5b6040604436101561099e576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b6109b084600160a060020a0316611608565b156109f3576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b60045460ff161515610a4f576040805160e560020a62461bcd02815260206004820152601460248201527f6d696e61626c65206d7573742062652074727565000000000000000000000000604482015290519081900360640190fd5b600654600554610a65908563ffffffff61161516565b1115610abb576040805160e560020a62461bcd02815260206004820152601660248201527f4d6f7265207468616e20746f74616c20737570706c7900000000000000000000604482015290519081900360640190fd5b600554610ace908463ffffffff61161516565b600555600160a060020a038416600090815260026020526040902054610afa908463ffffffff61161516565b600160a060020a038516600081815260026020908152604091829020939093558051868152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518481529051600160a060020a038616916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019392505050565b610b9f610c91565b600160a060020a031633600160a060020a03161415610bbb5733ff5b565b600160a060020a031660009081526002602052604090205490565b600054600160a060020a03163314610c3a576040805160e560020a62461bcd02815260206004820152601a60248201527f6f6e6c79206f776e65722063616e206d6f646966792074686973000000000000604482015290519081900360640190fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600054600160a060020a031690565b60088054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104f25780601f106104c7576101008083540402835291602001916104f2565b60008054600160a060020a0316331480610d255750600154600160a060020a031633145b1515610da1576040805160e560020a62461bcd02815260206004820152602b60248201527f6f6e6c79206f776e6572206f722061646d696e6973747261746f722063616e2060448201527f6d6f646966792074686973000000000000000000000000000000000000000000606482015290519081900360840190fd5b60406044361015610dea576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b610dfc84600160a060020a0316611608565b15610e3f576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b60045460ff161515610e9b576040805160e560020a62461bcd02815260206004820152601460248201527f6d696e61626c65206d7573742062652074727565000000000000000000000000604482015290519081900360640190fd5b600554831115610ef5576040805160e560020a62461bcd02815260206004820152601660248201527f4d6f7265207468616e20746f74616c20737570706c7900000000000000000000604482015290519081900360640190fd5b600554610f08908463ffffffff61141d16565b600555600160a060020a038416600090815260026020526040902054610f34908463ffffffff61141d16565b600160a060020a038516600081815260026020908152604091829020939093558051868152905191927fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca592918290030190a2604080518481529051600091600160a060020a038716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35060019392505050565b60006040604436101561101c576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b61102e84600160a060020a0316611608565b15611071576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b336000908152600360209081526040808320600160a060020a038816845290915290205461084f908463ffffffff61141d16565b6000604060443610156110f0576040805160e560020a62461bcd028152602060048201526014602482015260008051602061162c833981519152604482015290519081900360640190fd5b6110fb33858561142f565b5060019392505050565b600054600160a060020a03163314806111285750600154600160a060020a031633145b15156111a4576040805160e560020a62461bcd02815260206004820152602b60248201527f6f6e6c79206f776e6572206f722061646d696e6973747261746f722063616e2060448201527f6d6f646966792074686973000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a038116151561122a576040805160e560020a62461bcd02815260206004820152602e60248201527f43616e206e6f74207472616e736665722061646d696e6973747261746f72207460448201527f6f207a65726f2061646472657373000000000000000000000000000000000000606482015290519081900360840190fd5b600154604051600160a060020a038084169216907f399b55200f7f639a63d76efe3dcfa9156ce367058d6b673041b84a628885f5a790600090a36001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600160a060020a03918216600090815260036020908152604080832093909416825291909152205490565b600054600160a060020a03163314611320576040805160e560020a62461bcd02815260206004820152601a60248201527f6f6e6c79206f776e65722063616e206d6f646966792074686973000000000000604482015290519081900360640190fd5b600160a060020a03811615156113a6576040805160e560020a62461bcd02815260206004820152602660248201527f43616e206e6f74207472616e73666572206f776e657220746f207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031690565b60008282111561142957fe5b50900390565b61144182600160a060020a0316611608565b15611484576040805160e560020a62461bcd02815260206004820152601c602482015260008051602061164c833981519152604482015290519081900360640190fd5b6006548111156114de576040805160e560020a62461bcd02815260206004820152601660248201527f4d6f7265207468616e20746f74616c20737570706c7900000000000000000000604482015290519081900360640190fd5b600160a060020a03831660009081526002602052604090205481111561154e576040805160e560020a62461bcd02815260206004820152601060248201527f4e6f7420656e6f7567682076616c756500000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a038316600090815260026020526040902054611577908263ffffffff61141d16565b600160a060020a0380851660009081526002602052604080822093909355908416815220546115ac908263ffffffff61161516565b600160a060020a0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600160a060020a03161590565b60008282018381101561162457fe5b939250505056007061796c6f61642073697a6520696e7661696c6400000000000000000000000063616e206e6f742073656e6420746f207a65726f206163636f756e7400000000a165627a7a723058202803f6b7febc9d556342ab1429a9308e9304d159238c6e7dbde5452a6553d7120029", "sourceMap": "552:5165:1:-;;;962:546;8:9:-1;5:2;;;30:1;27;20:12;5:2;962:546:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1142:6:30;:19;;1151:10;-1:-1:-1;;;;;;1142:19:30;;;;;;;;-1:-1:-1;1167:19:30;;;;;;;;;;;962:546:1;;;;;;;;;;;;;;;-1:-1:-1;;;;;1230:6:30;;;;1142;1197:40;;1142:6;;1197:40;1285:6;;1248:44;;-1:-1:-1;;;;;1285:6:30;;;;;;1248:44;;1285:6;;1248:44;1121:12:1;;;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;1139:16:1;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;1161:9:1;:20;;;;;;1214:2;:21;;;1200:35;;1187:10;:48;-1:-1:-1;;1161:20:1;;;;;;;;;;;-1:-1:-1;;1241:18:1;;;;;;;;;1270:8;1266:238;;;1303:1;1288:12;:16;1266:238;;;1390:10;;1375:12;:25;;;1408:9;-1:-1:-1;1418:7:1;:5;;;;:7;:::i;:::-;-1:-1:-1;;;;;1408:18:1;;;;;;;;;;;;-1:-1:-1;1408:18:1;:33;1475:7;:5;;;;:7;:::i;:::-;-1:-1:-1;;;;;1454:43:1;1471:1;-1:-1:-1;;;;;1454:43:1;;1484:12;;1454:43;;;;;;;;;;;;;;;;;;1266:238;962:546;;;;;552:5165;;2458:71:30;2496:7;2518:6;-1:-1:-1;;;;;2518:6:30;2458:71;;:::o;552:5165:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;552:5165:1;;;-1:-1:-1;552:5165:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;", "deployedSourceMap": "552:5165:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5559:37:1;;;-1:-1:-1;;;;;5559:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;552:5165;1512:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1512:75:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1512:75:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2196:542;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2196:542:1;-1:-1:-1;;;;;2196:542:1;;;;;;;;;;;;;;;;;;;;;;;;;1864:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1864:83:1;;;;;;;;;;;;;;;;;;;;3328:334;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3328:334:1;-1:-1:-1;;;;;3328:334:1;;;;;;;;;;;;1785:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1785:75:1;;;;;;;;;;;;;;;;;;;;;;;3666:393;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3666:393:1;-1:-1:-1;;;;;3666:393:1;;;;;;;4470:524;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4470:524:1;-1:-1:-1;;;;;4470:524:1;;;;;;;5630:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5630:85:1;;;;1951:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1951:96:1;-1:-1:-1;;;;;1951:96:1;;;;;1844:127:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1844:127:30;;;;2458:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2458:71:30;;;;;;;;-1:-1:-1;;;;;2458:71:30;;;;;;;;;;;;;;1591:79:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1591:79:1;;;;4998:508;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4998:508:1;-1:-1:-1;;;;;4998:508:1;;;;;;;4063:403;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4063:403:1;-1:-1:-1;;;;;4063:403:1;;;;;;;3155:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3155:169:1;-1:-1:-1;;;;;3155:169:1;;;;;;;2197:257:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2197:257:30;-1:-1:-1;;;;;2197:257:30;;;;;2051:141:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2051:141:1;-1:-1:-1;;;;;2051:141:1;;;;;;;;;;1975:218:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1975:218:30;-1:-1:-1;;;;;1975:218:30;;;;;2533:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2533:71:30;;;;1512:75:1;1577:5;1570:12;;;;;;;;-1:-1:-1;;1570:12:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1549:6;;1570:12;;1577:5;;1570:12;;1577:5;1570:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1512:75;:::o;2196:542::-;2299:4;2278:6;153:8:34;134;:27;;126:60;;;;;-1:-1:-1;;;;;126:60:34;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;126:60:34;;;;;;;;;;;;;;;2391:11:1;;;2390:54;;-1:-1:-1;2417:10:1;2408:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2408:30:1;;;;;;;;;;:35;2390:54;2375:111;;;;;;;-1:-1:-1;;;;;2375:111:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;2636:10;2627:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;2627:30:1;;;;;;;;;;;;:39;;;2677:38;;;;;;;2627:30;;2636:10;2677:38;;;;;;;;;;;-1:-1:-1;2729:4:1;;2196:542;-1:-1:-1;;;2196:542:1:o;1864:83::-;1930:12;;1864:83;:::o;3328:334::-;3450:4;3433:6;153:8:34;134;:27;;126:60;;;;;-1:-1:-1;;;;;126:60:34;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;126:60:34;;;;;;;;;;;;;;;-1:-1:-1;;;;;3470:15:1;;;;;;:8;:15;;;;;;;;3486:10;3470:27;;;;;;;;:37;-1:-1:-1;3470:37:1;3462:66;;;;;-1:-1:-1;;;;;3462:66:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3565:15:1;;;;;;:8;:15;;;;;;;;3581:10;3565:27;;;;;;;;:39;;3597:6;3565:39;:31;:39;:::i;:::-;-1:-1:-1;;;;;3535:15:1;;;;;;:8;:15;;;;;;;;3551:10;3535:27;;;;;;;:69;3610:29;3544:5;3627:3;3632:6;3610:9;:29::i;:::-;-1:-1:-1;3653:4:1;;3328:334;-1:-1:-1;;;;3328:334:1:o;1785:75::-;1846:9;;;;;;;;1785:75::o;3666:393::-;3784:4;3763:6;153:8:34;134;:27;;126:60;;;;;-1:-1:-1;;;;;126:60:34;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;126:60:34;;;;;;;;;;;;;;;3807:24:1;:8;-1:-1:-1;;;;;3807:22:1;;:24::i;:::-;3806:25;3798:66;;;;;-1:-1:-1;;;;;3798:66:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3798:66:1;;;;;;;;;;;;;;;3913:10;3904:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3904:30:1;;;;;;;;;;:59;;3946:11;3904:59;:34;:59;:::i;:::-;3880:10;3871:20;;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3871:30:1;;;;;;;;;;;;:92;;;3974:62;;;;;;3871:30;;3974:62;;;;;;;;;;;-1:-1:-1;4050:4:1;;3666:393;-1:-1:-1;;;3666:393:1:o;4470:524::-;4587:4;1581:6:30;;-1:-1:-1;;;;;1581:6:30;1567:10;:20;;1566:48;;-1:-1:-1;1607:6:30;;-1:-1:-1;;;;;1607:6:30;1593:10;:20;1566:48;1551:122;;;;;;;-1:-1:-1;;;;;1551:122:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4566:6:1;153:8:34;134;:27;;126:60;;;;;-1:-1:-1;;;;;126:60:34;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;126:60:34;;;;;;;;;;;;;;;4610:23:1;:7;-1:-1:-1;;;;;4610:21:1;;:23::i;:::-;4609:24;4601:65;;;;;-1:-1:-1;;;;;4601:65:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;4601:65:1;;;;;;;;;;;;;;;4680:8;;;;4672:41;;;;;;;-1:-1:-1;;;;;4672:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4754:10;;4727:12;;:23;;4744:5;4727:23;:16;:23;:::i;:::-;:37;;4719:72;;;;;-1:-1:-1;;;;;4719:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;4813:12;;:23;;4830:5;4813:23;:16;:23;:::i;:::-;4798:12;:38;-1:-1:-1;;;;;4863:18:1;;;;;;:9;:18;;;;;;:29;;4886:5;4863:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;4842:18:1;;;;;;:9;:18;;;;;;;;;:50;;;;4904:20;;;;;;;4842:18;;4904:20;;;;;;;;;4935:36;;;;;;;;-1:-1:-1;;;;;4935:36:1;;;4952:1;;4935:36;;;;;;;;;-1:-1:-1;4985:4:1;;4470:524;-1:-1:-1;;;4470:524:1:o;5630:85::-;5677:7;:5;:7::i;:::-;-1:-1:-1;;;;;5663:21:1;:10;-1:-1:-1;;;;;5663:21:1;;5659:51;;;5699:10;5686:24;5659:51;5630:85::o;1951:96::-;-1:-1:-1;;;;;2027:15:1;2005:7;2027:15;;;:9;:15;;;;;;;1951:96::o;1844:127:30:-;1350:6;;-1:-1:-1;;;;;1350:6:30;1336:10;:20;1328:59;;;;;-1:-1:-1;;;;;1328:59:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;1938:1;1922:6;;1901:40;;-1:-1:-1;;;;;1922:6:30;;;;1901:40;;1938:1;;1901:40;1964:1;1947:19;;-1:-1:-1;;1947:19:30;;;1844:127::o;2458:71::-;2496:7;2518:6;-1:-1:-1;;;;;2518:6:30;2458:71;:::o;1591:79:1:-;1658:7;1651:14;;;;;;;;-1:-1:-1;;1651:14:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:6;;1651:14;;1658:7;;1651:14;;1658:7;1651:14;;;;;;;;;;;;;;;;;;;;;;;;4998:508;5115:4;1581:6:30;;-1:-1:-1;;;;;1581:6:30;1567:10;:20;;1566:48;;-1:-1:-1;1607:6:30;;-1:-1:-1;;;;;1607:6:30;1593:10;:20;1566:48;1551:122;;;;;;;-1:-1:-1;;;;;1551:122:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5094:6:1;153:8:34;134;:27;;126:60;;;;;-1:-1:-1;;;;;126:60:34;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;126:60:34;;;;;;;;;;;;;;;5138:23:1;:7;-1:-1:-1;;;;;5138:21:1;;:23::i;:::-;5137:24;5129:65;;;;;-1:-1:-1;;;;;5129:65:1;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5129:65:1;;;;;;;;;;;;;;;5208:8;;;;5200:41;;;;;;;-1:-1:-1;;;;;5200:41:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5255:12;;:21;-1:-1:-1;5255:21:1;5247:56;;;;;-1:-1:-1;;;;;5247:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5325:12;;:23;;5342:5;5325:23;:16;:23;:::i;:::-;5310:12;:38;-1:-1:-1;;;;;5375:18:1;;;;;;:9;:18;;;;;;:29;;5398:5;5375:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;5354:18:1;;;;;;:9;:18;;;;;;;;;:50;;;;5416:20;;;;;;;5354:18;;5416:20;;;;;;;;;5447:36;;;;;;;;5473:1;;-1:-1:-1;;;;;5447:36:1;;;;;;;;;;;;-1:-1:-1;5497:4:1;;4998:508;-1:-1:-1;;;4998:508:1:o;4063:403::-;4186:4;4165:6;153:8:34;134;:27;;126:60;;;;;-1:-1