[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "asset", "type": "address" } ], "name": "AssetRemoved", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint8", "name": "weight", "type": "uint8" } ], "name": "UpdateAnatomy", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "anatomy", "outputs": [ { "internalType": "address[]", "name": "_assets", "type": "address[]" }, { "internalType": "uint8[]", "name": "_weights", "type": "uint8[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "inactiveAnatomy", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_assets", "type": "address[]" }, { "internalType": "uint8[]", "name": "_weights", "type": "uint8[]" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "registry", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_updatedAssets", "type": "address[]" }, { "internalType": "uint8[]", "name": "_updatedWeights", "type": "uint8[]" } ], "name": "reweight", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "_interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vTokenFactory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6101806040523480156200001257600080fd5b50604080518082018252600c81526b0a0d0eae8eae4ca92dcc8caf60a31b6020808301919091528251808401845260018152603160f81b81830152835180830180865260008083528651948501909652948352805133958594916200007a91600b91620004b9565b5080516200009090600c906020840190620004b9565b5050825160208085019190912083518483012060e08290526101008190524660a0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81880181905281830187905260608201869052608082019490945230818401528151808203909301835260c0019052805194019390932091935091906080523060c0526101205250506001600f5550620001539150506001600160a01b03821663d47f39ad60e01b62000365602090811b62000f7817901c565b620001975760405162461bcd60e51b815260206004820152601060248201526f496e6465783a20494e5445524641434560801b604482015260640160405180910390fd5b7f1916b456004f332cd8a19679364ef4be668619658be72c17b7e86697c4ae0f1661014052600080546001600160a01b0319166001600160a01b0383811691821790925560028054909216600160a01b426001600160601b0316021790915560408051637b10399960e01b81529051637b103999916004808201926020929091908290030181865afa15801562000232573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025891906200055f565b600260006101000a8154816001600160a01b0302191690836001600160a01b03160217905550806001600160a01b03166328dd99126040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e391906200055f565b600180546001600160a01b0319166001600160a01b0392909216919091179055506040517f52455745494748545f5045524d495353494f4e0000000000000000000000000060208201526001600160601b03193060601b16603382015260470160408051601f198184030181529190528051602090910120610160526200062f565b600062000372836200038f565b8015620003865750620003868383620003c7565b90505b92915050565b6000620003a4826301ffc9a760e01b620003c7565b8015620003895750620003c0826001600160e01b0319620003c7565b1592915050565b604080516001600160e01b0319831660248083019190915282518083039091018152604490910182526020810180516001600160e01b03166301ffc9a760e01b179052905160009190829081906001600160a01b03871690617530906200043090869062000591565b6000604051808303818686fa925050503d80600081146200046e576040519150601f19603f3d011682016040523d82523d6000602084013e62000473565b606091505b509150915060208151101562000490576000935050505062000389565b818015620004af575080806020019051810190620004af9190620005cf565b9695505050505050565b828054620004c790620005f3565b90600052602060002090601f016020900481019282620004eb576000855562000536565b82601f106200050657805160ff191683800117855562000536565b8280016001018555821562000536579182015b828111156200053657825182559160200191906001019062000519565b506200054492915062000548565b5090565b5b8082111562000544576000815560010162000549565b6000602082840312156200057257600080fd5b81516001600160a01b03811681146200058a57600080fd5b9392505050565b6000825160005b81811015620005b4576020818601810151858301520162000598565b81811115620005c4576000828501525b509190910192915050565b600060208284031215620005e257600080fd5b815180151581146200058a57600080fd5b600181811c908216806200060857607f821691505b6020821081036200062957634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e051610100516101205161014051610160516123416200069560003960006104ba0152600061042201526000611279015260006112c8015260006112a3015260006111fc015260006112260152600061125001526123416000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806370a08231116100c3578063a9059cbb1161007c578063a9059cbb146102e1578063c45a0155146102f4578063d505accf14610307578063dd62ed3e1461031a578063f53af5331461032d578063fe1de1f31461034357600080fd5b806370a08231146102645780637b1039991461028d5780637ecebe00146102a057806389afcb44146102b357806395d89b41146102c6578063a457c2d7146102ce57600080fd5b806328dd99121161011557806328dd9912146101e75780632ee762e514610212578063313ce567146102275780633644e51514610236578063395093511461023e5780636a6278421461025157600080fd5b806301ffc9a71461015d57806306fdde0314610185578063095ea7b31461019a578063116b6168146101ad57806318160ddd146101c257806323b872dd146101d4575b600080fd5b61017061016b366004611d2b565b610356565b60405190151581526020015b60405180910390f35b61018d610381565b60405161017c9190611d81565b6101706101a8366004611dc9565b6103f8565b6101c06101bb366004611e41565b610410565b005b600a545b60405190815260200161017c565b6101706101e2366004611ead565b610704565b6001546101fa906001600160a01b031681565b6040516001600160a01b03909116815260200161017c565b61021a610728565b60405161017c9190611f32565b6040516012815260200161017c565b6101c6610734565b61017061024c366004611dc9565b61073e565b6101c061025f366004611f45565b610760565b6101c6610272366004611f45565b6001600160a01b031660009081526008602052604090205490565b6002546101fa906001600160a01b031681565b6101c66102ae366004611f45565b610924565b6101c06102c1366004611f45565b610942565b61018d610afc565b6101706102dc366004611dc9565b610b2d565b6101706102ef366004611dc9565b610ba8565b6000546101fa906001600160a01b031681565b6101c0610315366004611f78565b610bb6565b6101c6610328366004611fe6565b610d38565b610335610d63565b60405161017c92919061201f565b6101c0610351366004611e41565b610e43565b60006001600160e01b0319821663022d6c2d60e31b148061037b575061037b82610f9b565b92915050565b60025460405163ed3b559f60e01b81523060048201526060916001600160a01b03169063ed3b559f906024015b600060405180830381865afa1580156103cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103f3919081019061208f565b905090565b600033610406818585610fc0565b5060019392505050565b600254604051632474521560e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa15801561047e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a2919061213c565b8061053a5750600254604051632474521560e21b81527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526001600160a01b03909116906391d1485490604401602060405180830381865afa158015610516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053a919061213c565b6105855760405162461bcd60e51b815260206004820152601760248201527626b0b730b3b2b224b73232bc1d102327a92124a22222a760491b60448201526064015b60405180910390fd5b6000805460408051630384935560e51b8152905183926001600160a01b0316916370926aa09160048083019260209291908290030181865afa1580156105cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f3919061215e565b6001600160a01b031663116b616860e01b8787878760405160240161061b949392919061217b565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610659919061220a565b600060405180830381855af49150503d8060008114610694576040519150601f19603f3d011682016040523d82523d6000602084013e610699565b606091505b5091509150816106fc5780516000036106f45760405162461bcd60e51b815260206004820152601c60248201527f4d616e61676564496e6465783a20524557454947485f4641494c454400000000604482015260640161057c565b805181602001fd5b505050505050565b6000336107128582856110e4565b61071d85858561115e565b506001949350505050565b60606103f360056111e2565b60006103f36111ef565b6000336104068185856107518383610d38565b61075b919061223c565b610fc0565b6002600f54036107b25760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161057c565b6002600f81905550600080600260009054906101000a90046001600160a01b03166001600160a01b031663b07bdef66040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610812573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610836919061215e565b604080516001600160a01b0386811660248084019190915283518084039091018152604490920183526020820180516001600160e01b03166335313c2160e11b1790529151929091169161088a919061220a565b600060405180830381855af49150503d80600081146108c5576040519150601f19603f3d011682016040523d82523d6000602084013e6108ca565b606091505b50915091508161091a5780516000036106f45760405162461bcd60e51b8152602060048201526012602482015271125b99195e0e881352539517d1905253115160721b604482015260640161057c565b50506001600f5550565b6001600160a01b0381166000908152600d602052604081205461037b565b6002600f54036109945760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161057c565b6002600f81905550600080600260009054906101000a90046001600160a01b03166001600160a01b031663b07bdef66040518163ffffffff1660e01b81526004016020604051808303816000875af11580156109f4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a18919061215e565b604080516001600160a01b0386811660248084019190915283518084039091018152604490920183526020820180516001600160e01b031663226bf2d160e21b17905291519290911691610a6c919061220a565b600060405180830381855af49150503d8060008114610aa7576040519150601f19603f3d011682016040523d82523d6000602084013e610aac565b606091505b50915091508161091a5780516000036106f45760405162461bcd60e51b8152602060048201526012602482015271125b99195e0e881095549397d1905253115160721b604482015260640161057c565b60025460405163554f94ab60e01b81523060048201526060916001600160a01b03169063554f94ab906024016103ae565b60003381610b3b8286610d38565b905083811015610b9b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161057c565b61071d8286868403610fc0565b60003361040681858561115e565b83421115610c065760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e65000000604482015260640161057c565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9888888610c538c6001600160a01b03166000908152600d6020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090506000610cae82611316565b90506000610cbe82878787611364565b9050896001600160a01b0316816001600160a01b031614610d215760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604482015260640161057c565b610d2c8a8a8a610fc0565b50505050505050505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b606080610d7060036111e2565b80519092508067ffffffffffffffff811115610d8e57610d8e612079565b604051908082528060200260200182016040528015610db7578160200160208202803683370190505b50915060005b81811015610e3d5760076000858381518110610ddb57610ddb612254565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060009054906101000a900460ff16838281518110610e2357610e23612254565b60ff90921660209283029190910190910152600101610dbd565b50509091565b6000546001600160a01b03163314610e975760405162461bcd60e51b815260206004820152601760248201527626b0b730b3b2b224b73232bc1d102327a92124a22222a760491b604482015260640161057c565b8260005b818110156106fc576000868683818110610eb757610eb7612254565b9050602002016020810190610ecc9190611f45565b90506000858584818110610ee257610ee2612254565b9050602002016020810190610ef7919061226a565b6001600160a01b0383166000908152600760205260409020805460ff191660ff83161790559050610f2960038361138c565b50604080516001600160a01b038416815260ff831660208201527f570021dbfc0c0d1b83293d5c8ce73e7cef80870624da237d3e4bc6bda4abab58910160405180910390a15050600101610e9b565b6000610f83836113a1565b8015610f945750610f9483836113d4565b9392505050565b60006001600160e01b03198216630381024d60e41b148061037b575061037b826114bd565b6001600160a01b0383166110225760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161057c565b6001600160a01b0382166110835760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161057c565b6001600160a01b0383811660008181526009602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006110f08484610d38565b90506000198114611158578181101561114b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161057c565b6111588484848403610fc0565b50505050565b6002546040805163ae2e933b60e01b815290516111d2926001600160a01b03169163ae2e933b9160048083019260209291908290030181865afa1580156111a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cd919061215e565b611528565b6111dd83838361166f565b505050565b60606000610f948361183d565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561124857507f000000000000000000000000000000000000000000000000000000000000000046145b1561127257507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b600061037b6113236111ef565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b600080600061137587878787611899565b9150915061138281611986565b5095945050505050565b6000610f94836001600160a01b038416611b3f565b60006113b4826301ffc9a760e01b6113d4565b801561037b57506113cd826001600160e01b03196113d4565b1592915050565b604080516001600160e01b0319831660248083019190915282518083039091018152604490910182526020810180516001600160e01b03166301ffc9a760e01b179052905160009190829081906001600160a01b038716906175309061143b90869061220a565b6000604051808303818686fa925050503d8060008114611477576040519150601f19603f3d011682016040523d82523d6000602084013e61147c565b606091505b5091509150602081511015611497576000935050505061037b565b8180156114b35750808060200190518101906114b3919061213c565b9695505050505050565b60006001600160e01b03198216634bcbd0ef60e11b14806114ee57506001600160e01b03198216634ec7fbed60e11b145b8061150957506001600160e01b031982166336372b0760e01b145b8061037b57506301ffc9a760e01b6001600160e01b031983161461037b565b60025460009061154890600160a01b90046001600160601b031642612285565b6001600160601b03169050801561166b5760008054604051635612e00b60e01b81523060048201526001600160a01b0391821692916b033b2e3c9fd0803ce80000009182916115f29190881690635612e00b90602401602060405180830381865afa1580156115bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115df91906122ad565b866b033b2e3c9fd0803ce8000000611b8e565b6115fc91906122c6565b6001600160a01b038416600090815260086020526040902054600a5461162291906122c6565b61162c91906122dd565b61163691906122fc565b90508015611158576116488282611c4c565b5050600280546001600160a01b0316600160a01b426001600160601b0316021790555b5050565b6001600160a01b0383166116d35760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161057c565b6001600160a01b0382166117355760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161057c565b6001600160a01b038316600090815260086020526040902054818110156117ad5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161057c565b6001600160a01b038085166000908152600860205260408082208585039055918516815290812080548492906117e490849061223c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161183091815260200190565b60405180910390a3611158565b60608160000180548060200260200160405190810160405280929190818152602001828054801561188d57602002820191906000526020600020905b815481526020019060010190808311611879575b50505050509050919050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156118d0575060009050600361197d565b8460ff16601b141580156118e857508460ff16601c14155b156118f9575060009050600461197d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561194d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166119765760006001925092505061197d565b9150600090505b94509492505050565b600081600481111561199a5761199a61231e565b036119a25750565b60018160048111156119b6576119b661231e565b03611a035760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015260640161057c565b6002816004811115611a1757611a1761231e565b03611a645760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015260640161057c565b6003816004811115611a7857611a7861231e565b03611ad05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b606482015260840161057c565b6004816004811115611ae457611ae461231e565b03611b3c5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b606482015260840161057c565b50565b6000818152600183016020526040812054611b865750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561037b565b50600061037b565b6000838015611c2e57600184168015611ba957859250611bad565b8392505b50600283046002850494505b8415611c28578586028687820414611bd057600080fd5b81810181811015611be057600080fd5b8590049650506001851615611c1d578583028387820414158715151615611c0657600080fd5b81810181811015611c1657600080fd5b8590049350505b600285049450611bb9565b50611c44565b838015611c3e5760009250611c42565b8392505b505b509392505050565b6001600160a01b038216611ca25760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161057c565b80600a6000828254611cb4919061223c565b90915550506001600160a01b03821660009081526008602052604081208054839290611ce190849061223c565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b600060208284031215611d3d57600080fd5b81356001600160e01b031981168114610f9457600080fd5b60005b83811015611d70578181015183820152602001611d58565b838111156111585750506000910152565b6020815260008251806020840152611da0816040850160208701611d55565b601f01601f19169190910160400192915050565b6001600160a01b0381168114611b3c57600080fd5b60008060408385031215611ddc57600080fd5b8235611de781611db4565b946020939093013593505050565b60008083601f840112611e0757600080fd5b50813567ffffffffffffffff811115611e1f57600080fd5b6020830191508360208260051b8501011115611e3a57600080fd5b9250929050565b60008060008060408587031215611e5757600080fd5b843567ffffffffffffffff80821115611e6f57600080fd5b611e7b88838901611df5565b90965094506020870135915080821115611e9457600080fd5b50611ea187828801611df5565b95989497509550505050565b600080600060608486031215611ec257600080fd5b8335611ecd81611db4565b92506020840135611edd81611db4565b929592945050506040919091013590565b600081518084526020808501945080840160005b83811015611f275781516001600160a01b031687529582019590820190600101611f02565b509495945050505050565b602081526000610f946020830184611eee565b600060208284031215611f5757600080fd5b8135610f9481611db4565b803560ff81168114611f7357600080fd5b919050565b600080600080600080600060e0888a031215611f9357600080fd5b8735611f9e81611db4565b96506020880135611fae81611db4565b95506040880135945060608801359350611fca60808901611f62565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215611ff957600080fd5b823561200481611db4565b9150602083013561201481611db4565b809150509250929050565b6040815260006120326040830185611eee565b82810360208481019190915284518083528582019282019060005b8181101561206c57845160ff168352938301939183019160010161204d565b5090979650505050505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156120a157600080fd5b815167ffffffffffffffff808211156120b957600080fd5b818401915084601f8301126120cd57600080fd5b8151818111156120df576120df612079565b604051601f8201601f19908116603f0116810190838211818310171561210757612107612079565b8160405282815287602084870101111561212057600080fd5b612131836020830160208801611d55565b979650505050505050565b60006020828403121561214e57600080fd5b81518015158114610f9457600080fd5b60006020828403121561217057600080fd5b8151610f9481611db4565b6040808252810184905260008560608301825b878110156121be5782356121a181611db4565b6001600160a01b031682526020928301929091019060010161218e565b5083810360208581019190915285825291508590820160005b868110156121fd5760ff6121ea84611f62565b16825291830191908301906001016121d7565b5098975050505050505050565b6000825161221c818460208701611d55565b9190910192915050565b634e487b7160e01b600052601160045260246000fd5b6000821982111561224f5761224f612226565b500190565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561227c57600080fd5b610f9482611f62565b60006001600160601b03838116908316818110156122a5576122a5612226565b039392505050565b6000602082840312156122bf57600080fd5b5051919050565b6000828210156122d8576122d8612226565b500390565b60008160001904831182151516156122f7576122f7612226565b500290565b60008261231957634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052602160045260246000fdfea164736f6c634300080d000a